Image encoding / decoding method and apparatus, and recording medium storing bitstream

The method and apparatus address the challenge of bit depth optimization in video encoding by providing flags and identifiers for spatial resampling and quality optimization, enhancing compression efficiency in high-resolution image encoding and decoding.

WO2025198279A1PCT designated stage Publication Date: 2025-09-25LG ELECTRONICS INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/003403
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-17
Filing Date
2025-03-17
Publication Date
2025-09-25

AI Technical Summary

Technical Problem

Existing video encoding technologies face challenges in efficiently compressing high-resolution, high-quality images, particularly in managing bit depth optimization for improved compression efficiency.

Method used

The method and apparatus provide bit depth optimization information, including flags and identifiers for spatial resampling and quality optimization, to enhance encoding and decoding processes, allowing for efficient signaling of bit depth properties.

Benefits of technology

This approach enables improved compression efficiency and effective management of bit depth optimization, facilitating better encoding and decoding of high-resolution images.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025003403_25092025_PF_FP_ABST
    Figure KR2025003403_25092025_PF_FP_ABST
Patent Text Reader

Abstract

An image encoding method and apparatus according to the present disclosure may receive a video picture to be encoded, encode the received video picture to generate a compressed video picture, generate encoder optimization information relating to the compressed video picture, and generate a bitstream including the compressed video picture and the encoder optimization information.
Need to check novelty before this filing date? Find Prior Art

Description

Video encoding / decoding method and device, and recording medium storing bitstream

[0001] The present invention relates to a video encoding / decoding method and device, and a recording medium storing a bitstream.

[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various application fields, and accordingly, high-efficiency image compression technologies are being discussed.

[0003] There are various technologies for image compression, such as inter prediction technology that predicts pixel values ​​included in the current picture from pictures before or after the current picture, intra prediction technology that predicts pixel values ​​included in the current picture using pixel information within the current picture, and entropy encoding technology that assigns short codes to values ​​with high frequency of appearance and long codes to values ​​with low frequency of appearance, and these technologies can be used to effectively compress and transmit or store image data.

[0004] The present disclosure provides a method and apparatus for configuring encoder optimization information.

[0005] The present disclosure provides a method and apparatus for signaling encoder optimization information.

[0006] The video encoding method and device according to the present disclosure can receive a video picture to be encoded, encode the received video picture to generate a compressed video picture, generate encoder optimization information regarding the compressed video picture, and generate a bitstream including the compressed video picture and the encoder optimization information. Here, the encoder optimization information can include bit depth optimization related information. The video encoding method and device according to the present disclosure

[0007] In the video encoding method and device according to the present disclosure, the bit depth optimization related information may include information regarding the movement size of the input sample.

[0008] In the video encoding method and device according to the present disclosure, the bit depth optimization related information may include at least one of information about an input bit depth, information about an optimized bit depth, information about a bit depth difference, or information about a task bit depth.

[0009] In the video encoding method and device according to the present disclosure, the bit depth optimization related information may include information for identifying the type of bit depth optimization.

[0010] In the video encoding method and device according to the present disclosure, the bit depth optimization related information can be generated based on a spatial resampling flag indicating whether spatial resampling optimization is applied.

[0011] In the video encoding method and device according to the present disclosure, the bit depth optimization related information can be generated based on a flag indicating whether spatial quality optimization is applied.

[0012] In the video encoding method and device according to the present disclosure, the bit depth optimization related information can be generated based on a flag indicating whether bit depth optimization is applied.

[0013] In the video encoding method and device according to the present disclosure, the bit depth optimization related information can be generated based on a flag indicating whether bit depth truncation is applied.

[0014] In the video encoding method and device according to the present disclosure, the bit depth optimization related information can be generated based on a bit depth optimization identifier for identifying bit depth optimization.

[0015] In the video encoding method and device according to the present disclosure, the bit depth optimization identifier may be a spatial resampling type identifier for identifying the type of spatial resampling applied.

[0016] In the video encoding method and device according to the present disclosure, the bit depth optimization identifier may be a quality optimization type identifier for identifying the type of spatial quality optimization applied.

[0017] A video decoding method and device according to the present disclosure can receive a bitstream including an encoded video picture and restore the encoded video picture included in the bitstream. Here, the bitstream can include encoder optimization information regarding the encoded video picture, and the encoder optimization information can include bit depth optimization related information.

[0018] A computer-readable digital storage medium is provided, which stores encoded video / image information that causes a decoding device according to the present disclosure to perform a video decoding method.

[0019] A computer-readable digital storage medium storing video / image information generated by a video encoding method according to the present disclosure is provided.

[0020] A method and device for transmitting video / image information generated by a video encoding method according to the present disclosure are provided.

[0021] According to the present disclosure, the properties of applied bit depth optimization can be identified by configuring bit depth optimization related information into encoder optimization information.

[0022] According to the present disclosure, detailed information regarding bit depth optimization can be efficiently signaled.

[0023] FIG. 1 illustrates a video / image coding system according to the present disclosure.

[0024] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.

[0025] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.

[0026] FIG. 4 illustrates a method for generating a bitstream performed in an encoding device (200) according to the present disclosure.

[0027] FIG. 5 illustrates a schematic configuration of an encoding device (200) that performs a method for generating a bitstream according to the present disclosure.

[0028] FIG. 6 illustrates a method for restoring a video picture performed in a decoding device (300) according to the present disclosure.

[0029] FIG. 7 illustrates a schematic configuration of a decoding device (300) that performs a method for restoring a video picture according to the present disclosure.

[0030] FIG. 8 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0031] The present disclosure may be modified in various ways and encompasses numerous embodiments. Specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present disclosure to specific embodiments, but rather to encompass all modifications, equivalents, and alternatives falling within the spirit and technical scope of the present disclosure. Similar reference numerals have been used to designate similar components throughout the description of each drawing.

[0032] While terms such as "first" and "second" may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component," and similarly, a second component could also be referred to as a "first component." The term "and / or" includes a combination of multiple related items described herein or any of multiple related items described herein.

[0033] When a component is referred to as being "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.

[0034] The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprise" or "have" indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

[0035] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard. In addition, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video / image coding standards (e.g., H.267 or H.268).

[0036] This specification presents various embodiments of video / image coding, and unless otherwise stated, the embodiments may be performed in combination with each other.

[0037] In this specification, a video may refer to a set of images over time. A picture generally refers to a unit representing one image at a specific time point, and a slice / tile is a unit that constitutes part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of ​​CTUs that has a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of ​​CTUs that has a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan. A slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices within a picture.

[0038] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel. A sample can generally 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.

[0039] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.

[0040] As used herein, "A or B" can mean "only A," "only B," or "both A and B." In other words, as used herein, "A or B" can be interpreted as "A and / or B." For example, as used herein, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."

[0041] As used herein, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Accordingly, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."

[0042] In this specification, "at least one of A and B" may mean "only A", "only B" or "both A and B". Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted identically to "at least one of A and B".

[0043] Additionally, in this specification, “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “at least one of A, B or C” or “at least one of A, B and / or C” can mean “at least one of A, B and C.”

[0044] Additionally, parentheses used herein may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be suggested as an example of "prediction." Furthermore, even when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction."

[0045] Technical features individually described in a single drawing in this specification may be implemented individually or simultaneously.

[0046] FIG. 1 illustrates a video / image coding system according to the present disclosure.

[0047] Referring to FIG. 1, a video / image coding system may include a first device (source device) and a second device (receiving device).

[0048] A source device can transmit encoded video / image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming. The source device may include a video source, an encoding device, and a transmitting device. The receiving device may include a receiving device, 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 unit, and the display unit may be configured as a separate device or an external component.

[0049] A video source may obtain video / images through a process of capturing, synthesizing, or generating video / images. The video source may include a video / image capture device and / or a video / image generation device. The video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. The video / image generation device may include a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process of generating related data.

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

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

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

[0053] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.

[0054] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.

[0055] Referring to FIG. 2, the encoding device (200) may be configured to include an image partitioner (210), a prediction unit (predictor) 220, a residual processor (residual processor) 230, an entropy encoder (entropy encoder) 240, an adder (adder) 250, a filter (filter) 260, and a memory (memory) 270. The prediction unit (220) may include an inter prediction unit (221) and an intra prediction unit (222). The residual processor (230) may include a transformer (transformer) 232, a quantizer (quantizer) 233, a dequantizer (dequantizer) 234, and an inverse transformer (inverse transformer) 235. The residual processing unit (230) may further include a subtractor (231). The addition unit (250) may be called a reconstructor or a recontructed block generator. The image segmentation unit (210), the prediction unit (220), the residual processing unit (230), the entropy encoding unit (240), the addition unit (250), and the filtering unit (260) described above may be configured by one or more hardware components (e.g., an encoding device chipset or processor) according to an embodiment. In addition, the memory (270) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (270) as an internal / external component.

[0056] The image segmentation unit (210) can segment an input image (or picture, frame) input to the encoding device (200) into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.

[0057] For example, a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to the present specification may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.

[0058] As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may each be split or partitioned from the final coding unit described above. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from a transform coefficient.

[0059] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the case. In general, an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally 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. A sample can be used as a term corresponding to a pixel or pel in a picture (or image).

[0060] The encoding device (200) can generate a residual signal (residual block, residual sample array) by subtracting a prediction signal (prediction block, prediction sample array) output from an inter prediction unit (221) or an intra prediction unit (222) from an input video signal (original block, original sample array), and the generated residual signal is transmitted to a conversion unit (232). In this case, a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input video signal (original block, original sample array) within the encoding device (200) may be called a subtraction unit (231).

[0061] The prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240). The information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.

[0062] The intra prediction unit (222) can predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one of a DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is only an example, and a greater or lesser number of directional modes may be used depending on the settings. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.

[0063] The inter prediction unit (221) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The above temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference pictures including the temporal neighboring blocks may be called collocated pictures (colPic). For example, the inter prediction unit (221) may construct a motion information candidate list based on the neighboring blocks, and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of the surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.

[0064] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values ​​within a picture can be signaled based on information about the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or a residual signal.

[0065] The transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels. In addition, the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non-square variable size.

