WO2024107026A1 - Nnpfc sei 메시지의 반복을 처리하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 - Google Patents
Nnpfc sei 메시지의 반복을 처리하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 Download PDFInfo
- Publication number
- WO2024107026A1 WO2024107026A1 PCT/KR2023/018628 KR2023018628W WO2024107026A1 WO 2024107026 A1 WO2024107026 A1 WO 2024107026A1 KR 2023018628 W KR2023018628 W KR 2023018628W WO 2024107026 A1 WO2024107026 A1 WO 2024107026A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- nnpfc
- sei message
- filter
- value
- nnpf
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000012545 processing Methods 0.000 title description 14
- 238000013528 artificial neural network Methods 0.000 claims abstract description 67
- 230000000153 supplemental effect Effects 0.000 claims abstract description 4
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 238000012805 post-processing Methods 0.000 description 92
- 239000000523 sample Substances 0.000 description 41
- 238000001914 filtration Methods 0.000 description 33
- 241000023320 Luma <angiosperm> Species 0.000 description 26
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 26
- 238000013139 quantization Methods 0.000 description 23
- 239000011159 matrix material Substances 0.000 description 20
- 230000009466 transformation Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000011664 signaling Effects 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002688 persistence Effects 0.000 description 4
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 239000013074 reference sample Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
Definitions
- This disclosure relates to a video encoding/decoding method, a method for transmitting a bitstream, a recording medium storing the bitstream, and a method for processing repetition of an NNPFC SEI message.
- HD High Definition
- UHD Ultra High Definition
- the purpose of the present disclosure is to provide a video encoding/decoding method and device with improved encoding/decoding efficiency.
- the present disclosure aims to provide a video encoding/decoding method and device in which an NNPFC SEI message including a basic neural network post-processing filter can be repeated.
- the present disclosure provides a video encoding/decoding method in which a repeated NNPFC SEI message may have the same content as the first NNPFC SEI message having the same filter identification information (e.g. nnpfc_id) value in the current CLVS in decoding order, and
- the purpose is to provide a device.
- the present disclosure aims to provide a video encoding/decoding method and device that can solve at least some of the various problems described in the present disclosure as problems of the prior art.
- the present disclosure aims to provide a non-transitory computer-readable recording medium that stores a bitstream generated by the video encoding method according to the present disclosure.
- the present disclosure aims to provide a non-transitory computer-readable recording medium that stores a bitstream that is received and decoded by an image decoding device according to the present disclosure and used to restore an image.
- the present disclosure aims to provide a method for transmitting a bitstream generated by the video encoding method according to the present disclosure.
- An image decoding method is an image decoding method performed by an image decoding apparatus, comprising: receiving a supplemental enhancement information (SEI) message related to a neural-network post-filter (NNPF) to be applied to a current picture; Recovering NNPF-related information based on the NNPF-related SEI message, and applying NNPF to the current picture based on the NNPF-related information, wherein the NNPF-related SEI message includes filter identification information (filter identification information) ) and a neural-network post-filter characteristics (NNPFC) SEI message including filter property present information, and based on the NNPFC SEI message including a base NNPF, the filter characteristic
- SEI Supplemental Enhancement information
- NNPFC neural-network post-filter characteristics
- An image encoding method is an image encoding method performed by an image encoding device, the image encoding method comprising: generating NNPF-related information to be applied to a current picture, and based on the NNPF-related information Generating an NNPF-related SEI message, wherein the NNPF-related SEI message includes an NNPFC SEI message including filter identification information and filter characteristic presence information, and based on the NNPFC SEI message including a basic NNPF, Filter characteristic existence information may be limited to have a first value indicating that the filter characteristic exists.
- a computer-readable recording medium can store a bitstream generated by the image encoding method or device of the present disclosure.
- a transmission method may transmit a bitstream generated by the video encoding method or device of the present disclosure.
- an image encoding/decoding method and device with improved encoding/decoding efficiency can be provided.
- the NNPFC SEI message including the basic neural network post-processing filter may be repeated.
- the repeated NNPFC SEI message may have the same content as the first NNPFC SEI message with the same filter identification information (e.g. nnpfc_id) value in the current CLVS in decoding order.
- filter identification information e.g. nnpfc_id
- a non-transitory computer-readable recording medium that stores a bitstream generated by the image encoding method according to the present disclosure can be provided.
- a non-transitory computer-readable recording medium that stores a bitstream received and decoded by the video decoding device according to the present disclosure and used for image restoration can be provided.
- a method for transmitting a bitstream generated by an image encoding method can be provided.
- FIG. 1 is a diagram schematically showing a video coding system to which an embodiment according to the present disclosure can be applied.
- FIG. 2 is a diagram schematically showing a video encoding device to which an embodiment according to the present disclosure can be applied.
- Figure 3 is a diagram schematically showing an image decoding device to which an embodiment according to the present disclosure can be applied.
- Figure 4 is a diagram for explaining an interleaved method for deriving a luma channel.
- Figure 5 is a flowchart for explaining an image encoding method to which an embodiment according to the present disclosure can be applied.
- Figure 6 is a flowchart for explaining an image decoding method to which an embodiment according to the present disclosure can be applied.
- Figure 7 is a diagram illustrating a content streaming system to which an embodiment according to the present disclosure can be applied.
- a component when a component is said to be “connected,” “coupled,” or “connected” to another component, this is not only a direct connection relationship, but also an indirect connection relationship in which another component exists in between. It may also be included.
- a component when a component is said to “include” or “have” another component, this does not mean excluding the other component, but may further include another component, unless specifically stated to the contrary. .
- first, second, etc. are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of components unless specifically mentioned. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, the second component in one embodiment may be referred to as a first component in another embodiment. It may also be called.
- distinct components are intended to clearly explain each feature, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated to form one hardware or software unit, or one component may be distributed to form a plurality of hardware or software units. Accordingly, even if not specifically mentioned, such integrated or distributed embodiments are also included in the scope of the present disclosure.
- components described in various embodiments do not necessarily mean essential components, and some may be optional components. Accordingly, embodiments consisting of a subset of the elements described in one embodiment are also included in the scope of the present disclosure. Additionally, embodiments that include other components in addition to the components described in the various embodiments are also included in the scope of the present disclosure.
- This disclosure relates to video encoding and decoding, and terms used in this disclosure may have common meanings commonly used in the technical field to which this disclosure belongs, unless newly defined in this disclosure.
- a “picture” generally refers to a unit representing one image at a specific time
- a slice/tile is a coding unit that constitutes a part of a picture, and one picture is one. It may consist of more than one slice/tile. Additionally, a slice/tile may include one or more coding tree units (CTUs).
- CTUs coding tree units
- pixel or “pel” may refer to the minimum unit that constitutes one picture (or video). Additionally, “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.
- unit may represent a basic unit of image processing.
- a unit may include at least one of a specific area of a picture and information related to the area.
- unit may be used interchangeably with terms such as “sample array,” “block,” or “area.”
- an MxN block may include a set (or array) of samples (or a sample array) or transform coefficients consisting of M columns and N rows.
- “current block” may mean one of “current coding block”, “current coding unit”, “encoding target block”, “decoding target block”, or “processing target block”.
- “current block” may mean “current prediction block” or “prediction target block.”
- transformation inverse transformation
- quantization inverse quantization
- “current block” may mean “current transformation block” or “transformation target block.”
- filtering filtering target block.”
- current block may mean a block containing both a luma component block and a chroma component block or “the luma block of the current block” unless explicitly stated as a chroma block.
- the luma component block of the current block may be expressed by explicitly including an explicit description of the luma component block, such as “luma block” or “current luma block.”
- the chroma component block of the current block may be expressed including an explicit description of the chroma component block, such as “chroma block” or “current chroma block.”
- “/” and “,” may be interpreted as “and/or.”
- “A/B” and “A, B” can be interpreted as “A and/or B.”
- “A/B/C” and “A, B, C” may mean “at least one of A, B and/or C.”
- FIG. 1 is a diagram schematically showing a video coding system to which an embodiment according to the present disclosure can be applied.
- a video coding system may include an encoding device 10 and a decoding device 20.
- the encoding device 10 may transmit encoded video and/or image information or data in file or streaming form to the decoding device 20 through a digital storage medium or network.
- the encoding device 10 may include a video source generator 11, an encoder 12, and a transmitter 13.
- the decoding device 20 may include a receiving unit 21, a decoding unit 22, and a rendering unit 23.
- the encoder 12 may be called a video/image encoder
- the decoder 22 may be called a video/image decoder.
- the transmission unit 13 may be included in the encoding unit 12.
- the receiving unit 21 may be included in the decoding unit 22.
- the rendering unit 23 may include a display unit, and the display unit may be composed of a separate device or external component.
- the video source generator 11 may acquire video/image through a video/image capture, synthesis, or creation process.
- the video source generator 11 may include a video/image capture device and/or a video/image generation device.
- a video/image capture device may include, for example, one or more cameras, a video/image archive containing previously captured video/images, etc.
- Video/image generating devices may include, for example, computers, tablets, and smartphones, and are capable of generating video/images (electronically). For example, a virtual video/image may be created through a computer, etc., and in this case, the video/image capture process may be replaced by the process of generating related data.
- the encoder 12 can encode the input video/image.
- the encoder 12 can perform a series of procedures such as prediction, transformation, and quantization for compression and encoding efficiency.
- the encoder 12 may output encoded data (encoded video/image information) in the form of a bitstream.
- the transmitting unit 13 can obtain encoded video/image information or data output in the form of a bitstream, and transmit it to the receiving unit 21 of the decoding device 20 through a digital storage medium or network in the form of a file or streaming. It can be passed to another external object.
- Digital storage media may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- the transmission unit 13 may include elements for creating a media file through a predetermined file format and may include elements for transmission through a broadcasting/communication network.
- the transmission unit 13 may be provided as a separate transmission device from the encoding device 12.
- the transmission device includes at least one processor that acquires encoded video/image information or data output in the form of a bitstream. It may include a transmission unit that delivers the message in file or streaming form.
- the receiving unit 21 may extract/receive the bitstream from the storage medium or network and transmit it to the decoding unit 22.
- the decoder 22 can decode a video/image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operations of the encoder 12.
- FIG. 2 is a diagram schematically showing a video encoding device to which an embodiment according to the present disclosure can be applied.
- the image encoding device 100 includes an image segmentation unit 110, a subtraction unit 115, a transformation unit 120, a quantization unit 130, an inverse quantization unit 140, and an inverse transformation unit ( 150), an adder 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190.
- the inter prediction unit 180 and intra prediction unit 185 may be collectively referred to as a “prediction unit.”
- the transform unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transform unit 150 may be included in a residual processing unit.
- the residual processing unit may further include a subtraction unit 115.
- All or at least a portion of the plurality of components constituting the video encoding device 100 may be implemented as one hardware component (eg, an encoder or processor) depending on the embodiment.
- the memory 170 may include a decoded picture buffer (DPB) and may be implemented by a digital storage medium.
- DPB decoded picture buffer
- the image segmentation unit 110 may divide an input image (or picture, frame) input to the image encoding device 100 into one or more processing units.
- the processing unit may be called a coding unit (CU).
- the coding unit is a coding tree unit (CTU) or largest coding unit (LCU) recursively according to the QT/BT/TT (Quad-tree/binary-tree/ternary-tree) structure. It can be obtained by dividing recursively.
- one coding unit may be divided into a plurality of coding units of deeper depth based on a quad tree structure, binary tree structure, and/or ternary tree structure.
- the quad tree structure may be applied first and the binary tree structure and/or ternary tree structure may be applied later.
- the coding procedure according to the present disclosure can be performed based on the final coding unit that is no longer divided.
- the largest coding unit can be directly used as the final coding unit, and a lower-depth coding unit obtained by dividing the maximum coding unit can be used as the final coding unit.
- the coding procedure may include procedures such as prediction, conversion, and/or restoration, which will be described later.
- the processing unit of the coding procedure may be a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may each be divided or partitioned from the final coding unit.
- the prediction unit may be a unit of sample prediction
- the transform unit may be a unit for deriving a transform coefficient and/or a unit for deriving a residual signal from the transform coefficient.
- the prediction unit (inter prediction unit 180 or intra prediction unit 185) performs prediction on the block to be processed (current block) and generates a predicted block including prediction samples for the current block. can be created.
- the prediction unit may determine whether intra prediction or inter prediction is applied on a current block or CU basis.
- the prediction unit may generate various information regarding prediction of the current block and transmit it to the entropy encoding unit 190.
- Information about prediction may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the intra prediction unit 185 can predict the current block by referring to samples in the current picture.
- the referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the intra prediction mode and/or intra prediction technique.
- Intra prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- Non-directional modes may include, for example, DC mode and planar mode.
- the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes, depending on the level of detail of the prediction direction. However, this is an example and more or less directional prediction modes may be used depending on the setting.
- the intra prediction unit 185 may determine the prediction mode applied to the current block using the prediction mode applied to the neighboring block.
- the inter prediction unit 180 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture.
- motion information can be predicted in blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- neighboring blocks may include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture.
- a reference picture including the reference block and a reference picture including the temporal neighboring block may be the same or different from each other.
- the temporal neighboring block may be called a collocated reference block, a collocated reference block, or a collocated CU (colCU).
- a reference picture including the temporal neighboring block may be called a collocated picture (colPic).
- the inter prediction unit 180 configures a motion information candidate list based on neighboring blocks, and provides information indicating which candidate is used to derive the motion vector and/or reference picture index of the current block. can be created. Inter prediction may be performed based on various prediction modes. For example, in the case of skip mode and merge mode, the inter prediction unit 180 may use motion information of neighboring blocks as motion information of the current block.
- motion vector prediction MVP
- the motion vector of the neighboring block is used as a motion vector predictor, and the motion vector difference and indicator for the motion vector predictor ( The motion vector of the current block can be signaled by encoding the indicator).
- Motion vector difference may mean the difference between the motion vector of the current block and the motion vector predictor.
- the prediction unit may generate a prediction signal based on various prediction methods and/or prediction techniques described later. For example, the prediction unit can not only apply intra prediction or inter prediction for prediction of the current block, but also can apply intra prediction and inter prediction simultaneously.
- a prediction method that simultaneously applies intra prediction and inter prediction to predict the current block may be called combined inter and intra prediction (CIIP).
- the prediction unit may perform intra block copy (IBC) to predict the current block.
- Intra block copy can be used, for example, for video/video coding of content such as games, such as screen content coding (SCC).
- IBC is a method of predicting the current block using a reconstructed reference block in the current picture located a predetermined distance away from the current block.
- the position of the reference block in the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance.
- IBC basically performs prediction within the current picture, but can be performed similarly to inter prediction in that it derives a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described in this disclosure.
- the prediction signal generated through the prediction unit may be used to generate a restored signal or a residual signal.
- the subtraction unit 115 subtracts the prediction signal (predicted block, prediction sample array) output from the prediction unit from the input image signal (original block, original sample array) to generate a residual signal (residual signal, residual block, residual sample array). ) can be created.
- the generated residual signal may be transmitted to the converter 120.
- the transform unit 120 may generate transform coefficients by applying a transform technique to the residual signal.
- the transformation technique may be at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loeve Transform (KLT), Graph-Based Transform (GBT), or Conditionally Non-linear Transform (CNT). It can be included.
- DCT Discrete Cosine Transform
- DST Discrete Sine Transform
- KLT Karhunen-Loeve Transform
- GBT Graph-Based Transform
- CNT Conditionally Non-linear Transform
- GBT refers to the transformation obtained from this graph when the relationship information between pixels is expressed as a graph.
- CNT refers to the transformation obtained by generating a prediction signal using all previously reconstructed pixels and obtaining it based on it.
- the conversion process may be applied to square pixel blocks of the same size, or to non-square blocks of variable size.
- the quantization unit 130 may quantize the transform coefficients and transmit them to the entropy encoding unit 190.
- the entropy encoding unit 190 may encode a quantized signal (information about quantized transform coefficients) and output it as a bitstream. Information about the quantized transform coefficients may be called residual information.
- the quantization unit 130 may rearrange the quantized transform coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information about transformation coefficients may also be generated.
- the entropy encoding unit 190 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
- the entropy encoding unit 190 may encode information necessary for video/image restoration (e.g., values of syntax elements, etc.) in addition to the quantized transformation coefficients together or separately.
- Encoded information (ex. encoded video/picture information) may be transmitted or stored in bitstream form in units of NAL (network abstraction layer) units.
- the video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Additionally, the video/image information may further include general constraint information. Signaling information, transmitted information, and/or syntax elements mentioned in this disclosure may be encoded through the above-described encoding procedure and included in the bitstream.
- the bitstream can be transmitted over a network or stored in a digital storage medium.
- the network may include a broadcasting network and/or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD.
- a transmission unit (not shown) that transmits the signal output from the entropy encoding unit 190 and/or a storage unit (not shown) that stores the signal may be provided as an internal/external element of the video encoding device 100, or may be transmitted.
- the unit may be provided as a component of the entropy encoding unit 190.
- Quantized transform coefficients output from the quantization unit 130 can be used to generate a residual signal.
- a residual signal residual block or residual samples
- inverse quantization and inverse transformation residual block or residual samples
- the adder 155 adds the reconstructed residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). can be created. If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a restoration block.
- the addition unit 155 may be called a restoration unit or a restoration block generation unit.
- the generated reconstructed signal can be used for intra prediction of the next processing target block in the current picture, and can also be used for inter prediction of the next picture after filtering, as will be described later.
- the filtering unit 160 may improve subjective/objective image quality by applying filtering to the restored signal.
- the filtering unit 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 170, specifically the DPB of the memory 170. It can be saved in .
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
- the filtering unit 160 may generate various information regarding filtering and transmit it to the entropy encoding unit 190, as will be described later in the description of each filtering method. Information about filtering may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the modified reconstructed picture transmitted to the memory 170 may be used as a reference picture in the inter prediction unit 180.
- the video encoding device 100 can avoid prediction mismatch in the video encoding device 100 and the video decoding device, and can also improve coding efficiency.
- the DPB in the memory 170 can store a modified reconstructed picture to be used as a reference picture in the inter prediction unit 180.
- the memory 170 may store motion information of a block from which motion information in the current picture is derived (or encoded) and/or motion information of blocks in an already reconstructed picture.
- the stored motion information may be transmitted to the inter prediction unit 180 to be used as motion information of spatial neighboring blocks or motion information of temporal neighboring blocks.
- the memory 170 can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 185.
- Figure 3 is a diagram schematically showing an image decoding device to which an embodiment according to the present disclosure can be applied.
- the image decoding device 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an adder 235, a filtering unit 240, and a memory 250. ), an inter prediction unit 260, and an intra prediction unit 265.
- the inter prediction unit 260 and the intra prediction unit 265 may be collectively referred to as a “prediction unit.”
- the inverse quantization unit 220 and the inverse transform unit 230 may be included in the residual processing unit.
- All or at least part of the plurality of components constituting the video decoding device 200 may be implemented as one hardware component (eg, a decoder or processor) depending on the embodiment.
- the memory 170 may include a DPB and may be implemented by a digital storage medium.
- the image decoding device 200 which has received a bitstream containing video/image information, may restore the image by performing a process corresponding to the process performed by the image encoding device 100 of FIG. 2.
- the video decoding device 200 may perform decoding using a processing unit applied in the video encoding device. Therefore, the processing unit of decoding may be a coding unit, for example.
- the coding unit may be a coding tree unit or may be obtained by dividing the largest coding unit.
- the restored video signal decoded and output through the video decoding device 200 can be played through a playback device (not shown).
- the video decoding device 200 may receive a signal output from the video encoding device of FIG. 2 in the form of a bitstream.
- the received signal may be decoded through the entropy decoding unit 210.
- the entropy decoder 210 may parse the bitstream to derive information (eg, video/picture information) necessary for image restoration (or picture restoration).
- the video/image information may further include information about various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS).
- the video/image information may further include general constraint information.
- the video decoding device may additionally use the information about the parameter set and/or the general restriction information to decode the video.
- Signaling information, received information, and/or syntax elements mentioned in this disclosure may be obtained from the bitstream by being decoded through the decoding procedure.
- the entropy decoding unit 210 decodes information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and quantizes the values of syntax elements necessary for image restoration and transform coefficients related to residuals. The values can be output.
- the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, and includes decoding target syntax element information and surrounding blocks and decoding information of the decoding target block or information of symbols/bins decoded in the previous step.
- the CABAC entropy decoding method can update the context model using information on the decoded symbol/bin for the context model of the next symbol/bin after determining the context model.
- information about prediction is provided to the prediction unit (inter prediction unit 260 and intra prediction unit 265), and the register on which entropy decoding was performed in the entropy decoding unit 210
- Dual values that is, quantized transform coefficients and related parameter information, may be input to the inverse quantization unit 220.
- information about filtering among the information decoded by the entropy decoding unit 210 may be provided to the filtering unit 240.
- a receiving unit (not shown) that receives a signal output from the video encoding device may be additionally provided as an internal/external element of the video decoding device 200, or the receiving device may be provided as a component of the entropy decoding unit 210. It could be.
- the video decoding device may be called a video/picture/picture decoding device.
- the video decoding device may include an information decoder (video/image/picture information decoder) and/or a sample decoder (video/image/picture sample decoder).
- the information decoder may include an entropy decoding unit 210
- the sample decoder may include an inverse quantization unit 220, an inverse transform unit 230, an addition unit 235, a filtering unit 240, a memory 250, It may include at least one of the inter prediction unit 260 and the intra prediction unit 265.
- the inverse quantization unit 220 may inversely quantize the quantized transform coefficients and output the transform coefficients.
- the inverse quantization unit 220 may rearrange the quantized transform coefficients into a two-dimensional block form. In this case, the reordering may be performed based on the coefficient scan order performed in the video encoding device.
- the inverse quantization unit 220 may perform inverse quantization on quantized transform coefficients using quantization parameters (eg, quantization step size information) and obtain transform coefficients.
- the inverse transform unit 230 can inversely transform the transform coefficients to obtain a residual signal (residual block, residual sample array).
- the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210, and determine a specific intra/inter prediction mode (prediction technique). You can.
- the prediction unit can generate a prediction signal based on various prediction methods (techniques) described later is the same as mentioned in the description of the prediction unit of the video encoding device 100.
- the intra prediction unit 265 can predict the current block by referring to samples in the current picture.
- the description of the intra prediction unit 185 can be equally applied to the intra prediction unit 265.
- the inter prediction unit 260 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector in the reference picture.
- motion information can be predicted in blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- neighboring blocks may include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture.
- the inter prediction unit 260 may construct a motion information candidate list based on neighboring blocks and derive a motion vector and/or reference picture index of the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes (techniques), and the information about the prediction may include information indicating the mode (technique) of inter prediction for the current block.
- the adder 235 restores the obtained residual signal by adding it to the prediction signal (predicted block, prediction sample array) output from the prediction unit (including the inter prediction unit 260 and/or the intra prediction unit 265).
- a signal (restored picture, restored block, restored sample array) can be generated. If there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a restoration block.
- the description of the addition unit 155 can be equally applied to the addition unit 235.
- the addition unit 235 may be called a restoration unit or a restoration block generation unit.
- the generated reconstructed signal can be used for intra prediction of the next processing target block in the current picture, and can also be used for inter prediction of the next picture after filtering, as will be described later.
- the filtering unit 240 can improve subjective/objective image quality by applying filtering to the restored signal.
- the filtering unit 240 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and store the modified reconstructed picture in the memory 250, specifically the DPB of the memory 250. It can be saved in .
- the various filtering methods may include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
- the (corrected) reconstructed picture stored in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260.
- the memory 250 may store motion information of a block from which motion information in the current picture is derived (or decoded) and/or motion information of blocks in a picture that has already been reconstructed.
- the stored motion information can be transmitted to the inter prediction unit 260 to be used as motion information of spatial neighboring blocks or motion information of temporal neighboring blocks.
- the memory 250 can store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 265.
- the embodiments described in the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the video encoding apparatus 100 are the filtering unit 240 and the intra prediction unit 185 of the video decoding apparatus 200, respectively. It may also be applied to the inter prediction unit 260 and the intra prediction unit 265 in the same or corresponding manner.
- NNPFC Neural-network post-filter characteristics
- Table 1 The combination of Table 1 and Table 2 represents the NNPFC syntax structure.
- the NNPFC syntax structure in Tables 1 and 2 may be signaled in the form of a supplemental enhancement information (SEI) message.
- SEI Supplemental Enhancement Information
- An SEI message signaling the NNPFC syntax structure of Tables 1 and 2 may be referred to as an NNPFC SEI message.
- the NNPFC SEI message can specify a neural network that can be used as a post-processing filter.
- the use of specific post-processing filters for specific pictures can be indicated using neural-network post-filter activation SEI messages.
- ‘post-processing filter’ and ‘post-filter’ may have the same meaning.
- the width and height of the decoded output picture can be cropped in units of luma samples, and this width and height can be expressed as CroppedWidth and CroppedHeight, respectively.
- CroppedYPic[idx] a luma sample array of cropped and decoded output pictures
- CroppedCbPic[idx] and CroppedCrPic[idx] chroma sample arrays, if they exist, are input to the post-processing filter.
- BitDepth Y may indicate the bit depth for the luma sample array of cropped decoded output pictures.
- BitDepth C may indicate the bit depth of the chroma sample arrays (if present) of the cropped decoded output pictures.
- ChromaFormatIdc can indicate a chroma format identifier.
- the filtering strength control value StrengthControlVal must be a real number in the range of 0 to 1.
- Variables SubWidthC and SubHeightC can be derived from ChromaFormatIdc. There may be more than one NNPFC SEI message for the same picture. If two or more NNPFC SEI messages with different nnpfc_id values exist or are activated for the same picture, the two or more NNPFC SEI messages may have the same or different nnpfc_purpose and nnpfc_mode_idx values.
- nnpfc_id may contain an identification number that can be used to identify the post-processing filter.
- the nnpfc_id value must be in the range of 0 to 2 32 - 2.
- nnpfc_id values in the range 256 to 511 and 2 31 to 2 32 - 2 may be reserved for future use. Decoders should ignore NNPFC SEI messages with nnpfc_id in the range 256 to 511 or 2 31 to 2 32 - 2.
- the NNPFC SEI message is the first NNPFC SEI message in decoding order with a specific nnpfc_id value within the current coded layer video sequence (CLVS), the following can be applied.
- the SEI message may indicate a base post-processing filter.
- the SEI message may be associated, in output order, with the current decoded picture and all subsequent decoded pictures of the current layer until the current CLVS ends.
- An NNPFC SEI message may be a repetition of a previous NNPFC SEI message within the current CLVS in decoding order, and subsequent semantics may be applied as if this SEI message was the only NNPFC SEI message with the same content within the current CLVS.
- the NNPFC SEI message is not the first NNPFC SEI message in decoding order with a specific nnpfc_id value within the current CLVS, the following may apply.
- the SEI message is associated, in output order, with the current CLVS or with the current decoded picture and all subsequent decoded pictures of the current layer until the current CLVS ends, or with a specific nnpfc_id value within the current CLVS in the output order. It may be related to the next NNPFC SEI message.
- a value of 1 for nnpfc_mode_idc may indicate that the default post-processing filter associated with the nnpfc_id value is a neural network, and the neural network has the tag URI nnpfc_tag_uri It may be a neural network identified by a URI denoted by nnpfc_uri using the format identified by .
- nnpfc_mode_idc 1
- nnpfc_mode_idc may be limited to have a range of 0 to 1 in the bitstream. Values in the range 2 to 255 for nnpfc_mode_idc may be reserved for future use and may not be present in the bitstream. Decoders should ignore NNPFC SEI messages with nnpfc_mode_idc in the range 2 to 255. Values of nnpfc_mode_idc greater than 255 do not exist in the bitstream and may not be reserved for future use.
- the post-processing filter PostProcessingFilter() may be assigned the same as the basic post-processing filter.
- the post-processing filter PostProcessingFilter() is obtained by applying the update defined by the SEI message to the basic post-processing filter. You can.
- Updates are not cumulative; rather, each update can be applied to the default post-processing filter, which is the post-processing filter specified by the first NNPFC SEI message in decoding order with a specific nnpfc_id value within the current CLVS.
- nnpfc_reserved_zero_bit_a may be limited to have a value equal to 0 due to bitstream limitations. Decoders may be restricted to ignore NNPFC SEI messages where the value of nnpfc_reserved_zero_bit_a is non-zero.
- nnpfc_tag_uri may contain a tag URI with the syntax and semantics specified in IETF RFC 4151 that identifies the neural network used as the default post-processing filter or an update to the default post-processing filter using the nnpfc_id value specified by nnpfc_uri.
- nnpfc_tag_uri allows you to uniquely identify the type of neural network data specified by nnrpf_uri without the need for a central registration authority.
- nnpfc_tag_uri equal to "tag:iso.org,2023:15938-17" can indicate that the neural network data identified by nnpfc_uri complies with ISO/IEC 15938-17.
- nnpfc_uri may contain a URI with the syntax and semantics specified in IETF Internet Standard 66 that identifies the neural network used as the default post-processing filter or an update to the default post-processing filter using the same nnpfc_id value.
- a value of 1 in nnpfc_formatting_and_purpose_flag may indicate the presence of syntax elements related to filter purpose, input formatting, output formatting, and complexity.
- a value of 0 for nnpfc_formatting_and_purpose_flag may indicate that syntax elements related to filter purpose, input formatting, output formatting, and complexity do not exist.
- nnpfc_formatting_and_purpose_flag may be equal to 1. If the SEI message is not the first NNPFC SEI message with a specific nnpfc_id value within the current CLVS in decoding order, the value of nnpfc_formatting_and_purpose_flag may be equal to 0.
- nnpfc_purpose may indicate the purpose of the post-processing filter specified in Table 3.
- nnpfc_purpose must be in the range of 0 to 5 due to bitstream limitations. Values from 6 to 1023 for nnpfc_purpose are not present in the bitstream and may be reserved for future use. Decoders should ignore NNPFC SEI messages with nnpfc_purpose in the range of 6 to 1203. nnpfc_purpose values greater than 1023 do not exist in the bitstream and are not reserved for future use.
- 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.
- 3 Increase the width and height of the cropped decoded output picture without changing the chroma format 4 Increasing the width and height of the cropped decoded output picture and upsampling the chroma format 5 Picture rate upsampling
- nnpfc_purpose When the reserved value of nnpfc_purpose is used in the future, the syntax of this SEI message may be extended with existing syntax elements provided that nnpfc_purpose is equal to that value.
- nnpfc_purpose must not have a value of 2 or 4.
- a value of 1 in nnpfc_out_sub_c_flag may indicate that the value of outSubWidthC is 1 and the value of outSubHeightC is 1.
- the value of nnpfc_out_sub_c_flag may indicate that the value of outSubWidthC is 2 and the value of outSubHeightC is 1. If nnpfc_out_sub_c_flag does not exist, outSubWidthC can be inferred to be the same as SubWidthC, and outSubHeightC can be inferred to be the same as SubHeightC. If the value of ChromaFormatIdc is 2 and nnpfc_out_sub_c_flag exists, the value of nnpfc_out_sub_c_flag must be equal to 1.
- nnpfc_pic_width_in_luma_samples and nnpfc_pic_height_in_luma_samples may indicate the width and height of the luma sample array of the picture resulting from applying the post-processing filter identified by nnpfc_id to the cropped decoded output picture, respectively. If nnpfc_pic_width_in_luma_samples and nnpfc_pic_height_in_luma_samples do not exist, they can be inferred to be equal to CroppedWidth and CroppedHeight, respectively.
- nnpfc_pic_width_in_luma_samples must be in the range from CroppedWidth to CroppedWidth * 16 - 1.
- nnpfc_pic_height_in_luma_samples must be in the range from CroppedHeight to CroppedHeight * 16 - 1.
- nnpfc_num_input_pics_minus2 + 2 may indicate the number of decoded output pictures used as input to the post-processing filter.
- nnpfc_interpolated_pics[i] may indicate the number of interpolated pictures generated by the post-processing filter between the i-th picture and the (i + 1)-th picture used as the input of the post-processing filter.
- variable numInputPics which indicates the number of pictures used as input to the post-processing filter
- numOutputPics variable which indicates the total number of pictures generated as a result of the post-processing filter
- a value of 1 in nnpfc_component_last_flag may indicate that the last dimension of the input tensor inputTensor for the post-processing filter and the output tensor outputTensor that is the result of the post-processing filter are used for the current channel.
- a value of 0 for nnpfc_component_last_flag may indicate that the third dimension of the input tensor inputTensor for the post-processing filter and the output tensor outputTensor that is the result of the post-processing filter are used for the current channel.
- the first dimension of the input tensor and output tensor can be used as a batch index used in some neural network frameworks.
- the formula within the semantics of this SEI message uses a batch size corresponding to a batch index equal to 0, but determining the batch size used as input to neural network inference can be determined by the implementation of the post-processing.
- nnpfc_inp_order_idc 3 and the value of nnpfc_auxiliary_inp_idc is equal to 1
- there may be 7 channels in the input tensor including 4 luma matrices, 2 chroma matrices, and 1 auxiliary input matrix.
- the DeriveInputTensors() process can derive one each of the seven channels of the input tensor, and when a specific channel among these channels is processed, that channel can be referred to as the current channel during the process.
- nnpfc_inp_format_idc may indicate a method of converting the sample value of the cropped decoded output picture into the input value of the post-processing filter. If nnpfc_inp_format_idc is 0, the input value to the post-processing filter is a real number, and the InpY() and InpC() functions can be specified as in Equation 1.
- nnpfc_inp_format_idc the input values of the post-processing filter are unsigned integer numbers, and the InpY() and InpC() functions can be derived as shown in Table 5.
- variable inpTensorBitDepth can be derived from the syntax element nnpfc_inp_tensor_bitlength_minus8 described below.
- nnpfc_inp_format_idc Values of nnpfc_inp_format_idc greater than 1 may be reserved for future use and may not be present in the bitstream. Decoders must ignore NNPFC SEI messages containing the reserved values of nnpfc_inp_format_idc.
- nnpfc_inp_tensor_bitlength_minus8 + 8 may represent the bit depth of luma sample values in the input integer tensor.
- the value of inpTensorBitDepth can be derived as in Equation 2.
- nnpfc_inp_tensor_bitlength_minus8 may be limited to be in the range of 0 to 24.
- nnpfc_inp_order_idc may indicate a method of ordering the sample array of the cropped decoded output picture as one of the input pictures for the post-processing filter.
- nnpfc_inp_order_idc must be in the range of 0 to 3 in the bitstream. Values between 4 and 255 for nnpfc_inp_order_idc do not exist in the bitstream. Decoders should ignore NNPFC SEI messages with nnpfc_inp_order_idc in the range of 4 to 255. Values of nnpfc_inp_order_idc greater than 255 do not exist in the bitstream and are not reserved for future use.
- nnpfc_inp_order_idc must not be 3.
- Table 6 contains a description of the nnpfc_inp_order_idc value.
- nnpfc_auxiliary_inp_idc if the value of nnpfc_auxiliary_inp_idc is 1, there may be two chroma matrices and one auxiliary input matrix, and the number of channels may be 3. 2 If the value of nnpfc_auxiliary_inp_idc is 0, there may be one luma matrix and two chroma matrices in the input tensor, and the number of channels may be 3. Otherwise, if the value of nnpfc_auxiliary_inp_idc is 1, there may be one luma matrix, two chroma matrices, and one auxiliary input matrix, and the number of channels may be 4.
- nnpfc_auxiliary_inp_idc If the value of nnpfc_auxiliary_inp_idc is 0, there can be 4 luma matrices and 2 chroma matrices in the input tensor, and the number of channels can be 6. Otherwise, if the value of nnpfc_auxiliary_inp_idc is 1, there may be 4 luma matrices, 2 chroma matrices, and 1 auxiliary input matrix, and the number of channels may be 7.
- the luma channel may be derived in an interleaved manner as shown in FIG. 4. nnpfc_inp_order_idc can only be used when the chroma format is 4:2:0. 4...255 reserved
- a patch can be a rectangular array of samples from a component of a picture (e.g., a luma or chroma component).
- nnpfc_auxiliary_inp_idc greater than 0 may indicate the presence of auxiliary input data in the input tensor of the neural network post-filter.
- a value of 0 for nnpfc_auxiliary_inp_idc may indicate that auxiliary input data does not exist in the input tensor.
- a value of 1 in nnpfc_auxiliary_inp_idc may indicate that auxiliary input data is derived through the method shown in Tables 7 to 9.
- nnpfc_auxiliary_inp_idc must be in the range of 0 to 1 in the bitstream. Values between 2 and 255 for nnpfc_inp_order_idc do not exist in the bitstream. Decoders should ignore NNPFC SEI messages with nnpfc_inp_order_idc in the range of 2 to 255. Values of nnpfc_inp_order_idc greater than 255 do not exist in the bitstream and are not reserved for future use.
- the process for deriving the input tensor inputTensor for a given vertical sample coordinate cTop and a horizontal sample coordinate cLeft specifying the top-left sample position of the sample patch included in the input tensor DeriveInputTensors() can be expressed as a combination of Tables 7 to 9. .
- a value of 1 in nnpfc_separate_color_description_present_flag may indicate that a unique combination of color primaries, transform characteristics, and matrix coefficients for a picture resulting from a post-processing filter is specified in the SEI message syntax structure.
- a value of 0 in nnfpc_separate_color_description_present_flag may indicate that the combination of the basic color, transformation characteristics, and matrix coefficients of the picture due to the post-processing filter is the same as that indicated in the VUI parameters of CLVS.
- nnpfc_colour_primaries may have the same semantics as defined for the vui_colour_primaries syntax element except for the following.
- - nnpfc_colour_primaries may indicate the basic color of the picture that appears as a result of applying the neural network post-filter specified in the SEI message, rather than the basic color used in CLVS.
- nnpfc_colour_primaries does not exist in the NNPFC SEI message, the value of nnpfc_colour_primaries can be inferred to be the same as the value of vui_colour_primaries.
- nnpfc_transfer_characteristics may have the same semantics as defined for the vui_transfer_characteristics syntax element, except for the following:
- - nnpfc_transfer_characteristics may represent the transformation characteristics of the picture that results from applying the neural network post-filter specified in the SEI message, rather than the transformation characteristics used in CLVS.
- nnpfc_transfer_characteristics If nnpfc_transfer_characteristics does not exist in the NNPFC SEI message, the value of nnpfc_transfer_characteristics can be inferred to be the same as the value of vui_transfer_characteristics.
- nnpfc_matrix_coeffs may have the same semantics as specified for the vui_matrix_coeffs syntax element except for the following.
- - nnpfc_matrix_coeffs may not represent the matrix coefficients used in CLVS, but the matrix coefficients of the picture resulting from applying the neural network post-filter specified in the SEI message.
- nnpfc_matrix_coeffs does not exist in the NNPFC SEI message, the value of nnpfc_matrix_coeffs can be inferred to be the same as the value of vui_matrix_coeffs.
- nnpfc_matrix_coeffs may not be limited by the chroma format of the decoded video pictures, indicated by the ChromaFormatIdc value for the semantics of VUI parameters.
- nnpfc_matrix_coeffs the value of nnpfc_out_order_idc cannot be equal to 1 or 3.
- a value of 0 for nnpfc_out_format_id indicates that the sample value output by the post-processing filter has a value range of 0 to (1 ⁇ bitDepth) - sign of 1, for the bit depth bitDepth required for subsequent post-processing or display. It can indicate that it is a real number that maps linearly to a range of integer values.
- a value of 1 in nnpfc_out_format_flag may indicate that the sample value output by the post-processing filter is an unsigned integer in the range of 0 to (1 ⁇ (nnpfc_out_tensor_bitlength_minus8 + 8)) - 1.
- nnpfc_out_format_idc A value of nnpfc_out_format_idc greater than 1 does not exist in the bitstream. Decoders SHOULD ignore NNPFC SEI messages containing the reserved value of nnpfc_out_format_idc. '+ 8' can indicate the bit depth of the sample value in the output integer tensor. The value of nnpfc_out_tensor_bitlength_minus8 must be in the range of 0 to 24.
- nnpfc_out_order_idc may indicate the output order of samples output from the post-processing filter.
- the value of nnpfc_out_order_idc must be in the range of 0 to 3 in the bitstream. Values between 4 and 255 for nnpfc_out_order_idc do not exist in the bitstream. Decoders should ignore NNPFC SEI messages with nnpfc_out_order_idc in the range of 4 to 255. Values of nnpfc_out_order_idc greater than 255 do not exist in the bitstream and are not reserved for future use. If the value of nnpfc_purpose is 2 or 4, the value of nnpfc_out_order_idc cannot be equal to 3.
- Table 10 provides a description of the value of nnpfc_out_order_idc.
- StoreOutputTensors ( ) can be expressed as a combination of Table 11 and Table 12.
- a value of 1 for nnpfc_constant_patch_size_flag may indicate that the post-processing filter correctly accepts the patch size indicated by nnpfc_patch_width_minus1 and nnpfc_patch_height_minus1 as input.
- a value of 0 for nnpfc_constant_patch_size_flag may indicate that the post-processing filter accepts as input any patch size that is a positive integer multiple of the patch size indicated by nnpfc_patch_width_minus1 and nnpfc_patch_height_minus1.
- npfc_patch_width_minus1 + 1 can indicate the number of horizontal samples of the patch size required for input to the post-processing filter when the value of nnpfc_constant_patch_size_flag is 1.
- the value of nnpfc_patch_width_minus1 must be in the range of 0 to Min(32766, CroppedWidth - 1).
- npfc_patch_height_minus1 + 1 can indicate the number of vertical samples of the patch size required for input to the post-processing filter when the value of nnpfc_constant_patch_size_flag is 1.
- the value of nnpfc_patch_height_minus1 must be in the range of 0 to Min(32766, CroppedHeight - 1).
- the inpPatchWidth and inpPatchHeight variables can be set to the patch size width and patch size height, respectively.
- nnpfc_constant_patch_size_flag 0
- inpPatchWidth and inpPatchHeight can be provided by external means or set by the post-processor itself.
- inpPatchWidth must be a positive integer multiple of nnpfc_patch_width_minus1 + 1 and must be less than or equal to CroppedWidth.
- inpPatchHeight must be a positive integer multiple of nnpfc_patch_height_minus1 + 1 and must be less than or equal to CroppedHeight.
- the value of inpPatchWidth may be set equal to nnpfc_patch_width_minus1 + 1 and the value of inpPatchHeight may be set equal to nnpfc_patch_height_minus1 + 1.
- nnpfc_overlap may indicate the number of overlapping horizontal and vertical samples of adjacent input tensors of the post-processing filter.
- the value of nnpfc_overlap must be in the range of 0 to 16383.
- outPatchWidth, outPatchHeight, horCScaling, verCScaling, outPatchCWidth, outPatchCHeight, and overlapSize can be derived as shown in Table 13.
- outPatchWidth * CroppedWidth must be equal to nnpfc_pic_width_in_luma_samples * inpPatchWidth
- outPatchHeight * CroppedHeight must be equal to nnpfc_pic_height_in_luma_samples * inpPatchHeight.
- nnpfc_padding_type may indicate the process of padding when referring to sample positions outside the boundaries of the cropped decoded output picture, as described in Table 14.
- the value of nnpfc_padding_type must be in the range of 0 to 15.
- nnpfc_padding_type Description 0 zero padding
- One replication padding 2 reflection padding
- wrap-around padding 4
- fixed padding 5...15 reserved
- nnpfc_luma_padding_val can indicate the luma value to be used for padding when the value of nnpfc_padding_type is 4.
- nnpfc_cb_padding_val can indicate the Cb value to be used for padding when the value of nnpfc_padding_type is 4.
- nnpfc_cr_padding_val can indicate the Cr value to be used for padding when the value of nnpfc_padding_type is 4.
- the vertical position may be listed before the horizontal position for compatibility with the input tensor rules of some inference engines.
- the process in Table 16 can be used to generate a filtered picture by patch-filtering the cropped decoded output picture using the postprocessing filter PostProcessingFilter(), where the filtered picture is an array of Y samples as indicated by nnpfc_out_order_idc. It may include FilteredYPic, Cb sample array FilteredCbPic, and Cr sample array FilteredCrPic.
- a value of 1 in nnpfc_complexity_info_present_flag may indicate the presence of one or more syntax elements indicating the complexity of the post-processing filter associated with nnpfc_id.
- a value of 0 for nnpfc_complexity_info_present_flag may indicate that a syntax element indicating the complexity of the post-processing filter associated with nnpfc_id does not exist.
- a value of 0 for nnpfc_parameter_type_idc may indicate that the neural network uses only integer parameters.
- a value of 1 for nnpfc_parameter_type_flag may indicate that the neural network can use floating point or integer parameters.
- a value of 2 for nnpfc_parameter_type_idc may indicate that the neural network uses only binary parameters.
- the value 3 of nnpfc_parameter_type_idc can be reserved for future use and does not exist in the bitstream. Decoders must ignore NNPFC SEI messages with an nnpfc_parameter_type_idc value of 3.
- nnpfc_log2_parameter_bit_length_minus3 may indicate that the neural network does not use parameters with bit lengths greater than 8, 16, 32, and 64, respectively. If nnpfc_parameter_type_idc exists and nnpfc_log2_parameter_bit_length_minus3 does not exist, the neural network may not use parameters with a bit length greater than 1.
- nnpfc_num_parameters_idc can represent the maximum number of neural network parameters for the post-processing filter in units of the power of 2048.
- a value of 0 for nnpfc_num_parameters_idc may indicate that the maximum number of neural network parameters is unknown.
- the value of nnpfc_num_parameters_idc must be in the range of 0 to 52.
- a value of nnpfc_num_parameters_idc greater than 52 does not exist in the bitstream. Decoders SHOULD ignore NNPFC SEI messages with nnpfc_num_parameters_idc greater than 52.
- nnpfc_num_parameters_idc the maxNumParameters variable can be derived as in Equation 3.
- the number of neural network parameters of the post-processing filter may be limited to be less than or equal to maxNumParameters.
- nnpfc_num_kmac_operations_idc greater than 0 may indicate that the maximum number of multiply-accumulate operations per sample of the post-processing filter is less than or equal to nnpfc_num_kmac_operations_idc * 1000.
- a value of 0 in nnpfc_num_kmac_operations_idc may indicate that the maximum number of network multiply-accumulate operations is unknown.
- the value of nnpfc_num_kmac_operations_idc must be in the range of 0 to 2 32 - 1.
- nnpfc_total_kilobyte_size greater than 0 can indicate the total size (kilobytes) required to store the uncompressed parameters of the neural network.
- the total size in bits may be a number greater than or equal to the sum of the bits used to store each parameter.
- nnpfc_total_kilobyte_size may be the total size (bits) divided by 8000 and rounded.
- a value of 0 for nnpfc_total_kilobyte_size may indicate that the total size required to store parameters for the neural network is unknown.
- the value of nnpfc_total_kilobyte_size must be in the range of 0 to 2 32 - 1.
- nnpfc_reserved_zero_bit_b must be equal to 0 in the bitstream. Decoders must ignore NNPFC SEI messages where nnpfc_reserved_zero_bit_b is non-zero.
- nnpfc_payload_byte[i] may include the i-th byte of the bitstream.
- the byte sequence nnpfc_payload_byte[ i ] for all existing values of i must be a complete bitstream conforming to ISO/IEC 15938-17.
- NPFPA Neural-network post-filter activation
- the syntax structure for NNFPA is shown in Table 17.
- the NNPFA syntax structure in Table 17 can be signaled in the form of an SEI message.
- the SEI message signaling the NNPFA syntax structure of Table 17 may be referred to as the NNPFA SEI message.
- the NNPFA SEI message may enable or disable the possible use of the target neural network post-processing filter identified by nnpfa_target_id for post-processing filtering of the picture set.
- the post-processing filter is used for different purposes or filters different color components, there may be multiple NNPFA SEI messages for the same picture.
- nnpfa_target_id may indicate a target neural network post-processing filter associated with the current picture and specified by one or more NNPFC SEI messages with nnpfc_id equal to nnfpa_target_id.
- nnpfa_target_id The value of nnpfa_target_id must be in the range of 0 to 2 32 - 2. nnpfa_target_id values in the range of 256 to 511 and in the range of 2 31 to 2 32 - 2 may be reserved for future use. Decoders should ignore NNPFA SEI messages with npfa_target_id in the range 256 to 511 or 2 31 to 2 32 - 2.
- a picture unit (PU) may be a set of NAL units including VCL NAL units of a coded picture and non-VCL VAL units related to them.
- NNPFC SEI message with nnpfc_id that is the same as the specific value of nnpfa_target_id of the current PU (picture unit).
- a picture unit includes both an NNPFC SEI message with an nnpfc_id of a specific value and an NNPFA SEI message with an nnpfa_target_id equal to the nnpfc_id of a specific value, the NNPFC SEI message must precede the NNPFA SEI message in decoding order.
- a value of 1 for nnpfa_cancel_flag may indicate that the persistence of the target neural network post-processing filter set by any previous NNPFA SEI message with the same nnpfa_target_id as the current SEI message is cancelled. That is, the target neural network post-processing filter is no longer used unless it is activated by another NNPFA SEI message with the same nnpfa_target_id and nnpfa_cancel_flag equal to 0 as the current SEI message.
- a value of 0 for nnpfa_cancel_flag may indicate that nnpfa_persistence_flag follows.
- nnpfa_persistence_flag can indicate the persistence of the target neural network post-processing filter for the current layer.
- a value of 0 in nnpfa_persistence_flag may indicate that the target neural network post-processing filter can only be used for post-processing filtering for the current picture.
- a value of 1 in nnpfa_persistence_flag may indicate that the target neural network post-processing filter can be used for post-processing filtering for the current picture and all subsequent pictures in the current layer in output order until one or more of the following conditions are true.
- the target neural network post-processing filter is not applied to subsequent pictures in the current layer associated with the NNPFA SEI message with nnpfa_target_id equal to the current SEI message and nnpfa_cancel_flag equal to 1.
- the post-filter hint syntax structure in Table 18 can be signaled in the form of an SEI message.
- An SEI message signaling the post-filter hint syntax structure of Table 18 may be referred to as a post-filter hint SEI message.
- the post-filter hint SEI message may provide post-filter coefficients or correlation information for the design of the post-filter for potential use in post-processing the decoded and output picture set to achieve improved display quality.
- filter_hint_cancel_flag may indicate that the SEI message cancels the persistence of the previous post-filter hint SEI message in the output order applied to the current layer.
- a value of 0 for filter_hint_cancel_flag may indicate that post-filter hint information follows.
- filter_hint_persistence_flag may indicate persistence of the post-filter hint SEI message for the current layer.
- a value of 0 in filter_hint_persistence_flag may indicate that the post-filter hint is applied only to the currently decoded picture.
- a value of 1 in filter_hint_persistence_flag may indicate that the post-filter hint SEI message is applied to the currently decoded picture and persists for all subsequent pictures in the current layer according to output order until one or more of the following conditions are true.
- filter_hint_size_y may indicate the vertical size of the filter coefficient or correlation array.
- the value of filter_hint_size_y must be in the range of 1 to 15.
- filter_hint_size_x may indicate the horizontal size of the filter coefficient or correlation array.
- the value of filter_hint_size_x must be in the range of 1 to 15.
- filter_hint_type may indicate the type of transmitted filter hint as shown in Table 19.
- the value of filter_hint_type must be in the range of 0 to 2.
- a filter_hint_type value equal to 3 does not exist in the bitstream. Decoders SHOULD ignore post-filter hint SEI messages with filter_hint_type of 3.
- a value of 1 in filter_hint_chroma_coeff_present_flag may indicate that filter coefficients for chroma exist.
- a value of 0 for filter_hint_chroma_coeff_present_flag may indicate that filter coefficients for chroma do not exist.
- filter_hint_value[ cIdx ][ cy ][ cx ] can represent the filter coefficients, or cross-correlation matrix elements between the original signal and the decoded signal, with 16-bit precision.
- the value of filter_hint_value[cIdx][cy][cx] must exist in the range of -2 31 + 1 to 2 31 - 1.
- cIdx represents a related color element
- cy may represent a counter in the vertical direction
- cx may represent a counter in the horizontal direction.
- the following can be applied.
- filter_hint_type if the value of filter_hint_type is 1, the filter coefficients of two one-dimensional FIR filters can be transmitted.
- the value of filter_hint_size_y should be 2.
- Index cy, which is 0, may represent the filter coefficients of the horizontal filter, and cy, which is 1, may represent the filter coefficients of the vertical filter.
- the horizontal filter is applied first and the results can be filtered by the vertical filter.
- the transmitted hint may indicate the cross-correlation matrix between the original signal s and the decoded signal s'.
- the normalized cross-correlation matrix for the relevant color component identified by cIdx of size filter_hint_size_y * filter_hint_size_x can be defined as Equation 4.
- Equation 4 s represents the sample array of the color component cIdx of the original picture, s' represents the array of the corresponding decoded picture, h represents the vertical height of the relevant color component, and w is the horizontal width of the relevant color component. , and bitDepth represents the bit depth of the color component.
- OffsetY is equal to ( filter_hint_size_y >> 1 )
- OffsetX is equal to ( filter_hint_size_x >> 1 )
- the decoder can derive a Wiener post-filter from the cross-correlation matrix of the original signal and the decoded signal and the auto-cross-correlation matrix of the decoded signal.
- the NNPFC SEI message includes a flag called nnpfc_formatting_and_purpose_flag.
- nnpfc_formatting_and_purpose_flag may indicate the presence of syntax elements related to descriptions containing formatting, purpose, and/or complexity information of the filter. The presence of this flag can be specified as follows.
- nnpfc_formatting_and_purpose_flag must have a value of 1. If the SEI message is not the first NNPFC SEI message with a specific nnpfc_id value within the current CLVS in decoding order, nnpfc_formatting_and_purpose_flag must have a value of 0.
- the above limitation has the problem of preventing the NNPFC SEI message containing the base neural network post-processing filter from being repeated.
- SEI messages When SEI messages are repeated, their content is usually limited to being the same.
- the above limitations prevent signaling of formatting, purpose and/or complexity from being present in repeated SEI messages.
- NNPFC is the NNPFC syntax structure of Tables 1 and 2, and may be signaled in the form of an SEI message.
- NNPFC may be an NNPFC SEI message.
- NNPFA is the NNPFA syntax structure in Table 17 and can be signaled in the form of an SEI message.
- NNPFA can be a NNPFA SEI message.
- the post-filter hint is the post-filter hint syntax structure of Table 18 and may be signaled in the form of an SEI message. In this case, the post-filter hint may be a post-filter hint SEI message.
- Embodiments according to the present disclosure may include various configurations to improve some or all of the problems described above.
- Each component can be applied individually or in combination of two or more.
- Configuration 1 Specifies that signaling of formatting, purpose and/or complexity information is present only in NNPFC SEI messages containing basic neural network post-processing filters.
- nnpfc_formatting_and_purpose_flag has a value of 1.
- NNPFC SEI message includes the basic neural network post-processing filter.
- NNPFC SEI message including basic neural network post-processing filter can be repeated.
- the repeated SEI message contains the same information as the first NNPFC SEI message (ie, the first message with a specific value of nnpfc_id).
- NNPFC SEI messages are not activated, regardless of whether they are repeated messages or contain default neural network post-processing filters or updates to neural network post-processing filters, until activated by a NNPFA SEI message. . That is, it does not apply to any picture unit (PU) and/or has no effect.
- Configuration 4 If a repeated NNPFC SEI message seiA containing the default neural network post-processing filter is followed by an NNPFC SEI message seiB with the same ID and containing an update to the neural network post-processing filter, then when seiA is activated, seiB The above updates by my filter are stopped.
- Configuration 5 In general, an NNPFC SEI message containing an underlying neural network post-processing filter is restricted to being repeated only before an NNPFC SEI message containing an update to the neural network post-processing filter with the same ID is present in the bitstream. .
- At least some of the above-described problems can be solved by redefining the semantics of some of the above-described NNPFC syntax elements in consideration of at least some of the configurations 1 to 5.
- Embodiment 1 according to the present disclosure can limit, modify, and/or change the semantics of the NNPFC SEI message as follows.
- the NNPFC SEI message may be restricted from being activated until activated by the NNPFA SEI message. Not activating the NNPFC SEI message may mean that the NNPFC SEI message does not apply and/or has no effect for any picture unit (PU).
- PU picture unit
- the NNPFC SEI message is not the first NNPFC SEI message in decoding order with a specific nnpfc_id value in the current CLVS and is not a repetition of the first NNPFC SEI message with the same nnpfc_id value
- the following may apply:
- the SEI message may define an update regarding the basic post-processing filter that precedes the decoding order with the same nnpfc_id value.
- the SEI message is related to the currently decoded picture and all subsequent decoded pictures of the current layer in output order until the current CLVS ends or until the next NNPFC SEI message with a specific nnpfc_id value in the current CLVS in output order. It can be.
- nnpfc_formatting_and_purpose_flag can be redefined as follows.
- a value of 1 in nnpfc_formatting_and_purpose_flag may indicate the presence of syntax elements related to filter purpose, input formatting, output formatting, and/or complexity.
- a value of 0 for nnpfc_formatting_and_purpose_flag may indicate that syntax elements related to filter purpose, input formatting, output formatting, and/or complexity are not present.
- nnpfc_formatting_and_purpose_flag may be limited to have a value of 1. If the NNPFC SEI message is a repetition of the first NNPFC SEI message with the same nnpfc_id, its content may be limited to be the same as the first SEI message. That is, nnpfc_formatting_and_purpose_flag may be limited to have a value of 1.
- the SEI message is not the first NNPFC SEI message with a specific nnpfc_id value within the current CLVS in decoding order, and nnpfc_formatting_and_purpose_flag is restricted to have a value of 1, the SEI message is a repetition of the first SEI message with the same nnpfc_id You can. If the NNPFC SEI message has a specific nnpfc_id value and nnpfc_formatting_and_purpose_flag has a value of 0, the SEI message may include an update to the basic post-processing filter.
- the NNPFC SEI message including the basic neural network post-processing filter may be repeated. Additionally, the repeated NNPFC SEI message may have the same content as the first NNPFC SEI message with the same nnpfc_id value in the current CLVS in decoding order. Including the above effects, according to Example 1 of the present disclosure, the effect of solving the problems of the prior art described above can be expected.
- Embodiment 2 according to the present disclosure can limit, modify, and/or change the semantics of the NNPFC SEI message as follows.
- the NNPFC SEI message is not the first NNPFC SEI message in the decoding order with a specific nnpfc_id value in the current CLVS and is not a repetition of the first NNPFC SEI message with the same nnpfc_id value, the following This can be applied.
- the SEI message may define an update regarding the basic post-processing filter that precedes the decoding order with the same nnpfc_id value.
- the SEI message is related to the currently decoded picture and all subsequent decoded pictures of the current layer in output order until the current CLVS ends or until the next NNPFC SEI message with a specific nnpfc_id value in the current CLVS in output order. It can be.
- nnpfc_formatting_and_purpose_flag can be redefined as follows.
- a value of 1 in nnpfc_formatting_and_purpose_flag may indicate the presence of syntax elements related to filter purpose, input formatting, output formatting, and/or complexity.
- a value of 0 for nnpfc_formatting_and_purpose_flag may indicate that syntax elements related to filter purpose, input formatting, output formatting, and/or complexity are not present.
- nnpfc_formatting_and_purpose_flag may be limited to have a value of 1. If the NNPFC SEI message is a repetition of the first NNPFC SEI message with the same nnpfc_id, its content may be limited to be the same as the first SEI message. That is, nnpfc_formatting_and_purpose_flag may be limited to have a value of 1.
- the SEI message is not the first NNPFC SEI message with a specific nnpfc_id value within the current CLVS in decoding order, and nnpfc_formatting_and_purpose_flag is restricted to have a value of 1, the SEI message is a repetition of the first SEI message with the same nnpfc_id You can.
- NNPFC SEI message that has a specific nnpfc_id value and is a repetition of a previous SEI message may be restricted so that it cannot exist after an NNPFC SEI that has the same nnpfc_id value and nnpfc_formatting_and_purpose_flag is restricted to have a value of 0.
- NNPFC SEI messages with a specific nnpfc_id value and nnpfc_formatting_and_purpose_flag of 0 may contain updates to the default post-processing filter.
- the NNPFC SEI message including the basic neural network post-processing filter may be repeated. Additionally, the repeated NNPFC SEI message may have the same content as the first NNPFC SEI message with the same nnpfc_id value in the current CLVS in decoding order. Including the above effects, according to Example 2 of the present disclosure, the effect of solving the problems of the prior art described above can be expected.
- the image encoding method of FIG. 5 may be performed by the image encoding device 100, and the image decoding method of FIG. 6 may be performed by the image decoding device 200.
- the image encoding device may generate NNPF (Neural-network post-filter) related information regarding the neural network post-processing filter to be applied to the current picture (S501).
- the image encoding device may encode the generated NNPF-related information and generate an NNPF (Neural-network post-filter) related SEI message (S502).
- the video encoding device may transmit the generated NNPF-related SEI message to, for example, the video decoding device (S503).
- the video encoding device performs steps S501 and S502, and step S503 may be part of a transmission method performed by a separate transmission device.
- the video decoding device may receive an NNPF-related SEI message regarding a neural network post-processing filter to be applied to the current picture (S601).
- the video decoding device can restore NNPF-related information by decoding the received NNPF-related SEI message (S602).
- the video decoding device can apply NNPF to the current picture based on the restored NNPF-related information (S603). Steps S602 and S603 may be performed on the condition that NNPF is applied to the current picture.
- the NNPF-related SEI message may include an NNPFC SEI message, an NNPFA SEI message, and/or an SEI message regarding a post-filter hint according to the present disclosure. Additionally, NNPF-related information may mean information signaled by syntax elements included in the NNPF-related SEI message.
- the NNPFC SEI message may include syntax elements such as nnpfc_id, nnpfc_formatting_and_purpose_flag, etc.
- nnpfc_id is for identifying a post-processing filter and can be expressed as “filter identification information.”
- nnpfc_formatting_and_purpose_flag indicates whether syntax elements related to filter properties such as filter purpose, input formatting, output formatting, and/or complexity exist, and may be expressed as “filter property present information.”
- Embodiments according to the present disclosure regarding the NNPFC SEI message and the configuration according to the present disclosure may be applied to the video encoding method and/or video decoding method according to the present disclosure described with reference to FIGS. 5 and 6.
- the NNPF-related SEI message is a neural network NNPFC (NNPFC) including filter identification information and filter property presence information.
- NNPFC neural network NNPFC
- -network post-filter characteristics SEI message and based on the NNPFC SEI message including a base NNPF, the filter characteristic presence information will be limited to have a first value indicating that the filter characteristic exists. You can.
- the NNPFC SEI message is a repeated NNPFC SEI message that is a repetition of the first NNPFC SEI message having the same filter identification information value
- the content of the repeated NNPFC SEI message may be limited to be the same as the first NNPFC SEI message.
- the filter characteristic presence information of the repeated NNPFC SEI message may be limited to have a first value.
- the NNPFC SEI message is not the first NNPFC SEI message having a value of specific filter identification information in the current CLVS in decoding order, and the NNPFC SEI message Based on the fact that the filter characteristic presence information of is limited to have a first value, the NNPFC SEI message may be a repeated NNPFC SEI message that is a repetition of the first NNPFC SEI message with the value of the same filter identification information.
- the NNPFC SEI message has a value of specific filter identification information, and the filter characteristic presence information has a second value indicating that the filter characteristic does not exist. Based on availability, the NNPFC SEI message may include updates to the underlying NNPF.
- the NNPFC SEI message is not the first NNPFC SEI message having the value of specific filter identification information in the current CLVS in the decoding order, and the same filter identification information Based on the non-repetition of the first NNPFC SEI message with a value of , the NNPFC SEI message may include an update to the preceding basic NNPF in decoding order with the same filter identification value.
- the NNPFC SEI message is transmitted until the current CLVS ends or until the next NNPFC SEI message having the value of specific filter identification information in the current CLVS in output order. It may be related to the current picture and all subsequent decoded pictures of the current layer in output order.
- the NNPFC SEI message may be restricted from being activated until activated by the NNPFA SEI message.
- the NNPFC SEI message is a repeated NNPFC SEI message that is a repetition of a previous NNPFC SEI message having a value of specific filter identification information
- the repetition The NNPFC SEI message may be restricted to not exist after the NNPFC SEI message that has the same filter identification information value and the filter characteristic presence information is restricted to have a second value indicating that the filter characteristic does not exist.
- bitstream generated by the video encoding method according to the present disclosure may be stored in a computer-readable non-transitory recording medium.
- bitstream generated by the video encoding method according to the present disclosure may be transmitted, for example, to a video decoding device.
- the NNPFC SEI message including the basic neural network post-processing filter may be repeated. Additionally, the repeated NNPFC SEI message may have the same content as the first NNPFC SEI message with the same nnpfc_id value in the current CLVS in decoding order. Including the above effects, the effect of solving various problems described as problems in the prior art can be expected.
- Figure 7 is a diagram illustrating an exemplary content streaming system to which an embodiment according to the present disclosure can be applied.
- a content streaming system to which an embodiment of the present disclosure is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server compresses content input from multimedia input devices such as smartphones, cameras, camcorders, etc. into digital data, generates a bitstream, and transmits it to the streaming server.
- multimedia input devices such as smartphones, cameras, camcorders, etc. directly generate bitstreams
- the encoding server may be omitted.
- the bitstream may be generated by an image encoding method and/or an image encoding device to which an embodiment of the present disclosure is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
- the streaming server transmits multimedia data to the user device based on a user request through a web server, and the web server can serve as a medium to inform the user of what services are available.
- the web server delivers it to a streaming server, and the streaming server can transmit multimedia data to the user.
- the content streaming system may include a separate control server, and in this case, the control server may control commands/responses between each device in the content streaming system.
- the streaming server may receive content from a media repository and/or encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a certain period of time.
- Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation, slate PCs, Tablet PC, ultrabook, wearable device (e.g. smartwatch, smart glass, head mounted display), digital TV, desktop There may be computers, digital signage, etc.
- PDAs personal digital assistants
- PMPs portable multimedia players
- navigation slate PCs
- Tablet PC ultrabook
- wearable device e.g. smartwatch, smart glass, head mounted display
- digital TV desktop There may be computers, digital signage, etc.
- Each server in the content streaming system may be operated as a distributed server, and in this case, data received from each server may be distributedly processed.
- the scope of the present disclosure is software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that cause operations according to the methods of various embodiments to be executed on a device or computer, and such software or It includes non-transitory computer-readable medium in which instructions, etc. are stored and can be executed on a device or computer.
- software or machine-executable instructions e.g., operating system, application, firmware, program, etc.
- Embodiments according to the present disclosure can be used to encode/decode images.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
영상 부호화/복호화 방법, 비트스트림 전송 방법 및 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공된다. 본 개시에 따른 영상 복호화 방법은, 현재 픽처에 적용될 NNPF(neural-network post-filter) 관련 SEI(supplemental enhancement information) 메시지를 수신하는 단계, 상기 NNPF 관련 SEI 메시지에 기반하여 NNPF 관련 정보를 복원하는 단계, 및 상기 NNPF 관련 정보에 기반하여 상기 현재 픽처에 NNPF를 적용하는 단계를 포함할 수 있다. 상기 NNPF 관련 SEI 메시지는 필터 식별 정보(filter identification information) 및 필터 특성 존재 정보(filter property present information)를 포함하는 NNPFC(neural-network post-filter characteristics) SEI 메시지를 포함하고, 상기 NNPFC SEI 메시지가 기본(base) NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한될 수 있다.
Description
본 개시는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체에 관한 것으로서, NNPFC SEI 메시지의 반복을 처리하는 방법 등에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하게 된다. 전송되는 정보량 또는 비트량의 증가는 전송 비용과 저장 비용의 증가를 초래한다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위한 고효율의 영상 압축 기술이 요구된다.
본 개시는 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있는 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 반복된 NNPFC SEI 메시지는 디코딩 순서상 현재 CLVS 내에서 동일 필터 식별 정보(e.g. nnpfc_id) 값을 갖는 첫 번째 NNPFC SEI 메시지와 동일한 내용(content)을 가질 수 있는 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에서 종래 기술의 문제점으로 기재된 다양한 문제들 중 적어도 일부가 해소될 수 있는 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 복호화 장치에 의해 수신되고 복호화되어 영상의 복원에 이용되는 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 개시는 본 개시에 따른 영상 부호화 방법에 의해 생성된 비트스트림을 전송하는 방법을 제공하는 것을 목적으로 한다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따른 영상 복호화 방법은, 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서, 현재 픽처에 적용될 NNPF(neural-network post-filter) 관련 SEI(supplemental enhancement information) 메시지를 수신하는 단계, 상기 NNPF 관련 SEI 메시지에 기반하여 NNPF 관련 정보를 복원하는 단계, 및 상기 NNPF 관련 정보에 기반하여 상기 현재 픽처에 NNPF를 적용하는 단계를 포함하고, 상기 NNPF 관련 SEI 메시지는 필터 식별 정보(filter identification information) 및 필터 특성 존재 정보(filter property present information)를 포함하는 NNPFC(neural-network post-filter characteristics) SEI 메시지를 포함하고, 상기 NNPFC SEI 메시지가 기본(base) NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한될 수 있다.
본 개시의 다른 양상에 따른 영상 부호화 방법은, 영상 부호화 장치에 의해 수행되는 영상 부호화 방법으로서, 상기 영상 부호화 방법은, 현재 픽처에 적용될 NNPF 관련 정보를 생성하는 단계, 및 상기 NNPF 관련 정보에 기반하여 NNPF 관련 SEI 메시지를 생성하는 단계를 포함하고, 상기 NNPF 관련 SEI 메시지는 필터 식별 정보 및 필터 특성 존재 정보를 포함하는 NNPFC SEI 메시지를 포함하고, 상기 NNPFC SEI 메시지가 기본 NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한될 수 있다.
본 개시의 또 다른 양상에 따른 컴퓨터 판독 가능한 기록 매체는, 본 개시의 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 개시의 또 다른 양상에 따른 전송 방법은, 본 개시의 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 전송할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 부호화/복호화 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 개시에 따르면, 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있다.
또한, 본 개시에 따르면, 반복된 NNPFC SEI 메시지는 디코딩 순서상 현재 CLVS 내에서 동일 필터 식별 정보(e.g. nnpfc_id) 값을 갖는 첫 번째 NNPFC SEI 메시지와 동일한 내용(content)을 가질 수 있다.
또한, 본 개시에 따르면, 본 개시에서 종래 기술의 문제점으로 기재된 다양한 문제들이 해소될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
또한, 본 개시에 따르면, 본 개시에 따른 영상 복호화 장치에 의해 수신되고 복호화되어 영상의 복원에 이용되는 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
또한, 본 개시에 따르면, 영상 부호화 방법에 의해 생성된 비트스트림을 전송하는 방법이 제공될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시에 따른 실시예가 적용될 수 있는 비디오 코딩 시스템을 개략적으로 나타내는 도면이다.
도 2는 본 개시에 따른 실시예가 적용될 수 있는 영상 부호화 장치를 개략적으로 나타내는 도면이다.
도 3은 본 개시에 따른 실시예가 적용될 수 있는 영상 복호화 장치를 개략적으로 나타내는 도면이다.
도 4는 루마 채널의 유도를 위한 인터리브(interleaved) 방식을 설명하기 위한 도면이다.
도 5는 본 개시에 따른 실시예가 적용될 수 있는 영상 부호화 방법을 설명하기 위한 순서도이다.
도 6은 본 개시에 따른 실시예가 적용될 수 있는 영상 복호화 방법을 설명하기 위한 순서도이다.
도 7은 본 개시에 따른 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시적으로 나타내는 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 개시의 실시예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시예에서의 제1 구성요소는 다른 실시예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시예에서의 제2 구성요소를 다른 실시예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시예도 본 개시의 범위에 포함된다. 또한, 다양한 실시예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시예도 본 개시의 범위에 포함된다.
본 개시는 영상의 부호화 및 복호화에 관한 것으로서, 본 개시에서 사용되는 용어는, 본 개시에서 새롭게 정의되지 않는 한 본 개시가 속한 기술 분야에서 통용되는 통상의 의미를 가질 수 있다.
본 개시에서 "픽처(picture)"는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)/타일(tile)은 픽처의 일부를 구성하는 부호화 단위로서, 하나의 픽처는 하나 이상의 슬라이스/타일로 구성될 수 있다. 또한, 슬라이스/타일은 하나 이상의 CTU(coding tree unit)를 포함할 수 있다.
본 개시에서 "픽셀(pixel)" 또는 "펠(pel)"은 하나의 픽처(또는 영상)를 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 "샘플(sample)"이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 루마(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 크로마(chroma) 성분의 픽셀/픽셀값만을 나타낼 수도 있다.
본 개시에서 "유닛(unit)"은 영상 처리의 기본 단위를 나타낼 수 있다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 "샘플 어레이", "블록(block)" 또는 "영역(area)" 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들(또는 샘플 어레이) 또는 변환 계수(transform coefficient)들의 집합(또는 어레이)을 포함할 수 있다.
본 개시에서 "현재 블록"은 "현재 코딩 블록", "현재 코딩 유닛", "부호화 대상 블록", "복호화 대상 블록" 또는 "처리 대상 블록" 중 하나를 의미할 수 있다. 예측이 수행되는 경우, "현재 블록"은 "현재 예측 블록" 또는 "예측 대상 블록"을 의미할 수 있다. 변환(역변환)/양자화(역양자화)가 수행되는 경우, "현재 블록"은 "현재 변환 블록" 또는 "변환 대상 블록"을 의미할 수 있다. 필터링이 수행되는 경우, "현재 블록"은 "필터링 대상 블록"을 의미할 수 있다.
본 개시에서 "현재 블록"은 크로마 블록이라는 명시적인 기재가 없는 한 루마 성분 블록과 크로마 성분 블록을 모두 포함하는 블록 또는 "현재 블록의 루마 블록"을 의미할 수 있다. 현재 블록의 루마 성분 블록은 명시적으로 "루마 블록" 또는 "현재 루마 블록"과 같이 루마 성분 블록이라는 명시적인 기재를 포함하여 표현될 수 있다. 또한, 현재 블록의 크로마 성분 블록은 명시적으로 "크로마 블록" 또는 "현재 크로마 블록"과 같이 크로마 성분 블록이라는 명시적인 기재를 포함하여 표현될 수 있다.
본 개시에서 "/"와 ","는 "및/또는"으로 해석될 수 있다. 예를 들어, "A/B"와 "A, B"는 "A 및/또는 B"로 해석될 수 있다. 또한, "A/B/C"와 "A, B, C"는 "A, B 및/또는 C 중 적어도 하나"를 의미할 수 있다.
본 개시에서 "또는"은 "및/또는"으로 해석될 수 있다. 예를 들어, "A 또는 B"는, 1) "A" 만을 의미하거나 2) "B" 만을 의미하거나, 3) "A 및 B"를 의미할 수 있다. 또는, 본 개시에서 "또는"은 "추가적으로 또는 대체적으로(additionally or alternatively)"를 의미할 수 있다.
비디오 코딩 시스템 개요
도 1은 본 개시에 따른 실시예가 적용될 수 있는 비디오 코딩 시스템을 개략적으로 나타내는 도면이다.
일 실시예에 따른 비디오 코딩 시스템은 부호화 장치(10) 및 복호화 장치(20)를 포함할 수 있다. 부호화 장치(10)는 부호화된 비디오(video) 및/또는 영상(image) 정보 또는 데이터를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 복호화 장치(20)로 전달할 수 있다.
일 실시예에 따른 부호화 장치(10)는 비디오 소스 생성부(11), 부호화부(12), 전송부(13)를 포함할 수 있다. 일 실시예에 따른 복호화 장치(20)는 수신부(21), 복호화부(22) 및 렌더링부(23)를 포함할 수 있다. 상기 부호화부(12)는 비디오/영상 부호화부라고 불릴 수 있고, 상기 복호화부(22)는 비디오/영상 복호화부라고 불릴 수 있다. 전송부(13)는 부호화부(12)에 포함될 수 있다. 수신부(21)는 복호화부(22)에 포함될 수 있다. 렌더링부(23)는 디스플레이부를 포함할 수도 있고, 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다.
비디오 소스 생성부(11)는 비디오/영상의 캡쳐, 합성 또는 생성 과정 등을 통하여 비디오/영상을 획득할 수 있다. 비디오 소스 생성부(11)는 비디오/영상 캡쳐 디바이스 및/또는 비디오/영상 생성 디바이스를 포함할 수 있다. 비디오/영상 캡쳐 디바이스는 예를 들어, 하나 이상의 카메라, 이전에 캡쳐된 비디오/영상을 포함하는 비디오/영상 아카이브 등을 포함할 수 있다. 비디오/영상 생성 디바이스는 예를 들어 컴퓨터, 타블렛 및 스마트폰 등을 포함할 수 있으며 (전자적으로) 비디오/영상을 생성할 수 있다. 예를 들어, 컴퓨터 등을 통하여 가상의 비디오/영상이 생성될 수 있으며, 이 경우 관련 데이터가 생성되는 과정으로 비디오/영상 캡쳐 과정이 갈음될 수 있다.
부호화부(12)는 입력 비디오/영상을 부호화할 수 있다. 부호화부(12)는 압축 및 부호화 효율을 위하여 예측, 변환, 양자화 등 일련의 절차를 수행할 수 있다. 부호화부(12)는 부호화된 데이터(부호화된 비디오/영상 정보)를 비트스트림(bitstream) 형태로 출력할 수 있다.
전송부(13)는 비트스트림 형태로 출력된 부호화된 비디오/영상 정보 또는 데이터를 획득할 수 있으며, 이를 파일 또는 스트리밍 형태로 디지털 저장매체 또는 네트워크를 통하여 복호화 장치(20)의 수신부(21) 또는 다른 외부 객체로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부(13)는 미리 정해진 파일 포맷을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘리먼트를 포함할 수 있다. 전송부(13)는 부호화 장치(12)와는 별개의 전송 장치로 구비될 수 있으며, 이 경우 전송 장치는 비트스트림 형태로 출력된 부호화된 비디오/영상 정보 또는 데이터를 획득하는 적어도 하나의 프로세서와 이를 파일 또는 스트리밍 형태로 전달하는 전송부를 포함할 수 있다. 수신부(21)는 상기 저장매체 또는 네트워크로부터 상기 비트스트림을 추출/수신하여 복호화부(22)로 전달할 수 있다.
복호화부(22)는 부호화부(12)의 동작에 대응하는 역양자화, 역변환, 예측 등 일련의 절차를 수행하여 비디오/영상을 복호화할 수 있다.
렌더링부(23)는 복호화된 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다.
영상 부호화 장치 개요
도 2는 본 개시에 따른 실시예가 적용될 수 있는 영상 부호화 장치를 개략적으로 도시한 도면이다.
도 2에 도시된 바와 같이, 영상 부호화 장치(100)는 영상 분할부(110), 감산부(115), 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150), 가산부(155), 필터링부(160), 메모리(170), 인터 예측부(180), 인트라 예측부(185) 및 엔트로피 인코딩부(190)를 포함할 수 있다. 인터 예측부(180) 및 인트라 예측부(185)는 합쳐서 "예측부"라고 지칭될 수 있다. 변환부(120), 양자화부(130), 역양자화부(140), 역변환부(150)는 레지듀얼(residual) 처리부에 포함될 수 있다. 레지듀얼 처리부는 감산부(115)를 더 포함할 수도 있다.
영상 부호화 장치(100)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어, 인코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB(decoded picture buffer)를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
영상 분할부(110)는 영상 부호화 장치(100)에 입력된 입력 영상(또는, 픽쳐, 프레임)을 하나 이상의 처리 유닛(processing unit)으로 분할할 수 있다. 일 예로, 상기 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU) 또는 최대 코딩 유닛(largest coding unit, LCU)을 QT/BT/TT (Quad-tree/binary-tree/ternary-tree) 구조에 따라 재귀적으로(recursively) 분할함으로써 획득될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조, 바이너리 트리 구조 및/또는 터너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 코딩 유닛의 분할을 위해, 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조 및/또는 터너리 트리 구조가 나중에 적용될 수 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 개시에 따른 코딩 절차가 수행될 수 있다. 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 최대 코딩 유닛을 분할하여 획득한 하위 뎁스의 코딩 유닛이 최종 코딩 유닛으로 사용될 수도 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환 및/또는 복원 등의 절차를 포함할 수 있다. 다른 예로, 상기 코딩 절차의 처리 유닛은 예측 유닛(PU: Prediction Unit) 또는 변환 유닛(TU: Transform Unit)일 수 있다. 상기 예측 유닛 및 상기 변환 유닛은 각각 상기 최종 코딩 유닛으로부터 분할 또는 파티셔닝될 수 있다. 상기 예측 유닛은 샘플 예측의 단위일 수 있고, 상기 변환 유닛은 변환 계수를 유도하는 단위 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 단위일 수 있다.
예측부(인터 예측부(180) 또는 인트라 예측부(185))는 처리 대상 블록(현재 블록)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 현재 블록 또는 CU 단위로 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있다. 예측부는 현재 블록의 예측에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 예측에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
인트라 예측부(185)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 상기 참조되는 샘플들은 인트라 예측 모드 및/또는 인트라 예측 기법에 따라 상기 현재 블록의 주변(neighbor)에 위치할 수 있고, 또는 떨어져서 위치할 수도 있다. 인트라 예측 모드들은 복수의 비방향성 모드와 복수의 방향성 모드를 포함할 수 있다. 비방향성 모드는 예를 들어 DC 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 방향성 모드는 예측 방향의 세밀한 정도에 따라, 예를 들어 33개의 방향성 예측 모드 또는 65개의 방향성 예측 모드를 포함할 수 있다. 다만, 이는 예시로서 설정에 따라 그 이상 또는 그 이하의 개수의 방향성 예측 모드들이 사용될 수 있다. 인트라 예측부(185)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.
인터 예측부(180)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 참조 블록을 포함하는 참조 픽처와 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일할 수도 있고, 서로 다를 수도 있다. 상기 시간적 주변 블록은 동일 위치 참조 블록(collocated reference block), 동일 위치 CU(colCU) 등의 이름으로 불릴 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수 있다. 예를 들어, 인터 예측부(180)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출하기 위하여 어떤 후보가 사용되는지를 지시하는 정보를 생성할 수 있다. 다양한 예측 모드를 기반으로 인터 예측이 수행될 수 있으며, 예를 들어 스킵 모드와 머지 모드의 경우에, 인터 예측부(180)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 레지듀얼 신호가 전송되지 않을 수 있다. 움직임 정보 예측(motion vector prediction, MVP) 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하고, 움직임 벡터 차분(motion vector difference) 및 움직임 벡터 예측자에 대한 지시자(indicator)를 부호화함으로써 현재 블록의 움직임 벡터를 시그널링할 수 있다. 움직임 벡터 차분은 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 차이를 의미할 수 있다.
예측부는 후술하는 다양한 예측 방법 및/또는 예측 기법을 기반으로 예측 신호를 생성할 수 있다. 예를 들어, 예측부는 현재 블록의 예측을 위해 인트라 예측 또는 인터 예측을 적용할 수 있을 뿐 아니라, 인트라 예측과 인터 예측을 동시에 적용할 수 있다. 현재 블록의 예측을 위해 인트라 예측과 인터 예측을 동시에 적용하는 예측 방법은 combined inter and intra prediction (CIIP)라고 불릴 수 있다. 또한, 예측부는 현재 블록의 예측을 위해 인트라 블록 카피(intra block copy, IBC)를 수행할 수도 있다. 인트라 블록 카피는 예를 들어 SCC(screen content coding) 등과 같이 게임 등의 컨텐츠 영상/동영상 코딩을 위하여 사용될 수 있다. IBC는 현재 블록으로부터 소정의 거리만큼 떨어진 위치의 현재 픽처 내 기복원된 참조 블록을 이용하여 현재 블록을 예측하는 방법이다. IBC가 적용되는 경우, 현재 픽처 내 참조 블록의 위치는 상기 소정의 거리에 해당하는 벡터(블록 벡터)로서 부호화될 수 있다. IBC는 기본적으로 현재 픽처 내에서 예측을 수행하나, 현재 픽처 내에서 참조 블록을 도출하는 점에서, 인터 예측과 유사하게 수행될 수 있다. 즉 IBC는 본 개시에서 설명되는 인터 예측 기법들 중 적어도 하나를 이용할 수 있다.
예측부를 통해 생성된 예측 신호는 복원 신호를 생성하기 위해 이용되거나 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 감산부(115)는 입력 영상 신호(원본 블록, 원본 샘플 어레이)로부터 예측부에서 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)를 감산하여 레지듀얼 신호(residual signal, 잔여 블록, 잔여 샘플 어레이)를 생성할 수 있다. 생성된 레지듀얼 신호는 변환부(120)로 전송될 수 있다.
변환부(120)는 레지듀얼 신호에 변환 기법을 적용하여 변환 계수들(transform coefficients)을 생성할 수 있다. 예를 들어, 변환 기법은 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT(Karhunen-Loeve Transform), GBT(Graph-Based Transform), 또는 CNT(Conditionally Non-linear Transform) 중 적어도 하나를 포함할 수 있다. 여기서, GBT는 픽셀 간의 관계 정보를 그래프로 표현한다고 할 때 이 그래프로부터 얻어진 변환을 의미한다. CNT는 이전에 복원된 모든 픽셀(all previously reconstructed pixel)을 이용하여 예측 신호를 생성하고 그에 기반하여 획득되는 변환을 의미한다. 변환 과정은 정사각형의 동일한 크기를 갖는 픽셀 블록에 적용될 수도 있고, 정사각형이 아닌 가변 크기의 블록에도 적용될 수 있다.
양자화부(130)는 변환 계수들을 양자화하여 엔트로피 인코딩부(190)로 전송할 수 있다. 엔트로피 인코딩부(190)는 양자화된 신호(양자화된 변환 계수들에 관한 정보)를 인코딩하여 비트스트림으로 출력할 수 있다. 상기 양자화된 변환 계수들에 관한 정보는 레지듀얼 정보라고 불릴 수 있다. 양자화부(130)는 계수 스캔 순서(scan order)를 기반으로 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있고, 상기 1차원 벡터 형태의 양자화된 변환 계수들을 기반으로 상기 양자화된 변환 계수들에 관한 정보를 생성할 수도 있다.
엔트로피 인코딩부(190)는 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 다양한 인코딩 방법을 수행할 수 있다. 엔트로피 인코딩부(190)는 양자화된 변환 계수들 외 비디오/이미지 복원에 필요한 정보들(예를 들어 신택스 요소들(syntax elements)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 인코딩된 정보(ex. 인코딩된 비디오/영상 정보)는 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 본 개시에서 언급된 시그널링 정보, 전송되는 정보 및/또는 신택스 요소들은 상술한 인코딩 절차를 통하여 인코딩되어 상기 비트스트림에 포함될 수 있다.
상기 비트스트림은 네트워크를 통하여 전송될 수 있고, 또는 디지털 저장매체에 저장될 수 있다. 여기서 네트워크는 방송망 및/또는 통신망 등을 포함할 수 있고, 디지털 저장매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장매체를 포함할 수 있다. 엔트로피 인코딩부(190)로부터 출력된 신호를 전송하는 전송부(미도시) 및/또는 저장하는 저장부(미도시)가 영상 부호화 장치(100)의 내/외부 엘리먼트로서 구비될 수 있고, 또는 전송부는 엔트로피 인코딩부(190)의 구성요소로서 구비될 수도 있다.
양자화부(130)로부터 출력된 양자화된 변환 계수들은 레지듀얼 신호를 생성하기 위해 이용될 수 있다. 예를 들어, 양자화된 변환 계수들에 역양자화부(140) 및 역변환부(150)를 통해 역양자화 및 역변환을 적용함으로써 레지듀얼 신호(레지듀얼 블록 or 레지듀얼 샘플들)를 복원할 수 있다.
가산부(155)는 복원된 레지듀얼 신호를 인터 예측부(180) 또는 인트라 예측부(185)로부터 출력된 예측 신호에 더함으로써 복원(reconstructed) 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(160)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(160)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(170), 구체적으로 메모리(170)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다. 필터링부(160)는 각 필터링 방법에 대한 설명에서 후술하는 바와 같이 필터링에 관한 다양한 정보를 생성하여 엔트로피 인코딩부(190)로 전달할 수 있다. 필터링에 관한 정보는 엔트로피 인코딩부(190)에서 인코딩되어 비트스트림 형태로 출력될 수 있다.
메모리(170)에 전송된 수정된 복원 픽처는 인터 예측부(180)에서 참조 픽처로 사용될 수 있다. 영상 부호화 장치(100)는 이를 통하여 인터 예측이 적용되는 경우, 영상 부호화 장치(100)와 영상 복호화 장치에서의 예측 미스매치를 피할 수 있고, 부호화 효율도 향상시킬 수 있다.
메모리(170) 내 DPB는 인터 예측부(180)에서의 참조 픽처로 사용하기 위해 수정된 복원 픽처를 저장할 수 있다. 메모리(170)는 현재 픽처 내 움직임 정보가 도출된(또는 인코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(180)에 전달될 수 있다. 메모리(170)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(185)에 전달할 수 있다.
영상 복호화 장치 개요
도 3은 본 개시에 따른 실시예가 적용될 수 있는 영상 복호화 장치를 개략적으로 도시한 도면이다.
도 3에 도시된 바와 같이, 영상 복호화 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265)를 포함하여 구성될 수 있다. 인터 예측부(260) 및 인트라 예측부(265)를 합쳐서 "예측부"라고 지칭될 수 있다. 역양자화부(220), 역변환부(230)는 레지듀얼 처리부에 포함될 수 있다.
영상 복호화 장치(200)를 구성하는 복수의 구성부들의 전부 또는 적어도 일부는 실시예에 따라 하나의 하드웨어 컴포넌트(예를 들어 디코더 또는 프로세서)로 구현될 수 있다. 또한 메모리(170)는 DPB를 포함할 수 있고, 디지털 저장 매체에 의하여 구현될 수 있다.
비디오/영상 정보를 포함하는 비트스트림을 수신한 영상 복호화 장치(200)는 도 2의 영상 부호화 장치(100)에서 수행된 프로세스에 대응하는 프로세스를 수행하여 영상을 복원할 수 있다. 예를 들어, 영상 복호화 장치(200)는 영상 부호화 장치에서 적용된 처리 유닛을 이용하여 디코딩을 수행할 수 있다. 따라서 디코딩의 처리 유닛은 예를 들어 코딩 유닛일 수 있다. 코딩 유닛은 코딩 트리 유닛이거나 또는 최대 코딩 유닛을 분할하여 획득될 수 있다. 그리고, 영상 복호화 장치(200)를 통해 디코딩 및 출력된 복원 영상 신호는 재생 장치(미도시)를 통해 재생될 수 있다.
영상 복호화 장치(200)는 도 2의 영상 부호화 장치로부터 출력된 신호를 비트스트림 형태로 수신할 수 있다. 수신된 신호는 엔트로피 디코딩부(210)를 통해 디코딩될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 상기 비트스트림을 파싱하여 영상 복원(또는 픽처 복원)에 필요한 정보(예를 들어, 비디오/영상 정보)를 도출할 수 있다. 상기 비디오/영상 정보는 어댑테이션 파라미터 세트(APS), 픽처 파라미터 세트(PPS), 시퀀스 파라미터 세트(SPS) 또는 비디오 파라미터 세트(VPS) 등 다양한 파라미터 세트에 관한 정보를 더 포함할 수 있다. 또한 상기 비디오/영상 정보는 일반 제한 정보(general constraint information)를 더 포함할 수 있다. 영상 복호화 장치는 영상을 디코딩하기 위해 상기 파라미터 세트에 관한 정보 및/또는 상기 일반 제한 정보를 추가적으로 이용할 수 있다. 본 개시에서 언급된 시그널링 정보, 수신되는 정보 및/또는 신택스 요소들은 상기 디코딩 절차를 통하여 디코딩됨으로써 상기 비트스트림으로부터 획득될 수 있다. 예를 들어, 엔트로피 디코딩부(210)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 영상 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값들을 출력할 수 있다. 보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 블록 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)을 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. 엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(인터 예측부(260) 및 인트라 예측부(265))로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수들 및 관련 파라미터 정보는 역양자화부(220)로 입력될 수 있다. 또한, 엔트로피 디코딩부(210)에서 디코딩된 정보 중 필터링에 관한 정보는 필터링부(240)로 제공될 수 있다. 한편, 영상 부호화 장치로부터 출력된 신호를 수신하는 수신부(미도시)가 영상 복호화 장치(200)의 내/외부 엘리먼트로서 추가적으로 구비될 수 있고, 또는 수신부는 엔트로피 디코딩부(210)의 구성요소로서 구비될 수도 있다.
한편, 본 개시에 따른 영상 복호화 장치는 비디오/영상/픽처 복호화 장치라고 불릴 수 있다. 상기 영상 복호화 장치는 정보 디코더(비디오/영상/픽처 정보 디코더) 및/또는 샘플 디코더(비디오/영상/픽처 샘플 디코더)를 포함할 수도 있다. 상기 정보 디코더는 엔트로피 디코딩부(210)를 포함할 수 있고, 상기 샘플 디코더는 역양자화부(220), 역변환부(230), 가산부(235), 필터링부(240), 메모리(250), 인터 예측부(260) 및 인트라 예측부(265) 중 적어도 하나를 포함할 수 있다.
역양자화부(220)에서는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 출력할 수 있다. 역양자화부(220)는 양자화된 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 이 경우 상기 재정렬은 영상 부호화 장치에서 수행된 계수 스캔 순서에 기반하여 수행될 수 있다. 역양자화부(220)는 양자화 파라미터(예를 들어 양자화 스텝 사이즈 정보)를 이용하여 양자화된 변환 계수들에 대한 역양자화를 수행하고, 변환 계수들(transform coefficient)을 획득할 수 있다.
역변환부(230)에서는 변환 계수들을 역변환하여 레지듀얼 신호(레지듀얼 블록, 레지듀얼 샘플 어레이)를 획득할 수 있다.
예측부는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부는 엔트로피 디코딩부(210)로부터 출력된 상기 예측에 관한 정보를 기반으로 상기 현재 블록에 인트라 예측이 적용되는지 또는 인터 예측이 적용되는지 결정할 수 있고, 구체적인 인트라/인터 예측 모드(예측 기법)를 결정할 수 있다.
예측부가 후술하는 다양한 예측 방법(기법)을 기반으로 예측 신호를 생성할 수 있음은 영상 부호화 장치(100)의 예측부에 대한 설명에서 언급된 바와 동일하다.
인트라 예측부(265)는 현재 픽처 내의 샘플들을 참조하여 현재 블록을 예측할 수 있다. 인트라 예측부(185)에 대한 설명은 인트라 예측부(265)에 대해서도 동일하게 적용될 수 있다.
인터 예측부(260)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 참조 블록(참조 샘플 어레이)을 기반으로, 현재 블록에 대한 예측된 블록을 유도할 수 있다. 이때, 인터 예측 모드에서 전송되는 움직임 정보의 양을 줄이기 위해 주변 블록과 현재 블록 간의 움직임 정보의 상관성에 기반하여 움직임 정보를 블록, 서브블록 또는 샘플 단위로 예측할 수 있다. 상기 움직임 정보는 움직임 벡터 및 참조 픽처 인덱스를 포함할 수 있다. 상기 움직임 정보는 인터 예측 방향(L0 예측, L1 예측, Bi 예측 등) 정보를 더 포함할 수 있다. 인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 예를 들어, 인터 예측부(260)는 주변 블록들을 기반으로 움직임 정보 후보 리스트를 구성하고, 수신한 후보 선택 정보를 기반으로 상기 현재 블록의 움직임 벡터 및/또는 참조 픽처 인덱스를 도출할 수 있다. 다양한 예측 모드(기법)를 기반으로 인터 예측이 수행될 수 있으며, 상기 예측에 관한 정보는 상기 현재 블록에 대한 인터 예측의 모드(기법)를 지시하는 정보를 포함할 수 있다.
가산부(235)는 획득된 레지듀얼 신호를 예측부(인터 예측부(260) 및/또는 인트라 예측부(265) 포함)로부터 출력된 예측 신호(예측된 블록, 예측 샘플 어레이)에 더함으로써 복원 신호(복원 픽처, 복원 블록, 복원 샘플 어레이)를 생성할 수 있다. 스킵 모드가 적용된 경우와 같이 처리 대상 블록에 대한 레지듀얼이 없는 경우, 예측된 블록이 복원 블록으로 사용될 수 있다. 가산부(155)에 대한 설명은 가산부(235)에 대해서도 동일하게 적용될 수 있다. 가산부(235)는 복원부 또는 복원 블록 생성부라고 불릴 수 있다. 생성된 복원 신호는 현재 픽처 내 다음 처리 대상 블록의 인트라 예측을 위하여 사용될 수 있고, 후술하는 바와 같이 필터링을 거쳐서 다음 픽처의 인터 예측을 위하여 사용될 수도 있다.
필터링부(240)는 복원 신호에 필터링을 적용하여 주관적/객관적 화질을 향상시킬 수 있다. 예를 들어 필터링부(240)는 복원 픽처에 다양한 필터링 방법을 적용하여 수정된(modified) 복원 픽처를 생성할 수 있고, 상기 수정된 복원 픽처를 메모리(250), 구체적으로 메모리(250)의 DPB에 저장할 수 있다. 상기 다양한 필터링 방법은 예를 들어, 디블록킹 필터링, 샘플 적응적 오프셋(sample adaptive offset), 적응적 루프 필터(adaptive loop filter), 양방향 필터(bilateral filter) 등을 포함할 수 있다.
메모리(250)의 DPB에 저장된 (수정된) 복원 픽처는 인터 예측부(260)에서 참조 픽쳐로 사용될 수 있다. 메모리(250)는 현재 픽처 내 움직임 정보가 도출된(또는 디코딩된) 블록의 움직임 정보 및/또는 이미 복원된 픽처 내 블록들의 움직임 정보를 저장할 수 있다. 상기 저장된 움직임 정보는 공간적 주변 블록의 움직임 정보 또는 시간적 주변 블록의 움직임 정보로 활용하기 위하여 인터 예측부(260)에 전달할 수 있다. 메모리(250)는 현재 픽처 내 복원된 블록들의 복원 샘플들을 저장할 수 있고, 인트라 예측부(265)에 전달할 수 있다.
본 명세서에서, 영상 부호화 장치(100)의 필터링부(160), 인터 예측부(180) 및 인트라 예측부(185)에서 설명된 실시예들은 각각 영상 복호화 장치(200)의 필터링부(240), 인터 예측부(260) 및 인트라 예측부(265)에도 동일 또는 대응되도록 적용될 수 있다.
신경망 포스트 필터 특성(Neural-network post-filter characteristics, NNPFC)
표 1 및 표 2의 결합은 NNPFC 신택스 구조를 나타낸다.
표 1 및 표 2의 NNPFC 신택스 구조는 SEI(supplemental enhancement information) 메시지 형태로 시그널링될 수 있다. 표 1 및 표 2의 NNPFC 신택스 구조를 시그널링하는 SEI 메시지는 NNPFC SEI 메시지라고 지칭될 수 있다.
NNPFC SEI 메시지는 후처리(post-processing) 필터로 이용될 수 있는 신경망을 특정할 수 있다. 특정 픽처들에 대해 특정된 후처리 필터들의 사용은 신경망 포스트 필터 활성 SEI 메시지들(neural-network post-filter activation SEI messages)을 이용하여 나타낼 수 있다. 여기서, '후처리 필터'와 '포스트 필터'는 동일한 의미를 가질 수 있다.
이러한 SEI 메시지들을 사용하려면 아래와 같은 변수들의 정의가 필요할 수 있다.
- 디코딩된 출력 픽처의 너비와 높이는 루마 샘플 단위로 잘릴 수 있으며, 이 너비와 높이는 각각 CroppedWidth 및 CroppedHeight로 나타낼 수 있다.
- 크롭된(cropped) 디코딩된(decoded) 출력 픽처들의 루마 샘플 어레이인 CroppedYPic[idx]와, 크로마 샘플 어레이인 CroppedCbPic[idx] 및 CroppedCrPic[idx]는 이들이 존재하는 경우에 후처리 필터에 대한 입력으로 이용될 수 있으며, idx는 0 내지 numInputPics-1의 범위를 가질 수 있다.
- BitDepthY는 크롭된 디코딩된 출력 픽처들의 루마 샘플 어레이에 대한 비트 뎁스를 나타낼 수 있다.
- BitDepthC는 크롭된 디코딩된 출력 픽처들의 크로마 샘플 어레이들(존재하는 경우)의 비트 뎁스를 나타낼 수 있다.
- ChromaFormatIdc는 크로마 포맷 식별자를 나타낼 수 있다.
- nnpfc_auxiliary_inp_idc의 값이 1인 경우, 필터링 강도 제어 값 StrengthControlVal는 0 내지 1 범위의 실수이어야 한다.
변수 SubWidthC 및 SubHeightC는 ChromaFormatIdc로부터 유도될 수 있다. 동일한 픽처에 대해 둘 이상의 NNPFC SEI 메시지가 존재할 수 있다. 서로 다른 nnpfc_id 값을 가지는 둘 이상의 NNPFC SEI 메시지가 동일한 픽처에 대해 존재하거나 활성화된 경우, 둘 이상의 NNPFC SEI 메시지는 서로 같거나 다른 nnpfc_purpose 및 nnpfc_mode_idx 값을 가질 수 있다.
nnpfc_id는 후처리 필터를 식별하는 데 사용할 수 있는 식별 번호를 포함할 수 있다. nnpfc_id 값은 0 내지 232 - 2의 범위에 존재해야 한다. 256 내지 511 범위 및 231 내지 232 - 2 범위의 nnpfc_id 값은 향후 사용을 위해 예약될 수 있다. 디코더들은 256 내지 511 범위 또는 231 내지 232 - 2 범위의 nnpfc_id를 가진 NNPFC SEI 메시지를 무시해야 한다.
NNPFC SEI 메시지가 현재 CLVS(coded layer video sequence) 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지인 경우에는 다음이 적용될 수 있다.
- 상기 SEI 메시지는 기본(base) 후처리 필터를 나타낼 수 있다.
- 상기 SEI 메시지는, 출력 순서에서, 현재 CLVS가 종료될 때까지 현재 디코딩된 픽처 및 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련될 수 있다.
NNPFC SEI 메시지는 디코딩 순서에서 현재 CLVS 내 이전 NNPFC SEI 메시지의 반복일 수 있으며, 후속하는 시멘틱스들은 이 SEI 메시지가 현재 CLVS 내에서 동일한 내용을 가진 유일한 NNPFC SEI 메시지인 것처럼 적용될 수 있다.
NNPFC SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지가 아닌 경우에는 다음이 적용될 수 있다.
- 상기 SEI 메시지는, 출력 순서에서, 현재 CLVS 또는 현재 CLVS가 종료될 때까지 현재 디코딩된 픽처 및 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련되거나, 또는 출력 순서에서 현재 CLVS 내 특정 nnpfc_id 값을 갖는 다음 NNPFC SEI 메시지와 관련될 수 있다.
NNPFC SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지인 경우, nnpfc_mode_idc의 값 1은 nnpfc_id 값에 관련된 기본 후처리 필터가 신경망임을 나타낼 수 있으며, 상기 신경망은 태그 URI nnpfc_tag_uri로 식별되는 형식을 사용하여 nnpfc_uri로 표시된 URI에 의해 식별되는 신경망일 수 있다.
NNPFC SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지가 아닌 경우, nnpfc_mode_idc의 값 1은 동일한 nnpfc_id 값을 가진 기본 후처리 필터에 대한 업데이트가 태그 URI nnpfc_tag_uri로 식별되는 형식을 사용하여 nnpfc_uri로 표시된 URI로 정의됨을 나타낼 수 있다.
nnpfc_mode_idc의 값은 비트스트림에서 0 내지 1의 범위를 가지도록 제한될 수 있다. nnpfc_mode_idc에 대한 2 내지 255 범위의 값은 향후 사용을 위해 예약될 수 있으며, 비트스트림에 존재하지 않을 수 있다. 디코더들은 2 내지 255 범위의 nnpfc_mode_idc를 가지는 NNPFC SEI 메시지를 무시해야 한다. 255 보다 큰 nnpfc_mode_idc의 값들은 비트스트림에 존재하지 않으며, 향후 사용을 위해 예약되지 않을 수 있다.
상기 SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지인 경우, 후처리 필터 PostProcessingFilter()가 기본 후처리 필터와 동일하게 할당될 수 있다.
상기 SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지가 아닌 경우, 후처리 필터 PostProcessingFilter()는 상기 SEI 메시지에 의해 정의되는 업데이트를 기본 후처리 필터에 적용하여 획득될 수 있다.
업데이트는 누적되지 않으며, 오히려 각 업데이트는 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지에 의해 지정된 후처리 필터인 기본 후처리 필터에 적용될 수 있다.
nnpfc_reserved_zero_bit_a는 비트스트림 제한에 의해 0과 동일한 값을 가지도록 제한될 있다. 디코더들은 nnpfc_reserved_zero_bit_a의 값이 0이 아닌 NNPFC SEI 메시지들을 무시하도록 제한될 수 있다.
nnpfc_tag_uri는 기본 후처리 필터로 이용되는 신경망 또는 nnpfc_uri에 의해 특정되는 nnpfc_id 값을 사용한 기본 후처리 필터에 대한 업데이트를 식별하는 IETF RFC 4151에 특정된 신택스 및 시멘틱스를 가지는 태그 URI를 포함할 수 있다. nnpfc_tag_uri를 사용하면 중앙 등록 기관 없이도 nnrpf_uri가 지정한 신경망 데이터의 형식을 고유하게 식별할 수 있다. "tag:iso.org,2023:15938-17"과 동일한 nnpfc_tag_uri는 nnpfc_uri로 식별된 신경망 데이터가 ISO/IEC 15938-17을 준수함을 나타낼 수 있다.
nnpfc_uri는 기본 후처리 필터로 사용되는 신경망 또는 동일한 nnpfc_id 값을 사용하는 기본 후처리 필터에 대한 업데이트를 식별하는 IETF Internet Standard 66에 지정된 신택스 및 시멘틱스를 가지는 URI를 포함할 수 있다.
nnpfc_formatting_and_purpose_flag의 값 1은 필터 목적, 입력 포맷팅, 출력 포맷팅 및 복잡성과 관련된 신텍스 엘리먼트가 존재함을 나타낼 수 있다. nnpfc_formatting_and_purpose_flag의 값 0은 필터 목적, 입력 포맷팅, 출력 포맷팅 및 복잡성과 관련된 신택스 엘리먼트가 존재하지 않음을 나타낼 수 있다.
상기 SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지인 경우, nnpfc_formatting_and_purpose_flag의 값은 1과 같아야 할 수 있다. 상기 SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지가 아닌 경우, nnpfc_formatting_and_purpose_flag의 값은 0과 동일해야 할 수 있다.
nnpfc_purpose는 표 3에 명시된 후처리 필터의 목적을 나타낼 수 있다.
nnpfc_purpose의 값은 비트스트림 제한에 의해 0 내지 5의 범위에 존재해야 한다. nnpfc_purpose에 대한 6 내지 1023의 값은 비트스트림에 존재하지 않으며 향후 사용을 위해 예약될 수 있다. 디코더들은 6 내지 1203의 범위에 있는 nnpfc_purpose를 가진 NNPFC SEI 메시지를 무시해야 한다. 1023보다 큰 nnpfc_purpose 값은 비트스트림에 존재하지 않으며 향후 사용을 위해 예약되지 않는다.
Value | Interpretation |
0 | 애플리케이션에 의해 결정된 대로 사용될 수 있음 |
1 | 시각적 품질 향상 |
2 | 4:2:0 크로마 포맷으로부터 4:2:2 또는 4:4:4 크로마 포맷으로, 또는 4:2:2 크로마 포맷으로부터 4:4:4 크로마 포맷으로 크로마 업샘플링 |
3 | 크로마 포맷에 대한 변경 없이, 크롭된 디코딩된 출력 픽처의 너비와 높이 증가 |
4 | 크롭된 디코딩된 출력 픽처의 너비와 높이 증가 및 크로마 포맷 업샘플링 |
5 | 픽처 레이트 업샘플링 |
nnpfc_purpose의 예약된 값이 향후에 사용될 때, 이 SEI 메시지의 신택스는 nnpfc_purpose이 해당 값과 동일하다는 조건으로 존재하는 신택스 요소들로 확장될 수 있다.
SubWidthC의 값이 1이고 SubHeightC의 값이 1이면, nnpfc_purpose는 2 또는 4의 값을 가지지 않아야 한다.
nnpfc_out_sub_c_flag의 값 1은 outSubWidthC의 값이 1이고 outSubHeightC의 값이 1임을 나타낼 수 있다. nnpfc_out_sub_c_flag의 값 0은 outSubWidthC의 값이 2이고 outSubHeightC의 값이 1임을 나타낼 수 있다. nnpfc_out_sub_c_flag가 존재하지 않으면 outSubWidthC는 SubWidthC와 같은 것으로 추론될 수 있으며, outSubHeightC는 SubHeightC와 동일한 것으로 추론될 수 있다. ChromaFormatIdc의 값이 2이고 nnpfc_out_sub_c_flag가 존재하는 경우, nnpfc_out_sub_c_flag의 값은 1과 같아야 한다.
nnpfc_pic_width_in_luma_samples 및 nnpfc_pic_height_in_luma_samples는 크롭된 디코딩된 출력 픽처에 nnpfc_id로 식별된 후처리 필터를 적용한 결과로 발생하는 픽처의 루마 샘플 어레이의 너비와 높이를 각각 나타날 수 있다. nnpfc_pic_width_in_luma_samples 및 nnpfc_pic_height_in_luma_samples가 존재하지 않으면 각각은 CroppedWidth 및 CroppedHeight와 동일한 것으로 추론될 수 있다. nnpfc_pic_width_in_luma_samples의 값은 CroppedWidth로부터 CroppedWidth * 16 - 1까지의 범위에 있어야 한다. nnpfc_pic_height_in_luma_samples의 값은 CroppedHeight로부터 CroppedHeight * 16 - 1까지의 범위에 있어야 한다.
nnpfc_num_input_pics_minus2 + 2는 후처리 필터의 입력으로 사용되는 디코딩된 출력 픽처의 수를 나타낼 수 있다.
nnpfc_interpolated_pics[ i ]는 후처리 필터의 입력으로 사용되는 i번째 픽처와 (i + 1)번째 픽처 사이에서 후처리 필터에 의해 생성된 보간 픽처의 수를 나타낼 수 있다.
후처리 필터의 입력으로 사용되는 픽처 수를 나타내는 변수 numInputPics와 후처리 필터의 결과로 생성되는 전체 픽처 수를 나타내는 numOutputPics 변수는 표 4와 같이 유도될 수 있다.
nnpfc_component_last_flag의 값 1은 후처리 필터에 대한 입력 텐서 inputTensor의 마지막 차원과 후처리 필터의 결과인 출력 텐서 outputTensor가 현재 채널에 사용됨을 나타낼 수 있다. nnpfc_component_last_flag의 값 0은 후처리 필터에 대한 입력 텐서 inputTensor의 세 번째 차원과 후처리 필터의 결과인 출력 텐서 outputTensor가 현재 채널에 사용됨을 나타낼 수 있다.
입력 텐서와 출력 텐서의 첫 번째 차원은 일부 신경망 프레임워크에서 사용되는 배치 인덱스(batch index)에 사용될 수 있다. 이 SEI 메시지의 시멘틱스 내 공식은 0과 같은 배치 인덱스에 해당하는 배치 크기를 사용하지만, 신경망 추론에 대한 입력으로 사용되는 배치 크기를 결정하는 것은 후처리의 구현에 의해 결정될 수 있다.
예를 들어, nnpfc_inp_order_idc의 값이 3과 같고 nnpfc_auxiliary_inp_idc의 값이 1과 같을 때, 입력 텐서에는 4개의 루마 행렬, 2개의 크로마 행렬 및 1개의 보조 입력 행렬을 포함하여 7개의 채널들이 존재할 수 있다. 이 경우 DeriveInputTensors() 프로세스는 입력 텐서의 7개 채널 각각을 하나씩 유도할 수 있으며, 이러한 채널 중 특정 채널이 처리될 때 해당 채널은 프로세스 중 현재 채널이라고 지칭될 수 있다.
nnpfc_inp_format_idc는 크롭된 디코딩된 출력 픽처의 샘플 값을 후처리 필터의 입력 값으로 변환하는 방법을 나타낼 수 있다. nnpfc_inp_format_idc가 0인 경우 후처리 필터에 대한 입력 값은 실수이고 InpY() 및 InpC() 함수들은 수식 1과 같이 지정될 수 있다.
nnpfc_inp_format_idc의 값이 1이면 후처리 필터의 입력 값들은 부호 없는 정수들(unsigned integer numbers)이며, InpY() 및 InpC() 함수들은 표 5와 같이 유도될 수 있다.
변수 inpTensorBitDepth는 아래에서 설명되는 신택스 요소 nnpfc_inp_tensor_bitlength_minus8으로부터 유도될 수 있다.
1보다 큰 nnpfc_inp_format_idc의 값은 향후 사용을 위해 예약될 수 있으며, 비트스트림에는 존재하지 않을 수 있다. 디코더들은 nnpfc_inp_format_idc의 예약된 값들을 포함하는 NNPFC SEI 메시지를 무시해야 한다.
nnpfc_inp_tensor_bitlength_minus8 + 8은 입력 정수 텐서에서 루마 샘플 값들의 비트 뎁스를 나타낼 수 있다. inpTensorBitDepth의 값은 수식 2와 같이 유도될 수 있다.
nnpfc_inp_tensor_bitlength_minus8의 값은 0 내지 24의 범위에 존재해야 하는 것으로 제한될 수 있다.
nnpfc_inp_order_idc는 크롭된 디코딩된 출력 픽처의 샘플 어레이를 후처리 필터에 대한 입력 픽처들 중 하나로 정렬하는 방법을 나타낼 수 있다.
nnpfc_inp_order_idc의 값은 비트스트림에서 0 내지 3의 범위에 존재해야 한다. nnpfc_inp_order_idc에 대한 4~255의 값은 비트스트림에 존재하지 않는다. 디코더들은 4 내지 255의 범위에 존재하는 nnpfc_inp_order_idc를 가지는 NNPFC SEI 메시지를 무시해야 한다. 255보다 큰 nnpfc_inp_order_idc의 값은 비트스트림에 존재하지 않으며 향후 사용을 위해 예약되지 않는다.
ChromaFormatIdc의 값이 1이 아닌 경우, nnpfc_inp_order_idc의 값은 3이 아니어야 한다.
표 6에는 nnpfc_inp_order_idc 값에 대한 설명이 포함되어 있다.
nnpfc_inp_order_idc | Description |
0 | nnpfc_auxiliary_inp_idc의 값이 0이면, 각 입력 픽처에 대한 입력 텐서에 루마 행렬이 1개씩 존재할 수 있으며, 채널 수는 1일 수 있다. 그렇지 않고, nnpfc_auxiliary_inp_idc의 값이 1이면 루마 행렬과 보조 입력 행렬이 하나씩 존재할 수 있으며, 채널 수는 2일 수 있다. |
1 | nnpfc_auxiliary_inp_idc의 값이 0이면, 입력 텐서에 크로마 행렬이 2개 존재할 수 있으며 채널 개수는 2일 수 있다. 그렇지 않고, nnpfc_auxiliary_inp_idc의 값이 1이면 크로마 행렬 2개와 보조 입력 행렬이 1개 존재할 수 있으며 채널 개수는 3일 수 있다. |
2 | nnpfc_auxiliary_inp_idc의 값이 0이면, 입력 텐서에는 루마 행렬 1개와 크로마 행렬 2개가 존재할 수 있으며, 채널 개수는 3일 수 있다. 그렇지 않고, nnpfc_auxiliary_inp_idc의 값이 1이면 루마 행렬 1개, 크로마 행렬 2개, 보조 입력 행렬 1개가 존재할 수 있으며, 채널 개수는 4일 수 있다. |
3 | nnpfc_auxiliary_inp_idc의 값이 0이면, 입력 텐서에는 루마 행렬 4개와 크로마 행렬 2개가 존재할 수 있으며, 채널 수는 6일 수 있다. 그렇지 않고, nnpfc_auxiliary_inp_idc의 값이 1이면 루마 행렬 4개, 크로마 행렬 2개, 보조 입력 행렬 1개 존재할 수 있으며, 채널 수는 7일 수 있다. 루마 채널은 도 4와 같이 인터리브(interleaved) 방식으로 유도될 수 있다. nnpfc_inp_order_idc는 크로마 포맷이 4:2:0인 경우에만 사용할 수 있다. |
4 ... 255 | 예약됨 |
패치는 픽처의 성분(e.g., 루마 또는 크로마 성분)으로부터의 샘플들의 직사각형 어레이일 수 있다.
0보다 큰 nnpfc_auxiliary_inp_idc는 신경망 포스트-필터의 입력 텐서에 보조 입력 데이터가 존재함을 나타낼 수 있다. nnpfc_auxiliary_inp_idc의 값 0은 보조 입력 데이터가 입력 텐서에 존재하지 않음을 나타낼 수 있다. nnpfc_auxiliary_inp_idc의 값 1은 보조 입력 데이터가 표 7 내지 표 9에 나타낸 방법을 통해 유도됨을 나타낼 수 있다.
nnpfc_auxiliary_inp_idc의 값은 비트스트림에서 0 내지 1의 범위에 존재해야 한다. nnpfc_inp_order_idc에 대한 2~255의 값은 비트스트림에는 존재하지 않는다. 디코더들은 2 내지 255의 범위의 nnpfc_inp_order_idc를 가지는 NNPFC SEI 메시지를 무시해야 한다. 255보다 큰 nnpfc_inp_order_idc의 값은 비트스트림에 존재하지 않으며 향후 사용을 위해 예약되지 않는다.
주어진 수직 샘플 좌표 cTop 및 입력 텐서에 포함된 샘플 패치의 좌상단 샘플 위치를 지정하는 수평 샘플 좌표 cLeft에 대한 입력 텐서 inputTensor를 유도하기 위한 프로세스 DeriveInputTensors()는 표 7 내지 표 9의 결합과 같이 나타낼 수 있다.
nnpfc_separate_colour_description_present_flag의 값 1은 후처리 필터로 인한 픽처에 대한 기본 색상(colour primaries), 변환 특성들 및 행렬 계수들의 고유한 조합이 SEI 메시지 신택스 구조에 지정됨을 나타낼 수 있다. nnfpc_separate_colour_description_present_flag의 값 0은 후처리 필터로 인한 픽처의 기본 색상, 변환 특성들 및 행렬 계수들의 조합이 CLVS의 VUI 파라미터들에 표시된 것과 동일함을 나타낼 수 있다.
nnpfc_colour_primaries는 다음을 제외하고 vui_colour_primaries 신택스 요소에 대해 정의된 것과 동일한 시멘틱스를 가질 수 있다.
- nnpfc_colour_primaries는 CLVS에 사용되는 기본 색상이 아닌, SEI 메시지에 지정된 신경망 포스트-필터를 적용한 결과로 나타나는 픽처의 기본 색상을 나타낼 수 있다.
- NNPFC SEI 메시지에 nnpfc_colour_primaries가 존재하지 않으면, nnpfc_colour_primaries의 값은 vui_colour_primaries의 값과 동일한 것으로 추론될 수 있다.
nnpfc_transfer_characteristics는 다음을 제외하고 vui_transfer_characteristics 신택스 요소에 대해 정의된 것과 동일한 시멘틱스를 가질 수 있다.
- nnpfc_transfer_characteristics는 CLVS에 사용되는 변환 특성이 아닌, SEI 메시지에 지정된 신경망 포스트-필터를 적용한 결과로 나타나는 픽처의 변환 특성을 나타낼 수 있다.
- NNPFC SEI 메시지에 nnpfc_transfer_characteristics가 존재하지 않으면, nnpfc_transfer_characteristics의 값은 vui_transfer_characteristics의 값과 동일한 것으로 추론될 수 있다.
nnpfc_matrix_coeffs는 다음을 제외하고 vui_matrix_coeffs 신택스 요소에 대해 지정된 것과 동일한 시멘틱스를 가질 수 있다.
- nnpfc_matrix_coeffs는 CLVS에 사용되는 행렬 계수가 아니라, SEI 메시지에 지정된 신경망 포스트-필터를 적용한 결과로 나타나는 픽처의 행렬 계수를 나타낼 수 있다.
- NNPFC SEI 메시지에 nnpfc_matrix_coeffs가 존재하지 않으면, nnpfc_matrix_coeffs의 값은 vui_matrix_coeffs의 값과 동일한 것으로 추론될 수 있다.
- nnpfc_matrix_coeffs에 허용되는 값은 VUI 파라미터들의 시멘틱스에 대한 ChromaFormatIdc 값으로 표시되는 디코딩된 비디오 픽처들의 크로마 포맷에 의해 제한되지 않을 수 있다.
- nnpfc_matrix_coeffs의 값이 0과 같은 경우, nnpfc_out_order_idc의 값은 1 또는 3과 같을 수 없다.
nnpfc_out_format_id의 값 0은 후속하는 후처리 또는 디스플레이를 위해 요구되는 비트 뎁스 bitDepth에 대해, 후처리 필터에 의해 출력된 샘플 값이 0 내지 1의 값 범위가 0 내지 (1 << bitDepth) - 1의 부호 없는 정수 값 범위에 선형적으로 매핑되는 실수임을 나타낼 수 있다. nnpfc_out_format_flag의 값 1은 후처리 필터에 의해 출력된 샘플 값이 0 내지 ( 1 << ( nnpfc_out_tensor_bitlength_minus8 + 8 ) ) - 1 범위의 부호 없는 정수임을 나타낼 수 있다. 1보다 큰 nnpfc_out_format_idc의 값은 비트스트림에는 존재하지 않는다. 디코더들은 nnpfc_out_format_idc의 예약된 값을 포함하는 NNPFC SEI 메시지를 무시해야 한한다. '+ 8'은 출력 정수 텐서에서 샘플 값의 비트 뎁스를 나타낼 수 있다. nnpfc_out_tensor_bitlength_minus8의 값은 0 내지 24의 범위에 존재해야 한다.
nnpfc_out_order_idc는 후처리 필터로부터 출력되는 샘플들의 출력 순서를 나타낼 수 있다. nnpfc_out_order_idc의 값은 비트스트림에서 0 내지 3의 범위에 존재해야 한다. nnpfc_out_order_idc에 대한 4~255의 값은 비트스트림에는 존재하지 않는다. 디코더들은 4 내지 255의 범위에 존재하는 nnpfc_out_order_idc를 가지는 NNPFC SEI 메시지를 무시해야 한다. 255보다 큰 nnpfc_out_order_idc의 값은 비트스트림에 존재하지 않으며 향후 사용을 위해 예약되지 않는다. nnpfc_purpose의 값이 2 또는 4인 경우, nnpfc_out_order_idc의 값은 3과 같을 수 없다.
표 10에는 nnpfc_out_order_idc의 값에 대한 설명이 나타나 있다.
nnpfc_out_order_idc | Description |
0 | 루마 행렬만이 출력 텐서에 존재하므로, 채널의 수는 1과 같을 수 있다. |
1 | 오직 크로마 행렬들만이 출력 텐서에 존재하므로, 채널의 수는 2와 같을 수 있다. |
2 | 루마 및 크로마 행렬들이 출력 텐서에 존재하므로, 채널의 수는 3과 같을 수 있다. |
3 | 4개의 루마 행렬들과 2개의 크로마 행렬들이 출력 텐서에 존재하므로, 채널의 수는 6과 같을 수 있다. nnpfc_out_order_idc 크로마 포맷이 4:2:0인 경우에만 이용될 수 있다. |
4 ... 255 | 예약됨 |
주어진 수직 샘플 좌표 cTop 및 입력 텐서에 포함된 샘플들의 패치에 대한 좌상단 샘플 위치를 나타내는 수평 샘플 좌표 cLeft에 대한 출력 텐서 outputTensor로부터 필터링된 출력 샘플 어레이 FilteredYPic, FilteredCbPic 및 FilteredCrPic 내 샘플 값들을 유도하기 위한 프로세스 StoreOutputTensors( )는 표 11 및 표 12의 결합과 같이 표현될 수 있다.
nnpfc_constant_patch_size_flag의 값 1은 후처리 필터가 nnpfc_patch_width_minus1 및 nnpfc_patch_height_minus1에 의해 표시된 패치 크기를 입력으로 정확히 받아들인다는 것을 나타낼 수 있다. nnpfc_constant_patch_size_flag의 값 0은 후처리 필터가 nnpfc_patch_width_minus1 및 nnpfc_patch_height_minus1에 의해 표시된 패치 크기의 양의 정수배인 모든 패치 크기를 입력으로 허용함을 나타낼 수 있다.
npfc_patch_width_minus1 + 1은 nnpfc_constant_patch_size_flag의 값이 1일 때 후처리 필터의 입력에 필요한 패치 크기의 수평 샘플 수를 나타낼 수 있다. nnpfc_patch_width_minus1의 값은 0 내지 Min(32766, CroppedWidth - 1)의 범위에 존재해야 한다.
npfc_patch_height_minus1 + 1은 nnpfc_constant_patch_size_flag의 값이 1일 때 후처리 필터의 입력에 필요한 패치 크기의 수직 샘플 수를 나타낼 수 있다. nnpfc_patch_height_minus1의 값은 0 내지 Min(32766, CroppedHeight - 1)의 범위에 존재해야 한다.
inpPatchWidth 및 inpPatchHeight 변수는 각각 패치 크기 너비와 패치 크기 높이로 설정될 수 있다.
nnpfc_constant_patch_size_flag의 값이 0이면 다음이 적용될 수 있다.
- inpPatchWidth 및 inpPatchHeight의 값은 외부 수단에 의해 제공되거나 사후 프로세서 자체에 의해 설정될 수 있다.
- inpPatchWidth의 값은 nnpfc_patch_width_minus1 + 1의 양의 정수배여야 하며 CroppedWidth보다 작거나 같아야 한다. inpPatchHeight의 값은 nnpfc_patch_height_minus1 + 1의 양의 정수배여야 하며 CroppedHeight보다 작거나 같아야 한다.
그렇지 않으면(nnpfc_constant_patch_size_flag의 값이 1이면), inpPatchWidth의 값은 nnpfc_patch_width_minus1 + 1과 동일하게 설정되고 inpPatchHeight의 값은 nnpfc_patch_height_minus1 + 1과 동일하게 설정될 수 있다.
nnpfc_overlap은 후처리 필터의 인접한 입력 텐서의 오버랩핑(overlapping) 수평 및 수직 샘플 수를 나타낼 수 있다. nnpfc_overlap의 값은 0 내지 16383의 범위에 존재해야 한다.
변수 outPatchWidth, outPatchHeight, horCScaling, verCScaling, outPatchCWidth, outPatchCHeight 및overlapSize는 표 13과 같이 유도될 수 있다.
outPatchWidth * CroppedWidth가 nnpfc_pic_width_in_luma_samples * inpPatchWidth와 같아야 하며, outPatchHeight * CroppedHeight가 nnpfc_pic_height_in_luma_samples * inpPatchHeight와 같아야 하는 것은 비트스트림 적합성의 요구 사항이다.
nnpfc_padding_type은 표 14에 설명된 대로 크롭된 디코딩된 출력 픽처의 경계 외부에 있는 샘플 위치를 참조할 때 패딩하는 프로세스를 나타낼 수 있다. nnpfc_padding_type의 값은 0 내지 15의 범위에 존재해야 한다.
nnpfc_padding_type | Description |
0 | zero padding |
1 | replication padding |
2 | reflection padding |
3 | wrap-around padding |
4 | fixed padding |
5 ... 15 | 예약됨 |
nnpfc_luma_padding_val은 nnpfc_padding_type의 값이 4일 때 패딩에 사용할 루마 값을 나타낼 수 있다.
nnpfc_cb_padding_val은 nnpfc_padding_type의 값이 4일 때 패딩에 사용할 Cb 값을 나타낼 수 있다.
nnpfc_cr_padding_val은 nnpfc_padding_type의 값이 4일 때 패딩에 사용할 Cr 값을 나타낼 수 있다.
입력이 수직 샘플 위치 y, 수평 샘플 위치 x, 픽처 높이 picHeight, 픽처 너비 picWidth 및 샘플 어레이 CroppedPic인 InpSampleVal(y, x, picHeight, picWidth, CroppedPic) 함수는 표 15와 같이 유도된 SampleVal의 값을 반환할 수 있다.
InpSampleVal( ) 함수에 대한 입력의 경우, 일부 추론 엔진의 입력 텐서 규칙과의 호환성을 위해 수직 위치가 수평 위치 앞에 나열될 수 있다.
표 16의 프로세스는 크롭된 디코딩된 출력 픽처를 후처리 필터 PostProcessingFilter()를 사용하여 패치 방식으로 필터링하여 필터링된 픽처를 생성하는 데 사용될 수 있으며, 필터링된 픽처는 nnpfc_out_order_idc에 의해 표시된 바와 같이 Y 샘플 어레이 FilteredYPic, Cb 샘플 어레이 FilteredCbPic 및 Cr 샘플 어레이 FilteredCrPic을 포함할 수 있다.
nnpfc_complexity_info_present_flag의 값 1은 nnpfc_id와 연관된 후처리 필터의 복잡도를 나타내는 하나 이상의 신택스 요소가 존재함을 나타낼 수 있다. nnpfc_complexity_info_present_flag의 값 0은 nnpfc_id와 연관된 후처리 필터의 복잡도를 나타내는 신택스 요소가 존재하지 않음을 나타낼 수 있다.
nnpfc_parameter_type_idc의 값 0은 신경망이 정수 파라미터들만을 사용함을 나타낼 수 있다. nnpfc_parameter_type_flag의 값 1은 신경망이 부동 소수점 또는 정수 파라미터들을 사용할 수 있음을 나타낼 수 있다. nnpfc_parameter_type_idc의 값 2는 신경망이 이진 파라미터들만을 사용함을 나타낼 수 있다. nnpfc_parameter_type_idc의 값 3은 향후 사용을 위해 예약될 수 있으며, 비트스트림에는 존재하지 않는다. 디코더들은 nnpfc_parameter_type_idc의 값이 3인 NNPFC SEI 메시지를 무시해야 한다.
nnpfc_log2_parameter_bit_length_minus3의 값 0, 1, 2 및 3은 신경망이 각각 8, 16, 32 및 64보다 큰 비트 길이의 파라미터들을 사용하지 않음을 나타낼 수 있다. nnpfc_parameter_type_idc가 존재하고 nnpfc_log2_parameter_bit_length_minus3이 존재하지 않으면 신경망은 1보다 큰 비트 길이의 파라미터들을 사용하지 않을 수 있다.
nnpfc_num_parameters_idc는 후처리 필터에 대한 신경망 파라미터들의 최대 수를 2048의 거듭제곱 단위로 나타낼 수 있다. nnpfc_num_parameters_idc의 값 0은 신경망 파라미터들의 최대 수를 알 수 없음을 나타낼 수 있다. nnpfc_num_parameters_idc의 값은 0 내지 52 범위에 존재해야 한다. 52보다 큰 nnpfc_num_parameters_idc의 값은 비트스트림에는 존재하지 않는다. 디코더들은 52보다 큰 nnpfc_num_parameters_idc를 가진 NNPFC SEI 메시지를 무시해야 한다.
nnpfc_num_parameters_idc의 값이 0보다 큰 경우, maxNumParameters 변수는 수식 3과 같이 유도될 수 있다.
후처리 필터의 신경망 파라미터들의 수는 maxNumParameters 보다 작거나 같도록 제한될 수 있다.
0보다 큰 nnpfc_num_kmac_operations_idc는 후처리 필터의 샘플 당 곱누산 작업의 최대 수(the maximum number of multiply-accumulate operations per sample)가 nnpfc_num_kmac_operations_idc * 1000보다 작거나 같음을 나타낼 수 있다. nnpfc_num_kmac_operations_idc의 값 0은 네트워크의 곱누산 작업의 최대 수를 알 수 없음을 나타낼 수 있다. nnpfc_num_kmac_operations_idc의 값은 0 내지 232 - 1의 범위에 존재해야 한다.
0보다 큰 nnpfc_total_kilobyte_size는 신경망의 압축되지 않은 파라미터들을 저장하는 데 필요한 총 크기(kilobytes)를 나타낼 수 있다. 비트 단위의 총 크기는 각 파라미터를 저장하는 데 사용된 비트의 합보다 크거나 같은 숫자일 수 있다. nnpfc_total_kilobyte_size는 총 크기(비트)를 8000으로 나누고 반올림한 것일 수 있다. nnpfc_total_kilobyte_size의 값 0은 신경망에 대한 파라미터들을 저장하는 데 필요한 전체 크기를 알 수 없음을 나타낼 수 있다. nnpfc_total_kilobyte_size의 값은 0 내지 232 - 1의 범위에 존재해야 한다.
nnpfc_reserved_zero_bit_b는 비트스트림에서 0과 동일해야 한다. 디코더들은 nnpfc_reserved_zero_bit_b가 0이 아닌 NNPFC SEI 메시지를 무시해야 한다.
nnpfc_payload_byte[ i ]는 비트스트림의 i번째 바이트를 포함할 수 있다. i의 모든 존재하는 값에 대한 바이트 시퀀스 nnpfc_payload_byte[ i ]는 ISO/IEC 15938-17을 준수하는 완전한 비트스트림이어야 한다.
신경망 후처리 활성화(Neural-network post-filter activation, NNFPA)
NNFPA에 대한 신택스 구조가 표 17에 나타나 있다.
표 17의 NNPFA 신택스 구조는 SEI 메시지 형태로 시그널링될 수 있다. 표 17의 NNPFA 신택스 구조를 시그널링하는 SEI 메시지는 NNPFA SEI 메시지라고 지칭될 수 있다.
NNPFA SEI 메시지는 픽처 세트의 후처리 필터링을 위해 nnpfa_target_id로 식별되는 대상 신경망 후처리 필터의 가능한 사용을 활성화하거나 비활성화할 수 있다.
후처리 필터는 다른 목적을 위해 사용되거나 다른 색상 성분을 필터링하는 경우에, 동일한 픽처에 대해 여러 개의 NNPFA SEI 메시지가 존재할 수 있다.
nnpfa_target_id는 현재 픽처와 관련되고 nnfpa_target_id와 동일한 nnpfc_id를 갖는 하나 이상의 NNPFC SEI 메시지에 의해 지정되는 대상 신경망 후처리 필터를 나타낼 수 있다.
nnpfa_target_id의 값은 0 내지 232 - 2의 범위에 존재해야 한다. 256 내지 511의 범위 및 231 내지 232 - 2의 범위 내 nnpfa_target_id 값은 향후 사용을 위해 예약될 수 있다. 디코더들은 256 내지 511 또는 231 내지 232 - 2 범위의 nnpfa_target_id를 가진 NNPFA SEI 메시지를 무시해야 한다.
nnpfa_target_id의 특정 값을 가진 NNPFA SEI 메시지는 다음 조건 중 하나 또는 둘 모두가 참이 아닌 한 현재 PU(picture unit)에 존재하지 않아야 한다. 여기서, PU(picture unit)는 코딩된 픽처의 VCL NAL 유닛들 및 이들에 관련된 non-VCL VAL 유닛들을 포함하는 NAL 유닛 세트일 수 있다.
- 현재 CLVS 내에는 디코딩 순서에서 현재 PU(picture unit) 앞에 있는 PU(picture unit)에 존재하는 nnpfa_target_id의 특정 값과 동일한 nnpfc_id를 갖는 NNPFC SEI 메시지가 존재함
- 현재 PU(picture unit)의 nnpfa_target_id의 특정 값과 동일한 nnpfc_id를 갖는 NNPFC SEI 메시지가 존재함
PU(picture unit)가 특정 값의 nnpfc_id를 갖는 NNPFC SEI 메시지와, 특정 값의 nnpfc_id와 동일한 nnpfa_target_id를 갖는 NNPFA SEI 메시지를 모두 포함하는 경우, NNPFC SEI 메시지는 디코딩 순서에서 NNPFA SEI 메시지보다 선행해야 한다.
nnpfa_cancel_flag의 값 1은 현재 SEI 메시지와 동일한 nnpfa_target_id를 갖는 임의의 이전 NNPFA SEI 메시지에 의해 설정된 대상 신경망 후처리 필터의 지속성이 취소됨을 나타낼 수 있다. 즉, 대상 신경망 후처리 필터는 현재 SEI 메시지와 동일한 nnpfa_target_id 및 0과 동일한 nnpfa_cancel_flag를 갖는 다른 NNPFA SEI 메시지에 의해 활성화되지 않는 한, 더 이상 사용되지 않는다. nnpfa_cancel_flag의 값 0은 nnpfa_persistence_flag가 뒤따른다는 것을 나타낼 수 있다.
nnpfa_persistence_flag는 현재 레이어에 대한 대상 신경망 후처리 필터의 지속성을 나타낼 수 있다. nnpfa_persistence_flag의 값 0은 대상 신경망 후처리 필터가 현재 픽처에 대한 후처리 필터링에만 사용될 수 있음을 나타낼 수 있다. nnpfa_persistence_flag의 값 1은 대상 신경망 후처리 필터가 다음 조건 중 하나 이상이 참일 때까지 출력 순서대로 현재 픽처와 현재 레이어 내 모든 후속 픽처들에 대한 후처리 필터링에 사용될 수 있음을 나타낼 수 있다.
- 현재 레이어의 새로운 CLVS가 시작됨
- 비트스트림이 종료됨
- 현재 SEI 메시지와 동일한 nnpfa_target_id 및 1과 동일한 nnpfa_cancel_flag를 갖는 NNPFA SEI 메시지와 연관된 현재 레이어 내 픽처가 출력 순서에서 현재 픽처 다음에 출력됨
대상 신경망 후처리 필터는 현재 SEI 메시지와 동일한 nnpfa_target_id 및 1과 동일한 nnpfa_cancel_flag를 갖는 NNPFA SEI 메시지와 연관된 현재 레이어 내 후속 픽처에는 적용되지 않는다.
포스트-필터 힌트(Post-filter hint)
포스트-필터 힌트에 대한 신택스 구조가 표 18에 나타나 있다.
표 18의 포스트-필터 힌트 신택스 구조는 SEI 메시지 형태로 시그널링될 수 있다. 표 18의 포스트-필터 힌트 신택스 구조를 시그널링하는 SEI 메시지는 포스트-필터 힌트 SEI 메시지라고 지칭될 수 있다.
포스트-필터 힌트 SEI 메시지는 향상된 디스플레이 품질을 얻기 위해 디코딩 및 출력된 픽처 세트를 후처리에 잠재적으로 사용할 수 있도록 포스트-필터의 설계에 대한 포스트-필터 계수 또는 상관 정보를 제공할 수 있다.
filter_hint_cancel_flag의 값 1은 SEI 메시지가 현재 레이어에 적용되는 출력 순서 상 이전의 포스트-필터 힌트 SEI 메시지의 지속성을 취소함을 나타낼 수 있다. filter_hint_cancel_flag의 값 0은 포스트-필터 힌트 정보가 후속함을 나타낼 수 있다.
filter_hint_persistence_flag는 현재 레이어에 대한 포스트-필터 힌트 SEI 메시지의 지속성을 나타낼 수 있다. filter_hint_persistence_flag의 값 0은 포스트-필터 힌트가 현재 디코딩된 픽처에만 적용됨을 나타낼 수 있다. filter_hint_persistence_flag의 값 1은 포스트-필터 힌트 SEI 메시지가 현재 디코딩된 픽처에 적용되고 다음 조건 중 하나 이상이 참일 때까지 출력 순서에 따라 현재 레이어 내 모든 후속 픽처들에 대해 지속됨을 나타낼 수 있다.
- 현재 레이어의 새로운 CLVS가 시작됨
- 비트스트림이 종료됨
- 포스트-필터 힌트 SEI 메시지와 연관된 AU의 현재 레이어 내 픽처는 출력 순서에서 현재 픽처 다음에 출력됨
filter_hint_size_y는 필터 계수 또는 상관 어레이의 수직 크기를 나타낼 수 있다. filter_hint_size_y의 값은 1 내지 15의 범위에 존재해야 한다.
filter_hint_size_x는 필터 계수 또는 상관 어레이의 수평 크기를 나타낼 수 있다. filter_hint_size_x의 값은 1 내지 15의 범위에 존재해야 한다.
filter_hint_type은 표 19에 나타낸 바와 같이 전송된 필터 힌트의 유형을 나타낼 수 있다. filter_hint_type의 값은 0 내지 2의 범위에 존재해야 한다. 3과 동일한 filter_hint_type 값은 비트스트림에는 존재하지 않는다. 디코더들은 filter_hint_type이 3인 포스트-필터 힌트 SEI 메시지를 무시해야 한다.
Value | Description |
0 | 2D-FIR 필터의 계수들 |
1 | 1D-FIR 필터들의 계수들 |
2 | Cross-correlation matrix |
filter_hint_chroma_coeff_present_flag의 값 1은 크로마에 대한 필터 계수들이 존재함을 나타낼 수 있다. filter_hint_chroma_coeff_present_flag의 값 0은 크로마에 대한 필터 계수들이 존재하지 않음을 나타낼 수 있다.
filter_hint_value[ cIdx ][ cy ][ cx ]는 필터 계수, 또는 원본 신호와 디코딩된 신호 간의 상호 상관 행렬 요소를 16비트 정밀도로 나타낼 수 있다. filter_hint_value[ cIdx ][ cy ][ cx ]의 값은 -231 + 1 내지 231 - 1 범위에 존재해야 한다. cIdx는 관련 색상 요소를 나타내며, cy는 수직 방향의 카운터를 나타내고, cx는 수평 방향의 카운터를 나타낼 수 있다. filter_hint_type의 값에 따라 다음이 적용될 수 있다.
- filter_hint_type의 값이 0이면, filter_hint_size_y * filter_hint_size_x 크기의 2차원 FIR(Finite Impulse Response) 필터의 계수들이 전송될 수 있다.
- 그렇지 않고, filter_hint_type의 값이 1이면, 2개의 1차원 FIR 필터의 필터 계수들이 전송될 수 있다. 이 경우, filter_hint_size_y의 값은 2가 되어야 한다. 0인 인덱스 cy는 수평 필터의 필터 계수들을 나타내며, 1인 cy는 수직 필터의 필터 계수를 나타낼 수 있다. 필터링 과정에서는 수평 필터가 먼저 적용되고 그 결과는 수직 필터에 의해 필터링될 수 있다.
- 그렇지 않으면(filter_hint_type의 값이 2이면), 전송된 힌트는 원래 신호 s와 디코딩된 신호 s'사이의 상호 상관 행렬을 나타낼 수 있다.
filter_hint_size_y * filter_hint_size_x 크기의 cIdx로 식별된 관련 색상 성분에 대한 정규화된 상호 상관 행렬은 수식 4와 같이 정의될 수 있다.
수식 4에서, s는 원본 픽처의 색상 성분 cIdx의 샘플 어레이를 나타내며, s'는 이에 대응하는 디코딩된 픽처의 어레이를 나타내고, h는 관련 색상 성분의 수직 높이는 나타내며, w는 관련 색상 성분의 수평 너비를 나타내고, bitDepth는 색상 성분의 비트 뎁스를 나타낸다. 또한, OffsetY는 ( filter_hint_size_y >> 1 )와 동일하고, OffsetX는 ( filter_hint_size_x >> 1 )와 동일하고, cy의 범위는 0 <= cy < filter_hint_size_y이고, cx의 범위는 0 <= cx < filter_hint_size_x이다.
디코더는 원본 신호와 디코딩된 신호의 cross-correlation matrix 및 디코딩된 신호의 auto-cross-correlation matrix로부터 Wiener 포스트-필터를 유도할 수 있다.
종래 기술의 문제점
NNPFC SEI 메시지는 nnpfc_formatting_and_purpose_flag라는 플래그를 포함한다. nnpfc_formatting_and_purpose_flag는 필터의 포맷팅, 목적 및/또는 복잡성 정보를 포함하는 기술들(descriptions)과 관련된 신택스 요소들의 존재를 나타낼 수 있다. 이 플래그의 존재는 다음과 같이 특정될 수 있다.
상기 SEI 메시지가 디코딩 순서 상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지인 경우, nnpfc_formatting_and_purpose_flag는 1의 값을 가져야 한다. 상기 SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지가 아닌 경우, nnpfc_formatting_and_purpose_flag는 0의 값을 가져야 한다.
상기 제한 사항은 기본(base) 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복되는 것을 못하게 하는 문제를 갖는다. SEI 메시지가 반복되는 경우, 통상, 그 내용(content)이 동일할 것으로 제한된다. 그러나, 상기 제한 사항은 반복된 SEI 메시지에 포맷팅, 목적 및/또는 복잡성의 시그널링이 존재하는 것을 못하게 한다.
상기 문제가 해소된다고 하더라도, 반복된 NNPFC SEI 메시지에 대해서는 해결해야 할 추가의 문제들이 다음과 같이 존재한다.
문제1. NNPFC SEI 메시지가 기본 신경망 후처리 필터를 포함하는지 기본 신경망 후처리 필터에 대한 업데이트를 포함하는지와 관계없이 해당 NNPFC SEI 메시지에 대한 반복이 허용되는가? 그렇지 않다면 어느 쪽의 NNPFC SEI 메시지에 대해 반복이 허용되는가?
문제2. 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있다면, 다른 NNPFC SEI 메시지(즉, 동일한 nnpfc_id를 갖는)의 존재에 의해 필터가 업데이트된 후에도 반복될 수 있는가?
문제3. 상기 문제2에서의 답변이 "그렇다"라면, 기본 신경망 후처리 필터를 포함하는 반복된 NNPFC SEI 메시지가 상기 신경망 후처리 필터에 대한 업데이트를 포함하는 동일 nnpfc_id의 다른 NNPFC SEI 메시지의 이후에 존재할 때, 상기 반복된 SEI 메시지는 상기 업데이트를 중단하는가(즉, 상기 업데이트를 상쇄하는가)?
NNPFC SEI 메시지에 대한 시멘틱스들은 상술한 모든 문제들을 명확히 할 것이 요구된다.
실시예
이하에서, NNPFC는 표 1 및 표 2의 NNPFC 신택스 구조로서, SEI 메시지 형태로 시그널링될 수 있으며, 이 경우 NNPFC는 NNPFC SEI 메시지일 수 있다. NNPFA는 표 17의 NNPFA 신택스 구조로서, SEI 메시지 형태로 시그널링될 수 있으며, 이 경우 NNPFA는 NNPFA SEI 메시지일 수 있다. 포스트-필터 힌트는 표 18의 포스트-필터 힌트 신택스 구조로서, SEI 메시지 형태로 시그널링될 수 있으며, 이 경우 포스트-필터 힌트는 포스트-필터 힌트 SEI 메시지일 수 있다.
본 개시에 따른 실시예들은 상술한 문제들의 일부 또는 전부를 개선하기 위한 다양한 구성들을 포함할 수 있다. 각각의 구성들은 개별적으로 또는 둘 이상이 조합되어 적용될 수 있다.
구성1: 포맷팅, 목적 및/또는 복잡성 정보의 시그널링이 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지에만 존재하는 것으로 특정한다.
구성1a: NNPFC SEI 메시지가 기본 신경망 후처리 필터를 포함하는 경우, nnpfc_formatting_and_purpose_flag는 1의 값을 가진다.
구성1b: nnpfc_formatting_and_purpose_flag의 값이 1인 경우, 해당 NNPFC SEI 메시지는 기본 신경망 후처리 필터를 포함한다.
구성2: 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지는 반복될 수 있다. 반복되는 경우, 상기 반복된 SEI 메시지는 첫 번째 NNPFC SEI 메시지(즉, 특정 값의 nnpfc_id를 갖는 첫 번째 메시지)와 동일한 정보를 포함한다.
구성3: NNPFA SEI 메시지에 의해 활성화될 때까지, 반복된 메시지인지의 여부 또는 기본 신경망 후처리 필터를 포함하는지 또는 신경망 후처리 필터에 대한 업데이트를 포함하는지 여부에 관계없이 NNPFC SEI 메시지는 활성화되지 않는다. 즉, 어떤 PU(picture unit)에도 적용되지 않거나 및/또는 효과가 없다.
구성4: 기본 신경망 후처리 필터를 포함하는 반복된 NNPFC SEI 메시지 seiA가 동일한 ID를 갖고 신경망 후처리 필터에 대한 업데이트를 포함하는 NNPFC SEI 메시지 seiB에 후속하여 존재하는 경우, seiA가 활성화될 때, seiB 내 필터에 의한 상기 업데이트는 중단시킨다.
구성5: 대체적으로, 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지는 동일한 ID를 갖고 신경망 후처리 필터에 대한 업데이트를 포함하는 NNPFC SEI 메시지가 비트스트림에 존재하기 전에만 반복될 수 있는 것으로 제한된다.
표 1 및 표 2를 참조하여, NNPFC 신택스 구조 및 시멘틱스들을 상술하였다.
본 개시에 따르면, 상기 구성1 내지 구성5 중 적어도 일부를 고려하여 상술한 NNPFC 신택스 요소들 중 일부의 시멘틱스를 재정의함으로써, 상술한 문제점들 중 적어도 일부를 해결할 수 있다.
실시예 1
본 개시에 따른 실시예 1은, 아래와 같이 NNPFC SEI 메시지의 시멘틱스를 제한, 수정 및/또는 변경할 수 있다.
본 개시의 실시예 1에 따르면, NNPFC SEI 메시지는 NNPFA SEI 메시지에 의해 활성화될 때까지 활성화되지 않도록 제한될 수 있다. NNPFC SEI 메시지가 활성화되지 않음은 어떤 PU(picture unit)에 대해서도 NNPFC SEI 메시지가 적용되지 않거나 및/또는 효과가 없음을 의미할 수 있다.
또한, 본 개시의 실시예 1에 따르면, NNPFC SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지가 아니고, 동일 nnpfc_id 값을 가지는 첫 번째 NNPFC SEI 메시지의 반복이 아닌 경우에는 다음이 적용될 수 있다.
- 상기 SEI 메시지는 동일한 nnpfc_id 값을 가지는 디코딩 순서 상 선행하는 기본 후처리 필터에 관한 업데이트를 정의할 수 있다.
- 상기 SEI 메시지는 현재 CLVS가 종료될 때까지 또는 출력 순서 상 현재 CLVS 내 특정 nnpfc_id 값을 갖는 다음 NNPFC SEI 메시지까지, 현재 디코딩된 픽처 및 출력 순서 상 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련될 수 있다.
또한, 본 개시의 실시예 1에 따르면, nnpfc_formatting_and_purpose_flag의 시멘틱스는 아래와 같이 재정의될 수 있다.
nnpfc_formatting_and_purpose_flag의 값 1은 필터 목적, 입력 포맷팅, 출력 포맷팅 및/또는 복잡성과 관련된 신텍스 엘리먼트가 존재함을 나타낼 수 있다. nnpfc_formatting_and_purpose_flag의 값 0은 필터 목적, 입력 포맷팅, 출력 포맷팅 및/또는 복잡성과 관련된 신택스 엘리먼트가 존재하지 않음을 나타낼 수 있다.
상기 SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지인 경우, nnpfc_formatting_and_purpose_flag는 1의 값을 갖도록 제한될 수 있다. NNPFC SEI 메시지가 동일 nnpfc_id를 갖는 첫 번째 NNPFC SEI 메시지의 반복인 경우, 그 내용(content)은 첫 번째 SEI 메시지와 동일하도록 제한될 수 있다. 즉, nnpfc_formatting_and_purpose_flag는 1의 값을 갖도록 제한될 수 있다. NNPFC SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, nnpfc_formatting_and_purpose_flag가 1의 값을 갖도록 제한되는 경우, 상기 SEI 메시지는 동일 nnpfc_id를 갖는 첫 번째 SEI 메시지의 반복일 수 있다. NNPFC SEI 메시지가 특정 nnpfc_id 값을 갖고, nnpfc_formatting_and_purpose_flag가 0의 값을 가지는 경우, 상기 SEI 메시지는 기본 후처리 필터에 대한 업데이트를 포함할 수 있다.
본 개시의 실시예 1에 따르면, 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있다. 또한, 반복된 NNPFC SEI 메시지는 디코딩 순서상 현재 CLVS 내에서 동일 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지와 동일한 내용(content)을 가질 수 있다. 상기 효과를 포함하여, 본 개시의 실시예 1에 따르면, 상술한 종래 기술의 문제들이 해소되는 효과를 기대할 수 있다.
실시예 2
본 개시에 따른 실시예 2는, 아래와 같이 NNPFC SEI 메시지의 시멘틱스를 제한, 수정 및/또는 변경할 수 있다.
본 개시의 실시예 2에 따르면, NNPFC SEI 메시지가 현재 CLVS 내에서 특정 nnpfc_id 값을 가지는 디코딩 순서 상 첫 번째 NNPFC SEI 메시지가 아니고, 동일 nnpfc_id 값을 가지는 첫 번째 NNPFC SEI 메시지의 반복이 아닌 경우에는 다음이 적용될 수 있다.
- 상기 SEI 메시지는 동일한 nnpfc_id 값을 가지는 디코딩 순서 상 선행하는 기본 후처리 필터에 관한 업데이트를 정의할 수 있다.
- 상기 SEI 메시지는 현재 CLVS가 종료될 때까지 또는 출력 순서 상 현재 CLVS 내 특정 nnpfc_id 값을 갖는 다음 NNPFC SEI 메시지까지, 현재 디코딩된 픽처 및 출력 순서 상 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련될 수 있다.
또한, 본 개시의 실시예 2에 따르면, nnpfc_formatting_and_purpose_flag의 시멘틱스는 아래와 같이 재정의될 수 있다.
nnpfc_formatting_and_purpose_flag의 값 1은 필터 목적, 입력 포맷팅, 출력 포맷팅 및/또는 복잡성과 관련된 신텍스 엘리먼트가 존재함을 나타낼 수 있다. nnpfc_formatting_and_purpose_flag의 값 0은 필터 목적, 입력 포맷팅, 출력 포맷팅 및/또는 복잡성과 관련된 신택스 엘리먼트가 존재하지 않음을 나타낼 수 있다.
상기 SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지인 경우, nnpfc_formatting_and_purpose_flag는 1의 값을 갖도록 제한될 수 있다. NNPFC SEI 메시지가 동일 nnpfc_id를 갖는 첫 번째 NNPFC SEI 메시지의 반복인 경우, 그 내용(content)은 첫 번째 SEI 메시지와 동일하도록 제한될 수 있다. 즉, nnpfc_formatting_and_purpose_flag는 1의 값을 갖도록 제한될 수 있다. NNPFC SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, nnpfc_formatting_and_purpose_flag가 1의 값을 갖도록 제한되는 경우, 상기 SEI 메시지는 동일 nnpfc_id를 갖는 첫 번째 SEI 메시지의 반복일 수 있다.
특정 nnpfc_id 값을 갖고 이전 SEI 메시지의 반복인 NNPFC SEI 메시지는 동일 nnpfc_id 값을 갖고 nnpfc_formatting_and_purpose_flag가 0의 값을 갖도록 제한되는 NNPFC SEI의 이후에는 존재할 수 없도록 제한될 수 있다. 특정 nnpfc_id 값을 갖고 nnpfc_formatting_and_purpose_flag가 0인 NNPFC SEI 메시지는 기본 후처리 필터에 대한 업데이트를 포함할 수 있다.
본 개시의 실시예 2에 따르면, 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있다. 또한, 반복된 NNPFC SEI 메시지는 디코딩 순서상 현재 CLVS 내에서 동일 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지와 동일한 내용(content)을 가질 수 있다. 상기 효과를 포함하여, 본 개시의 실시예 2에 따르면, 상술한 종래 기술의 문제들이 해소되는 효과를 기대할 수 있다.
이하에서는, 본원의 다양한 실시예들에 따른 영상 부호화 방법과 영상 복호화 방법을 설명하도록 한다. 도 5의 영상 부호화 방법은 영상 부호화 장치(100)에 의해 수행될 수 있으며, 도 6의 영상 복호화 방법은 영상 복호화 장치(200)에 의해 수행될 수 있다.
도 5를 참조하면, 영상 부호화 장치는 현재 픽처에 적용될 신경망 후처리 필터에 관한 NNPF(Neural-network post-filter) 관련 정보를 생성할 수 있다(S501). 영상 부호화 장치는 생성된 NNPF 관련 정보를 부호화하여 NNPF(Neural-network post-filter) 관련 SEI 메시지를 생성할 수 있다(S502). 영상 부호화 장치는 생성된 NNPF 관련 SEI 메시지를, 예컨대, 영상 복호화 장치 측으로 전송할 수 있다(S503). 영상 부호화 장치는 단계 S501 및 S502를 수행하고, 단계 S503은 별도의 전송 장치에 의해 수행되는 전송 방법의 일부일 수도 있다.
도 6을 참조하면, 영상 복호화 장치는 현재 픽처에 적용될 신경망 후처리 필터에 관한 NNPF 관련 SEI 메시지를 수신할 수 있다(S601). 영상 복호화 장치는 수신된 NNPF 관련 SEI 메시지를 복호화하여 NNPF 관련 정보를 복원할 수 있다(S602). 영상 복호화 장치는 복원된 NNPF 관련 정보에 기반하여 현재 픽처에 NNPF를 적용할 수 있다(S603). 상기 단계 S602 및 S603은 현재 픽처에 NNPF가 적용되는 것을 조건으로 하여 수행될 수 있다.
도 5 및 도 6을 참조한 설명에서, NNPF 관련 SEI 메시지는 본 개시에 따른 NNPFC SEI 메시지, NNPFA SEI 메시지 및/또는 포스트-필터 힌트에 관한 SEI 메시지를 포함할 수 있다. 또한, NNPF 관련 정보는 상기 NNPF 관련 SEI 메시지에 포함된 신택스 요소들에 의해 시그널링되는 정보를 의미할 수 있다.
상술한 바와 같이, NNPFC SEI 메시지는 nnpfc_id, nnpfc_formatting_and_purpose_flag 등의 신텍스 요소를 포함할 수 있다. nnpfc_id는 후처리 필터를 식별하기 위한 것으로서, "필터 식별 정보(filter identification information)"로 표현될 수 있다. nnpfc_formatting_and_purpose_flag는 필터 목적, 입력 포맷팅, 출력 포맷팅 및/또는 복잡성 등의 필터 특성과 관련된 신텍스 엘리먼트가 존재하는지 여부를 나타내며, "필터 특성 존재 정보(filter property present information)"로 표현될 수 있다.
상기 NNPFC SEI 메시지에 관한 본 개시에 따른 실시예들 및 본 개시에 따른 구성이 도 5 및 도 6을 참조하여 설명한 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 적용될 수 있다.
구체적으로, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPF 관련 SEI 메시지는 필터 식별 정보(filter identification information) 및 필터 특성 존재 정보(filter property present information)를 포함하는 NNPFC(neural-network post-filter characteristics) SEI 메시지를 포함하고, 상기 NNPFC SEI 메시지가 기본(base) NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지가 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지인 것에 기반하여, 상기 반복된 NNPFC SEI 메시지의 내용(content)은 상기 첫 번째 NNPFC SEI 메시지와 동일하도록 제한될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 반복된 NNPFC SEI 메시지의 필터 특성 존재 정보는 제1값을 갖도록 제한될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, 상기 NNPFC SEI 메시지의 필터 특성 존재 정보가 제1값을 갖도록 제한됨에 기반하여, 상기 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지일 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지가 특정 필터 식별 정보의 값을 갖고, 필터 특성 존재 정보가 필터 특성이 존재하지 않음을 지시하는 제2값을 가짐에 기반하여, 상기 NNPFC SEI 메시지는 기본 NNPF에 대한 업데이트를 포함할 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지가 디코딩 순서 상 현재 CLVS 내에서 특정 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복이 아님에 기반하여, 상기 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖는 디코딩 순서 상 선행하는 기본 NNPF에 대한 업데이트를 포함할 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지는 현재 CLVS가 종료될 때까지 또는 출력 순서 상 현재 CLVS 내 특정 필터 식별 정보의 값을 갖는 다음 NNPFC SEI 메시지까지 상기 현재 픽처 및 출력 순서 상 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지는 NNPFA SEI 메시지에 의해 활성화될 때까지 활성화되지 않도록 제한될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법 및/또는 영상 복호화 방법에 있어서, 상기 NNPFC SEI 메시지가 특정 필터 식별 정보의 값을 갖는 이전 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지인 것에 기반하여, 상기 반복된 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖고 필터 특성 존재 정보가 필터 특성이 존재하지 않음을 지시하는 제2값을 갖도록 제한되는 NNPFC SEI 메시지의 이후에는 존재하지 않도록 제한될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법에 의해 생성된 비트스트림은 컴퓨터 판독 가능한 비일시적 기록 매체에 저장될 수 있다.
또한, 본 개시에 따른 영상 부호화 방법에 의해 생성된 비트스트림은 예컨대, 영상 복호화 장치 측으로 전송될 수 있다.
본 개시의 실시예에 따르면, 기본 신경망 후처리 필터를 포함하는 NNPFC SEI 메시지가 반복될 수 있다. 또한, 반복된 NNPFC SEI 메시지는 디코딩 순서상 현재 CLVS 내에서 동일 nnpfc_id 값을 갖는 첫 번째 NNPFC SEI 메시지와 동일한 내용(content)을 가질 수 있다. 상기 효과를 포함하여, 종래 기술의 문제점으로 기재된 다양한 문제들이 해소되는 효과를 기대할 수 있다.
도 7은 본 개시에 따른 실시예가 적용될 수 있는 컨텐츠 스트리밍 시스템을 예시적으로 나타낸 도면이다.
도 7에 도시된 바와 같이, 본 개시의 실시예가 적용된 컨텐츠 스트리밍 시스템은 크게 인코딩 서버, 스트리밍 서버, 웹 서버, 미디어 저장소, 사용자 장치 및 멀티미디어 입력 장치를 포함할 수 있다.
상기 인코딩 서버는 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들로부터 입력된 컨텐츠를 디지털 데이터로 압축하여 비트스트림을 생성하고 이를 상기 스트리밍 서버로 전송하는 역할을 한다. 다른 예로, 스마트폰, 카메라, 캠코더 등과 같은 멀티미디어 입력 장치들이 비트스트림을 직접 생성하는 경우, 상기 인코딩 서버는 생략될 수 있다.
상기 비트스트림은 본 개시의 실시예가 적용된 영상 부호화 방법 및/또는 영상 부호화 장치에 의해 생성될 수 있고, 상기 스트리밍 서버는 상기 비트스트림을 전송 또는 수신하는 과정에서 일시적으로 상기 비트스트림을 저장할 수 있다.
상기 스트리밍 서버는 웹 서버를 통한 사용자 요청에 기반하여 멀티미디어 데이터를 사용자 장치에 전송하고, 상기 웹 서버는 사용자에게 어떠한 서비스가 있는지를 알려주는 매개체 역할을 할 수 있다. 사용자가 상기 웹 서버에 원하는 서비스를 요청하면, 상기 웹 서버는 이를 스트리밍 서버에 전달하고, 상기 스트리밍 서버는 사용자에게 멀티미디어 데이터를 전송할 수 있다. 이때, 상기 컨텐츠 스트리밍 시스템은 별도의 제어 서버를 포함할 수 있고, 이 경우 상기 제어 서버는 상기 컨텐츠 스트리밍 시스템 내 각 장치 간 명령/응답을 제어하는 역할을 수행할 수 있다.
상기 스트리밍 서버는 미디어 저장소 및/또는 인코딩 서버로부터 컨텐츠를 수신할 수 있다. 예를 들어, 상기 인코딩 서버로부터 컨텐츠를 수신하는 경우, 상기 컨텐츠를 실시간으로 수신할 수 있다. 이 경우, 원활한 스트리밍 서비스를 제공하기 위하여 상기 스트리밍 서버는 상기 비트스트림을 일정 시간동안 저장할 수 있다.
상기 사용자 장치의 예로는, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)), 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등이 있을 수 있다.
상기 컨텐츠 스트리밍 시스템 내 각 서버들은 분산 서버로 운영될 수 있으며, 이 경우 각 서버에서 수신하는 데이터는 분산 처리될 수 있다.
본 개시의 범위는 다양한 실시예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 개시에 따른 실시예는 영상을 부호화/복호화하는데 이용될 수 있다.
Claims (12)
- 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서, 상기 영상 복호화 방법은,현재 픽처에 적용될 NNPF(neural-network post-filter) 관련 SEI(supplemental enhancement information) 메시지를 수신하는 단계;상기 NNPF 관련 SEI 메시지에 기반하여 NNPF 관련 정보를 복원하는 단계; 및상기 NNPF 관련 정보에 기반하여 상기 현재 픽처에 NNPF를 적용하는 단계를 포함하고,상기 NNPF 관련 SEI 메시지는 필터 식별 정보(filter identification information) 및 필터 특성 존재 정보(filter property present information)를 포함하는 NNPFC(neural-network post-filter characteristics) SEI 메시지를 포함하고,상기 NNPFC SEI 메시지가 기본(base) NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한되는,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지가 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지인 것에 기반하여, 상기 반복된 NNPFC SEI 메시지의 내용(content)은 상기 첫 번째 NNPFC SEI 메시지와 동일하도록 제한되는,영상 복호화 방법.
- 제2항에 있어서,상기 반복된 NNPFC SEI 메시지의 필터 특성 존재 정보는 제1값을 갖도록 제한되는,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지가 디코딩 순서상 현재 CLVS 내에서 특정 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, 상기 NNPFC SEI 메시지의 필터 특성 존재 정보가 제1값을 갖도록 제한됨에 기반하여, 상기 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지인,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지가 특정 필터 식별 정보의 값을 갖고, 필터 특성 존재 정보가 필터 특성이 존재하지 않음을 지시하는 제2값을 가짐에 기반하여, 상기 NNPFC SEI 메시지는 기본 NNPF에 대한 업데이트를 포함하는,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지가 디코딩 순서 상 현재 CLVS 내에서 특정 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지가 아니고, 동일 필터 식별 정보의 값을 갖는 첫 번째 NNPFC SEI 메시지의 반복이 아님에 기반하여, 상기 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖는 디코딩 순서 상 선행하는 기본 NNPF에 대한 업데이트를 포함하는,영상 복호화 방법.
- 제6항에 있어서,상기 NNPFC SEI 메시지는 현재 CLVS가 종료될 때까지 또는 출력 순서 상 현재 CLVS 내 특정 필터 식별 정보의 값을 갖는 다음 NNPFC SEI 메시지까지 상기 현재 픽처 및 출력 순서 상 현재 레이어의 모든 후속하는 디코딩된 픽처들과 관련되는,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지는 NNPFA SEI 메시지에 의해 활성화될 때까지 활성화되지 않도록 제한되는,영상 복호화 방법.
- 제1항에 있어서,상기 NNPFC SEI 메시지가 특정 필터 식별 정보의 값을 갖는 이전 NNPFC SEI 메시지의 반복인 반복된 NNPFC SEI 메시지인 것에 기반하여, 상기 반복된 NNPFC SEI 메시지는 동일 필터 식별 정보의 값을 갖고 필터 특성 존재 정보가 필터 특성이 존재하지 않음을 지시하는 제2값을 갖도록 제한되는 NNPFC SEI 메시지의 이후에는 존재하지 않도록 제한되는,영상 복호화 방법.
- 영상 부호화 장치에 의해 수행되는 영상 부호화 방법으로서, 상기 영상 부호화 방법은,현재 픽처에 적용될 NNPF 관련 정보를 생성하는 단계; 및상기 NNPF 관련 정보에 기반하여 NNPF 관련 SEI 메시지를 생성하는 단계를 포함하고,상기 NNPF 관련 SEI 메시지는 필터 식별 정보 및 필터 특성 존재 정보를 포함하는 NNPFC SEI 메시지를 포함하고,상기 NNPFC SEI 메시지가 기본 NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한되는,영상 부호화 방법.
- 영상 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체로서, 상기 영상 부호화 방법은,현재 픽처에 적용될 NNPF 관련 정보를 생성하는 단계; 및상기 NNPF 관련 정보에 기반하여 NNPF 관련 SEI 메시지를 생성하는 단계를 포함하고,상기 NNPF 관련 SEI 메시지는 필터 식별 정보 및 필터 특성 존재 정보를 포함하는 NNPFC SEI 메시지를 포함하고,상기 NNPFC SEI 메시지가 기본 NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한되는,기록 매체.
- 영상 부호화 방법에 의해 생성된 비트스트림을 전송하는 방법으로서, 상기 영상 부호화 방법은,현재 픽처에 적용될 NNPF 관련 정보를 생성하는 단계; 및상기 NNPF 관련 정보에 기반하여 NNPF 관련 SEI 메시지를 생성하는 단계를 포함하고,상기 NNPF 관련 SEI 메시지는 필터 식별 정보 및 필터 특성 존재 정보를 포함하는 NNPFC SEI 메시지를 포함하고,상기 NNPFC SEI 메시지가 기본 NNPF를 포함함에 기반하여, 상기 필터 특성 존재 정보는 필터 특성이 존재함을 지시하는 제1값을 갖도록 제한되는,방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263426721P | 2022-11-19 | 2022-11-19 | |
US63/426,721 | 2022-11-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024107026A1 true WO2024107026A1 (ko) | 2024-05-23 |
Family
ID=91085141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/018628 WO2024107026A1 (ko) | 2022-11-19 | 2023-11-20 | Nnpfc sei 메시지의 반복을 처리하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024107026A1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101132386B1 (ko) * | 2007-04-13 | 2012-07-16 | 노키아 코포레이션 | 비디오 코더 |
KR101789370B1 (ko) * | 2012-04-27 | 2017-10-23 | 퀄컴 인코포레이티드 | 비디오 코딩에서의 파라미터 세트 업데이트들 |
KR20210034536A (ko) * | 2019-09-20 | 2021-03-30 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
US20210099710A1 (en) * | 2018-04-01 | 2021-04-01 | Lg Electronics Inc. | Method for image coding using convolution neural network and apparatus thereof |
-
2023
- 2023-11-20 WO PCT/KR2023/018628 patent/WO2024107026A1/ko unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101132386B1 (ko) * | 2007-04-13 | 2012-07-16 | 노키아 코포레이션 | 비디오 코더 |
KR101789370B1 (ko) * | 2012-04-27 | 2017-10-23 | 퀄컴 인코포레이티드 | 비디오 코딩에서의 파라미터 세트 업데이트들 |
US20210099710A1 (en) * | 2018-04-01 | 2021-04-01 | Lg Electronics Inc. | Method for image coding using convolution neural network and apparatus thereof |
KR20210034536A (ko) * | 2019-09-20 | 2021-03-30 | 한국전자통신연구원 | 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
Non-Patent Citations (1)
Title |
---|
SEAN MCCARTHY (DOLBY), SACHIN DESHPANDE (SHARP): "AHG9: Specification text for use of Rec. ITU-T T.35 syntax structure to specify a neural network in the neural-network post filter characteristics SEI message", 28. JVET MEETING; 20221021 - 20221028; MAINZ; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), 22 October 2022 (2022-10-22), XP030304892 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020009556A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021172912A1 (ko) | 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치 | |
WO2020204413A1 (ko) | 복원 픽처를 수정하는 비디오 또는 영상 코딩 | |
WO2020231139A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2021040487A1 (ko) | 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
WO2020204419A1 (ko) | 적응적 루프 필터 기반 비디오 또는 영상 코딩 | |
WO2020180143A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2019194463A1 (ko) | 영상의 처리 방법 및 이를 위한 장치 | |
WO2021025526A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020184928A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2020180122A1 (ko) | 조건적으로 파싱되는 alf 모델 및 리셰이핑 모델 기반 비디오 또는 영상 코딩 | |
WO2021162494A1 (ko) | 필터 가용 정보를 선택적으로 시그널링 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021182816A1 (ko) | 직사각형 슬라이스의 크기 정보를 선택적으로 부호화 하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021066618A1 (ko) | 변환 스킵 및 팔레트 코딩 관련 정보의 시그널링 기반 영상 또는 비디오 코딩 | |
WO2021006700A1 (ko) | 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020197207A1 (ko) | 맵핑을 포함하는 필터링 기반 비디오 또는 영상 코딩 | |
WO2021201513A1 (ko) | Sps 내 ptl, dpb 및 hrd 관련 정보를 시그널링하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체 | |
WO2021158048A1 (ko) | Tsrc 가용 플래그의 시그널링 관련 영상 디코딩 방법 및 그 장치 | |
WO2021182802A1 (ko) | 비디오 또는 영상 코딩 시스템에서의 타일과 관련된 정보 및 슬라이스와 관련된 정보에 기반한 영상 코딩 방법 | |
WO2021241963A1 (ko) | 비디오 또는 영상 코딩 시스템에서의 poc 정보 및 비-참조 픽처 플래그에 기반한 영상 코딩 방법 | |
WO2024107026A1 (ko) | Nnpfc sei 메시지의 반복을 처리하는 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체 | |
WO2021025528A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021112479A1 (ko) | 비디오 또는 영상 코딩 시스템에서의 서브 픽처와 관련된 정보 및 직사각형 슬라이스와 관련된 정보에 기반한 영상 코딩 방법 | |
WO2021066609A1 (ko) | 변환 스킵 및 팔레트 코딩 관련 고급 문법 요소 기반 영상 또는 비디오 코딩 | |
WO2020246790A1 (ko) | 맵핑된 루마 성분 및 스케일링된 크로마 성분 기반 비디오 또는 영상 코딩 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23892088 Country of ref document: EP Kind code of ref document: A1 |