Method for controlling neural network-based video coding tools according to decoder capability

WO2025048289A1PCT designated stage expired Publication Date: 2025-03-06HYUNDAI MOTOR CO LTD +2
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/011256
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-30
Filing Date
2024-07-31
Publication Date
2025-03-06

Smart Images

  • Figure KR2024011256_06032025_PF_FP_ABST
    Figure KR2024011256_06032025_PF_FP_ABST
Patent Text Reader

Abstract

The present embodiment discloses a method for controlling neural network-based video coding tools according to allowable computation capability of a decoder side. In the present embodiment, an image decoding device decodes tool activation information indicating whether a neural network-based coding tool is activated, and determines, in terms of decoding, whether an appropriate computation amount required for performing computation related to the neural network-based coding tool is retained. The image decoding device configures a tool flag indicating whether to use the neural network-based coding tool, on the basis of the tool activation information and whether the appropriate computation amount is retained. If the tool flag is true, the image decoding device decodes parameters related to the neural network-based coding tool, and applies the neural network-based coding tool to a current frame on the basis of the decoded parameters.
Need to check novelty before this filing date? Find Prior Art

Description

A method for controlling neural network-based video coding tools based on decoder capabilities.

[0001] The present disclosure relates to a method for controlling neural network-based video coding tools according to the allowable computational capabilities of a decoder side.

[0002] The content described below merely provides background information related to the present invention and does not constitute prior art.

[0003] Since video data has a large amount of data compared to voice data or still image data, it requires a lot of hardware resources, including memory, to store or transmit it without processing for compression.

[0004] Therefore, when storing or transmitting video data, an encoder is used to compress the video data and store or transmit it, and a decoder receives the compressed video data, decompresses it, and plays it back. Examples of such video compression technologies include H.264 / AVC, HEVC (High Efficiency Video Coding), and VVC (Versatile Video Coding), which improves encoding efficiency by about 30% compared to HEVC.

[0005] However, as the size, resolution, and frame rate of images are gradually increasing, and the amount of data that needs to be encoded is also increasing, a new compression technology that has better encoding efficiency and better image quality improvement than existing compression technologies is required.

[0006] Recently, deep learning-based image processing technologies are being applied to existing encoding element technologies. By applying deep learning-based image processing technologies to existing encoding technologies, such as inter-prediction, intra-prediction, in-loop filters, and transformation, encoding efficiency can be improved. Representative application examples include inter-prediction based on virtual reference frames generated based on deep learning models and in-loop filters based on image restoration models. As mentioned above, neural network-based video coding tools used in video coding technologies require a significant amount of computation on the decoder side. Therefore, methods for effectively utilizing neural network-based video coding tools should be considered to enhance video encoding efficiency and improve video quality.

[0007] The present disclosure aims to provide a video coding method and device that scalably controls neural network-based video coding tools according to the allowable computational capabilities of a decoder by transmitting and restoring flags and parameter information related to neural network-based video coding tools based on a high level syntax.

[0008] According to an embodiment of the present disclosure, a method for restoring a current frame, performed by a video decoding device, comprises the steps of: decoding tool activation information indicating whether a neural network-based coding tool is activated from a bitstream, wherein the tool activation information indicates that the neural network-based coding tool was used in the encoding process of the current frame by the video encoding device; determining whether an appropriate amount of computation required for performing an operation related to the neural network-based coding tool is available in terms of decoding; setting a tool flag indicating whether the neural network-based coding tool is used based on the tool activation information and whether the appropriate amount of computation is available; and checking the tool flag, and further comprising the step of decoding parameters related to the neural network-based coding tool from an adaptation parameter set in the bitstream when the tool flag is true; and applying the neural network-based coding tool to the current frame based on the decoded parameters.

[0009] According to another embodiment of the present disclosure, a method for encoding a current frame, performed by a video encoding device, is provided, comprising: a step of reconstructing the current frame using a decoding path; a step of obtaining parameters related to a neural network-based coding tool; a step of applying the neural network-based coding tool to the reconstructed current frame based on the parameters to generate an improved current frame; a step of determining tool activation information indicating whether to activate the neural network-based coding tool based on the reconstructed current frame and the improved current frame; a step of encoding the tool activation information and including it in a bitstream; and a step of checking the tool activation information, wherein the method is characterized in that, if the tool activation information indicates activation of the neural network-based coding tool, the method further comprises a step of encoding the parameters and including them in an adaptation parameter set in the bitstream.

[0010] According to another embodiment of the present disclosure, a method for providing video data to a video decoding device is provided, the method comprising: encoding the video data into a bitstream; and transmitting the bitstream to the video decoding device, wherein the encoding the video data comprises: reconstructing a current frame using a decoding path; obtaining parameters related to a neural network-based coding tool; applying the neural network-based coding tool to the reconstructed current frame based on the parameters to generate an improved current frame; determining tool activation information indicating whether to activate the neural network-based coding tool based on the reconstructed current frame and the improved current frame; encoding the tool activation information and including it in a bitstream; and confirming the tool activation information, wherein the method further comprises: encoding the parameters and including them in an adaptation parameter set in the bitstream when the tool activation information indicates activation of the neural network-based coding tool.

[0011] As described above, according to the present embodiment, by transmitting and restoring flags and parameter information related to neural network-based video coding tools based on a high level syntax, a video coding method and device for scalably controlling neural network-based video coding tools according to the allowable computational capabilities of a decoder side are provided, thereby making it possible to improve video encoding efficiency and enhance video quality.

[0012] In addition, according to the present embodiment, in a video coding method using neural network-based video coding tools, a method of scalably controlling neural network-based video coding tools according to the allowable computational capacity of a decoder side based on a high-level syntax is provided, thereby enabling the use of high-complexity coding tools for desktops or TVs with sufficient power supply, and the use or non-use of low-complexity coding tools for mobile devices with small computing power. In cases where coding tools are not used, the use of neural network-based coding tools is omitted based on the high-level syntax, thereby enabling the reduction of redundant computations and the improvement of decoding speed.

[0013] In addition, according to the present embodiment, in a video coding method using neural network-based video coding tools, a method of scalably controlling neural network-based video coding tools according to the allowable computational capacity of a decoder side based on a high-level syntax is provided, thereby making it possible to reduce the burden on the network based on bit rate reduction in various contents such as UHD (Ultra High Definition) video, game broadcasting, 360-degree video streaming, VR / AR (Virtual Reality / Augmented Reality) video, online lectures, etc., and to reduce energy consumption for a video playback device.

[0014] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the techniques of the present disclosure.

[0015] Figure 2 is a drawing for explaining a method of dividing a block using the QTBTTT (QuadTree plus BinaryTree TernaryTree) structure.

[0016] FIGS. 3A and 3B are diagrams illustrating multiple intra prediction modes, including wide-angle intra prediction modes.

[0017] Figure 4 is an example diagram of the surrounding blocks of the current block.

[0018] FIG. 5 is an exemplary block diagram of an image decoding device capable of implementing the techniques of the present disclosure.

[0019] Figure 6 is an example diagram showing the operation of a convolution layer.

[0020] Figure 7 is an example diagram showing a SISR (Single Image Super Resolution) network.

[0021] Figure 8 is an example diagram showing a residual block used in SISR.

[0022] Figure 9 is an example diagram showing a fixed coefficient in-loop filter based on a CNN (Convolutional Neural Network).

[0023] FIG. 10 is an exemplary diagram illustrating information transmission of a neural network-based tool according to one embodiment of the present disclosure.

[0024] FIG. 11 is a flowchart illustrating a method for controlling neural network-based video tools performed by a video encoding device according to one embodiment of the present disclosure.

[0025] FIG. 12 is a flowchart illustrating a method for controlling neural network-based video tools performed by a video decoding device according to one embodiment of the present disclosure.

[0026] Hereinafter, embodiments of the present invention will be described in detail with reference to exemplary drawings. When designating components in each drawing, it should be noted that, where possible, identical components are given the same reference numerals, even if they appear in different drawings. Furthermore, in describing the present embodiments, detailed descriptions of related known structures or functions will be omitted if they are deemed to obscure the gist of the present embodiments.

[0027] FIG. 1 is an exemplary block diagram of an image encoding device capable of implementing the techniques of the present disclosure. Hereinafter, the image encoding device and its subcomponents will be described with reference to the illustration in FIG. 1.

[0028] The video encoding device may be configured to include a picture segmentation unit (110), a prediction unit (120), a subtractor (130), a transformation unit (140), a quantization unit (145), a reordering unit (150), an entropy encoding unit (155), an inverse quantization unit (160), an inverse transformation unit (165), an adder (170), a loop filter unit (180), and a memory (190).

[0029] Each component of the video encoding device may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.

[0030] A single image (video) is composed of one or more sequences containing multiple pictures. Each picture is divided into multiple regions, and encoding is performed for each region. For example, a single picture is divided into one or more tiles and / or slices. Here, one or more tiles can be defined as a tile group. Each tile or slice is divided into one or more Coding Tree Units (CTUs). Each CTU is then divided into one or more Coding Units (CUs) by a tree structure. Information applied to each CU is encoded as the syntax of the CU, and information commonly applied to CUs included in a CTU is encoded as the syntax of the CTU. In addition, information commonly applied to all blocks within a single slice is encoded as the syntax of the slice header, and information applied to all blocks constituting one or more pictures is encoded in the Picture Parameter Set (PPS) or the picture header. Furthermore, information commonly referenced by multiple pictures is encoded in a Sequence Parameter Set (SPS). And, information commonly referenced by one or more SPS is encoded in a Video Parameter Set (VPS). In addition, information commonly applied to one tile or tile group may be encoded as syntax of a tile or tile group header. Syntaxes included in an SPS, PPS, slice header, tile or tile group header may be referred to as high level syntax.

