Video decoding / encoding method for device deployed with neural network and video coding device incorporating the same

By determining and applying a dilation rate to convolutional layers, the method addresses the challenge of fixed receptive field sizes in neural networks, enhancing adaptability and efficiency in video coding.

WO2026055922A1PCT designated stage Publication Date: 2026-03-19SHENZHEN TCL NEW-TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2026-03-19

AI Technical Summary

Technical Problem

Existing video coding techniques using neural networks face challenges in adaptively adjusting the receptive field size due to fixed structures, leading to inefficiencies in handling various input samples.

Method used

Implementing a method that determines and applies a dilation rate to the convolutional layers of neural networks in video encoding and decoding processes, allowing for flexible adjustment of the receptive field.

Benefits of technology

Enhances the adaptability of video processing to various input samples by optimizing the receptive field size, improving efficiency and flexibility in video coding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024118847_19032026_PF_FP_ABST
    Figure CN2024118847_19032026_PF_FP_ABST
Patent Text Reader

Abstract

A video decoding method and a video encoding method are provided. The video decoding method may be executed by a decoding device deployed with a neural network. The method includes: determining a dilation rate;and applying the dilation rate to a convolutional layer of the neural network.
Need to check novelty before this filing date? Find Prior Art

Description

VIDEO DECODING / ENCODING METHOD FOR DEVICE DEPLOYED WITH NEURAL NETWORK AND VIDEO CODING DEVICE INCORPORATING THE SAMETECHNICAL FIELD

[0001] The present disclosure generally relates to encoding and decoding technology, and in particular to a video decoding method, a video encoding method, a video coding device and a non-transitory computer readable medium.BACKGROUND

[0002] The success of neural networks has extended to the field of video coding and has shown promising capabilities of visual representation. For example, in the development of the standardization of neural network-based video coding, neural networks have been employed for multiple machine vision tasks, e.g., pixel prediction, reference frame generation, coding artifact removal, super-resolution. These neural networks establish pre-specified computational graphs based on the video profile or neural network configurations, and then load weights stored in the video codec offline to achieve their respective functions.

[0003] One basic concept of neural networks is the receptive field of a unit in a certain layer in the neural network (referred to as neural unit) . Unlike fully connected networks, where the output of each unit depends on all inputs of the current layer, units in convolutional networks only rely on a portion (e.g., a region) of the input. Since anywhere outside the receptive field does not affect the output, the receptive field needs to be carefully controlled to ensure that it covers the relevant area in the image. However, in the existing standardized framework, the increase in receptive field is achieved by stacking more layers or subsampling, which inevitably increases the operation load. Furthermore, since the receptive field provided by layer stacking or subsampling is fixed, a neural network with a determined structure can only provide a fixed size of receptive field, making it difficult to adapt to various input samples. Thus, there is a need for a flexible scheme to adjust the receptive field size in neural units in video coding process.SUMMARY

[0004] Accordingly, the present disclosure aims to provide a video decoding method, a video encoding method, a video coding device and a non-transitory computer readable medium.

[0005] A technical scheme adopted by the present disclosure is to provide a video decoding method. The method may be executed by a decoding device deployed with a neural network. The method includes: determining a dilation rate; and applying the dilation rate to a convolutional layer of the neural network.

[0006] Another technical scheme adopted by the present disclosure is to provide a video encoding method. The method may be executed by an encoding device deployed with a neural network. The method includes: determining a dilation rate; applying the dilation rate to a convolutional layer of the neural network; and transmitting the dilation rate to a decoder in a bitstream.

[0007] Another technical scheme adopted by the present disclosure is to provide a video coding device. The video coding device may be a video encoder or decoder. The device includes a processor and a memory. The memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform any of the foregoing methods.

[0008] Another technical scheme adopted by the present disclosure is to provide a non-transitory computer readable medium storing executable instructions that, when executed by a processor, cause the processor to perform any of the foregoing methods.BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In order to clearly explain the technical solutions in the embodiments of the present disclosure, the drawings used in the description of the embodiments will be briefly described below. Obviously, the drawings in the following description are merely some embodiments of the present disclosure. For those of ordinary skill in the art, other drawings may also be obtained based on these drawings without any creative work.

[0010] FIG. 1 shows a schematic diagram of a conventional video encoding system.

[0011] FIG. 2 shows a schematic diagram of a conventional video decoding system.

[0012] FIG. 3 shows a schematic diagram of a video encoding system implemented with a neural network according to an embodiment of the present disclosure.

[0013] FIG. 4 shows a schematic diagram of a video encoding system implemented with a neural network according to another embodiment of the present disclosure.

[0014] FIG. 5 shows a schematic diagram of a video encoding system implemented with a neural network according to yet another embodiment of the present disclosure.

[0015] FIG. 6 shows a schematic diagram of a video decoding system implemented with a neural network according to an embodiment of the present disclosure.

[0016] FIG. 7 shows a schematic diagram of a video decoding system implemented with a neural network according to another embodiment of the present disclosure.

[0017] FIG. 8 shows a schematic diagram of a video decoding system implemented with a neural network according to yet another embodiment of the present disclosure.

[0018] FIG. 9 illustrates an exemplary normal convolution process.

[0019] FIG. 10 illustrates an exemplary dilated convolution process.

[0020] FIG. 11 is a flowchart of a video coding method according to an embodiment of the present disclosure.

[0021] FIG. 12 illustrates an exemplary axis-specified dilated convolution process.

[0022] FIG. 13 illustrates another exemplary axis-specified dilated convolution process.

[0023] FIG. 14 is a flowchart of an encoding and decoding process with dilated convolution according to an embodiment of the present disclosure.

[0024] FIG. 15 illustrates a scenario where a dilation rate is included in the compressed video bitstream in a video encoding process.

[0025] FIG. 16 illustrates a scenario where a dilation rate is received in the compressed video bitstream and applied in a video decoding process.

[0026] FIG. 17 is a schematic diagram of a video coding device according to an embodiment of the present disclosure.DETAILED DESCRIPTION

[0027] The disclosure will now be described in detail with reference to the accompanying drawings and examples. Apparently, the described embodiments are only a part of the embodiments of the present disclosure, not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0028] To help understand the technical solutions proposed in the embodiments of this application, a brief introduction of video encoding and decoding system will be provided below.

[0029] As shown in FIG. 1, a video encoding system 110 may include multiple modules, such as block partitioning unit 1101, transform and quantization unit 1102, intra-frame estimation unit 1103, intra-frame prediction unit 1104, motion compensation unit 1105, motion estimation unit 1106, an inverse transformation and inverse quantization unit 1107, a filter control analysis unit 1108, a filtering unit 1109, an encoding unit 1110, an encoded image buffer unit 1111 and a subtractor 1112.

