MÉTODO PARA DECODIFICAÇÃO DE INFORMAÇÕES DE IMAGEM, MÉTODO PARA CODIFICAÇÃO DE INFORMAÇÕES DE IMAGEM, MÉTODO PARA ARMAZENAMENTO DE FLUXO DE BITS DE INFORMAÇÕES DE IMAGEM E MÉTODO PARA TRANSMISSÃO DE FLUXO DE BITS DE INFORMAÇÕES DE IMAGEM
Patent Information
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Current Assignee / Owner
- LG ELECTRONICS INC
- Filing Date
- 2025-01-09
- Publication Date
- 2026-08-04
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
1 / 124 METHOD FOR DECODING IMAGE INFORMATION, METHOD FOR ENCODING IMAGE INFORMATION, METHOD FOR STORAGE OF IMAGE INFORMATION BIT STREAM AND METHOD FOR TRANSMISSION OF IMAGE INFORMATION BIT STREAM IMAGE FIELD OF TECHNIQUE
[001] This disclosure relates to a method for decoding image information, a method for encoding image information, a method for storing a bitstream of image information and / or a method for transmitting a bitstream of image information. PREVIOUS TECHNIQUE
[002] Recently, the demand for high-resolution, high-quality images, such as high-definition (HD) and ultra-high-definition (UHD) images, has been increasing in various fields. As the resolution and quality of image data improve, the amount of information or bits transmitted increases relatively compared to existing image data. An increase in the amount of information or bits transmitted causes an increase in transmission and storage costs.
[003] Consequently, there is a need for high-efficiency image compression technology to effectively transmit, store and reproduce information in high-resolution, high-quality images. DISCLOSURE TECHNICAL PROBLEM
[004] This disclosure provides a method and / or device for encoding / decoding with improved encoding / decoding efficiency.
[005] This disclosure also provides a method for supporting the parallel grouping of supplementary enhancement information (SEI) from a Petition 870250085523, dated 09 / 22 / 2025, page 8 / 151 2 / 124 SEI message of SEI processing order (SPO) for an encoded video bitstream.
[006] This disclosure also uses a flag that indicates whether it is preferable to invoke SEI messages with the same processing order to support parallel SEI grouping.
[007] This disclosure also provides a computer-readable method and / or means of recording and storing a bitstream generated using an encoding method in accordance with this disclosure.
[008] This disclosure also provides a computer-readable recording method and / or means for transmitting a bitstream generated using an encoding method in accordance with this disclosure.
[009] The technical objectives of this disclosure are not limited to those described above, and other technical objectives not described may be obviously understood by those skilled in the art to which this disclosure relates from the following description. TECHNICAL SOLUTION
[010] According to one aspect of this disclosure, a method for decoding image information includes obtaining the image information, including processing order information from supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types, and determining the processing order based on the SEI processing order information, wherein the SEI processing order information includes payload type information, indicating an SEI message type, prefix present information, indicating whether the SEI message prefix information is present or not, and processing order information, indicating the processing order for the SEI message type, and wherein the SEI processing order information further includes information Petition 870250085523, dated 09 / 22 / 2025, page 9 / 151 3 / 124 of enabling parallel processing, indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[011] According to one aspect of the present disclosure, an apparatus for decoding image information includes a memory and a memory-coupled processor, wherein the processor is configured to obtain image information, including processing order information from supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types, and to determine the processing order based on the SEI processing order information, wherein the SEI processing order information includes payload type information, indicating an SEI message type, prefix present information, indicating whether the SEI message prefix information is present or not, and processing order information, indicating the processing order for the SEI message type, and wherein the SEI processing order information further includes parallel processing enablement information,indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[012] According to one aspect of this disclosure, a method for encoding image information includes determining a processing order for a group of supplemental enhancement information (SEI) message types, generating SEI processing order information based on the processing order, and encoding the image information, including the SEI processing order information, wherein the SEI processing order information includes payload type information indicating an SEI message type, prefix present information indicating whether or not the SEI message prefix information is present, and information of Petition 870250085523, dated 09 / 22 / 2025, page 10 / 151 4 / 124 processing order that indicates the processing order for the SEI message type, and wherein the SEI processing order information also includes parallel processing enablement information that indicates whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[013] According to one aspect of the present disclosure, an apparatus for decoding image information includes a memory and a memory-coupled processor, wherein the processor is configured to determine a processing order for a group of supplemental enhancement information (SEI) message types, generate SEI processing order information based on the processing order, and encode the image information, including the SEI processing order information, wherein the SEI processing order information includes payload type information indicating an SEI message type, prefix present information indicating whether or not the SEI message prefix information is present, and processing order information indicating the processing order for the SEI message type.and where the SEI processing order information also includes parallel processing enablement information indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[014] According to one aspect of the present disclosure, a method for storing a bitstream of image information on a computer-readable non-transient storage medium includes obtaining the image information, including processing order information and supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types, and storing the data, including the bitstream, in which the processing order information Petition 870250085523, dated 09 / 22 / 2025, page 11 / 151 5 / 124 SEI includes payload type information, indicating a type of SEI message; prefix presence information, indicating whether the SEI message prefix information is present or not; and processing order information, indicating the processing order for the SEI message type, wherein the SEI processing order information further includes parallel processing enablement information, indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[015] According to one aspect of the present disclosure, a non-transient, computer-readable storage medium that stores a bitstream of image information, the image information includes supplementary enhancement information (SEI) processing order information indicating a processing order for a group of SEI message types, wherein the SEI processing order information includes payload type information indicating an SEI message type, prefix present information indicating whether or not the SEI message prefix information is present, and processing order information indicating the processing order for the SEI message type,and where the SEI processing order information also includes parallel processing enablement information that indicates whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[016] According to one aspect of the present disclosure, a method for transmitting a bitstream of image information includes obtaining the image information, including processing order information and supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types, and transmitting data, including the bitstream, in which the processing order information is SEI. Petition 870250085523, dated 09 / 22 / 2025, page 12 / 151 6 / 124 includes payload type information, indicating a type of SEI message, prefix presence information, indicating whether the SEI message prefix information is present or not, and processing order information, indicating the processing order for the SEI message type, and wherein the SEI processing order information further includes parallel processing enablement information, indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
[017] According to one aspect of the present disclosure, an apparatus for decoding image information includes a memory and a memory-coupled processor, wherein the processor is configured to obtain image information, including processing order information of supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types, and transmit data, including the bitstream, wherein the SEI processing order information includes payload type information, indicating an SEI message type, prefix present information, indicating whether the SEI message prefix information is present or not, and processing order information, indicating the processing order for the SEI message type, and wherein the SEI processing order information further includes parallel processing enablement information,indicating whether at least two SEI messages with the same processing order in the SEI processing order are invoked in parallel or not.
[018] In the method / device for decoding image information, in the method / device for encoding image information, in the computer-readable storage method / medium for storing a bitstream of image information, or in the method / device for transmitting a bitstream of image information, a value of the processing enablement information. Petition 870250085523, dated 09 / 22 / 2025, page 13 / 151 7 / 124 parallel equal to 1 indicates that at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel, and a value of 0 in the parallel processing enablement information indicates that at least two SEI messages with the same processing order in the SEI processing order information are not invoked in parallel.
[019] In the method / device for decoding image information, in the method / device for encoding image information, in the computer-readable storage method / medium for storing a bitstream of image information, or in the method / device for transmitting a bitstream of image information, at least two SEI messages of the same type and for which the same prefix information is present have the same processing order, and at least two SEI messages of the same type and for which no prefix information is present have the same processing order.
[020] In the method / device for decoding image information, in the method / device for encoding image information, in the computer-readable storage method / medium for storing a bitstream of image information, or in the method / device for transmitting a bitstream of image information, the image information further includes processing order nesting information, including position information of a specific SEI message within the processing order defined by the SEI processing order information, at least two SEI messages of the same type, for which the same prefix information is present and which is not included in the processing order nesting information, have the same processing order, and at least two SEI messages of the same type, for which no prefix information is present and which is not included in the processing order nesting information. Petition 870250085523, dated 09 / 22 / 2025, page 14 / 151 8 / 124 included in the processing order nesting information, have the same processing order.
[021] The resources in this disclosure, briefly summarized above, are merely illustrative aspects of the detailed description of this disclosure and do not limit its scope. ADVANTAGEOUS EFFECTS
[022] According to the present disclosure, it is possible to provide a method and / or device for encoding / decoding with improved encoding / decoding efficiency.
[023] According to this disclosure, it is possible to support parallel grouping in which SEI messages with the same processing turn are invoked in parallel.
[024] According to the present disclosure, it is possible to provide a computer-readable recording method and / or means for storing a bitstream generated using an encoding method according to the present disclosure.
[025] According to the present disclosure, it is possible to provide a computer-readable recording method and / or means for transmitting a bitstream generated using an encoding method according to the present disclosure.
[026] The effects that may be obtained from this disclosure are not limited to those described above, and other effects not described will be clearly understood by those versed in the technical area to which this disclosure refers, from the following description. DESCRIPTION OF THE DRAWINGS
[027] FIG. 1 is a schematic view showing a video encoding system to which an embodiment of the present disclosure applies.
[028] FIG. 2 is a diagram which schematically illustrates an image encoding device to which a modality according to the present Petition 870250085523, dated 09 / 22 / 2025, page 15 / 151 9 / 124 disclosure can be applied.
[029] FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to this disclosure can be applied.
[030] FIG. 4 shows, by way of example, a hierarchical structure for encoded video / image to which a modality according to the present disclosure can be applied.
[031] FIG. 5 is a drawing that explains an interleaved method for deriving a luma channel.
[032] FIG. 6 is a flowchart that illustrates a method of decoding image information according to an embodiment of the present disclosure.
[033] FIG. 7 is a flowchart that illustrates a method of encoding image information according to an embodiment of the present disclosure.
[034] FIG. 8 is a diagram that exemplifies a continuous content transmission system to which a modality in accordance with this disclosure can be applied. MODES OF INVENTION
[035] The embodiments of the present disclosure will be described in detail herein with reference to the accompanying drawings, so that they may be easily implemented by those skilled in the art. However, the present disclosure can be implemented in a variety of different forms and is not limited to the embodiments described herein.
[036] In describing this disclosure, if it is determined that a detailed description of a known related function or construction would make the scope of this disclosure unnecessarily ambiguous, the detailed description of the same shall be omitted. In the drawings, parts not related to the description of this disclosure are omitted, and similar reference numerals are attached to Petition 870250085523, dated 09 / 22 / 2025, p. 16 / 151 10 / 124 similar parts.
[037] In this disclosure, when a component is connected, coupled, or linked to another component, it may include not only a direct connection relationship but also an indirect connection relationship in which an intervening component is present. Furthermore, when a component includes or has other components, this means that other components may still be included, rather than excluding other components, unless otherwise indicated.
[038] In this disclosure, the terms first, second, etc. may be used only for the purpose of distinguishing one component from other components and do not limit the order or importance of the components, unless otherwise indicated. Consequently, within the scope of this disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and likewise, a second component in one embodiment may be referred to as a first component in another embodiment.
[039] In this disclosure, the components that are differentiated from each other are intended to clearly describe each feature, and do not mean that the components are necessarily separate. That is, a plurality of components may be integrated and implemented in a hardware or software unit, or a component may be distributed and implemented in a plurality of hardware or software units. Therefore, even if not indicated otherwise, such embodiments in which the components are integrated or the component is distributed are also included in the scope of this disclosure.
[040] In this disclosure, the components described in various embodiments do not necessarily mean essential components, and some components may be optional. Consequently, an embodiment that Petition 870250085523, dated 09 / 22 / 2025, page 17 / 151 11 / 124 consists of a subset of components described in an embodiment and is also included within the scope of this disclosure. Furthermore, embodiments that include components beyond those described in the various embodiments are also included within the scope of this disclosure.
[041] This disclosure relates to the encoding and decoding of an image, and the terms used in this disclosure may have a general meaning commonly used in the technical field to which this disclosure pertains, unless defined anew in this disclosure.
[042] This disclosure presents various video / image encoding methods and, unless otherwise indicated, the methods can be implemented in combination with each other.
[043] The terms used in this disclosure may have their usual meanings in the technical field to which this disclosure pertains, unless they are redefined in this disclosure.
[044] In this disclosure, an image generally means a unit representing an image from a specific time period, and a tiled slice / fill is a coding unit that constitutes a part of an image, and an image may be composed of one or more tiled slices / fills. Furthermore, a tiled slice / fill may include one or more CTUs (coding tree units). An image may be composed of one or more tiled fill groups. A tiled fill group may include one or more tiled fills. A block may represent a rectangular area of lines of tiled CTU fills in an image. In this document, tiled fill group and slice may be used interchangeably. For example, in this document, a tiled fill group / tiled fill group header may be referred to as a slice / slice header. Petition 870250085523, dated 09 / 22 / 2025, page 18 / 151 12 / 124
[045] In this disclosure, a “pixel” or a “pel” may mean the smallest unit that constitutes an image. In addition, “sample” may be used as a term corresponding to a pixel. A sample may generally represent a pixel or a pixel value, and may represent only a pixel / pixel value of a luma component or only a pixel / pixel value of a chroma component.
[046] In this disclosure, a unit may represent a basic unit of image processing. The unit may include at least one specific region of the image and information related to that region. A unit may include one luma block and two chroma blocks (e.g., Cb, Cr). The unit may be used interchangeably with terms such as sample matrix, block, or area in some cases. In a general case, an M*N block may include samples (or sample matrices) or a set (or matrix) of transformation coefficients of M columns and N rows.
[047] In this disclosure, current block may mean one of the following: current encoding block, current encoding unit, encoding target block, decoding target block, or processing target block. When prediction is performed, current block may mean current prediction block or prediction target block. When transformation (inverse transformation) / quantization (dequantization) is performed, current block may mean current transformation block or transformation target block. When filtering is performed, current block may mean filtering target block.
[048] Furthermore, in the present disclosure, a current block may mean a block that includes a luma component block and a chroma component block or a luma block of a current block, unless explicitly indicated as a chroma block. The chroma component block of the current block may be expressed by including an explicit description of a component block of Petition 870250085523, dated 09 / 22 / 2025, p. 19 / 151 13 / 124 chroma, as a chroma block or current chroma block.
[049] In this disclosure, the terms “ / ” and “,” should be interpreted as indicating “and / or”. For example, the expressions “A / B” and “A, B” may mean “A and / or B”. In addition, “A / B / C” and “A, B, C” may mean “at least one of A, B and / or C”.
[050] In this disclosure, the term “or” should be interpreted as meaning “and / or”. For example, the expression “A or B” may include 1) only “A”, 2) only “B” and / or 3) both “A and B”. In other words, in this disclosure, the term “or” should be interpreted as meaning “additionally or alternatively”.
[051] FIG. 1 illustrates an example of a video / image encoding system to which the document in this document can be applied.
[052] Referring to FIG. 1, a video / image encoding system may include a source device and a receiving device. The source device may transmit encoded video / image information or data to the receiving device via a digital storage medium or network in the form of a file or continuous transmission.
[053] The source device may include a video source, an encoding device, and a transmitter. The receiving device may include a receiver, a decoding device, and a renderer. The encoding device may be called a video / image encoding device, and the decoding device may be called 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 monitor, and the monitor may be configured as a separate device or an external component.
[054] The video source can acquire video / image through a process of capturing, synthesizing, or generating the video / image. The video source may include a video / image capture device and / or a video / image generation device. Petition 870250085523, dated 09 / 22 / 2025, page 20 / 151 14 / 124 Video / Image. The video / image capture device may include, for example, one or more cameras, video / image files, including previously captured videos / images, and the like. The video / image generation device may include, for example, computers, tablets, and smartphones, and may generate (electronically) videos / images. For example, a virtual video / image may be generated by a computer or similar device. In this case, the video / image capture process may be replaced by a related data generation process.
[055] The encoding device can encode the input video / image. The encoding device can perform a series of processes, such as prediction, transformation, and quantization for compression and encoding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[056] The transmitter can transmit the encoded image / image information or emitted data in the form of a bitstream to the receiver device via a digital storage medium or a network, in the form of a file or continuous transmission. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. The transmitter can include an element to generate a media file using a predetermined file format and can include an element for transmission via a transmission / communication network. The receiver can receive / extract the bitstream and transmit the received bitstream to the decoding device.
[057] The decoding device can decode the video / image by performing a series of processes, such as dequantization, inverse transformation and prediction, corresponding to the operation of the encoding device.
[058] The renderer can render the decoded video / image. The Petition 870250085523, dated 09 / 22 / 2025, page 21 / 151 15 / 124 rendered video / image can be displayed on the monitor.
[059] FIG. 2 is a diagram that schematically illustrates an image encoding device to which an embodiment according to the present disclosure can be applied.
[060] With reference to Fig. 2, the coding apparatus 200 includes an image partitioner 210, a predictor 220, a residual processor 230 and an entropy encoder 240, an adder 250, a filter 260 and a memory 270. The predictor 220 may include an interpredictor 221 and an intrapredictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234 and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be called a reconstructor or reconstructed block generator. The image partitioner 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 250, and the filter 260 can be configured by at least one hardware component (e.g., an encoder or processor chip set) according to an embodiment.In addition, the 270 memory may include a temporary decoded image storage (DPB) or may be configured by a digital storage medium. The hardware component may also include the 270 memory as an internal / external component.
[061] The image partitioner 210 can divide an input image (or a picture or a frame) fed into the encoding device 200 into one or more processors. For example, the processor can be called an encoding unit (CU). In this case, the encoding unit can be recursively divided according to a ternary tree, binary tree, quaternary tree (QTBTTT) structure from a encoding tree unit (CTU) or a larger encoding unit (LCU). For example, an encoding unit can be divided into a plurality of deeper encoding units, Petition 870250085523, dated 09 / 22 / 2025, page 22 / 151 16 / 124 based on a quaternary tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quaternary tree structure can be applied first, and the binary tree structure and / or the ternary structure can be applied later. Alternatively, the binary tree structure can be applied first. The encoding procedure, according to this document, can be performed based on the final encoding unit that is no longer divided. In this case, the largest encoding unit can be used as the final encoding unit based on encoding efficiency according to the image characteristics, or, if necessary, the encoding unit can be recursively divided into deeper encoding units, and an encoding unit with an ideal size can be used as the final encoding unit.Here, the encoding procedure may include a prediction, transformation, and reconstruction procedure, which will be described later. As another example, the processor may also include a prediction unit (PU) or a transformation unit (TU). In this case, the prediction unit and the transformation unit may be divided or partitioned from the aforementioned final encoding unit. The prediction unit may be a sample prediction unit, and the transformation unit may be a unit for deriving a transformation coefficient and / or a unit for deriving a residual signal from the transformation coefficient.
[062] The term unit can be used interchangeably with terms like block or area, depending on the case. In general, an MxN block can represent a set of samples or transformation coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and can represent only a pixel / pixel value of a luma component, or only a pixel / pixel value of a chroma component. A sample can be used as a term corresponding to a pixel or pel in an image. Petition 870250085523, dated 09 / 22 / 2025, page 23 / 151 17 / 124
[063] In the coding apparatus 200, a prediction signal (predicted block, prediction sample matrix) emitted by the interpredictor 221 or intrapredictor 222 is subtracted from an input image signal (original block, original sample matrix) to generate a residual signal (residual block, residual sample matrix), and the generated residual signal is transmitted to the transformer 232. In this case, as shown, a unit for subtracting a prediction signal (predicted block, prediction sample matrix) from the input image signal (original block, original sample matrix) in the encoder 200 can be called a subtractor 231. The predictor can perform 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 predictor can determine whether intraprediction or interprediction is applied on a current block or CU basis.As described later in the description of each prediction mode, the predictor can generate various prediction-related information, such as prediction mode information, and transmit the generated information to the 240 entropy encoder. The prediction information can be encoded in the 240 entropy encoder and released as a bit stream.
[064] The intrapredictor 222 can predict the current block with reference to samples in the current image. The referenced samples can be located in the vicinity of the current block or can be located separately, according to the prediction mode. In intraprediction, prediction modes can include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode can include, for example, a DC mode and a planar mode. The directional mode can include, for example, 33 directional prediction modes or 65 directional prediction modes, according to the degree of detail of the prediction direction. However, this is only an example; more or less directional prediction modes can be used, depending on the configuration. The intrapredictor 222 can determine the prediction mode applied to the current block using a prediction mode. Petition 870250085523, dated 09 / 22 / 2025, page 24 / 151 18 / 124 applied to a neighboring block.
[065] Interpredictor 221 can derive a predicted block for the current block based on a reference block (reference sample matrix) specified by a motion vector in a reference image. Here, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between the neighboring block and the current block. The motion information can include a motion vector and an index of the reference image. The motion information can also include information about the direction of the interprediction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the neighboring block can include a spatial neighboring block present in the current image and a temporal neighboring block present in the reference image.The reference image, including the reference block, and the reference image, including the temporal neighboring block, may be the same or different. The temporal neighboring block may be called a colocalized reference block, colocalized CU (colCU), and similar names, and the reference image, including the temporal neighboring block, may be called a colocalized image (colPic). For example, the interpredictor 221 can configure a list of motion information candidates based on neighboring blocks and generate information indicating which candidate is used to derive a motion vector and / or a reference image index of the current block. Interprediction can be performed based on various prediction modes. For example, in the case of a jump mode and a merge mode, the interpredictor 221 can use motion information from the neighboring block as motion information from the current block.In skip mode, unlike merge mode, the residual signal may not be transmitted. In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block can be used as a motion vector predictor. Petition 870250085523, dated 09 / 22 / 2025, page 25 / 151 19 / 124 and the motion vector of the current block can be indicated by signaling a motion vector difference.
[066] Predictor 220 can generate a prediction signal based on several prediction methods described below. For example, the predictor can not only apply intraprediction or interprediction to predict a block, but also simultaneously apply both intraprediction and interprediction. This can be called combined inter- and intraprediction (CIIP). Furthermore, the predictor can be based on an intrablock copy (IBC) prediction mode or a palette mode for block prediction. The IBC prediction mode or palette mode can be used for image / video content encoding of a game or similar, for example, screen content encoding (SCC). IBC basically performs prediction on the current image, but it can be performed similarly to interprediction, where a reference block is derived from the current image. That is, IBC can use at least one of the interprediction techniques described in this document.Palette mode can be considered an example of intracoding or intraprediction. When palette mode is applied, a sample value within an image can be flagged based on information from the palette table and palette index.
[067] The prediction signal generated by the predictor (including the interpredictor 221 and / or the intrapredictor 222) can be used to generate a reconstructed signal or to generate a residual signal. The subtraction unit 115 can subtract the prediction signal (predicted block, predicted sample matrix) emitted by the predictor 200 from the input image signal (original block, original sample matrix) to generate a residual signal (residual block, residual sample matrix). The generated residual signal can be transmitted to the conversion unit 232.
[068] Transformer 232 can generate transformation coefficients by applying a transformation technique to the residual signal. For example, the technique of Petition 870250085523, dated 09 / 22 / 2025, page 26 / 151 20 / 124 transformation can include at least one of the following: discrete cosine transform (DCT), discrete sine transform (DST), Karhunen-Loève transform (KLT), graph-based transform (GBT), or conditionally nonlinear transform (CNT). Here, GBT means the transformation obtained from a graph when the relationship information between pixels is represented by the graph. CNT refers to the transformation generated based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transformation process can be applied to blocks of square pixels of the same size or to blocks of varying size instead of squares.
[069] Quantizer 233 can quantize the transformation coefficients and transmit them to entropy encoder 240, and entropy encoder 240 can encode the quantized signal (information about the quantized transformation coefficients) and generate a bit stream. The information about the quantized transformation coefficients can be called residual information. Quantizer 233 can rearrange the block-type quantized transformation coefficients into a one-dimensional vector form based on a coefficient scan order and generate information about the quantized transformation coefficients based on the quantized transformation coefficients in one-dimensional vector form. Information about the transformation coefficients can be generated.
[070] The 240 entropy encoder can perform various encoding methods, such as exponential Golomb, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and similar methods. The 240 entropy encoder can encode the information necessary for video / image reconstruction, as well as quantized transformation coefficients (e.g., syntax element values, etc.), together or separately. The encoded information (e.g., Petition 870250085523, dated 09 / 22 / 2025, page 27 / 151 21 / 124 Encoded video / image information can be transmitted or stored in NAL (Network Abstraction Layer) units in the form of a bitstream. Video / image information may also include information about various parameter sets, such as an adaptation parameter set (APS), an image parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, video / image information may also include general restriction information. In this document, information and / or syntax elements transmitted / signaled from the encoding device to the decoding device may be included in video / image information. Video / image information may be encoded using the encoding procedure described above and included in the bitstream.
[071] The bit stream can be transmitted over a network or stored on a digital storage medium. The network may include a transmission network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD and the like. A transmitter (not shown) transmitting a signal emitted from the entropy encoder 240 and / or a storage unit (not shown) storing the signal may be included as internal / external elements of the encoding apparatus 200 and, alternatively, the transmitter may be included in the entropy encoder 240.
[072] The quantized transformation coefficients emitted by the quantizer 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual samples) can be reconstructed by applying dequantization and inverse transformation to the quantized transformation coefficients by means of the dequantizer 234 and the inverse transformer 235.
[073] Meanwhile, LMCS (luma-scaled chroma mapping) can be applied during the image encoding and / or restoration process. Petition 870250085523, dated 09 / 22 / 2025, page 28 / 151 22 / 124
[074] The 250 adder adds the reconstructed residual signal to the prediction signal emitted by the interpredictor 221 or the intrapredictor 222 to generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample matrix). If there is no residual for the block to be processed, as in a case where the jump mode is applied, the predicted block can be used as the reconstructed block. The 250 adder can be called a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for the intraprediction of a next block to be processed in the current image and can be used for the interprediction of a next image by means of filtering, as described below.
[075] Filter 260 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 260 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 270, specifically, a DPB of memory 270. The various filtering methods may include, for example, unblocking filtering, an adaptive sample shift, an adaptive loop filter, a bilateral filter, and the like. Filter 260 can generate various filter-related information and transmit the generated information to entropy encoder 240, as described later in the description of each filtering method. The filter-related information can be encoded by entropy encoder 240 and output in the form of a bitstream.
[076] The modified reconstructed image transmitted to memory 270 can be used as the reference image in the interpredictor 221. When interprediction is applied through the encoding apparatus, the prediction mismatch between the encoding apparatus 200 and the decoding apparatus can be avoided and the encoding efficiency can be improved.
[077] The DPB of memory 270 can store the reconstructed image Petition 870250085523, dated 09 / 22 / 2025, page 29 / 151 Image 23 / 124 modified for use as a reference image in interpredictor 221. Memory 270 can store the motion information of the block from which the motion information in the current image is derived (or encoded) and / or the motion information of blocks in the image that have already been reconstructed. The stored motion information can be transmitted to interpredictor 221 and used as the motion information of the spatial neighboring block or as the motion information of the temporal neighboring block. Memory 270 can store reconstructed samples of reconstructed blocks in the current image and can transfer the reconstructed samples to intrapredictor 222.
[078] FIG. 3 is a schematic diagram illustrating an image decoding device to which an embodiment according to the present disclosure can be applied.
[079] With reference to FIG. 3, the decoding apparatus 300 may include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an interpredictor 331 and an intrapredictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured by a hardware component (e.g., a decoder chip set or a processor) according to an embodiment. In addition, the memory 360 may include a temporary decoded image storage (DPB) or may be configured by a digital storage medium. The hardware component may also include 360 memory as an internal / external component.
[080] When a bitstream including video / image information is entered, the decoding device 300 can reconstruct an image corresponding to a process in which the video / image information is processed in the encoding device of FIG. 2. For example, the device of Petition 870250085523, dated 09 / 22 / 2025, page 30 / 151 24 / 124 decoding 300 can derive units / blocks based on block partitioning information obtained from the bitstream. The 300 decoding device can perform decoding using a processor applied to the encoding device. Thus, the decoding processor can be an encoding unit, for example, and the encoding unit can be partitioned according to a quaternary tree structure, binary tree structure, and / or ternary tree structure from the encoding tree unit or the largest encoding unit. One or more transformation units can be derived from the encoding unit. The reconstructed, decoded, and emitted image signal from the 300 decoding device can be reproduced by a playback device.
[081] The decoding device 300 can receive a signal emitted from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded by means of the entropy decoder 310. For example, the entropy decoder 310 can analyze the bitstream to derive information (e.g., video / image information) necessary for image reconstruction. The video / image information may also include information about various parameter sets, such as an adaptation parameter set (APS), an image parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may also include general constraint information. The decoding device can further decode the image based on the parameter set information and / or the general constraint information.The signaled / received information and / or the syntax elements described later in this document can be decoded by the decoding procedure and obtained from the bitstream. For example, the 310 entropy decoder decodes the information in the bitstream based on an encoding method such as Golomb exponential encoding, CAVLC, or CABAC, and outputs it. Petition 870250085523, dated 09 / 22 / 2025, page 31 / 151 25 / 124 syntax elements are needed for image reconstruction and quantized values of the transformation coefficients are used for residuals. More specifically, the CABAC entropy decoding method can receive a box corresponding to each syntax element in the bitstream, determine a context model using information from the target syntax element of the decoding, decoding information from a target block of the decoding, or information from a symbol / box decoded in a previous stage, and perform an arithmetic decoding on the box, predicting the probability of occurrence of a box according to the determined context model, and generate a symbol corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method can update the context model using the information from the decoded symbol / box to a context model of a next symbol / box after the context model determination.Information related to the prediction between the information decoded by the entropy decoder 310 can be provided to the predictor (the interpredictor 332 and the intrapredictor 331), and the residual value on which the entropy decoding was performed in the entropy decoder 310, i.e., the quantized transformation coefficients and related parameter information, can be fed into the residual processor 320. The residual processor 320 can derive the residual signal (the residual block, the residual samples, the residual sample matrix). Furthermore, information about the filtering between the information decoded by the entropy decoder 310 can be provided to the filter 350. Meanwhile, a receiver (not shown) to receive a signal emitted from the encoding apparatus can be further configured as an internal / external element of the decoding apparatus 300, or the receiver can be a component of the entropy decoder 310.Meanwhile, the decoding device, according to this document, can be referred to as a video / image decoding device, and the device... Petition 870250085523, dated 09 / 22 / 2025, page 32 / 151 26 / 124 decoding can be classified into an information decoder (video / image information decoder) and a sample decoder (video / image sample decoder). The information decoder may include the entropy decoder 310, and the sample decoder may include at least one of the following: the dequantizer 321, the inverse transformer 322, the adder 340, the filter 350, the memory 360, the interpredictor 332, and the intrapredictor 331.
[082] The 321 dequantizer can dequantize quantized transformation coefficients and generate transformation coefficients. The 321 dequantizer can rearrange the quantized transformation coefficients in the form of a two-dimensional block. In this case, the rearrangement can be performed based on the scanning order of the coefficients performed in the encoding apparatus. The 321 dequantizer can perform dequantization on the quantized transformation coefficients using a quantization parameter (e.g., information about the quantization step size) and obtain the transformation coefficients.
[083] The inverse transformer 322 inversely transforms the transformation coefficients to obtain a residual signal (residual block, residual sample matrix).
[084] The 330 predictor can generate a prediction signal based on several prediction methods described below. For example, the predictor can apply intraprediction or interprediction for block prediction, and it can also apply intraprediction and interprediction simultaneously. This can be called combined inter- and intraprediction (CIIP). Furthermore, the predictor can be based on an intrablock copy (IBC) prediction mode or a palette mode for block prediction. The IBC prediction mode or palette mode can be used for image / video content coding, such as games, as screen content coding (SCC). IBC basically performs prediction within the current image, but Petition 870250085523, dated 09 / 22 / 2025, page 33 / 151 27 / 124 can be performed similarly to interprediction, as it derives a reference block within the current image. That is, IBC can use at least one of the interprediction techniques described in this document. Palette mode can be seen as an example of intracoding or intraprediction. When palette mode is applied, information about the palette table and palette index can be signaled and included in the video / image information.
[085] Intrapredictor 332 can predict the current block with reference to samples in the current image. The referenced samples can be located in the vicinity of the current block or can be located at a distance, according to the prediction mode. In intraprediction, the prediction modes can include a plurality of non-directional modes and a plurality of directional modes. Intrapredictor 331 can determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
[086] Interpredictor 331 can derive a predicted block for the current block based on a reference block (reference sample matrix) specified by a motion vector in a reference image. In this case, to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, sub-blocks, or samples, based on the correlation of motion information between the neighboring block and the current block. Motion information can include a motion vector and an index of the reference image. Motion information can also include information about the direction of interprediction (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the neighboring block can include a spatial neighboring block present in the current image and a temporal neighboring block present in the reference image. For example, interpredictor 332 can config.r a list of candidates for motion information based on neighboring blocks and derive a motion vector from the current block and / or an index from the reference image. Petition 870250085523, dated 09 / 22 / 2025, page 34 / 151 28 / 124 based on the candidate selection information received. Interprediction can be performed based on various prediction modes, and the prediction information may include information indicating an interprediction mode for the current block.
[087] The 340 adder can generate a reconstructed signal (reconstructed image, reconstructed block, reconstructed sample matrix) by adding the obtained residual signal to the prediction signal (predicted block, predicted sample matrix) emitted by the predictor (including the interpredictor 332 and / or the intrapredictor 331). If there is no residual for the block to be processed, such as when the jump mode is applied, the predicted block can be used as the reconstructed block. The 340 adder can be called a reconstructor or a reconstructed block generator. The generated reconstructed signal can be used for the intraprediction of a next block to be processed in the current image, can be sent via filtering as described below, or can be used for the interprediction of a next image.
[088] Meanwhile, LMCS (luma-scaled chroma mapping) can be applied during the image decoding process.
[089] Filter 350 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 360, specifically, a DPB of memory 360. The various filtering methods may include, for example, unlock filtering, an adaptive sample shift, an adaptive loop filter, a bilateral filter, and the like.
[090] The reconstructed (modified) image stored in the DPB of memory 360 can be used as a reference image in interpreter 332. Memory 360 can store the motion information of the block from which the motion information in the current image is derived (or decoded) and / or the information Petition 870250085523, dated 09 / 22 / 2025, page 35 / 151 29 / 124 of the movement of the blocks in the image that have already been reconstructed. The stored motion information can be transmitted to the interpredictor 260 to be used as the spatial neighboring block motion information or as the temporal neighboring block motion information. Memory 360 can store reconstructed samples of blocks reconstructed in the current image and transfer the reconstructed samples to the intrapredictor 331.
[091] In this disclosure, the modes described in filter 260, interpredictor 221 and intrapredictor 222 of encoding apparatus 100 may be the same or applied respectively to correspond to filter 350, interpredictor 332 and intrapredictor 331 of decoding apparatus 300. The same may also apply to unit 332 and intrapredictor 331.
[092] FIG. 4 shows by way of example a hierarchical structure for encoded video / image to which a modality according to the present disclosure can be applied.
[093] With reference to Fig. 4, the encoded image / video is divided into a VCL (video encoding layer) that handles the process of decoding the image / video and itself, a subsystem that transmits and stores the encoded information, and a NAL (network abstraction layer) responsible for the function and present between the VCL and the subsystem.
[094] In the VCL, VCL data is generated, including compressed image data (slice data), or a set of parameters, including an image parameter set (PSP), a sequence parameter set (SPS) and a video parameter set (VPS), or a supplementary enhancement information message (SEI), additionally required for an image decoding process, may be generated.
[095] In NAL, a NAL unit can be generated by adding header information (NAL unit header) to a byte sequence payload. Petition 870250085523, dated 09 / 22 / 2025, page 36 / 151 30 / 124 raw (RBSP) data generated in a VCL. In this case, RBSP refers to slice data, parameter set, SEI message, etc., generated in the VCL. The NAL unit header may include information about the NAL unit type specified according to the RBSP data included in the corresponding NAL unit.
[096] As shown in the figure, the NAL unit can be classified into a VCL NAL unit and a non-VCL NAL unit, according to the RBSP generated in the VCL. The VCL NAL unit can mean a NAL unit that includes information about the image (slice data) in the image, and the non-VCL NAL unit can mean a NAL unit that includes information (parameter set or SEI message) needed to decode the image.
[097] The VCL NAL unit and the non-VCL NAL unit described above can be transmitted over a network by attaching header information according to the subsystem data standard. For example, the NAL unit can be transformed into a data format of a predetermined standard, such as an H.266 / VVC file format, a Real-Time Transport Protocol (RTP), a Transport Stream (TS), etc., and transmitted over various networks.
[098] As described above, the NAL unit can be specified with the NAL unit type according to the RBSP data structure included in the corresponding NAL unit, and information about the NAL unit type can be stored and signaled in the NAL unit header.
[099] For example, the NAL unit can be classified into a VCL NAL unit type and a non-VCL NAL unit type, depending on whether the NAL unit includes information (slice data) about an image. The VCL NAL unit type can be classified according to the nature and type of images included in the VCL NAL unit, and the non-VCL NAL unit type can be classified according to the types of parameter sets.
[0100] The following is an example of the specified NAL unit type of Petition 870250085523, dated 09 / 22 / 2025, page 37 / 151 31 / 124 according to the type of parameter set included in the NAL unit type without VCL.
[0101] NAL APS Unit (Set of adaptation parameters): Type for NAL unit including APS
[0102] NAL DPS Unit (Decoding Parameter Set): Type for NAL unit including DPS
[0103] VPS NAL Unit (Video Parameter Set): Type for NAL unit including VPS
[0104] SPS NAL Unit (Sequence Parameter Set): Type for NAL unit including SPS
[0105] PPS NAL Unit (Image Parameter Set): Type for NAL unit including PPS
[0106] The NAL unit types mentioned above may have syntax information for the NAL unit type, and the syntax information may be stored and signaled in a NAL unit header. For example, the syntax information may be nal_unit_type, and the NAL unit types may be specified by a nal_unit_type value.
[0107] The slice header (slice header syntax) may include information / parameters that can be commonly applied to the slice. The APS (APS syntax) or PPS (PPS syntax) may include information / parameters that can be commonly applied to one or more slices or images. The SPS (SPS syntax) may include information / parameters that can be commonly applied to one or more sequences. The VPS (VPS syntax) may include information / parameters that can be commonly applied to multiple layers. The DPS (DPS syntax) may include information / parameters that can be commonly applied to the video as a whole. The DPS may include information / parameters related to the concatenation of a video sequence encoded (CVS). The high-level syntax (HLS) in this Petition 870250085523, dated 09 / 22 / 2025, page 38 / 151 A 32 / 124 document may include at least one of the following: APS syntax, PPS syntax, SPS syntax, VPS syntax, DPS syntax, an image header syntax, and a slice header syntax.
[0108] In this document, the encoded image / video information coming from the encoding device and signaled to the decoding device in the form of a bitstream includes not only information related to partitioning in an image, intra / interprediction information, residual information, loop filtering information, etc., but also information included in a slice header, information included in the image header, information included in the APS, information included in the PPS, information included in an SPS, information included in a VPS and / or information included in a DPS.
[0109] The SEI message related to the present invention is described.
[0110] Large supplementary enhancement information message, Large SEI message
[0111] Table 1 shows an example of large SEI message syntax. [Table 1] lsei_message() { Descriptor lsei_position u(2) Iseirelevance u(2) Iseireserved u(4) lsei_payload_type_byte u(8) lsei_payload_size_l obits u(16) lsei_payload( IseiPayloadType, IseiPayloadSize)}
[0112] Each SEI Grande message consists of variables that specify the payloadType and payloadSize of the SEI Grande message payload. The payload size of the SEI Grande message derived from payloadSize is Petition 870250085523, dated 09 / 22 / 2025, page 39 / 151 33 / 124 specified in bytes and must be equal to the number of RBSP bytes in the payload of the Large SEI message. The byte sequence of the NAL unit containing the Large SEI message may include one or more emulation prevention bytes (represented by the emulation_prevention_three_byte syntax elements). Because the payload size of a Large SEI message is specified in RBSP bytes, the number of emulation prevention bytes is not included in the payloadSize of a Large SEI payload.
[0113] lsei_position indicates whether the SEI message matches PREFIX_SEI_NUT and SUFFIX_SEI_NUT. An lsei_position of 0 indicates that the SEI message is treated as PREFIX_SEI_NUT. An lsei_position of 1 indicates that the SEI message is treated as SUFFIX_SEI_NUT. The values 3 and 4 of lsei_position are reserved for future use and should be ignored.
[0114] The Isei_relevance indicates the relevance of the SEI message to the target application. Isei_relevance ranges from 0 to 3, with 0 being the least relevant and 3 being the most relevant. The relevance of an SEI message is an arbitrary decision and its use must be specified by the target application.
[0115] lsei_reserved is considered for future use and should be ignored.
[0116] lsei_payload_type_byte is a byte of the payload type of a large SEI message. payloadType = lsei_payload_type_byte.
[0117] The payload_size_16bits is the size of the payload in bits of a large SEI message. payloadSize = payload_size_16bits.
[0118] General post-processing filtering process using NNPFs (neural network post-filter SEI messages)
[0119] The input to this process is a BitstreamToFilter bitstream. The output of this process is a list of NNPF output images, ListNnpfOutputPics.
[0120] First, BitstreamToFilter is decoded, and the list CroppedDecodedPictures is defined as the list of decoded images and Petition 870250085523, dated 09 / 22 / 2025, p. 40 / 151 34 / 124 clips, in the order of output resulting from the BitstreamToFilter decoding.
[0121] Secondly, the filtering process for an image, as specified in subclause 2.5.2.1.2, is invoked repeatedly, in output order, for each decoded and cropped image that is in CroppedDecodedPictures and for which one or more NNPFs are enabled.
[0122] The order of the images in ListNnpfOutputPics is in the order of output.
[0123] In ListNnpfOutputPics, there must not be more than one image belonging to any specific output time instance. When, for any specific image in CroppedDecodedPictures, there are multiple NNPFs enabled and only one of them can be chosen to be applied, although any of the NNPFs can be chosen, the above restriction will be applied regardless of which NNPF is chosen to be applied to the specific image. Filtering process for an image using an NNPF.
[0124] The filtering process specified in this subclause applies to each decoded and cropped image, referred to as the current image, that is in CroppedDecodedPictures and for which one or more NNPFs are enabled.
[0125] When applying an NNPF to the current image, the filtered and / or interpolated images are generated by the NNPF applying the NNPF process specified in the SEI message semantics of the NNPFC, in a fragmented way, to the current image.
[0126] When applying an NNPF to the current image, the order of the images generated by the NNPF, when applying the NNPF process, being stored in the NNPF output tensor is in output order.
[0127] When the applied NNPF is the last NNPF that is applied to the current image, the images generated by the NNPF and emitted by the NNPF process are included in ListNnpfOutputPics, in the same order in which the images are stored in the NNPF output tensor. Petition 870250085523, dated 09 / 22 / 2025, page 41 / 151 35 / 124 SEI message regarding neural network post-filter characteristics.
[0128] Table 2 shows an example of the NNPFC SEI message syntax. [Table 2] Petition 870250085523, dated 09 / 22 / 2025, page 42 / 151 36 / 124 nn_post_filter_characteristics( payloadSize) { Descriptor nnpfc_purpose u(16) nnpfcid ue(v) nnpfcbaseflag u(l) nnpfcmodeidc ue(v) if( nnpfc_mode_idc = = 1 ) { while( !byte_aligned()) nnpfcreservedzerobita u(l) nnpfc tag uri st(v) nnpfc_uri st(v)} nnpfc_property_present_flag u(l) if( nnpfc_property_present flag ) { / * input and output formatting * / nnpfc_num_input_picsmimisl ue(v) if( nnpfc_num_input_pics_minusl > 0 ) { for( i — 0; i <- nnpfc_num_input_pics_minusl; i++) nnpfc_input_pic output_flag[ i ] u(l) impfcabsent_mput_pic_zero_flag u(l)} if( chromaUpsamplingFlag) nnpfcoutsubcflag u(l) if( colourizationFlag ) nnpfcoutcolourformatidc u(2) if( resolutionResamplingFlag ) { rmpfcjicwidthnumminusl ue(v) nnpfc_picwidth_denom_minusl ue(v) nnpfc_pic_height num mmusl ue(v) nnpfc_picheightdenomminus 1 ue(v)} if( pictureRateUpsamplingFlag) for( i = 0; i < nnpfc_num_input_pics_minusl; i++ ) nnpfc_interpolated_pics[ i ] ue(v) Petição 870250085523, de 22 / 09 / 2025, pág. 43 / 151 37 / 124 nnpfccomponentlastflag u(l) nnpfc_inp_format_idc ue(v) nnpfcauxiliaryinpidc ue(v) nnpfcinporderidc ue(v) if( nnpfc_inp_format_idc = = 1 ) { if( nnpfc inp order idc != 1 ) nnpfcmp_tensorlumabitdepth_niinus8 ue(v) if( nnpfc inp order idc != 0) nnpfcinptensorchromabitdepthminus8 ue(v)} nnpfcoutformatidc ue(v) nnpfcoutorderidc ue(v) if( nnpfc_out_format_idc = = 1) { if( nnpfc out order idc != 1 ) nnpfc_out_tensor_luma_bitdepth_minus8 ue(v) if( nnpfc out order idc != 0 ) nnpfc_out_tensor_clnonia_bitdepth_mmus8 ue(v)} nnpfc_separate_colour_description_present_flag u(l) if( nnpfc_separate_colour_description_present_flag) { nnpfc_colour_primaries u(8) nnpfctransfercharacteristics u(8) if( nnpfc out format idc = = 1 ) { nnpfcmatrixcoeffs u(8) nnpfcfidlrangcflag u(l)}} nnpfc_chroma_loc_info_present_flag u(l) if( nnpfc_chroma_loc_info_present_flag ) nnpfcchromasamplcloctypcframc ue(v) nnpfcoverlap ue(v) nnpfcconstant_patchsize_flag u(l) if( nnpfc_constant_patch_size flag) {nnpfc_patch_wid1h_mimisl ue(v) Petition 870250085523, dated 09 / 22 / 2025, p. 44 / 151 38 / 124 nnpfcjiatchhcightminusl ue(v)} else { nnpfcextended_patchwidthcddeltaminus 1 ue(v) nnpfc_extended_patch_height_cd_deltaminus 1 ue(v)} nnpfc padding type ue(v) if( nnpfc_padding_type = = 4) { if( nnpfcinporderidc != 1) nnpfc luma padding vai ue(v) if( nnpfc inp order idc != 0) { nnpfc cb padding vai ue(v) nnpfc_cr_padding_vai ue(v)}} nnpfc_complexity_info_present_flag u(l) if( nnpfc complexity infO—present flag) { nnpfc_parameter_typeidc u(2) if( nnpfc_parameter_type_idc != 2) nnpfc log2_parameter bit length_minus3 u(2) nnpfcnum_parametersidc u(6) rmpfcnumkmacoperations ide ue(v) nnpfctotalkilobytesize ue(v)} nnpfC—metadataextensionnum—bits ue(v) if( nnpfcmetadataextensionnumbits > 0) rmpfc_reserved—metadata_extension u(v)} / * ISO / IEC 15938-17 bitstream * / if( nnpfc_mode_idc = = 0) { while( !byte_aligned()) nnpfc—reserved—zero—bit_b u(l) for( i = 0; more_data_in_payload(); i++) nnpfc_payload byte[ i ] b(8)}}
[0129] The neural network post-filter feature (NNPFC) SEI message specifies a neural network that can be used as a post-processing filter. The use of neural network post-processing filters (NNPFs) Petition 870250085523, dated 09 / 22 / 2025, page 45 / 151 39 / 124 specified for specific images is indicated by SEI messages from neural network post-filter activation (NNPFA).
[0130] The use of this SEI message requires the definition of the following variables: - Width and height of the input image in luma sample units, indicated here by CroppedWidth and CroppedHeight, respectively. - Luma sample matrix CroppedYPic[ idx ] and chroma sample matrices CroppedCbPic[ idx ] and CroppedCrPic[ idx ], when present, of the input images with index idx in the range of 0 to numInputPics - 1, inclusive, which are used as input for NNPF. Bit depth (BitDepthY) for the luma sample matrix of the input images. - BitDepthC for the chroma sample matrices, if any, of the input images. - A chroma format indicator, denoted here by ChromaFormatIdc. - When nnpfc_auxiliary_inp_idc equals 1, an array of StrengthControlVal[ idx ] filtering intensity control values should contain real numbers in the range of 0 to 1, inclusive, from the input images with index idx in the range of 0 to numInputPics - 1, inclusive.
[0131] The input image with index 0 corresponds to the image for which the NNPF defined by this NNPFC SEI message is activated by an NNPFCFA SEI message. The input image with index i in the range from 1 to numInputPics - 1, inclusive, precedes the input image with index i - 1 in the output order.
[0132] The SubWidthC and SubHeightC variables are derived from ChromaFormatIdc as specified in Table 2.
[0133] More than one NNPFC SEI message may be present for the same image. When more than one NNPFC SEI message with different nnpfc_id values is present or activated for the same image, they may Petition 870250085523, dated 09 / 22 / 2025, page 46 / 151 40 / 124 having values that are the same as or different from nnpfc_purpose and nnpfc_mode_idc.
[0134] The nnpfc_purpose indicates the purpose of the NNPF, as specified in Table 3. [Table 3] bitMask Interpretation 0x01 General visual quality enhancement 0x02 Chroma upsampling (from 4:2:0 chroma format to 4:2:2 or 4:4:4 chroma format, or from 4:2:2 chroma format to 4:4:4 chroma format) 0x04 Resolution resampling (increasing or decreasing width or height) 0x08 Frame rate upsampling 0x10 Bit depth upsampling (increasing luma bit depth or chroma bit depth) 0x20 Colorization
[0135] Where (nnpfc_purpose & bitMask) is not equal to 0, it indicates that the NNPF has the purpose associated with the bitMask value in Table 20. When nnpfc_purpose is greater than 0 and (nnpfc_purpose & bitMask) is equal to 0, the purpose associated with the bitMask value is not applicable to the NNPF. When nnpfc_purpose is equal to 0, the NNPF can be used as determined by the application.
[0136] The value of nnpfc_purpose must be in the range of 0 to 63, inclusive, in bitstreams conforming to this edition of this document. Values from 64 to 65,535, inclusive, for nnpfc_purpose are reserved for future use by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore NNPFC SEI messages with nnpfc_purpose in the Petition 870250085523, dated 09 / 22 / 2025, p. 47 / 151 41 / 124 range from 64 to 65.535, inclusive.
[0137] The variables chromaUpsamplingFlag, resolutionResamplingFlag, pictureRateUpsamplingFlag, bitDepthUpsamplingFlag, and colourizationFlag, which specify whether nnpfc_purpose indicates the purpose of NNPF to include chroma upsampling, resolution resampling, picture rate upsampling, bit depth upsampling, and colourization, respectively, are derived as follows: [Table 4] chromaUpsamplingFlag = ((nnpfc_purpose & 0x02) > 0) ? 1:0 resolutionResamplingFlag = ((nnpfc_purpose & 0x04) > 0) ? 1:0 pictureRateUpsamplingFlag = ((nnpfc_purpose & 0x08) > 0) ? 1:0 bitDepthUpsamplingFlag = ((nnpfc_purpose & 0x10) > 0) ? 1:0 colourizationFlag = ((nnpfc_purpose & 0x20) > 0) ? 1:0
[0138] When a reserved value of nnpfc_purpose is used in the future, the syntax of this SEI message may be extended with syntax elements whose presence is conditional on nnpfc_purpose being equal to that value.
[0139] When ChromaFormatIdc equals 3, chromaUpsamplingFlag must equal 0.
[0140] When ChromaFormatIdc or chromaUpsamplingFlag is not equal to 0, colourizationFlag must be equal to 0.
[0141] When pictureRateUpsamplingFlag is equal to 1 and the input image with index 0 is associated with a frame packing arrangement SEI message with fp_arrangement_type equal to 5, all input images are associated with a frame packing arrangement SEI message with fp_arrangement_type equal to 5 and the same value of fp_current_frame_is_frame0_flag.
[0142] The nnpfc_id contains an identification number that can be used Petition 870250085523, dated 09 / 22 / 2025, p. 48 / 151 42 / 124 to identify an NNPF. The nnpfc_id value must be in the range of 0 to 232-2, inclusive. nnpfc_id values from 256 to 511, inclusive, and from 231 to 232-2, inclusive, are reserved for future use by ITU-T | ISO / IEC. Decoders compliant with this edition of this document that encounter an NNPFC SEI message with nnpfc_id in the range of 256 to 511, inclusive, or in the range of 231 to 232-2, inclusive, must ignore the SEI message.
[0143] When an NNPFC SEI message is the first NNPFC SEI message, in the decoding order, that has a specific nnpfc_id value within the current CLVS, the following applies: This SEI message specifies a base NNPF. This SEI message pertains to the current decoded image and all subsequent decoded images of the current layer, in output order, up to the end of the current CLVS.
[0144] nnpfc_base_flag equal to 1 specifies that the SEI message specifies the base NNPF. nnpf_base_flag equal to 0 specifies that the SEI message specifies an update relative to the base NNPF.
[0145] The following restrictions apply to the value of nnpfc_base_flag: - When an NNPFC SEI message is the first NNPFC SEI message, in the decoding order, that has a specific nnpfc_id value within the current CLVS, the nnpfc_base_flag value must be equal to 1. - When an NNPFC SEI message nnpfcB is not the first NNPFC SEI message, in decoding order, that has a specific nnpfc_id value within the current CLVS, and the nnpfc_base_flag value is equal to 1, the NNPFC SEI message must be a repetition of the first NNPFC SEI message nnpfcA with the same nnpfc_id value, in decoding order; that is, the payload content of nnpfcB must be the same as that of nnpfcA.
[0146] When nnpfc_base_flag equals 0, the following applies: Petition 870250085523, dated 09 / 22 / 2025, page 49 / 151 43 / 124 This SEI message defines an update relative to the previous base NNPF, in decoding order, with the same nnpfc_id value. The updates are not cumulative, but instead, each update is applied to the base NNPF, which is the NNPF specified by the first NNPFC SEI message, in decoding order, that has a specific nnpfc_id value within the current CLVS. The NNPF defined by this SEI message is obtained by applying the update defined by this SEI message relative to the base NNPF, with the same nnpfc_id value. This SEI message refers to the current decoded image and all subsequent decoded images of the current layer, in order of output, up to the end of the current CLVS or up to, but excluding, the decoded image that follows the current decoded image in order of output within the current CLVS and is associated with a subsequent NNPFC SEI message, in order of decoding, having nnpfc_base_flag equal to 0 and that specific nnpfc_id value within the current CLVS, whichever occurs first.
[0147] nnpfc_mode_idc equal to 0 indicates that this SEI message contains an ISO / IEC 15938-17 bit stream that specifies a base NNPF (when nnpfc_base_flag equals 1) or is an update relative to the base NNPF with the same nnpfc_id value (when nnpfc_base_flag equals 0).
[0148] When nnpfc_base_flag equals 1, nnpfc_mode_idc equals 1 specifies that the base NNPF associated with the nnpfc_id value is a neural network identified by the URI indicated by nnpfc_uri with the format identified by the label URI nnpfc_tag_uri.
[0149] When nnpfc_base_flag equals 0, nnpfc_mode_idc equals 1 specifies that an update relative to the base NNPF with the same nnpfc_id value is defined by the URI indicated by nnpfc_uri with the format identified by the tag label URI nnpfc_tag_uri.
[0150] The value of nnpfc_mode_idc must be in the range of 0 to 1, inclusive, Petition 870250085523, dated 09 / 22 / 2025, page 50 / 151 44 / 124 in bitstreams conforming to this edition of this document. Values from 2 to 255, inclusive, for nnpfc_mode_idc are reserved for future use and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document should ignore NNPFC SEI messages with nnpfc_mode_idc in the range of 2 to 255, inclusive. nnpfc_mode_idc values greater than 255 should not be present in bitstreams conforming to this edition of this document and are not reserved for future use.
[0151] nnpfc_reserved_zero_bit_a must be equal to 0 in bitstreams conforming to this edition of this document. Decoders must ignore NNPFC SEI messages in which nnpfc_reserved_zero_bit_a is not equal to 0.
[0152] The nnpfc_tag_uri contains a label URI with syntax and semantics as specified in IETF RFC 4151, identifying the format and associated information about the neural network used as a base NNPF or an update relative to the base NNPF with the same nnpfc_id value specified by nnpfc_uri.
[0153] The nnpfc_tag_uri allows you to uniquely identify the format of the neural network data specified by the nnrpf_uri without needing a central registration authority.
[0154] The nnpfc_tag_uri equal to tag:iso.org,2023:15938-17 indicates that the neural network data identified by nnpfc_uri conforms to the ISO / IEC 15938-17 standard.
[0155] The nnpfc_uri contains a URI with syntax and semantics as specified in IETF Internet Standard 66, identifying the neural network used as a base NNPF or an update relative to the base NNPF with the same nnpfc_id value.
[0156] The nnpfc_property_present_flag equal to 1 specifies which syntax elements related to the filter's purpose, input formatting, and output formatting. Petition 870250085523, dated 09 / 22 / 2025, p. 51 / 151 45 / 124 and complexity are present. The nnpfc_property_present_flag set to 0 specifies that no syntax elements related to filter purpose, input formatting, output formatting, and complexity are present.
[0157] When nnpfc_base_flag equals 1, nnpfc_property_present_flag must equal 1.
[0158] When nnpfc_property_present_flag is equal to 0, the values of all syntax elements that can only be present when nnpfc_property_present_flag is equal to 1 are inferred to be equal to their corresponding syntax elements, respectively, in the NNPFC SEI message that contains the base NNPF for which this SEI message provides an update.
[0159] When an NNPFC SEI message nnpfcCurr is not the first NNPFC SEI message, in decoding order, that has a specific nnpfc_id value within the current CLVS, is not a repetition of the first NNPFC SEI message with that specific nnpfc_id (i.e., the nnpfc_base_flag value is equal to 0) and the nnpfc_property_present_flag value is equal to 1, the following restrictions apply: The value of nnpfc_purpose in the NNPFC SEI message must be the same as the value of nnpfc_purpose in the first NNPFC SEI message, in decoding order, that has that specific nnpfc_id value within the current CLVS. - The values of the syntax elements following nnpfc_property_present_flag and preceding nnpfc_complexity_info_present_flag, in decoding order, in the NNPFC SEI message must be the same as the values of the corresponding syntax elements in the first NNPFC SEI message, in decoding order, that has that specific nnpfc_id value within the current CLVS. Either nnpfc_complexity_info_present_flag must be equal to 0 or both nnpfc_complexity_info_present_flag must be equal to 1 in the first SEI message. Petition 870250085523, dated 09 / 22 / 2025, page 52 / 151 46 / 124 of NNPFC, in decoding order, that has that specific nnpfc_id value within the current CLVS (denoted as nnpfcBase below) and all of the following apply: The nnpfc_parameter_type_idc in nnpfcCurr must be the same as the nnpfc_parameter_type_idc in nnpfcBase. - The nnpfc_log2_parameter_bit_length_minus3 in nnpfcCurr, when present, must be less than or equal to nnpfc_log2_parameter_bit_length_minus3 in nnpfcBase. If nnpfc_num_parameters_idc in nnpfcBase is equal to 0, then nnpfc_num_parameters_idc in nnpfcCurr must also be equal to 0. Otherwise (nnpfc_num_parameters_idc in nnpfcBase is greater than 0), nnpfc_num_parameters_idc in nnpfcCurr must be greater than 0 and less than or equal to nnpfc_num_parameters_idc in nnpfcBase. If nnpfc_num_kmac_operations_idc in nnpfcBase is equal to 0, then nnpfc_num_kmac_operations_idc in nnpfcCurr must also be equal to 0. Otherwise (nnpfc_num_kmac_operations_idc in nnpfcBase is greater than 0), nnpfc_num_kmac_operations_idc in nnpfcCurr must be greater than 0 and less than or equal to nnpfc_num_kmac_operations_idc in nnpfcBase. [ 0160] - If nnpfc_total_kilobyte_size in nnpfcBase is equal to 0, nnpfc_total_kilobyte_size in nnpfcCurr must be equal to 0. Otherwise (nnpfc_total_kilobyte_size in nnpfcBase is greater than 0), nnpfc_total_kilobyte_size in nnpfcCurr must be greater than 0 and less than or equal to nnpfc_total_kilobyte_size in nnpfcBase.
[0161] The nnpfc_num_input_pics_minus1 plus 1 specifies the number of images used as input for NNPF. The value of nnpfc_num_input_pics_minus1 must be in the range of 0 to 63, inclusive. When pictureRateUpsamplingFlag equals 1, the value of nnpfc_num_input_pics_minus1 Petition 870250085523, dated 09 / 22 / 2025, p. 53 / 151 47 / 124 must be greater than 0.
[0162] The variable numInputPics, which specifies the number of images used as input for NNPF, is derived as follows: [Table 5]
[0163] nnpfc_input_pic_output_flag[i] equal to 1 indicates that for the i-th input image, NNPF generates a corresponding output image. nnpfc_input_pic_output_flag[i] equal to 0 indicates that for the i-th input image, NNPF does not generate a corresponding output image. When nnpfc_num_input_pics_minus1 equals 0, nnpfc_input_pic_output_flag[0] will be inferred as equal to 1. When pictureRateUpsamplingFlag equals 0 and nnpfc_num_input_pics_minus1 is greater than 0, nnpfc_input_pic_output_flag[i] must equal 1 for at least one value of i in the range from 0 to nnpfc_num_input_pics_minus1, inclusive.
[0164] The nnpfc_absent_input_pic_zero_flag set to 1 indicates that NNPF expects an input image that is not present in the bitstream to be represented by sample arrays with sample values equal to 0. The nnpfc_absent_input_pic_flag set to 0 indicates that NNPF expects an input image that is not present in the bitstream to be represented by the nearest input image in output order within the bitstream.
[0165] The nnpfc_out_sub_c_flag specifies the values of the outSubWidthC and outSubHeightC variables when chromaUpsamplingFlag equals 1. nnpfc_out_sub_c_flag equal to 1 specifies that outSubWidthC equals 1 and outSubHeightC equals 1. nnpfc_out_sub_c_flag equal to 0 specifies that outSubWidthC equals 2 and outSubHeightC equals 1. When ChromaFormatIdc equals 2 and nnpfc_out_sub_c_flag is present, the value of nnpfc_out_sub_c_flag must equal 1. Petition 870250085523, dated 09 / 22 / 2025, page 54 / 151 48 / 124
[0166] The nnpfc_out_colour_format_idc, when colourizationFlag is equal to 1, specifies the color format of the NNPF output and, consequently, the values of the outSubWidthC and outSubHeightC variables. A value of 1 for nnpfc_out_colour_format_idc specifies that the NNPF output color format is 4:2:0 and outSubWidthC and outSubHeightC are both equal to 2. A value of 2 for nnpfc_out_colour_format_idc specifies that the NNPF output color format is 4:2:2 and outSubWidthC is equal to 2 and outSubHeightC is equal to 1. A value of 3 for nnpfc_out_colour_format_idc specifies that the NNPF output color format is 4:4:4 and outSubWidthC and outSubHeightC are both equal to 1. The value of nnpfc_out_colour_format_idc should not be equal to 0.
[0167] When chromaUpsamplingFlag and colourizationFlag are both equal to 0, outSubWidthC and outSubHeightC are inferred to be equal to SubWidthC and SubHeightC, respectively.
[0168] nnpfc_pic_width_num_minus1 plus 1 and nnpfc_pic_width_denom_minus1 plus 1 specify the numerator and denominator, respectively, for the NNPF output image width resampling rate relative to CroppedWidth. The value of (nnpfc_pic_width_num_minus1 + 1) - (nnpfc_pic_width_denom_minus1 + 1) must be in the range of 1 - 16 to 16 inclusive. When nnpfc_pic_width_num_minus1 and nnpfc_pic_width_denom_minus1 are not present, the values of nnpfc_pic_width_num_minus1 and nnpfc_pic_width_denom_minus1 are both inferred to be equal to 0.
[0169] The variable nnpfcOutputPicWidth, which represents the width of the luma sample matrices of the resulting image(s) from applying the NNPF identified by nnpfc_id to the input image(s), is derived as follows: [Table 6] nnpfcOutputPicWidth = Ceil( CroppedWidth * (nnpfc_pic_width_num_minus1 +1) * (nnpfc_pic_width_denom_minus1 +1)) Petition 870250085523, dated 09 / 22 / 2025, p. 55 / 151 49 / 124
[0170] It is a bitstream conformance requirement that the value of nnpfcOutputPicHeight % outSubHeightC be equal to 0.
[0171] The values nnpfc_pic_height_num_minus1 plus 1 and nnpfc_pic_height_denom_minus1 plus 1 specify the numerator and denominator, respectively, for the NNPF output image height resampling rate relative to CroppedHeight. The value of (nnpfc_pic_height_num_minus1 + 1) * (nnpfc_pic_height_denom_minus1 + 1) must be in the range of 1 * 16 to 16 inclusive. When nnpfc_pic_height_num_minus1 and nnpfc_pic_height_denom_minus1 are not present, the values of nnpfc_pic_height_num_minus1 and nnpfc_pic_height_denom_minus1 are both inferred to be equal to 0.
[0172] The variable nnpfcOutputPicHeight, which represents the height of the luma sample matrices of the resulting image(s) from applying the NNPF identified by nnpfc_id to the input image(s), is derived as follows: [Table 7] nnpfcOutputPicHeight = Ceil( CroppedHeight * (nnpfc_pic_height_num_minus1 + 1) + ( nnpfc_pic_height_denom_minus1 +1))
[0173] It is a bitstream conformance requirement that the value of nnpfcOutputPicHeight % outSubHeightC be equal to 0.
[0174] When nnpfc_pic_width_num_minus1, nnpfc_pic_width_denom_minus1, nnpfc_pic_height_num_minus1 and nnpfc_pic_height_denom_minus1 are present, at least one of the following options must be true: The value of nnpfcOutputPicWidth is not equal to CroppedWidth. The value of nnpfcOutputPicHeight is not equal to CroppedHeight.
[0175] The parameter nnpfc_interpolated_pics[i] specifies the number of interpolated images generated by NNPF between the i-th and the (i+1)-th image. Petition 870250085523, dated 09 / 22 / 2025, p. 56 / 151 50 / 124 used as input for NNPF. The value of nnpfc_interpolated_pics[i] must be in the range of 0 to 63, inclusive. The value of nnpfc_interpolated_pics[i] must be greater than 0 for at least one value of i in the range of 0 to nnpfc_num_input_pics_minus1 - 1, inclusive.
[0176] The variables NumInpPicsInOutputTensor, which specify the number of images that have a matching input image and are present in the NNPF output tensor, InpIdx[ idx ] which specifies the index of the idx-th input image that is present in the NNPF output tensor and has a matching input image, and numOutputPics, which specifies the total number of images present in the NNPF output tensor, are derived as follows: [Table 8] for( i = 0, numOutputPics = 0; i < numlnputPics; i++) if( nnpfc_input_pic_output_flag[ i ]) { lnpldx[ numOutputPics ] = i numOutputPics++} NumInpPicsInOutputTensor = numOutputPics if( pictureRateUpsamplingFlag) for( i = 0; i <= numlnputPics - 2; i++) numOutputPics += nnpfc_interpolated_pics[ i ]
[0177] The nnpfc_component_last_flag set to 1 indicates that the last dimension in the input tensor inputTensor for the NNPF and in the resulting output tensor outputTensor of the NNPF is used for a current channel. The nnpfc_component_last_flag set to 0 indicates that the third dimension in the input tensor inputTensor for the NNPF and in the resulting output tensor outputTensor of the NNPF is used for a current channel.
[0178] The first dimension in the input tensor and output tensor is used for the batch index, which is a common practice in some network structures. Petition 870250085523, dated 09 / 22 / 2025, p. 57 / 151 51 / 124 neural networks. Although the formulas in the semantics of this SEI message use the batch size corresponding to the batch index equal to 0, it is up to the post-processing implementation to determine the batch size used as input for the neural network inference.
[0179] For example, when nnpfc_inp_order_idc equals 3 and nnpfc_auxiliary_inp_idc equals 1, there are 7 channels in the input tensor, including four luma matrices, two chroma matrices, and one auxiliary input matrix. In this case, the DeriveInputTensors() process would derive each of these 7 input tensor channels, one by one, and when a specific channel of these channels is processed, that channel is called the current channel during the process.
[0180] The nnpfc_inp_format_idc indicates the method for converting a sample value from the input image into an input value for NNPF. When nnpfc_inp_format_idc is equal to 0, the input values for NNPF are real numbers and the InpY() and InpC() functions are specified as follows: [Table 9] lnpY(x) = x*(( 1 « BitDepthY) — 1) lnpC(x) =x + ((1 « BitDepthc)-1)
[0181] When nnpfc_inp_format_idc is equal to 1, the input values for NNPF are unsigned integers and the InpY() and InpC() functions are specified as follows: [Table 10] if( inpTensorBitDepthY>= BitDepthY) lnpY( x) = x « (inpTensorBitDepthY- BitDepthY) else lnpY(x) = Clip3(0,(1 « inpTensorBitDepthY)- 1,(x + ( 1 « (shiftY-1))) » shiftY) [Table 11] Petition 870250085523, dated 09 / 22 / 2025, page 58 / 151 52 / 124 shiftC = BitDepthc- inpTensorBitDepthcif( inpTensorBitDepthc>= BitDepthc) lnpC(x) = x « (inpTensorBitDepthc-BitDepthc) else lnpC( x) = Clip3(0, (1 « inpTensorBitDepthc) - 1, (x + (1 « (shiftC - 1))) » shiftC)
[0182] The variable inpTensorBitDepthY is derived from the syntax element nnpfc_inp_tensor_luma_bitdepth_minus8, as specified below. The variable inpTensorBitDepthC is derived from the syntax element nnpfc_inp_tensor_chroma_bitdepth_minus8, as specified below.
[0183] nnpfc_inp_format_idc values greater than 1 are reserved for future specifications by ITU-T | ISO / IEC and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document should ignore NNPFC SEI messages containing the reserved nnpfc_inp_format_idc values.
[0184] nnpfc_auxiliary_inp_idc greater than 0 indicates that auxiliary input data is present in the NNPF input tensor. nnpfc_auxiliary_inp_idc equal to 0 indicates that auxiliary input data is not present in the input tensor. nnpfc_auxiliary_inp_idc equal to 1 specifies that auxiliary input data is derived as specified in Formula 85.
[0185] The value of nnpfc_auxiliary_inp_idc must be in the range of 0 to 1, inclusive, in bitstreams in accordance with this edition of this document.
[0186] Values from 2 to 255 inclusive for nnpfc_auxiliary_inp_idc are reserved for future use and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document should ignore NNPFC SEI messages with nnpfc_auxiliary_inp_idc in the range of 2 to 255 inclusive. Values of nnpfc_auxiliary_inp_idc greater than 255 should not be present in bitstreams conforming to this edition of this document and are not reserved for future use. Petition 870250085523, dated 09 / 22 / 2025, p. 59 / 151 53 / 124 future.
[0187] The nnpfc_inp_order_idc indicates the sorting method of the sample matrices of an input image to form an input tensor for the NNPF.
[0188] The value of nnpfc_inp_order_idc must be in the range of 0 to 3, inclusive, in bitstreams conforming to this edition of this document. Values from 4 to 255, inclusive, for nnpfc_inp_order_idc are reserved for future use by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore NNPFC SEI messages with nnpfc_inp_order_idc in the range of 4 to 255, inclusive. Values of nnpfc_inp_order_idc greater than 255 must not be present in bitstreams conforming to this edition of this document and are not reserved for future use.
[0189] When ChromaFormatIdc is not equal to 1, nnpfc_inp_order_idc must not be equal to 3.
[0190] When ChromaFormatIdc equals 0, nnpfc_inp_order_idc must equal 0. [0191 ] When chromaUpsamplingFlag equals 1, nnpfc_inp_order_idc must not equal 0.
[0192] Table 12 contains an informative description of the nnpfc_inp_order_idc values. [Table 12] nnpfc_inp_order_idc Description 0 If nnpfc_auxiliary_inp_idc equals 0, a luma matrix is present in the input tensor for each input image, and the number of channels is 1. Otherwise, when nnpfc_auxiliary_inp_idc equals 1, a luma matrix and an auxiliary input matrix are present, and the number of channels is 2. 1 If nnpfc_auxiliary_inp_idc equals 0, two chroma matrices are Petition 870250085523, dated 09 / 22 / 2025, p. 60 / 151 54 / 124 If nnpc_auxiliary_inp_idc equals 1, two chroma matrices and one auxiliary input matrix are present in the input tensor, and the number of channels is 2. Alternatively, when nnpc_auxiliary_inp_idc equals 1, two chroma matrices and one auxiliary input matrix are present, and the number of channels is 3. 2 If nnpc_auxiliary_inp_idc equals 0, one luma matrix and two chroma matrices are present in the input tensor, and the number of channels is 3. Alternatively, when nnpc_auxiliary_inp_idc equals 1, one luma matrix, two chroma matrices, and one auxiliary input matrix are present, and the number of channels is 4. 3 If nnpc_auxiliary_inp_idc equals 0, four luma matrices and two chroma matrices are present in the input tensor, and the number of channels is 6. Alternatively, when nnpc_auxiliary_inp_idc If equal to 1, four luma matrices, two chroma matrices, and one auxiliary input matrix are present in the input tensor, and the number of channels is 7. The luma channels are derived in an interleaved manner as illustrated in Figure 12.This nnpfc_inp_order_idc can only be used when the input chroma format is 4:2:0. 4..255 Reserved.
[0193] FIG. 5, mentioned in Table 12 above, is a drawing to explain an interleaved method for deriving a luma channel.
[0194] The nnpfc_inp_tensor_luma_bitdepth_minus8 plus 8 specifies the bit depth of the luma sample values in the input integer tensor. The value of inpTensorBitDepthY is derived as follows: [Table 13]
[0195] It is a bitstream compliance requirement that the value of nnpfc_inp_tensor_luma_bitdepth_minus8 be in the range of 0 to 24, inclusive.
[0196] The nnpfc_inp_tensor_chroma_bitdepth_minus8 plus 8 specifies the bit depth of the chroma sample values in the input integer tensor. The value of inpTensorBitDepthC is derived as follows: [Table 14] Petition 870250085523, dated 09 / 22 / 2025, page 61 / 151 55 / 124
[0197] It is a bitstream compliance requirement that the value of nnpfc_inp_tensor_chroma_bitdepth_minus8 be in the range of 0 to 24, inclusive.
[0198] When nnpfc_auxiliary_inp_idc equals 1, the strengthControlScaledVal variable is derived as follows: [Table 15] for( i = 0; i < numInputPics; i++) if( nnpfc_inp_format_idc = = 1) if( nnpfc_inp_order_idc = = 0 11 nnpfc_inp_order_idc = = 2 11 nnpfc_inp_order_idc = = 3) strengthControlScaledVal[ i ] = Floor (StrengthControlVal[ i ] * ((1 « InpTensorBitDepthY )-1)) else if( nnpfc_inp_order_idc = = 1) strengthControIScaledValf i ] = Floor (StrengthControlVal[ i ] * ((1 « InpTensorBitDepthC )-1)) else strengthControlScaledVal[ i ] = StrengthControlValf i ]
[0199] A fragment is a rectangular array of samples of a component (for example, a luma or chroma component) of an image.
[0200] The DeriveInputTensors() process, to derive the input tensor inputTensor for a given vertical sample coordinate cTop and a horizontal sample coordinate cLeft specifying the location of the upper-left sample for the sample fragment included in the input tensor, is specified as follows: [Table 16] Petition 870250085523, dated 09 / 22 / 2025, page 62 / 151 56 / 124 forf i = 0; i < numlnputPics; i++) { iff nnpfc_inp_order_idc ==0) for( yP = -nnpfc_overlap; yP < inpPatchHeight + nnpfc_overiap; yP++) forf xP = -nnpfc_overlap; xP < inpPatchWidth + nnpfc_overiap; xP++) { inpVal = InpYf lnpSampleVal( cTop + yP, cLeft + xP, CroppedHeight, CroppedWidth, CroppedYPic[ i ], 0)) yPovlp = yP + nnpfc_overlap xPovlp = xP + nnpfc_overlap iff !nnpfc_component_lastjlag) inputTensor[ 0 ][ I ][ 0 ][ yPovlp ][ xPovlp ] = inpVal else inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 0 ] = inpVal iff nnpfc_auxiliary_inp_idc ==1) iff lnnpfc_component_last_flag) inputTensorf 0 ][ i ][ 1 ][ yPovlp ][ xPovlp ] = strengthControlScaledValf i ] else InputTensorf 0 ][ i ][ yPovlp ][ xPovlp ][ 1 ] = strengthControlScaledVal| i ] else iff nnpfc_inp_order_idc ==1) forf yP = -nnpfc_overlap; yP < inpPatchHeight + nnpfcoverlap; yP++) inpCbVal = InpCf InpSampleValf cTop + yP, cLeft + xP, CroppedHeight I SubHeightC, CroppedWidth I SubWidthC, CroppedCbPicf i ], 1)) inpCrVal = InpCf InpSampleValf cTop + yP, cLeft + xP, CroppedHeight / SubHeightC, CroppedWidth / SubWidthC, CroppedCrPicf i ], 2)) yPovlp = yP + nnpfcoverlap xPovlp = xP + nnpfc_overlap iff !nnpfc_component_last_flag) { inputTensorf 0 ][ i ][ 0 ][ yPovlp ][ xPovlp ] = InpCbVal inputTensorf 0 ][ i ][ 1 ][ yPovlp ][ xPovlp ] = InpCrVal} else { Petição 870250085523, de 22 / 09 / 2025, pág. 63 / 151 57 / 124 inputTensor[ Ο ][ i ][ yPovlp ][ xPovlp ][ 0 ] = inpCbVal inputTensorf 0 ][ i ][ yPovlp ][ xPovlp ][ 1 ] = inpCrVal iff nnpfc_auxiliary_inp_idc = = 1) iff !nnpfc_component_last_flag) inputTensorf 0 ][ i ][ 2 ][ yPovlp ][ xPovlp ] = strength ControIScaledValf i ] else inputTensorf 0 ][ i ][ yPovlp ][ xPovlp ][ 2 ] = strength ControIScaledValf i ] else iff nnpfc_inp_orderjdc ==2) forf yP = -nnpfc_overlap; yP < inpPatchHeight + nnpfc_overlap; yP++) forf xP = -nnpfc_overlap; xP < inpPatchWidth + nnpfc_overlap;xP++) { yY = cTop + yP xY = cLeft + xP yC = yY / SubHeightC xC = xY / SubWidthC inpYVal = InpYf InpSampleValf yY, xY, CroppedHeight, CroppedWidth, CroppedYPicf i ], 0)) inpCbVal = InpCf InpSampleValf yC, xC, CroppedHeight / SubHeightC, CroppedWidth / SubWidthC, CroppedCbPicf i ], 1)) inpCrVal = InpCf InpSampleValf yC, xC, CroppedHeight / SubHeightC, CroppedWidth / SubWidthC, CroppedCrPicf i ], 2)) yPovlp = yP + nnpfc_overlap xPovlp = xP + nnpfcoverlap iff !nnpfc_component_last_flag) { inputTensorf 0 ][ i ][ 0 ][ yPovlp ][ xPovlp ] = inpYVal inputTensorf 0 ][ i ][ 1 ][ yPovlp ][ xPovlp ] = inpCbVal inputTensorf 0 ][ i ][ 2 ][ yPovlp ][ xPovlp ] = inpCrVal} else {; Petição 870250085523, de 22 / 09 / 2025, pág. 64 / 151 58 / 124 inputTensor[ Ο ][ i ][ yPovlp ][ xPovlp ][ 0 ] = inpYVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 1 ] = inpCbVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 2 ] = inpCrVal} if( nnpfc_auxiliary_inp_idc = = 1) if( !nnpfc_component_last_flag) inputTensor[ 0 ][ i ][ 3 ][ yPovlp ][ xPovlp ] = strength ControIScaled Val[ i ] else inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 3 ] = strength ControIScaledValf i ] else if( nnpfcjnpjjrderjdc = = 3) for( yP = -nnpfcjjverlap; yP < inpPatchHeight + nnpfc_overlap; yP++) for( xP = -nnpfcjjverlap; xP < InpPatchWidth + nnpfcjjverlap;xP++) { yTL = cTop + yP * 2 xTL = cLeft + xP * 2 yBR = yTL + 1 xBR = xTL + 1 yC = cTop / 2 + yP xC = cLeft / 2 + xP inpTLVal = lnpY( lnpSampleVal( yTL, xTL, CroppedHeight, CroppedWidth, CroppedYPic[ i ], 0)) inpTRVal = lnpY( lnpSampleVal( yTL, xBR, CroppedHeight, CroppedWidth, CroppedYPic[ i ], 0)) inpBLVal = lnpY( lnpSampleVal( yBR, xTL, CroppedHeight, CroppedWidth, CroppedYPic[ i ], 0)) inpBRVal = lnpY( lnpSampleVal( yBR, xBR, CroppedHeight, CroppedWidth, CroppedYPic[ i ], 0)) inpCbVal = lnpC( lnpSampleVal( yC, xC, CroppedHeight / 2, CroppedWidth / 2, CroppedCbPic[ i ], 1)); Petição 870250085523, de 22 / 09 / 2025, pág. 65 / 151 59 / 124 inpCrVal = lnpC( lnpSampleVal( yC, xC, CroppedHeight 12, CroppedWidth 12, CroppedCrPic[ i ], 2)) yPovlp = yP + nnpfc_overlap xPovlp = xP + nnpfc_overlap if( !nnpfc_component_last_flag) { inputTensor[ 0 ][ i ][ 0 ][ yPovlp ][ xPovlp ] = inpTLVal inputTensor[ 0 ][ i ][ 1 ][ yPovlp ][ xPovlp ] = InpTRVal inputTensor[ 0 ][ i ][ 2 ][ yPovlp ][ xPovlp ] = InpBLVal inputTensor[ 0 ][ i ][ 3 ][ yPovlp ][ xPovlp ] = InpBRVal inputTensor[ 0 ][ i ][ 4 ][ yPovlp ][ xPovlp ] = InpCbVal inputTensor[ 0 ][ i ][ 5 ][ yPovlp ][ xPovlp ] = inpCrVal} else { inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 0 ] = inpTLVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 1 ] = inpTRVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 2 ] = inpBLVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 3 ] = InpBRVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 4 ] = inpCbVal inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 5 ] = inpCrVal if( nnpfc_auxiliary_inp_idc ==1) if( !nnpfc_componentjast_flag) inputTensor[ 0 ][ i ][ 6 ][ yPovlp ][xPovlp ] = strengthCont rolScaledVal[ i ] else inputTensor[ 0 ][ i ][ yPovlp ][ xPovlp ][ 6 ] = strengthCont rolScaledVal[ i ]
[0201] nnpfc_out_format_idc equal to 0 indicates that the sample values emitted by NNPF are real numbers where the range of values from 0 to 1 inclusive maps linearly to the range of unsigned integer values from 0 to ( 1 << bitDepth ) - 1 inclusive, for any desired bitDepth for post-processing or subsequent display. Petition 870250085523, dated 09 / 22 / 2025, page 66 / 151 60 / 124
[0202] nnpfc_out_format_idc equal to 1 indicates that the luma sample values emitted by NNPF are unsigned integers in the range 0 to ( 1 << outTensorBitDepthY ) - 1, inclusive, and the chroma sample values emitted by NNPF are unsigned integers in the range 0 to ( 1 << outTensorBitDepthC ) - 1, inclusive.
[0203] nnpfc_out_format_idc values greater than 1 are reserved for future specifications by ITU-T | ISO / IEC and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document should ignore NNPFC SEI messages containing reserved nnpfc_out_format_idc values.
[0204] The nnpfc_out_order_idc indicates the order in which the samples resulting from the NNPF are output.
[0205] The value of nnpfc_out_order_idc must be in the range of 0 to 3, inclusive, in bitstreams conforming to this edition of this document. Values from 4 to 255, inclusive, for nnpfc_out_order_idc are reserved for future use by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore NNPFC SEI messages with nnpfc_out_order_idc in the range of 4 to 255, inclusive. Values of nnpfc_out_order_idc greater than 255 must not be present in bitstreams conforming to this edition of this document and are not reserved for future use.
[0206] When chromaUpsamplingFlag equals 1, nnpfc_out_order_idc must not equal 0 or 3.
[0207] When colourizationFlag equals 1, nnpfc_out_order_idc must not equal 0.
[0208] Table 17 contains an informative description of the values Petition 870250085523, dated 09 / 22 / 2025, page 67 / 151 61 / 124 nnpfc_out_order_idc. [Table 17] nnpfc_out_order_idc Description 0 Only the luma matrix is present in the output tensor, so the number of channels is 1. 1 Only the chroma matrices are present in the output tensor, so the number of channels is 2. 2 Both luma and chroma matrices are present in the output tensor, so the number of channels is 3. 3 Four luma matrices and two chroma matrices are present in the output tensor, so the number of channels is 6. This nnpfc_out_order_idc can only be used when the output chroma format is 4:2:0. 4..255 Reserved
[0209] The nnpfc_out_tensor_luma_bitdepth_minus8 plus 8 specifies the bit depth of the luma sample values in the output integer tensor. The value of nnpfc_out_tensor_luma_bitdepth_minus8 must be in the range of 0 to 24, inclusive. The value of outTensorBitDepthY is derived as follows: [Table 18]
[0210] The nnpfc_out_tensor_chroma_bitdepth_minus8 plus 8 specifies the bit depth of the chroma sample values in the output integer tensor. The value of nnpfc_out_tensor_chroma_bitdepth_minus8 must be in the range of 0 to 24, inclusive. The value of outTensorBitDepthC is derived as follows: [Table 19]
[0211] When bitDepthUpsamplingFlag is equal to 1, the value of nnpfc_out_format_idc must be equal to 1 and at least one of the following conditions must be true: - The nnpfc_out_tensor_luma_bitdepth_minus8 is present and Petition 870250085523, dated 09 / 22 / 2025, page 68 / 151 62 / 124 outTensorBitDepthY is greater than BitDepthY. - The nnpfc_out_tensor_chroma_bitdepth_minus8 parameter is present, and outTensorBitDepthC is greater than BitDepthC.
[0212] When nnpfc_inp_tensor_luma_bitdepth_minus8, nnpfc_inp_tensor_chroma_bitdepth_minus8, nnpfc_out_tensor_luma_bitdepth_minus8 and nnpfc_out_tensor_chroma_bitdepth_minus8 are present and outTensorBitDepthY is greater than inpTensorBitDepthY, outTensorBitDepthC must not be less than inpTensorBitDepthC.
[0213] When nnpfc_inp_tensor_luma_bitdepth_minus8, nnpfc_inp_tensor_chroma_bitdepth_minus8, nnpfc_out_tensor_luma_bitdepth_minus8 and nnpfc_out_tensor_chroma_bitdepth_minus8 are present and outTensorBitDepthC is greater than inpTensorBitDepthC, outTensorBitDepthY must not be less than inpTensorBitDepthY.
[0214] The StoreOutputTensors() process, for deriving sample values in the filtered output sample matrices FilteredYPic, FilteredCbPic, and FilteredCrPic of the output tensor outputTensor for a given vertical sample coordinate cTop and a horizontal sample coordinate cLeft specifying the location of the upper-left sample for the sample fragment included in the input tensor, is specified as follows: [Table 20] Petition 870250085523, dated 09 / 22 / 2025, page 69 / 151 63 / 124 for( i = 0; i < numOutputPics; i++) { if( nnpfc_out_order_idc ==0) for( yP = 0; yP < outPatchHeight; yP++) for( xP = 0; xP < outPatchWidth; xP++) { yY = cTop * outPatchHeight I inpPatchHeight + yP xY = cLeft * outPatchWidth I inpPatchWidth + xP if (yY < nnpfcOutputPicHeight && xY < nnpfcOutputPicWidth) if( !nnpfc_component_last_flag) FilteredYPic[ i ][ xY ][yY ] = outputTensorf 0 ][ i ][ 0 ][ yP ][ xP ] else FilteredYPic[ i ][ xY ][ yY ] = outputTensor[ 0 ][ i ][ yP ][ xP ][ 0 ] else if( nnpfc_out_order_idc ==1) for( yP = 0; yP < outPatchCHeight; yP++) for( xP = 0; xP < outPatchCWidth; xP++) { xSrc = cLeft * horCScaling + xP ySrc = cTop * verCScaling + yP if (ySrc < nnpfcOutputPicHeight / outSubHeightC && xSrc < nnpfcOutputPicWidth I outSubWidthC) FilteredCbPic[ i ][ xSrc ][ ySrc ] = outputTensorf 0 ][ i ] [0][yP][xP] FilteredCrPicf i ][ xSrc ][ ySrc ] = outputTensor[ 0 ][ i ] [1][yP][xP]} else { FilteredCbPic[ i ][ xSrc ][ ySrc ] = outputTensor[ 0 ][ i ][ yP ] [xP][0] FilteredCrPic[ i ][ xSrc ][ ySrc ] = outputTensor[ 0 ][ i ][ yP ] [xP][1]} else if( nnpfc_out_order_idc == 2) for( yP = 0; yP < outPatchHeight; yP++) for( xP = 0; xP < outPatchWidth; xP++) { Petição 870250085523, de 22 / 09 / 2025, pág. 70 / 151 64 / 124 yY = cTop * outPatchHeight / inpPatchHeight + yP xY = cLeft * outPatchWidth / inpPatchWidth + xP yC = yY / outSubHeightC xC = xY / outSubWidthC yPc = (yP / outSubHeightC) * outSubHeightC xPc = (xP / outSubWidthC) * outSubWidthC if (yY < nnpfcOutputPicHeight && xY < nnpfcOutputPicWidth) if( !nnpfc_component_last_flag) { FilteredYPic[ i ][ xY ][ yY ] = outputTensor[ 0 ][ i ][ 0 ][ yP ][ xP ] FilteredCbPic[ i ][ xC ][ yC ] = outputTensor[ 0 ][ i ][ 1 ] [ yPc ][ xPc ] FilteredCrPic[ i ][ xC ][ yC ] = outputTensor[ 0 ][ i ][ 2 ] [ yPc ][ xPc ]} else { FilteredYPic[ i ][ xY ][ yY ] = outputTensorf 0 ][ i ][ yP ][ xP ][ 0 ] FilteredCbPic[ i ][ xC ][ yC ] = outputTensorf 0 ][ i ][ yPc ] [xPc][1] FilteredCrPic[ i ][ xC ][ yC ] = outputTensor[ 0 ][ i ][ yPc ] [xPc][2] Petição 870250085523, de 22 / 09 / 2025, pág. 71 / 151 65 / 124 else if( nnpfc_out_order_idc ==3) for( yP = 0; yP < outPatchHeight; yP++) for( xP = 0; xP < outPatchWidth; xP++) { ySrc = cTop / 2 * outPatchHeight / inpPatchHeight + yP xSrc = cLeft / 2 * outPatchWidth / inpPatchWidth + xP if (ySrc < nnpfcOutputPIcHeight / 2 && xSrc < nnpfcOutputPicWidth / 2) if( !nnpfc_component_last_flag) { FilteredYPicf i ][ xSrc * 2 ][ ySrc * 2 ] = outputTensor[ 0 ] i][0][yP][xP] FilteredYPic[ i ][ xSrc * 2 +1 ][ ySrc * 2 ] = outputTensor 0][i][0][yP][xP] FilteredYPic[ i ][ xSrc * 2 ][ ySrc * 2 +1 ] = outputTensor 0][i][2][yP][xP] FilteredYPicf i ][ xSrc * 2 +1][ ySrc * 2 + 1 ] = outputTensor 0][i][3][yP][xP] FilteredCbPicf i ][ xSrc ][ ySrc ] = outputTensor 0][i][4][yP][xP] FilteredCrPic[ I ][ xSrc ][ ySrc ] = outputTensor 0][i][5][yP][xP]} else { FilteredYPicf i ][ xSrc * 2 ][ ySrc * 2 ] = outputTensor 0][i][yP][xP][0] FilteredYPicf i ][ xSrc * 2 +1 ][ ySrc * 2 ] = outputTensor 0][i][yP][xP][1] FilteredYPicf i ][ xSrc * 2 ][ ySrc * 2 +1 ] = outputTensor 0][i][yP][xP][2] FilteredYPic[ i ][ xSrc * 2 +1 ][ ySrc * 2 + 1 ] = outputTensor0][i][yP][xP][3] FilteredCbPic[ i ][ xSrc ][ ySrc ] = outputTensor 0][i][yP][xP][4] FilteredCrPic[ i ][ xSrc ][ ySrc ] = outputTensor 0][i][yP][xP][5]}}
[0215] The nnpfc_separate_colour_description_present_flag equal to 1 indicates that a distinct combination of primary colors, transfer features, matrix coefficients, and scale and deviation values are applied in association with the Petition 870250085523, dated 09 / 22 / 2025, p. 72 / 151 The 66 / 124 matrix coefficients for the resulting NNPF image are specified in the SEI message syntax structure. A value of 0 for nnpfc_separate_colour_description_present_flag indicates that the combination of primary colors, transfer features, matrix coefficients, and scale and offset values applied in conjunction with the matrix coefficients for the resulting NNPF image is the same as that specified in the VUI parameters for the CLVS.
[0216] The nnpfc_colour_primaries has the same semantics as specified in subclause 7.3 for the vui_colour_primaries syntax element, except for the following: - nnpfc_colour_primaries specifies the primary colors of the image resulting from applying the NNPF specified in the SEI message, instead of the primary colors used for CLVS. - When nnpfc_colour_primaries is not present in the NNPFC SEI message, the value of nnpfc_colour_primaries is inferred to be equal to vui_colour_primaries.
[0217] The nnpfc_transfer_characteristics has the same semantics as specified in subclause 7.3 for the vui_transfer_characteristics syntax element, except for the following: - nnpfc_transfer_characteristics specifies the image transfer characteristics resulting from applying the NNPF specified in the SEI message, instead of the transfer characteristics used for CLVS. - When nnpfc_transfer_characteristics is not present in the NNPFC SEI message, the value of nnpfc_transfer_characteristics is inferred to be equal to vui_transfer_characteristics.
[0218] The nnpfc_matrix_coeffs describes the equations used to derive luma and chroma signals from the primary colors green, blue, and red, or Y, Z, and X. Its semantics apply to the images resulting from the application of NNPF. Petition 870250085523, dated 09 / 22 / 2025, p. 73 / 151 67 / 124 specified in this SEI message and is as specified for MatrixCoefficients in Rec. ITU-T H. 273 | ISO / IEC 23091-2, with BitDepthY and BitDepthC being equal to outTensorBitDepthY and outTensorBitDepthC, respectively.
[0219] When nnpfc_matrix_coeffs is not present in the NNPFC SEI message, the value of nnpfc_matrix_coeffs is inferred to be equal to vui_matrix_coeffs.
[0220] The nnpfc_matrix_coeffs must not be equal to 0 unless both of the following conditions are true: - nnpfc_out_tensor_chroma_bitdepth_minus8 is equal to nnpfc_out_tensor_luma_bitdepth_minus8. - nnpfc_out_order_idc equals 2, outSubHeightC equals 1, and outSubWidthC equals 1.
[0221] The nnpfc_matrix_coeffs must not be equal to 8 unless one of the following conditions is true: - nnpfc_out_tensor_chroma_bitdepth_minus8 is equal to nnpfc_out_tensor_luma_bitdepth_minus8. - nnpfc_out_tensor_chroma_bitdepth_minus8 equals nnpfc_out_tensor_luma_bitdepth_minus8 + 1, nnpfc_out_order_idc equals 2, outSubHeightC equals 1, and outSubWidthC equals 1.
[0222] The nnpfc_full_range_flag indicates the scale and deviation values applied in association with the matrix coefficients, as specified by nnpfc_matrix_coeffs. Its semantics are those specified for the VideoFullRangeFlag parameter in Rec. ITU-T H.273 | ISO / IEC 23091-2. When absent, the value of nnpfc_full_range_flag is inferred to be 0.
[0223] The value nnpfc_chroma_loc_info_present_flag equal to 1 indicates the presence of the syntax element nnpfc_chroma_sample_loc_type_frame in the NNPFC SEI message. The value nnpfc_chroma_loc_info_present_flag equal to 0 indicates the absence of the syntax element nnpfc_chroma_sample_loc_type_frame in the Petition 870250085523, dated 09 / 22 / 2025, page 74 / 151 68 / 124 SEI message from NNPFC. When colourizationFlag is equal to 0 or nnpfc_out_colour_format_idc is not equal to 1, the value of nnpfc_chroma_loc_info_present_flag must be equal to 0.
[0224] The value nnpfc_chroma_sample_loc_type_frame, when different from 6 and nnpfc_out_colour_format_idc equal to 1, specifies the location of the chroma samples in the output images, as shown in Figure 1. nnpfc_chroma_sample_loc_type_frame equal to 6 and nnpfc_out_colour_format_idc equal to 1 indicates that the location of the chroma samples is unknown or unspecified or specified by other means not specified in this document. The value of nnpfc_chroma_sample_loc_type_frame must be in the range of 0 to 6, inclusive.
[0225] The nnpfc_overlap indicates the counts of overlapping horizontal and vertical samples of adjacent NNPF input tensors. The value of nnpfc_overlap must be in the range of 0 to 16383, inclusive.
[0226] The nnpfc_constant_patch_size_flag equal to 1 indicates that NNPF accepts exactly the fragment size indicated by nnpfc_patch_width_minus1 and nnpfc_patch_height_minus1 as input. The nnpfc_constant_patch_size_flag set to 0 indicates that NNPF accepts as input any fragment size with width inpPatchWidth and height inpPatchHeight, such that the width of an extended fragment (i.e., a fragment plus the overlapping area), which is equal to inpPatchWidth + 2 * nnpfc_overlap, is a positive integer multiple of nnpfc_extended_patch_width_cd_delta_minus1 + 1 + 2 * nnpfc_overlap, and the height of the extended fragment, which is equal to inpPatchHeight + 2 * nnpfc_overlap, is a positive integer multiple of nnpfc_extended_patch_height_cd_delta_minus1 + 1 + 2 * nnpfc_overlap.
[0227] The nnpfc_patch_width_minus1 plus 1, when nnpfc_constant_patch_size_flag equals 1, indicates the sample counts. Petition 870250085523, dated 09 / 22 / 2025, page 75 / 151 69 / 124 horizontal rows of the fragment size required for entry into NNPF. The value of nnpfc_patch_width_minus1 must be in the range of 0 to Min(32,766, CroppedWidth - 1), inclusive.
[0228] nnpfc_patch_height_minus1 plus 1, when nnpfc_constant_patch_size_flag equals 1, indicates the vertical sample counts of the fragment size required for entry into NNPF. The value of nnpfc_patch_height_minus1 must be in the range of 0 to Min(32,766, CroppedHeight - 1), inclusive.
[0229] The nnpfc_extended_patch_width_cd_delta_minus1 plus 1 plus 2 * nnpfc_overlap, when nnpfc_constant_patch_size_flag is equal to 0, indicates a common divisor of all allowed values of the width of an extended fragment required for entry in NNPF. The value of nnpfc_extended_patch_width_cd_delta_minus1 must be in the range of 0 to Min(32,766, CroppedWidth - 1), inclusive.
[0230] The nnpfc_extended_patch_height_cd_delta_minus1 plus 1 plus 2 * nnpfc_overlap, when nnpfc_constant_patch_size_flag is equal to 0, indicates a common divisor of all allowed values of the height of an extended fragment required for entry in NNPF. The value of nnpfc_extended_patch_height_cd_delta_minus1 must be in the range of 0 to Min(32,766, CroppedHeight - 1), inclusive.
[0231] Let the variables inpPatchWidth and inpPatchHeight be the width of the fragment size and the height of the fragment size, respectively.
[0232] If nnpfc_constant_patch_size_flag is equal to 0, the following applies: The inpPatchWidth and inpPatchHeight values are provided by external means not specified in this document or defined by the postprocessor itself. Petition 870250085523, dated 09 / 22 / 2025, page 76 / 151 70 / 124 The value of inpPatchWidth + 2 * nnpfc_overlap must be a positive integer multiple of nnpfc_extended_patch_width_cd_delta_minus1 + 1 + 2 * nnpfc_overlap, and inpPatchWidth must be less than or equal to CroppedWidth. The value of inpPatchHeight + 2 * nnpfc_overlap must be a positive integer multiple of nnpfc_extended_patch_height_cd_delta_minus1 + 1 + 2 * nnpfc_overlap, and inpPatchHeight must be less than or equal to CroppedHeight.
[0233] Otherwise (nnpfc_constant_patch_size_flag is equal to 1), the value of inpPatchWidth is set to nnpfc_patch_width_minus1 + 1 and the value of inpPatchHeight is set to nnpfc_patch_height_minus1 + 1.
[0234] The variables outPatchWidth, outPatchHeight, horCScaling, verCScaling, outPatchCWidth, and outPatchCHeight are derived as follows: [Table 21] outPatchWidth = (nnpfcOutputPicWidth * inpPatchWidth) / CroppedWidth outPatchHeight = (nnpfcOutputPicHeight * inpPatchHeight) / CroppedHeight horCScaling = SubWidthC / outSubWidthC verCScaling = SubHeightC / outSubHeightC outPatchCWidth = outPatchWidth * horCScaling outPatchCHeight = outPatchHeight * verCScaling
[0235] It is a bitstream conformance requirement that outPatchWidth * CroppedWidth equals nnpfcOutputPicWidth * inpPatchWidth and outPatchHeight * CroppedHeight equals nnpfcOutputPicHeight * inpPatchHeight.
[0236] The nnpfc_padding_type indicates the padding process when referencing sample locations outside the boundaries of the input image, as described in Table 22. [Table 22] η n pfc_padd i ng_ty pe Description 0 Zero padding 1 Replication padding Petition 870250085523, dated 09 / 22 / 2025, page 77 / 151 71 / 124 2. Reflective fill 3. Enveloping fill 4. Fixed fill 5.15 Reserved
[0237] The value of nnpfc_padding_type must be in the range of 0 to 4, inclusive, in bitstreams conforming to this edition of this document. Values from 5 to 15, inclusive, for nnpfc_padding_type are reserved for future use and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore NNPFC SEI messages with nnpfc_padding_type in the range of 5 to 15, inclusive. Values of nnpfc_padding_type greater than 15 must not be present in bitstreams conforming to this edition of this document and are not reserved for future use.
[0238] nnpfc_luma_padding_val indicates the luma value to be used for padding when nnpfc_padding_type is equal to 4. The value of nnpfc_luma_padding_val must be in the range of 0 to ( 1 << BitDepthY ) - 1, inclusive.
[0239] nnpfc_cb_padding_val indicates the value of Cb to be used for padding when nnpfc_padding_type is equal to 4. The value of nnpfc_cb_padding_val must be in the range of 0 to ( 1 << BitDepthC ) - 1, inclusive.
[0240] nnpfc_cr_padding_val indicates the Cr value to be used for padding when nnpfc_padding_type is equal to 4. The value of nnpfc_cr_padding_val must be in the range of 0 to ( 1 << BitDepthC ) - 1, inclusive.
[0241] The function InpSampleVal( y, x, picHeight, picWidth, croppedPic, cIdx ) with inputs being a vertical sample location y, a horizontal sample location x, an image height picHeight, an image width picWidth, a sample array croppedPic and a component index cIdx (equal to 0 for luma, 1 for Cb and 2 for Cr) returns the value of sampleVal derived as follows: [Table 23] Petition 870250085523, dated 09 / 22 / 2025, page 78 / 151 72 / 124 if( nnpfc_padding_type ==0) if( y < 0 || x < 0 || y >= picHeight 11 x >= picWidth) sampleVal = 0 else sampleVal = croppedPic[ x ][ y ] else if( nnpfc_padding_type ==1) sampleVal = croppedPic[ Clip3( 0, picWidth - 1, x) ][ Clip3( 0, picHeight -1, y) ] else if( nnpfc_padding_type = =2) sampleVal = croppedPic[ Reflect( picWidth -1, x) ][ Reflect( picHeight -1, y) ] else if( nnpfc_padding_type = =3) if( y >= 0 && y < picHeight) sampleVal = croppedPic[ Wrap( picWidth - 1, x) ][ y ] else if( nnpfc_padding_type ==4) if( y < 0 || x < 0 || y >= picHeight 11 x >= picWidth) sampleVal = (cldx = = 0 ? nnpfc_luma_padding_val: (cldx = = 1 ? nnpfc_cb_padding_val: nnpfc_cr_padding_val)) else sampleVal = croppedPic[ x ][ y ]
[0242] Para as entradas da função InpSampleVal( ), o local vertical é listado antes do local horizontal para compatibilidade com as convenções do tensor de entrada de alguns mecanismos de inferência.
[0243] An NNPF PostProcessingFilter() is the target NNPF, as derived from the SEI message semantics of NNPFCFA. The following example process can be used, with the NNPF PostProcessingFilter(), to generate, in a fragmented form, the filtered and / or interpolated image(s), which contain the sample matrices Y, Cb, and Cr FilteredYPic, FilteredCbPic, and FilteredCrPic, respectively, as indicated by nnpfc_out_order_idc: [Table 24] Petition 870250085523, dated 09 / 22 / 2025, page 79 / 151 73 / 124 if( nnpfc_inp_order_idc = = 0 11 nnpfc_inp_order_idc ==2) for( cTop = 0; cTop < CroppedHeight; cTop += inpPatchHeight) for( cLeft = 0; cLeft < CroppedWidth; cLeft += inpPatchWidth) { DerivelnputTensors() outputTensor = PostProcessingFilter( inputTensor) StoreOutputTensors()} else if( nnpfc_inp_order_idc ==1) for( cTop = 0; cTop < CroppedHeight I SubHeightC; cTop += InpPatchHeight) for( cLeft = 0; cLeft < CroppedWidth I SubWidthC; cLeft += inpPatchWidth) { DerivelnputTensors() outputTensor = PostProcessingFilter( inputTensor) StoreOutputTensors()} else if( nnpfc_inp_order_idc ==3) for( cTop = 0; cTop < CroppedHeight; cTop += inpPatchHeight * 2) for( cLeft = 0; cLeft < CroppedWidth; cLeft += inpPatchWidth * 2) { DerivelnputTensors() outputTensor = PostProcessingFilter( inputTensor) StoreOutputTensors()}
[0244] An NNPF-generated image with index i contains sample matrices FilteredYPic[i], FilteredCbPic[i], and FilteredCrPic[i], when present, which are derived by Formula 99. An NNPF-generated image does not include overlapping regions.
[0245] The NNPF process consists of the process defined by Formula 99, followed by the output of images generated by the NNPF in their ascending index order, where all images generated by the NNPF that were interpolated by the NNPF are produced and those images generated by the NNPF that correspond to any input images for the NNPF are produced as specified in the SEI message semantics of NNPFCFA. Petition 870250085523, dated 09 / 22 / 2025, page 80 / 151 74 / 124
[0246] The nnpfc_complexity_info_present_flag set to 1 specifies that one or more syntax elements indicating the complexity of the NNPF associated with the nnpfc_id are present. The nnpfc_complexity_info_present_flag set to 0 specifies that no syntax elements indicating the complexity of the NNPF associated with the nnpfc_id are present.
[0247] nnpfc_parameter_type_idc equal to 0 indicates that the neural network uses only integer parameters. nnpfc_parameter_type_flag equal to 1 indicates that the neural network can use floating-point or integer parameters. nnpfc_parameter_type_idc equal to 2 indicates that the neural network uses only binary parameters. nnpfc_parameter_type_idc equal to 3 is reserved for future use by ITU-T | ISO / IEC and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document should ignore NNPFC SEI messages with nnpfc_parameter_type_idc equal to 3.
[0248] The nnpfc_log2_parameter_bit_length_minus3 values of 0, 1, 2, and 3 indicate that the neural network does not use parameters with bit lengths greater than 8, 16, 32, and 64, respectively. When nnpfc_parameter_type_idc is present and nnpfc_log2_parameter_bit_length_minus3 is not present, the neural network does not use parameters with bit lengths greater than 1.
[0249] The nnpfc_num_parameters_idc indicates the maximum number of neural network parameters for NNPF in units of a power of 2,048. An nnpfc_num_parameters_idc of 0 indicates that the maximum number of neural network parameters is unknown. The nnpfc_num_parameters_idc value must be in the range of 0 to 52, inclusive. nnpfc_num_parameters_idc values greater than 52 are reserved for future use by ITU-T | ISO / IEC and should not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore SEI messages. Petition 870250085523, dated 09 / 22 / 2025, p. 81 / 151 75 / 124 of NNPFC have nnpfc_num_parameters_idc values greater than 52.
[0250] If the value of nnpfc_num_parameters_idc is greater than zero, the variable maxNumParameters will be derived as follows: [Table 25]
[0251] It is a bitstream compliance requirement that the number of neural network parameters in NNPF be less than or equal to maxNumParameters.
[0252] nnpfc_num_kmac_operations_idc greater than 0 indicates that the maximum number of multiplication-accumulation operations per sample of the NNPF is less than or equal to nnpfc_num_kmac_operations_idc * 1,000. nnpfc_num_kmac_operations_idc equal to 0 indicates that the maximum number of multiplication-accumulation operations of the network is unknown. The value of nnpfc_num_kmac_operations_idc must be in the range of 0 to 232-2, inclusive.
[0253] An nnpfc_total_kilobyte_size greater than 0 indicates the total size in kilobytes required to store the uncompressed parameters of the neural network. The total size in bits is a number equal to or greater than the sum of the bits used to store each parameter. The nnpfc_total_kilobyte_size is the total size in bits divided by 8,000, rounded up. An nnpfc_total_kilobyte_size equal to 0 indicates that the total size required to store the neural network parameters is unknown. The value of nnpfc_total_kilobyte_size must be in the range of 0 to 232-2, inclusive.
[0254] A value of 0 in nnpfc_metadata_extension_num_bits specifies that nnpfc_reserved_metadata_extension is not present. A value greater than 0 in nnpfc_metadata_extension_num_bits specifies the length, in bits, of nnpfc_reserved_metadata_extension. nnpfc_metadata_extension_num_bits should be 0 in this edition of this document. Values in the range of 1 to 2048 inclusive for nnpfc_metadata_extension_num_bits are reserved for future use. Petition 870250085523, dated 09 / 22 / 2025, p. 82 / 151 76 / 124 by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must allow any value of nnpfc_metadata_extension_num_bits in the range of 0 to 2048, inclusive. Values of nnpfc_metadata_extension_num_bits greater than 2048 will not be present in bitstreams conforming to this edition of this document and are not reserved for future use.
[0255] The nnpfc_reserved_metadata_extension must not be present in bitstreams conforming to this edition of this document. However, decoders conforming to this edition of this document must ignore the presence and value of nnpfc_reserved_metadata_extension. When present, the length, in bits, of nnpfc_reserved_metadata_extension is equal to nnpfc_metadata_extension_num_bits.
[0256] nnpfc_reserved_zero_bit_b must be equal to 0 in bitstreams conforming to this edition of this document. Decoders must ignore NNPFC SEI messages in which nnpfc_reserved_zero_bit_b is not equal to 0.
[0257] The nnpfc_payload_byte[i] contains the i-th byte of a bit stream conforming to the ISO / IEC 15938-17 standard. The byte sequence nnpfc_payload_byte[i] for all present values of i must be a complete bit stream conforming to the ISO / IEC 15938-17 standard.
[0258] SEI message for neural network post-filter activation
[0259] Table 26 shows an example of the SEI NNFPA message syntax. [Table 26] Petition 870250085523, dated 09 / 22 / 2025, page 83 / 151 77 / 124 nn_post_filter_activation( payloadSize) { Descriptor nnpfatargetid ue(v) nnpfacancelflag u(l) if( innpfa cancel flag) { nnpfatargetbaseflag u(l) nnpfa_pcrsistcnccflag u(l) nnpfanumoutputentries ue(v) for( i = 0; i < nnpfa_num_output_entries; i++ ) nnpfa output flag[ i ] u(l)
[0260] The Neural Network Post-Filter Activation (NNPFA) SEI message enables or disables the possible use of the target neural network post-processing filter (NNPF), identified by nnpfa_target_id and nnpfa_target_base_flag, for post-processing filtering of a set of images. For a specific image for which NNPF is enabled, the target NNPF is derived as follows: - If nnpfa_target_base_flag is equal to 1, the target NNPF will be the baseline NNPF with nnpfc_id equal to nnpfa_target_id. Otherwise (nnpfa_target_base_flag is equal to 0), the target NNPF is the NNPF specified by the last NNPFC SEI message with nnpfc_id equal to nnpfa_target_id that precedes the first NAL VCL unit of the current image in the decoding order and is not a repetition of the NNPFC SEI message containing the baseline NNPF.
[0261] There may be multiple NNPFCFA SEI messages present for the same image, for example, when the NNPFs are intended for different purposes or for filtering different color components.
[0262] The nnpfa_target_id indicates the target NNPF, which is specified by one or more NNPFC SEI messages that belong to the current image and have nnpfc_id. Petition 870250085523, dated 09 / 22 / 2025, p. 84 / 151 78 / 124 equals nnpfa_target_id. The value of nnpfa_target_id must be in the range of 0 to 232-2, inclusive.
[0263] An NNPFCFA SEI message with a specific nnpfa_target_id value should not be present in a current PU unless one or both of the following conditions are true: - Within the current CLVS, there is an NNPFC SEI message with nnpfc_id equal to the specific value of nnpfa_target_id present in a PU that precedes the current PU in the decoding order. - There is a SEI message from NNPFCFC with nnpfc_id equal to the specific value of nnpfa_target_id in the current PU.
[0264] When a PU contains an NNPFCFC SEI message with a specific nnpfc_id value and an NNPFCFA SEI message with nnpfa_target_id equal to the specific nnpfc_id value, the NNPFCFC SEI message must precede the NNPFCFA SEI message in the decoding order.
[0265] The nnpfa_cancel_flag equal to 1 indicates that the persistence of the target NNPF established by any previous NNPFCFA SEI message with the same nnpfa_target_id as the current SEI message is canceled, i.e., the target NNPF is no longer used unless activated by another NNPFCFA SEI message with the same nnpfa_target_id as the current SEI message and nnpfa_cancel_flag equal to 0. The nnpfa_cancel_flag equal to 0 indicates that the nnpfa_target_base_flag, nnpfa_persistence_flag, and nnpfa_num_output_entries follow.
[0266] The nnpfa_target_base_flag equal to 1 specifies that the target NNPF is the base NNPF with nnpfc_id equal to nnpfa_target_id. The nnpfa_target_base_flag equal to 0 specifies that the target NNPF is the NNPF specified by the last NNPFCFC SEI message with nnpfc_id equal to nnpfa_target_id that precedes the first NAL VCL unit of the current image in the decoding order and is not a repetition of the NNPFCFC SEI message containing the base NNPF. Petition 870250085523, dated 09 / 22 / 2025, page 85 / 151 79 / 124
[0267] The nnpfa_persistence_flag specifies the persistence of the target NNPF for the current layer.
[0268] The nnpfa_persistence_flag equal to 0 specifies that the target NNPF can be used for post-processing filtering only for the current image.
[0269] The nnpfa_persistence_flag equal to 1 specifies that the target NNPF can be used for post-processing filtering for the current image and all subsequent images of the current layer in the output order until one or more of the following conditions are true: - A new CLVS from the current layer starts. The bit stream ends. - An image in the current layer associated with an NNPFCFA SEI message with the same nnpfa_target_id as the current SEI message and nnpfa_cancel_flag equal to 1 is emitted after the current image in the output order.
[0270] The target NNPF is not applied to this subsequent image in the current layer associated with an NNPFCFA SEI message with the same nnpfa_target_id as the current SEI message and nnpfa_cancel_flag equal to 1.
[0271] Let nnpfcTargetPictures be the set of images to which the last NNPFCFC SEI message belongs with nnpfc_id equal to nnpfa_target_id that precedes the current NNPFCFA SEI message in the decoding order. Let nnpfaTargetPictures be the set of images for which the target NNPF is activated by the current NNPFCFA SEI message. It is a bitstream conformance requirement that any image included in nnpfaTargetPictures is also included in nnpfcTargetPictures.
[0272] The nnpfa_num_output_entries specifies the number of nnpfa_output_flag[i] syntax elements present in the NNPFCFA SEI message. The value of nnpfa_num_output_entries must be in the range of 0 to NumInpPicsInOutputTensor, inclusive. Petition 870250085523, dated 09 / 22 / 2025, p. 86 / 151 80 / 124
[0273] The nnpfa_output_flag[i] set to 1 specifies that the NNPF-generated image corresponding to the input image with index InpIdx[i] is output by the NNPF process activated by this NNPFCFA SEI message, where the NNPF process is specified in the NNPFCFC SEI message semantics. The nnpfa_output_flag[i] set to 0 specifies that the NNPF-generated image corresponding to the input image with index InpIdx[i] is not output by the NNPF process activated by this NNPFCFA SEI message. When nnpfa_num_output_entries is less than NumInpPicsInOutputTensor, the nnpfa_output_flag[i] is inferred to be equal to 1 for each value of i in the range from nnpfa_num_output_entries to NumInpPicsInOutputTensor - 1, inclusive.
[0274] SEI message from neural network post-filter group resources
[0275] Table 27 shows an example of NNPFGC SEI message syntax. [Tabela 27] Petição 870250085523, de 22 / 09 / 2025, pág. 87 / 151 81 / 124 nn_post_filter_group_characteristics( payloadSize) { Descriptor nnpfgcid ue(v) nnpfgc grouping type ue(v) if( nnpfgcgroupingtype = = 0 11 nnpfgcgroupingtype - - 2 ) nnpfgc_purpose u(16) nnpfgc_num_members_minus2 ue(v) for( i = 0; i <= nnpfgc_num_members_minus2 + 1; i++ ) nnpfgc_member_id[ i ] ue(v) nnpfgc_complexity_info_present_flag u(l) if( nnpfgc_complexity_info_present flag) { nnpfgc_parametertypeidc u(2) if( impfgc_parameter_type_idc != 2 ) nnpfgclog2_paramctcrbitlcngthminus3 u(2) nnpfgc_num_parameters_idc u(6) nnpfgcnumkmacoperationsidc ue(v) nnpfgctotalkilobytcsizc ue(v)}}
[0276] The neural network post-filter group (NNPFGC) characteristic SEI message specifies a neural network post-filter group (NNPF). The SEI message indicates whether the NNPF group defines an NNPF cascade or defines NNPFs or NNPF groups of NNPF cascades that are alternatives to each other. The use of NNPF groups of NNPF cascades for specific images is indicated by neural network post-filter group activation SEI messages (NNPFGA).
[0277] The nnpfgc_id contains an identification number that can be used to identify an NNPF group. The value of nnpfgc_id must be in the range of 0 to 232-2, inclusive. Values of nnpfgc_id from 256 to 511, inclusive, and from 231 to 232-2, inclusive, are reserved for future use by ITU-T | ISO / IEC. Decoders conforming to this edition of this document that encounter an NNPFGC SEI message with nnpfgc_id in the range of 256 to 511, inclusive, or in the range of 231 to 232-2, inclusive, must ignore the SEI message. The value of nnpfgc_id does not Petition 870250085523, dated 09 / 22 / 2025, p. 88 / 151 82 / 124 must be equal to no nnpfc_id value of any NNPFCFC SEI message present in the same CLVS. When the nnpfgc_id value of an NNPFGC SEI message nnpfgcSeiA is equal to the nnpfgc_id value of another NNPFGC SEI message nnpfgcSeiB present in the same CLVS, nnpfgcSeiA and nnpfgcSeiB will be identical.
[0278] The nnpfgc_grouping_type equal to 0 indicates that this SEI message specifies a cascaded neural network post-filter group.
[0279] nnpfgc_grouping_type equal to 1 indicates that the NNPFs or NNPF groups identified by nnpfgc_member_id[ i ] are alternatives to each other, from which the post-processor must select only one to be applied.
[0280] The nnpfgc_grouping_type equal to 2 indicates that this SEI message specifies a group of NNPFs that must be used together and are activated alternately, so that at most one of these NNPFs is activated for any given image.
[0281] nnpfgc_grouping_type equal to 3 indicates that the NNPFs or NNPF groups identified by nnpfgc_member_id[ i ] should be used in parallel.
[0282] nnpfgc_grouping_type equal to 4 indicates that the NNPFs or NNPF groups identified by nnpfgc_member_id[ i ] are optional, that is, they may or may not be applied by the post-processor.
[0283] The nnpfgc_grouping_type value must be in the range of 0 to 255, inclusive. nnpfgc_grouping_type values in the range of 5 to 255, inclusive, are reserved for future specifications by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this edition of this document must ignore NNPFGC SEI messages with nnpfgc_grouping_type in the range of 5 to 255, inclusive.
[0284] nnpfgc_purpose has the semantics of nnpfc_purpose, but with the Petition 870250085523, dated 09 / 22 / 2025, p. 89 / 151 83 / 124 exception that the semantics are specified for the NNPF group defined by this SEI message instead of the NNPF defined by an NNPFCFC SEI message.
[0285] The nnpfgc_num_members_minus2 plus 2 indicates the number of NNPFs or NNPF groups in the NNPF group that this SEI message defines.
[0286] The nnpfgc_member_id[i] indicates the i-th member in the NNPF group defined by this SEI message as follows: - If there is an NNPF with nnpfc_id equal to nnpfgc_member_id[i] defined in CLVS, the i-th member in the NNPF group defined by this SEI message is an NNPF that has nnpfc_id equal to nnpfgc_member_id[i]. Otherwise (there is no NNPF with nnpfc_id equal to nnpfgc_member_id[i] defined in CLVS), the i-th member in the NNPF group defined by this SEI message is an NNPF group with nnpfgc_id equal to nnpfgc_member_id[i].
[0287] When an nnpfgc_member_id[i] value references an nnpfgc_id value from an NNPFGC SEI message nnpfgcSei, it is a bitstream conformance requirement that the NNPFGC SEI message nnpfgcSei has nnpfgc_grouping_type equal to 0. When nnpfgc_grouping_type is equal to 0 or 2, it is a bitstream conformance requirement that there is an NNPF with nnpfgc_id value equal to nnpfgc_member_id[i] defined in the CLVS. When nnpfgc_grouping_type is equal to 1, 3, or 4, it is a bitstream conformance requirement that there be an NNPF with nnpfc_id value equal to nnpfgc_member_id[i] or an NNPF group with nnpfgc_id value equal to nnpfgc_member_id[i] defined in the CLVS.
[0288] When nnpfgc_grouping_type is equal to 0, NNPFs with nnpfc_id equal to nnpfgc_member_id[ i ] are executed in cascade in ascending order of i, as triggered by an NNPFGA SEI message with nnpfga_target_id equal to nnpfgc_id.
[0289] nnpfgc_complexity_info_present_flag, nnpfgc_parameter_type_idc, nnpfgc_log2_parameter_bit_length_minus3, nnpfgc_num_parameters_idc, Petition 870250085523, dated 09 / 22 / 2025, pp. 90 / 151 84 / 124 nnpfgc_num_kmac_operations_idc and nnpfgc_total_kilobyte_size have the semantics of nnpfc_complexity_info_present_flag, nnpfc_parameter_type_idc, nnpfc_log2_parameter_bit_length_minus3, nnpfc_num_parameters_idc, nnpfc_num_kmac_operations_idc, and nnpfc_total_kilobyte_size, respectively, but with the exception that the semantics are specified for the NNPF group defined by this SEI message instead of the NNPF defined by an NNPFCFC SEI message. When nnpfgc_grouping_type equals 1, nnpfgc_complexity_info_present_flag must equal 0.
[0290] SEI message for activation of the neural network post-filter group
[0291] Table 28 shows an example of the NNPFGA SEI message syntax. [Table 28] nn_post_filter_group_activation( payloadSize ) { Descriptor nnpfgatargctid ue(v) nnpfgacancclflag u(l) if( innpfga cancel flag ) { nnpfgajcrsistcnccflag u(l) nnpfganiimfiltcrsminns? ue(v) for( i = 0; i <= nnpfga_num_fíltcrs_minus2 + 1; i++) { nnpfga_taiget_base_flag[ i ] u(l) nnpfgainputalljicsflagf i ] u(l) if( !nnpfga_input_all_pics_flag[ i ] ) { nnpfga_num_input_pics_minusl[ i ] ue(v) for( j = 0; j <= nnpfga_num_input_pics_minusl[ i ]; j++) nnpfganuminput_picsminusl [ i ] ue(v)} nnpfga num output cntrics[ i ] ue(v) for( j = 0; j < nnpfga_num_output_entries[ i ]; j++) nnpfga output flagt i ][ j ] u(l)}}} Petição 870250085523, de 22 / 09 / 2025, pág. 91 / 151 85 / 124
[0292] The SEI message for activating the neural network post-filter group (NNPFGA) enables or disables the possible use of the target neural network post-processing filter group (NNPFG) of the NNPF groups, identified by nnpfga_target_id, for post-processing filtering of a set of images. nnpfgc_grouping_type for the identified NNPF group must be equal to 0 (cascade) or 1 (alternatives). When nnpfgc_grouping_type is equal to 1, each member of the group must have the same number of input and output NNPF images.For a specific image for which NNPFG is enabled, the target NNPFG is the NNPFG specified by the last NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id, which precedes the first VCL NAL unit of the current image in the decoding order, and the NNPFs of the target NNPFG are defined by the NNPFC SEI messages that have nnpfc_id equal to any nnpfgc_member_id[i] value of the target NNPFG and are present in the current image unit or precede the current image in the decoding order.
[0293] The use of this SEI message requires the definition of the following variables: - Width and height of the input image in luma sample units, denoted here by InitCroppedWidth[ idx ] and InitCroppedHeight[ idx ], respectively, of the candidate input images with index idx in the range of 0 to numCandInputPics - 1, inclusive, that can be used as input for the NNPFG. - Luma sample matrix InitCroppedYPic[ idx ] and chroma sample matrices InitCroppedCbPic[ idx ] and InitCroppedCrPic[ idx ] , when present, of the candidate input images with index idx in the range of 0 to numCandInputPics - 1, inclusive, which can be used as input for the NNPFG. - Bit depth (BitDepthY) for the luma sample matrix of the candidate input images. Bit depth (BitDepthC) for chroma sample matrices, if Petition 870250085523, dated 09 / 22 / 2025, page 92 / 151 86 / 124 if there are any, of the candidate entry images. - A chroma format indicator, denoted here by ChromaFormatIdc - When nnpfc_auxiliary_inp_idc equals 1, an array of StrengthControlVal[ idx ] filtering intensity control values that must contain real numbers in the range of 0 to 1, inclusive, of the candidate input images with idx index in the range of 0 to numCandInputPics - 1, inclusive.
[0294] The candidate input image with index 0 corresponds to the image for which NNPFG is activated by this NNPFGA SEI message. The candidate input image with index i in the range from 1 to numCandInputPics - 1, inclusive, precedes the candidate input image with index i - 1 in the output order. Let candInputPicList[ 0 ] be the list of candidate input images in reverse output order.
[0295] The nnpfga_target_id indicates the target NNPFG, which is specified by the NNPFGC SEI message that belongs to the current image and has nnpfgc_id equal to nnpfga_target_id.
[0296] The value of nnpfga_target_id must be in the range of 0 to 232-2, inclusive.
[0297] An NNPFGA SEI message with a specific nnpfga_target_id value must not be present in a current PU unless there is an NNPFGC SEI message with nnpfgc_id equal to the specific nnpfga_target_id value and nnpfgc_grouping_type equal to 0 present in the current PU or in a PU that precedes the current PU in the decoding order within the current CLVS.
[0298] When a PU contains an NNPFGC SEI message with a specific nnpfgc_id value and an NNPFGA SEI message with nnpfga_target_id equal to the specific nnpfgc_id value, the NNPFGC SEI message must precede the NNPFGA SEI message in the decoding order.
[0299] The nnpfga_cancel_flag equal to 1 indicates that the NNPFG persistence of Petition 870250085523, dated 09 / 22 / 2025, p. 93 / 151 87 / 124 target established by any previous NNPFGA SEI message with the same nnpfga_target_id as the current SEI message is canceled, i.e., the target's NNPFG is no longer used unless it is activated by another NNPFGA SEI message with the same nnpfga_target_id as the current SEI message and nnpfga_cancel_flag equal to 0. nnpfga_cancel_flag equal to 0 indicates that the target's NNPFG is activated for use.
[0300] The nnpfga_persistence_flag specifies the persistence of the target NNPFG for the current layer.
[0301] The nnpfga_persistence_flag equal to 0 specifies that the target NNPFG can be used for post-processing filtering only for the current image.
[0302] The nnpfga_persistence_flag equal to 1 specifies that the target NNPFG can be used for post-processing filtering of the current image and all subsequent images of the current layer in output order until one or more of the following conditions are true: - A new CLVS of the current layer is initiated. The bit stream ends. - An image in the current layer associated with an NNPFGA SEI message with the same nnpfga_target_id as the current SEI message that follows the current image in the output order.
[0303] The target NNPFG is not applied to this subsequent image in the current layer associated with an NNPFGA SEI message with the same nnpfga_target_id as the current SEI message.
[0304] Let nnpfgcTargetPictures be the set of images to which the last NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id belongs, which precedes the current NNPFGA SEI message in the decoding order. Let nnpfgaTargetPictures be the set of images for which the target's NNPFG is activated by the current NNPFGA SEI message. This is a flow compliance requirement. Petition 870250085523, dated 09 / 22 / 2025, p. 94 / 151 88 / 124 bits so that any image included in nnpfgaTargetPictures is also included in nnpfgcTargetPictures.
[0305] nnpfga_num_filters_minus2 plus 2 indicates the number of NNPFs in the NNPFG that this SEI message activates. The value of nnpfga_num_filters_minus2 must be equal to the value of nnpfgc_num_members_minus2 in an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id.
[0306] The nnpfga_target_base_flag[i] set to 1 specifies that the i-th NNPF in the target NNPFG is the base NNPF with nnpfc_id equal to nnpfgc_member_id[i] in an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id. nnpfga_target_base_flag[i] equal to 0 specifies that the i-th NNPF in the target NNPFG is the NNPF specified by the last NNPFC SEI message that has nnpfc_id equal to nnpfgc_member_id[i] in an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id, precedes the first NAL VCL unit of the current image in the decoding order, and is not a repetition of the NNPFC SEI message containing the base NNPF.
[0307] The nnpfga_input_all_pics_flag[i] set to 1 specifies that the input images for the i-th NNPF are selected from the list of candidate input images candInputPicList[i] without skipping. The nnpfga_input_all_pics_flag[i] set to 0 specifies that the input images for the i-th NNPF are selected from the list of candidate input images candInputPicList[i] in such a way that some candidate input images are skipped.
[0308] Onnpfga_num_input_pics_minus1[i] specifies the number of input images for the i-th NNPF in the target NNPFG. When present, nnpfga_num_input_pics_minus1[i] must be equal to nnpfc_num_input_pics_minus1 for an NNPF with nnpfc_id equal to nnpfgc_member_id[i] of an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id. When not present, nnpfga_num_input_pics_minus1[i] is inferred to be equal to Petition 870250085523, dated 09 / 22 / 2025, p. 95 / 151 89 / 124 nnpfc_num_input_pics_minus1 for an NNPF with nnpfc_id equal to nnpfgc_member_id[i] in a SEI message from NNPFGC with nnpfgc_id equal to nnpfga_target_id.
[0309] The nnpfga_input_pic_skip_count[i][j] specifies a j-th count of images that is skipped in the list of candidate input images candInputPicList[i] when selecting input images for the NNPF triggered by the i-th loop entry. When nnpfga_input_pic_skip_count[i][j] is not present, it is inferred to be equal to 0 for all values of j in the range from 0 to nnpfga_num_input_pics_minus1[i], inclusive. The variable numCandInputPics, which indicates the number of candidate input images for NNPFG, is derived as follows: [Table 29] numCandInputPics = 0 for( j = 0; j <= nnpfga_num_input_pics_minus1[ 0 ]; j++) numCandInputPics += 1 + nnpfga_input_pic_skip_count[ 0 ][ j ]
[0310] Let candInputPicList[ m ] for m in the range from 1 to nnpfga_num_filters_minus2 + 1, inclusive, be a list of images in reverse output order that is initially empty and formed in descending order of n in the range from 0 am - 1, inclusive, including each image that is emitted by the NNPF process from the nth entry of the loop that does not have any corresponding image already present in candInputPicList[ m ], and lastly including each image present in candInputPicList[ 0 ] that does not have any corresponding image already present in candInputPicList[ m ].
[0311] When a candidate input image candInputPicList[ m ][ idx ] for any value of m in the range 1 to nnpfga_num_filters_minus2 + 1, inclusive, is an NNPF output image from the nth NNPF process with the value of n being less than the value of m, the width and height of the candidate input image are Petition 870250085523, dated 09 / 22 / 2025, p. 96 / 151 90 / 124 respectively equal to nnpfcOutputPicWidth and nnpfcOutputPicHeight of the NNPF output image.
[0312] The list of input images inputPicList[ m ] for the NNPF of the same entry in the loop is derived as follows: [Table 30] for( k = 0, candldx = 0; k <= nnpfga_num_input_pics_minus1[ m ]; k++, candldx++) { candldx += nnpfga_input_pic_skip_count[ m ][ k ] inputPicl_ist[ m ][ k ] = candlnputPicList[ m ][ candldx ]}
[0313] It is a bitstream compliance requirement that candIdx does not exceed the number of images in candInputPicList[ m ].
[0314] It is a bitstream conformance requirement that the images present in inputPicList[ m ], for any value of m in the range of 1 to nnpfga_num_filters_minus2 + 1, inclusive, have the same width, height, bit depth and chroma format.
[0315] For the purposes of interpreting the SEI message from NNPFC with nnpfc_id equal to nnpfgc_member_id[i] in an SEI message from NNPFGC with nnpfgc_id equal to nnpfga_target_id, the following variables are specified for the i-th entry of the loop: The variables BitDepthY, BitDepthC, and ChromaFormatIdc are used as provided for the interpretation of this SEI message. - CroppedWidth and CroppedHeight are defined as equal to the width and height of the images in inputPicList[i], respectively, in luma sample units. - For each input image k in the range from 0 to nnpfga_num_input_pics_minus1[i], inclusive, the following applies: - CroppedYPic[k], CroppedCbPic[k], and CroppedCrPic[k], when present, are defined as equal to the respective sample matrix of inputPicList[i][k]. Petition 870250085523, dated 09 / 22 / 2025, page 97 / 151 91 / 124 - When nnpfc_auxiliary_inp_idc is equal to 1 for the NNPF with nnpfc_id equal to nnpfgc_member_id[i] in an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id, the following applies: - It is a bitstream conformance requirement that inputPicList[i][k] be the same as candInputPicList[0][idx] for any value of idx in the range from 0 to numCandInputPics - 1, inclusive. - StrengthControlVal[ k ] is defined as equal to InitStrengthControlVal[ idx ].
[0316] The nnpfga_num_output_entries[i] specifies the number of nnpfga_output_flag[i][j] syntax elements present in the NNPFGA SEI message. The value of nnpfga_num_output_entries[i] must be in the range of 0 to NumInpPicsInOutputTensor, inclusive, for an NNPF with nnpfc_id equal to nnpfgc_member_id[i] of an NNPFGC SEI message with nnpfgc_id equal to nnpfga_target_id.
[0317] The nnpfga_output_flag[i][j] set to 1 specifies that the NNPF-generated image that corresponds to the input image with index InpIdx[j] derived for the i-th NNPF of the target NNPFG is output by the NNPF process activated by this loop entry, where the NNPF process is specified in the NNPFC SEI message semantics. The nnpfga_output_flag[i][j] set to 0 specifies that the NNPF-generated image that corresponds to the input image with index InpIdx[j] derived for the i-th NNPF of the target NNPFG is not output by the NNPF process activated by this loop entry. When nnpfga_num_output_entries[i] is less than the NumInpPicsInOutputTensor derived for the i-th NNPF of the target NNPFG, nnpfga_output_flag[i][j] is inferred to be equal to 1 for each value of i in the range from nnpfga_num_output_entries[i] to NumInpPicsInOutputTensor - 1, inclusive.
[0318] Let NnpfgaOutputPicList, which is the list of images generated by the NNPFG NNPF process in output order, be initially empty and formed Petition 870250085523, dated 09 / 22 / 2025, page 98 / 151 92 / 124 in descending order of n in the range from 0 to nnpfga_num_filters_minus2 + 1, inclusive, including each image that is generated by the NNPF process from the nth entry of the loop that does not have any corresponding image already present in NnpfgaOutputPicList. Source Image Timing Information (SPTI)
[0319] Table 31 shows an example of SPTI syntax. [Table 31] source_picture_timing_info( payloadSize) { Descriptor spticancclflag u(l) if( !spti_cancel flag) { spti_persistence_flag u(l) spti source timing equals output timing flag u(l) if( !spti_source_timing_equals_output_timing_flag) { spti_source_type_present_flag u(l) if( spti_source_type_present_flag) sptisourcctypc u(16) sptitimescale u(32) sptinumunitsinclcmcntalintcrval u(18) if( spti_persistence_flag) sptimaxsublaycrsminusl u(3) for( i = 0; i <= spti max sublayers minusl; i++ ) { sublayer scale factor sptif i ] ue(v) spti_sublayer_synthesized_picture_flag[ i ] u(l)}
[0320] The SEI message for source image timing information (SPTI) indicates the time distance between the source images associated with the images of Petition 870250085523, dated 09 / 22 / 2025, p. 99 / 151 93 / 124 corresponding decoded outputs before encoding, for example, for content captured by camera, the time distance between source images is the difference between the time an image sensor was exposed to produce a source image associated with the current decoded image and the time the image sensor was exposed to produce the source image associated with a previous decoded image in the output order. The information provided by the SPTI SEI message refers only to the image(s) from the image in the current layer in the access unit containing the SPTI SEI message and all subsequent images in the current layer in the output order based on their persistence.
[0321] spti_cancel_flag equal to 1 indicates that the SPTI SEI message cancels the persistence of any previous SPTI SEI message in the output order that applies to the current layer. spti_cancel_flag equal to 0 indicates that the timing information from the source image follows.
[0322] The spti_persistence_flag specifies the persistence of the SPTI SEI message to the current layer.
[0323] The spti_persistence_flag equal to 0 specifies that the SPTI SEI message applies only to the current decoded image.
[0324] The spti_persistence_flag set to 1 specifies that the SPTI SEI message applies to the current decoded image and persists for all subsequent images of the current layer in output order until one or more of the following conditions are true: - A new CLVS of the current layer is initiated. The bit stream ends. An image in the current layer within an AU associated with an SPTI SEI message is emitted after the current image in the output order.
[0325] The spti_source_timing_equals_output_timing_flag equal to 1 indicates that the Petition 870250085523, dated 09 / 22 / 2025, pp. 100 / 151 94 / 124 timing of the source images is the same as the timing of the corresponding decoded output images. spti_source_timing_equals_output_timing_flag equal to 0 indicates that the timing of the source images may not be the same as the timing of the corresponding decoded output images.
[0326] When spti_source_timing_equals_output_timing_flag is equal to 1 and an image timing SEI message is present for the current image, the source image timing can be determined from the information transmitted in the image timing SEI message.
[0327] spti_source_type_present_flag equal to 1 indicates that the spti_source_type syntax element is present in the SEI message. spti_source_type_present_flag equal to 0 indicates that the spti_source_type syntax element is not present in the SEI message.
[0328] The spti_source_type indicates the time relationship between the source images and the corresponding decoded output images, as specified in Table 32, [Table 32] BitMask Interpretation 0x01 Slow motion: the absolute value of the time distance between consecutive source images is likely less than the time distance between corresponding decoded output images. 0x02 Accelerated motion: the absolute value of the time distance between consecutive source images is likely greater than the time distance between corresponding decoded output images. 0x04 High-speed images: the absolute value of the time distance between consecutive source images is likely less than 1 / 120 seconds. 0x08 Time-lapse images: the time distance between consecutive source images is likely greater than 1.001 / 24 seconds. 0x10 Temporal reversal: the absolute value of the time distance between consecutive source images is indicated as negative (i.e., decoded images are emitted in reverse temporal order relative to the time of the corresponding source images). Petition 870250085523, dated 09 / 22 / 2025, pp. 101 / 151 95 / 124 0x20 Still image / frozen frame: the time distance between source images is likely 0 (i.e., two or more decoded images likely represent the same source image). 0x40 Sporadic or event-triggered: the time distance between source images is likely not constant.
[0329] where (spti_source_type & bitMask) different from 0 indicates that the timing relationship has the interpretation associated with the bitMask value in Table 32. When spti_source_type is greater than 0 and (spti_source_type & bitMask) is equal to 0, the interpretation associated with the bitMask value is not applicable to the SPTI SEI message. When spti_source_type is equal to 0, the timing relationship can be specified by the application.
[0330] The value of spti_source_type must be in the range of 0 to 127, inclusive, in bitstreams conforming to this edition of this document. Values from 128 to 255, inclusive, for spti_source_type are reserved for future use by ITU-T | ISO / IEC and must not be present in bitstreams conforming to this edition of this document. Decoders conforming to this document must ignore SEI messages from SPTI with spti_source_type in the range of 128 to 255, inclusive.
[0331] The value of ( spti_source_type & 0x04 ) and ( spti_source_type & 0x08 ) must be zero (i.e., spti_source_type must not simultaneously indicate high-speed images and time-lapse images).
[0332] spti_time_scale specifies the number of time units that pass in one second. The value of spti_time_scale must not be equal to 0. For example, a time coordinate system that measures time using a 27 MHz clock has a spti_time_scale of 27,000,000.
[0333] spti_num_units_in_elemental_interval specifies the number of clock time units operating at the spti_time_scale Hz frequency that corresponds to the indicated elementary image source interval of images. Petition 870250085523, dated 09 / 22 / 2025, pp. 102 / 151 96 / 124 consecutive entries in order of departure from CLVS.
[0334] The indicated elementary source image interval, also denoted by the variable ElementalSourcePictureInterval, in units of seconds, is equal to the quotient of spti_num_units_in_elemental_interval divided by spti_time_scale. For example, to represent an elementary source image interval equal to 0.04 seconds, spti_time_scale could be equal to 27,000,000 and spti_num_units_in_elemental_interval could be equal to 1,080,000.
[0335] spti_max_sublayers_minus_1 plus 1 specifies the maximum number of temporal sublayers for which the picture interval scale factor (spti_sublayer_interval_scale_factor[i]) and synthesized flag (spti_sublayer_synthesized_picture_flag[i]) information is flagged. When spti_max_sublayers_minus_1 is not present, it is inferred to be equal to TemporalId.
[0336] spti_sublayer_interval_scale_factor[ i ], when present, specifies a scale factor used to determine the interval of the source image from consecutive corresponding images in the output order in the CLVS with TemporalId less than or equal to i. The value 0 can be used to indicate that the source image corresponding to the current decoded output image is identical to the source image corresponding to the previous decoded output image.
[0337] The indicated source image interval associated with output images with TemporalId less than or equal to ai, denoted by the variable SourcePictureInterval[i], in units of seconds, is derived as follows: [Table 33] SourcePicturelinterval[ i ] = ElementalSourcePictureInterval * spti_sublayer_interval_scale_factor[ i ] * (1 - 2 * temporalReversalFIag)
[0338] The temporalReversalFlag variable is equal to ( spti_source_type & 0x10 )? 1 : 0.
[0339] spti_sublayer_synthesized_picture_flag[ i ], when present, equal to 1, Petition 870250085523, dated 09 / 22 / 2025, pp. 103 / 151 97 / 124 indicates that the decoded output images belonging to the i-th temporal sublayer are synthesized and do not correspond to the original unmodified source images. spti_sublayer_synthesized_picture_flag[i] equal to 0 does not provide such an indication. When absent, the value of spti_sublayer_synthesized_picture_flag[i] is inferred to be equal to 0.
[0340] When the TemporalId of an SPTI SEI message is greater than 0, and the SPTI SEI message persists for one or more images with a smaller TemporalId, an encoder may repeat the information from the SPTI SEI message by including it in one or more SPTI SEI messages with a smaller TemporalId, to avoid information loss when images in temporal sublayer(s) are lost or removed.
[0341] SEI message from the SEI processing order (SEI message from the SPO)
[0342] Table 34 shows an example of the SEI message syntax for the SEI processing order. [Table 34] Petition 870250085523, dated 09 / 22 / 2025, pp. 104 / 151 98 / 124 sei_processing_order( payloadSize) { Descriptor poid u(8) ponumscimcssagcsminus2 u(8) for( i = 0, i < po_num_sei_messages_mmus2 + 2; i++ ) { po sei wrapping flagf i ] u(l) po sci importancc flagf i ] u(l) po sci payload typc[ i ] u(13) po_sei_prefix_flag[ i ] u(l) posei__prefix_flag[ i ] u(8)} for( i = 0; i < po_num_sei_messages_minus2 + 2; i++ ) if( po_sei_prefix_flag[ i ]) { po num bits injrefix indication minuslf i ] u(8) for( j = 0; j <= po_num_bits_in_prefíx_indication_minusl[ i ]; j++ ) po_sei_prefix_data_bit[ i ][ j ] u(l) while( !byte_aligned()) pobytcalignmcntbitcqualtoonc / * equal to 1 * / f(l)}}
[0343] The SEI message of the SEI processing order carries information that indicates the preferred processing order, as determined by the encoder (i.e., the content producer), for a group of SEI message types that may be present in a CVS.
[0344] The semantics of the SEI message for SEI processing order utilizes the concept of SEI message types. SEI messages that have different payloadType values are considered different SEI message types. Furthermore, different SEI messages that have the same payloadType value but are differentiated by syntax element values in the SEI payload are considered different SEI message types. This differentiation by syntax element values in the SEI payload should be performed by comparing values sent using the syntax elements po_sei_prefix_data_bit[i][j] (when present) or values sent as SEI messages within a SEI message. Petition 870250085523, dated 09 / 22 / 2025, pp. 105 / 151 99 / 124 nested in processing order (when present). For example, SEI messages of neural network post-filter features (NNPFC) can be differentiated by having different nnpfc_id values.
[0345] When a SEI processing order message with a specific po_id value is present in any access unit of a CVS, a SEI processing order message with that specific po_id value must be present in the first CVS access unit in the decoding order. The number of SEI messages and the payloadType codes of the SEI messages indicated in each SEI processing order message with the same po_id value persist in the decoding order from the current access unit to the end of the CVS in the output order.
[0346] The SEI message of SEI processing order may contain one or more SEI prefix indications of a specific payloadType. When present, each SEI prefix indication is a bit sequence that follows the SEI payload syntax of that payloadType value and contains several complete syntax elements, beginning with the first syntax element in the SEI payload. These SEI prefix indications must provide sufficient information to determine the specific processing order for SEI message types with the same payloadType value but with a different preferred processing order.
[0347] The po_id contains an identification number to identify the SEI message of the SEI processing order.
[0348] Each SEI message in the SEI message group for which preferred processing order information is provided in an SEI processing order message is identified by the syntax elements po_sei_payload_type[i], po_sei_wrapping_flag[i], po_sei_processing_order[i], and, when present, po_num_bits_in_prefix_indication_minus1[i] and po_prefix_data_bit[eu][j]. Petition 870250085523, dated 09 / 22 / 2025, pp. 106 / 151 100 / 124
[0349] For each image, there may be multiple persistent or activated SEI messages belonging to one or more SEI message groups.
[0350] SEI message groups can be alternatives to each other, meaning that at most one group is chosen to be applied, or they can be complementary, meaning that more than one group is chosen and applied separately, with each group generating an output.
[0351] The po_num_sei_messages_minus2 plus 2 indicates the number of SEI message types for which the preferred processing order is indicated in the SEI processing order message.
[0352] The po_sei_wrapping_flag[i] equal to 1 specifies that one or more SEI messages with processing order nesting and both of the following constraints must be present: - pon_target_po_id[ j ] with any value of j is equal to po_id. There is a k-th loop entry in the SEI message of SEI processing order nesting such that the payloadType of the k-th nested SEI message is equal to po_sei_payload_type[i] and pon_processing_order[k] is equal to po_sei_processing_order[i].
[0353] When po_sei_wrapping_flag[ i ] equals 0, a SEI message with payloadType equal to po_sei_payload_type[ i ] (and, when po_sei_prefix_flag[ i ] equals 1, prefix data that corresponds to the values of po_sei_prefix_data_bit[ i ][ j ]) must be present outside the SEI message of the processing order nesting. However, if po_sei_wrapping_flag[i] is equal to 0 and no SEI message is present with payloadType equal to po_sei_payload_type[i], or po_sei_wrapping_flag[i] is equal to 0 and po_sei_prefix_flag[i] is equal to 1 and no SEI message is present with payloadType equal to po_sei_payload_type[i] that has prefix data matching the values of po_sei_prefix_data_bit[i][j], the following applies: Petition 870250085523, dated 09 / 22 / 2025, pp. 107 / 151 101 / 124 - If po_sei_importance_flag[ i ] is equal to 1, the decoder should ignore all SEI messages in the SEI processing order. Otherwise, the decoder should ignore all data associated with the value of the loop variable i.
[0354] The po_sei_wrapping_flag[i] set to 1 allows SEI messages to be carried within the nesting SEI message of the processing order to prevent such SEI messages from being misinterpreted by decoders that do not process the SEI message of the SEI processing order. Therefore, po_sei_wrapping_flag[i] set to 1 should be used when po_sei_wrapping_flag[i] set to 0 may lead to the production of undesirable results by such decoders.
[0355] The po_sei_importance_flag[ i ] indicates the degree of importance assigned by the encoder to the SEI message type with index i.
[0356] If the decoding system cannot interpret or does not support the functionality indicated by any indicated SEI message that has po_sei_importance_flag[i] equal to 1, it must ignore the entire SEI message of SEI processing order.
[0357] The po_sei_payload_type[ i ] specifies the payloadType value of the i-th SEI message type.
[0358] The po_sei_prefix_flag[i] set to 1 specifies that po_num_bits_in_prefix_indication_minus1[i] and some syntax elements po_sei_prefix_data_bit[i][j] are present. A po_sei_prefix_flag[i] set to 0 specifies that these syntax elements are not present.
[0359] SeiProcessingOrderSeiList is defined to consist of the payloadType values 3, 4, 5, 19, 137, 142, 144, 147, 148, 149, 165, 177, 210, and 211. The value of po_sei_payload_type[i] for each i in the range from 0 to po_num_sei_messages_minus2 + 1, inclusive, must be equal to a value in Petition 870250085523, dated 09 / 22 / 2025, pp. 108 / 151 102 / 124 SeiProcessingOrderSeiList.
[0360] The po_sei_processing_order[i] indicates the preferred processing order of the i-th SEI message type for which preferred processing order information is provided in the SEI processing order message. For any two different integer values of men, po_sei_processing_order[m] less than po_sei_processing_order[n] indicates that the SEI message type associated with index m should be processed before the SEI message type associated with index n, and po_sei_processing_order[m] equal to po_sei_processing_order[n] indicates that there is no preferred processing order among the SEI message types associated with the men indices (for example, they may indicate different properties that are applicable at that stage, or alternative processes that may be applied, or one may indicate a property and the other may indicate a process).
[0361] For i greater than 0, po_sei_processing_order[i] must be greater than or equal to po_sei_processing_order[i - 1].
[0362] The po_num_bits_in_prefix_indication_minus1[i] and po_sei_prefix_data_bit[i][j] syntax elements, when present, have the same semantics as the num_bits_in_prefix_indication_minus1[i] and sei_prefix_data_bit[i][j] syntax elements of the SEI prefix indication message, with prefix_sei_payload_type replaced by po_sei_payload_type[i].
[0363] When more than one SEI processing order message with a specific po_id value is present in a CVS, the values of po_num_sei_messages_minus2 and, for each i value, the values of po_sei_wrapping_flag[i], po_sei_prefix_flag[i], po_sei_importance_flag[i], po_sei_payload_type[i], po_sei_processing_order[i] must be the same as in the other SEI processing order messages in the CVS with the same po_id value. Petition 870250085523, dated 09 / 22 / 2025, pp. 109 / 151 103 / 124
[0364] The po_byte_alignment_bit_equal_to_one must be equal to 1.
[0365] SEI message for nesting of processing order (PON SEI message)
[0366] Table 35 shows an example of the syntax of the nested SEI processing order message. [Table 35] processing_order_nesting( payloadSize) { Descriptor pon_num_po_ids_minus 1 u(8) for( i = 0; i <= pon_num_po_ids_minusl; i++) pon_target_po_id[ i ] u(8) ponnumseisminus 1 u(8) for( i = 0; i <= pon num six minusl; i++) { pon processing orderf i ] u(8) sei_message()}
[0367] The SEI message for nesting processing orders includes one or more SEI messages that must be applied only as parts of the processing chain identified by an associated SEI processing order message and must not be applied in a way that contradicts the processing chain identified by the associated SEI processing order message.
[0368] The SEI messages contained within the processing order nesting SEI message are also called the processing order nested SEI messages.
[0369] The persistence of all SEI messages included in the same SEI message nesting the processing order must be the same.
[0370] The pon_num_po_ids_minus1 plus 1 specifies the number of Petition 870250085523, dated 09 / 22 / 2025, pp. 110 / 151 104 / 124 SEI messages from the SEI processing order associated with this SEI message nesting the processing order.
[0371] The pon_target_po_id[ i ] indicates the po_id of the i-th SEI message in the associated SEI processing order.
[0372] The pon_num_seis_minus1 plus 1 specifies the number of nested SEI messages in the processing order that are included in this SEI message.
[0373] The pon_processing_order[i] specifies the position of the i-th nested SEI message of the processing order within the processing order defined by the associated SEI processing order message. When i is greater than 0, pon_processing_order[i] must be greater than or equal to pon_processing_order[i - 1].
[0374] For each SEI message of associated SEI processing order, there must be at least one value of i in the range from 0 to pon_num_seis_minus1, inclusive, in the nesting SEI message of the processing order for which the associated SEI message of SEI processing order has some entry k for which all of the following are true: - po_sei_processing_order[ k ] is equal to pon_processing_order[ i ] - po_sei_payload_type[ k ] is equal to the payloadType value of the i-th nested SEI message in the processing order. - When po_sei_prefix_flag[ k ] equals 1, po_sei_prefix_data_bit[ k ][ j ] for j in the range from 0 to po_num_bits_in_prefix_indication_minus1[ k ], inclusive, contains the same content as po_num_bits_in_prefix_indication_minus1[ k ] plus 1 initial bit of the payload of the SEI message of the i-th nested SEI message in the processing order.
[0375] The i-th nested SEI message of the processing order must be applied as the k-th loop entry of the SEI message of the associated SEI processing order. Petition 870250085523, dated 09 / 22 / 2025, pp. 111 / 151 105 / 124 Description of the problem(s)
[0376] It is stated that the grouping mechanism must support at least the following grouping types: cascade grouping, alternate grouping, and parallel grouping. For the first two grouping types, in our opinion, the mechanism described in JVET-AF0061 works, but it lacks support for allowing the SEI processing order message to describe parallel grouping.
[0377] Parallel grouping is a grouping in which SEI messages in the grouping should not be invoked / executed in sequential / cascading order; instead, they should be invoked in parallel. When an SEI message is invoked in cascading order, the output of the first SEI is used as input for the invocation of the second SEI message. On the other hand, when two SEIs are invoked in parallel order, both use the same input and can have independent outputs. Modalities
[0378] The following inventions provide solutions to the problem described above.
[0379] Each item of invention may be applicable individually or in combinations.
[0380] Add a flag to the SEI message in the SEI processing order to specify whether SEI messages with the same processing order value are preferred to be invoked in parallel or if there is no preference for them. Mode 1
[0381] This embodiment provides a description of the appearance of the invention in section 4 above. Table 36 below may be suggested. [Table 36] Petition 870250085523, dated 09 / 22 / 2025, pp. 112 / 151 106 / 124 sei processing order( payloadSize ) { Descriptor poid u(8) po num sei messagesminus2 u(8) po parallel processing enabled flag u(l) for( i = 0, i < po_num_sei_messages_minus2 + 2; i++) { po sei wrapping flag[ i ] u(l) po_sei_importance_flag[ i ] u(l) p° sei payload type[ i ] u(13) po_sei_prefix_flag[ i ] u(l) po sei processing ordcrf i ] u(8)} for( i = 0; i < ponumseimessages_minus2 + 2; i++) if( po_sei_prefix_flag[ i ] ) { ponumbitsinjrcfixindicationminus 1[ i ] u(8) for( j = 0; j <= po_num_bits_in_prefix_indication_minusl [ i ]; j++ ) po sei_prefix data bit[ i ][ j ] u(l) while( !byte_aligned()) po_byte_alignment_bit_equal_to_one / * equal to 1 * / f(l)}}
[0382] The po_num_sei_messages_minus2 plus 2 indicates the number of SEI message types for which the preferred processing order is indicated in the SEI message of the SEI processing order.
[0383] The po_parallel_processing_enabled_flag set to 1 specifies that SEI messages included in this SEI message of the SEI processing order that have the same processing order are preferred to be invoked in parallel. A po_parallel_processing_enabled_flag set to 0 specifies that there is no preference for processing order for SEI messages included in this SEI message of the SEI processing order that have the same processing order.
[0384] FIG. 6 is a flowchart that illustrates a method for decoding image information according to an embodiment of the present disclosure. Petition 870250085523, dated 09 / 22 / 2025, pp. 113 / 151 107 / 124
[0385] The terms or names (e.g., syntax element names, variable names, or the like) shown in FIG. 6 are merely illustrative, and the technical capabilities of this disclosure are not limited to the terms or similar shown in FIG. 6. For example, the image information shown in FIG. 6 may include various information according to the embodiments described in this disclosure and may include information shown in at least one of the tables described above.
[0386] An S600 decoding method may include the following operations. The following operations are not essential elements of the decoding method according to the modality, and at least some of the following operations may be omitted or other operations may be added. In addition, the following operations may be performed by a decoding device that includes a memory and a processor electrically connected to the memory, and may be performed, for example, by the processor.
[0387] The decoding device can acquire SEI processing order information (S610).
[0388] For example, the decoding device processor can acquire image information, including SEI processing order information. The image information acquired by the processor may include SEI processing order information.
[0389] SEI processing order information may include information about a processing order for a group of SEI message types that may be present in a CVS or CLVS.
[0390] SEI processing order information can have various formats and be referred to by various names. For example, SEI processing order information can be a syntax element or a syntax structure that includes one or more syntax elements. Furthermore, processing order information Petition 870250085523, dated 09 / 22 / 2025, pp. 114 / 151 108 / 124 SEI processing can be an RBSP that includes one or more syntax elements or one or more syntax structures. For example, SEI processing order information can be referred to as sei_processing_order() or similar, but is not limited to that.
[0391] SEI processing order information may include encapsulation information, payload type information, prefix information, information about present prefixes, processing order information and / or parallel processing enablement information.
[0392] Encapsulation information can indicate whether the processing order nesting information includes information indicating a processing order for the SEI message types corresponding to the encapsulation information. For example, a value of 1 for the encapsulation information can specify that the processing order nesting information includes information indicating the processing order for the SEI message types corresponding to the encapsulation information. Additionally, a value of 0 for the encapsulation information can specify that the processing order nesting information does not include information indicating the processing order for the SEI message types corresponding to the encapsulation information.However, this disclosure is not limited to that, and alternatively, the meaning of encapsulation information equal to 1 and the meaning of encapsulation information equal to 0 can be interchanged.
[0393] Encapsulation information can take many forms and be referred to by various names. For example, encapsulation information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, encapsulation information, which is a syntax element, can be a 1-bit encapsulation flag or a Petition 870250085523, dated 09 / 22 / 2025, pp. 115 / 151 109 / 124 indicates a 2-bit or more encapsulation. The encapsulation information, which is a syntax element, may be referred to as po_sei_wrapping_flag[i] or similar, but is not limited to that.
[0394] Payload type information can indicate a SEI message type. For example, payload type information can specify a payloadType value for an SEI message.
[0395] Payload type information can take many forms and be referred to by various names. For example, payload type information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, payload type information can be referred to as po_sei_payload_type[i] or similar, but is not limited to that.
[0396] Prefix information may include one or more SEI prefix indications for a corresponding SEI message type. Each SEI prefix indication is a bit sequence that follows the SEI payload syntax of a payloadType value and contains several complete syntax elements, beginning with the first syntax element in the SEI payload.
[0397] Prefix information may include bit count information for a prefix indication and prefix data bits. Bit count information for a prefix indication and prefix data bits may have various formats and may be referred to by various names. For example, each of the bit count information for a prefix indication and prefix data bits may be a syntax element or a syntax structure that includes one or more syntax elements. For example, bit count information for a prefix indication may be referred to as po_num_bits_in_prefix_indication_minus1[i], and prefix data bits may be referred to as po_sei_prefix_data_bit[i], but the expressions are not limited to this.
[0398] The prefix information present may indicate whether the information Petition 870250085523, dated 09 / 22 / 2025, pp. 116 / 151 The prefix 110 / 124 corresponding to a corresponding SEI message type is present. In other words, the present prefix information can indicate whether the bit count information of a prefix indication and the prefix data bits corresponding to a corresponding SEI message type are present. For example, a value equal to 1 for the present prefix information can specify that the prefix information corresponding to the corresponding SEI message type is present. Furthermore, a value equal to 0 for the present prefix information can specify that the prefix information corresponding to the corresponding SEI message type is not present. However, this disclosure is not limited to this, and alternatively, the meaning of present prefix information equal to 1 and the meaning of present prefix information equal to 0 can be interchanged.
[0399] Present prefix information can have various formats and be referred to by various names. For example, present prefix information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, present prefix information, which is a syntax element, can be a 1-bit prefix presence flag or a 2-bit or more-bit prefix presence flag. Present prefix information, which is a syntax element, can be referred to as po_sei_prefix_flag[i] or similar, but is not limited to this.
[0400] Processing order information can indicate a processing turn for a corresponding SEI message type. With a lower processing order information value for a specific type, that specific SEI message type can be processed earlier. In other words, when a processing order information value for a first type is lower than a processing order information value for a second type, a first-type SEI message can be processed before a second-type. Petition 870250085523, dated 09 / 22 / 2025, pp. 117 / 151 111 / 124 message type SEI.
[0401] Processing order information can have various formats and be referred to by various names. For example, processing order information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, processing order information can be referred to as po_sei_processing_order[i] or similar, but is not limited to this.
[0402] Parallel processing enablement information can indicate whether at least two SEI messages with the same processing turn are invoked in parallel. For example, a value of 1 for the parallel processing enablement information can specify that at least two SEI messages with the same processing turn are invoked in parallel. Additionally, a value of 0 for the parallel processing enablement information can specify that SEI messages are not invoked in parallel. However, this disclosure is not limited to this, and alternatively, the meaning of a value of 1 for the parallel processing enablement information and the meaning of a value of 0 for the parallel processing enablement information can be reversed.
[0403] Here, the SEI processing order can be determined according to the SEI message type group. SEI messages with different payloadType values are considered different SEI message types. Furthermore, different SEI messages that have the same payloadType value but are differentiated by syntax element values in the SEI payloads are considered different SEI message types. This differentiation by syntax element values in the SEI payloads can be performed based on prefix information and / or nesting information of the processing order. Petition 870250085523, dated 09 / 22 / 2025, pp. 118 / 151 112 / 124
[0404] Therefore, parallel processing enablement information can indicate whether the same type of SEI messages is invoked in parallel. In this case, SEI messages that have the same payload type, for which the same prefix information is present, may be the same type of SEI messages. Furthermore, SEI messages that have the same payload type, for which no prefix information is present, may also be the same type of SEI message.
[0405] Parallel processing enablement information can have various formats and be referred to by various names. For example, parallel processing enablement information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, parallel processing enablement information, which is a syntax element, can include a 1-bit parallel processing enablement flag or a 2-bit or more-bit parallel processing enablement flag. For example, parallel processing enablement information, which is a syntax element, can be referred to as po_prallel_processing_enabled_flag[i] or similar, but is not limited to this.
[0406] The image information acquired by the processor may also include nesting information from the processing order.
[0407] Processing order nesting information may include information about the processing order for SEI message types and may be associated with specific SEI processing order information. In addition, processing order nesting information may apply only to a portion of a processing chain that is identified by the associated SEI processing order information.
[0408] Processing order nesting information can have various formats and be referred to by various names. For example, the information of Petition 870250085523, dated 09 / 22 / 2025, pp. 119 / 151 113 / 124 Processing order nesting can be a syntax element or a syntax structure that includes one or more syntax elements. Additionally, processing order nesting information can be an RBSP that includes one or more syntax elements or one or more syntax structures. For example, processing order nesting information can be referred to as processing_order_nesting() or similar, but is not limited to this.
[0409] Processing order nesting information may include nesting order information.
[0410] Nesting order information can specify a position of an SEI message in a processing order defined in the associated processing order information.
[0411] Nesting order information can have various formats and be referred to by various names. For example, nesting order information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, nesting order information can be referred to as pon_processing_order[i] or similar, but is not limited to that.
[0412] As described above, parallel processing enablement information can indicate whether the same type of SEI messages is invoked in parallel. In this case, SEI messages that have the same payload type and are not included in the processing order nesting information for which the same prefix information is present may be the same type of SEI messages. Additionally, SEI messages that have the same payload type and are not included in the processing order nesting information for which no prefix information is present may also be the same type of SEI messages.
[0413] The decoding device can determine an order of Petition 870250085523, dated 09 / 22 / 2025, pp. 120 / 151 114 / 124 processing for SEI messages (S620).
[0414] For example, the decoding device processor can determine a processing order for SEI messages based on the SEI processing order information. The processor can determine a processing order for the group of SEI message types based on the processing order information included in the SEI processing order information. Furthermore, the processor can process SEI messages in the determined processing order.
[0415] As described above, SEI messages with the same processing shift can be processed in parallel, and parallel processing enablement information can be provided to allow SEI messages to be processed in parallel. When SEI messages with the same processing shift are processed in parallel, SEI messages can be processed efficiently and the delay in processing SEI messages is reduced, which is a technical effect.
[0416] FIG. 7 is a flowchart that illustrates a method of encoding image information according to an embodiment of the present disclosure.
[0417] The terms or names (e.g., syntax element names, variable names, or the like) shown in FIG. 7 are merely illustrative, and the technical capabilities of this disclosure are not limited to the terms or similar shown in FIG. 7. For example, the image information shown in FIG. 7 may include various information according to the embodiments described in this disclosure and may include information shown in at least one of the tables described above.
[0418] An S700 encoding method may include the following operations. The following operations are not essential elements of the encoding method according to the modality, and at least some of the following operations may Petition 870250085523, dated 09 / 22 / 2025, pp. 121 / 151 115 / 124 can be omitted or other operations can be added. Furthermore, the following operations can be performed by an encoding device that includes a memory and a processor electrically connected to the memory, and can be performed, for example, by the processor.
[0419] The encoding device can determine a processing order for SEI messages (S710).
[0420] For example, the encoding device processor can determine a processing order for a group of SEI message types.
[0421] The processor can generate SEI processing order information (S720).
[0422] For example, the encoding device processor can generate SEI processing order information based on the processing order for the SEI message type group.
[0423] SEI processing order information may include information about a processing order for the group of SEI message types that may be present in a CVS or CLVS.
[0424] SEI processing order information can have various formats and be referred to by various names. For example, SEI processing order information can be a syntax element or a syntax structure that includes one or more syntax elements. Additionally, SEI processing order information can be an RBSP that includes one or more syntax elements or one or more syntax structures. For example, SEI processing order information can be referred to as sei_processing_order() or similar, but is not limited to this.
[0425] SEI processing order information may include encapsulation information, payload type information, prefix information, information about the prefix present, order information. Petition 870250085523, dated 09 / 22 / 2025, pp. 122 / 151 116 / 124 processing and / or information regarding parallel processing enablement.
[0426] Encapsulation information can indicate whether the processing order nesting information includes information indicating a processing order for the SEI message types corresponding to the encapsulation information. For example, a value of 1 for the encapsulation information can specify that the processing order nesting information includes information indicating the processing order for the SEI message types corresponding to the encapsulation information. Additionally, a value of 0 for the encapsulation information can specify that the processing order nesting information does not include information indicating the processing order for the SEI message types corresponding to the encapsulation information.However, this disclosure is not limited to that, and alternatively, the meaning of encapsulation information equal to 1 and the meaning of encapsulation information equal to 0 can be interchanged.
[0427] Wrapping information can take many forms and be referred to by various names. For example, wrapping information can be a syntax element or a syntax structure that includes one or more syntax elements. As an example, wrapping information, which is a syntax element, can be a 1-bit wrapping flag or a 2-bit or more-bit wrapping flag. Wrapping information, which is a syntax element, can be referred to as po_sei_wrapping_flag[i] or similar, but is not limited to these.
[0428] Payload type information can indicate a SEI message type. For example, payload type information can specify a payloadType value for an SEI message.
[0429] Information about the type of payload can have various formats and Petition 870250085523, dated 09 / 22 / 2025, pp. 123 / 151 117 / 124 can be referred to by various names. For example, payload type information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, payload type information can be referred to as po_sei_payload_type[i] or similar, but is not limited to that.
[0430] Prefix information may include one or more SEI prefix indications for a corresponding SEI message type. Each SEI prefix indication is a bit sequence that follows the SEI payload syntax of a payloadType value and contains several complete syntax elements, beginning with the first syntax element in the SEI payload.
[0431] Prefix information may include bit count information for a prefix indication and prefix data bits. Bit count information for a prefix indication and prefix data bits may have various formats and may be referred to by various names. For example, each of the bit count information for a prefix indication and prefix data bits may be a syntax element or a syntax structure that includes one or more syntax elements. As an example, bit count information for a prefix indication may be referred to as po_num_bits_in_prefix_indication_minus1[i], and prefix data bits may be referred to as po_sei_prefix_data_bit[i], but the expressions are not limited to this.
[0432] The prefix information present can indicate whether the prefix information corresponding to a corresponding SEI message type is present. In other words, the prefix information present can indicate whether the bit count information of a prefix indication and the prefix data bits corresponding to a corresponding SEI message type are present. For example, a value of 1 for the prefix information present can specify that the prefix information corresponding to the corresponding SEI message type is present. Furthermore, a value of 0 for Petition 870250085523, dated 09 / 22 / 2025, pp. 124 / 151 118 / 124 The prefix information present may specify that the prefix information corresponding to the corresponding SEI message type is not present. However, this disclosure is not limited to this, and alternatively, the meaning of prefix information present equal to 1 and the meaning of prefix information present equal to 0 may be interchangeable.
[0433] Present prefix information can have various formats and be referred to by various names. For example, present prefix information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, present prefix information, which is a syntax element, can be a 1-bit prefix presence flag or a 2-bit or more-bit prefix presence flag. Present prefix information, which is a syntax element, can be referred to as po_sei_prefix_flag[i] or similar, but is not limited to this.
[0434] Processing order information can indicate a processing turn for a corresponding SEI message type. With a lower processing order information value for a specific type, that specific SEI message type can be processed earlier. In other words, when a processing order information value for a first type is lower than a processing order information value for a second type, a first type of SEI message can be processed before a second type of SEI message.
[0435] Processing order information can have various formats and be referred to by various names. For example, processing order information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, processing order information can be referred to as po_sei_processing_order[i] or similar, but is not limited to this. Petition 870250085523, dated 09 / 22 / 2025, pages 125 / 151 119 / 124
[0436] Parallel processing enablement information can indicate whether at least two SEI messages with the same processing turn are invoked in parallel. For example, a value of 1 for parallel processing enablement information can specify that at least two SEI messages with the same processing turn are invoked in parallel. Additionally, a value of 0 for parallel processing enablement information can specify that SEI messages are not invoked in parallel. However, this disclosure is not limited to this, and alternatively, the meaning of a value of 1 for parallel processing enablement information and the meaning of a value of 0 for parallel processing enablement information can be reversed.
[0437] Here, the SEI processing order can be determined according to the SEI message type group. SEI messages with different payloadType values are considered different SEI message types. Furthermore, different SEI messages that have the same payloadType value but are differentiated by syntax element values in the SEI payloads are considered different SEI message types. This differentiation by syntax element values in the SEI payloads can be performed based on prefix information and / or nesting information of the processing order.
[0438] Therefore, parallel processing enablement information can indicate whether the same type of SEI messages is invoked in parallel. In this case, SEI messages that have the same payload type, for which the same prefix information is present, may be the same SEI message type. Furthermore, SEI messages that have the same payload type, for which no prefix information is present, may also be the same SEI message type. Petition 870250085523, dated 09 / 22 / 2025, pp. 126 / 151 120 / 124
[0439] Parallel processing enablement information can have various formats and be referred to by various names. For example, parallel processing enablement information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, parallel processing enablement information, which is a syntax element, can include a 1-bit parallel processing enablement flag or a 2-bit or more-bit parallel processing enablement flag. For example, parallel processing enablement information, which is a syntax element, can be referred to as po_prallel_processing_enabled_flag[i] or similar, but is not limited to this.
[0440] The encoder device processor can also generate processing order nesting information based on the processing order for the SEI message type group.
[0441] Processing order nesting information may include information about the processing order for SEI message types and may be associated with specific SEI processing order information. In addition, processing order nesting information may apply only to a portion of a processing chain that is identified by the associated SEI processing order information.
[0442] Processing order nesting information can have various formats and be referred to by various names. For example, processing order nesting information can be a syntax element or a syntax structure that includes one or more syntax elements. Additionally, processing order nesting information can be an RBSP that includes one or more syntax elements or one or more syntax structures. For example, processing order nesting information can be referred to as processing_order_nesting() or similar, but is not limited to this. Petition 870250085523, dated 09 / 22 / 2025, pp. 127 / 151 121 / 124
[0443] Processing order nesting information may include nesting order information.
[0444] Nesting order information can specify a position of an SEI message in a processing order defined in the associated processing order information.
[0445] Nesting order information can have various formats and be referred to by various names. For example, nesting order information can be a syntax element or a syntax structure that includes one or more syntax elements. For example, nesting order information can be referred to as pon_processing_order[i] or similar, but is not limited to that.
[0446] As described above, parallel processing enablement information can indicate whether the same type of SEI messages is invoked in parallel. In this case, SEI messages that have the same payload type and are not included in the processing order nesting information for which the same prefix information is present may be the same type of SEI messages. Additionally, SEI messages that have the same payload type and are not included in the processing order nesting information for which no prefix information is present may also be the same type of SEI messages.
[0447] The encoding device can encode image information, including SEI processing order information (S730).
[0448] As an example, the encoding device processor can encode image information, including SEI processing order information.
[0449] As described above, SEI messages with the same processing shift can be processed in parallel, and enabling information of Petition 870250085523, dated 09 / 22 / 2025, pp. 128 / 151 122 / 124 parallel processing can be provided to allow SEI messages to be processed in parallel. When SEI messages with the same processing turn are processed in parallel, the SEI messages can be processed efficiently and the delay in processing the SEI messages is reduced, which is a technical effect.
[0450] Image information encoded according to the S700 encoding method described above, which includes SEI processing order information, can be stored on a computer-readable storage medium. Image information, including SEI processing order information, can be transmitted via a transmitter and / or a transmission medium.
[0451] FIG. 8 is a diagram that exemplifies a continuous content transmission system to which a modality according to the present disclosure can be applied.
[0452] With reference to Fig. 8, the continuous content transmission system to which the modality(ies) of this document is / are applied may broadly include an encoding server, a continuous transmission server, a network server, a media storage device, a user device, and a multimedia input device.
[0453] The encoding server compresses the content entered by multimedia input devices, such as smartphones, cameras, camcorders, etc., into digital data to generate a bitstream and transmit the bitstream to the streaming server. As another example, when multimedia input devices, such as smartphones, cameras, camcorders, etc., directly generate a bitstream, the encoding server can be omitted.
[0454] The bitstream can be generated by an encoding method or a bitstream generation method to which the modality(ies) of this document Petition 870250085523, dated 09 / 22 / 2025, pp. 129 / 151 123 / 124 is / are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.
[0455] The streaming server transmits multimedia data to the user's device based on the user's request via the network server, and the network server serves as a means to inform the user about a service. When the user requests a desired service from the network server, the network server delivers it to a streaming server, and the streaming server transmits the multimedia data to the user. In this case, the streaming content system may include a separate control server. In this case, the control server serves to control a command / response between devices in the streaming content system.
[0456] The streaming server can receive content from a media storage server and / or an encoding server. For example, when content is received from the encoding server, it can be received in real time. In this case, to provide a continuous streaming service without interruptions, the streaming server can store the bitstream for a predetermined time.
[0457] Examples of user devices may include a mobile phone, a smartphone, a laptop computer, a digital transmission terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays), digital TVs, desktop computers, digital signage, and the like.
[0458] Each server in the continuous content streaming system can be operated as a distributed server, in which case the data received from each server can be distributed. Petition 870250085523, dated 09 / 22 / 2025, pp. 130 / 151 124 / 124
[0459] The scope of this disclosure includes software or machine-executable instructions (for example, an operating system, an application, firmware, a program, etc.) that cause operations according to various embodiments of this disclosure to be performed on a device or computer, and a non-transient computer-readable medium having such software or instructions stored thereon and being executable on the device or computer. [INDUSTRIAL APPLICABILITY]
[0460] The modality according to this disclosure can be used to encode / decode images. Petition 870250085523, dated 09 / 22 / 2025, pp. 131 / 151
Claims
1 / 4 CLAIMS 1. A method for decoding image information, the method CHARACTERIZED in that it comprises: obtaining image information including processing order information from supplementary enhancement information (SEI), which indicates a processing order for a group of SEI message types;and determine the processing order based on SEI processing order information, wherein SEI processing order information includes payload type information indicating the type of an SEI message, prefix present information indicating whether or not the SEI message prefix information is present, and processing order information indicating the processing order for the SEI message type, and wherein SEI processing order information additionally includes parallel processing enablement information indicating whether or not at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel.
2. Method, according to claim 1, CHARACTERIZED in that a value of 1 in the parallel processing enablement information indicates that at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel, and a value of 0 in the parallel processing enablement information indicates that at least two SEI messages with the same processing order in the SEI processing order information are not invoked in parallel.
3. Method, according to claim 1, CHARACTERIZED by the fact that at least two SEI messages of the same types and for which the same prefix information is present have the same processing order.
4. Method, according to claim 1, CHARACTERIZED in that at least two SEI messages of the same types and for which no prefix information is present have the same processing order.
5. Method, according to claim 1, CHARACTERIZED in that the image information additionally includes nesting information of the processing order, including position information of a specific SEI message within the processing order defined by the SEI processing order information.
6. A method according to claim 5, characterized in that at least two SEI messages of the same types, for which the same prefix information is present and which is not included in the nesting information of the processing order, have the same processing order.
7. A method according to claim 5, characterized in that at least two SEI messages of the same types, for which no prefix information is present and which is not included in the nesting information of the processing order, have the same processing order.
8. Method for encoding image information, the method CHARACTERIZED by the fact that it comprises: determining a processing order for a group of supplemental enhancement information (SEI) message types; generating SEI processing order information based on the processing order; and encoding the image information, including the SEI processing order information, Petition 870250085523, dated 09 / 22 / 2025, p.147 / 151 3 / 4 wherein the SEI processing order information includes payload type information, indicating a type of SEI message, prefix present information indicating whether the SEI message prefix information is present or not, and processing order information, indicating the processing order for the SEI message type, and wherein the SEI processing order information additionally includes parallel processing enablement information, indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
9. A method for storing a bitstream of image information on a non-transient, computer-readable storage medium, the method being characterized by comprising: obtaining the image information including processing order information from supplementary enhancement information (SEI), indicating a processing order for a group of SEI message types;and store data including the bit stream, wherein the SEI processing order information includes payload type information indicating a type of SEI message, prefix present information indicating whether the SEI message prefix information is present or not, and processing order information indicating the processing order for the SEI message type, and wherein the SEI processing order information additionally includes parallel processing enablement information indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not.
10. Method for transmitting a bitstream of image information, the method CHARACTERIZED by the fact that it comprises: Petition 870250085523, dated 09 / 22 / 2025, page.148 / 151 4 / 4 obtain image information, including processing order information of supplementary enhancement information (SEI) indicating a processing order for a group of SEI message types; and transmit data, including the bitstream, wherein the SEI processing order information includes payload type information indicating a type of SEI message, prefix present information indicating whether the SEI message prefix information is present or not, and processing order information indicating the processing order for the SEI message type, and wherein the SEI processing order information additionally includes parallel processing enablement information, indicating whether at least two SEI messages with the same processing order in the SEI processing order information are invoked in parallel or not. Petition 870250085523, dated 09 / 22 / 2025, pp. 149 / 151.