[0031] The picture segmentation unit (110) determines the size of the CTU. Information about the size of the CTU (CTU size) is encoded as the syntax of SPS or PPS and transmitted to the image decoding device.

[0032] The picture segmentation unit (110) divides each picture constituting an image into a plurality of CTUs having a predetermined size, and then recursively divides the CTUs using a tree structure. A leaf node in the tree structure becomes a CU, which is a basic unit of encoding.

[0033] The tree structure may be a QuadTree (QT) in which an upper node (or parent node) is divided into four lower nodes (or child nodes) of the same size, a BinaryTree (BT) in which an upper node is divided into two lower nodes, or a TernaryTree (TT) in which an upper node is divided into three lower nodes in a 1:2:1 ratio, or a structure that mixes two or more of the QT structures, BT structures, and TT structures. For example, a QTBT (QuadTree plus BinaryTree) structure may be used, or a QTBTTT (QuadTree plus BinaryTree TernaryTree) structure may be used. Here, BTTT may be combined and referred to as a MTT (Multiple-Type Tree).

[0034] Figure 2 is a drawing for explaining a method of dividing a block using the QTBTTT structure.

[0035] As illustrated in FIG. 2, a CTU may first be split into a QT structure. The quadtree splitting may be repeated until the size of the splitting block reaches the minimum block size (MinQTSize) of the leaf node allowed in the QT. A first flag (QT_split_flag) indicating whether each node of the QT structure is split into four nodes of the lower layer is encoded by the entropy encoding unit (155) and signaled to the image decoding device. If the leaf node of the QT is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, it may be further split into one or more of the BT structure or the TT structure. There may be multiple splitting directions in the BT structure and / or the TT structure. For example, there may be two directions in which the block of the corresponding node is split horizontally and two directions in which the block is split vertically. As illustrated in FIG. 2, when MTT splitting begins, a second flag (mtt_split_flag) indicating whether nodes have been split, and if splitting has occurred, a flag indicating the splitting direction (vertical or horizontal) and / or a flag indicating the splitting type (Binary or Ternary) are encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0036] Alternatively, before encoding the first flag (QT_split_flag) indicating whether each node is split into four nodes of a lower layer, a CU split flag (split_cu_flag) indicating whether the node is split may be encoded. If the CU split flag (split_cu_flag) value indicates that the node is not split, the block of the corresponding node becomes a leaf node in the split tree structure and becomes a CU (coding unit), which is a basic unit of encoding. If the CU split flag (split_cu_flag) value indicates that the node is split, the video encoding device starts encoding from the first flag in the above-described manner.

[0037] As another example of a tree structure, when QTBT is used, there may be two types: a type that horizontally splits the block of the corresponding node into two blocks of the same size (i.e., symmetric horizontal splitting) and a type that vertically splits it (i.e., symmetric vertical splitting). A split flag (split_flag) indicating whether each node of the BT structure is split into blocks of a lower layer and split type information indicating the type of split are encoded by the entropy encoding unit (155) and transmitted to the image decoding device. Meanwhile, there may additionally be a type that splits the block of the corresponding node into two blocks of an asymmetrical shape. The asymmetric shape may include a shape that splits the block of the corresponding node into two rectangular blocks with a size ratio of 1:3, or a shape that splits the block of the corresponding node in a diagonal direction.

[0038] A CU can have various sizes depending on the QTBT or QTBTTT partitioning from the CTU. Hereinafter, the block corresponding to the CU to be encoded or decoded (i.e., the leaf node of the QTBTTT) is referred to as the "current block." Depending on the QTBTTT partitioning employed, the current block may be rectangular as well as square.

[0039] The prediction unit (120) predicts the current block and generates a prediction block. The prediction unit (120) includes an intra prediction unit (122) and an inter prediction unit (124).

[0040] In general, each current block within a picture can be predictively coded. Prediction of the current block can typically be performed using either intra-prediction (using data from the picture containing the current block) or inter-prediction (using data from a picture coded before the picture containing the current block). Inter-prediction encompasses both unidirectional and bidirectional prediction.

[0041] The intra prediction unit (122) predicts pixels within the current block using pixels (reference pixels) located around the current block within the current picture including the current block. There are multiple intra prediction modes depending on the prediction direction. For example, as shown in Fig. 3a, the multiple intra prediction modes may include two non-directional modes including the Planar mode and the DC mode, and 65 directional modes. The surrounding pixels to be used and the calculation formula are defined differently depending on each prediction mode.

[0042] For efficient directional prediction for a rectangular current block, directional modes (intra prediction modes 67 to 80 and -1 to -14) indicated by dotted arrows in Fig. 3b may be additionally used. These may be referred to as "wide-angle intra-prediction modes." In Fig. 3b, the arrows point to corresponding reference samples used for prediction, and do not indicate the prediction direction. The prediction direction is opposite to the direction indicated by the arrows. Wide-angle intra-prediction modes are modes that perform prediction in the opposite direction of a specific directional mode without additional bit transmission when the current block is rectangular. At this time, among the wide-angle intra-prediction modes, some wide-angle intra-prediction modes available for the current block may be determined based on the ratio of the width and height of the rectangular current block. For example, wide-angle intra prediction modes (intra prediction modes 67 to 80) having an angle less than 45 degrees are available when the current block is a rectangular shape whose height is smaller than its width, and wide-angle intra prediction modes (intra prediction modes -1 to -14) having an angle greater than -135 degrees are available when the current block is a rectangular shape whose width is larger than its height.

[0043] The intra prediction unit (122) can determine an intra prediction mode to be used to encode the current block. In some examples, the intra prediction unit (122) can encode the current block using multiple intra prediction modes and select an appropriate intra prediction mode to be used from the tested modes. For example, the intra prediction unit (122) can calculate bit-rate distortion values ​​using rate-distortion analysis for multiple tested intra prediction modes and select an intra prediction mode with the best bit-rate distortion characteristics among the tested modes.

[0044] The intra prediction unit (122) selects one intra prediction mode from among multiple intra prediction modes and predicts the current block using surrounding pixels (reference pixels) and an operation formula determined according to the selected intra prediction mode. Information about the selected intra prediction mode is encoded by the entropy encoding unit (155) and transmitted to the image decoding device.

[0045] The inter prediction unit (124) generates a prediction block for the current block using a motion compensation process. The inter prediction unit (124) searches for a block most similar to the current block within reference pictures that were encoded and decoded before the current picture, and generates a prediction block for the current block using the searched block. Then, a motion vector (MV) corresponding to the displacement between the current block within the current picture and the prediction block within the reference picture is generated. Generally, motion estimation is performed on the luma component, and the motion vector calculated based on the luma component is used for both the luma component and the chroma component. The motion information including information on the reference picture used to predict the current block and information on the motion vector is encoded by the entropy encoding unit (155) and transmitted to the image decoding device.

[0046] The inter prediction unit (124) may perform interpolation on a reference picture or a reference block to improve prediction accuracy. That is, subsamples between two consecutive integer samples are interpolated by applying filter coefficients to a plurality of consecutive integer samples including the two integer samples. When a process of searching for a block most similar to the current block is performed on the interpolated reference picture, the motion vector can be expressed up to a precision in decimal units rather than a precision in integer sample units. The precision or resolution of the motion vector can be set differently for each target region to be encoded, such as a slice, tile, CTU, CU, etc. When such adaptive motion vector resolution (AMVR) is applied, information on the motion vector resolution to be applied to each target region must be signaled for each target region. For example, when the target region is a CU, information on the motion vector resolution applied to each CU is signaled. Information on the motion vector resolution may be information indicating the precision of a differential motion vector, which will be described later.

[0047] Meanwhile, the inter prediction unit (124) can perform inter prediction using bi-prediction. In the case of bi-prediction, two reference pictures and two motion vectors indicating the block position most similar to the current block within each reference picture are used. The inter prediction unit (124) selects a first reference picture and a second reference picture from reference picture list 0 (RefPicList0) and reference picture list 1 (RefPicList1), respectively, and searches for a block similar to the current block within each reference picture to generate a first reference block and a second reference block. Then, the first reference block and the second reference block are averaged or weighted averaged to generate a prediction block for the current block. Then, motion information including information on two reference pictures used to predict the current block and information on two motion vectors is transmitted to the entropy encoding unit (155). Here, reference picture list 0 may be composed of pictures that are before the current picture in display order among the restored pictures, and reference picture list 1 may be composed of pictures that are after the current picture in display order among the restored pictures. However, this is not necessarily limited to this, and restored pictures that are after the current picture in display order may be additionally included in reference picture list 0, and conversely, restored pictures that are before the current picture may be additionally included in reference picture list 1.

[0048] Various methods can be used to minimize the number of bits required to encode motion information.

[0049] For example, if the reference picture and motion vector of the current block are identical to those of a neighboring block, the motion information of the current block can be transmitted to the image decoding device by encoding information that can identify the neighboring block. This method is called 'merge mode'.

[0050] In merge mode, the inter prediction unit (124) selects a predetermined number of merge candidate blocks (hereinafter referred to as 'merge candidates') from the surrounding blocks of the current block.

[0051] As the surrounding blocks for deriving merge candidates, all or part of the left block (A0), the lower left block (A1), the upper block (B0), the upper right block (B1), and the upper left block (B2) adjacent to the current block within the current picture may be used, as illustrated in FIG. 4. In addition, a block located within a reference picture (which may or may not be the same as the reference picture used to predict the current block) other than the current picture in which the current block is located may be used as a merge candidate. For example, a block co-located with the current block within the reference picture or blocks adjacent to the block at the co-located block may be additionally used as a merge candidate. If the number of merge candidates selected by the method described above is less than a preset number, a 0 vector is added to the merge candidates.