[0030] Original video signals include video frames. Each video frame is divided into blocks by a block partitioning unit 1101. For each of the video frames, the subtractor 1112 generates residual pixel information about a residual frame by subtracting the input video frame from the output of the intra-frame prediction unit 1104 or the motion compensation unit 1105. The residual pixel information obtained after intra-frame prediction or inter-frame prediction (motion compensation) , is transformed by the transformation and quantization unit 1102. The transformation includes transforming the residual pixel information from the pixel domain to a transform domain, and the resulting transform coefficients are quantized to further reduce the bit rate. The intra-frame estimation unit 1103 performs intra-frame estimation, and the intra-frame prediction unit 1104 performs intra-frame prediction on the video reconstructed blocks. Motion estimation performed by the motion estimation unit 1106 is a process of generating a motion vector that can estimate the displacement of the reconstructed video block, and then motion compensation is performed by the motion compensation unit 1105 based on the determined motion vector. After determining an intra-frame prediction mode, the intra-frame prediction unit 1104 provides selected intra-frame predicted data to the encoding unit 1110, and the motion estimation unit 1106 also sends calculated motion vector data to the encoding unit 1110. The inverse transform and inverse quantization unit 1107 reconstructs the video reconstructed blocks and reconstructs a residual block in the pixel domain, and the filtering unit 1109 is controlled by the filter analysis unit 1108 to remove the blocking artifacts in the reconstructed residual block, and the encoding unit 1110 adds the reconstructed residual block to the prediction block of the encoded image buffer unit 1111 to generate a reconstructed block. The encoding unit 1110 is used for encoding various encoding parameters and  quantized transform coefficients (quantized transform coefficients) into bitstream, and outputs the bitstream of the video signals. The encoded image buffer unit 1111 is used for storing reconstructed blocks as the reference blocks for intra-frame prediction. As the video image encoding progresses, new reconstructed blocks are continuously generated, and these blocks are stored in the encoded image buffer unit 1111.

[0031] As shown in FIG. 2, a video decoding system 120 may include multiple modules such as a decoding unit 1201, an inverse transform and inverse quantization unit 1202, an intra-frame prediction unit 1203, a motion compensation unit 1204, a filtering unit 1205, a decoded image buffer unit 1206 and a post filtering unit 1207.

[0032] The input signals of video frames are encoded by the video encoding system 110 to obtain an output bitstream. The video encoding system 110 transmits the bitstream to the video decoding system 120. The video decoding system 120 receives the bitstream representing the video frames in an encoded format (i.e., in a compressed format) . In the video decoding system 120, the bitstream is processed by the decoding unit 1201 to obtain decoded transform coefficients. The inverse transform and inverse quantization unit 1202 process the transform coefficients to generate a residual block in the pixel domain. The intra-frame prediction unit 1203 is operable to generate an intra-frame prediction block for a current video decoding block based on a determined intra-frame prediction mode and data from previously decoded blocks of the current video frame or picture. The motion compensation unit 1204 determines the inter-frame prediction information for the current video decoding block and generates an inter-frame prediction block by parsing the motion vector and other associated syntax elements. Finally, the decoded video block is formed by summing the residual block from the inverse transform and inverse quantization unit 1202 and the corresponding prediction block generated by the intra-frame prediction unit 1203 or the motion compensation unit 1204. In order to improve video quality, the decoded video blocks are filtered through the filtering unit 1205 to remove blocking artifacts. The decoded video block is then stored in the decoded image buffer unit 1206 as the reference block for subsequent intra-prediction or motion compensation, and for video output, i.e., to reproduce and reconstruct the original video signals. The output video can be optionally further processed by a post filtering unit 1207 for more suitable or enhanced viewing experiences.

[0033] Neural networks have been applied in the video compression system to improve the compression efficiency. Recent works mainly focus on developing neural network for intra prediction, inter prediction, and loop filtering, which are integrated along with the intra-frame estimation unit 1103, intra-frame prediction unit 1104, motion estimation unit 1106, motion compensation 1105, and loop filters unit 1109 at the video encoder side, as well as intra prediction unit 1203, motion compensation unit 1204, and loop filters unit 1205 at the video decoder side.

[0034] For instance, neural network loop filter has been developed based on neural networks with / without original loop filters unit. A neural network unit 1313 may be employed to replace the loop filters unit 1109 as indicated in FIG. 3. Alternatively, a neural network unit 1413 may be sequentially connected with the loop filters unit 1109, e.g., after the loop filters unit 1109 as indicated in FIG. 4.  Alternatively, a neural network unit 1513 may be combined with the loop filters unit 1109, e.g., by a selective usage with loop filters unit 1109 as indicated in FIG. 5.

[0035] Similarly, at the video decoder side, a neural network unit 1608 may be employed to replace the loop filters unit 1205 as indicated in FIG. 6. Alternatively, a neural network unit 1708 may be sequential connected with the loop filters unit 1205, e.g., after the loop filters unit 1205 as indicated in FIG. 7. Alternatively, a neural network unit 1808 may be combined with the loop filters unit 1205, e.g., selective usage with the loop filters unit 1205 as indicated in FIG. 8.

[0036] For detailed implementation of neural networks in the video encoding / decoding system, please refer to [JVET-T0088 AHG11: Convolutional neural networks-based in-loop filter] , and [JVET-T0079 AHG11: Neural Network-based In-Loop Filter] , and [JVET-X0054 AHG11: Neural Network based In-loop Filter with Adaptive Model Selection] . Neural network-based intra prediction and inter prediction can be implemented similarly.

[0037] The following sections provide introduction for several related technologies of the present disclosure, including: 1) neural network; 2) receptive field; and 3) existing structures of neural network for video coding.

[0038] Neural Network

[0039] A neural network (e.g., convolutional neural network, fully connected neural network, Vision Transformer neural network) is a computation graph consisting of one or multiple layers of computation. It is typically constructed in a hierarchical manner, where each neuron (also called neural node) within the neural layer extracts learned visual features or patterns of increasing complexity from the input image. For instance, convolutional neural network consists of one or more convolutional layers, where each layer applies a set of learned convolutional filters to detect various spatial features or patterns from the input data. Here, each convolutional filter represents one neuron, and it is convolved with the input image to produce a feature map that represents the presence of a specific feature or pattern. This operation is referred to as a visual feature extraction.

[0040] Specifically, a neural network can be regarded as a stack of sequential neural projection operations with a total layer number of L, which can be formulated as:

[0041] The neural projection operations can be typically formulated as:

[0042] where Wl denotes parameter weight of the neural projection operator, bl denotes a neural projection bias, hl (·) denotes a non-linear activation, and αl denotes a control factor of hl (·) .

