Decoding device, encoding device, and transmitting device
By defining dependency conditional parsing transform skip and palette encoding related information, the problem of low efficiency in high-resolution, high-quality image/video encoding is solved, achieving efficient encoding and decoding and reducing transmission and storage costs.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2020-10-05
- Publication Date
- 2026-06-05
AI Technical Summary
Existing technologies are inefficient in high-resolution, high-quality image/video encoding, especially in the parsing and encoding of transform skipping and palette encoding related information, where the handling of dependent and independent processes is not efficient enough, leading to increased transmission and storage costs.
Defining dependency conditions to parse transform skipping and palette coding related information, determining whether transform skipping and palette coding are enabled using image information such as sequence parameter sets (SPS), and performing efficient encoding and decoding processing based on these conditions.
It improves overall image/video compression efficiency, saves transmission bits, achieves efficient encoding and decoding processes, and reduces transmission and storage costs.
Smart Images

Figure CN117412066B_ABST
Abstract
Description
[0001] This application is a divisional application of the original invention patent application No. 202080082110.0 (International Application No.: PCT / KR2020 / 013482, Application Date: October 5, 2020, Invention Title: Image or Video Coding Based on Transform Skip and Palette Encoding Related Data). Technical Field
[0002] This technology relates to video or image coding, and for example to image or video coding techniques based on transform skipping and palette coding related information. Background Technology
[0003] Recently, there has been a growing demand for high-resolution, high-quality images / videos, such as 4K or 8K Ultra High Definition (UHD) images / videos, across various fields. As image / video resolution or quality increases, relatively more information or bits are transmitted compared to traditional image / video data. Therefore, if image / video data is transmitted via media such as existing wired / wireless broadband lines or stored in traditional storage media, the costs of transmission and storage can easily increase.
[0004] In addition, there is growing interest and demand for virtual reality (VR) and artificial reality (AR) content, as well as immersive media such as holograms; and the broadcasting of images / videos that exhibit characteristics different from actual images / videos (e.g., game images / videos) is also increasing.
[0005] Therefore, highly efficient image / video compression technology is needed to effectively compress and send, store, or play high-resolution, high-quality images / videos that exhibit the various characteristics described above.
[0006] Additionally, a scheme is needed to improve overall image / video coding efficiency by efficiently classifying whether to encode relevant information based on the dependency and non-dependency of absolutely necessary or auxiliary information used when performing transform skipping and palette coding. Summary of the Invention
[0007] Technical issues
[0008] The technical subject of this document is to provide methods and devices for enhancing the efficiency of video / image coding.
[0009] Another technical subject of this document is to provide methods and apparatus for efficiently parsing / signaling change skip and / or palette encoding related information.
[0010] Another technical subject of this document is to provide methods and apparatus for efficiently determining whether to perform encoding based on the dependency and / or non-dependency of information used during transform skipping and / or palette encoding.
[0011] Another technical subject of this document is to provide methods and apparatus for defining dependency conditions for efficiently parsing syntax elements that depend on high-level syntax elements related to transform skipping and / or palette encoding, and for determining whether to perform parsing based on those dependency conditions.
[0012] Technical solution
[0013] According to the embodiments of this document, dependency conditions can be defined for transform skipping and / or palette encoding related information to efficiently parse / signal dependent syntax elements, and the parse of transform skipping and / or palette encoding related information can be determined based on these dependency conditions. For example, transform skipping and / or palette encoding related information may include information about the minimum allowed quantization parameters of the transform skipping mode, and in this case, the dependency conditions can be defined based on at least one of the information about whether transform skipping is enabled and the information about whether palette encoding is enabled. For example, based on the condition that at least one of the cases of transform skipping being enabled or palette encoding being enabled is satisfied, the information about the minimum allowed quantization parameters of the transform skipping mode can be parsed / signaled using image information (e.g., sequence parameter set (SPS)).
[0014] According to embodiments of this document, a video / image decoding method performed by a decoding device is provided. The video / image decoding method may include the methods disclosed in the embodiments of this document.
[0015] According to embodiments of this document, a decoding apparatus is provided for performing video / image decoding. The decoding apparatus can execute the methods disclosed in the embodiments of this document.
[0016] According to embodiments of this document, a video / image coding method performed by an encoding device is provided. The video / image coding method may include the methods disclosed in embodiments of this document.
[0017] According to embodiments of this document, an encoding apparatus for performing video / image encoding is provided. The encoding apparatus can perform the methods disclosed in the embodiments of this document.
[0018] According to embodiments of this document, a computer-readable digital storage medium is provided for storing encoded video / image information generated by a video / image encoding method disclosed in at least one of the embodiments of this document.
[0019] According to embodiments of this document, a computer-readable digital storage medium is provided that stores encoded information or encoded video / image information that enables a decoding device to perform at least one of the video / image decoding methods disclosed in embodiments of this document.
[0020] Technical effect
[0021] This document can have various effects. For example, according to the embodiments of this document, the overall image / video compression efficiency can be enhanced. Additionally, according to the embodiments of this document, information related to transform skipping and / or palette encoding can be efficiently parsed / signed. Furthermore, according to the embodiments of this document, whether to perform encoding can be effectively determined based on the dependency and / or non-dependency of information used during transform skipping and / or palette encoding. Furthermore, according to the embodiments of this document, efficient encoding can be performed by defining dependency conditions for effectively parsing syntax elements that depend on high-level syntax elements related to transform skipping and / or palette encoding, and determining whether to perform parsing according to these dependency conditions. Additionally, according to the embodiments of this document, by determining whether to perform parsing based on dependency conditions related to high-level syntax elements related to transform skipping and / or palette encoding, transmitted bits can be saved.
[0022] The effects achievable through the detailed examples in this document are not limited to those listed above. For example, there may be various technical effects that can be understood or derived from this document by a person skilled in the art. Therefore, the detailed effects of this document are not limited to those explicitly stated in this document, but may include various effects that can be understood or derived from the technical features of this document. Attached Figure Description
[0023] Figure 1 Examples of video / image coding systems applicable to the embodiments of this document are illustrated.
[0024] Figure 2 This is a schematic diagram illustrating the configuration of a video / image encoding device applicable to the embodiments described in this document.
[0025] Figure 3 This is a schematic diagram illustrating the configuration of a video / image decoding device applicable to the embodiments described in this document.
[0026] Figure 4 An example of an illustrative video / image encoding process applicable to the embodiments described in this document is given.
[0027] Figure 5 An example of an illustrative video / image decoding process applicable to the embodiments described in this document is given.
[0028] Figure 6 An example illustrates the hierarchical structure of encoded images / videos.
[0029] Figure 7 and Figure 8Examples of video / image coding methods and related components according to embodiments of this document are illustrated.
[0030] Figure 9 and Figure 10 Examples of video / image decoding methods and related components according to embodiments of this document are illustrated schematically.
[0031] Figure 11 Examples of content streaming systems applicable to the embodiments disclosed in this document are illustrated. Detailed Implementation
[0032] This disclosure may be modified in various forms, and specific embodiments thereof will be described and illustrated in the accompanying drawings. However, these embodiments are not intended to limit this disclosure. The terminology used in the following description is for the purpose of describing specific embodiments only and is not intended to limit this disclosure. Singular expressions include plural expressions, provided that different interpretations are clear. Terms such as “comprising” and “having” are intended to indicate the presence of the features, quantities, steps, operations, elements, components, or combinations thereof used in the following description, and therefore it should be understood that the possibility of having or adding one or more different features, quantities, steps, operations, elements, components, or combinations thereof is not excluded.
[0033] Furthermore, the various configurations described in the accompanying drawings are illustrated independently to illustrate functions that are distinct from each other, and do not imply that the configurations are implemented using different hardware or different software. For example, two or more configurations may be combined to form one configuration, and a configuration may be divided into multiple configurations. Without departing from the spirit of this document, embodiments in which configurations are combined and / or separated are included within the scope of the claims.
[0034] This document relates to video / image coding. For example, the methods / implementations disclosed in this document can be applied to methods disclosed in the Universal Video Coding (VVC) standard. Additionally, the methods / implementations disclosed in this document can be applied to methods disclosed in the Basic Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second-generation Audio Video Coding (AVS2) standard, or next-generation video / image coding standards (e.g., H.267 or H.268).
[0035] This document proposes various implementations of video / image coding, and unless otherwise mentioned, the above implementations can also be combined with each other.
[0036] In this document, video can refer to a collection of images over time. An image generally refers to a unit representing an image within a specific time period, and a slice / tile is a unit that constitutes part of an image during encoding. A slice / tile can include one or more Code Tree Units (CTUs). An image can consist of one or more slices / tiles. A tile is a rectangular area of CTUs within a specific tile column and a specific tile row in an image. A tile column is a rectangular area of CTUs with a height equal to the height of the image and a width specified by a syntax element in the image parameter set. A tile row is a rectangular area of CTUs with a width specified by a syntax element in the image parameter set and a height equal to the height of the image. A tile scan is a specific ordering of CTUs segmented in an image: CTUs are sequentially ordered in a raster scan of CTUs within a tile, and tiles within an image are sequentially ordered in a raster scan of tiles within the image. A slice includes an integer number of complete tiles of an image that can be exclusively contained within a single NAL unit, or an integer number of consecutive complete CTU rows within a tile.
[0037] Furthermore, an image can be divided into two or more sub-images. A sub-image can be a rectangular region of one or more slices within the image.
[0038] A pixel, or image unit, can refer to the smallest unit that makes up a picture (or image). Alternatively, "sample" can be used as the term corresponding to a pixel. A sample can typically represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component. Alternatively, a sample can refer to a pixel value in the spatial domain, or, when a pixel value is transformed to the frequency domain, to the transform coefficients in the frequency domain.
[0039] A unit can represent a basic unit of image processing. A unit may include a specific region of an image and at least one of the information associated with that region. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "region". In general, an M×N block may include a set (or array) of samples (or sample arrays) or transform coefficients in M columns and N rows.
[0040] Furthermore, in this document, at least one of quantization / dequantization and / or transform / inverse transform may be omitted. When quantization / dequantization is omitted, the quantization transform coefficients may be referred to as transform coefficients. When transform / inverse transform is omitted, the transform coefficients may be referred to as coefficients or residual coefficients, or, for the sake of consistency, may still be referred to as transform coefficients.
[0041] In this document, quantization transform coefficients and transform coefficients can be referred to as transform coefficients and scaling transform coefficients, respectively. In this case, residual information can include information about the transform coefficients and can be signaled via residual coding syntax. Transform coefficients can be derived based on residual information (or information about the transform coefficients), and scaling transform coefficients can be derived through the inverse transform (scaling) of the transform coefficients. Residual samples can be derived based on the inverse transform (scaling) of the scaling transform coefficients. This can also be applied / expressed in other parts of this document.
[0042] In this document, the term "A or B" may mean "A only", "B only", or "both A and B". In other words, in this document, the term "A or B" may be interpreted as indicating "A and / or B". For example, in this document, the term "A, B or C" may mean "A only", "B only", "C only", or "any combination of A, B, and C".
[0043] In this document, a forward slash ( / ) or a comma can mean "and / or". For example, "A / B" can mean "A and / or B". Therefore, "A / B" can mean "A only", "B only", or "both A and B". For example, "A, B, C" can mean "A, B, or C".
[0044] In this document, "at least one of A and B" can mean "only A", "only B" or "both A and B". Furthermore, in this document, the expressions "at least one of A or B" or "at least one of A and / or B" can be interpreted as the same as "at least one of A and B".
[0045] Additionally, in this document, "at least one of A, B, and C" may mean "A only", "B only", "C only" or "any combination of A, B, and C". Furthermore, "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".
[0046] Additionally, the parentheses used in this document may mean "for example". Specifically, when expressing "prediction (intra-prediction)", it may indicate an example where "intra-prediction" is proposed as "prediction". In other words, the term "prediction" in this document is not limited to "intra-prediction", and may indicate an example where "intra-prediction" is proposed as "prediction". Furthermore, even when expressing "prediction (i.e., intra-prediction)", it may indicate an example where "intra-prediction" is proposed as "prediction".
[0047] In this document, a technical feature described separately in a single figure may be implemented individually or simultaneously.
[0048] In the following, preferred embodiments of this document are described in more detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used for the same elements, and redundant descriptions of the same elements may be omitted.
[0049] Figure 1 Examples of video / image coding systems to which the implementation methods of this document can be applied are illustrated.
[0050] Reference Figure 1 A video / image encoding system may include a source device and a receiving device. The source device may transmit encoded video / image information or data to the receiving device in the form of a file or stream via a digital storage medium or network.
[0051] 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 encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display, and the display may be configured as a separate device or an external component.
[0052] Video sources can acquire video / images through processes that capture, synthesize, or generate video / images. Video sources may include video / image capture devices and / or video / image generation devices. For example, a video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. For example, a video / image generation device may include a computer, tablet computer, and smartphone, and may generate video / images (electronically). For example, virtual video / images may be generated via a computer, etc. In this case, the video / image capture process may be replaced by a process that generates related data.
[0053] Encoding devices can encode input video / images. For compression and encoding efficiency, encoding devices can perform a series of processes such as prediction, transformation, and quantization. The encoded data (encoded video / image information) can be output as a bitstream.
[0054] The transmitter can send encoded images / image information or data, output as a bitstream, to the receiver of the receiving device in the form of a file or stream via a digital storage medium or network. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitter may include elements for generating media files according to a predetermined file format and may include elements for transmission over a broadcast / communication network. The receiver can receive / extract the bitstream and send the received bitstream to a decoding device.
[0055] Decoding devices can decode video / images by performing a series of processes such as inverse quantization, inverse transform, and prediction, which correspond to the operations of encoding devices.
[0056] The renderer can render decoded video / images. The rendered video / images can be displayed on a monitor.
[0057] Figure 2 This is a schematic illustration of the configuration of a video / image encoding apparatus to which the embodiments of this document can be applied. Hereinafter, the term "encoding apparatus" may include image encoding apparatus and / or video encoding apparatus.
[0058] Reference Figure 2 The encoding device 200 may include and be configured with an image segmenter 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, an inverse quantizer 234, and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstruction block generator. According to embodiments, the image segmenter 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 described above may be configured by one or more hardware components (e.g., an encoder chipset or processor). Additionally, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware components may also include the memory 270 as an internal / external component.
[0059] Image segmenter 210 can segment an input image (or picture or frame) input to encoding device 200 into one or more processing units. For example, a processing unit may be referred to as a coding unit (CU). In this case, the coding unit can be recursively segmented from a coding tree unit (CTU) or a maximum coding unit (LCU) according to a quadtree-binary-tritree (QTBTTT) structure. For example, a coding unit can be segmented into multiple deeper coding units based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. In this case, for example, a quadtree structure may be applied first, followed by a binary tree structure and / or a ternary tree structure. Alternatively, a binary tree structure may be applied first. The encoding process according to this disclosure can be performed based on the final coding unit that is no longer segmented. In this case, the maximum coding unit may be used as the final coding unit based on image characteristics, coding efficiency, etc., or, if necessary, the coding unit may be recursively segmented into deeper coding units such that a coding unit with an optimal size can be used as the final coding unit. Here, the encoding process may include processes such as prediction, transformation, and reconstruction (described later). As another example, the processing unit may also include a prediction unit (PU) or a transform unit (TU). In this case, each of the prediction unit and the transform unit may be split or divided from the aforementioned final encoding unit. The prediction unit may be a unit for predicting samples, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving residual signals from transform coefficients.
[0060] In some cases, a unit can be used interchangeably with terms such as block or region. Typically, an M×N block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can typically represent a pixel or pixel value, and can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component. A sample can be used as a term corresponding to the pixels or cells that make up a picture (or image).
[0061] Encoding device 200 generates a residual signal (residual block, residual sample array) by subtracting the prediction signal (prediction block, prediction sample array) output from inter-frame predictor 221 or intra-frame predictor 222 from the input image signal (original block, original sample array), and the generated residual signal is sent to converter 232. In this case, as illustrated, the unit for subtracting the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) within encoding device 200 can be referred to as subtractor 231. The predictor can perform prediction on the block to be processed (hereinafter referred to as the current block) and generate a prediction block including the prediction samples of the current block. The predictor can determine whether to apply intra-frame prediction or inter-frame prediction on a unit of the current block or CU. The predictor can generate various information about the prediction, such as prediction mode information, to transmit the generated information to entropy encoder 240, as described later in the description of each prediction mode. The information about the prediction can be encoded by entropy encoder 240 and output as a bitstream.
[0062] Intra-predictor 222 can refer to samples in the current image to predict the current block. Depending on the prediction mode, the referenced samples can be located near or far from the current block. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. For example, non-directional modes can include DC mode and planar mode. For example, depending on the fineness of the prediction direction, the directional modes can include 33 directional prediction modes or 65 directional prediction modes. However, this is just an example, and more or fewer directional prediction modes can be used depending on the settings. Intra-predictor 222 can use the prediction modes applied to neighboring blocks to determine the prediction mode applied to the current block.
[0063] Inter-frame predictor 221 can deduce the predicted block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference image. Here, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation between motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference image indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current image and temporally neighboring blocks existing in the reference image. The reference image including the reference block and the reference image including the temporally neighboring block may be the same or different from each other. The temporally neighboring block may be referred to as a juxtaposed reference block, a juxtaposed CU (colCU), etc., and the reference image including the temporally neighboring block may also be referred to as a juxtaposed image (colPic). For example, inter-frame predictor 221 can configure a motion information candidate list based on neighboring blocks and generate information indicating which candidate is used to deduce the motion vector and / or reference image index of the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in skip mode and merge mode, the inter-frame predictor 221 can use motion information of neighboring blocks as motion information for the current block. In skip mode, unlike merge mode, residual signals may not be sent. The motion vector prediction (MVP) mode indicates the motion vector of the current block by using the motion vectors of neighboring blocks as motion vector predictors and signaling the motion vector difference.
[0064] Predictor 220 can generate prediction signals based on various prediction methods described below. For example, the predictor can not only apply intra-frame prediction or inter-frame prediction to predict a block, but also apply both intra-frame prediction and inter-frame prediction simultaneously. This can be referred to as combined intra-frame and inter-frame prediction (CIIP). Alternatively, the predictor can perform prediction on blocks based on an intra-block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or palette mode can be used for content image / video coding such as in games, etc. IBC essentially performs prediction in the current image, but it performs similarly to inter-frame prediction in deriving reference blocks in the current image. That is, IBC can use at least one of the inter-frame prediction techniques described in this document. The palette mode can be considered as an example of intra-frame coding or intra-frame prediction. When applying a palette mode, sample values in the image can be signaled based on information about the palette index and the palette table.
[0065] The predicted signal generated by the predictor (including inter-frame predictor 221 and / or intra-frame predictor 222) can be used to generate a reconstructed signal or a residual signal. Transformer 232 can generate transform coefficients by applying transform techniques to the residual signal. For example, the transform technique can include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loève Transform (KLT), Graph-Based Transform (GBT), or Conditional Nonlinear Transform (CNT). Here, when the relationship information between pixels is illustrated as a graph, GBT refers to the transform obtained from that graph. CNT refers to the transform obtained based on the predicted signal generated using all previously reconstructed pixels. Furthermore, the transform processing can also be applied to pixel blocks of the same square size, and can also be applied to blocks of variable size that are not square.
[0066] Quantizer 233 can quantize the transform coefficients to send the quantized transform coefficients to entropy encoder 240, and entropy encoder 240 can encode the quantized signal (information about the quantized transform coefficients) into an encoded quantized signal and output it as a bitstream. The information about the quantized transform coefficients can be referred to as residual information. Quantizer 233 can rearrange the quantized transform coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and also generate information about the quantized transform coefficients based on the one-dimensional vector form of the quantized transform coefficients. Entropy encoder 240 can perform various encoding methods such as Golomb coding, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). Entropy encoder 240 can also encode information necessary for video / image reconstruction other than the quantized transform coefficients (e.g., values of syntax elements, etc.) together or separately. The encoded information (e.g., encoded video / image information) can be sent as a bitstream or stored in units of Network Abstraction Layer (NAL) units. The video / image information may also include information about various parameter sets such as Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), or Video Parameter Set (VPS). Additionally, the video / image information may also include general constraint information. The information and / or syntax elements to be signaled / sent, as described subsequently in this document, can be encoded using the encoding process mentioned above and thus included in the bitstream. The bitstream can be transmitted over a network or stored in a digital storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. A transmitter (not shown) for transmitting the signal output from the entropy encoder 240 and / or a memory (not shown) for storing the signal can be configured as internal / external components of the encoding device 200, or the transmitter may also be included within the entropy encoder 240.
[0067] The quantized transform coefficients output from quantizer 233 can be used to generate a prediction signal. For example, dequantizer 234 and inverse transformer 235 vectorize the transform coefficients and apply dequantization and inverse transform to reconstruct the residual signal (residual block or residual sample). Adder 250 adds the reconstructed residual signal to the prediction signal output from inter-frame predictor 221 or intra-frame predictor 222 to generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample array). If no residual exists in the block to be processed, such as when a skip mode is applied, the predicted block can be used as the reconstructed block. Adder 250 can be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current image, and, as described later, for inter-frame prediction of the next image by filtering.
[0068] In addition, luminance mapping with chroma scaling (LMCS) can be applied in image encoding and / or reconstruction processing.
[0069] Filter 260 can apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, filter 260 can apply various filtering methods to the reconstructed image to generate a modified reconstructed image, which is then stored in memory 270, specifically in the DPB of memory 270. Various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filtering, bilateral filtering, etc. Filter 260 can generate various filtering-related information to transmit the generated information to entropy encoder 240, as described subsequently in the description of each filtering method. The filtering-related information can be encoded by entropy encoder 240 and output as a bitstream.
[0070] The modified reconstructed image sent to memory 270 can be used as a reference image in inter-frame predictor 221. Applying inter-frame prediction through the inter-frame predictor can avoid prediction mismatch between encoding device 200 and decoding device, and can improve encoding efficiency.
[0071] The DPB of memory 270 can store modified reconstructed images for use as reference images in inter-frame predictor 221. Memory 270 can store motion information of blocks from which motion information within the current image is derived (or encoded) and / or motion information of blocks within previously reconstructed images. The stored motion information can be transmitted to inter-frame predictor 221 to be used as motion information for spatially or temporally neighboring blocks. Memory 270 can store reconstructed samples of reconstructed blocks in the current image and can transmit these reconstructed samples to intra-frame predictor 222.
[0072] Figure 3 This is a schematic diagram illustrating the configuration of a video / image decoding device applicable to this document. In the following text, the term "decoding device" may include image decoding devices and / or video decoding devices.
[0073] Reference Figure 3The decoding device 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 332 and an intra-frame predictor 331. The residual processor 320 may include an inverse quantizer 321 and an inverse transformer 322. According to embodiments, the entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 described above may be configured by hardware components (e.g., a decoder chipset or processor). Additionally, the memory 360 may include a decoded image buffer (DPB) or may be configured by a digital storage medium. The hardware components may also include the memory 360 as an internal / external component.
[0074] When an input bitstream including video / image information is received, the decoding device 300 can respond to... Figure 2 The encoding apparatus illustrated herein processes video / image information to reconstruct the image. For example, decoding apparatus 300 may deduce units / blocks based on block segmentation information obtained from the bitstream. Decoding apparatus 300 may use processing units applied to the encoding apparatus to perform decoding. Thus, for example, the decoding processing unit may be an encoding unit, and the encoding unit may be segmented from encoding tree units or maximum encoding units according to a quadtree structure, binary tree structure, and / or ternary tree structure. One or more transform units may be derived from the encoding units. Furthermore, the reconstructed image signal decoded and output by decoding apparatus 300 may be reproduced by a reproduction apparatus.
[0075] Decoding device 300 can receive data from... in the form of a bitstream. Figure 2The signal output by the encoding device illustrated herein can be decoded by the entropy decoder 310. For example, the entropy decoder 310 can deduce the information necessary for image reconstruction (or picture reconstruction) (e.g., video / image information) by parsing the bitstream. The video / image information may also include information about various parameter sets such as Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), and Video Parameter Set (VPS). In addition, the video / image information may also include general constraint information. The decoding device can further decode the picture based on the information about the parameter sets and / or general constraint information. The transmitted / received information and / or syntax elements, which will be described subsequently in this document, can be decoded and obtained from the bitstream through the decoding process. For example, the entropy decoder 310 can decode the information within the bitstream based on encoding methods such as Exponential Golomb coding, CAVLC, or CABAC, and output the values of the syntax elements necessary for image reconstruction and the quantized values of the residual correlation transform coefficients. More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element from the bitstream, determine the context model using information about the syntax element to be decoded, as well as decoding information of neighboring blocks and the block to be decoded, or information about symbols / bins decoded in the previous stage, and generate symbols corresponding to the values of each syntax element by predicting bin generation probabilities based on the determined context model and performing arithmetic decoding of the bins. At this point, the CABAC entropy decoding method can determine the context model and then update the context model using information about decoded symbols / bins for the context model of the next symbol / bin. Prediction information from the information decoded by the entropy decoder 310 can be provided to the predictors (inter-frame predictor 332 and intra-frame predictor 331), and the residual values (i.e., quantization transform coefficients and related parameter information) from the entropy decoding performed by the entropy decoder 310 can be input to the residual processor 320. The residual processor 320 can derive the residual signals (residual blocks, residual samples, residual sample arrays). Additionally, filtering information from the information decoded by the entropy decoder 310 can be provided to the filter 350. Furthermore, the receiver (not illustrated) for receiving the signal output from the encoding device can be further configured as an internal / external component of the decoding device 300, or the receiver can also be a component of the entropy decoder 310. Additionally, the decoding device according to this document can be referred to as a video / image / picture decoding device, and the decoding device can also be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of an inverse quantizer 321, an inverse transformer 322, an adder 340, a filter 350, a memory 360, an inter-frame predictor 332, and an intra-frame predictor 331.
[0076] The dequantizer 321 can dequantize the quantized transform coefficients to output transform coefficients. The dequantizer 321 can rearrange the quantized transform coefficients in a two-dimensional block format. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The dequantizer 321 can use quantization parameters (e.g., quantization step size information) to perform dequantization on the quantized transform coefficients and obtain the transform coefficients.
[0077] The inverse transformer 322 performs inverse transformation on the transformation coefficients to obtain the residual signal (residual block, residual sample array).
[0078] Predictor 330 can perform prediction for the current block and generate a prediction block that includes prediction samples of the current block. The predictor can determine whether to apply intra-frame prediction or inter-frame prediction to the current block based on information about the prediction output from entropy decoder 310, and can determine a specific intra-frame / inter-frame prediction mode.
[0079] The predictor can generate a prediction signal based on various prediction methods described below. For example, the predictor can not only apply intra-frame prediction or inter-frame prediction to predict a block, but also apply both intra-frame prediction and inter-frame prediction simultaneously. This can be referred to as combined intra-frame and inter-frame prediction (CIIP). Alternatively, the predictor can perform prediction on blocks based on an intra-block copy (IBC) prediction mode or a palette mode. The IBC prediction mode or palette mode can be used for content image / video coding such as in games with screen content coding (SCC). IBC essentially performs prediction in the current image, but it performs similarly to inter-frame prediction in deriving reference blocks in the current image. That is, IBC can use at least one of the inter-frame prediction techniques described in this document. The palette mode can be considered as an example of intra-frame coding or intra-frame prediction. When a palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.
[0080] Intra-predictor 331 can predict the current block by referencing samples in the current image. Depending on the prediction mode, the referenced samples may be located among the neighbors of the current block, or their location may be separate from the current block. In intra-prediction, the prediction mode can include multiple non-directional modes and multiple directional modes. Intra-predictor 331 can also determine the prediction mode to be applied to the current block by using prediction modes applied to neighboring blocks.
[0081] Inter-frame predictor 332 can deduce the predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference image. In this case, to reduce the amount of motion information transmitted in inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the motion information correlation between neighboring blocks and the current block. Motion information may include motion vectors and reference image indices. Motion information may also include information about the inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current image and temporally neighboring blocks existing in the reference image. For example, inter-frame predictor 332 can construct a motion information candidate list based on neighboring blocks and deduce the motion vector and / or reference image index for the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and the information about the prediction may include information indicating the mode of inter-frame prediction for the current block.
[0082] Adder 340 can add the obtained residual signal to the prediction signal (prediction block or prediction sample array) output from predictor 330 (including intra-frame predictor 331 and inter-frame predictor 332) to generate a reconstruction signal (reconstructed image, reconstruction block, or reconstruction sample array). If no residual exists for the block to be processed when a jump mode is applied, the prediction block can be used as a reconstruction block.
[0083] Adder 340 can be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current image, and as described later, it can also be output by filtering or used for inter-frame prediction of the next image.
[0084] In addition, Luminance Mapping with Chroma Scaling (LMCS) can also be applied to image decoding processing.
[0085] Filter 350 can improve 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 the DPB of memory 360. Various filtering methods may include, for example, deblocking filtering, adaptive sample shifting, adaptive loop filtering, bilateral filtering, etc.
[0086] The (modified) reconstructed image stored in the DPB of memory 360 can be used as a reference image in inter-frame predictor 332. Memory 360 can store motion information of blocks from which motion information in the current image is derived (or decoded) and / or motion information of blocks in already reconstructed images. The stored motion information can be transmitted to inter-frame predictor 332 to be used as motion information for spatially or temporally neighboring blocks. Memory 360 can store reconstructed samples of reconstructed blocks in the current image and transmit the reconstructed samples to intra-frame predictor 331.
[0087] The exemplary embodiments described in this document in the filter 260, inter-frame predictor 221 and intra-frame predictor 222 of the encoding device 200 can be applied equally or correspondingly to the filter 350, inter-frame predictor 332 and intra-frame predictor 331 of the decoding device 300.
[0088] Furthermore, as described above, prediction is performed during video encoding to enhance compression efficiency. Accordingly, a prediction block can be generated, comprising prediction samples as the current block to be encoded (i.e., the target coding block). Here, the prediction block includes prediction samples in the spatial domain (or pixel domain). The prediction block is derived identically in both the encoding and decoding devices, and the encoding device can signal the decoding device with information about the residual (rather than the original sample values of the original block itself) between the original block and the prediction block (residual information) to enhance image coding efficiency. The decoding device can derive a residual block including residual samples based on the residual information, add the residual block and the prediction block to generate a reconstructed block including reconstructed samples, and generate a reconstructed image including the reconstructed block.
[0089] Residual information can be generated through transformation and quantization processes. For example, the encoding device can derive the residual block between the original block and the prediction block, perform a transformation process on the residual samples (residual sample array) included in the residual block to derive the transform coefficients, perform a quantization process on the transform coefficients to derive the quantized transform coefficients, and signal the relevant residual information (via bitstream) to the decoding device. In this case, the residual information may include the values of the quantized transform coefficients, position information, transform scheme, transform kernel, and quantization parameters. The decoding device can perform inverse quantization / inverse transform based on the residual information and derive residual samples (or residual blocks). The decoding device can generate a reconstructed image based on the prediction block and the residual block. Furthermore, for inter-frame prediction reference of subsequent images, the encoding device can also perform inverse quantization / inverse transform on the quantized transform coefficients to derive the residual block and generate a reconstructed image based on this.
[0090] The following figures are provided to illustrate detailed examples of this document. Since the names of detailed devices or detailed terms or names (e.g., names of grammars) described in the figures are presented by way of example, the technical features of this document are not limited to the detailed names used in the figures.
[0091] Figure 4 An example of an illustrative video / image encoding process applicable to the embodiments described in this document is given. Figure 4 In the above references, the S400 can be used as a reference. Figure 2 The predictor 220 of the described coding apparatus is executed, S410 can be executed by the residual processor 230, and S420 can be executed by the entropy encoder 240. S400 may include inter-frame / intra-frame prediction processes as described in this document, S410 may include residual processing processes as described in this document, and S420 may include information encoding processes as described in this document.
[0092] Reference Figure 4 The video / image encoding process can include not only the schematic encoding of information used for image reconstruction (e.g., prediction information, residual information, segmentation information, etc.) and outputting the encoded information as a bitstream, but also the process of generating a reconstructed image from the current image and the optional application of loop filtering to the reconstructed image, such as... Figure 2 As shown in the diagram. The encoding device can derive (modified) residual samples from the quantization transform coefficients using the dequantizer 234 and the inverse transformer 235, and can generate a reconstructed image based on the predicted sample as the output of S400 and the (modified) residual samples. The reconstructed image generated as described above can be the same as the reconstructed image generated by the decoding device described above. The modified reconstructed image can be generated by a loop filtering process for the reconstructed image and can be stored in the decoded image buffer or memory 270. In the same manner as the decoding device, the modified reconstructed image can be used as a reference image during inter-frame prediction during subsequent image encoding. As mentioned above, depending on the situation, part or all of the loop filtering process can be omitted. In the case of performing a loop filtering process, the (loop) filtering related information (parameters) can be encoded by the entropy encoder 240 and output as a bitstream, and the decoding device can perform the loop filtering process based on the filtering related information in the same manner as in the encoding device.
[0093] This loop filtering process reduces noise such as block artifacts and ringing artifacts that occur during image / moving image encoding, and enhances both subjective and objective visual quality. Furthermore, since both the encoding and decoding devices perform the loop filtering process, they can derive the same prediction results, improving the reliability of image encoding and reducing the amount of data transmitted for image encoding.
[0094] As described above, both the decoding and encoding devices can perform the image reconstruction process. Reconstructed blocks can be generated based on intra-frame prediction / inter-frame prediction for each block, and a reconstructed image including the reconstructed blocks can be generated. When the current image / slice / tile group is an I-type image / slice / tile group, the blocks included in the current image / slice / tile group can be reconstructed based solely on intra-frame prediction. Furthermore, when the current image / slice / tile group is a P-type or B-type image / slice / tile group, the blocks included in the current image / slice / tile group can be reconstructed based on either intra-frame prediction or inter-frame prediction. In this case, inter-frame prediction can be applied to some blocks in the current image / slice / tile group, and intra-frame prediction can be applied to the remaining blocks. The color components of the image can include luma and chroma components, and unless explicitly limited, the methods and implementations proposed in this document can be applied to both luma and chroma components.
[0095] Figure 5 An example of an illustrative video / image decoding process applicable to the embodiments described in this document is given. Figure 5 In the S500, the above references can be used. Figure 3 The entropy decoder 310 of the described decoding device is executed, S510 can be executed by predictor 330, S520 can be executed by residual processor 320, S530 can be executed by adder 340, and S540 can be executed by filter 350. S500 may include the information decoding process as described in this document, S510 may include the inter-frame / intra-frame prediction process as described in this document, S520 may include the residual processing process as described in this document, S530 may include the block / picture reconstruction process as described in this document, and S540 may include the loop filtering process as described in this document.
[0096] Reference Figure 5 The image decoding process can be schematically described as including the process of obtaining image / video information from the bitstream (through decoding) (S500), the image reconstruction process (S510 to S530), and the loop filtering process for reconstructing the image (S540), as shown in the above reference. Figure 3 As explained, the image reconstruction process can be performed based on the predicted samples and residual samples obtained through inter-frame / intra-frame prediction processing (S510) and residual processing (inverse quantization and inverse transformation of quantization transform coefficients) (S520) as described in this document. For the reconstructed image generated by the image reconstruction process, a modified reconstructed image can be generated through a loop filtering process. The modified reconstructed image can be output as a decoded image and stored in the decoded image buffer or memory 360 of the decoding device for use as a reference image in the inter-frame prediction process during subsequent image decoding.
[0097] Depending on the circumstances, the loop filtering process can be omitted, and in this case, the reconstructed image can be output as the decoded image and can also be stored in the decoded image buffer or memory 360 of the decoding device for use as a reference image in the inter-frame prediction process during subsequent image decoding. As described above, the loop filtering process (S540) may include a deblocking filtering process, a sample adaptive offset (SAO) process, an adaptive loop filter (ALF) process, and / or a bidirectional filter process, and some or all of them may be omitted. Alternatively, one or more of the deblocking filtering process, the sample adaptive offset (SAO) process, the adaptive loop filter (ALF) process, and / or the bidirectional filter process may be applied sequentially, or all of the above processes may be applied sequentially. For example, the SAO process may be performed after the deblocking filtering process is applied to the reconstructed image. Alternatively, for example, the ALF process may be performed after the deblocking filtering process is applied to the reconstructed image. These processes may even be performed in the same manner as the encoding device.
[0098] Figure 6 An example illustrates the hierarchical structure of encoded images / videos.
[0099] Reference Figure 6 Encoded images / videos are divided into the Video Coding Layer (VCL), which handles the decoding process of images / videos and is itself; the subsystem for sending and storing encoded information; and the Network Abstraction Layer (NAL), which exists between the VCL and the subsystems and is responsible for network adaptation functions.
[0100] In VCL, VCL data that includes compressed image data (slice data) can be generated, or parameter sets, picture parameter sets (PPS), sequence parameter sets (SPS), and video parameter sets (VPS) that include this information, or supplementary enhancement information (SEI) messages that are additionally required for image decoding processing can be generated.
[0101] In NAL, NAL cells can be generated by adding header information (NAL cell header) to the raw byte sequence payload (RBSP) generated in VCL. In this case, RBSP refers to slice data, parameter sets, SEI messages, etc., generated in VCL. The NAL cell header can include NAL cell type information specified according to the RBSP data included in the corresponding NAL cell.
[0102] Furthermore, based on the RBSP generated in the VCL, NAL units can be divided into VCL NAL units and non-VCL NAL units. A VCL NAL unit can refer to a NAL unit that includes information about the image (slice data), while a non-VCL NAL unit can refer to a NAL unit that includes information (parameter set or SEI message) required for decoding the image.
[0103] Depending on the subsystem's data standard, VCL NAL units and non-VCL NAL units can transmit data over a network via their attached header information. For example, NAL units can be converted to predetermined standard data formats such as H.266 / VVC file format, Real-time Transport Protocol (RTP), Transport Streaming (TS), etc., and can be transmitted over various networks.
[0104] As described above, a NAL unit can be specified using the NAL unit type based on the RBSP data structure included in the corresponding NAL unit, and information about the NAL unit type can be stored in the NAL unit header that will be notified by signaling.
[0105] For example, based on whether a NAL unit includes information about an image (slice data), NAL units can be simply divided 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 image included in the VCL NAL unit, while non-VCL NAL unit types can be classified according to the type of parameter set.
[0106] The following is an example of a NAL cell type specified based on the type of the parameter set included in a non-VCL NAL cell type.
[0107] -APS (Adaptive Parameter Set) NAL Unit: The type of NAL unit including APS.
[0108] -DPS (Decoding Parameter Set) NAL Unit: The type of NAL unit including DPS.
[0109] -VPS (Video Parameter Set) NAL Unit: Includes the type of NAL unit for the VPS.
[0110] -SPS (Sequence Parameter Set) NAL Unit: The type of NAL unit that includes SPS.
[0111] -PPS (Image Parameter Set) NAL Unit: The type of NAL unit including PPS.
[0112] -PH (Image Header) NAL Unit: The type of NAL unit including PH.
[0113] The aforementioned NAL unit type can have syntax information specific to the NAL unit type, and this syntax information can be stored in the NAL unit header that will be signaled. For example, the syntax information can be nal_unit_type, and the NAL unit type can be specified through the nal_unit_type value.
[0114] Furthermore, as mentioned above, an image can include multiple slices, and a slice can include a slice header and slice data. In this case, an image header can be further added to the multiple slices (a set of slice headers and slice data) in an image. The image header (image header syntax) can include information / parameters common to the image. In this document, tile groups can be mixed with or replaced by slices or images. Additionally, in this document, tile group headers can be mixed with or replaced by slice headers or image headers.
[0115] A slice header (slice header syntax) can include information / parameters common to slices. An APS (APS syntax) or PPS (PPS syntax) can include information / parameters common to one or more slices or images. An SPS (SPS syntax) can include information / parameters common to one or more sequences. A VPS (VPS syntax) can include information / parameters common to multiple layers. A DPS (DPS syntax) can include information / parameters common to the entire video. A DPS can include information / parameters related to the concatenation of encoded video sequences (CVS). The High-Level Syntax (HLS) in this document can include at least one of the following: APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, image header syntax, and slice header syntax.
[0116] In this document, the image / video information encoded by the encoding device and transmitted to the decoding device in the form of a bitstream can include not only segmentation-related information, intra / inter-frame prediction information, residual information, and loop filtering information in the image, but also information included in the slice header, image header, APS, PPS, SPS, VPS, and / or DPS. Additionally, the image / video information may also include information from the NAL unit header.
[0117] In this document, a table including syntax elements (syntax table) can be used to represent signaling information from the encoding device to the decoding device. The order of syntax elements in the syntax table used in this document can represent the parsing order of syntax elements from the bitstream. The encoding device can configure and encode the syntax table such that the decoding device can parse the syntax elements in the parsing order, and the decoding device can obtain the values of syntax elements by parsing and decoding the syntax elements in the corresponding syntax table from the bitstream in the parsing order.
[0118] Furthermore, as mentioned above, residual samples can be derived into quantized transform coefficients through transformation and quantization processing. Quantized transform coefficients can be referred to as transform coefficients. In this case, the transform coefficients in a block can be signaled in the form of residual information. The residual information can include residual coding syntax. That is, the encoding device can configure the residual coding syntax using the residual information and can encode the configured residual coding syntax to output the encoded residual coding syntax as a bitstream. The decoding device can derive the residual (quantized) transform coefficients by decoding the residual coding syntax from the bitstream. As described below, the residual coding syntax can include syntax elements indicating whether a transform has been applied to the corresponding block, the location of the last valid transform coefficient in the block, whether valid transform coefficients exist in the sub-block, and the size / sign of the valid transform coefficients.
[0119] For example, the (quantized) transform coefficients can be encoded and / or decoded based on syntax elements included in the residual information, such as last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, par_level_flag, abs_level_gtX_flag, abs_remainder, coeff_sign_flag, and dec_abs_level. This can be referred to as residual (data) encoding or (transform) coefficient encoding. In this case, the transform / quantization process can be omitted. In this case, the values of the residual samples can be encoded and signaled according to the determined method. The syntax elements related to residual data encoding / decoding can be represented as shown in Table 1 below.
[0120] [Table 1]
[0121]
[0122]
[0123]
[0124]
[0125] Referring to Table 1, `last_sig_coeff_x_prefix`, `last_sig_coeff_y_prefix`, `last_sig_coeff_x_suffix`, and `last_sig_coeff_y_suffix` are syntax elements used to encode the (x,y) position information of the last non-zero coefficient in an associated block. An associated block can be a coded block (CB) or a transform block (TB). CB and TB can be used interchangeably for transform (and quantization) and residual coding processes. For example, residual samples can be derived for a CB, and transform coefficients can be derived (quantized) by transforming and quantizing the residual samples as described above. Information (or syntax elements) that efficiently represent (quantize) the transform coefficients (position, size, and sign) can be generated and signaled through residual coding processes. Quantized transform coefficients can be simply referred to as transform coefficients. Typically, if the CB is not greater than the maximum TB, the size of the CB can be equal to the size of the TB, and in this case, the target block that is transformed (and quantized) and residual coded can be referred to as either a CB or a TB. Additionally, if the CB is greater than the maximum TB, the target block that is transformed (and quantized) and residual-coded can be referred to as the TB. In the following description, although it is illustrated that signaling of syntax elements related to residual coding is done in units of transform blocks (TB), this is exemplary, and TB can be used interchangeably with the coded blocks (CB) as described above.
[0126] Furthermore, different residual coding methods can be applied depending on whether transform skipping is applied to the residual coding. As an implementation, a transform skip flag syntax element can be used to indicate whether transform skipping is applied, and the residual coding can be branched according to the value of the transform_skip_flag syntax element. That is, different syntax elements can be used for the residual coding based on the value of the transform skip flag (based on whether transform skipping is applied). The residual coding used when transform skipping is not applied (i.e., when transform is applied) can be called regular residual coding (RRC), and the residual coding used when transform skipping is applied (i.e., when transform is not applied) can be called transform skipped residual coding (TSRC).
[0127] Table 2 below shows the processing of residual coding based on syntax elements that branch using the transform skip flag.
[0128] [Table 2]
[0129]
[0130] Referring to Table 2 above, when transform skipping is not applied (e.g., when the value of transform_skip_flag is 0), regular residual coding is performed, and this can be performed based on the syntax elements disclosed in Table 1 above. Alternatively, when transform skipping is applied (e.g., when the value of transform_skip_flag is 1), transform skipped residual coding is performed, and this can be performed based on the syntax elements disclosed in Table 3 below.
[0131] Table 3 below shows the syntax elements for transforming and skipping residual encoding.
[0132] [Table 3]
[0133]
[0134]
[0135] For example, the transform skip flag, which indicates whether to perform a transform skip in a transform block, can be parsed, and it can be determined whether the transform skip flag is 1. When the transform skip flag is 1, as shown in Table 3, the syntax elements sig_coeff_flag, coeff_sign_flag, abs_level_gtx_flag, par_level_flag, and / or abs_remainder for the residual coefficients of the transform block can be parsed, and the residual coefficients can be derived based on the syntax elements. In this case, the syntax elements can be parsed sequentially, and the parsing order can be changed. Here, abs_level_gtx_flag can represent abs_level_gt1_flag, abs_level_gt3_flag, abs_level_gt5_flag, abs_level_gt7_flag, and / or abs_level_gt9_flag. For example, `abs_level_gtx_flag[n][j]` can be a flag indicating whether the absolute value of the transform coefficient level at scan position n (or the value obtained by shifting the transform coefficient level one bit to the right) is greater than `(j<<1)+1`. In some cases, `(j<<1)+1` can be replaced by a specific threshold such as a first threshold or a second threshold.
[0136] Additionally, when the transform skip flag is 0, as shown in Table 1, the syntax elements sig_coeff_flag, abs_level_gtx_flag, par_level_flag, abs_remainder, dec_abs_level, and coeff_sign_flag for the residual coefficients of the transform block can be parsed, and the residual coefficients can be derived based on the syntax elements. In this case, the syntax elements can be parsed sequentially, and the parsing order can be changed. Here, abs_level_gtx_flag can represent abs_level_gt1_flag and / or abs_level_gt3_flag.
[0137] Furthermore, as mentioned above, the encoding device can derive residual blocks (residual samples) based on prediction blocks (prediction samples) through intra / inter / IBC / palette prediction, and derive quantization transform coefficients by applying transform and quantization to the derived residual samples. Information about the quantization transform coefficients (residual information) can be included in the residual coding syntax and can be output as a bitstream after encoding. The decoding device can obtain information about the quantization transform coefficients (residual information) from the bitstream and derive the quantization transform coefficients by decoding the obtained information. The decoding device can derive residual samples by inverse quantization / inverse transform based on the quantization transform coefficients. As mentioned above, at least one of quantization / inverse quantization and / or transform / inverse transform can be omitted. When transform / inverse transform is omitted, transform coefficients can be referred to as coefficients or residual coefficients, or for consistency, they can still be referred to as transform coefficients. The `transform_skip_flag` can be used to signal whether transform / inverse transform is omitted. For example, if the value of transform_skip_flag is 1, it can indicate that the transform / inverse transform is omitted, and this can be called the transform skip mode.
[0138] In video / image coding, the quantization rate can typically be changed, and the compression ratio can be adjusted using the changed quantization rate. From an implementation perspective, considering complexity, a quantization parameter (QP) can be used instead of the quantization rate directly. For example, a quantization parameter with integer values ranging from 0 to 63 can be used, and each value of the quantization parameter can correspond to the actual quantization rate. Additionally, for example, the quantization parameter QP for the luma component (luma sample) can be configured differently. Y The quantization parameter QPc for the chromaticity component (chromaticity sample).
[0139] In quantization processing, the input transform coefficients C can be divided by the quantization rate Q. stepTo obtain the quantization transform coefficients C', in this case, considering computational complexity, the quantization rate can be obtained in integer form by multiplying the quantization rate by the scale, and the number of shift operations can be performed as many as the value corresponding to the scale. The quantization scale can be derived based on the product of the quantization rate and the scale value. That is, the quantization scale can be derived from the QP. For example, the quantization scale can be applied to the transform coefficients C, and based on this, the quantization transform coefficients C' can be derived.
[0140] Inverse quantization is the opposite of quantization, and the quantization transform coefficients C' can be related to the quantization rate Q. step Multiplying these, and based on this, the reconstructed transform coefficients C' can be obtained. In this case, the level scale can be derived from the quantization parameters, and the level scale can be applied to the vectorized transform coefficients C', and based on this, the reconstructed transform coefficients C' can be derived. Due to losses in the transform and / or quantization processes, the reconstructed transform coefficients C'' differ slightly from the initial transform coefficients C. Therefore, the encoding device even performs inverse quantization in the same way as in the decoding device.
[0141] Additionally, when performing prediction, it can be based on palette encoding. Palette encoding is a useful technique for representing blocks that comprise a small number of unique color values. As an alternative to applying prediction and transformation to blocks, in palette mode, an index is signaled to represent the value of each sample. Palette mode is useful for saving video memory buffer space. Palette mode (e.g., MODE_PLT) can be used to encode blocks. To decode the encoded blocks as described above, the decoder should decode the palette entries and indices. Palette entries can be represented by a palette table and can be encoded by a palette table encoding tool.
[0142] Palette coding can be referred to as (intra-frame) palette mode or (intra-frame) palette coding scheme. The current block can be reconstructed based on palette coding or palette mode. Palette coding can be considered an example of intra-frame coding, or one of the intra-frame prediction methods. However, in a manner similar to the skip mode described above, the individual residual values for the corresponding block can be notified without signaling.
[0143] For example, when a palette mode is selected, information about the palette table can be signaled. The palette table can include an index corresponding to each pixel. The palette table can be configured with the palette prediction table from pixel values used in previous blocks. For example, previously used pixel values can be stored in a specific buffer (palette predictor), and palette predictor information `palette_predictor_run` for configuring the current palette can be received from the buffer. That is, the palette predictor can include data representing at least a portion of the palette index map used for the current block. If the palette entries used to represent the current block are insufficient for the palette prediction entries configured from the palette predictor, pixel information about the current palette entries can be sent separately.
[0144] Palette mode can be signaled at the CU level and is typically used when most pixels in the CU can be represented as a representative set of pixel values. That is, in palette mode, samples in the CU can be represented as a representative set of pixel values. This set can be called a palette. When a sample has a value close to a pixel value in the palette, the palette index corresponding to the pixel value (palette_idx_idc) or information indicating that index (run_copy_flag, copy_above_palette_indices_flag) can be signaled. When a sample has a pixel value that does not include a palette entry, the sample can be indicated as an escape character, and the quantized sample value can be signaled directly. In this document, a pixel or pixel value can be referred to as a sample or sample value.
[0145] To decode blocks encoded in palette mode, the decoder needs palette entry information and palette index information. Where the palette index corresponds to an escape character, the (quantization) escape value can be signaled as an additional component. Additionally, the encoder should derive the appropriate palette for the corresponding CU and transmit the palette to the decoder.
[0146] For efficient encoding of palette entries, a palette predictor can be maintained. The maximum size of the palette predictor and the palette can be signaled via SPS. Alternatively, the maximum size of the palette predictor and the palette can be predefined. For example, the maximum size of the palette predictor and the palette can be defined as 31 and 15 respectively, depending on whether the current block is a single-tree or a dual-tree. In the VVC standard, the `sps_palette_enabled_flag` indicating whether palette mode is enabled can be sent. Then, the `pred_mode_plt_coding` flag indicating whether the current coding unit is encoded in palette mode can be sent. The palette predictor can be initialized at the beginning of each brick or each slice.
[0147] For each entry in the palette predictor, a reuse flag can be signaled, indicating whether the entry is part of the current palette. The reuse flag can be sent using run-length encoding with zeros. Subsequently, the number of new palette entries can be signaled using zero-order exponent Golomb encoding. Finally, the component values of the new palette entries can be signaled. After encoding the current CU, the palette predictor can be updated using the current palette, and entries from previous palette predictors that are not reused in the current palette can be added to the end of the new palette predictor (palette filling) until it reaches the maximum permissible size.
[0148] To encode the palette index map, the index can be encoded using horizontal and vertical traversal scans. The scan order can be explicitly signaled from the bitstream using flag information (e.g., palette_transpose_flag).
[0149] Furthermore, two palette sample modes can be used to encode the palette index, and for example, "INDEX" mode and "COPY_ABOVE" mode can be used. A flag indicating whether the palette mode is "INDEX" or "COPY_ABOVE" mode can be used to signal this palette mode. In this case, escape symbols can be signaled in "INDEX" mode, and indexes of the same size as the current palette size can be assigned. For example, if the current palette size is assumed to be 10, indices 0 through 9 can refer to the indexes of entries in the palette, and index 10 can refer to the index of escape symbols. When using a horizontal scan, the flag can be signaled except for the top row, and when using a vertical scan or when the previous mode was "COPY_ABOVE," the flag can be signaled except for the first column. In "COPY_ABOVE" mode, the palette index of the sample in the top row can be copied. In "INDEX" mode, the palette index can be explicitly signaled. In both "INDEX" and "COPY_ABOVE" modes, a signal can be sent indicating the number of subsequent samples encoded using the same mode. When escape characters are part of the operation in either "INDEX" or "COPY_ABOVE" mode, the escape component value can be signaled for each escape character.
[0150] The encoding of the palette indexes can be as follows. First, the number of indices in the CU can be signaled. Next, a fixed-length code can be used to signal the actual number of indices in the entire CU. The number of indices and the indices themselves can be encoded in bypass mode. Accordingly, the bypass bins associated with the indices can be grouped together. Next, the palette sample pattern `copy_above_palette_indices_flag` and the run can be signaled in an interleaved manner. Finally, the component escape values corresponding to the escape samples of the entire CU can be grouped together and encoded in bypass mode.
[0151] Table 4 below shows an example of a grammatical structure that includes grammatical elements related to the encoding of a palette-based pattern for encoding units, and Table 5 below shows the semantics of the grammatical elements included in the grammar of Table 4.
[0152] [Table 4]
[0153]
[0154]
[0155]
[0156] [Table 5]
[0157]
[0158]
[0159]
[0160]
[0161] Referring to Tables 4 and 5 above, when applying the palette mode to the current block (i.e., the current coding unit), the palette coding syntax (e.g., palette_coding()) in Table 4 above can be parsed / signed.
[0162] For example, a palette table can be configured based on palette entry information. Palette entry information can include syntax elements such as palette_predictor_run, num_signalled_palette_entries, and new_palette_entries.
[0163] Additionally, a palette index map for the current block can be configured based on palette index information. Palette index information can include syntax elements such as `num_palette_indices_minus1`, `palette_idx_idc`, and `palette_transpose_flag`. Based on the palette index information described above, a palette index map (e.g., `PaletteIndexMap`) can be configured by deriving the palette indices (e.g., `PaletteIndexIdc`) of samples in the current block while looping along the traversal scan direction (vertical or horizontal).
[0164] In addition, based on the palette index graph, the sample values of palette entries in the palette table can be derived, and the reconstruction samples of the current block can be generated based on the sample values mapped to the palette entries.
[0165] Additionally, if samples with escape values exist in the current block (i.e., when `palette_escape_val_present_flag` is 1), the escape values for the current block can be inferred based on the escape information. Escape information can include syntax elements such as `palette_escape_val_present_flag` and `palette_escape_val`. For example, based on quantized escape value information (e.g., `palette_escape_val`), the escape values of escape-coded samples in the current block can be inferred. Reconstructed samples of the current block can be generated based on these escape values.
[0166] Furthermore, in the encoding / decoding process, block differential pulse code modulation or block-based delta pulse code modulation (BDPCM) techniques can be used. BDPCM can also be named delta pulse code modulation based on quantization residual blocks (RDPCM).
[0167] When predicting blocks using BDPCM, reconstructed samples can be used to predict rows or columns of the block row by row. In this case, the reference samples used can be unfiltered samples. The BDPCM direction can indicate whether vertical or horizontal prediction was used. That is, when applying BDPCM, either the vertical or horizontal direction can be chosen as the BDPCM direction, and prediction can be performed in the BDPCM direction. The prediction error can be quantized in the spatial domain, and the sample can be reconstructed by adding the inverse-quantized prediction error to the prediction (i.e., the prediction sample). The prediction error may refer to the residual. Quantization residual domain BDPCM can be proposed as an alternative to BDPCM, and the prediction direction or signaling can be equal to that applied to the spatial domain BDPCM. That is, after the quantization coefficients themselves are established by quantization residual domain BDPCM as in incremental pulse code modulation (DPCM), the residual can be reconstructed by inverse quantization. Therefore, quantization residual domain BDPCM can be used as a representation of applying DPCM at the residual coding end. The quantized residual domain used below is obtained by quantizing the residuals derived from the prediction without any transformation, and refers to the domain used to quantize the residual samples. For example, the quantized residual domain may include quantized residuals (or quantized residual coefficients) that have been skipped by the applied transformation, i.e., the transformation is skipped for the residual samples but quantization is applied to them. Alternatively, the quantized residual domain may include, for example, quantized transformation coefficients.
[0168] As described above, BDPCM can be applied to the quantization residual domain, which may include the quantization residuals (or quantization residual coefficients), and in this case, transform skipping can be applied to the residuals. That is, when applying BDPCM, transforms can be skipped, and quantization can be applied to the residual samples. Additionally, the quantization residual domain may include quantization transform coefficients. A flag indicating whether BDPCM is applicable can be signaled at the sequence level (SPS), and this flag can only be signaled if a transform skipping mode is possible at the SPS. This flag can be referred to as the BDPCM enable flag or the SPS BDPCM enable flag.
[0169] When applying BDPCM, intra-frame prediction can be performed on the entire block by sample copying based on a prediction direction similar to the intra-frame prediction direction (e.g., vertical or horizontal prediction). The residual, which is the difference between the original block and the predicted block, can be quantized by skipping the transform, and the increment value, i.e., the difference between the quantized residual and the predictor in the horizontal or vertical direction (i.e., the quantized residual in the horizontal or vertical direction), can be encoded.
[0170] If BDPCM is applicable, the CU size can be equal to or smaller than the MaxTsSize (maximum transform skip block size) of the luma samples, and if the CU is encoded via intra-frame prediction, flag information can be sent at the CU level. This flag information can be referred to as the BDPCM flag. Here, MaxTsSize can mean the maximum block size allowed for transform skip patterns. The flag information can indicate whether typical intra-frame coding or BDPCM is applied. If BDPCM is applied, a BDPCM prediction direction flag indicating whether the prediction direction is horizontal or vertical can be sent. This BDPCM prediction direction flag can be referred to as the BDPCM direction flag. Subsequently, blocks can be predicted using typical horizontal or vertical intra-frame prediction processing with unfiltered reference samples. Additionally, residuals can be quantized, and the difference between the quantized residuals and the predictor (e.g., between quantized residuals at surrounding positions in the horizontal or vertical direction according to the BDPCM prediction direction) can be encoded.
[0171] Furthermore, as mentioned above, the information (syntax elements) in the syntax tables disclosed in this document can be included in image / video information and can be configured / encoded by the encoding device for transmission to the decoding device as a bitstream. The decoding device can parse / decode the information (syntax elements) in the corresponding syntax tables. The decoding device can perform decoding processing (prediction, residual processing (based on transform skipping), BDPCM, and palette encoding) on the current block based on the decoding information.
[0172] The following section of this document presents an efficient scheme for parsing / signaling syntax elements that depend on high-level syntax elements related to transform skipping and / or palette encoding. Specifically, according to the implementation of this document, during video / image encoding, whether or not encoding is performed can be categorized based on the dependency and non-dependency of absolutely necessary or auxiliary information used when performing transform skipping and / or palette encoding, thus enabling efficient encoding.
[0173] In video coding, the switching of encoding tools can be defined in a specific High-Level Syntax Set (HLS). In the case of VVC in related technologies, flag information about the corresponding encoding tool can be defined in the Sequence Parameter Set (SPS). Furthermore, in VVC, standardization has been moving towards independence between various High-Level Syntax Sets (e.g., Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Adaptive Parameter Set (APS), Decoding Parameter Set (DPS), and slice headers). Therefore, in a High-Level Syntax Set where flags for encoding tools exist, there are multiple dependent syntax elements. In the implementation of this document, a method is proposed for parsing / signaling dependent High-Level Syntax Elements according to transform skipping and / or palette coding.
[0174] As an implementation method, this document proposes a method for saving transmitted bits by enabling syntax elements that depend on high-level syntax elements related to transform skip to determine whether to perform parsing / signaling notification based on dependency conditions. As an example, a method for parsing high-level syntax elements that depend on whether transform skip is used based on a transform skip (enabled) flag is proposed.
[0175] For example, as syntax elements that rely on transform-skip-based encoding, there are transform-skip (enabled) flags (e.g., `sps_transform_skip_enabled_flag`), minimum quantization parameter information for transform skipping (e.g., `min_qp_prime_ts_minus4`), and information about whether BDPCM is applied (e.g., `sps_bdpcm_enabled_flag`). As an example, if the transform-skip (enabled) flag is defined as 1, it should be necessary to send the relevant flag or information syntax elements, while if the transform-skip (enabled) flag is defined as 0, no syntax elements other than the transform-skip (enabled) flag syntax element need to be sent.
[0176] That is, a method is proposed for sending high-level syntax elements that depend on whether transform skipping is performed, such as minimum quantization parameter information for transform skipping blocks and whether BDPCM is applied during transform skipping, based on the value of a transform skip (enabled) flag in a high-level syntax HLS (e.g., VPS, SPS, PPS, APS, DPS, and slice header). Furthermore, the proposed method is not limited to the syntax elements mentioned in this embodiment, but can include all high-level syntax elements defined in a high-level syntax set that has a dependency on whether transform skipping is performed and includes a transform skip (enabled) flag.
[0177] As mentioned above, the syntax elements associated with transform-skipping encoding can be defined in the high-level syntax set and in the sequence parameter set (SPS), as in the implementation shown in Table 6 below.
[0178] [Table 6]
[0179]
[0180] Additionally, for example, the semantics of the syntax elements in the above-described implementation of the SPS syntax can be represented as shown in Table 7 below.
[0181] [Table 7]
[0182]
[0183] Referring to Tables 6 and 7 above, the syntax elements related to transformation skipping can be defined in SPS and may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, and min_qp_prime_ts_minus4.
[0184] The `sps_transform_skip_enabled_flag` syntax element can indicate whether transform skipping is enabled based on its value being 0 or 1. For example, if `sps_transform_skip_enabled_flag` is 1, it indicates that transform skipping is enabled, and in this case, `transform_skip_flag` can be parsed / signed in the transform unit syntax. Here, the `transform_skip_flag` syntax element can indicate whether a transform can be applied to the corresponding associated transform block. If `sps_transform_skip_enabled_flag` is 0, it indicates that transform skipping is not enabled, and in this case, `transform_skip_flag` does not need to be parsed / signed in the transform unit syntax. In other words, the presence of the `transform_skip_flag` in the transform unit syntax can be indicated based on the transform skip enabling flag `sps_transform_skip_enabled_flag`.
[0185] The `sps_bdpcm_enabled_flag` syntax element can indicate whether BDPCM is enabled based on its value being 0 or 1. For example, if `sps_bdpcm_enabled_flag` is 1, it indicates that BDPCM is enabled, and in this case, the `intra_bdpcm_flag` (or `intra_bdpcm_luma_flag` and `intra_bdpcm_chroma_flag`) can be parsed / signed through the coding unit syntax of the intra coding unit. Here, the `intra_bdpcm_flag` syntax element can indicate whether BDPCM is applied to the current coding block. If `sps_bdpcm_enabled_flag` is 0, it indicates that BDPCM is not enabled, and in this case, the `intra_bdpcm_flag` (or `intra_bdpcm_luma_flag` and `intra_bdpcm_chroma_flag`) does not need to be parsed / signed in the coding unit syntax of the intra coding unit. In other words, the presence of intra_bdpcm_flag (or intra_bdpcm_luma_flag and intra_bdpcm_chroma_flag) in the coding unit syntax can be indicated by the BDPCM enabling flag sps_bdpcm_enabled_flag.
[0186] The `min_qp_prime_ts_minus4` syntax element can represent the minimum allowed quantization parameter for transform skip mode. For example, based on the `min_qp_prime_ts_minus4` syntax element, the minimum quantization parameter value in transform skip mode (e.g., `QpPrimeTsMin`) can be derived. Based on the minimum quantization parameter in transform skip mode, the quantization parameter used in scaling (inverse quantization) can be derived. Furthermore, the scaling transform coefficients (inverse quantization transform coefficients) can be derived by performing scaling (inverse quantization) on the current block based on the quantization parameters, and based on this, the residual samples of the current block can be derived.
[0187] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., `sps_transform_skip_enabled_flag`) among syntax elements related to transform skipping can be defined. For example, as disclosed in Tables 6 and 7 above, the `min_qp_prime_ts_minus4` syntax element, which represents the minimum quantization parameter information of the transform skip block in transform skip mode, and the `sps_bdpcm_enabled_flag` syntax element, which indicates whether BDPCM is enabled, can be dependent on the value of the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`) in SPS. As an example, if the value of the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`) is 1, then the `min_qp_prime_ts_minus4` syntax element and the `sps_bdpcm_enabled_flag` syntax element can be parsed / signaled. Additionally, if the value of the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 0, then the min_qp_prime_ts_minus4 syntax element and the sps_bdpcm_enabled_flag syntax element may not be parsed / signaled.
[0188] Furthermore, as an implementation method, this document proposes a method for saving transmitted bits by enabling syntax elements that depend on high-level syntax elements related to transform skip to determine whether to perform parsing / signaling notification based on dependency conditions. As an example, a method for parsing high-level syntax elements that depend on whether transform skip is used based on a transform skip (enabled) flag is proposed.
[0189] For example, as syntax elements that rely on transform-skip-based encoding, there are transform-skip (enabled) flags (e.g., `sps_transform_skip_enabled_flag`), information about the size of the transform-skip application (e.g., `log2_transform_skip_max_size_minus2`), minimum quantization parameter information for transform-skip (e.g., `min_qp_prime_ts_minus4`), and information about whether BDPCM is applied (e.g., `sps_bdpcm_enabled_flag`). As an example, if the transform-skip (enabled) flag is defined as 1, it should be necessary to send the relevant flag or information syntax elements, while if the transform-skip (enabled) flag is defined as 0, no syntax elements other than the transform-skip (enabled) flag syntax element need to be sent.
[0190] That is, a method is proposed for sending high-level syntax elements that depend on whether a transform skip is performed, such as the maximum size of the transform skip application, minimum quantization parameter information, and whether BDPCM is applied during transform skipping, based on the value of the transform skip (enable) flag in the high-level syntax HLS (e.g., VPS, SPS, PPS, APS, DPS, and slice header). Furthermore, the proposed method is not limited to the syntax elements mentioned in this embodiment, but can include all high-level syntax elements defined in a high-level syntax set that has a dependency on whether a transform skip is performed and includes the transform skip (enable) flag.
[0191] As mentioned above, the syntax elements related to transform-skip-based encoding can be defined in the high-level syntax set and in the sequence parameter set (SPS), as in the implementation shown in Table 8 below. However, the maximum block size information for transform skipping, which is defined in the picture parameter set (PPS) in related technologies, can be redefined in the SPS to avoid dependencies between HLS, and this can be represented as shown in Table 8 below.
[0192] [Table 8]
[0193]
[0194] Additionally, for example, the semantics of the syntax elements in the above-described implementation of the SPS syntax can be represented as shown in Table 9 below.
[0195] [Table 9]
[0196]
[0197] Referring to Tables 8 and 9 above, syntax elements related to transformation skipping can be defined in SPS and may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, min_qp_prime_ts_minus4, and log2_transform_skip_max_size_minus2.
[0198] Here, since the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag and min_qp_prime_ts_minus4 have been described in detail in Tables 6 and 7 above, their detailed descriptions will be omitted in this embodiment for ease of explanation.
[0199] The `log2_transform_skip_max_size_minus2` syntax element can represent the maximum block size used in transform skip mode. In this case, the `log2_transform_skip_max_size_minus2` syntax element can be in the range of 0 to 3. For example, as disclosed in Table 9 above, the maximum block size used in transform skip mode (e.g., `MaxTsSize`) can be derived based on calculations such as 1 << (log2_transform_skip_max_size_minus2 + 2).
[0200] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) among syntax elements related to transform skip can be defined. For example, as disclosed in Tables 8 and 9 above, in SPS, the sps_bdpcm_enabled_flag syntax element indicating whether BDPCM is enabled based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag), the min_qp_prime_ts_minus4 syntax element indicating the minimum quantization parameter information for transform skip blocks in transform skip mode, and the log2_transform_skip_max_size_minus2 syntax element indicating the maximum block size used in transform skip mode can be dependent. As an example, if the transform skip enabled flag (e.g., `sps_transform_skip_enabled_flag`) is 1, then the syntax elements `sps_bdpcm_enabled_flag`, `min_qp_prime_ts_minus4`, and `log2_transform_skip_max_size_minus2` can be parsed / signed. Conversely, if the transform skip enabled flag (e.g., `sps_transform_skip_enabled_flag`) is 0, then the syntax elements `sps_bdpcm_enabled_flag`, `min_qp_prime_ts_minus4`, and `log2_transform_skip_max_size_minus2` can not be parsed / signed.
[0201] Furthermore, as an implementation method, this document proposes a method for saving transmitted bits by enabling syntax elements that depend on transform skip-related high-level syntax elements and palette-encoded high-level syntax elements to determine whether to perform parsing / signaling notification based on dependency conditions. As an example, a method for parsing dependent high-level syntax elements is proposed using a transform skip (enabled) flag and / or a palette-encoded (enabled) flag.
[0202] For example, as syntax elements that depend on transform-skip-based encoding, there exist transform-skip (enabled) flags (e.g., `sps_transform_skip_enabled_flag`), information about the size of the transform-skip application (e.g., `log2_transform_skip_max_size_minus2`), minimum quantization parameter information for transform-skip (e.g., `min_qp_prime_ts_minus4`), and information about whether BDPCM is applied (e.g., `sps_bdpcm_enabled_flag`). Additionally, as mentioned above, since escape values do not change during palette encoding, the minimum quantization parameter information for transform-skip can be used when performing quantization. Therefore, the palette encoding (enabled) flags (e.g., `sps_palette_enabled_flag`) for palette-pattern-based encoding and the minimum quantization parameter information during transform-skip (e.g., `min_qp_prime_ts_minus4`) can be dependent. As an example, if the value of the transform skip (enabled) flag or the palette encoding (enabled) flag is defined as 1, it should be necessary to send the relevant flag or information syntax element, while if the value of the transform skip (enabled) flag or the palette encoding (enabled) flag is defined as 0, it is not necessary to send any syntax elements other than the corresponding flag syntax elements.
[0203] That is, a method is proposed for sending information such as the maximum size of transform skip application, the minimum quantization parameter information during transform skip, and whether BDPCM is applied, which depend on whether transform skip or palette encoding is performed, based on the value of the transform skip (enabled) flag and / or the value of the palette encoding (enabled) flag in the high-level syntax (e.g., VPS, SPS, PPS, APS, DPS, and slice header).
[0204] For example, (i) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are defined as 1, syntax elements corresponding to the union of syntax elements that depend on both the transform skip (enabled) flag and the palette encoding (enabled) flag can be parsed. (ii) when the transform skip (enabled) flag is defined as 1 and the palette encoding (enabled) flag is 0, syntax elements that depend on the transform skip (enabled) flag can be parsed. (iii) when the transform skip (enabled) flag is defined as 0 and the palette encoding (enabled) flag is 1, syntax elements that depend on the palette encoding (enabled) flag can be parsed. (iv) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are 0, other high-level syntax elements that depend on both encoding tools can be left unparsed.
[0205] The parsing order of the syntax elements mentioned in this embodiment is not specifically restricted, and they are considered consistent with each other when determining whether to perform parsing based on the dependencies between syntax elements. Furthermore, the proposed method is not limited to the syntax elements mentioned in this embodiment, but can have dependencies depending on whether transform skipping or palette encoding is performed, and can include all high-level syntax elements defined in a high-level syntax set that includes transform skipping (enabled) flags and palette encoding (enabled) flags.
[0206] As mentioned above, the syntax elements associated with transform-skip-based encoding and / or palette-pattern-based encoding can be defined in the high-level syntax set and in the sequence parameter set (SPS), as in the implementation of Table 10 below.
[0207] [Table 10]
[0208]
[0209] Additionally, for example, the semantics of the syntax elements in the above-described implementation of the SPS syntax can be represented in Table 11 below.
[0210] [Table 11]
[0211]
[0212] Referring to Tables 10 and 11 above, in SPS, syntax elements related to transform skipping and / or palette encoding can be defined, and may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, sps_palette_enabled_flag, and min_qp_prime_ts_minus4.
[0213] Since the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag and min_qp_prime_ts_minus4 have been described in detail in Tables 6 to 9 above, their detailed descriptions will be omitted in this embodiment for ease of explanation.
[0214] The `sps_palette_enabled_flag` syntax element can indicate whether palette encoding (i.e., palette prediction mode) is enabled based on its value being 0 or 1. For example, if `sps_palette_enabled_flag` is 1, it indicates that palette encoding is enabled, and in this case, `pred_mode_plt_flag` can be parsed / signaled in the encoding unit syntax. Here, the `pred_mode_plt_flag` syntax element can indicate whether palette mode can be used for the current encoding unit. If `sps_palette_enabled_flag` is 0, it indicates that palette encoding is not enabled, and in this case, `pred_mode_plt_flag` does not need to be parsed / signaled in the encoding unit syntax. In other words, the presence of `pred_mode_plt_flag` in the encoding unit syntax can be indicated based on the palette encoding enable flag `sps_palette_enabled_flag`.
[0215] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., `sps_transform_skip_enabled_flag`) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 10 and 11 above, in SPS, the `sps_bdpcm_enabled_flag` syntax element, which indicates whether BDPCM is enabled based on the value of the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`), can be dependent. As an example, if the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`) has a value of 1, the `sps_bdpcm_enabled_flag` syntax element can be parsed / signaled. Conversely, if the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`) has a value of 0, the `sps_bdpcm_enabled_flag` syntax element can not be parsed / signaled.
[0216] Additionally, in SPS, dependency conditions can be defined for palette encoding enable flag syntax elements (e.g., `sps_palette_enabled_flag`) that relate to transform skipping and / or palette encoding. For example, as disclosed in Tables 10 and 11 above, in SPS, the palette encoding enable flag syntax element (e.g., `sps_palette_enabled_flag`) can be parsed / signaled based on the `chroma_format_idc` syntax element. As an example, if the value of the `chroma_format_idc` syntax element is 3, the `sps_palette_enabled_flag` syntax element can be parsed / signaled.
[0217] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 10 and 11 above, in SPS, the min_qp_prime_ts_minus4 syntax element, which represents the minimum quantization parameter information in transform skip mode, can be dependent on the values of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag). As an example, the min_qp_prime_ts_minus4 syntax element can be parsed / signaled if the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 1 or the palette encoding enabled flag (e.g., sps_palette_enabled_flag) is 1.
[0218] Furthermore, as mentioned above, the syntax elements related to transform-skip-based encoding and / or palette-pattern-based encoding can be defined in the high-level syntax set, and as in the implementation shown in Table 12 below, can be defined in the sequence parameter set (SPS). However, the maximum block size information for transform skipping, defined in the related art picture parameter set (PPS), can be redefined in the SPS to avoid dependencies between HLSs, and this can be represented as shown in Table 12 below.
[0219] [Table 12]
[0220]
[0221] Additionally, for example, the semantics of the syntax elements used in the above implementation of the SPS syntax can be represented as shown in Table 13 below.
[0222] [Table 13]
[0223]
[0224] Referring to Tables 12 and 13 above, in SPS, syntax elements related to transform skipping and / or palette encoding can be defined, and may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, log2_transform_skip_max_size_minus2, sps_palette_enabled_flag, and min_qp_prime_ts_minus4.
[0225] Here, since the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, log2_transform_skip_max_size_minus2, sps_palette_enabled_flag and min_qp_prime_ts_minus4 have been described in detail in Tables 6 to 11 above, their detailed descriptions will be omitted in this embodiment for ease of explanation.
[0226] As disclosed in the embodiments of Tables 12 and 13 above, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 12 and 13 above, in SPS, the sps_bdpcm_enabled_flag syntax element indicating whether BDPCM is enabled based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and the log2_transform_skip_max_size_minus2 syntax element indicating the maximum block size used in transform skip mode can be dependent. As an example, if the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) is 1, the sps_bdpcm_enabled_flag and log2_transform_skip_max_size_minus2 syntax elements can be parsed / signaled. Additionally, if the value of the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 0, then the syntax elements sps_bdpcm_enabled_flag and log2_transform_skip_max_size_minus2 may not be parsed / signaled.
[0227] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 12 and 13 above, the min_qp_prime_ts_minus4 syntax element, which represents the minimum quantization parameter information of the transform skip mode based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag), can be dependent in SPS. As an example, the min_qp_prime_ts_minus4 syntax element can be parsed / signaled if the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 1 or the palette encoding enabled flag (e.g., sps_palette_enabled_flag) is 1.
[0228] In addition, the source or encoded picture / image may include an array of luminance components, and in some cases, may also include two arrays of chrominance components (cb, cr), that is, a pixel of the picture / image may include a luminance sample and a chrominance sample (cb, cr).
[0229] A color format can represent a configuration format for the luminance and chrominance components (cb, cr) and can be referred to as a chrominance format. A color format (or chrominance format) can be predefined or can be adaptively signaled. For example, a chrominance format can be signaled based on at least one of chroma_format_idc and separate_colour_plane_flag, as shown in Table 14 below.
[0230] [Table 14]
[0231] chroma_format_idc separate_colour_plane_flag Color format SubWidthC SubHeigbtC 0 0 monochrome 1 1 1 0 4:2:0 2 2 2 0 4:2:2 2 1 3 0 4:4:4 1 1 3 1 4:4:4 1 1
[0232] Referring to Table 14 above, in monochrome sampling, only one sample array is nominally considered as a luminance array.
[0233] In 4:2:0 sampling, each of the two chroma arrays has half the height and half the width of the luminance array.
[0234] In 4:2:2 sampling, each of the two chroma arrays has the same height and half the width as the luminance array.
[0235] In 4:4:4 sampling, the following can be applied according to the value of separate_colour_plane_flag.
[0236] - If the value of separate_colour_plane_flag is 0, then each of the two chroma arrays has the same height and the same width as the luminance array.
[0237] Otherwise, if the value of separate_colour_plane_flag is 1, the three color planes can be processed as monochrome sampled images respectively.
[0238] SubWidthC and SubHeightC can represent the ratio between luma samples and chroma samples. For example, if chroma_format_idc is 3, the chroma format is 4:4:4, and in this case, if the width of the luma sample block is 16, the width of the corresponding chroma sample block can be 16 / SubWidthC. Typically, chroma sample-related syntax and bitstreams can only be parsed if the chroma array type (e.g., chromaArrayType) is not 0.
[0239] Furthermore, as an implementation method, this document proposes a method for saving transmitted bits by enabling high-level elements that depend on transform skip-related high-level syntax elements and palette-encoded high-level syntax elements to determine whether to perform parsing / signaling notification based on dependency conditions. As an example, a method for parsing dependent high-level syntax elements using transform skip (enable) flags and palette-encoded (enable) flags is proposed.
[0240] For example, as syntax elements that rely on transform-skip-based encoding, there are transform-skip (enabled) flags (e.g., `sps_transform_skip_enabled_flag`), information about the size of the transform-skip application (e.g., `log2_transform_skip_max_size_minus2`), minimum quantization parameter information during transform-skip (e.g., `min_qp_prime_ts_minus4`), and information about whether BDPCM is applied (e.g., `sps_bdpcm_enabled_flag`). Additionally, as mentioned above, since escape values do not change during palette encoding, the minimum quantization parameter information for transform-skip can be used when performing quantization.
[0241] As illustrated in the above embodiments, if the value of the transform skip (enable) flag or the palette encoding (enable) flag is defined as 1, it is necessary to send the relevant flag or information syntax elements; if the value of the transform skip (enable) flag or the palette encoding (enable) flag is defined as 0, then syntax elements other than the corresponding flag syntax elements may not be sent. That is, a method is proposed for sending high-level syntax elements that depend on whether transform skipping or palette encoding is performed, such as minimum quantization parameter information during transform skipping or palette encoding, and whether BDPCM is applied, based on the values of the transform skip (enable) flag and the palette encoding (enable) flag in the high-level syntax (e.g., VPS, SPS, PPS, APS, DPS, and slice headers).
[0242] For example, (i) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are defined as 1, syntax elements corresponding to the union of syntax elements that depend on both the transform skip (enabled) flag and the palette encoding (enabled) flag can be parsed. (ii) when the transform skip (enabled) flag is defined as 1 and the palette encoding (enabled) flag is 0, syntax elements that depend on the transform skip (enabled) flag can be parsed. (iii) when the transform skip (enabled) flag is defined as 0 and the palette encoding (enabled) flag is 1, syntax elements that depend on the palette encoding (enabled) flag can be parsed. (iv) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are 0, other high-level syntax elements that depend on both encoding tools can be left unparsed.
[0243] The parsing order of the syntax elements mentioned in this embodiment is not specifically restricted, and they are considered consistent with each other when determining whether to perform parsing based on the dependencies between syntax elements. Furthermore, the proposed method is not limited to the syntax elements mentioned in this embodiment, but can have dependencies depending on whether transform skipping or palette encoding is performed, and can include all high-level syntax elements defined in the high-level syntax set that includes transform skipping (enabled) flags and palette encoding (enabled) flags.
[0244] As mentioned above, the syntax elements associated with transform-skip-based encoding and / or palette-pattern-based encoding can be defined in the high-level syntax set and in the sequence parameter set (SPS), as in the implementation of Table 15 below.
[0245] [Table 15]
[0246]
[0247] Additionally, for example, the semantics of the syntax elements in the above-described implementation of the SPS syntax can be represented in Table 16 below.
[0248] [Table 16]
[0249]
[0250] Referring to Tables 15 and 16 above, in SPS, syntax elements related to transform skipping and / or palette encoding can be defined, and these syntax elements may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, sps_palette_enabled_flag, min_qp_prime_ts_luma_minus4, and min_qp_prime_ts_chroma_minus4.
[0251] Since the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag and sps_palette_enabled_flag have been described in detail in Tables 6 to 11 above, their detailed descriptions will be omitted in this embodiment for ease of explanation.
[0252] As disclosed in the embodiments of Tables 15 and 16 above, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 15 and 16 above, in SPS, the sps_bdpcm_enabled_flag syntax element that indicates whether BDPCM is enabled based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) can be dependent. As an example, if the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) is 1, the sps_bdpcm_enabled_flag syntax element can be parsed / signaled. Alternatively, if the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) is 0, the sps_bdpcm_enabled_flag syntax element can not be parsed / signaled.
[0253] Additionally, in SPS, syntax elements that depend on the palette encoding enable flag syntax element (e.g., `sps_palette_enabled_flag`) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 15 and 16 above, in SPS, the `min_qp_prime_ts_chroma_minus4` syntax element, which represents the minimum quantization parameter information for transform skipping modes for chroma components based on the value of the palette encoding enable flag (e.g., `sps_palette_enabled_flag`), can be dependent. As an example, if the value of the palette encoding enable flag (e.g., `sps_palette_enabled_flag`) is 1, the `min_qp_prime_ts_chroma_minus4` syntax element can be parsed / signaled. Conversely, if the value of the palette encoding enable flag (e.g., `sps_palette_enabled_flag`) is 0, the `min_qp_prime_ts_chroma_minus4` syntax element can not be parsed / signaled.
[0254] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 15 and 16 above, in SPS, the min_qp_prime_ts_luma_minus4 syntax element, which represents the minimum quantization parameter information for the transform skip mode for the luma component based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag), can be dependent. As an example, if the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 1 or the palette encoding enabled flag (e.g., sps_palette_enabled_flag) is 1, the min_qp_prime_ts_luma_minus4 syntax element can be parsed / signaled.
[0255] Furthermore, as an implementation method, this document proposes a method to save transmitted bits by enabling high-level elements that depend on transform skip-related high-level syntax elements and palette-encoded high-level syntax elements to determine whether to perform parsing / signaling notification based on dependency conditions. As an example, a method for parsing dependent high-level syntax elements using transform skip (enable) flags and palette-encoded (enable) flags is proposed.
[0256] For example, as syntax elements that rely on transform-skip-based encoding, there are transform-skip (enabled) flags (e.g., `sps_transform_skip_enabled_flag`), information about the size of the transform-skip application (e.g., `log2_transform_skip_max_size_minus2`), minimum quantization parameter information during transform-skip (e.g., `min_qp_prime_ts_minus4`), and information about whether BDPCM is applied (e.g., `sps_bdpcm_enabled_flag`). Additionally, as mentioned above, since escape values do not change during palette encoding, the minimum quantization parameter information for transform-skip can be used when performing quantization.
[0257] As illustrated in the above embodiments, if the value of the transform skip (enabled) flag or the palette encoding (enabled) flag is defined as 1, it is necessary to send the relevant flag or information syntax elements; if the value of the transform skip (enabled) flag or the palette encoding (enabled) flag is defined as 0, then no syntax elements other than the corresponding flag syntax elements need to be sent. That is, a method is proposed for sending high-level syntax elements that depend on whether transform skipping or palette encoding is performed, such as information about the maximum size of transform skipping application, the minimum quantization parameter information during transform skipping or palette encoding, and whether BDPCM is applied, based on the values of the transform skip (enabled) flag and the palette encoding (enabled) flag in the high-level syntax (e.g., VPS, SPS, PPS, APS, DPS, and slice header).
[0258] For example, (i) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are defined as 1, syntax elements corresponding to the union of syntax elements that depend on both the transform skip (enabled) flag and the palette encoding (enabled) flag can be parsed. (ii) when the transform skip (enabled) flag is defined as 1 and the palette encoding (enabled) flag is 0, syntax elements that depend on the transform skip (enabled) flag can be parsed. (iii) when the transform skip (enabled) flag is defined as 0 and the palette encoding (enabled) flag is 1, syntax elements that depend on the palette encoding (enabled) flag can be parsed. (iv) when both the transform skip (enabled) flag and the palette encoding (enabled) flag are 0, other high-level syntax elements that depend on both encoding tools can be left unparsed.
[0259] The parsing order of the syntax elements mentioned in this embodiment is not specifically restricted, and they are considered consistent with each other when determining whether to perform parsing based on the dependencies between syntax elements. Furthermore, the proposed method is not limited to the syntax elements mentioned in this embodiment, but can have dependencies depending on whether transform skipping or palette encoding is performed, and can include all high-level syntax elements defined in the high-level syntax set that includes transform skipping (enabled) flags and palette encoding (enabled) flags.
[0260] As described above, the syntax elements related to transform-skip-based encoding and / or palette-pattern-based encoding can be defined in the high-level syntax set and in the sequence parameter set (SPS), as in the implementation shown in Table 17 below. In this implementation, information regarding the maximum size of transform skips defined in the picture parameter set (PPS) in the related art can be newly defined in the SPS to avoid dependencies between HLSs, and a method for parsing / signaling notification based on the dependencies of previously used transform skip and palette-based encoding related syntax elements is proposed.
[0261] [Table 17]
[0262]
[0263] Additionally, for example, the semantics of the syntax elements in the above-described implementation of the SPS syntax can be represented in Table 18 below.
[0264] [Table 18]
[0265]
[0266] Referring to Tables 17 and 18 above, in SPS, syntax elements related to transform skipping and / or palette encoding can be defined, and may include the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, log2_transform_skip_max_size_minus2, sps_palette_enabled_flag, min_qp_prime_ts_luma_minus4, and min_qp_prime_ts_chroma_minus4.
[0267] Here, since the syntax elements sps_transform_skip_enabled_flag, sps_bdpcm_enabled_flag, log2_transform_skip_max_size_minus2, sps_palette_enabled_flag, min_qp_prime_ts_luma_minus4, and min_qp_prime_ts_chroma_minus4 have been described in detail in Tables 6 to 11 above, their detailed descriptions will be omitted in this embodiment for ease of explanation.
[0268] As disclosed in the embodiments of Tables 17 and 18 above, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 17 and 18 above, in SPS, the sps_bdpcm_enabled_flag syntax element indicating whether BDPCM is enabled based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and the log2_transform_skip_max_size_minus2 syntax element indicating the maximum block size used in transform skip mode can be dependent. As an example, if the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) is 1, the sps_bdpcm_enabled_flag and log2_transform_skip_max_size_minus2 syntax elements can be parsed / signaled. Additionally, if the transform skip enable flag (e.g., `sps_transform_skip_enabled_flag`) has a value of 0, the syntax elements `sps_bdpcm_enabled_flag` and `log2_transform_skip_max_size_minus2` may not be parsed / signaled. Furthermore, in SPS, syntax elements that depend on the palette encoding enable flag syntax element (e.g., `sps_palette_enabled_flag`) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 17 and 18 above, in SPS, the syntax element `min_qp_prime_ts_chroma_minus4`, which represents the minimum quantization parameter information for the transform skip mode for the chroma components based on the value of the palette encoding enable flag (e.g., `sps_palette_enabled_flag`), can have a dependency. As an example, if the palette encoding enable flag (e.g., `sps_palette_enabled_flag`) is 1, then the `min_qp_prime_ts_chroma_minus4` syntax element can be parsed / signaled. Conversely, if the palette encoding enable flag (e.g., `sps_palette_enabled_flag`) is 0, then the `min_qp_prime_ts_chroma_minus4` syntax element can be left unparsed / signaled.
[0269] Additionally, in SPS, syntax elements that depend on the transform skip enable flag syntax element (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag) among syntax elements related to transform skipping and / or palette encoding can be defined. For example, as disclosed in Tables 17 and 18 above, in SPS, the min_qp_prime_ts_luma_minus4 syntax element, which represents the minimum quantization parameter information for the transform skip mode for the luma component based on the value of the transform skip enable flag (e.g., sps_transform_skip_enabled_flag) and / or the palette enable flag syntax element (e.g., sps_palette_enabled_flag), can be dependent. As an example, if the transform skip enabled flag (e.g., sps_transform_skip_enabled_flag) is 1 or the palette encoding enabled flag (e.g., sps_palette_enabled_flag) is 1, the min_qp_prime_ts_luma_minus4 syntax element can be parsed / signaled.
[0270] The following figures are provided to illustrate detailed examples of this document. Since the names or detailed terms or names (e.g., syntax / names of grammatical elements) of the detailed devices described in the figures are presented exemplarily, the technical features of this document are not limited to the detailed names used in the figures.
[0271] Figure 7 and Figure 8 Examples of video / image coding methods and related components according to embodiments of this document are illustrated.
[0272] Figure 7 The method disclosed in the article can be derived from Figure 2 or Figure 8 The publicly disclosed encoding device 200 is executed. Here, Figure 8 The encoding device 200 disclosed in the document is briefly represented. Figure 2 The publicly disclosed encoding device is 200. Specifically, Figure 7 Step S700 in the process can be performed by Figure 2 The publicly disclosed predictor 220 executes, Figure 7 Steps S710 and S720 in the process can be performed by Figure 2 The residual processor 230 disclosed in the document executes, and Figure 7 Step S730 in the process can be performed by Figure 2 The entropy encoder 240 disclosed in the document is executed. Additionally... Figure 7The methods disclosed herein may include the embodiments described above that will be performed. Therefore, referring to Figure 7 Detailed descriptions of repeated content in the above embodiments will be omitted or simplified.
[0273] Reference Figure 7 The encoding device can deduce the prediction sample of the current block based on the prediction mode information (S700).
[0274] As an implementation method, the encoding device can determine the prediction mode of the current block and derive prediction samples. For example, the encoding device can determine whether to perform inter-frame prediction or intra-frame prediction for the current block, and can also determine a specific inter-frame prediction mode or a specific intra-frame prediction mode based on RD cost. Additionally, the encoding device can determine whether to perform prediction for the current block based on CIIP mode, IBC mode, BDPCM mode, or palette mode. The encoding device can derive prediction samples for the current block by performing prediction according to the determined prediction mode. In this case, various prediction methods disclosed in this document, such as inter-frame prediction or intra-frame prediction, can be applied. Furthermore, the encoding device can generate and encode information related to the prediction applied to the current block (e.g., prediction mode information).
[0275] The encoding device can derive residual samples based on the predicted samples (S710).
[0276] As an implementation method, the encoding device can derive residual samples by comparing the predicted samples of the current block with the original samples. The encoding device can then derive transform coefficients by transforming the residual samples. In this case, the encoding device can consider encoding efficiency to determine whether to apply a transform to the current block. That is, the encoding device can determine whether to apply a transform to the residual samples of the current block.
[0277] For example, the encoding device can determine whether to apply a transform or a transform skip mode to the current block (residual sample) based on transform skip enable information.
[0278] Transform skip enable information can be information about whether transform skip is enabled, and as disclosed in Tables 6 through 18, it can be represented as the sps_transform_skip_enabled_flag syntax element.
[0279] For example, if the value of `sps_transform_skip_enabled_flag` is 1, it indicates that transform skipping is enabled, and in this case, `transform_skip_flag` can be parsed / signaled in the transform unit syntax. Here, the `transform_skip_flag` syntax element can indicate whether a transform can be applied to the associated transform block. If the value of `sps_transform_skip_enabled_flag` is 0, it indicates that transform skipping is not enabled, and in this case, `transform_skip_flag` does not need to be parsed / signaled in the transform unit syntax. Transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) can be included in the SPS and can be signaled to the decoding device. That is, based on the value of 1 for the transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) included in the SPS, the transform unit syntax can include a transform skip flag (e.g., `transform_skip_flag`). In this case, if the transform skip flag (e.g., transform_skip_flag) included in the transform unit syntax is 1, then a mode in which no transformation is applied (transform skip mode) can be executed on the current block. Alternatively, if the transform skip flag (e.g., transform_skip_flag) included in the transform unit syntax is 0, then a transformation can be applied to the current block.
[0280] For example, if the transform skip enable information has a value of 1 (i.e., the transform skip enable information indicates that transform skipping is enabled), the encoding device can determine whether to apply a transform to the current block. That is, the encoding device can generate information about whether to apply a transform to the current block (transform skip flag) based on the transform skip enable information value of 1, and can signal the transform skip flag through the transform unit syntax. In this case, if no transform is applied to the current block (i.e., in transform skip mode), the encoding device can generate a transform skip flag with a value of 1 and include it in the transform unit syntax. Conversely, if a transform is applied to the current block, the encoding device can generate a transform skip flag with a value of 0 and include it in the transform unit syntax.
[0281] The encoding device can generate residual information based on the residual samples (S720).
[0282] As an implementation method, the encoding device can derive the residual samples of the current block and generate residual information by applying a transformation or skipping a transformation to the residual samples of the current block based on whether a transformation is applied. For example, for the residual samples of the current block with a transformation skip flag value of 1, the encoding device can apply a transformation skip mode. In this case, the encoding device can derive the residual samples of the current block as transformation coefficients. Alternatively, for the residual samples of the current block with a transformation skip flag value of 0, the encoding device can derive transformation coefficients by performing a transformation. The encoding device can derive quantized transformation coefficients by performing quantization processing based on the transformation coefficients derived through transformation skipping or transformation. The encoding device can generate residual information based on the quantized transformation coefficients.
[0283] Here, the residual information can be information generated through transformation and / or quantization processing, and can be information about the quantization transformation coefficients, and may include, for example, information about the value information, location information, transformation technique, transformation kernel and quantization parameters of the quantization transformation coefficients.
[0284] The encoding device can encode image information (or video information) (S730).
[0285] Here, the image information may include residual information. Additionally, the image information may include information related to the prediction used to derive the prediction samples (e.g., prediction mode information). Furthermore, the image information may include information related to transform skipping, such as transform skipping enable information, transform skipping flag information, and information about the maximum block size used in the transform skipping mode. Additionally, the image information may include information related to palette encoding (e.g., palette enable information), BDPCM-related information (e.g., BDPCM enable information and BDPCM flags), etc. Furthermore, the image information may include information related to transform skipping and / or palette encoding, such as information about the minimum allowed quantization parameters for the transform skipping mode. That is, the image information may include various information derived in the encoding process and can be encoded using this various information.
[0286] Furthermore, the image information according to the above embodiments in this document may include various information, and may include information disclosed in at least one of Tables 1 to 18 as described above.
[0287] For example, image information may include a Sequence Parameter Set (SPS). The SPS may include transform skip information and palette encoding information. As an example, transform skip information may include transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`), BDPCM enabling information (e.g., `sps_bdpcm_enabled_flag`), information about the maximum block size used in transform skip mode (e.g., `log2_transform_skip_max_size_minus2`), and minimum quantization parameter information related to the minimum allowed quantization parameter of the transform skip mode (e.g., `min_qp_prime_ts_minus4`). Similarly, as an example, palette encoding information may include palette encoding enabling information (e.g., `sps_palette_enabled_flag`) and minimum quantization parameter information related to the minimum allowed quantization parameter of the transform skip mode (e.g., `min_qp_prime_ts_minus4`).
[0288] Additionally, for example, as described above, among the information included in SPS related to transform skipping and / or palette encoding, information that depends on transform skipping enable information (e.g., sps_transform_skip_enabled_flag) can be defined.
[0289] As an example, based on the value of transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) defined in the SPS, transform skip flag information (e.g., `transform_skip_flag`) regarding whether to apply transform skipping to the current block can be parsed / signaled through the transform unit syntax. In this case, if the value of the transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) is 1, then the transform skip flag information (e.g., `transform_skip_flag`) can be included in the transform unit syntax, and the transform skip flag information (e.g., `transform_skip_flag`) can be parsed / signaled from the transform unit syntax. Alternatively, if the value of the transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) is 0, then the transform skip flag information (e.g., `transform_skip_flag`) does not need to be parsed / signaled from the transform unit syntax.
[0290] Additionally, as an example, the SPS can be configured to parse / signal information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) based on the value of transform skip enable information (e.g., sps_transform_skip_enabled_flag). In this case, if the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 1, then information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) can be included in the SPS, and this information can be parsed / signaled from the SPS (e.g., log2_transform_skip_max_size_minus2). Conversely, if the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 0, then information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) cannot be parsed / signaled from the SPS.
[0291] Additionally, as an example, the SPS can be configured to parse / signal BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) regarding whether BDPCM is enabled based on the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag). In this case, if the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag) is 1, then the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be included in the SPS, and the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be parsed / signaled from the SPS. Conversely, if the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag) is 0, then the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be left unparsed / signaled from the SPS.
[0292] Additionally, based on the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) in the SPS, BDPCM flag information (e.g., intra_bdpcm_flag) regarding whether BDPCM is applied to the current block can be parsed / signaled through the coding unit syntax. In this case, if the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) is 1, then the BDPCM flag information (e.g., intra_bdpcm_flag) can be included in the coding unit syntax, and the BDPCM flag information (e.g., intra_bdpcm_flag) can be parsed / signaled from the coding unit syntax. Conversely, if the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) is 0, then the BDPCM flag information (e.g., intra_bdpcm_flag) does not need to be parsed / signaled from the coding unit syntax.
[0293] Additionally, for example, among the information related to transform skipping and / or palette encoding included in the SPS as described above, information dependent on palette encoding enablement information (e.g., sps_palette_enabled_flag) regarding whether palette encoding is enabled can be defined. As an example, based on the value of the palette encoding enablement information (e.g., sps_palette_enabled_flag) defined in the SPS, palette prediction mode flag information (e.g., pred_mode_plt_flag) regarding whether palette encoding (palette prediction mode) is applied to the current block can be notified via coded unit syntax parsing / signaling. In this case, if the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 1, then the palette prediction mode flag information (e.g., pred_mode_plt_flag) can be included in the coded unit syntax, and this information (e.g., pred_mode_plt_flag) can be notified via coded unit syntax parsing / signaling. Additionally, if the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 0, then the palette prediction mode flag information (e.g., pred_mode_plt_flag) may not be notified from the encoding unit syntax parsing / signaling.
[0294] Additionally, for example, as described above, among the information included in SPS related to transform skipping and / or palette encoding, information that depends on transform skipping enable information (e.g., sps_transform_skip_enabled_flag) and / or palette encoding enable information (e.g., sps_palette_enabled_flag) can be defined.
[0295] As an example, in SPS, based on at least one of transform skip enable information (e.g., sps_transform_skip_enabled_flag) and / or palette encoding enable information (e.g., sps_palette_enabled_flag), the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) related to the minimum allowed quantization parameter in transform skip mode can be parsed / signaled. In other words, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can be included in SPS based on the condition that the value of the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 1 or the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 1, and the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can only be parsed / signaled if the above condition is met.
[0296] Here, as mentioned above, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can be information related to the minimum allowed quantization parameter in the transform skip mode, and based on this, the quantization parameters of the current block can be derived.
[0297] For example, when applying a transform skip mode to the current block, the quantization parameters of the current block can be derived based on the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4), and the quantization transform coefficients can be derived by performing quantization processing based on the quantization parameters.
[0298] Additionally, for example, when applying palette encoding mode to the current block, the quantization parameters for the escape values of the current block can be derived based on the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4). In this case, the quantized escape value (e.g., palette_escape_val) can be derived by applying the quantization parameters to the escape values of the current block based on the quantization parameters. The processing of applying palette encoding mode can be performed as disclosed in Tables 4 and 5 above.
[0299] As described above, image information, including various types of information, can be encoded and output in the form of a bitstream. The bitstream can be sent to a decoding device via a network or (digital) storage medium. Here, the network can include broadcast networks and / or communication networks, and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
[0300] Figure 9 and Figure 10 Examples of video / image decoding methods and related components according to embodiments of this document are illustrated schematically.
[0301] Figure 9 The method disclosed in the article can be derived from Figure 3 or Figure 10 The publicly disclosed decoding device 300 is executed. Here, Figure 9 The publicly disclosed decoding device 300 is briefly represented. Figure 3 The publicly disclosed decoding device is 300. Specifically, Figure 9 Step S900 in the process can be performed by Figure 3 The publicly disclosed entropy decoder 310 is executed. Figure 9 Step S910 in the process can be performed by Figure 3 The publicly disclosed predictor 330 executes, Figure 9 Step S920 in the process can be performed by Figure 3 The residual processor 320 disclosed in the paper executes, and Figure 9 Step S930 in the process can be performed by Figure 3 The adder 340 disclosed in the document is executed. Additionally... Figure 9 The methods disclosed herein may include the embodiments described above that will be performed. Therefore, referring to Figure 9 Detailed descriptions of repeated content in the above embodiments will be omitted or simplified.
[0302] Reference Figure 9 The decoding device can receive image information (or video information) from the bit stream (S900).
[0303] As an implementation, the decoding device can deduce the information necessary for image reconstruction (or picture reconstruction) (e.g., video / image information) by parsing the bitstream. In this case, the image information may include residual information, which may include the value information, location information, transform technique, transform kernel, and quantization parameter information of the quantization transform coefficients. Additionally, the image information may include prediction-related information (e.g., prediction mode information). Furthermore, the image information may include information related to transform skipping, such as transform skipping enable information, transform skipping flag information, and information about the maximum block size used in the transform skipping mode. Additionally, the image information may include information related to palette coding (e.g., palette enable information), BDPCM-related information (e.g., BDPCM enable information and BDPCM flags), etc. Furthermore, the image information may include information related to transform skipping and / or palette coding, such as information about the minimum allowed quantization parameters for the transform skipping mode. That is, the image information may include various information necessary for the decoding process and may be decoded based on coding methods such as Exponential Golomb coding, CAVLC, or CABAC.
[0304] In addition, the image information may include various information according to the above embodiments of this document, and may include information disclosed in at least one of Tables 1 to 18 as described above.
[0305] For example, image information may include a Sequence Parameter Set (SPS). The SPS may include transform skip information and palette encoding information. As an example, transform skip information may include transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`), BDPCM enabling information (e.g., `sps_bdpcm_enabled_flag`), information about the maximum block size used in transform skip mode (e.g., `log2_transform_skip_max_size_minus2`), and minimum quantization parameter information related to the minimum allowed quantization parameter of the transform skip mode (e.g., `min_qp_prime_ts_minus4`). Similarly, as an example, palette encoding information may include palette encoding enabling information (e.g., `sps_palette_enabled_flag`) and minimum quantization parameter information related to the minimum allowed quantization parameter of the transform skip mode (e.g., `min_qp_prime_ts_minus4`).
[0306] Additionally, for example, as described above, among the information included in SPS related to transform skipping and / or palette encoding, information that depends on transform skipping enable information (e.g., sps_transform_skip_enabled_flag) can be defined.
[0307] As an example, based on the value of transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) defined in the SPS, transform skip flag information (e.g., `transform_skip_flag`) regarding whether to apply transform skipping to the current block can be parsed / signaled through the transform unit syntax. In this case, if the value of the transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) is 1, then the transform skip flag information (e.g., `transform_skip_flag`) can be included in the transform unit syntax, and the transform skip flag information (e.g., `transform_skip_flag`) can be parsed / signaled from the transform unit syntax. Alternatively, if the value of the transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) is 0, then the transform skip flag information (e.g., `transform_skip_flag`) does not need to be parsed / signaled from the transform unit syntax.
[0308] Additionally, as an example, the SPS can be configured to parse / signal information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) based on the value of transform skip enable information (e.g., sps_transform_skip_enabled_flag). In this case, if the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 1, then information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) can be included in the SPS, and this information can be parsed / signaled from the SPS (e.g., log2_transform_skip_max_size_minus2). Conversely, if the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 0, then information about the maximum block size used in transform skip mode (e.g., log2_transform_skip_max_size_minus2) can not be parsed / signaled from the SPS.
[0309] Additionally, as an example, the SPS can be configured to parse / signal BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) regarding whether BDPCM is enabled based on the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag). In this case, if the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag) is 1, then the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be included in the SPS, and the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be parsed / signaled from the SPS. Conversely, if the value of the transform skip enabling information (e.g., sps_transform_skip_enabled_flag) is 0, then the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) can be left unparsed / signaled from the SPS.
[0310] Additionally, based on the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) in the SPS, BDPCM flag information (e.g., intra_bdpcm_flag) regarding whether BDPCM is applied to the current block can be parsed / signaled through the coding unit syntax. In this case, if the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) is 1, then the BDPCM flag information (e.g., intra_bdpcm_flag) can be included in the coding unit syntax, and the BDPCM flag information (e.g., intra_bdpcm_flag) can be parsed / signaled from the coding unit syntax. Conversely, if the value of the BDPCM enabling information (e.g., sps_bdpcm_enabled_flag) is 0, then the BDPCM flag information (e.g., intra_bdpcm_flag) does not need to be parsed / signaled from the coding unit syntax.
[0311] Additionally, for example, among the information related to transform skipping and / or palette encoding included in the SPS as described above, information dependent on palette encoding enablement information (e.g., sps_palette_enabled_flag) regarding whether palette encoding is enabled can be defined. As an example, based on the value of the palette encoding enablement information (e.g., sps_palette_enabled_flag) defined in the SPS, palette prediction mode flag information (e.g., pred_mode_plt_flag) regarding whether palette encoding (palette prediction mode) is applied to the current block can be parsed / signaled through the coding unit syntax. In this case, if the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 1, the palette prediction mode flag information (e.g., pred_mode_plt_flag) can be included in the coding unit syntax, and this information (e.g., pred_mode_plt_flag) can be parsed / signaled from the coding unit syntax. Additionally, if the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 0, then the palette prediction mode flag information (e.g., pred_mode_plt_flag) may not be notified from the encoding unit syntax parsing / signaling.
[0312] Additionally, for example, as described above, among the information included in SPS related to transform skipping and / or palette encoding, information that depends on transform skipping enable information (e.g., sps_transform_skip_enabled_flag) and / or palette encoding enable information (e.g., sps_palette_enabled_flag) can be defined.
[0313] As an example, in SPS, based on at least one of transform skip enable information (e.g., sps_transform_skip_enabled_flag) and / or palette encoding enable information (e.g., sps_palette_enabled_flag), the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) related to the minimum allowed quantization parameter in transform skip mode can be parsed / signaled. In other words, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can be included in SPS based on the condition that the value of the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 1 or the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 1, and the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can only be parsed / signaled if the above condition is met.
[0314] Here, as mentioned above, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can be information related to the minimum allowed quantization parameter in the transform skip mode, and based on this, the quantization parameters of the current block can be derived.
[0315] For example, when applying a transform skip mode to the current block, the quantization parameters of the current block can be derived based on the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4), and the dequantization transform coefficients (scaling transform coefficients) can be derived by performing dequantization (scaling) based on the quantization parameters. Based on the dequantization transform coefficients, the residual samples of the current block can be derived.
[0316] Additionally, for example, when applying palette encoding mode to the current block, the quantization parameters for the escape values of the current block can be derived based on the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4). In this case, the escape values of the current block can be derived by performing dequantization (scaling) based on the quantization parameters. Based on the escape values, a reconstructed sample of the current block can be generated. The processing of applying palette encoding mode can be performed as disclosed in Tables 4 and 5 above.
[0317] The decoding device can deduce the prediction sample of the current block based on the prediction mode information (S910).
[0318] As an implementation, the decoding device can obtain prediction information (e.g., prediction mode information) included in the image information. The decoding device can determine whether to perform inter-frame prediction or intra-frame prediction for the current block based on the prediction information (e.g., prediction mode information), and can derive the prediction sample for the current block by performing prediction as described above.
[0319] The decoding device can deduce the residual sample of the current block based on the residual information (S920).
[0320] As an implementation method, the decoding device can obtain residual information included in the image information. As described above, the residual information can include the value information, location information, transformation technique, transformation kernel, and quantization parameter information of the quantization transform coefficients. The decoding device can derive the quantization transform coefficients of the current block based on the quantization transform coefficient information included in the residual information, and can derive transform coefficients based on the quantization transform coefficients. In addition, the decoding device can derive residual samples based on the transform coefficients.
[0321] In addition, when deriving residual samples, the decoding device can determine whether to apply a transform or a transform skip mode to the current block based on transform skip enable information.
[0322] As described above, transform skip enabling information can be information about whether transform skipping is enabled, and can be represented as the `sps_transform_skip_enabled_flag` syntax element as disclosed in Tables 6 to 18 above. For example, if the value of `sps_transform_skip_enabled_flag` is 1, it can indicate that transform skipping is enabled, and in this case, `transform_skip_flag` can be parsed / signaled through the transform unit syntax. Here, the `transform_skip_flag` syntax element can indicate whether a transform can be applied to the associated transform block. If the value of `sps_transform_skip_enabled_flag` is 0, it can indicate that transform skipping is not enabled, and in this case, `transform_skip_flag` does not need to be parsed / signaled in the transform unit syntax. Transform skip enabling information (e.g., `sps_transform_skip_enabled_flag`) can be included in the SPS and can be signaled from the encoding device to the decoding device. That is, based on the value of the transform skip enabling information included in the SPS (e.g., sps_transform_skip_enabled_flag) being 1, the transform unit syntax can include a transform skip flag (e.g., transform_skip_flag). In this case, if the value of the transform skip flag (e.g., transform_skip_flag) included in the transform unit syntax is 1, a mode in which no transform is applied (transform skip mode) can be performed on the current block. Conversely, if the value of the transform skip flag (e.g., transform_skip_flag) included in the transform unit syntax is 0, a transform can be applied to the current block.
[0323] For example, if the transform skip enable information is valued at 1 (i.e., the transform skip enable information indicates that transform skipping is enabled), the decoding device can obtain information about whether a transform is applied to the current block (transform skip flag) from the transform unit syntax, and can determine whether to apply a transform to the current block based on the value of the transform skip flag. For example, a transform skip mode can be applied to the current block with a transform skip flag value of 1, and in this case, the decoding device can derive the transform coefficients as residual samples of the current block. Alternatively, a transform can be applied to the current block with a transform skip flag value of 0, and in this case, the decoding device can derive the residual samples of the current block by performing an inverse transform on the transform coefficients.
[0324] Furthermore, for the current block where the transform skip flag is set to 1 (i.e., in transform skip mode), the decoding device can deduce the quantization parameters used in the dequantization process based on the minimum quantization parameter information. Additionally, the decoding device can deduce the dequantization transform coefficients by performing dequantization based on the quantization parameters, and can deduce the residual samples based on the dequantization transform coefficients.
[0325] Here, as described above, the minimum quantization parameter information can be information related to the minimum allowed quantization parameter in transform skip mode, and can be included in the image information (e.g., SPS) based on at least one of transform skip enable information (e.g., sps_transform_skip_enabled_flag) and / or palette encoding enable information (e.g., sps_palette_enabled_flag). For example, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can be included in the SPS based on the condition that the value of the transform skip enable information (e.g., sps_transform_skip_enabled_flag) is 1 or the value of the palette encoding enable information (e.g., sps_palette_enabled_flag) is 1. That is, the minimum quantization parameter information (e.g., min_qp_prime_ts_minus4) can only be parsed / signaled if the above conditions are met.
[0326] The decoding device can generate reconstructed samples based on the predicted samples and residual samples (S930).
[0327] For example, depending on the prediction mode, the decoding device can directly use the predicted samples as reconstruction samples, or it can generate reconstruction samples by adding the residual samples to the predicted samples. Alternatively, the decoding device can deduce reconstruction blocks or reconstructed images based on the reconstruction samples. Subsequently, when needed, the decoding device can apply loop filtering processes such as deblocking filtering and / or SAO processes to the reconstructed image to improve the subjective / objective image quality as described above.
[0328] The method has been described above based on a flowchart of a series of steps or blocks. However, the steps in this document are not limited to a specific order, and specific steps may be performed in different steps, in different orders, or simultaneously with respect to the steps described above. Furthermore, those skilled in the art will understand that the steps in the flowchart are not exclusive, and one or more steps may be included or removed from the flowchart without affecting the scope of this disclosure.
[0329] The methods mentioned above according to this disclosure can be in the form of software, and the encoding and / or decoding devices according to this disclosure can be included in an apparatus for performing image processing (e.g., TV, computer, smartphone, set-top box, display device, etc.).
[0330] When the embodiments of this disclosure are implemented in software, the methods described above can be implemented using modules (processes or functions) that perform the functions mentioned above. Modules can be stored in memory and executed by a processor. Memory can be installed internally or externally to the processor and can be connected to the processor via various known means. The processor may include application-specific integrated circuits (ASICs), other chipsets, logic circuits, and / or data processing devices. Memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. In other words, embodiments of this disclosure can be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units illustrated in the corresponding figures can be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information about the implementation (e.g., information about instructions) or algorithms can be stored in a digital storage medium.
[0331] Furthermore, the decoding and encoding devices using the embodiments described in this document can be included in multimedia broadcast transceivers, mobile communication terminals, home theater video devices, digital cinema video devices, surveillance cameras, video chat devices, real-time communication devices such as video communication, mobile streaming devices, storage media, portable cameras, video-on-demand (VoD) service providers, over-the-top (OTT) video devices, internet streaming service providers, 3D video devices, virtual reality (VR) devices, augmented reality (AR) devices, video telephony devices, vehicle-mounted terminals (e.g., vehicle (including autonomous vehicle) terminals, aircraft terminals, or ship terminals), and medical video devices; and can be used to process image signals or data. For example, OTT video devices can include game consoles, Blu-ray players, networked TVs, home theater systems, smartphones, tablet PCs, and digital video recorders (DVRs).
[0332] Furthermore, the processing methods applying the embodiments of this document can be generated in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data with data structures according to the embodiments of this document can also be stored in a computer-readable recording medium. Computer-readable recording media include all types of storage devices and distributed storage devices storing computer-readable data. Computer-readable recording media can include, for example, Blu-ray discs (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. Computer-readable recording media also include media implemented in the form of carrier waves (e.g., transmission over the Internet). Additionally, bitstreams generated by encoding methods can be stored in computer-readable recording media or transmitted via wired or wireless communication networks.
[0333] Furthermore, the embodiments described in this document can be implemented as a computer program product based on program code, and the program code can be executed on a computer according to the embodiments described in this document. The program code can be stored on a computer-readable medium.
[0334] Figure 11 Examples of content streaming systems applicable to the embodiments disclosed in this document are illustrated.
[0335] Reference Figure 11 The content streaming system used in the embodiments of this document can simply include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.
[0336] An encoding server is used to compress content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generate a bitstream, and then transmit it to a streaming server. As another example, if the multimedia input device, such as a smartphone, camera, or camcorder, directly generates the bitstream, the encoding server can be omitted.
[0337] Bitstreams can be generated using the encoding methods or bitstream generation methods applied in the embodiments described in this document. Furthermore, the streaming server can temporarily store the bitstream during the sending or receiving of the bitstream.
[0338] A streaming server transmits multimedia data to a user's device via a web server based on a user's request. The web server acts as a tool to notify the user of available services. When a user requests a desired service, the web server forwards the request to the streaming server, which then delivers the multimedia data to the user. In this respect, the content streaming system may include a separate control server, which in this case controls the commands / responses between the various devices within the content streaming system.
[0339] A streaming server can receive content from media storage devices and / or encoding servers. For example, if content is received from an encoding server, it can be received in real time. In this case, the streaming server can store the bitstream for a predetermined period of time to provide a smooth streaming service.
[0340] For example, user equipment may include mobile phones, smartphones, laptops, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, board PCs, tablet PCs, ultrabooks, wearable devices (e.g., watch-type terminals (smartwatches), glasses-type terminals (smart glasses), head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0341] Each server in the content streaming system can be operated as a distributed server, and in this case, the data received by each server can be processed in a distributed manner.
[0342] The claims in this specification can be combined in various ways. For example, the technical features in the method claims can be combined to be implemented or performed in a device, and the technical features in the device claims can be combined to be implemented or performed in a method. Furthermore, the technical features in the method claims and the device claims can be combined to be implemented or performed in a device.
Claims
1. A decoding device for image decoding, the decoding device comprising: Memory; and At least one processor connected to the memory, the at least one processor being configured to: Obtain image information, including prediction mode information and residual information, from the bitstream; Based on the prediction pattern information, the prediction sample for the current block is derived; The residual sample of the current block is derived based on the residual information; as well as Reconstructed samples are generated based on the predicted samples and the residual samples. The image information includes transform skip enable information and palette encoding enable information. Specifically, based on the transform skip enable information, information regarding the maximum transform skip size is included in the image information. Specifically, a transform skip flag indicating whether to apply a transform to the current block is included in the image information, based on the transform skip enable information and the information regarding the maximum transform skip size. Furthermore, a transform skip mode where no transform is applied to the current block is determined based on a value of 1 for the transform skip flag. Specifically, for the transform skipping mode, the residual samples are derived based on the minimum quantization parameter information. Wherein, the minimum quantization parameter information is information related to the minimum allowed quantization parameter of the transform skip mode, and Specifically, the minimum quantization parameter information is determined to be included in the image information based on the condition that at least one of the values of the transform skip enable information and the palette encoding enable information is 1, or the condition that both the values of the transform skip enable information and the palette encoding enable information are 0.
2. An encoding device for image encoding, the encoding device comprising: Memory; and At least one processor connected to the memory, the at least one processor being configured to: Determine the prediction mode for the current block; Based on the prediction pattern, predictive samples are derived; The residual samples are derived based on the predicted samples; Generate information about the predicted pattern; Residual information is generated based on the residual samples; as well as Image information, including the information about the prediction pattern and the residual information, is encoded. The image information includes transform skip enable information and palette encoding enable information. Specifically, based on the transform skip enable information, information regarding the maximum transform skip size is included in the image information. Specifically, a transform skip flag indicating whether to apply a transform to the current block is included in the image information, based on the transform skip enable information and the information regarding the maximum transform skip size. Furthermore, a transform skip flag of value 1 is generated based on determining a transform skip mode where no transform is applied to the current block. The residual information is generated based on the transform skipping mode, which does not apply a transform to the current block. Specifically, the minimum quantization parameter information is determined to be included in the image information based on the condition that at least one of the values of the transform skip enable information and the palette encoding enable information is 1, or the condition that both the values of the transform skip enable information and the palette encoding enable information are 0. The minimum quantization parameter information is information related to the minimum allowed quantization parameter of the transform skip mode.
3. An apparatus for transmitting image data, the apparatus comprising: At least one processor, configured to: obtain a bitstream, wherein the bitstream is generated by performing the following operations: determining a prediction mode for a current block; deriving prediction samples based on the prediction mode; deriving residual samples based on the prediction samples; generating information about the prediction mode; generating residual information based on the residual samples; and encoding image information including the information about the prediction mode and the residual information; and A transmitter configured to transmit the data comprising the bit stream. The image information includes transform skip enable information and palette encoding enable information. Specifically, based on the transform skip enable information, information regarding the maximum transform skip size is included in the image information. Specifically, a transform skip flag indicating whether to apply a transform to the current block is included in the image information, based on the transform skip enable information and the information regarding the maximum transform skip size. Furthermore, a transform skip flag of value 1 is generated based on determining a transform skip mode where no transform is applied to the current block. The residual information is generated based on the transform skipping mode, which does not apply a transform to the current block. Specifically, the minimum quantization parameter information is determined to be included in the image information based on the condition that at least one of the values of the transform skip enable information and the palette encoding enable information is 1, or the condition that both the values of the transform skip enable information and the palette encoding enable information are 0. The minimum quantization parameter information is information related to the minimum allowed quantization parameter of the transform skip mode.