[0052] The inter prediction unit (124) uses these surrounding blocks to construct a merge list containing a predetermined number of merge candidates. Among the merge candidates included in the merge list, the merge candidate to be used as motion information of the current block is selected and merge index information for identifying the selected candidate is generated. The generated merge index information is encoded by the entropy encoding unit (155) and transmitted to the video decoding device.

[0053] Merge Skip mode is a special case of merge mode. After quantization, when all transform coefficients for entropy encoding are close to zero, only neighboring block selection information is transmitted without transmitting residual signals. By utilizing merge skip mode, relatively high encoding efficiency can be achieved for low-motion images, still images, and screen content images.

[0054] Hereinafter, merge mode and merge skip mode are collectively referred to as merge / skip mode.

[0055] Another method for encoding motion information is Advanced Motion Vector Prediction (AMVP) mode.

[0056] In AMVP mode, the inter prediction unit (124) derives predicted motion vector candidates for the motion vector of the current block using neighboring blocks of the current block. As neighboring blocks used to derive predicted motion vector candidates, all or some of the left block (A0), the lower left block (A1), the upper block (B0), the upper right block (B1), and the upper left block (B2) adjacent to the current block in the current picture as shown in FIG. 4 may be used. In addition, a block located in a reference picture (which may or may not be the same as the reference picture used to predict the current block) other than the current picture in which the current block is located may be used as the neighboring block used to derive predicted motion vector candidates. For example, a block co-located with the current block in the reference picture or blocks adjacent to the block in the co-located block may be used. If the number of motion vector candidates is less than a preset number by the method described above, a 0 vector is added to the motion vector candidates.

[0057] The inter prediction unit (124) derives predicted motion vector candidates using the motion vectors of these surrounding blocks, and determines a predicted motion vector for the motion vector of the current block using the predicted motion vector candidates. Then, the predicted motion vector is subtracted from the motion vector of the current block to produce a differential motion vector.

[0058] The predicted motion vector can be obtained by applying a predefined function (e.g., median, mean, etc.) to the predicted motion vector candidates. In this case, the image decoding device also knows the predefined function. In addition, since the surrounding blocks used to derive the predicted motion vector candidates are blocks that have already been encoded and decoded, the image decoding device also already knows the motion vectors of the surrounding blocks. Therefore, the image encoding device does not need to encode information to identify the predicted motion vector candidates. Therefore, in this case, information about the differential motion vector and information about the reference picture used to predict the current block are encoded.

[0059] Alternatively, the predicted motion vector can be determined by selecting one of the predicted motion vector candidates. In this case, information for identifying the selected predicted motion vector candidate is additionally encoded, along with information about the differential motion vector and the reference picture used to predict the current block.

[0060] The subtractor (130) subtracts the prediction block generated by the intra prediction unit (122) or inter prediction unit (124) from the current block to generate a residual block.

[0061] The transformation unit (140) transforms residual signals within a residual block having pixel values ​​in a spatial domain into transform coefficients in a frequency domain. The transformation unit (140) may transform the residual signals within the residual block using the entire size of the residual block as a transformation unit, or may divide the residual block into a plurality of sub-blocks and use the sub-blocks as transformation units to perform the transformation. Alternatively, the residual signals may be transformed using only the transformation domain sub-block as a transformation unit by dividing the sub-blocks into two sub-blocks, that is, a transformation domain and a non-transform domain. Here, the transformation domain sub-block may be one of two rectangular blocks having a size ratio of 1:1 with respect to the horizontal axis (or vertical axis). In this case, a flag (cu_sbt_flag) indicating that only a sub-block has been converted, directionality (vertical / horizontal) information (cu_sbt_horizontal_flag), and / or position information (cu_sbt_pos_flag) are encoded by the entropy encoding unit (155) and signaled to the image decoding device. In addition, the size of the conversion area sub-block may have a size ratio of 1:3 with respect to the horizontal axis (or vertical axis), and in this case, a flag (cu_sbt_quad_flag) distinguishing the corresponding division is additionally encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0062] Meanwhile, the transformation unit (140) can individually perform transformations on the residual block in the horizontal and vertical directions. For the transformation, various types of transformation functions or transformation matrices can be used. For example, a pair of transformation functions for horizontal transformation and vertical transformation can be defined as a Multiple Transform Set (MTS). The transformation unit (140) can select one transformation function pair with the best transformation efficiency among the MTS and transform the residual block in the horizontal and vertical directions, respectively. Information (mts_idx) on the transformation function pair selected among the MTS is encoded by the entropy encoding unit (155) and signaled to the image decoding device.

[0063] The quantization unit (145) quantizes the transform coefficients output from the transform unit (140) using quantization parameters and outputs the quantized transform coefficients to the entropy encoding unit (155). The quantization unit (145) may directly quantize a related residual block without transformation for a certain block or frame. The quantization unit (145) may also apply different quantization coefficients (scaling values) according to the positions of the transform coefficients within the transform block. The quantization matrix applied to the quantized transform coefficients arranged in two dimensions may be encoded and signaled to an image decoding device.

[0064] The rearrangement unit (150) can perform rearrangement of coefficient values ​​for quantized residual values.

[0065] The reordering unit (150) can change a two-dimensional coefficient array into a one-dimensional coefficient sequence by using coefficient scanning. For example, the reordering unit (150) can output a one-dimensional coefficient sequence by scanning from the DC coefficient to the coefficients of the high-frequency region by using a zig-zag scan or a diagonal scan. Depending on the size of the transformation unit and the intra prediction mode, a vertical scan that scans the two-dimensional coefficient array in the column direction or a horizontal scan that scans the two-dimensional block-shaped coefficients in the row direction may be used instead of the zig-zag scan. That is, depending on the size of the transformation unit and the intra prediction mode, the scanning method to be used may be determined among the zig-zag scan, the diagonal scan, the vertical scan, and the horizontal scan.

[0066] The entropy encoding unit (155) generates a bitstream by encoding a sequence of one-dimensional quantized transform coefficients output from the rearrangement unit (150) using various encoding methods such as CABAC (Context-based Adaptive Binary Arithmetic Code) and Exponential Golomb.

[0067] In addition, the entropy encoding unit (155) encodes information related to block division, such as CTU size, CU division flag, QT division flag, MTT division type, and MTT division direction, so that the image decoding device can divide the block in the same manner as the image encoding device. In addition, the entropy encoding unit (155) encodes information about a prediction type indicating whether the current block is encoded by intra prediction or inter prediction, and encodes intra prediction information (i.e., information about an intra prediction mode) or inter prediction information (information about an encoding mode of motion information (merge mode or AMVP mode), a merge index in the case of a merge mode, and a reference picture index and a differential motion vector in the case of an AMVP mode) according to the prediction type. In addition, the entropy encoding unit (155) encodes information related to quantization, that is, information about a quantization parameter and information about a quantization matrix.

[0068] The inverse quantization unit (160) inversely quantizes the quantized transform coefficients output from the quantization unit (145) to generate transform coefficients. The inverse transform unit (165) transforms the transform coefficients output from the inverse quantization unit (160) from the frequency domain to the spatial domain to restore the residual block.

[0069] An adder (170) adds the restored residual block and the predicted block generated by the prediction unit (120) to restore the current block. The pixels within the restored current block are used as reference pixels when intra-predicting the next block.

[0070] The loop filter unit (180) performs filtering on restored pixels to reduce blocking artifacts, ringing artifacts, blurring artifacts, etc. that occur due to block-based prediction and transformation / quantization. The loop filter unit (180) may include all or part of a deblocking filter (182), a sample adaptive offset (SAO) filter (184), and an adaptive loop filter (ALF, 186) as an in-loop filter.

[0071] The deblocking filter (182) filters the boundaries between restored blocks to remove blocking artifacts caused by block-based encoding / decoding, and the SAO filter (184) and the ALF (186) perform additional filtering on the deblocking-filtered image. The SAO filter (184) and the ALF (186) are filters used to compensate for the differences between restored pixels and original pixels caused by lossy coding. The SAO filter (184) improves not only subjective image quality but also encoding efficiency by applying an offset in units of CTUs. In contrast, the ALF (186) performs block-based filtering, and compensates for distortion by applying different filters by distinguishing the edges and degrees of variation of the corresponding block. Information on filter coefficients to be used in the ALF can be encoded and signaled to an image decoding device.

[0072] The restored blocks filtered through the deblocking filter (182), SAO filter (184), and ALF (186) are stored in the memory (190). When all blocks within a picture are restored, the restored picture can be used as a reference picture for inter-predicting blocks within a picture to be encoded later.

[0073] The video encoding device can store the bitstream of encoded video data on a non-transitory storage medium or transmit it to the video decoding device using a communication network.

[0074] FIG. 5 is an exemplary block diagram of an image decoding device capable of implementing the techniques of the present disclosure. Hereinafter, the image decoding device and its subcomponents will be described with reference to FIG. 5.

[0075] The video decoding device may be configured to include an entropy decoding unit (510), a rearrangement unit (515), an inverse quantization unit (520), an inverse transformation unit (530), a prediction unit (540), an adder (550), a loop filter unit (560), and a memory (570).

[0076] Similar to the video encoding device of FIG. 1, each component of the video decoding device may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.

[0077] The entropy decoding unit (510) decodes the bitstream generated by the image encoding device to extract information related to block division, thereby determining the current block to be decoded, and extracts prediction information, information on residual signals, etc. required to restore the current block.