[0043] Given an input image xin , a prediction ypred of the neural network a process commonly called inference, is:

[0044] In the above equation, θNN denotes the weights of and it can be obtained by training  on a given task or tasks (including upstream tasks or pretext tasks) and datasets D (including especially large-scale datasets or multi-modal datasets) . For example, for current neural network-based loop filtering, the target is to output the high-quality filtered sample of the low-quality reconstructed version close to the original sample. The optimal is supposed to make the difference between the high-quality restored sample and the original input sample as minimum as possible. For instance, given training database (e.g., DIV2K in [NTIRE 2017 Challenge on Single Image Super-resolution: Dataset and Study. IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW) , pp. 126-135, 2017] , BVI-DVC in [BVI-DVC: A Training Database for Deep Video Compression. IEEE Transactions on Multimedia, 24: 3847-3858, 2021] , TVD in [Tencent Video Dataset (TVD) : A Video Dataset for Learning-based Visual Data Compression and Analysis [J] . arXiv preprint arXiv: 2105.05961, 2021] ) with paired original sample xorg (i.e., the output result of sample partition unit 1101) and its corresponding low-quality reconstructed sample xin,  is expressed as:

[0045] where denotes the error metric (e.g., absolute error, mean square error) . The filtered result will be

[0046] Beyond mere inference, neural networks can also serve as accessory modules and auxiliary modules. Specifically, the accessory module refers to a supplemental module or set of modules that are not part of the main workflow of inference, but assist in the overall functioning and performance of the method (e.g., word embedding layers in image caption, which convert words into vectors) , while the auxiliary module refers to an additional module or set of modules that perform secondary tasks to support the primary objective of the method (e.g., teacher neural network in knowledge distillation, which are used to provide additional labels during training but not used for inference) . Typically, these modules still rely on the visual feature extraction conducted by neural node. Therefore, they are included in the scope of this disclosure.

[0047] Topology: Topology of a neural network refers to the neurons in a neural network and the connections between these neurons. Information about topology may indicate the structure of neural networks and how the network processes and transmits information.

[0048] The structure of neural networks includes at least one layer, with each layer containing one or more neurons responsible for extracting features from the input data. The neural network may typically include the following types of layers:

[0049] ● projection layers, including but not limited to convolutional layer, fully connected layer, embedding layer.

[0050] ● normalization layers, including but not limited to batch normalization, instance normalization, adaptive instance normalization, group normalization, weight normalization, switchable normalization.

[0051] ● activation layers, including but not limited to Parametric Rectified Linear Unit (PReLU) .

[0052] Weights: Weight of a neuron refers to a numerical value associated with the neuron. The weight may be used to scale the signal passing through the associated neuron. The weights of a neural network refer to a set of weights that are associated with all the neurons contained in the neural network. Weights are usually learnable parameters. For example, given a set of data samples, the values of weights can be learned.

[0053] The process of training a neural network involves modifying the weights to reduce the error between the predicted output and the ground-truth output. This is typically done by using a learning algorithm (e.g., backpropagation) combined with an optimization technique (e.g., gradient descent) and a loss function specific to a learning task. For example, during backpropagation, the error is calculated at the output and propagated back through the network to update the weights in a way that minimally reduces the overall error.

[0054] Feature: Feature of a neural network, also called as feature map, deep feature, refers to the output element of neurons (especially, neuron of hidden layer) . A feature represents one or more attributes of the input sample. Compared to conventional features, the feature of neural networks is often characterized by being learned, and these learned features are often determined by the given task (s) and dataset (s) .

[0055] Normal convolution. Normal convolution calculates the weighted sum of pixels / elements within a local area of template. Given a convolutional kernel with a spatial size of CH×CW and an input xl, the convolved output xl+1 at pixel coordinates <i, j> is derived based on all coefficients within the convolutional kernel and all pixels / elements of a corresponding region within input xl, where the size of region is also CH×CW and the pixels / elements in the corresponding region within input correspond one-to-one to the coefficients within convolution kernel in terms of spatial coordinates relatively. For example, the convolved output xl+1 at pixel coordinates <i, j> is calculated as:

[0056] where denotes the element of xl+1 at <i, j>, and denotes the coefficient of convolutional kernel Wl at <i, j>.

[0057] Eq. (5) indicates that all pixels / elements at with i′=0,…, CH-1 , j′=0, …, CW-1 are involved. Obviously, these involved pixels / elements are always adjacent to each other. The presented convolution kernel is an example of a two-dimensional (2D) convolution, however, the above description can be obviously extended to other dimensions, including especially one-dimensional (1D) , three-dimensional (3D) or four-dimensional (4D) convolutions. FIG. 9 illustrates an exemplary normal convolution process.

[0058] Receptive Field

[0059] Receptive field is defined as the region of input sample, to which the elements on the feature  map of a specific layer in the convolutional neural network are mapped (i.e. be affected by) . The receptive field size of a neural unit can be increased in a number of ways, including layer stacking, sub-sampling, and convolutional dilation.

[0060] Layer stacking. Multiple convolutional layers are stacked sequentially, and each inherits and integrates the receptive field of the previous layer, thereby gradually expanding the receptive field. Ideally, as the size of the convolution kernel or the number of stacked layers increases, the receptive field size increases linearly.

[0061] For details, please refer to [Network in Network. International Conference on Learning Representations (ICLR) , 2014] .

[0062] Sub-sampling: The size of feature gets reduced by either selective down-sampling of the input feature map with a given sub-sampling ratio or by means of pooling operation (e.g., maximum pooling, average pooling) , thereby multiplicatively increasing the receptive field.

[0063] For details, please refer to [Understanding the Effective Receptive Field in Deep Convolutional Neural Networks. Advances in Neural Information Processing Systems (NeurIPS) , 2016] .

[0064] Dilated convolution. Dilated Convolution virtually enlarges the kernel spatial size by increasing distances between the kernel elements to calculate the weighted sum of a larger range. An additional parameter (dilation rate) indicates how much the kernel is widened by controlling the spacing between the kernel elements. This is usually performed by inserting spaces between kernel elements. For example, a dilation rate of 1 means that the elements of the convolution kernel are continuous, while a dilation rate of 2 means that there is a gap of one pixel between the elements of the convolution kernel, and so on. Given a convolutional kernel with a size of CH×CW, an input xl and dilation rate r, the convolved output at pixel coordinates <i, j> is calculated as:

[0065] Eq. (6) indicates that all pixels / elements at with i′=0, …, CH-1, j′=0, … , CW-1 are involved. Obviously, these involved pixels / elements can be adjacent (e.g., r=1) or not adjacent. The above description is an example of a two-dimensional (2D)