[0066] The quantization unit (233) quantizes the transform coefficients and transmits them to the entropy encoding unit (240), and the entropy encoding unit (240) can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. The information about the quantized transform coefficients can be called residual information. The quantization unit (233) can rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on the coefficient scan order, and can also generate information about the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.

[0067] The entropy encoding unit (240) can perform various encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), etc. The entropy encoding unit (240) can also encode information necessary for video / image restoration (e.g., values ​​of syntax elements, etc.) together or separately from quantized transform coefficients.

[0068] Encoded information (e.g., encoded video / image information) can be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. In the present specification, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded through the above-described encoding procedure and included in the bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media, such as a USB, SD, CD, DVD, Blu-ray, HDD, or SSD. The signal output from the entropy encoding unit (240) may be configured as an internal / external element of the encoding device (200) by a transmitting unit (not shown) and / or a storing unit (not shown), or the transmitting unit may be included in the entropy encoding unit (240).

[0069] The quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be restored. The addition unit (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block. The addition unit (250) may be called a restoration unit or a reconstructed block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.

[0070] The filtering unit (260) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240). The information regarding filtering can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.

[0071] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter prediction unit (221). Through this, when inter prediction is applied, the encoding device can avoid prediction mismatch between the encoding device (200) and the decoding device, and can also improve encoding efficiency.

[0072] The DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter prediction unit (221). The memory (270) can store motion information of a block from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (270) can store restored samples of restored blocks within the current picture and transfer them to the intra prediction unit (222).

[0073] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.

[0074] Referring to FIG. 3, the decoding device (300) may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-prediction unit (332) and an intra-prediction unit (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).

[0075] The entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and filtering unit (350) described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment. In addition, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.

[0076] When a bitstream including video / image information is input, the decoding device (300) can restore the image corresponding to the process in which the video / image information is processed in the encoding device of FIG. 2. For example, the decoding device (300) can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device (300) can perform decoding using a processing unit applied in the encoding device. Accordingly, the processing unit of decoding may be a coding unit, and the coding unit may be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output through the decoding device (300) can be reproduced through a reproduction device.

[0077] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through the entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device can decode the picture further based on the information on the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this specification can be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements required for image restoration and the quantized values ​​of transform coefficients for residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information regarding prediction among the information decoded by the entropy decoding unit (310) is provided to the prediction unit (inter prediction unit (332) and intra prediction unit (331)), and residual values ​​on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array). In addition, information regarding filtering among the information decoded by the entropy decoding unit (310) can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an encoding device may be further configured as an internal / external element of a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).

[0078] Meanwhile, a decoding device according to the present specification may be called a video / video / picture decoding device, and the decoding device may be divided into an information decoding device (video / video / picture information decoding device) and a sample decoding device (video / video / picture sample decoding device). The information decoding device may include the entropy decoding unit (310), and the sample decoding device may include at least one of the inverse quantization unit (321), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).

[0079] The inverse quantization unit (321) can inverse quantize the quantized transform coefficients and output the transform coefficients. The inverse quantization unit (321) can rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scanning order performed in the encoding device. The inverse quantization unit (321) can perform inverse quantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain transform coefficients.

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

[0081] The prediction unit (320) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter-prediction mode.

[0082] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information about the palette table and palette index may be included and signaled in the video / image information.

[0083] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.

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

[0085] The addition unit (340) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including the inter-prediction unit (332) and / or intra-prediction unit (331)). When there is no residual for the block to be processed, such as when skip mode is applied, the prediction block can be used as the restoration block.

[0086] The addition unit (340) may be referred to as a restoration unit or restoration block generation unit. The generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.

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

[0088] The (corrected) reconstructed picture stored in the DPB of the memory (360) can be used as a reference picture in the inter prediction unit (332). The memory (360) can store motion information of a block from which motion information is derived (or decoded) in the current picture and / or motion information of blocks in a picture that has already been reconstructed. The stored motion information can be transferred to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit (331).

[0089] In this specification, the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.

[0090] FIG. 4 illustrates a method for generating a bitstream performed in an encoding device (200) according to the present disclosure.

[0091] A video picture to be encoded can be received (S400).

[0092] A received video picture can be encoded to generate a compressed video picture (S410).

[0093] Encoder optimization information (EOI) can be generated (S420).

[0094] Encoder optimization information according to the present disclosure may relate to a received or compressed video picture. The encoder optimization information may define the purpose, properties, and scope (or target) of encoder optimization.

[0095] For example, encoder optimization information may include an EOI cancellation flag (eoi_cancel_flag). eoi_cancel_flag may relate to the persistence of encoder optimization information. If the value of eoi_cancel_flag is 1, this may indicate that the persistence of previously applied encoder optimization information is canceled. For example, if the value of eoi_cancel_flag is 1, this may indicate that the persistence of encoder optimization information included in a previous prediction unit (PU) in the output order is canceled. If the value of eoi_cancel_flag is 0, this may indicate that optimization-related information applied during pre-processing or encoding follows.

[0096] The above optimization-related information may include at least one of an EOI persistence flag (eoi_persistence_flag), an EOI identifier for human viewing (eoi_for_human_viewing_idc), an EOI identifier for machine analysis (eoi_for_machine_analysis_idc), or EOI type information (eoi_type). That is, the above-described optimization-related information may be encoded based on the value of eoi_cancel_flag being 0.

[0097] eoi_persistence_flag may be related to the persistence of optimization information. eoi_persistence_flag may indicate the persistence of the optimization information indicated by eoi_type. If the value of eoi_persistence_flag is 0, this may indicate that the optimization information (identified based on eoi_type) is applied only to the current picture. If the value of eoi_persistence_flag is 1, this may indicate that the optimization information (identified by eoi_type) is applied to the current picture and all subsequent pictures. Here, the subsequent pictures may mean all subsequent pictures of the current layer in output order.

[0098] eoi_for_human_viewing_idc can indicate information for identifying the purpose and target of optimization. A value of 3 for eoi_for_human_viewing_idc may indicate that the purpose of optimization includes human viewing. A value of 2 for eoi_for_human_viewing_idc may indicate that the video is suitable for human viewing but is not specifically optimized for human viewing. A value of 1 for eoi_for_human_viewing_idc may indicate that the video is not suitable for human viewing. A value of 0 for eoi_for_human_viewing_idc may indicate that it is unknown whether the video is suitable for human viewing.

[0099] eoi_for_machine_analysis_idc can indicate information to identify the purpose and target of optimization. If the value of eoi_for_machine_analysis_idc is 3, this may mean that the purpose of optimization includes machine analysis. If the value of eoi_for_machine_analysis_idc is 2, this may mean that the video is suitable for machine analysis but is not specifically optimized for machine analysis. If the value of eoi_for_machine_analysis_idc is 1, this may mean that the video is not suitable for machine analysis. If the value of eoi_for_machine_analysis_idc is 0, this may mean that it is not known whether the video is suitable for machine analysis.

[0100] eoi_type can indicate the properties of an optimization method. For example, eoi_type can be defined as shown in Table 1 below. eoi_type can identify the optimization properties (or optimization types) defined in Table 1. However, the optimization properties defined in Table 1 are only examples, and new optimization properties may be defined under the structure. Alternatively, eoi_type can identify only some of the optimization properties defined in Table 1. Other optimization properties not defined in Table 1 may be additionally defined in Table 1.

[0101] bitMaskInterpretation0x01Object-based optimization; the pictures for which this SEI message persists have been pre-processed or encoded so that detected objects in the pictures are optimized with respect to other parts of the pictures for the indicated optimization purposes0x02Temporal resampling optimization0x04Spatial resampling optimization0x08Temporal quality optimization0x10Spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)0x20personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (e.g. removal or replacing of personal identifiable information, pseudonymization, anonymization)

[0102] If (eoi_type & bitMask) is not 0, this may indicate that an optimization property with the bitMask value in Table 1 has been applied. If eoi_type is greater than 0 and (eoi_type & bitMask) is 0, this may indicate that an optimization property with the corresponding bitMask value has not been applied. If eoi_type is 0, this may indicate that an optimization determined by the application has been used. For example, optimization properties according to eoi_type may be defined as in Table 2 below.

[0103] ValueInterpretationeoi_type = = 0May be used as determined by the applicationeoi_type > 0 &&( eoi_type & 0x01 ) = = 0No object-based optimization( eoi_type & 0x01 ) != 0With object-based optimizationeoi_type > 0 &&( eoi_type & 0x02 ) = = 0No temporal resampling optimization( eoi_type & 0x02 ) != 0With temporal resampling optimizationeoi_type > 0 &&( eoi_type & 0x04 ) = = 0No spatial resampling optimization( eoi_type & 0x04 ) != 0With spatial resampling optimizationeoi_type > 0 &&( eoi_type & 0x08 ) = = 0No temporal quality optimization( eoi_type & 0x08 ) != 0With temporal quality optimizationeoi_type > 0 &&( eoi_type & 0x10 ) = = 0No spatial quality optimization( eoi_type & 0x10 ) != 0With spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)eoi_type > 0 &&( eoi_type & 0x20 ) == 0No optimization for personal information protection( eoi_type & 0x20 ) != 0With personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (eg removal or replacing of personal identifiable information, pseudonymization, anonymization).

[0104] The encoder optimization information regarding the purpose, properties, and scope of the aforementioned optimization can be applied equally to the embodiments described below. Encoder optimization information can be defined in the SEI message as shown in Table 3 below.

[0105] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)}}

[0106] Encoder optimization information according to the present disclosure may define information related to bit depth optimization. The bit depth optimization information may include at least one of information related to the shift size of input samples, information related to bit depth, or information related to the bit depth optimization type.

[0107] 1. Information about movement size

[0108] Information regarding the shift size of an input sample may be information for identifying the shift size of the input sample. Information regarding the shift size of an input sample may be applied equally to luma and chroma components, regardless of the component type of the input sample. For example, information for identifying the shift size of an input sample may be defined as eoi_num_bit_depth_shift, which indicates the shift sizes of luma and chroma components.