[0078] The entropy decoding unit (510) extracts information about the CTU size from the Sequence Parameter Set (SPS) or the Picture Parameter Set (PPS), determines the size of the CTU, and divides the picture into CTUs of the determined size. Then, the CTU is determined as the top layer of the tree structure, i.e., the root node, and the CTU is divided using the tree structure by extracting division information about the CTU.

[0079] For example, when splitting a CTU using the QTBTTT structure, first, the first flag (QT_split_flag) related to the splitting of QT is extracted, and each node is split into four nodes of the lower layer. Then, for the nodes corresponding to the leaf nodes of QT, the second flag (mtt_split_flag) related to the splitting of MTT and the split direction (vertical / horizontal) and / or split type (binary / ternary) information are extracted, and the corresponding leaf nodes are split into the MTT structure. Accordingly, each node below the leaf nodes of QT are split recursively into the BT or TT structure.

[0080] As another example, when splitting a CTU using the QTBTTT structure, the CU split flag (split_cu_flag) indicating whether the CU is split is first extracted, and if the block is split, the first flag (QT_split_flag) may be extracted. During the splitting process, each node may undergo zero or more repeated QT splits followed by zero or more repeated MTT splits. For example, a CTU may undergo an MTT split right away, or conversely, may undergo only multiple QT splits.

[0081] As another example, when splitting a CTU using the QTBT structure, the first flag (QT_split_flag) related to the splitting of QT is extracted, and each node is split into four nodes of the lower layer. Furthermore, for nodes corresponding to leaf nodes of QT, a split flag (split_flag) indicating whether to further split into BTs and splitting direction information are extracted.

[0082] Meanwhile, when the entropy decoding unit (510) determines the current block to be decoded by using the division of the tree structure, it extracts information on the prediction type indicating whether the current block is intra-predicted or inter-predicted. If the prediction type information indicates intra-prediction, the entropy decoding unit (510) extracts syntax elements for intra-prediction information (intra-prediction mode) of the current block. If the prediction type information indicates inter-prediction, the entropy decoding unit (510) extracts syntax elements for inter-prediction information, i.e., information indicating a motion vector and a reference picture referenced by the motion vector.

[0083] Additionally, the entropy decoding unit (510) extracts information about the quantized transform coefficients of the current block as information related to quantization and information about residual signals.

[0084] The rearrangement unit (515) can change the sequence of one-dimensional quantized transform coefficients entropy-decoded in the entropy decoding unit (510) back into a two-dimensional coefficient array (i.e., block) in the reverse order of the coefficient scanning performed by the image encoding device.

[0085] The inverse quantization unit (520) inversely quantizes the quantized transform coefficients and inversely quantizes the quantized transform coefficients using the quantization parameters. The inverse quantization unit (520) may also apply different quantization coefficients (scaling values) to the quantized transform coefficients arranged in two dimensions. The inverse quantization unit (520) may perform inverse quantization by applying a matrix of quantized coefficients (scaling values) from an image encoding device to a two-dimensional array of quantized transform coefficients.

[0086] The inverse transform unit (530) inversely transforms the inverse quantized transform coefficients from the frequency domain to the spatial domain to restore residual signals, thereby generating a residual block for the current block.

[0087] In addition, when the inverse transform unit (530) inversely transforms only a portion of a transform block (sub-block), it extracts a flag (cu_sbt_flag) indicating that only a sub-block of the transform block has been transformed, directionality (vertical / horizontal) information (cu_sbt_horizontal_flag) of the sub-block, and / or position information (cu_sbt_pos_flag) of the sub-block, and inversely transforms the transform coefficients of the corresponding sub-block from the frequency domain to the spatial domain to restore residual signals, and fills “0” values ​​with residual signals for areas that have not been inversely transformed, thereby generating a final residual block for the current block.

[0088] In addition, when MTS is applied, the inverse transform unit (530) determines a transform function or a transform matrix to be applied in the horizontal and vertical directions using MTS information (mts_idx) signaled from the image encoding device, and performs inverse transform on the transform coefficients within the transform block in the horizontal and vertical directions using the determined transform function.

[0089] The prediction unit (540) may include an intra prediction unit (542) and an inter prediction unit (544). The intra prediction unit (542) is activated when the prediction type of the current block is intra prediction, and the inter prediction unit (544) is activated when the prediction type of the current block is inter prediction.

[0090] The intra prediction unit (542) determines the intra prediction mode of the current block among a plurality of intra prediction modes from the syntax elements for the intra prediction mode extracted from the entropy decoding unit (510), and predicts the current block using reference pixels around the current block according to the intra prediction mode.

[0091] The inter prediction unit (544) uses the syntax elements for the inter prediction mode extracted from the entropy decoding unit (510) to determine the motion vector of the current block and the reference picture referenced by the motion vector, and predicts the current block using the motion vector and the reference picture.

[0092] An adder (550) adds the residual block output from the inverse transform unit (530) and the predicted block output from the inter prediction unit (544) or the intra prediction unit (542) to restore the current block. The pixels within the restored current block are used as reference pixels when intra-predicting a block to be decoded later.

[0093] The loop filter unit (560) may include a deblocking filter (562), an SAO filter (564), and an ALF (566) as in-loop filters. The deblocking filter (562) deblocks the boundaries between restored blocks to remove blocking artifacts caused by block-by-block decoding. The SAO filter (564) and the ALF (566) perform additional filtering on restored blocks after deblocking filtering to compensate for differences between restored pixels and original pixels caused by lossy coding. The filter coefficients of the ALF are determined using information about filter coefficients decoded from the non-stream.

[0094] The restored blocks filtered through the deblocking filter (562), SAO filter (564), and ALF (566) are stored in the memory (570). When all blocks within a picture are restored, the restored picture is used as a reference picture for inter-predicting blocks within a picture to be encoded later.

[0095]

[0096] The present embodiment relates to encoding and decoding of images (videos) as described above. More specifically, the present invention provides a video coding method and device that controls neural network-based video coding tools according to the allowable computational capabilities of a decoder by transmitting and restoring flags and parameter information related to neural network-based video coding tools based on a high-level syntax.

[0097] The following embodiments may be performed by a video encoding apparatus. Additionally, the following embodiments may be performed by a video decoding apparatus.

[0098] The video encoding device can generate signaling information related to the present embodiment in terms of rate distortion optimization in encoding the current block. The video encoding device can encode the signaling information using the entropy encoding unit (155) and then transmit it to the video decoding device. The video decoding device can decode the signaling information related to the decoding of the current block from the bitstream using the entropy decoding unit (510).

[0099] In the following description, the term "target block" may be used interchangeably with the current block or coding unit (CU). Alternatively, the term "target block" may also refer to a portion of a coding unit.

[0100] Also, a value of a flag being true indicates that the flag is set to 1. Also, a value of a flag being false indicates that the flag is set to 0.

[0101] Below, the video coding tools, coding tools and tools can be used interchangeably.

[0102] I. CNN(Convolutional Neural Network)

[0103] CNN, a neural network comprised of multiple convolutional layers and pooling layers, is a deep learning technique known to be ideal for image processing. Convolutional layers extract feature maps (also known as "features" or "characteristics") using multiple kernels or filters. The kernel coefficients that make up the filters are parameters determined during the learning process.

[0104] Among the convolutional layers of CNN, the front layer closer to the input extracts feature maps that respond to simple, low-level image features such as lines, points, or surfaces, while the back layer closer to the output extracts feature maps that respond to higher-level features such as textures and object parts.

[0105] FIG. 6 is an exemplary diagram showing the operation of a convolutional layer according to one embodiment of the present disclosure.

[0106] A convolutional layer generates a feature map from an input image using a convolution operation. The example in Fig. 6 illustrates a kernel (or filter) with a kernel size of 3×3. The kernel size is also referred to as the kernel size or filter size. The kernel has kernel parameters, also called weights. The kernel illustrated in Fig. 6 has a total of nine kernel parameters. The kernel parameters are initially set to arbitrary values, and their values ​​can be updated based on learning.

[0107] The convolution layer performs convolution operations using blocks of the same size as the kernel size in the input image. At this time, the blocks of the same size as the kernel size in the input image are referred to as windows.

[0108] When filtering an input image in raster scan order, the window movement size is called the stride. In the example of Fig. 6, the stride is 1. If the stride is set to 2, the convolution operation is performed by spacing the window by 2 samples, and as a result, the width and height of the feature map become half the width and height of the input image.

[0109] As mentioned above, a single convolutional layer can include multiple filters. The number of filters or kernels is called a channel. In other words, the number of channels is equal to the number of filters. Furthermore, the number of filters determines the dimensionality of the feature map.

[0110] Padding refers to a method of expanding input data by filling the area around it with a specific value before performing a convolution operation. Padding is primarily used to adjust the spatial size of the output data. The padding value can be determined by hyperparameters, but zero-padding is commonly used. Without padding, the spatial size of the output data decreases with each convolutional layer, potentially causing boundary information to disappear. Therefore, padding is used to prevent this problem. Specifically, padding can be used to match the spatial sizes of the output data from the convolutional layer to the input data.

[0111] The deconvolution layer performs the opposite operation to the convolution layer. It generates the desired data image from the input feature map as output.

[0112] The pooling layer performs pooling, a process of subsampling the feature map generated by the convolutional layer. The pooling layer uses a 2×2 window to select samples so that the output is half the width and height of the input. In other words, the pooling layer is used to reduce the size of the input image or input feature map by condensing a 2×2 region into a single sample.

[0113] The opposite concept of a pooling layer is defined as an unpooling layer. Unpooling layers, in contrast to pooling layers, function to expand the dimensionality and are primarily used after deconvolution layers.