[0066] dilated convolution, however, the above description can be obviously extended to other dimensions, including especially one-dimensional (1D) , three-dimensional (3D) or four-dimensional (4D) dilated convolutions. FIG. 10 illustrates an exemplary dilated convolution process.

[0067] It is important to note that, in practical implementation, dilation of convolution operation is usually achieved by reorganizing the use of kernel elements (i.e., re-specifying the input pixels / elements involved in the convolution operation) , rather than increasing the number of kernel parameters by adding zeros. In other words, given a dilation rate, the input values are sampled every rate pixel / element in a specific axis to involve into the convolution operation. Therefore, there would not be any additional operation load.

[0068] Dilated convolution can be also interpreted as an operation of sub-sampling with a given  ratio r followed by a subsequent convolution. However, by merging the two operations, dilated convolution results in a much more efficient operation that reduces both computational complexity and execution time by minimizing size of required memory storage and the number of memory access operations (read / write operations) .

[0069] For details, please refer to [Multi-Scale Context Aggregation by Dilated Convolutions. International Conference on Learning Representations (ICLR) , 2016] .

[0070] Fractional Dilated convolution: A typical variant of dilated convolution is fractional dilated convolution, which uses a fractional value to represent the dilation rate.

[0071] In one possible implementation, given two pre-specified axes (e.g., height and width of convolutional kernel) , the output result is the combination (e.g., addition) of two dilated convolutional output, one applying the rounded-up value as dilation rate for one dimension and the other one applying the rounded-down value as dilation rate for the other dimension.

[0072] In another possible implementation, given a fractional coordinate calculated using a fractional dilation rate, the output result is the bilinear interpolation performed along the nearest four grid points of the coordinate.

[0073] For details, please refer to [Adaptive fractional dilated convolution network for image aesthetics assessment. IEEE Conference on Computer Vision and Pattern Recognition (CVPR) , 2020] and [Crowd counting via perspective-guided fractional-dilation convolution. IEEE Transactions on Multimedia, 2022] .

[0074] Structures of Neural Network for Video Coding

[0075] Structures of neural networks with higher efficiency in visual feature extraction are still being developed. Currently, layer stacking and subsampling techniques have already been used, as present in e.g. [JVET-AD0379 AHG11: Unified NNLF solution for high operating points] , [JVET-AI0134 AhG11: LOP3 filter with multi-scale blocks] . So far, dilated convolution has not been applied yet.

[0076] In existing video coding techniques, receptive field expansion is usually achieved through layer stacking or subsampling. Unfortunately, these solutions often require modifying the model structure. For the former, since the receptive field size increases linearly with the convolution kernel size, the expansion of the receptive field requires (1) increasing the convolution kernel size, or (2) increasing the number of stacked layers, which inevitably deepens the model or / and introduces additional operations and parameters. For the latter, in addition to subsampling operations (also often accompanied by the resampling operations) , the reduction in feature resolution inevitably loses some information.

[0077] Furthermore, the area of receptive field either scales linearly or multiplicatively. In order for the receptive field of a neural network to effectively cover the input samples, the neural network structure or topology needs to be carefully designed. When the structure or topology is modified, the receptive field may be reduced or even become invalid. However, it is unrealistic to expect users to adopt a standard neural network architecture or specific functions in every application scenario.

[0078] Moreover, a given neural network equipped with layer stacking or sub-sampling can only provide a fixed receptive field and might have difficulty adapting to any potential input sample.

[0079] The method proposed in the present disclosure aims to solve one or more of the foregoing issues. In the context of neural network-based video coding, this method introduces a specification of dilation. By specifying the dilation rate, the decoder reorganizes the convolution operation of a given neuron into a dilated convolution, to provide the required size of receptive field. Hence, with a neural network, content adaptation can be achieved by specifying specific dilation rates to different video inputs.

[0080] FIG. 11 is a flowchart of a video decoding method according to an embodiment of the present disclosure. The method may be executed by a video decoding device deployed with a neural network, e.g., the video decoding system 160, 170 or 180 as shown in FIGS. 6 to 8. As shown in FIG. 11, the method includes operations described in blocks S201 to S202.

[0081] In S201, a dilation rate is determined.

[0082] The dilation rate refers to the spacing between the kernel elements, indicating the sampled distance of input pixels / elements to be involved in convolution operation. The dilation rate may be utilized to acquire the receptive field of convolution operations. The dilation rate may be represented by an integer, a set of integer values, a fractional value, a set of fractional values, or a mixed set of integer and fractional values. The dilation rate may be determined / acquired in various ways.

[0083] In one embodiment, the dilation rate may be determined based on a dilation information included in a bitstream generated and transmitted by a video encoder. In other words, the bitstream may include explicit information about the dilation rate.

[0084] The dilation information may include a dilation rate value. For example, when the video decoder receives a set of data units, it obtains the dilation rates by where  represents a data decoding operation, dr denotes the data units of dilation rates (e.g. indicates a specific network layer) , and Ir indicates the format of dilation rates. For example, when Ir=n, the dilation rate is represented by unsigned integer using n bits.

[0085] Alternatively, the dilation information may include a dilation rate identifier. For example, when a decoder receives an identifier i, it uses the identifier as a key to the lookup table LUT [·] to obtain the stored dilation rate (s) corresponding to that key. For example, r=LUT [i] indicates that there is a set of dilation rates available at both encoder and decoder side.

[0086] In another embodiment, the dilation rate of the target convolutional layer may be determined according to a previous dilation rate of a previous convolutional layer or a previous frame. That is, the video decoder may use a previously used dilation rate. For example, the dilation rate of the front layer (e.g., the (l-1) -th convolutional layer) can be used as the one of the current layers (e.g., the l -th convolutional layer) . In another example, the dilation rate of the previous frame can be used as the one for the current frame. Alternatively, the video encoder instead of the video decoder may determine the dilation rate of the target convolutional layer according to a previous dilation rate of a previous convolutional layer or a previous frame, and then transmit the determined dilation rate to the video decoder. Therefore the video decoder may use this dilation rate for one corresponding convolutional layer  of its neural network.

[0087] In another embodiment, the dilation rate may be selected from a plurality of candidate based on rate-distortion optimization. Specifically, when there is a set of stored dilation rates, the video decoder may use rate-distortion optimization scheme to deduce the dilation rate, e.g., through traversing all available candidates to calculate the rate-distortion loss and determining the candidate with the optimal rate distortion as the pre-specified result. Alternatively, the video encoder instead of the video decoder may determine the dilation rate of the target convolutional layer based on rate-distortion optimization, and then transmit the determined dilation rate to the video decoder. Therefore, the video decoder may use this dilation rate for one corresponding convolutional layer of its neural network.