[0109] Alternatively, information for identifying the shift size of the input sample may be defined for each component type of the input sample. For example, information for identifying the shift size of the input sample may be defined as bit_depth_shift_luma indicating the shift size of the luma component and bit_depth_shift_chroma indicating the shift size of the chroma component, respectively. Alternatively, information for identifying the shift size of the input sample may be defined as bit_depth_shift_luma indicating the shift size of the luma component, bit_depth_shift_cb indicating the shift size of the Cb component, and bit_depth_shift_cr indicating the shift size of the Cr component, respectively.

[0110] 2. Information about BitDepth

[0111] Information about bit depth can be defined as at least one of information about input bit depth (or bit depth before shifting), information about optimized bit depth (or bit depth after shifting), information about bit depth difference, or information about task bit depth.

[0112] 2-1. Information about input bit depth

[0113] Information about the input bit depth can indicate the size of the bit depth of the input sample.

[0114] For example, information about the input bit depth can be defined as eoi_input_bit_depth_minus8, which represents the value obtained by subtracting 8 from the size of the bit depth of the input sample. In this case, the bit depth of the input sample can be derived as in the following mathematical expression 1.

[0115] [Mathematical Formula 1]

[0116] Bitdepth = 8 + eoi_input_bit_depth_minus8

[0117] Alternatively, information about the input bit depth can be defined as eoi_input_bit_depth, which represents a value equal to the size of the bit depth of the input sample. In this case, the bit depth of the input sample can be derived as in the following mathematical expression 2.

[0118] [Equation 2]

[0119] Bitdepth = eoi_input_bit_depth

[0120] The information about the input bit depth described above can be applied equally to luma and chroma components, regardless of the component type of the input sample.

[0121] Alternatively, information about the input bit depth may be defined separately for each component type of the input sample. Information about the input bit depth may be defined separately as information indicating the size of the bit depth of the luma component and information indicating the size of the bit depth of the chroma component.

[0122] For example, information indicating the size of the bit depth of the luma component can be defined as eoi_input_luma_bit_depth_minus8, which represents a value obtained by subtracting 8 from the bit depth of the input sample for the luma component. In this case, the bit depth of the input sample for the luma component can be derived as in the following mathematical expression 3.

[0123] [Equation 3]

[0124] Bitdepth = 8 + eoi_input_luma_bit_depth_minus8

[0125] Alternatively, information indicating the size of the bit depth of the luma component may be defined as eoi_input_luma_bit_depth, which indicates a value equal to the bit depth of the input sample for the luma component.

[0126] Information indicating the size of the bit depth of a chroma component can be defined as eoi_input_chroma_bit_depth_minus8, which represents a value obtained by subtracting 8 from the bit depth of an input sample for the chroma component. In this case, the bit depth of an input sample for the chroma component can be derived as in the following mathematical expression 4.

[0127] [Equation 4]

[0128] Bitdepth = 8 + eoi_input_chroma_bit_depth_minus8

[0129] Alternatively, information indicating the size of the bit depth of the chroma component may be defined as eoi_input_chroma_bit_depth, which indicates a value equal to the bit depth of the input sample for the chroma component.

[0130] Alternatively, information indicating the size of the bit depth of the chroma component may be defined separately for the Cb component and the Cr component. In this case, information indicating the size of the bit depth of the chroma component may be defined separately for information indicating the size of the bit depth of the Cb component and information indicating the size of the bit depth of the Cr component.

[0131] Information indicating the size of the bit depth of the Cb component can be defined as eoi_input_cb_bit_depth_minus8, which represents the value obtained by subtracting 8 from the bit depth of the input sample for the Cb component. In this case, the bit depth of the input sample for the Cb component can be derived as in the following mathematical expression 5.

[0132] [Equation 5]

[0133] Bitdepth = 8 + eoi_input_cb_bit_depth_minus8

[0134] Information indicating the size of the bit depth of the Cb component may also be defined as eoi_input_cb_bit_depth, which indicates the same value as the bit depth of the input sample for the Cb component.

[0135] Information indicating the size of the bit depth of the Cr component can be defined as eoi_input_cr_bit_depth_minus8, which represents a value obtained by subtracting 8 from the bit depth of the input sample for the Cr component. The bit depth of the input sample for the Cr component can be derived as in the following mathematical expression 6.

[0136] [Equation 6]

[0137] Bitdepth = 8 + eoi_input_cr_bit_depth_minus8

[0138] Information indicating the size of the bit depth of the Cr component may also be defined as eoi_input_cr_bit_depth, which indicates the same value as the bit depth of the input sample for the Cr component.

[0139] 2-2. Information about optimized bit depth

[0140] Information about the optimized bit depth can indicate the size of the optimized bit depth.

[0141] For example, information about the optimized bit depth can be defined as eoi_optimized_bit_depth_minus8, which represents the value obtained by subtracting 8 from the size of the optimized bit depth. In this case, the optimized bit depth (Optimized_Bitdepth) can be derived as in the following mathematical expression (7).

[0142] [Equation 7]

[0143] Optimized_Bitdepth = 8 + eoi_optimized_bit_depth_minus8

[0144] Alternatively, the information about the optimized bit depth can be defined as eoi_optimized_bit_depth_minus6, which represents a value obtained by subtracting 6 from the size of the optimized bit depth. This is because if it is defined as a value obtained by subtracting 8 from the information about the bit depth of the input sample, the size range of the optimized bit depth may be limited. For example, if the maximum bit depth of the input sample is 10, the optimized bit depth may be limited to 8 or 9. In this case, the optimized bit depth (Optimized_Bitdepth) can be derived as in the following mathematical expression 8.

[0145] [Equation 8]

[0146] Optimized_Bitdepth = 6 + eoi_optimized_bit_depth_minus8

[0147] Alternatively, information about the optimized bit depth can be defined as eoi_optimized_bit_depth, which represents a value equal to the size of the optimized bit depth. In this case, the optimized bit depth (Optimized_Bitdepth) can be derived as in the following mathematical expression (9).

[0148] [Equation 9]

[0149] Optimized_Bitdepth = eoi_optimized_bit_depth

[0150] The information regarding the optimized bit depth described above can be applied equally to luma and chroma components, regardless of the optimized component type.

[0151] Alternatively, information about the optimized bit depth may be defined separately for each optimized component type. In this case, the information about the optimized bit depth may be defined as information indicating the size of the optimized bit depth for the luma component and information indicating the size of the optimized bit depth for the chroma component, respectively.

[0152] Information indicating the size of the optimized bit depth for the luma component can be defined as eoi_optimized_luma_bit_depth_minus8, which represents the value obtained by subtracting 8 from the optimized bit depth of the luma component. In this case, the optimized bit depth (Optimized_Bitdepth) of the luma component can be derived as in the following mathematical expression 10.

[0153] [Equation 10]

[0154] Optimized_Bitdepth = 8 + eoi_optimized_luma_bit_depth_minus8

[0155] Alternatively, information indicating the size of the optimized bit depth for the luma component can be defined as eoi_optimized_luma_bit_depth_minus6, which represents a value obtained by subtracting 6 from the optimized bit depth of the luma component. In this case, the optimized bit depth (Optimized_Bitdepth) of the luma component can be derived as in the following mathematical expression 11.

[0156] [Equation 11]

[0157] Optimized_Bitdepth = 6 + eoi_optimized_luma_bit_depth_minus6

[0158] Alternatively, information indicating the size of the optimized bit depth for the luma component may be defined as eoi_optimized_luma_bit_depth, which indicates the same value as the optimized bit depth of the luma component.

[0159] Information indicating the size of the optimized bit depth for a chroma component can be defined as eoi_optimized_chroma_bit_depth_minus8, which represents a value obtained by subtracting 8 from the optimized bit depth of the chroma component. In this case, the optimized bit depth (Optimized_Bitdepth) of the chroma component can be derived as in the following mathematical expression 12.

[0160] [Equation 12]

[0161] Optimized_Bitdepth = 8 + eoi_optimized_chroma_bit_depth_minus8

[0162] Alternatively, information indicating the size of the optimized bit depth for the chroma component can be defined as eoi_optimized_chroma_bit_depth_minus6, which represents a value obtained by subtracting 6 from the optimized bit depth of the chroma component. In this case, the optimized bit depth (Optimized_Bitdepth) of the chroma component can be derived as in the following mathematical expression 13.

[0163] [Equation 13]

[0164] Optimized_Bitdepth = 6 + eoi_optimized_chroma_bit_depth_minus6

[0165] Alternatively, information indicating the size of the optimized bit depth for the chroma component may be defined as eoi_optimized_chroma_bit_depth, which indicates a value equal to the optimized bit depth of the chroma component.

[0166] Information about the optimized bit depth may be defined as information indicating the size of the optimized bit depth for the luma component, information indicating the size of the optimized bit depth for the Cb component, and information indicating the size of the optimized bit depth for the Cr component, respectively.

[0167] Information indicating the size of the optimized bit depth of the Cb component can be defined as eoi_optimized_cb_bit_depth_minus8, which represents a value obtained by subtracting 8 from the optimized bit depth of the Cb component. In this case, the optimized bit depth (Optimized_Bitdepth) of the Cb component can be derived as in the following mathematical expression 14.

[0168] [Equation 14]

[0169] Optimized_Bitdepth = 8 + eoi_optimized_cb_bit_depth_minus8

[0170] Alternatively, information indicating the size of the optimized bit depth of the Cb component can be defined as eoi_optimized_cb_bit_depth_minus6, which represents a value obtained by subtracting 6 from the optimized bit depth of the Cb component. In this case, the optimized bit depth (Optimized_Bitdepth) of the Cb component can be derived as in the following mathematical expression 15.

[0171] [Equation 15]

[0172] Optimized_Bitdepth = 6 + eoi_optimized_cb_bit_depth_minus6

[0173] Alternatively, information indicating the size of the optimized bit depth of the Cb component may be defined as eoi_optimized_cb_bit_depth, which indicates a value equal to the optimized bit depth of the Cb component.

[0174] Information indicating the size of the optimized bit depth of the Cr component can be defined as eoi_optimized_cr_bit_depth_minus8, which represents a value obtained by subtracting 8 from the optimized bit depth of the Cr component. In this case, the optimized bit depth (Optimized_Bitdepth) of the Cr component can be derived as in the following mathematical expression 16.

[0175] [Equation 16]