[0114] The convolutional encoder-decoder architecture is a network structure composed of pairs of convolutional layers and deconvolutional layers. The convolutional encoder consists of a convolutional layer and a pooling layer, and outputs a feature map (or feature vector) from the input image. The final output vector of the convolutional encoder is also referred to as a latent vector. The convolutional decoder consists of a deconvolutional layer and an unpooling layer, and generates an output image from the feature map or latent vector.

[0115] The inputs and outputs of a convolutional encoder-decoder can be configured in various ways depending on the application and network purpose. For example, the inputs and outputs can be optical flow maps, saliency maps, image frames, etc.

[0116] Figure 7 is an example diagram showing an SISR network.

[0117] One example of CNN application is Single Image Super Resolution (SISR). The SISR network generates a high-resolution image from a low-resolution input image. As illustrated in Figure 7, the SISR network may include multiple convolutional layers. Each convolutional layer includes an activation function, such as the Rectified Linear Unit (ReLU). The parameters of the SISR network can be trained so that the resulting SR (Super Resolution) image approximates the Ground Truth (GT).

[0118] SR methods using CNN can improve SR performance by increasing the depth (e.g., increasing the number of convolutional layers). To overcome the overfitting problem that may occur in learning due to the increase in depth, a residual block that can perform skip connection and residual learning can be used in the SISR network. The residual block, as illustrated in Fig. 8, is a block that stores input features x l In addition to the path that applies the convolution operation, it includes a skip path. In addition, the residual block outputs x l+1 When generating, a path or skip path for applying convolution operations can also be selected based on learning efficiency. In the example of Fig. 8, the residual block includes a BN (Batch Normalization) layer.

[0119] For example, Enhanced Deep Residual Networks (EDSR) improves network performance by continuously connecting residual blocks to increase their depth. Another example is Accurate Image Super-Resolution Using Very Deep Convolutional Networks (VDSR), a CNN model based on the Visual Geometry Group (VGG) network that uses residual learning, a method that adds residual frames to the final output. VDSR adds the residual signal to the very end of the network, thereby adding it to the input signal.

[0120] As another example, CNN can be used as an in-loop filter in an image encoding device or an image decoding device. In this case, the deep learning-based in-loop filter can be applied to any position within the existing loop filter unit (180, 560) consisting of a deblocking filter, an SAO filter, and an ALF.

[0121] Among the deep learning-based in-loop filters are fixed-coefficient in-loop filters. Fixed-coefficient deep learning in-loop filters use the same CNN kernel parameters stored on the image encoding and decoding devices.

[0122] Figure 9 is an example diagram showing a CNN-based fixed coefficient in-loop filter.

[0123] A fixed-coefficient in-loop filter may be a noise-removing CNN model including multiple Dense Residual Units (DRUs). The input block (or input frame) passes through a normalized QP map and then is passed to the subsequent stage. The normalized QP map is used to reduce inference errors when quantization noises of different intensities are mixed during the learning and inference processes. The kernel parameters constituting the Dense Residual Units (DRUs) and convolutional layers may be stored identically and used in an image encoding device and an image decoding device. In the example of Fig. 9, each DRU may include all or part of a convolutional layer, a ReLU layer, and a depth-wise separable convolutional (DSC) layer.

[0124] Fixed-coefficient deep learning in-loop filters have the disadvantage of providing general performance for a variety of video frames, which increases the number of layers in the CNN and thus increases the computation time.

[0125] As another example, there is a variable coefficient in-loop filter as a deep learning-based in-loop filter. A video encoding device trains a variable coefficient in-loop filter based on a target video frame and transmits filter parameters according to the training to a video decoding device. The variable coefficient in-loop filter may be a noise-removing CNN model including convolutional layers. As an example, based on an input block (or input frame) generated by packing Y, U, and V blocks, the variable coefficient in-loop filter may output a block from which noise has been removed. Since it is trained based on a target video frame, the kernel parameters can be adaptively configured to the target video. Since a parameter refresh is performed for each I-frame, the kernel parameters can be transmitted to the video decoding device for each I-frame, considering the size of the transmitted parameters.

[0126] The variable coefficient in-loop filter has the disadvantage of requiring double-loop coding because it is adaptively configured for the target video frame. Therefore, considering delay, the variable coefficient in-loop filter has limited applicability to random access scenarios.

[0127] II. High Level Syntax (HLS) in the Bitstream

[0128] High-level syntax (HLS) is an essential component of video coding methods and devices, and represents a high-level syntax that constitutes the interface of video coding methods and devices in a network or system. HLS is also called NAL (Network Abstraction Layer). HLS can include information such as encoded residual signals, data unit structures, sequence and picture-level parameter signals, decoded picture and reference picture management, profile and level signaling, high-level picture partitioning (slicing, tiling, etc.), random access and stream adaptation, error resilience, and additional information signaling.

[0129] As an example, HLS of Versatile Video Coding (VVC) contains the following elements:

[0130] NAL unit syntax, Decoding Capability Information (DCI), Operating Point Information (OPI), Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Adaptation Parameter Set (APS), Video Usability Information (VUI), Supplemental Enhancement Information (SEI), Access Unit Delimiter (AUD), Picture Header (PH), Slice Header (SH), End of Sequence (EOS), End of Bitstream (EOB).

[0131] As mentioned above, HLS includes syntax at different levels. The syntax of different HLSs can often overlap, forming a multidimensional matrix. Syntax related to managing decoded video can exist in the NAL Unit Header (NUH), VPS, SPS, PPS, PH, and SH.

[0132] SPS conveys sequence-level information shared by all pictures. For example, SPS can include information such as the Profile, Tier, and Level (PTL) indicator, the picture format (maximum picture width and height, bit depth, color format), tool control flags, the structure and hierarchy of coding units (CUs), prediction units (PUs), and transform units (TUs), and a reference picture list (RPL) referenced by the video encoding device.

[0133] The PPS conveys picture-level information shared by all slices of a picture or by multiple pictures. For example, the PPS may contain information such as tool control flags, the picture's width and height, the RPL size, and the tile and slice configuration.

[0134] To convey parameters that can be applied to multiple pictures but are expected to change frequently from picture to picture, VVC uses a new type of parameter set called an Adaptive Parameter Set (APS). Whether potentially variable picture-level parameters are included in the PPS or the APS can be determined based on the frequency of parameter changes. In other words, frequently changing parameters are not included in the PPS.

[0135] An APS conveys information that is shared by multiple slices of a picture or other pictures, but changes frequently from picture to picture and is therefore not suitable for inclusion in a PPS. An APS can convey information on a picture-by-picture or slice-by-slice basis. As shown in Table 1, an APS can include three types of parameters: parameters of an adaptive loop filter (ALF), parameters of luma mapping with chroma scaling (LMCS), and parameters of a quantization scaling list.

[0136]

[0137] In Table 1, aps_params_type indicates the type of APS parameters, as described above. The types of APS parameters can be defined as in Table 2.

[0138]

[0139] In Table 1, aps_adaptation_parameter_set_id indicates one of multiple parameter sets for a specific APS parameter type. For example, if the APS parameter type is ALF_APS or SCALING_APS, aps_adaptation_parameter_set_id can have a value from 0 to 7. If the APS parameter type is LMCS_APS, aps_adaptation_parameter_set_id can have a value from 0 to 3. As shown in Table 1, multiple parameter sets corresponding to APS parameter types can be transmitted using APS.

[0140] Depending on the type of data being transmitted, APS can be in the form of a prefix or a suffix. That is, APS can be transmitted in two different NAL unit types, either before or after the relevant slice. For example, in a Low Delay (LD) encoding scenario, it may be useful to use a suffix NAL unit type for ALF parameters, as ALF parameters are generated to be applied to the next frame in decoding order based on the statistics of the current image.

[0141] III. Embodiments according to the present disclosure

[0142] Hereinafter, a method for scalably controlling neural network-based video tools according to the computational capacity of a video decoding device is described. Neural network-based tools can be defined in HLS, such as SPS and PPS. At this time, filter (kernel) information required by each neural network-based tool can be transmitted to APS. Alternatively, a newly generated neural APS (NAPS) containing neural network information can be transmitted. At this time, different APSs (or NAPSs) can be transmitted depending on the computational capacity of the decoder. As an example, signaling of filter parameter information included in APS (or NAPS) is described based on tools such as neural network-based in-loop filters and neural network-based super-resolution (SR) being developed in NNVC (Neural Network Video Coding) of the next-generation VVC (beyond VVC).

[0143] The syntax and semantics for controlling decoding complexity by determining whether to use neural network-based tools in the video decoding process can be defined as shown in Table 3.

[0144]

[0145] The syntax and semantics shown in Table 3 can be conveyed using HLS, such as VPS, SPS, PPS, and APS, or NAPS (neural APS). NAPS is defined as an APS that transmits only parameters related to neural network encoding technology. Technologies related to neural network-based tools can be used alone or in combination.

[0146] As shown in Table 3, NNbitMask determines whether to use each technology related to the NNLF tool. The video encoding device encodes NNbitMask and transmits the encoded NNbitMask to the video decoding device.

[0147] Below, with respect to the Neural Network in-loop Filter (NNLF) tool, the syntax for complexity control signaling, i.e., the control flags for tool application, are described.

[0148] For example, in Table 3, NNbitMask is defined as 0x01 in relation to the use of low-complexity NNLF for image quality improvement. That is, when NNbitMask is 0x01, it indicates that a deep learning-based in-loop filter is used in the current bitstream. As another example, in relation to chroma super-resolution, NNbitMask is defined as 0x04. Adding 0x01 and 0x04 to signal NNbitMask 0x05 indicates that a neural network in-loop filter and super-resolution technology are applied to the current bitstream. In addition to the method of conveying the combination of NNbitMask as described above, a related flag may be defined for each coding tool. After setting the value of the defined flag to 0 or 1, the video encoding device can signal the set value to the video decoding device.