[0088] In another embodiment, the dilation rate may be determined based on an input (e.g., an input of the neural network, an input of the current layer or the current neuron) . For example, the dilation rate may be determined based on at least one of resolution, or a pre-defined set of features of the input.

[0089] For example, the video decoder can derive a dilation rate based on the resolution of the input (e.g., the input sample of the neural network, the input feature map of the current layer or the current neural unit) , which satisfies that the receptive field covers a specific part of input (e.g., the entire spatial area of input) . For high resolution of input (e.g., video frames, current processing blocks, current feature maps) , a larger dilation rate may be employed. Alternatively, the video encoder instead of the video decoder may determine the dilation rate of the target convolutional layer based on the resolution of the input of its neural network or the convolutional layer to be dilated, and then transmit the determined dilation rate to the video decoder. Therefore, the video decoder may use this dilation rate for one corresponding convolutional layer of its neural network.

[0090] For example, the video decoder can derive a dilation rate based on a predefined feature of the input. A pre-defined set of features may be used as metric, including e.g. image features (e.g., color, edge, texture) , statistical features (e.g., mean, variance, higher statistical moments) , quality features (e.g., feature similarity index measure (FSIM) , structural similarity index measure (SSIM) , multiscale structural similarity index measure (MSSIM) , mean absolute error (MAE) , mean squared error (MSE) ) , frequency features (e.g., power bandwidth) . For example, given an input sample with a certain direction of texture, a larger dilation rate is often specified in the direction to capture more pixel information distributed along the direction. In another example, the video encoder / decoder can derive a dilation rate which makes its subsampling bandwidth to cover the power bandwidth of input, according to the power of one or more frequency components (e.g., Fourier transform, discrete cosine transform, wavelet transform, and their variants) of input. In another example, the dilation rate is determined by the highest quality or a certain quality threshold (e.g., FSIM, SSIM, MSSIM) , or the lowest error or a certain error threshold (e.g., MAE, MSE) , e.g. a lower quality or larger error indicating less smooth content, thus setting a larger dilation rate. In another example, the dilation rate is determined based on the statistical distribution (e.g., mean, variance, higher statistical moments) , e.g. a smaller variance indicates a smoother content, thus setting a larger dilation rate. Besides, the pre-defined set of features can further include deep features, where another specialized neural network is trained to determine the dilation rate.  Alternatively, the video encoder instead of the video decoder may determine the dilation rate of the target convolutional layer based on the characteristics of the input of its neural network, and then transmit the determined dilation rate to the video decoder. Therefore, the video decoder may use this dilation rate for one corresponding convolutional layer of its neural network.

[0091] In another embodiment, the dilation rate may be determined based on one or more characteristics of the convolutional layer. The video decoder can derive a dilation rate based on layer characteristics (e.g., the size of the convolution kernel, the position of layer within module or neural network, the type of convolutional layer) . For example, when there is no indication related to the dilation ratio of one or more neural units within the l-th convolutional layer, the video decoder may use l×kas dilation ratio, assuming that the dilated convolution increases its dilation rate by a stride of k from the shallower layers to the deeper layers. For example, a small value of dilation rates may be set in the front layer of the neural network to capture low-level features of the image (e.g., edges, textures within local areas) , while a large value of dilation rates may be set in the deep layer of the neural network to capture a wider range of contextual information. Alternatively, the video encoder instead of the video decoder may determine the dilation rate of the target convolutional layer based on the characteristics of the target convolutional layer, and then transmit the determined dilation rate to the video decoder. Therefore, the video decoder may use this dilation rate for one corresponding convolutional layer of its neural network.

[0092] In another embodiment, the dilation rate may be determined based on a pre-set configuration (e.g., codec profile, video configuration, neural network configuration) . The video bitstream may not include any data units or identifiers related to a dilation rate. For example, the indication is NULL, or the corresponding payload is empty. When a video decoder receives a NULL indication (or empty payload) , it may use a pre-specified dilation rate as the one (s) required. The pre-specified dilation rate can be one of:

[0093] ● a previous dilation rate (or, a previous identifier or index associated to a list or lookup table) , e.g., the most recently used one. For example, a video decoder may use the most recent dilation rate for the current convolutional layer.

[0094] ● a pre-set dilation rate (or, a pre-set identifier or index associated to a list or lookup table) , e.g., pre-set in codec profile or neural network configuration. For example, each convolutional layer is pre-set to be appended with additional dilation parameter with default value of 1.

[0095] ● an implicit dilation rate, e.g., represented by an index of a lookup table, where the corresponding value indicates the parameter weights of dilated convolution.

[0096] In S202, the dilation rate is applied to a convolutional layer of the neural network.

[0097] Once the dilation rate is determined, the video decoder may apply the dilation for a specific convolution operation of the convolutional layer. Specifically, for indicated neural units with normal convolution, the decoder appends additional dilation parameters and applies the dilated convolution. For indicated neural units with dilated convolution, the decoder updates the dilation rates (or dilation axes) and applies the new dilated convolution.

[0098] According to the present disclosure, a dilation rate may be acquired by the video decoder. The video decoder may accordingly adjust the receptive field in neural units in video decoding process. The implementation of the present disclosure may improve the adaptability of the video processing process for various input samples.

[0099] In some embodiments, the method described in FIG. 11 may further include: obtaining a neural unit information. The neural unit information is configured to indicate the neural unit, i.e., the convolutional layer, to which the dilation rate is applied.

[0100] Specifically, the neural unit information may be included in and received from a bitstream generated by the video encoder. The video bitstream contains explicit indications about the neural unit to which the dilation rate is applied. When a video decoder receives indications of a neural network, it invokes the indicated neural network accordingly. When the video decoder further receives indications of neural units within neural network (e.g., unique module / layer / channel / convolutional kernel / parameter id) , it applies the dilation rate on the indicated units accordingly.

[0101] Additionally, when a video decoder further receives indications of 1) type of neural units (e.g., normal 3-by-3 convolution, normal 1-by-1 convolution, depth-wise convolution, point-wise convolution, depth-wise separate convolution, transposed convolution, grouped convolution, deformable convolution, frequency domain convolution, dynamic convolution) , 2) characteristic of neural units (e.g., position within neural network, number of parameters, number of operations, number of channels, kernel size, spatial size of input / output feature map) , or 3) functionality of neural units (e.g., up-sampling, down-sampling, channel shuffling, deformable adaptation) , it determines one or more neural units within neural network based on the received indication, and then applies the dilation rate on the determined units. In one implementation, the decoder traverses and obtains a group of neural unit IDs of corresponding type / characteristic / function, and then applies the dilation rate based on the obtained IDs. In another implementation, the decoder traverses all neural units within neural network. When the neural unit meets the corresponding type / characteristic / function, the decoder applies the dilation rate to the neural unit.