[0176] Optimized_Bitdepth = 8 + eoi_optimized_cr_bit_depth_minus8

[0177] Alternatively, information indicating the size of the optimized bit depth of the Cr component can be defined as eoi_optimized_cr_bit_depth_minus6, which represents a value obtained by subtracting 6 from the optimized bit depth of the Cr component. In this case, the optimized bit depth (Optimized_Bitdepth) of the Cr component can be derived as in the following mathematical expression 17.

[0178] [Equation 17]

[0179] Optimized_Bitdepth = 6 + eoi_optimized_cr_bit_depth_minus6

[0180] Alternatively, information indicating the size of the optimized bit depth of the Cr component may be defined as eoi_optimized_cr_bit_depth, which indicates the same value as the optimized bit depth of the Cr component.

[0181] 2-3. Information about bit depth differences

[0182] Information about the bit depth difference (eoi_bit_depth_difference_from_input) may be information about the size of the optimized bit depth. The bit depth difference may refer to the difference between the bit depth of the input sample and the optimized bit depth.

[0183] For example, if information about the bit depth of the input sample is defined as eoi_input_bit_depth_minus8, the optimized bit depth (Optimized_Bitdepth) can be derived as in the following mathematical expression 18.

[0184] [Equation 18]

[0185] Bitdepth = 8 + eoi_input_bit_depth_minus8

[0186] if(bitdepth optimization = Truncating bit depth)

[0187] Optimized_Bitdepth = Bitdepth - eoi_bit_depth_difference_from_input

[0188] if(bitdepth optimization = Increasing bit depth)

[0189] Optimized_Bitdepth = Bitdepth + eoi_bit_depth_difference_from_input

[0190] The information about bit depth differences described above can be applied equally to luma and chroma components, regardless of the optimized component type.

[0191] Alternatively, information about bit depth differences may be defined separately for each optimized component type. In this case, information about bit depth differences may be defined as information indicating bit depth differences for the luma component (eoi_luma_bit_depth_difference_from_input) and information indicating bit depth differences for the chroma component (eoi_chroma_bit_depth_difference_from_input).

[0192] For example, if information indicating the size of the bit depth of the luma component is defined as eoi_input_luma_bit_depth_minus8, the optimized bit depth (Optimized_Bitdepth) of the luma component can be derived as in the following mathematical expression 19.

[0193] [Equation 19]

[0194] Bitdepth = 8 + eoi_input_luma_bit_depth_minus8

[0195] if(bitdepth optimization = Truncating bit depth)

[0196] Optimized_Bitdepth = Bitdepth - eoi_luma_bit_depth_difference_from_input

[0197] if(bitdepth optimization = Increasing bit depth)

[0198] Optimized_Bitdepth = Bitdepth + eoi_luma_bit_depth_difference_from_input

[0199] When information indicating the size of the bit depth of the chroma component is defined as eoi_input_chroma_bit_depth_minus8, the optimized bit depth (Optimized_Bitdepth) of the chroma component can be derived as in the following mathematical expression 20.

[0200] [Equation 20]

[0201] Bitdepth = 8 + eoi_input_chroma_bit_depth_minus8

[0202] if(bitdepth optimization = Truncating bit depth)

[0203] Optimized_Bitdepth = Bitdepth - eoi_chroma_bit_depth_difference_from_input

[0204] if(bitdepth optimization = Increasing bit depth)

[0205] Optimized_Bitdepth = Bitdepth + eoi_chroma_bit_depth_difference_from_input

[0206] Alternatively, information about the bit depth difference may be defined as information indicating the bit depth difference for the luma component (eoi_luma_bit_depth_difference_from_input), information indicating the bit depth difference for the Cb component (eoi_input_cb_bit_depth_minus8), and information indicating the bit depth difference for the Cr component (eoi_input_cb_bit_depth_minus8).

[0207] When information indicating the size of the bit depth of the Cb component is defined as eoi_input_cb_bit_depth_minus8, the optimized bit depth (Optimized_Bitdepth) of the Cb component can be derived as in the following mathematical expression 21.

[0208] [Equation 21]

[0209] Bitdepth = 8 + eoi_input_cb_bit_depth_minus8

[0210] if(bitdepth optimization = Truncating bit depth)

[0211] Optimized_Bitdepth = Bitdepth - eoi_cb_bit_depth_difference_from_input

[0212] if(bitdepth optimization = Increasing bit depth)

[0213] Optimized_Bitdepth = Bitdepth + eoi_cb_bit_depth_difference_from_input

[0214] When information indicating the size of the bit depth of the Cr component is defined as eoi_input_cr_bit_depth_minus8, the optimized bit depth (Optimized_Bitdepth) of the Cr component can be derived as in the following mathematical expression 22.

[0215] [Equation 22]

[0216] Bitdepth = 8 + eoi_input_cr_bit_depth_minus8

[0217] if(bitdepth optimization = Truncating bit depth)

[0218] Optimized_Bitdepth = Bitdepth - eoi_cr_bit_depth_difference_from_input

[0219] if(bitdepth optimization = Increasing bit depth)

[0220] Optimized_Bitdepth = Bitdepth + eoi_cr_bit_depth_difference_from_input

[0221] 2-4. Information about mission bit depth

[0222] Information about the mission bit depth can indicate the size of the bit depth before the change or the size of the bit depth for performing the mission. If the bit depth of the encoded bit stream and the size of the bit depth according to the information about the mission bit depth are different, a process of changing the bit depth of the decoded picture to the size of the bit depth according to the information about the mission bit depth may be required during the decoding process to perform a specific purpose.

[0223] Information about the task bit depth can be defined with eoi_bit_depth_for_task, which can be applied equally to luma and chroma components, regardless of component type.

[0224] Alternatively, information about the task bit depth may be defined separately for each component type. In this case, information about the task bit depth may be defined as information about the task bit depth for the luma component (eoi_luma_bit_depth_for_task) and information about the task bit depth for the chroma component (eoi_chroma_bit_depth_for_task), respectively. Alternatively, information about the task bit depth may be defined as information about the task bit depth for the luma component (eoi_luma_bit_depth_for_task), information about the task bit depth for the Cb component (eoi_cb_bit_depth_for_task), and information about the task bit depth for the Cr component (eoi_cr_bit_depth_for_task), respectively.

[0225] 3. Information about bit depth optimization types

[0226] Information about the bit depth optimization type may be information for identifying the type of bit depth optimization. The information about the bit depth optimization type may indicate any one of the predefined types of bit depth optimization. The predefined types of bit depth optimization may include at least one of truncating bit depth and increasing bit depth.

[0227] For example, information about the bit depth optimization type can be defined by eoi_bit_depth_optimization_type_flag. When the value of eoi_bit_depth_optimization_type_flag is 0, this may indicate that the type of bit depth optimization is truncating bit depth. When the value of eoi_bit_depth_optimization_type_flag is 1, this may indicate that the type of bit depth optimization is increasing bit depth. That is, when the value of eoi_bit_depth_optimization_type_flag is 0, a left shift can be applied, and when the value of eoi_bit_depth_optimization_type_flag is 1, a right shift can be applied.

[0228] Conversely, if the value of eoi_bit_depth_optimization_type_flag is 0, this may indicate that the type of bit depth optimization is increasing bit depth. If the value of eoi_bit_depth_optimization_type_flag is 1, this may indicate that the type of bit depth optimization is truncating bit depth. That is, if the value of eoi_bit_depth_optimization_type_flag is 0, a right shift can be applied, and if the value of eoi_bit_depth_optimization_type_flag is 1, a left shift can be applied.

[0229] Meanwhile, bit depth information of the video input to the encoding device may be included in the bitstream. In this case, all or part of the aforementioned input bit depth information may not be defined in the bit depth optimization-related information as encoder optimization information. Instead, information regarding whether the bit depth is changed (or whether bit depth optimization is applied) or the optimized bit depth can be defined and used.

[0230] The bit depth optimization related information described above can be generated based on at least one of a predetermined variable or a bit depth optimization identifier and can be encoded in a bitstream.

[0231] 1. Variable-based creation method

[0232] The bit depth optimization according to the present disclosure may be defined as a type of spatial resampling optimization. In this case, the predetermined variable may be a spatial resampling flag (EoiSpatialResamplingFlag) indicating whether spatial resampling optimization is applied. If the value of EoiSpatialResamplingFlag is 1, this may mean that spatial resampling has been applied. If the value of EoiSpatialResamplingFlag is 0, this may mean that spatial resampling has not been applied. The value of EoiSpatialResamplingFlag may be derived as in the following mathematical expression (23) or (24).

[0233] [Equation 23]

[0234] EoiSpatialResamplingFlag = ((eoi_type & 0x04 ) > 0 ) ? 1:0

[0235] [Equation 24]

[0236] if((eoi_type & 0x04 ) != 0)

[0237] EoiSpatialResamplingFlag= 1;

[0238] else

[0239] EoiSpatialResamplingFlag= 0;

[0240] In this way, the applied optimization properties can be identified based on eoi_type. Further details regarding the applied optimization properties can be additionally defined in the encoder optimization information. For example, based on the value of EoiSpatialResamplingFlag being 1, bit-depth optimization-related information can be generated and encoded in the bitstream. Based on the value of EoiSpatialResamplingFlag being 0, bit-depth optimization-related information may not be generated and may not be encoded in the bitstream.

[0241] Bit depth optimization according to the present disclosure may be defined as a type of spatial quality optimization. In this case, the predetermined variable may be a flag (EoiQualityOptimizationFlag) indicating whether spatial quality optimization is applied. If the value of EoiQualityOptimizationFlag is 0, this may indicate that spatial quality optimization is not applied. If the value of EoiQualityOptimizationFlag is 1, this may indicate that spatial quality optimization is applied. The value of EoiQualityOptimizationFlag may be derived as in the following mathematical expression (25) or (26).

[0242] [Equation 25]

[0243] EoiQualityOptimizationFlag = ((eoi_type & 0x10 ) > 0 ) ? 1:0

[0244] [Equation 26]

[0245] if((eoi_type & 0x10 ) != 0)

[0246] EoiQualityOptimizationFlag = 1;

[0247] else

[0248] EoiQualityOptimizationFlag = 0;