[0149] The video decoding device determines whether it has an appropriate amount of computational power to perform operations related to the neural network-based coding tool. For example, if it is determined that it supports sufficient computational power related to the use of the in-loop filter, the video decoding device outputs EnableNNLFFlag as 1 based on the logical AND operation between the received NNbitMask 0x05 and 0x01 (i.e., 0x01 & 0x05 = 1). Conversely, if the video encoding device performs image quality improvement using neural network technology, the image decoding device may not support sufficient computational power and thus may not reflect the image quality improvement. In this case, the video decoding device outputs EnableNNLFFlag as 0 based on the logical AND operation between the received NNbitMask 0x05 and 0x01. If the neural network technology was not used, the video encoding device can set NNbitMask to 0. In this case, the video decoding device always outputs EnableNNLFFlag as 0 even if it supports sufficient computational power.

[0150] As described above, EnableNNLFFlag can be derived as in Equation 1.

[0151]

[0152] The semantics of EnableNNLFFlag, shown in Equation 1, are defined as follows. EnableNNLFFlag represents a syntax that determines whether to allow neural network-based in-loop filters. Depending on the decoder's computational capabilities, EnableNNLFFlag adaptively determines whether to allow in-loop filter tools.

[0153] When EnableNNLFFlag is determined to be 0, for example, the image decoding device can omit receiving and decoding parameters related to NNLF transmitted using NAPS. Specifically, the image decoding device can omit receiving and decoding information such as a set of parameters constituting a neural network transmitted as additional information for NNLF operation, information about a neural network structure, a filter (kernel) used in the neural network, an index indicating a predefined neural network structure, etc. For example, examples of neural network in-loop filter techniques include a technique for adjusting the scaling of a residual signal or a technique for mixing it with the output of another in-loop filter, and the image decoding device can omit receiving and decoding parameters used in the exemplified techniques. Additionally, when using a specific filter set as an NNLF, a flag related to specifying the input type of the NNLF can be considered. For example, the image decoding device may omit decoding of a flag that determines whether to input the Y block by dividing it into four equal parts and stacking the U and V blocks between channels, or a flag that determines whether to input the U and V blocks by upsampling them and stacking them on Y.

[0154] NAPS can transmit parameters representing the complexity of the in-loop filter used in the video encoding device. For example, NAPS can include information such as the total number of parameters, maximum memory usage, and indices representing the maximum amount of computation (Multiply-Accumulate (MAC), Floating point Operation per Second (FLOPS)). Alternatively, with respect to the total amount of computation index defined in Equation 2, NAPS can transmit weights related to the calculation of the total amount of computation index. Alternatively, preset values ​​may be used according to a prior agreement between the video encoding device and the video decoding device as weights related to the calculation of the total amount of computation index.

[0155]

[0156] In Equation 2, each parameter is calculated at the input level. The total computational load index can be expressed as a weighted sum of the total number of parameters and the indicators representing the maximum computational load (MAC, FLOPS).

[0157] The video decoding device can determine the complexity by decoding complexity-related parameters. Alternatively, the video decoding device can obtain weights and determine the complexity by calculating the total computational load index as in Equation 2. At this time, the video decoding device can decode the weights from NAPS. Alternatively, preset values ​​may be used as weights according to a prior agreement between the video encoding device and the video decoding device. If the complexity determined as described above is determined to exceed the computational range of the decoder, the video decoding device may not use NNLF.

[0158] Below, with respect to the Neural Network Super Resolution (NNSR) tool, the syntax for complexity control signaling, i.e., the control flags for tool application, are described.

[0159] Neural network-based super-resolution tools alter video resolution during encoding and decoding. By reducing the video resolution before encoding and then applying super-resolution after decoding to restore it to its original resolution, a smaller bitstream can be generated based on the low-resolution video compared to the original resolution video.

[0160] In controlling a neural network-based super-resolution tool in a bitstream, the syntax and semantics related to the complexity of the super-resolution tool can be defined as follows.

[0161] For example, in Table 3, with respect to the use of NNSR for super-resolution, NNbitMask is defined as 0x08. That is, when NNbitMask is 0x08, it indicates that neural network-based super-resolution is used in the current bitstream.

[0162] The video decoding device determines whether it has an appropriate amount of computation to perform operations related to the NN encoding tool. For example, if it is determined that sufficient computational capacity related to the use of NNSR is supported, the video decoding device outputs EnableNNSRFlag as 1 based on the logical AND operation between the received NNbitMask value and 0x08. Conversely, if the video encoding device performs super-resolution using neural network technology, the video decoding device may not reflect the super-resolution because it does not support sufficient computational capacity. In this case, the video decoding device outputs EnableNNSRFlag as 0 based on the logical AND operation between the received NNbitMask value and 0x08. If the neural network technology was not used, the video encoding device can set NNbitMask to 0. In this case, the video decoding device always outputs EnableNNSRFlag as 0 even if it supports sufficient computational capacity.

[0163] As described above, EnableNNSRFlag can be derived as in Equation 3.

[0164]

[0165] The semantics of EnableNNSRFlag, shown in Equation 1, are defined as follows. EnableNNSRFlag represents a syntax that determines whether neural network-based super-resolution is allowed. Depending on the decoder's computational capabilities, EnableNNSRFlag adaptively determines whether to allow super-resolution tools.

[0166] If EnableNNSRFlag is determined to be 0, for example, the image decoding device may omit receiving and decoding parameters related to NNSR transmitted using NAPS. Specifically, the image decoding device may omit receiving and decoding information such as a set of parameters constituting a neural network transmitted as additional information for NNSR operation, information about a neural network structure, a filter (kernel) used in the neural network, and an index indicating a predefined neural network structure. In addition, the image decoding device may omit receiving and decoding parameters that determine the horizontal and vertical upsampling ratios. Additionally, when a specific filter set is used as NNSR, a flag related to the designation of the NNSR input type may be considered. For example, the image decoding device may omit decoding of a flag that determines whether to divide the Y block into four equal parts and input the U and V blocks by stacking them between channels, or a flag that determines whether to input the U and V blocks by upsampling them and stacking them on Y.

[0167] The flags corresponding to the remaining NNbitMask values ​​shown in Table 3 are parsed as in mathematical expression 4, and the video decoding device can control the use of the neural network-based video tool corresponding to each flag using the parsed flags.

[0168]

[0169] In Equation 4, EnableNNLF_HOP_Flag indicates whether to apply NNLF, which has relatively high complexity compared to the aforementioned NNLF. EnableChromaUpsamplingFlag indicates whether to perform chroma super-resolution. EnableResolutionResamplingFlag indicates whether to change the video resolution. EnableResolutionResamplingFlag, like the aforementioned EnableNNSRFlag, masks the same location in NNbitMask. EnableFrameUpsamplingFlag indicates whether to increase the frame rate. EnableBitDepthUpsamplingFlag indicates whether to increase the bit depth of luma / chroma pixels. EnableColourizationFlag indicates whether to colorize a grayscale image.

[0170] As another example, even if EnableNNLFFlag is determined to be 1, the video decoding device can determine whether to apply NNLF on a GOP (Group of Pictures) basis, a picture basis, a picture basis according to the TemporalID value, or a block basis. For example, by specifying flags such as EnableGOPLevel, EnablePictureLevel, EnableTemporalID, and EnableBLK, the video decoding device can hierarchically control complexity within a video sequence. Here, TemporalID indicates the level of pictures using the same quantization parameter within the GOP. In other words, TemporalID indicates the level of pictures referenced by the current frame. For example, as TemporalID increases, the size of the quantization parameter also increases, and the bit depth representing the residual signal decreases.

[0171] Below, we describe a method for defining neural network-based video tools in a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), or a Picture Parameter Set (PPS). Furthermore, we describe a method for adaptively transmitting filter information required by each neural network-based video tool to an Adaptation Parameter Set (APS).

[0172] As mentioned above, depending on the type of data being transmitted, the APS can be in the form of a prefix or a suffix. That is, the APS can be transmitted as two different NAL unit types, either before or after the relevant slice. For example, in a low-delay (LD) encoding scenario, similar to the basic APS, it may be useful to use the suffix NAL unit type as the APS for neural network-based video tools to apply to the next image in the decoding sequence.

[0173] FIG. 10 is an exemplary diagram illustrating information transmission of a neural network-based tool according to one embodiment of the present disclosure.

[0174] In the top three examples of Figure 10, SPS, PPS, and APS each transmit information to a neural network-based tool. In the final example at the bottom of Figure 10, SPS and APS transmit information together. As shown in the examples of Figure 10, the image encoding device can transmit information to a neural network-based tool based on a single set or two or more sets of parameters.

[0175] If the decoding process does not require neural network technology, the image decoding device may omit decoding of the corresponding APS (or NAPS).

[0176] As an example, a separate profile (hereinafter referred to as "N-Profile") including the techniques of Table 3 for encoding based on a neural network can be generated. The image decoding device can decode the target image based on neural network-based tools only when it supports N-Profile.

[0177] Meanwhile, as described above, even if the video encoding device encodes the target video based on a neural network, there may be cases where the video decoding device cannot use the neural network due to decoding complexity. For example, the video decoding device can determine the computational complexity based on the TemporalID. If the current frame cannot be used as a reference frame, the video decoding device can apply NNLF to the current frame. NNLF can be used when the TemporalID is the largest, i.e., when the current frame is not used as a reference frame. As another example, a flag called DisableNNRefFLAG can be used to indicate whether an arbitrary frame can be used as a reference frame. That is, the video encoding device sets DisableNNRefFLAG to 1 at the picture level to prevent the corresponding frame from being used as a reference frame.