[0102] It should be noted that, one dilation rate may be shared globally for one or more indicated / determined neural units, or used locally thus dilation rates can vary across these indicated / determined neural units.

[0103] Alternatively, the neural unit information may be pre-configured to the decoding device. For example, the video decoder can deduce the neural unit from, e.g., codec profile, video configuration, neural network configuration and so on.

[0104] In some embodiments, the method described in FIG. 11 may further include: obtaining a dilation axis information. The dilation axis information is configured to indicate one or more axes of the convolutional layer to be dilated.

[0105] Specifically, the dilation axis information may be included in and received from a bitstream. That is, the video bitstream contains explicit indications about the axis of convolution kernel to be dilated. For example, when the video decoder receives an index of axis  / a bitmap indicator  / a string or type indicator (e.g. equal to "height"  /  "width" ) , the dilation rate is applied on the axis corresponding to the  index  / corresponding to the index with value "1" in the bitmap  / corresponding to string (e.g. on the height / width axis) .

[0106] Alternatively, the dilation axis information may be pre-configured to the decoding device. The dilation axis can be derived from pre-settings (e.g., codec profile, video configuration, neural network configuration, a pre-defined identifier associated with a list or index with a look-up table) .

[0107] Alternatively, the dilation axis information may be determined based on an amount of dilation rates determined by the decoding device. For example, if only one dilation rate is specified for one convolutional kernel, the dilation rate would be applied on all axes of convolutional kernel. If two dilation rates are specified for a two-dimensional convolutional kernel, they would be applied on height axis and width axis, respectively. In another possible implementation, when the dilation rate for each axis is encoded sequentially into a bitstream and can be decoded sequentially, no additional axis information is required.

[0108] FIG. 12 illustrates an exemplary axis-specified dilated convolution process. The determined dilation rate can be applied in convolution operations for a specific axis as explained above. Given a convolutional kernel with a size of C1×…Cn×…×CN, an input xl and dilation rate r for n-th axis, the dilated convolution can be implemented as involving input pixels  / elements at instead of The convolved output at pixel coordinates <i1, …, in, …, iN> is calculated as:

[0109] The dilation rate may include multiple dilation rates for multiple axes of the convolutional layer respectively. In other words, a set of dilation rates can be specified, and each dilation rate may correspond to and be applied to one or more axes, as shown in FIG. 13. For example, when two dilation rates are provided, the first dilation rate r1 may correspond to a width direction, and the second dilation rate r2 may correspond to a height direction.

[0110] The above description is an example of a two-dimensional (2D) convolution; however, the above description can be obviously extended to other dimensions, including especially one-dimensional (1D) , three-dimensional (3D) or four-dimensional (4D) dilated convolutions.

[0111] FIG. 14 is a flowchart of an encoding and decoding process with dilated convolution according to an embodiment of the present disclosure. The encoding process may be executed by a video encoder deployed with a neural network, e.g., the video encoding system as shown in FIG. 3, 4, or 5. The decoding process may be executed by a video decoder deployed with a neural network, e.g., the video decoding system 160, 170 or 180 as shown in FIGS. 6 to 8. As shown in FIG. 14, the encoding process includes operations described in blocks S301 to S303.

[0112] In S301, a dilation rate is determined for the encoding process.

[0113] In S302, the dilation rate is applied to a convolutional layer of the neural network of the  encoder.

[0114] In S303, the dilation rate is transmitted to the decoder in a bitstream.

[0115] In the case that the dilation rate is specified and applied at the encoder side, information about the dilation rate is signaled from the encoder to the decoder for the decoder to derive a corresponding dilated convolution. This ensures the correct decoding of the bitstream at the video decoder side. FIG. 15 illustrates a scenario where a dilation rate is included in the compressed video bitstream in a video encoding process. FIG. 16 illustrates a scenario where a dilation rate is received in the compressed video bitstream and applied in a video decoding process.

[0116] The encoder may generate a dilation information for indicating the dilation rate and include the dilation information in the bitstream to be transmitted to the decoder. The dilation information may include a dilation rate value or a dilation rate identifier. For example, the dilation rate can be represented as an integer  / an array of integers, where the (each) integer indicates the sampling distance of input pixels / elements for one or more axes of one or more specified convolutional unit. For example, assuming there is a set of integers, or a set of integer arrays stored at both encoder and decoder side, the dilation rate can be represented as the identifier / index, indicating the usage of the corresponding stored integer  / set of integer arrays.

[0117] According to the present disclosure, a dilation rate may be determined by the video encoder. The video encoder may accordingly adjust the receptive field in neural units in video decoding process. Furthermore, the video encoder may transmit the dilation rate in a bitstream to a video decoder for the video decoder to perform dilated convolution accordingly. The implementation of the present disclosure may improve the adaptability of the video processing process for various input samples.

[0118] In one embodiment, the operation of determining the dilation rate may include: determining the dilation rate which has an optimal rate distortion among a plurality of candidate dilation rate.

[0119] In one embodiment, the operation of determining the dilation rate may include: determining the dilation rate of the convolutional layer according to a previous dilation rate of a previous convolutional layer or a previous frame.

[0120] In one embodiment, the operation of determining the dilation rate may include: determining the dilation rate based on at least one of resolution, or a pre-defined feature of an input of the neural network or the convolutional layer to be dilated.

[0121] In one embodiment, the operation of determining the dilation rate may include: determining the dilation rate based on characteristics of the convolutional layer. For example, the dilation rate may be determined based on a position of the convolutional layer within the neural network.

[0122] The encoding process described with regard to FIG. 14 may further include: transmitting a neural unit information. The neural unit information is configured to indicate a corresponding layer of the convolutional layer to be dilated. The neural unit information can be represented as one of the following: 1) neural network model identifier, 2) neural network functionality identifier. When the topology information about neural network is known to both video encoder and decoder side, the information can further be represented as identifier of neural units, e.g., module identifier, layer identifier,  channel identifier, convolutional kernel identifier, parameter identifier. For details about indications, please refer to [PCT / CN2024 / 098802] . In another implementation, the information can further be represented as type identifier, characteristic identifier, functionality identifier, indicating to apply the dilated rate on one or more neural units with the specified type / characteristic / functionality.

[0123] Additionally or alternatively, the encoding process described with regard to FIG. 14 may further include: transmitting a dilation axis information. The dilation axis information is configured to indicate one or more axes of a corresponding layer of the convolutional layer to be dilated. The dilation axis information can be represented by a binary indicator, where "True" indicates the usage of dilation on a specific axis. It can also be represented as a bitmap indicator, where a bit of "1" or "True" indicates the usage of dilation on the corresponding axis, e.g., "0011" may indicate the usage of dilation on the third and fourth axis of the convolution kernel. It can also be represented as a string or type indicator, e.g., "height" may indicate the usage of dilation on the height axis of convolutional kernel.