[0249] In this way, the applied optimization properties can be identified based on eoi_type. Further details regarding the applied optimization properties can be defined in the encoder optimization information. For example, based on a value of 1 for EoiQualityOptimizationFlag, bit-depth optimization-related information can be generated and encoded in the bitstream. Based on a value of 0 for EoiQualityOptimizationFlag, bit-depth optimization-related information may not be generated and may not be encoded in the bitstream.

[0250] Bit depth optimization according to the present disclosure may also be defined in the encoder optimization information as a new eoi_type.

[0251] As an example, Tables 4 and 5 are examples that additionally define bit depth optimization.

[0252] bitMaskInterpretation0x01Object-based optimization; the pictures for which this SEI message persists have been pre-processed or encoded so that detected objects in the pictures are optimized with respect to other parts of the pictures for the indicated optimization purposes0x02Temporal resampling optimization0x04Spatial resampling optimization0x08Temporal quality optimization0x10Spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)0x20Personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (e.g.removal or replacing of personal identifiable information, pseudonymization, anonymization)0x40Bit depth optimization; the pictures for which this SEI message persists have been pre-processed or encoded with optimized bit depth depending on the application.

[0253] ValueInterpretationeoi_type = = 0May be used as determined by the applicationeoi_type > 0 &&( eoi_type & 0x01 ) = = 0No object-based optimization( eoi_type & 0x01 ) != 0With object-based optimizationeoi_type > 0 &&( eoi_type & 0x02 ) = = 0No temporal resampling optimization( eoi_type & 0x02 ) != 0With temporal resampling optimizationeoi_type > 0 &&( eoi_type & 0x04 ) = = 0No spatial resampling optimization( eoi_type & 0x04 ) != 0With spatial resampling optimizationeoi_type > 0 &&( eoi_type & 0x08 ) = = 0No temporal quality optimization( eoi_type & 0x08 ) != 0With temporal quality optimizationeoi_type > 0 &&( eoi_type & 0x10 ) = = 0No spatial quality optimization( eoi_type & 0x10 ) != 0With spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)eoi_type > 0 &&( eoi_type & 0x20 ) == 0No optimization for personal information protection( eoi_type & 0x20 ) != 0With personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (eg removal or replacing of personal identifiable information, pseudonymization, anonymization)eoi_type > 0 &&( eoi_type & 0x40 ) == 0No bit depth optimization( eoi_type & 0x40 ) != 0With bit depth optimization; the pictures for which this SEI message persists have been pre-processed or encoded with optimized bit depth depending on the application.

[0254] In Table 5, if (eoi_type & bitMask) is not 0, this may indicate that the optimization property with the bitMask value in Table 4 has been applied. If eoi_type is greater than 0 and (eoi_type & bitMask) is 0, this may indicate that the optimization property with the corresponding bitMask value has not been applied. If eoi_type is 0, this may indicate that the optimization determined by the application has been used.

[0255] When bit depth optimization is defined as a new eoi_type, the predetermined variable may be a flag (EoiBitdepthOptimizationFlag) indicating whether bit depth optimization is applied. If the value of EoiBitdepthOptimizationFlag is 0, this may indicate that bit depth optimization is not applied. If the value of EoiBitdepthOptimizationFlag is 1, this may indicate that bit depth optimization is applied. The value of EoiBitdepthOptimizationFlag may be derived as in the following mathematical expression 27 or 28.

[0256] [Equation 27]

[0257] EoiBitdepthOptimizationFlag = ((eoi_type & 0x40 ) > 0 ) ? 1:0

[0258] [Equation 28]

[0259] if((eoi_type & 0x40 ) != 0)

[0260] EoiBitdepthOptimizationFlag = 1;

[0261] else

[0262] EoiBitdepthOptimizationFlag = 0;

[0263] In this way, based on eoi_type, the applied optimization property can be identified. Detailed information about the applied optimization property can be additionally defined in the encoder optimization information. For example, based on the value of EoiBitdepthOptimizationFlag being 1, bit-depth optimization-related information can be generated and encoded in the bitstream. At this time, information about the aforementioned bit-depth optimization type can be required to be generated as bit-depth optimization-related information and encoded in the bitstream. Based on the value of EoiBitdepthOptimizationFlag being 0, bit-depth optimization-related information may not be generated and may not be encoded in the bitstream.

[0264] Alternatively, Tables 6 and 7 are examples of additionally defining bit depth truncation in eoi_type.

[0265] bitMaskInterpretation0x01Object-based optimization; the pictures for which this SEI message persists have been pre-processed or encoded so that detected objects in the pictures are optimized with respect to other parts of the pictures for the indicated optimization purposes0x02Temporal resampling optimization0x04Spatial resampling optimization0x08Temporal quality optimization0x10Spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)0x20Personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (e.g.removal or replacing of personal identifiable information, pseudonymization, anonymization)0x40Bit depth truncation; the pictures for which this SEI message persists have been pre-processed or encoded with truncating bit depth depending on the application.

[0266] ValueInterpretationeoi_type = = 0May be used as determined by the applicationeoi_type > 0 &&( eoi_type & 0x01 ) = = 0No object-based optimization( eoi_type & 0x01 ) != 0With object-based optimizationeoi_type > 0 &&( eoi_type & 0x02 ) = = 0No temporal resampling optimization( eoi_type & 0x02 ) != 0With temporal resampling optimizationeoi_type > 0 &&( eoi_type & 0x04 ) = = 0No spatial resampling optimization( eoi_type & 0x04 ) != 0With spatial resampling optimizationeoi_type > 0 &&( eoi_type & 0x08 ) = = 0No temporal quality optimization( eoi_type & 0x08 ) != 0With temporal quality optimizationeoi_type > 0 &&( eoi_type & 0x10 ) = = 0No spatial quality optimization( eoi_type & 0x10 ) != 0With spatial quality optimization; the pictures for which this SEI message persists have been pre-processed or encoded to reduce unnecessary information or improve the quality of necessary information.(e.g to reduce the amount of noise and remove speckles at the picture-level)eoi_type > 0 &&( eoi_type & 0x20 ) == 0No optimization for personal information protection( eoi_type & 0x20 ) != 0With personal information protection optimization; the pictures for which this SEI message persists have been pre-processed or encoded to protect personal information. (eg removal or replacing of personal identifiable information, pseudonymization, anonymization)eoi_type > 0 &&( eoi_type & 0x40 ) == 0No bit depth truncation( eoi_type & 0x40 ) != 0With bit depth truncation; the pictures for which this SEI message persists have been pre-processed or encoded with truncating bit depth depending on the application.

[0267] In Table 7, if (eoi_type & bitMask) is not 0, this may indicate that the optimization property with the bitMask value in Table 6 has been applied. If eoi_type is greater than 0 and (eoi_type & bitMask) is 0, this may indicate that the optimization property with the corresponding bitMask value has not been applied. If eoi_type is 0, this may indicate that the optimization determined by the application has been used.

[0268] When bit depth truncation is defined as a new eoi_type, the predetermined variable may be a flag (EoiBitdepthTruncationFlag) indicating whether bit depth truncation is applied. If the value of EoiBitdepthTruncationFlag is 0, this may indicate that bit depth truncation is not applied. If the value of EoiBitdepthTruncationFlag is 1, this may indicate that bit depth truncation is applied. The value of EoiBitdepthTruncationFlag may be derived as in the following mathematical expression 29 or 30.

[0269] [Equation 29]

[0270] EoiBitdepthTruncationFlag = ((eoi_type & 0x40 ) > 0 ) ? 1:0

[0271] [Equation 30]

[0272] if((eoi_type & 0x40 ) != 0)

[0273] EoiBitdepthTruncationFlag = 1;

[0274] else

[0275] EoiBitdepthTruncationFlag = 0;

[0276] In this way, based on eoi_type, the applied optimization property can be identified. Detailed information about the applied optimization property can be additionally defined in the encoder optimization information. For example, based on the value of EoiBitdepthTruncationFlag being 1, bit-depth optimization-related information can be generated and encoded in the bitstream. In this case, information about the bit-depth optimization type described above may not be generated as bit-depth optimization-related information and may not be encoded in the bitstream. That is, information about the bit-depth optimization type can be adaptively generated and encoded in the bitstream depending on the optimization property added to eoi_type. Based on the value of EoiBitdepthTruncationFlag being 0, bit-depth optimization-related information may not be generated and may not be encoded in the bitstream.

[0277] A variable according to the present disclosure may be one or at least two of the aforementioned EoiSpatialResamplingFlag, EoiQualityOptimizationFlag, EoiBitdepthOptimizationFlag, or EoiBitdepthTruncationFlag.

[0278] 2. Generation method based on bit depth optimization identifier

[0279] The bit depth optimization identifier may be information for identifying bit depth optimization. The bit depth optimization identifier may be defined as at least one of a spatial resampling type identifier (eoi_spatial_resampling_type_idc) or a quality optimization type identifier (eoi_quality_optimization_type_idc).

[0280] For example, the spatial resampling type identifier (eoi_spatial_resampling_type_idc) may be used as a bit depth optimization identifier. eoi_spatial_resampling_type_idc may be information for identifying the type of spatial resampling applied.

[0281] If the value of eoi_spatial_resampling_type_idc is 0, this may indicate that the type of spatial resampling is upsampling. If the value of eoi_spatial_resampling_type_idc is 1, this may indicate that the type of spatial resampling is downsampling. If the value of eoi_spatial_resampling_type_idc is 2, this may indicate that the type of spatial resampling is truncating bit depth. If the value of eoi_spatial_resampling_type_idc is 3, this may indicate that the type of spatial resampling is increasing bit depth. Alternatively, if the value of eoi_spatial_resampling_type_idc is 2, this may indicate that the type of spatial resampling is increasing bit depth, and if the value of eoi_spatial_resampling_type_idc is 3, this may indicate that the type of spatial resampling is truncating bit depth.

[0282] eoi_spatial_resampling_type_idc can be expressed in 2 bits as shown in Table 8 below.

[0283] eoi_spatial_resampling_type_idcdescription00Up-sampling01Down-sampling10Truncating bit depth11Increasing bit depth