[0178] NNLF can be positioned at the very last stage in the in-loop filter. That is, if NNLF is not used, the video decoding device can use the restored frame according to the output of the SAO filter and ALF as the final output frame.

[0179] When NNLF is used for a frame whose TemporalID is not the largest (i.e., a frame that can be used as a reference frame) or a frame with DisableNNRefFLAG=0, the image decoding device may not use samples to which the neural network-based tool is applied as reference samples in inter prediction.

[0180] When intra prediction is applied and NNLF is the last in-loop filter, the image decoder can only use the output of ALF for intra prediction.

[0181] As an example, as described above, activation information corresponding to one neural network-based tool may be defined on SPS or PPS, and (filter) parameters corresponding to one neural network-based tool may be transmitted using APS or NAPS.

[0182] Hereinafter, as another example, a case is described in which there are multiple filters corresponding to a specific neural network-based tool, and there are multiple parameter sets corresponding to each of the multiple filters. For example, each filter may be implemented by a different parameter set depending on its complexity. When the neural network-based tool is activated, the video encoding device may adaptively select a filter according to the characteristics of the video sequence. At this time, information (e.g., an index) indicating a selected filter (or parameter set) among the multiple filters (or multiple parameter sets) is defined in the SPS, PPS, or APS. In addition, the video encoding device may transmit the multiple parameter sets using the APS or NAPS. As an example, when a default filter is defined in advance with respect to a specific neural network-based tool, the video encoding device may transmit the remaining parameter sets, excluding the parameter set corresponding to the default filter, using the APS or NAPS. That is, the parameter set corresponding to the default filter may not be transmitted.

[0183] If it is determined that a neural network-based tool is to be applied in terms of decoding complexity, the image decoding device can decode information indicating a filter (or parameter set). Using the information indicating the filter (or parameter set), the image decoding device can decode a parameter set required for applying a specific neural network-based tool from a plurality of parameter sets included in the APS or NAPS.

[0184] Below, information indicating a filter (or parameter set) related to a neural network-based tool and APS (or NAPS) syntax related to multiple parameter sets are described.

[0185] APS to support neural network-based tools can be defined as shown in Table 4.

[0186]

[0187] As shown in Table 4, in addition to the existing APS parameter types, a new type (NN_UPDATE_APS) is added to support neural network-based tools. Including the new type, the APS parameter types can be expanded and defined as shown in Table 5.

[0188]

[0189] In Table 4, aps_adaptation_parameter_set_id indicates one of multiple parameter sets for a specific APS parameter type, as described above. For example, if the APS parameter type is NN_UPDATE_APS, aps_adaptation_parameter_set_id can have a value of 0 to 3. As shown in Table 1, if the APS parameter type is NN_UPDATE_APS, multiple parameter sets related to neural network-based tools can be transmitted using APS. As a specific syntax for transmitting multiple parameter sets, nn_filter_update_data() can be expressed as shown in Table 6.

[0190]

[0191] In Table 6, "nnfu_bitstream_size_minus1+1" represents the size of the payload associated with multiple parameter sets in bytes. nn_filter_update_data() transmits multiple parameter sets associated with a neural network-based tool corresponding to the size of the payload. For example, if the APS parameter type is NN_UPDATE_APS, based on aps_adaptation_parameter_set_id, the image decoding device can decode a parameter set required for applying a specific neural network-based tool from multiple parameter sets.

[0192] Hereinafter, a method for controlling neural network-based video tools is described using the cities of FIGS. 11 and 12.

[0193] FIG. 11 is a flowchart illustrating a method for controlling neural network-based video tools performed by a video encoding device according to one embodiment of the present disclosure.

[0194] The video encoding device restores the current frame using the decoding path (S1100).

[0195] The image encoding device obtains parameters related to a neural network-based coding tool (S1102).

[0196] The video encoding device applies a neural network-based coding tool to the restored current frame based on the parameters to generate an improved current frame (S1104).

[0197] The video encoding device determines tool activation information indicating whether to activate a neural network-based coding tool based on the restored current frame and the improved current frame (S1106).

[0198] In terms of rate-distortion optimization, the video encoding device can determine tool activation information. If the improved current frame is optimal, the video encoding device can determine tool activation information to instruct the activation of the neural network-based coding tool. Conversely, if the restored current frame is optimal, the video encoding device can determine tool activation information to not instruct the activation of the neural network-based coding tool.

[0199] As an example, when multiple neural network-based coding tools are used, the image encoding device can determine tool activation information that is a combination of flags indicating whether each neural network-based coding tool is activated.

[0200] The video encoding device encodes tool activation information and includes it in the bitstream (S1108). The video encoding device may include the tool activation information in the SPS or PPS within the bitstream. Alternatively, the video encoding device may include the tool activation information in the Adaptation Parameter Set (APS) or the Neural Adaptive Parameter Set (NAPS) within the bitstream.

[0201] The video encoding device checks tool activation information (S1110).

[0202] If the tool activation information indicates activation of a neural network-based coding tool (Yes in S1110), the image encoding device encodes the parameters and includes them in the bitstream (S1112).

[0203] The video encoding device can include parameters in the APS or NAPS within the bitstream.

[0204] As an example, a video encoding device derives indices (MAC, FLOPS) representing the total number of parameters, maximum memory usage, and maximum computational amount required to perform operations related to a neural network-based coding tool. The video encoding device can encode the indices representing the total number of parameters, maximum memory usage, and maximum computational amount and include them in a bitstream. As another example, the video encoding device can include in the bitstream, in relation to the total computational amount index based on the indices representing the total number of parameters and maximum computational amount, weights necessary for calculating the total computational amount index. Alternatively, preset values ​​may be used according to a prior agreement as weights related to the calculation of the total computational amount index. The total computational amount index may be calculated according to Equation 2.

[0205] For example, when the neural network-based coding tool is a neural network in-loop filter, the image encoding device can encode a set of parameters configuring the neural network in-loop filter, a structure of the neural network in-loop filter, information about a filter (kernel) used in the neural network in-loop filter, and an index indicating a structure of the neural network in-loop filter defined in advance. In addition, when applying a preset filter set as the neural network in-loop filter, the image encoding device can encode information specifying an input type of the neural network in-loop filter.

[0206] If the tool activation information does not indicate activation of the neural network-based coding tool (No of S1110), the image encoding device omits encoding of parameters.

[0207] FIG. 12 is a flowchart illustrating a method for controlling neural network-based video tools performed by a video decoding device according to one embodiment of the present disclosure.

[0208] A video decoding device decodes tool activation information indicating whether a neural network-based coding tool is activated from a bitstream (S1200). Here, the tool activation information indicates that a neural network-based coding tool was used in the encoding process of a current frame by the video decoding device. The video decoding device can decode the tool activation information from an SPS or PPS within the bitstream. Alternatively, the video decoding device can decode the tool activation information from an adaptation parameter set (APS) or a neural adaptive parameter set (NAPS) within the bitstream.

[0209] As an example, when multiple neural network-based coding tools are used, the image decoding device can decode tool activation information that is a combination of flags indicating whether each neural network-based coding tool is activated.

[0210] The video decoding device determines whether it has an appropriate amount of computation required to perform operations related to a neural network-based coding tool in terms of decoding (S1202).

[0211] As an example, a video decoding device decodes indicators (MAC, FLOPS) representing the total number of parameters, maximum memory usage, and maximum computational load from a bitstream. Based on these indicators representing the total number of parameters, maximum memory usage, and maximum computational load, the video decoding device can determine whether the device has an appropriate computational load for performing operations related to a neural network-based coding tool in terms of decoding.

[0212] As another example, the video decoding device decodes the weights required for calculating the overall computational complexity index from the bitstream. Alternatively, preset values ​​may be used as weights related to calculating the overall computational complexity index according to a prior agreement. The overall computational complexity index may be calculated according to Equation 2. Based on the overall computational complexity index, the video decoding device can determine whether it has a computational complexity suitable for performing operations related to a neural network-based coding tool in terms of decoding.

[0213] As another example, a video decoding device can determine whether the current frame has the computational capacity suitable for performing operations related to a neural network-based coding tool in terms of decoding, based on the TemporalID of the current frame. For example, if the current frame cannot be used as a reference frame, the video decoding device can apply the neural network-based coding tool to the current frame.

[0214] As another example, a video decoding device can determine whether the video decoding device has a computational capacity suitable for performing operations related to a neural network-based coding tool in terms of decoding, based on the GOP containing the current frame. For example, if the available transmission bandwidth at a specific time is limited, the video decoding device can determine, on a GOP basis, whether the video decoding device has a computational capacity suitable for performing operations related to a neural network-based coding tool in terms of decoding.

[0215] The video decoding device sets a tool flag indicating whether to use a neural network-based coding tool based on tool activation information and whether it has an appropriate amount of computation (S1204).

[0216] For example, if the tool activation information indicates that the neural network-based coding tool is activated and has an appropriate amount of computational power for decoding, the image decoding device may set the tool flag to true. Conversely, if the tool activation information indicates that the neural network-based coding tool is not activated or does not have an appropriate amount of computational power for decoding, the image decoding device may set the tool flag to false.

[0217] The video decoding device checks the tool flag (S1206).

[0218] If the tool flag is true (Yes in S1206), the video decoding device performs the following steps.

[0219] The video decoding device decodes parameters related to a neural network-based coding tool from a bitstream (S1208). The video decoding device can decode parameters from an APS or NAPS in the bitstream.