[0124] The dilation rate transmitted from the encoder to the decoder may be introduced in different locations, including but not limited to: the header of a specified syntax structure, Supplemental Enhancement Information (SEI) , or a separate bitstream.

[0125] In one solution, information about dilated convolution may be introduced into a header of syntax structure, including Group-of-Pictures (GoP) header, picture header, slice header, video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptation parameter set (APS) . Table 1 shows an example of the specification text for coding tree unit.

[0126] Table 1

[0127] In Table 1, Nn_dilation_rate_payload_size_minus1 specifies the bytes of payloads containing dilation rates. Nn_dilation_rate specifies an array of dilation rates.

[0128] The payload may further include the following elements: Nn_dilation_axis, Nn_layer_ID, Nn_layer_type_ID. Nn_dilation_axis specifies the axes of convolution kernel to be dilated. Nn_layer_ID specifies the identifier for referencing the layer within the neural network model, to which a bitstream is related, e.g., to which Nn_dilation_rate is applied. It is up to the application how to use the ID.  Nn_layer_type_ID specifies the identifier for referencing type of layer within the neural network model, to which a bitstream is related, e.g., to which Nn_dilation_rate is applied.

[0129] In another implementation, information about dilation can be specified in nn_filter_update_data () when aps_params_type is equal to NN_UPDATE_APS, and the syntax of dilation specification  / update may be specified as shown in Table 2.

[0130] Table 2 APS parameters type codes and types of APS parameters

[0131] Note that the payload of nn_filter_update_data () may further include information corresponding to fields of coding tree unit.

[0132] In another solution, a SEI structure of message is proposed, which includes information about convolution dilation. In this case, the media bitstream includes one or more media units and a SEI message related to this process.

[0133] The SEI message includes at least two independently parsable structures: a) a first independently parsable structure comprising information to identify a standard neural unit or separately provided neural unit via a reference identifier; and b) a second independently parsable structure comprising required information to derive a dilation rate, and apply it to the neural unit identified by the above mentioned independently parsable structure to derive a dilated convolution operation.

[0134] The payload of the second independently parsable structure may further include information corresponding to fields of coding tree unit.

[0135] Typically, the proposed SEI structure is expected to be used in post-filtering of video coding system, or neural network-based image / video processing used in products or manufactures (e.g., device, chip) .

[0136] In yet another solution, information about convolution dilation may be introduced into a separate bitstream. For example, the signaling may be interpreted based on the related syntax and semantics as specified in ISO / IEC 15938-17 to generate a NNR bitstream.

[0137] In one possible implementation, the dilation rate and corresponding information indicating an application of dilated convolution can be introduced into nnr_model_parameter_set_header () as shown in Table 3.

[0138] Table 3 Coding tree unit syntax

[0139] nn_dilation_data () is a container or a structure containing information specifying dilation rates to be applied. The payload of nn_dilation_data () comprises at least one of the following elements.  dilation_rate_tensor specifies a tensor of dilation rates relative to a convolutional kernel. dilation_rate_present_flag specifies whether a tensor of dilation rates is provided. dilation_rate_present_flag shall be set to 1, if dilation_rate_tensor is contained in payload of nn_dilation_data () .

[0140] The specification text of layer parameter set (LPS) can be as shown in Table 4.

[0141] Table 4 NNR layer parameter set unit payload syntax

[0142] In Table 4, topology_update specifies a derivation process of an updated topology of neural network model, and it is invoked with topology_data and dilation_rate_tensor as input.

[0143] Note that the payload of nn_filter_update_data () may further include information corresponding to fields of coding tree unit.

[0144] As shown in FIG. 14, the decoding process includes operations described in blocks S304 to S305. In S304, a dilation rate is determined from the bitstream for the decoding process. In S305, the dilation rate is applied to a corresponding convolutional layer of the neural network of the decoder.

[0145] In this way, the dilation rate determined by the video encoder may be acquired by the video decoder. Accordingly, the video decoder may use the dilation rate to perform dilated convolution on the target convolutional layer which may be pre-configured or indicated by the video encoder. Since the decoding process has been explained in foregoing sections of the present disclosure, it will not be repeated herein for simplicity and clarity.

[0146] The methods provided in the present disclosure are expected to be applied to various convolutional neural networks and machine tasks (e.g., machine vision tasks, natural language processing tasks, reinforcement-based decision-making tasks, generative tasks) . Furthermore, the present disclosure is expected to be beneficial for both conventional video coding frameworks and end-to-end neural network-based video coding frameworks. Moreover, it can also be used in systems designed for human consumption as well as systems for machine consumption (e.g., Video Coding for Machines) . In addition, this method is not only applicable to neural network input formats but can also be used as an image / video processing or analysis method and is further widely used in common media data processing systems.

[0147] Benefits of different embodiments of the present disclosure include, but not limited to, at least some of the following:

[0148] ● Reduction of operations and / or deployment costs. Compared with the existing standard that modifies the neural network structure or topology, this method directly reorganizes the convolution operation without any modification on structure or topology, thus avoiding additional operations and / or deployment costs. For example, it can be used as a low-complexity replacement of sequential  operations involving down-sampling, convolution and up-sampling described in [JVET-AI0134 AhG11: LOP3 filter with multi-scale blocks] . When combined with an indication of stride (e.g., stride>1 ) , it can also serve as a low-complexity substitute for sequential operations involving down-sampling followed by convolution. In addition, compared to other methods of increasing receptive field, the proposed method allows to achieve the desired effect without increasing the number of memory access operations, which is crucial for minimizing the processing time.

[0149] ● Reduction of reliance on model design. Compared with existing standards that rely on specific model design to provide a specific receptive field size, this method specifies it by directly modifying the dilation rate of convolution kernel, providing more flexible adaptation on application scenario.

[0150] ● Support for a control over receptive field size. Compared with existing standards with frozen receptive fields, this method supports dynamic adjustment of the provided receptive field. Users can modify the dilation rate in real time to adapt the convolution operation to different data characteristics and task requirements, e.g., using a large dilation rate to expand the receptive field to capture more contextual information when processing high-resolution images, while using a small dilation rate to avoid information loss when processing low-resolution images.

[0151] FIG. 17 conceptually illustrates a device 400 with which some embodiments of the invention are implemented. The device 400 may be a computer (e.g., a desktop computer, personal computer, tablet computer, etc. ) , phone, PDA, or any other sort of electronic device. Such an apparatus includes various types of computer readable media and interfaces for various other types of computer readable media. The device 400 may be a video encoder, a video decoder, or a video codec which has both the encoding and decoding capabilities. The device 400 includes a processor 402 and a memory 404. The memory 404 is configured to store executable instructions that, when executed by the processor, cause the processor to perform any one of the foregoing decoding or encoding methods.