[0284] Alternatively, Table 9 may correspond to a case where the value of eoi_spatial_resampling_type_idc has a value between 0 and 2. The type of spatial resampling may not be defined as truncating bit depth or increasing bit depth. That is, when the value of eoi_spatial_resampling_type_idc is 2, this may indicate that the type of spatial resampling is truncating bit depth or increasing bit depth. In Table 9, truncating bit depth may be replaced with increasing bit depth.

[0285] eoi_spatial_resampling_type_idcdescription00Up-sampling01Down-sampling10Truncating bit depth

[0286] The above upsampling, downsampling, truncating bit depth, and increasing bit depth are examples of spatial resampling, and other types of spatial resampling may be identified based on eoi_spatial_resampling_type_idc.

[0287] Alternatively, the quality optimization type identifier (eoi_quality_optimization_type_idc) can be used as a bit depth optimization identifier. eoi_quality_optimization_type_idc may be information for identifying the type of spatial quality optimization applied. Specifically, eoi_quality_optimization_type_idc may be defined as follows.

[0288] For example, if the value of eoi_quality_optimization_type_idc is 0, this may indicate that the type of spatial quality optimization is a de-noising filter. If the value of eoi_quality_optimization_type_idc is 1, this may indicate that the type of spatial quality optimization is an edge preserving filter. If the value of eoi_quality_optimization_type_idc is 2, this may indicate that the type of spatial quality optimization is image enhancement processing. If the value of eoi_quality_optimization_type_idc is 3, this may indicate that the type of spatial quality optimization is a truncating bit depth.

[0289] In this case, eoi_quality_optimization_type_idc can be expressed in 2 bits as shown in Table 10 below.

[0290] eoi_quality_optimization_type_idcdescription00De-noising filter01Edge preserving filter10Image enhancement processing11Truncating bit depth

[0291] Alternatively, if the value of eoi_quality_optimization_type_idc is 0, this may indicate that the type of spatial quality optimization is a de-noising filter. If the value of eoi_quality_optimization_type_idc is 1, this may indicate that the type of spatial quality optimization is an edge preserving filter. If the value of eoi_quality_optimization_type_idc is 2, this may indicate that the type of spatial quality optimization is image enhancement processing. If the value of eoi_quality_optimization_type_idc is 3, this may indicate that the type of spatial quality optimization is bit depth optimization.

[0292] When eoi_quality_optimization_type_idc indicates bit depth optimization (e.g., eoi_quality_optimization_type_idc=3), information may be required to identify whether the type of bit depth optimization is truncating bit depth. Based on whether eoi_quality_optimization_type_idc indicates bit depth optimization, information about the bit depth optimization type may be generated and encoded in the bitstream.

[0293] eoi_quality_optimization_type_idc can be expressed in 2 bits as shown in Table 11.

[0294] eoi_quality_optimization_type_idcdescription00De-noising filter01Edge preserving filter10Image enhancement processing11Bit depth Optimization

[0295] In addition to the types of spatial quality optimization described above, other types of spatial quality optimization may be identified based on eoi_quality_optimization_type_idc.

[0296] Below, we will look at an example of the encoder optimization information syntax that defines bit depth optimization-related information.

[0297] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(3)if(eoi_spatial_resampling_type_idc==2){eoi_num_bit_depth_shiftu(3)}}}}

[0298] Table 12 shows the case where bit depth optimization related information is defined as eoi_num_bit_depth_shift.

[0299] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){bit_depth_shift_lumau(3)bit_depth_shift_chromau(3)}} }}

[0300] 표 13은, 비트뎁스 최적화 관련 정보가 bit_depth_shift_luma 및 bit_depth_shift_chroma로 정의된 경우에 대한 것이다.

[0301] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){bit_depth_shift_lumau(3)bit_depth_shift_cbu(3)bit_depth_shift_cru(3)}} }}

[0302] Table 14 shows the cases where bit depth optimization related information is defined as bit_depth_shift_luma, bit_depth_shift_cb, and bit_depth_shift_cr.

[0303] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus8ue(v)}}}}

[0304] Table 15 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth_minus8 and eoi_optimized_bit_depth_minus8.

[0305] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus6ue(v)}}}}

[0306] 표 16은, 비트뎁스 최적화 관련 정보가 eoi_input_bit_depth_minus8 및 eoi_optimized_bit_depth_minus6로 정의된 경우에 대한 것이다.

[0307] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_bit_depth_minus8ue(v)eoi_bit_depth_difference_from_inputue(v)}}}}

[0308] Table 17 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth_minus8 and eoi_bit_depth_difference_from_input.

[0309] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_bit_depthue(v)eoi_optimized_bit_depthue(v)}}}}

[0310] Table 18 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth and eoi_optimized_bit_depth.

[0311] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_dep th_minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_chroma_bit_depth_minus8ue(v)}}}}

[0312] Table 19 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, and eoi_optimized_chroma_bit_depth_minus8.

[0313] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_dep th_minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_chroma_bit_depth_minus6ue(v)}}}}

[0314] Table 20 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus6, and eoi_optimized_chroma_bit_depth_minus6.

[0315] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_depth_mi nus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_chroma_bit_depth_difference_from_inputue(v)}}}}

[0316] Table 21 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, and eoi_chroma_bit_depth_difference_from_input.

[0317] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_inpu t_luma_bit_depthue(v)eoi_input_chroma_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_chroma_bit_depthue(v)}}}}

[0318] Table 22 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth, eoi_input_chroma_bit_depth, eoi_optimized_luma_bit_depth, and eoi_optimized_chroma_bit_depth.

[0319] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_cb_bit_depth_minus8ue(v)eoi_optimized_cr_bit_depth_minus8ue(v)}}}}

[0320] 표 23은, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, eoi_optimized_cb_bit_depth_minus8 및 eoi_optimized_cr_bit_depth_minus8로 정의된 경우에 대한 것이다.

[0321] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_cb_bit_depth_minus6ue(v)eoi_optimized_cr_bit_depth_minus6ue(v)}}}}

[0322] 표 24는, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus6, eoi_optimized_cb_bit_depth_minus6 및 eoi_optimized_cr_bit_depth_minus6로 정의된 경우에 대한 것이다.

[0323] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_cb_bit_depth_difference_from_inputue(v)eoi_cr_bit_depth_difference_from_input}}}}

[0324] 표 25는, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, eoi_cb_bit_depth_difference_from_input 및 eoi_cr_bit_depth_difference_from_input로 정의된 경우에 대한 것이다.

[0325] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiSpatialResamplingFlag){eoi_spatial_resampling_type_idcu(2)if(eoi_spatial_resampling_type_idc==2){eoi_input_luma_bit_depthue(v)eoi_ input_cb_bit_depthue(v)eoi_input_cr_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_cb_bit_depthue(v)eoi_optimized_cr_bit_depthue(v)}}}}

[0326] Table 26 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth, eoi_input_cb_bit_depth, eoi_input_cr_bit_depth, eoi_optimized_luma_bit_depth, eoi_optimized_cb_bit_depth, and eoi_optimized_cr_bit_depth.

[0327] Information related to bit depth optimization according to Tables 12 to 26 may be generated and encoded in the bit stream based on the value of EoiSpatialResamplingFlag being 1. On the other hand, information related to bit depth optimization according to Tables 12 to 26 may not be encoded in the bit stream based on the value of EoiSpatialResamplingFlag being 0.

[0328] Information related to bit depth optimization according to Tables 12 to 26 can be generated and encoded in the bitstream when eoi_spatial_resampling_type_idc is 2 (i.e., when truncating bit depth is applied).

[0329] Alternatively, if the value of eoi_spatial_resampling_type_idc is equal to 2 and thus truncating bit depth is applied, the bit depth optimization related information can indicate the size of the right shift. If the value of eoi_spatial_resampling_type_idc is equal to 3 and thus increasing bit depth is applied, the bit depth optimization related information can indicate the size of the left shift. In this way, the bit depth optimization related information can indicate the size of the shift in the shift direction according to eoi_spatial_resampling_type_idc. In this case, the conditional statement in Tables 12 to 14, if(eoi_spatial_resampling_type_idc==2), may be deleted, or the conditional statement may be changed to if the value of eoi_spatial_resampling_type_idc is 2 or 3 (i.e., if(eoi_spatial_resampling_type_idc==2||3)).

[0330] The values ​​0, 1, 2, 3, 4, 5, 6, and 7 of the bit depth optimization-related information in Tables 12 to 14 may indicate that the input sample is shifted by 1, 2, 3, 4, 5, 6, 7, and 8 bits, respectively. The shift direction may be determined by eoi_spatial_resampling_type_idc. A shift of 0 may not be defined because there is no reason to define the corresponding value when there is no shift.

[0331] If the state where shift is 0 is not defined, it can be written as eoi_num_bit_depth_shift_minus1 to more clearly indicate the meaning of the syntax, and if its value is 0, 1, 2, 3, 4, 5, 6, 7, it can mean that the input sample is shifted by 1, 2, 3, 4, 5, 6, 7, 8 bits respectively.

[0332] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiQualityOptimizationFlag){eoi_quality_optimization_type_idcu(3)if(eoi_quality_optimization_type_idc==3){eoi_num_bit_depth_shiftu(3)}}}}

[0333] Table 27 shows the case where bit depth optimization related information is defined as eoi_num_bit_depth_shift.

[0334] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiQualityOptimizationFlag){eoi_quality_optimization_type_idcu(3)if(eoi_quality_optimization_type_idc==3){eoi_bit_depth_optimization_type_flagu(1)eoi_num_bit_depth_shiftu(3)}}}}

[0335] Table 28 shows the case where bit depth optimization related information is defined with eoi_bit_depth_optimization_type_flag and eoi_num_bit_depth_shift.

[0336] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_bit_depth_optimization_type_flagu(1)bit_depth_shift_lumau(3)bit_depth_shift_chromau(3)}}}}

[0337] Table 29 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, bit_depth_shift_luma, and bit_depth_shift_chroma.

[0338] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_bit_depth_optimization_type_flagu(1)bit_depth_shift_lumau(3)bit_depth_shift_cbu(3)bit_depth_shift_cru(3)}}}}