[0220] For example, if the neural network-based coding tool is a neural network in-loop filter, the image decoding device can decode a set of parameters configuring the neural network in-loop filter, a structure of the neural network in-loop filter, information about a filter (kernel) used in the neural network in-loop filter, and an index indicating a structure of the neural network in-loop filter defined in advance. In addition, if a preset filter set is applied as the neural network in-loop filter, the image decoding device can decode information specifying an input type of the neural network in-loop filter.

[0221] The video decoding device applies a neural network-based coding tool to the current frame based on the decoded parameters (S1210).

[0222] If the tool flag is false (No of S1206), the image decoding device may omit decoding of parameters and application of the neural network-based coding tool.

[0223] Although the flowchart / timing diagram of this specification describes each process as being executed sequentially, this is merely an illustrative description of the technical idea of ​​one embodiment of the present disclosure. In other words, a person of ordinary skill in the art to which one embodiment of the present disclosure belongs may modify and apply various modifications and variations by changing the order described in the flowchart / timing diagram without departing from the essential characteristics of one embodiment of the present disclosure, or by executing one or more of the processes in parallel. Therefore, the flowchart / timing diagram is not limited to a chronological order.

[0224] It should be understood that the exemplary embodiments described above can be implemented in many different ways. The functions or methods described in one or more examples can be implemented in hardware, software, firmware, or any combination thereof. It should be understood that the functional components described herein are labeled as "units" to further emphasize their implementation independence.

[0225] Meanwhile, the various functions or methods described in this embodiment may also be implemented as instructions stored on a non-transitory storage medium that can be read and executed by one or more processors. Non-transitory storage media include, for example, all types of storage devices that store data in a form readable by a computer system. For example, non-transitory storage media include storage media such as erasable programmable read-only memory (EPROM), flash drives, optical drives, magnetic hard drives, and solid-state drives (SSDs).

[0226] The above description is merely an example of the technical idea of ​​the present embodiment, and those skilled in the art to which the present embodiment pertains may make various modifications and variations without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of ​​the present embodiment, but to explain it, and the scope of the technical idea of ​​the present embodiment is not limited by these embodiments. The protection scope of the present embodiment should be interpreted by the following claims, and all technical ideas within a scope equivalent thereto should be interpreted as being included in the scope of rights of the present embodiment.

[0227] (Explanation of symbols)

[0228] 155: Entropy encoding unit

[0229] 510: Entropy decryption unit

[0230]

[0231] CROSS-REFERENCE TO RELATED APPLICATION

[0232] This patent application claims priority to Korean patent application No. 10-2023-0112217, filed in Korea on August 25, 2023, and Korean patent application No. 10-2024-0101021, filed in Korea on July 30, 2024, the entire contents of which are incorporated herein by reference.

Claims

1. A method for restoring a current frame performed by a video decoding device, A step of decoding tool activation information indicating whether a neural network-based coding tool is activated from a bitstream, wherein the tool activation information indicates that the neural network-based coding tool has been used in the encoding process of the current frame by the video encoding device; A step for determining whether the neural network-based coding tool has an appropriate amount of computation required to perform operations related to the decryption aspect; A step of setting a tool flag indicating whether to use the neural network-based coding tool based on the tool activation information and whether the tool has the appropriate amount of computation; and Steps to check the above tool flags Including, If the above tool flag is true, A step of decoding parameters related to the neural network-based coding tool from an adaptation parameter set in the bitstream; and A step of applying the neural network-based coding tool to the current frame based on the decrypted parameters. A method, characterized in that it further comprises:

2. In paragraph 1, The steps to set the above tool flags are: A method characterized in that the tool flag is set to true when the tool activation information indicates that the neural network-based coding tool is activated and has the appropriate amount of computation in terms of decryption.

3. In paragraph 1, The steps to set the above tool flags are: A method characterized in that the tool flag is set to false when the tool activation information indicates that the neural network-based coding tool is not activated or does not have the appropriate amount of computation in terms of decoding.

4. In paragraph 1, The step of decrypting the above tool activation information is: When multiple neural network-based coding tools are used, tool activation information is decoded by combining flags indicating whether each of the neural network-based coding tools is activated. The step of determining whether the above suitable amount of computation is possessed is as follows: In terms of decryption, it is determined whether the amount of computational power is appropriate for performing the operations related to each neural network-based coding tool. The steps to set the above tool flags are: A method characterized by setting flags indicating whether the neural network-based coding tools are activated and tool flags indicating whether each neural network-based coding tool is used based on whether the tool has the appropriate amount of computation.

5. In paragraph 1, The step of determining whether the above suitable amount of computation is possessed is as follows: A step of decoding indicators representing the number of total parameters, maximum memory usage and maximum computational amount from the above bitstream; and A step of determining whether the number of total parameters, the maximum memory usage, and the maximum computational amount are adequate for performing computations related to the neural network-based coding tool in terms of decoding, based on indicators representing the number of total parameters, the maximum memory usage, and the maximum computational amount. A method, characterized in that it comprises:

6. In paragraph 1, The step of determining whether the above suitable amount of computation is possessed is as follows: A step of decoding indices representing the number of total parameters and the maximum amount of operations from the above bitstream; Step of obtaining weights; A step of calculating an overall computational amount index by weighting the number of overall parameters and the indices expressing the maximum computational amount based on the above weights; and Based on the above total computational amount indicator, a step for determining whether the decryption aspect has an appropriate computational amount for performing operations related to the neural network-based coding tool. A method, characterized by including:

7. In paragraph 1, The step of determining whether the above suitable amount of computation is possessed is as follows: A method characterized in that it determines whether the amount of computation suitable for performing an operation related to the neural network-based coding tool in terms of decoding is available based on TemporalID related to the level of pictures referenced by the current frame.

8. In paragraph 1, The step of decrypting the above tool activation information is: A method characterized by decoding the tool activation information from a sequence parameter set or a picture adaptive parameter set in the bitstream.

9. In paragraph 1, The step of decrypting the above parameters is: A method characterized by decoding the parameters from a neural adaptive parameter set in the bitstream.

10. In paragraph 1, The step of decrypting the above parameters is: A method characterized in that, when the neural network-based coding tool is a neural network in-loop filter, the method decode a parameter set configuring the neural network in-loop filter, information about a structure of the neural network in-loop filter, information about a kernel used in the neural network in-loop filter, and an index indicating a structure of the neural network in-loop filter defined in advance.

11. In paragraph 10, The step of decrypting the above parameters is: A method characterized in that when applying a preset filter set as the neural network in-loop filter, information specifying an input type of the neural network in-loop filter is decoded.

12. A method for encoding a current frame performed by a video encoding device, A step of restoring the current frame using the decryption path; Step of obtaining parameters related to a neural network-based coding tool; A step of applying the neural network-based coding tool to the restored current frame based on the above parameters to generate an improved current frame; A step of determining tool activation information indicating whether to activate the neural network-based coding tool based on the restored current frame and the improved current frame; A step of encoding the above tool activation information and including it in a bitstream; and Steps to check the above tool activation information Including, A method characterized in that, if the tool activation information indicates activation of the neural network-based coding tool, the method further comprises a step of encoding the parameters and including them in an adaptation parameter set within the bitstream.

13. In paragraph 12, The step of determining the above tool activation information is: A method characterized in that when multiple neural network-based coding tools are used, tool activation information is determined by combining flags indicating whether each of the neural network-based coding tools is activated.

14. In paragraph 12, If the above tool activation information indicates activation of the neural network-based coding tool, A step of deriving indicators representing the total number of parameters, maximum memory usage, and maximum computational amount required to perform operations related to the neural network-based coding tool; and A step of encoding indicators representing the number of the above total parameters, the maximum memory usage, and the maximum computation amount and including them in the bitstream. A method, characterized in that it further comprises:

15. In paragraph 12, If the above tool activation information indicates activation of the neural network-based coding tool, A step of deriving indicators representing the total number of parameters and the maximum amount of calculations required to perform operations related to the above neural network-based coding tool; A step of determining weights necessary for calculating the total computational amount index based on the number of the total parameters and the indices expressing the maximum computational amount; and A step of encoding the number of the above total parameters, indices expressing the maximum amount of operations, and weights and including them in the bitstream. A method, characterized in that it further comprises:

16. In paragraph 12, The step of encoding the above tool activation information is: A method characterized by including the tool activation information in a sequence parameter set or a picture adaptive parameter set in the bitstream.

17. In paragraph 12, The step of encoding the above parameters is: A method characterized by including the parameters in a neural adaptive parameter set within the bitstream.

18. A method for providing video data to a video decoding device, A step of encoding the above video data into a bitstream; and A step of transmitting the above bitstream to the image decoding device Including, The step of encoding the above video data is: A step of restoring the current frame using the decryption path; Step of obtaining parameters related to a neural network-based coding tool; A step of applying the neural network-based coding tool to the restored current frame based on the above parameters to generate an improved current frame; A step of determining tool activation information indicating whether to activate the neural network-based coding tool based on the restored current frame and the improved current frame; A step of encoding the above tool activation information and including it in a bitstream; and Steps to check the above tool activation information Including, A method characterized in that, if the tool activation information indicates activation of the neural network-based coding tool, the method further comprises a step of encoding the parameters and including them in an adaptation parameter set within the bitstream.

Citation Information

Patent Citations

  • Learning device, video image processing device, transmission and reception device, and transmission and reception system

    JP2023081099A

  • Signal processing method and radar system for detecting people

    KR1020230130365A

  • Electronic towel

    KR1020240177887A

  • Encoder, decoder, encoding method, and decoding method

    US20220046284A1

  • KR20230109587A