[0152] The processor 402 may be a single processor or a multi-core processor in different embodiments. In some embodiments, the processor may include a GPU, NPU or DSP which may offload various computations or complement the image processing provided by the processor 402.

[0153] Some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media) . Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM) , recordable compact discs (CD-R) , rewritable compact discs (CD-RW) , read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM) , a variety of recordable / rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc. ) , flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc. ) , magnetic and / or solid state hard drives, read-only and recordable discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files  including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.

[0154] While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) . In some embodiments, such integrated circuits execute instructions that are stored on the circuit itself. In addition, some embodiments execute software stored in programmable logic devices (PLDs) , ROM, or RAM devices.

[0155] As used in this specification and any claims of this application, the terms “computer” , “server” , “processor” , and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. As used in this specification and any claims of this application, the terms “computer readable medium, ” “computer readable media, ” and “machine readable medium” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.

[0156] The present disclosure further provides a non-transitory computer readable medium which is configured to store executable instructions. When the instructions are executed by a processor, the processor may perform any one of the foregoing methods and processes. Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium) . When these instructions are executed by one or more computational or processing unit (s) (e.g., one or more processors, cores of processors, or other processing units) , they cause the processing unit (s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard drives, erasable programmable read only memories (EPROMs) , electrically erasable programmable read-only memories (EEPROMs) , etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.

[0157] In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by a processor. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described here is within the scope of the invention. In some embodiments, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.

[0158] While the disclosure has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without  departing from the spirit of the invention. In addition, a number of the figures conceptually illustrate processes and methods. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in one continuous series of operations, and different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro process.

[0159] The foregoing is merely embodiments of the present disclosure, and is not intended to limit the scope of the disclosure. Any transformation of equivalent structure or equivalent process which uses the specification and the accompanying drawings of the present disclosure, or directly or indirectly application in other related technical fields, are likewise included within the scope of the protection of the present disclosure.

Claims

1.A video decoding method, executed by a decoding device deployed with a neural network, comprising:determining a dilation rate; andapplying the dilation rate to a convolutional layer of the neural network.2.The method of claim 1, wherein the determining the dilation rate comprises:receiving a bitstream comprising a dilation information; anddetermining the dilation rate based on the dilation information.3.The method of claim 2, wherein the dilation information comprises:a dilation rate value; ora dilation rate identifier.4.The method of claim 1, wherein the dilation rate is selected from a plurality of candidate dilation rates based on rate-distortion optimization.5.The method of claim 1, wherein the determining the dilation rate comprises:determining the dilation rate of the convolutional layer according to a previous dilation rate of a previous convolutional layer or a previous frame.6.The method of claim 1, whereinthe dilation rate is determined based on an input of the neural network, or the convolutional layer.7.The method of claim 6, wherein the dilation rate is determined based on resolution of the input of the neural network or the convolutional layer.8.The method of claim 6, wherein the dilation rate is determined based on a predefined feature of the input of the neural network or the convolutional layer;wherein the predefined feature comprises at least one selected from: an image feature; a statistical feature, a quality feature, or a frequency feature.9.The method of claim 6, wherein the dilation rate is determined using a specialized neural network.10.The method of claim 1, wherein the dilation rate is determined based on one or more characteristics of the convolutional layer.11.The method of claim 10, wherein the dilation rate is determined based on a position of the convolutional layer within the neural network.12.The method of claim 1, wherein the determining the dilation rate comprises:determining the dilation rate based on a pre-set dilation configuration.13.The method of claim 1, further comprising:obtaining a neural unit information, wherein the neural unit information is configured to indicate the convolutional layer.14.The method of claim 13,wherein the neural unit information is included in a bitstream; orwherein the neural unit information is pre-configured to the decoding device.15.The method of claim 1, further comprising:obtaining a dilation axis information, wherein the dilation axis information is configured to indicate one or more axes of the convolutional layer to be dilated.16.The method of claim 15,wherein the dilation axis information is included in a bitstream; orwherein the dilation axis information is pre-configured to the decoding device; orwherein the dilation axis information is determined based on an amount of dilation rates determined by the decoding device.17.The method of claim 1,wherein the dilation rate comprises a plurality of dilation rates for a plurality of axes of the convolutional layer respectively;wherein the applying the dilation rate to the convolutional layer comprises: applying the plurality of dilation rate to the plurality of axes of the convolutional layer respectively.18.A video encoding method, executed by an encoding device deployed with a neural network, comprising:determining a dilation rate;applying the dilation rate to a convolutional layer of the neural network; andtransmitting the dilation rate to a decoder in a bitstream.19.The method of claim 18, wherein the bitstream comprises a dilation information for indicating the dilation rate; andwherein the dilation information comprises a dilation rate value or a dilation rate identifier.20.The method of claim 18, further comprises:transmitting a neural unit information, wherein the neural unit information is configured to indicate a corresponding layer of the convolutional layer to be dilated.21.The method of claim 18, further comprises:transmitting a dilation axis information, wherein the dilation axis information is configured to indicate one or more axes of a corresponding layer of the convolutional layer to be dilated.22.The method of claim 18, wherein the determining the dilation rate comprises:determining the dilation rate which has an optimal rate distortion among a plurality of candidate dilation rate.23.The method of claim 18, wherein the determining the dilation rate comprises:determining the dilation rate of the convolutional layer according to a previous dilation rate of a previous convolutional layer or a previous frame.24.The method of claim 18, wherein the determining the dilation rate comprises:determining the dilation rate based on an input of the neural network or the convolutional layer.25.The method of claim 18, wherein the determining the dilation rate comprises:determining the dilation rate based on one or more characteristics of the convolutional layer.26.A video coding device, comprising a processor and a memory, wherein the memory is configured to store executable instructions that, when executed by the processor, cause the processor to perform the method of any of claims 1 to 25.27.A non-transitory computer readable medium storing executable instructions that, when executed by a processor, cause the processor to perform the method of any of claims 1 to 25.

Citation Information

Patent Citations

  • Video compression reference image generation method based on dilated convolutional neural network

    CN113810715A

  • Method and system of performing convolution in neural networks with variable dilation rate

    US20200218936A1

  • Image Processing Method, Image Processing Apparatus, and Device

    US20220319155A1

  • Image encoding apparatus and image decoding apparatus both based on artificial intelligence, and image encoding method and image decoding method performed by the image encoding apparatus and the image decoding apparatus

    US20240073425A1

  • A method, an apparatus and a computer program product for image and video processing using neural network branches with different receptive fields

    WO2024074231A1