[0339] Table 30 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, bit_depth_shift_luma, bit_depth_shift_cb, and bit_depth_shift_cr.

[0340] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus8ue(v)}}}}

[0341] 표 31은, 비트뎁스 최적화 관련 정보가 eoi_input_bit_depth_minus8 및 eoi_optimized_bit_depth_minus8로 정의된 경우에 대한 것이다.

[0342] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus6ue(v)}}}}

[0343] Table 32 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth_minus8 and eoi_optimized_bit_depth_minus6.

[0344] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_bit_depth_minus8ue(v)eoi_bit_depth_difference_from_inputue(v)}}}}

[0345] Table 33 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth_minus8 and eoi_bit_depth_difference_from_input.

[0346] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_bit_depthue(v)eoi_optimized_bit_depthue(v)}}}}

[0347] Table 34 shows the case where bit depth optimization related information is defined as eoi_input_bit_depth and eoi_optimized_bit_depth.

[0348] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_bit_depth_for_taskue(v)}}}}

[0349] Table 35 shows the case where bit depth optimization related information is defined as eoi_bit_depth_for_task.

[0350] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_ depth_minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_chroma_bit_depth_minus8ue(v)}}}}

[0351] Table 36 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, and eoi_optimized_chroma_bit_depth_minus8.

[0352] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_ depth_minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_chroma_bit_depth_minus6ue(v)}}}}

[0353] Table 37 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus6, and eoi_optimized_chroma_bit_depth_minus6.

[0354] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_depth _minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_chroma_bit_depth_difference_from_inputue(v)}}}}

[0355] Table 38 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, and eoi_chroma_bit_depth_difference_from_input.

[0356] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_i nput_luma_bit_depthue(v)eoi_input_chroma_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_chroma_bit_depthue(v)}}}}

[0357] Table 39 shows the cases where bit depth optimization related information is defined as eoi_input_luma_bit_depth, eoi_input_chroma_bit_depth, eoi_optimized_luma_bit_depth, and eoi_optimized_chroma_bit_depth.

[0358] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_luma_bit_depth_for_taskue(v)eoi_chroma_bit_depth_for_taskue(v}}}}

[0359] Table 40 shows the case where bit depth optimization related information is defined as eoi_luma_bit_depth_for_task and eoi_chroma_bit_depth_for_task.

[0360] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_cb_bit_depth_minus8ue(v)eoi_optimized_cr_bit_depth_minus8ue(v)}}}}

[0361] 표 41은, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, eoi_optimized_cb_bit_depth_minus8 및 eoi_optimized_cr_bit_depth_minus8로 정의된 경우에 대한 것이다.

[0362] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_cb_bit_depth_minus6ue(v)eoi_optimized_cr_bit_depth_minus6ue(v)}}}}

[0363] 표 42는, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, eoi_optimized_cb_bit_depth_minus6 및 eoi_optimized_cr_bit_depth_minus6로 정의된 경우에 대한 것이다.

[0364] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_cb_bit_depth_difference_from_inputue(v)eoi_cr_bit_depth_difference_from_input}}}}

[0365] 표 43은, 비트뎁스 최적화 관련 정보가 eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, eoi_cb_bit_depth_difference_from_input 및 eoi_cr_bit_depth_difference_from_input로 정의된 경우에 대한 것이다.

[0366] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flag(1) if(!eoi_cancel_flag){ eoi_persistence_flag(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_input_luma_bit_depthue(v)e oi_input_cb_bit_depthue(v)eoi_input_cr_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_cb_bit_depthue(v)eoi_optimized_cr_bit_depthue(v)}}}}

[0367] Table 44, 동리레스 아이스타이니니다 다이니다, eoi_input_luma_bit_depth, eoi_input_cb_bit_depth, eoi_input_cr_bit_depth, eoi_optimized_luma_bit_depth, eoi_optimized_cb_bit_depth, eoi_optimized_cr_bit_depth.

[0368] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoQualityOptimizationFlag){eoi_quality_optimization_type_idcu(2)if(eoi_quality_optimization_type_idc==3){eoi_luma_bit_depth_for_taskue(v)eoi_cb_bit_depth_for_taskue(v)eoi_cr_bit_depth_for_taskue(v)}}}}

[0369] Table 45 shows the cases where bit depth optimization related information is defined as eoi_luma_bit_depth_for_task, eoi_cb_bit_depth_for_task, and eoi_cr_bit_depth_for_task.

[0370] Information related to bit depth optimization according to Tables 27 to 45 may be generated and encoded in the bit stream based on the value of EoQualityOptimizationFlag being 1. On the other hand, information related to bit depth optimization according to Tables 27 to 45 may not be encoded in the bit stream based on the value of EoQualityOptimizationFlag being 0.

[0371] Information related to bit depth optimization according to Table 27 to Table 45 can be generated and encoded in the bitstream when eoi_quality_optimization_type_idc is 3 (i.e., when the type of spatial quality optimization is bit depth optimization).

[0372] Among the bit depth optimization-related information according to Tables 27 to 45, information on the shift size of input samples may indicate the size of a right shift when a truncating bit depth is applied, and may indicate the size of a left shift when an increasing bit depth is applied. The values ​​0, 1, 2, 3, 4, 5, 6, and 7 of the information on the shift size of input samples may mean that the input samples are shifted by 1, 2, 3, 4, 5, 6, 7, and 8 bits, respectively. The shift direction may be determined based on at least one of eoi_quality_optimization_type_idc or eoi_bit_depth_optimization_type_flag. Since there is no reason to define the value when there is no shift, it may not be defined when the shift is 0.

[0373] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_num_bit_depth_shiftu(3)}}}

[0374] Table 46 shows the case where bit depth optimization related information is defined with eoi_bit_depth_optimization_type_flag and eoi_num_bit_depth_shift.

[0375] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)bit_depth_shift_lumau(3)bit_depth_shift_chromau(3)} }}

[0376] 표 47은, 비트뎁스 최적화 관련 정보가 eoi_bit_depth_optimization_type_flag, bit_depth_shift_luma 및 bit_depth_shift_chroma로 정의된 경우에 대한 것이다.

[0377] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)bit_depth_shift_lumau(3)bit_depth_shift_cbu(3)bit_depth_shift_cru(3)} }}

[0378] Table 48 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, bit_depth_shift_luma, bit_depth_shift_cb, and bit_depth_shift_cr.

[0379] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus8ue(v)}}}

[0380] Table 49 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_bit_depth_minus8, and eoi_optimized_bit_depth_minus8.

[0381] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_bit_depth_minus8ue(v)eoi_optimized_bit_depth_minus6ue(v)}}}

[0382] 표 50은, 비트뎁스 최적화 관련 정보가 eoi_bit_depth_optimization_type_flag, eoi_input_bit_depth_minus8 및 eoi_optimized_bit_depth_minus6로 정의된 경우에 대한 것이다.

[0383] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_bit_depth_minus8ue(v)eoi_bit_depth_difference_from_inputue(v)}}}

[0384] Table 51 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_bit_depth_minus8, and eoi_bit_depth_difference_from_input.

[0385] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_bit_depthue(v)eoi_optimized_bit_depthue(v)}}}

[0386] Table 52 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_bit_depth, and eoi_optimized_bit_depth.

[0387] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_bit_depth_for_taskue(v)}}}

[0388] 표 53은, 비트뎁스 최적화 관련 정보가 eoi_bit_depth_optimization_type_flag 및 eoi_bit_depth_for_task로 정의된 경우에 대한 것이다.

[0389] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depth_minus8ue(v)eoi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_chroma_bit_depth_minus8ue(v)}}}

[0390] Table 54 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, and eoi_optimized_chroma_bit_depth_minus8.

[0391] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depth_minus8ue(v)e oi_input_chroma_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_chroma_bit_depth_minus6ue(v)}}}

[0392] Table 55 is for cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus6, and eoi_optimized_chroma_bit_depth_minus6.

[0393] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depth_minus8ue(v)eoi_in put_chroma_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_chroma_bit_depth_difference_from_inputue(v)}}}

[0394] Table 56 is for cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_chroma_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, and eoi_chroma_bit_depth_difference_from_input.

[0395] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depthue(v)eoi_input_chroma_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_chroma_bit_depthue(v)}}}

[0396] Table 57 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth, eoi_input_chroma_bit_depth, eoi_optimized_luma_bit_depth, and eoi_optimized_chroma_bit_depth.

[0397] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_luma_bit_depth_for_taskue(v)eoi_chroma_bit_depth_for_taskue(v}}}

[0398] Table 58 shows the cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_luma_bit_depth_for_task, and eoi_bit_depth_for_task.

[0399] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flag(1) if(!eoi_cancel_flag){ eoi_persistence_flag(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flag(1)eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v )eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus8ue(v)eoi_optimized_cb_bit_depth_minus8ue(v)eoi_optimized_cr_bit_depth_minus8ue(v)}}}

[0400] 호 59는, 동타레스 에서이니다 related information eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus8, eoi_optimized_cb_bit_depth_minus8 and eoi_optimized_cb_bit_depth_minus8 to be

[0401] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_optimized_luma_bit_depth_minus6ue(v)eoi_optimized_cb_bit_depth_minus6ue(v)eoi_optimized_cr_bit_depth_minus6ue(v)}}}

[0402] 표 60은, 비트뎁스 최적화 관련 정보가 eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_optimized_luma_bit_depth_minus6, eoi_optimized_cb_bit_depth_minus6 및 eoi_optimized_cr_bit_depth_minus6로 정의된 경우에 대한 것이다.

[0403] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_input_luma_bit_depth_minus8ue(v)eoi_input_cb_bit_depth_minus8ue(v)eoi_input_cr_bit_depth_minus8ue(v)eoi_luma_bit_depth_difference_from_inputue(v)eoi_cb_bit_depth_difference_from_inputue(v)eoi_cr_bit_depth_difference_from_input}}}

[0404] 표 61은, 비트뎁스 최적화 관련 정보가 eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth_minus8, eoi_input_cb_bit_depth_minus8, eoi_input_cr_bit_depth_minus8, eoi_luma_bit_depth_difference_from_input, eoi_cb_bit_depth_difference_from_input 및 eoi_cr_bit_depth_difference_from_input로 정의된 경우에 대한 것이다.

[0405] encoder_optimization_info(payloadSize ) {Descriptor eoi_cancel_flag(1) if(!eoi_cancel_flag){ eoi_persistence_flag(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flag(1)eoi_input_luma_bit_depthue(v)eoi_input_cb_bit_de pthue(v)eoi_input_cr_bit_depthue(v)eoi_optimized_luma_bit_depthue(v)eoi_optimized_cb_bit_depthue(v)eoi_optimized_cr_bit_depthue(v)}}}

[0406] Table 62, the information related to optimization related to eoi_bit_depth_optimization_type_flag, eoi_input_luma_bit_depth, eoi_input_cb_bit_depth, eoi_input_cr_bit_depth, eoi_optimized_luma_bit_depth, eoi_optimized_cb_bit_depth and eoi_optimized_cr_bit_depth are defined as eoi_optimized_cb_bit_depth.

[0407] encoder_optimization_info(payloadSize) {Descriptor eoi_cancel_flagu(1) if(!eoi_cancel_flag){ eoi_persistence_flagu(1) eoi_for_human_viewing_idcu(2) eoi_for_machine_analysis_idcu(2) eoi_typeu(16)if(EoiBitdepthOptimizationFlag){eoi_bit_depth_optimization_type_flagu(1)eoi_luma_bit_depth_for_taskue(v)eoi_cb_bit_depth_for_taskue(v)eoi_cr_bit_depth_for_taskue(v)}}}

[0408] Table 63 is for cases where bit depth optimization related information is defined as eoi_bit_depth_optimization_type_flag, eoi_luma_bit_depth_for_task, eoi_cb_bit_depth_for_task, and eoi_cr_bit_depth_for_task.

[0409] Information related to bit depth optimization according to Tables 46 to 63 may be generated and encoded in the bit stream based on the value of EoiBitdepthOptimizationFlag being 1. On the other hand, information related to bit depth optimization according to Tables 46 to 63 may not be encoded in the bit stream based on the value of EoiBitdepthOptimizationFlag being 0.

[0410] Alternatively, bit depth optimization related information according to Tables 46 to 63 may be generated and encoded in the bitstream based on the value of EoiBitdepthTruncationFlag being 1. On the other hand, bit depth optimization related information according to Tables 46 to 63 may not be encoded in the bitstream based on the value of EoiBitdepthTruncationFlag being 0.

[0411] Among the bit depth optimization-related information according to Tables 46 to 63, information on the shift size of input samples may indicate the size of a right shift when a truncating bit depth is applied, and may indicate the size of a left shift when an increasing bit depth is applied. The values ​​0, 1, 2, 3, 4, 5, 6, and 7 of the information on the shift size of input samples may mean that the input samples are shifted by 1, 2, 3, 4, 5, 6, 7, and 8 bits, respectively. The shift direction may be determined based on at least one of eoi_quality_optimization_type_idc or eoi_bit_depth_optimization_type_flag. Since there is no reason to define the value when there is no shift, it may not be defined when the shift is 0.

[0412] FIG. 5 illustrates a schematic configuration of an encoding device (200) that performs a method for generating a bitstream according to the present disclosure.

[0413] Referring to FIG. 5, the encoding device (200) may include a receiving unit (500), a video compression unit (510), an EOI generation unit (520), and a bitstream generation unit (530).

[0414] The receiving unit (500) can receive one or more video pictures to be encoded.

[0415] The video compression unit (510) can encode one or more received video pictures to generate compressed video pictures.

[0416] The EOI generation unit (520) can generate encoder optimization information. The encoder optimization information may be related to a compressed video picture, and the method for generating the information is as described with reference to FIG. 4.

[0417] The bitstream generation unit (530) can generate a bitstream including a compressed video picture and encoder optimization information.

[0418] FIG. 6 illustrates a method for restoring a video picture performed in a decoding device (300) according to the present disclosure.

[0419] A bitstream including an encoded video picture can be received (S600).

[0420] The encoded video picture of the bitstream can be restored (S610).

[0421] Video information about an encoded video picture can be extracted from a bitstream. The encoded video picture can be restored based on the extracted video information.

[0422] Additionally, the NAL unit of the bitstream may include an SEI message. The SEI message may define encoder optimization information (EOI). The encoder optimization information may be related to the encoded video picture. The encoder optimization information may be included in the SEI message and signaled through the bitstream.

[0423] The above encoder optimization information may include an EOI cancellation flag (eoi_cancel_flag). Based on eoi_cancel_flag being 0, optimization-related information may be included in the encoder optimization information, as discussed with reference to FIG. 4.

[0424] Additionally, the encoder optimization information may define bit depth optimization-related information. The bit depth optimization-related information may include at least one of information regarding the shift size of input samples, information regarding the bit depth, or information regarding the bit depth optimization type, as described with reference to FIG. 4.

[0425] Information related to bit depth optimization can be signaled and included in the encoder optimization information based on at least one of a predetermined variable or a bit depth optimization identifier.

[0426] Here, the predetermined variable may include at least one of a spatial resampling flag (EoiSpatialResamplingFlag) indicating whether spatial resampling optimization is applied, a flag (EoiQualityOptimizationFlag) indicating whether spatial quality optimization is applied, a flag (EoiBitdepthOptimizationFlag) indicating whether bit depth optimization is applied, or a flag (EoiBitdepthTruncationFlag) indicating whether bit depth truncation is applied. The variable derivation method is as described with reference to Fig. 4.

[0427] Additionally, the bit depth optimization identifier may include at least one of a spatial resampling type identifier (eoi_spatial_resampling_type_idc) or a quality optimization type identifier (eoi_quality_optimization_type_idc), as described with reference to FIG. 4.

[0428] Signaling of bit depth optimization related information based on at least one of a given variable or bit depth optimization identifier is as described with reference to FIG. 4.

[0429] FIG. 7 illustrates a schematic configuration of a decoding device (300) that performs a method for restoring a video picture according to the present disclosure.

[0430] Referring to FIG. 7, the decoding device (300) may include a receiving unit (700), a video information extraction unit (710), and a video restoration unit (720).

[0431] The receiving unit (700) can receive a bitstream including an encoded video picture.

[0432] The video information extraction unit (710) can extract video information about an encoded video picture from a bitstream. In addition, the video information extraction unit (710) can extract an SEI message from a NAL unit of the bitstream. The extracted SEI message can include encoder optimization information.

[0433] The video restoration unit (720) can restore an encoded video picture based on the extracted video information.

[0434] In the embodiments described above, the methods are described based on a flowchart as a series of steps or blocks. However, the embodiments are not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps described above. Furthermore, those skilled in the art will understand that the steps depicted in the flowchart are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of this document.

[0435] The method according to the embodiments of the present document described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present document can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.

[0436] When the embodiments in this document are implemented as software, the above-described method can be implemented as a module (process, function, etc.) that performs the above-described function. The module can be stored in memory and executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor can include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or data processing device. The memory can include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored on a digital storage medium.

[0437] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (virtual reality) device, an AR (argumente reality) device, a video phone video device, a transportation terminal (ex. a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.

[0438] In addition, the processing method to which the embodiment(s) of the present specification are applied can be produced in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of the present specification can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0439] Additionally, the embodiments of the present disclosure may be implemented as a computer program product by program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.

[0440] FIG. 8 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0441] Referring to FIG. 8, a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0442] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server may be omitted.

[0443] The above bitstream can be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0444] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, in which case the control server controls commands / responses between each device within the content streaming system.

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

[0446] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.

[0447] Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.

[0448] The claims set forth in this specification may be combined in various ways. For example, the technical features of the method claims of this specification may be combined and implemented as a device, and the technical features of the device claims of this specification may be combined and implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a device, and the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a method.

Claims

1. A step of receiving a video picture to be encoded; A step of encoding the received video picture to generate a compressed video picture; A step of generating encoder optimization information regarding the compressed video picture; and A step of generating a bitstream including the compressed video picture and the encoder optimization information, A method wherein the above encoder optimization information includes bit depth optimization related information.

2. In paragraph 1, A method in which the above bit depth optimization related information includes information regarding the shift size of the input sample.

3. In paragraph 1, A method wherein the bit depth optimization related information includes at least one of information about an input bit depth, information about an optimized bit depth, information about a bit depth difference, or information about a task bit depth.

4. In paragraph 1, A method wherein the above bit depth optimization related information includes information for identifying the type of bit depth optimization.

5. In paragraph 1, A method in which the above bit depth optimization related information is generated based on a spatial resampling flag indicating whether spatial resampling optimization is applied.

6. In paragraph 1, A method in which the above bit depth optimization related information is generated based on a flag indicating whether spatial quality optimization is applied.

7. In paragraph 1, A method in which the above bit depth optimization related information is generated based on a flag indicating whether bit depth optimization is applied.

8. In paragraph 1, The above bit depth optimization related information is generated based on a flag indicating whether bit depth truncation is applied.

9. In paragraph 1, The above bit depth optimization related information is generated based on a bit depth optimization identifier for identifying bit depth optimization.

10. In paragraph 9, The above bit depth optimization identifier is a spatial resampling type identifier for identifying the type of spatial resampling applied.

11. In paragraph 9, The above bit depth optimization identifier is a quality optimization type identifier for identifying the type of spatial quality optimization applied.

12. A step of receiving a bitstream including an encoded video picture; and A step of restoring an encoded video picture included in the above bitstream, The above bitstream contains encoder optimization information about the encoded video picture, A method wherein the above encoder optimization information includes bit depth optimization related information.

13. A computer-readable storage medium storing a bitstream generated by the method according to Article 12.

14. A step of generating a bitstream; wherein the bitstream is generated based on the steps of: receiving a video picture to be encoded; encoding the received video picture to generate a compressed video picture; generating encoder optimization information regarding the compressed video picture; and generating a bitstream including the compressed video picture and the encoder optimization information. Including a step of transmitting data including the above bitstream, A method wherein the above encoder optimization information includes bit depth optimization related information.

Citation Information

Patent Citations

  • Bit-depth efficient image processing

    US20200228736A1

  • Integrated image reshaping and video coding

    US20230021624A1

  • Neural network-based adaptive image and video compression method

    WO2024020053A1