Method and apparatus for neural network-based video encoding and decoding

By updating normalization statistics with target data-derived parameters, the method addresses the generalization challenge in neural network-based video encoding, enhancing accuracy and reducing resource demands and bitstream costs.

WO2026000400A1PCT designated stage Publication Date: 2026-01-02SHENZHEN TCL NEW-TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/102667
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-06-28
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Neural network-based video encoding and decoding methods face challenges in generalizing effectively when target data samples significantly differ from source data samples, leading to reduced visual representation effectiveness due to insensitivity and resource-intensive, time-consuming fine-tuning processes that increase bitstream size and latency.

Method used

A method that updates normalization statistics in a neural network using adaptation parameters derived from target data samples, enhancing the neural network's ability to adapt without extensive computational resources or time, thereby improving prediction accuracy and reducing bitstream costs.

Benefits of technology

The method enhances neural network adaptation to target data samples efficiently, improving video encoding quality and reducing resource requirements and bitstream size, making it suitable for diverse scenarios including low-powered devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024102667_02012026_PF_FP_ABST
    Figure CN2024102667_02012026_PF_FP_ABST
Patent Text Reader

Abstract

Methods and apparatus for neural network-based video encoding / decoding of a video sequence are provided. The method for neural network-based video encoding of a video sequence includes providing a base neural network, wherein the base neural network comprises a projection layer function and a normalization layer function; deriving one or more first adaptation parameters based on target data samples; updating normalization statistics related to the normalization layer function with the first adaptation parameters to update the base neural network; and applying the updated neural network in video encoding process.
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND APPARATUS FOR NEURAL NETWORK-BASED VIDEO ENCODING AND DECODINGTECHNICAL FIELD

[0001] The present disclosure generally relates to encoding and decoding technology, and in particular to a method for neural network-based video encoding, a method for neural network-based video decoding, an encoding apparatus, a decoding apparatus and a computer readable media.BACKGROUND

[0002] The success of neural networks has extended to the field of video coding, where they have demonstrated satisfactory visual representation capabilities. For instance, in the development of neural network video compression standardization, neural network-based loop filters are employed to remove coding artifacts. These neural networks are trained offline and evaluated (e.g., rate-distortion optimization) to select the best-resulting neural network as a seemingly-generalized neural network to be integrated into the conventional video compression system. However, under limited representation capabilities (i.e., the number of neural network parameters is limited practically) , the generalization of neural network also indicates potential insensitivity to data, especially when the data sample that is currently being processed (referred to as target data sample) and the data samples used for obtaining base neural networks (referred to as source data sample) have significant characteristic differences, thus reducing the effectiveness of visual neural representation.SUMMARY

[0003] Accordingly, the present disclosure aims to provide a method for neural network-based video encoding of a video sequence, a method for neural network-based video decoding of a video sequence, an encoding apparatus, a decoding apparatus and a computer readable media.

[0004] A technical scheme adopted by the present disclosure is to provide a method for neural network-based video encoding of a video sequence. The method includes: providing a base neural network, wherein the neural network comprises a projection layer function and a normalization layer function; deriving a first set of adaptation parameters based on of target data samples, wherein the first set of adaptation parameters represent specific statistical information of the target data samples; updating normalization statistics related to the normalization layer function with the first set of adaptation parameters to update the neural network; and applying the updated neural network in video encoding process.

[0005] Another technical scheme adopted by the present disclosure is to provide a method for neural network-based video decoding of a video sequence. The method includes: determining a base neural network, wherein the base neural network comprises a projection layer function and a normalization layer function; receiving an indication regarding one or more first adaptation parameters from an encoding device, wherein the one or more first adaptation parameters represent specific statistical  information of target data samples; updating running statistics of the base neural network based on the indication to acquire an updated neural network; and applying the updated neural network in video decoding process.

[0006] Another technical scheme adopted by the present disclosure is to provide an encoding apparatus. The encoding apparatus includes a memory and a processor. The memory is configured to store program instructions that, when executed by the processor, cause the processor to perform the foregoing encoding method.

[0007] Another technical scheme adopted by the present disclosure is to provide a decoding apparatus. The decoding apparatus includes a memory and a processor. The memory is configured to store program instructions that, when executed by the processor, cause the processor to perform the foregoing decoding method.

[0008] Another technical scheme adopted by the present disclosure is to provide a computer readable media storing program instructions that, when executed by a processor, cause the processor to perform the foregoing encoding or decoding method.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 video encoding system according to related art.

[0011] FIG. 2 shows a schematic diagram of a video decoding system according to related art.

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

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

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

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

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

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

[0018] FIG. 9 illustrates a flowchart of a neural network-based encoding method according to an embodiment of the present disclosure.

[0019] FIG. 10 illustrates a flowchart of a neural network-based decoding method according to an  embodiment of the present disclosure.

[0020] FIG. 11 illustrates a flowchart of a neural network-based encoding / decoding method according to an embodiment of the present disclosure.

[0021] FIG. 12 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure.

[0022] FIG. 13 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure.

[0023] FIG. 14 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure.

[0024] FIG. 15 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure.

[0025] FIG. 16 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure.

[0026] FIG. 17 illustrates a schematic diagram of an encoding or decoding apparatus 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] FIG. 1 shows a schematic diagram of a video encoding system according to related art. As shown in FIG. 1, a video encoding system 110 is composed of multiple modules, including 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. Original video signals comprise video frames. Each video frame can be divided into blocks by a block partitioning unit 1101. For each of the video frames, the subtractor 1112 generates residual pixel information of 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 reconstruction 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 reconstruction 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.

[0029] FIG. 2 shows a schematic diagram of a video decoding system according to related art. As shown in FIG. 2, the video decoding system 120 is composed of multiple modules comprising 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. 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.

[0030] Neural networks have been applied into 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 will be integrated along with 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. For instance, neural network loop filters has been developed based on neural networks with / without original loop filters unit.

[0031] As shown in FIG. 3, a neural network unit 1313 can be employed to replace the loop filters unit as indicated in FIG. 1. Alternatively, as shown in FIG. 4, a neural network unit 1413 can be sequentially connected to the loop filters unit 1109, e.g., after the loop filters unit 1109. Alternatively, as shown in FIG. 5, a neural network unit 1513 can be combined (e.g., in parallel) with the loop filters unit 1109.

[0032] Similarly, as shown in FIG. 6, a neural network unit 1608 can be employed to replace the loop filter unit. Alternatively, as shown in FIG. 7, a neural network unit 1708 can be sequentially connected to the loop filters unit 1205. Alternatively, as shown in FIG. 8, a neural network unit 1808 can be combined (e.g., in parallel) with the loop filter unit 1205.

[0033] The detailed explanation of the foregoing neural network-based encoding or decoding systems can be found in various references such as “AHG11: Convolutional neural networks-based in-loop filter. JVET-T0088” , “AHG11: Neural Network-based In-Loop Filter. JVET-T0079” , and “AHG11: neural network based in-loop filter with adaptive model selection. JVET-X0054” , and will not be repeated in the present disclosure.

[0034] The present disclosure provides an adaptation methods on neural networks which can be implemented in various types of neural network-based systems, including but not limited to, the video encoding and decoding systems as mentioned above. It is appreciated that the scope of this disclosure extends beyond video encoding and decoding systems. The adaptation methods on neural networks described herein can be applied to a wide array of other neural network-based systems. This includes, but is not limited to, image recognition systems, natural language processing systems, autonomous driving systems, recommendation systems, and predictive analytics systems. The versatility and adaptability of these methods make them highly valuable across a broad spectrum of applications. Whether it′senhancing the accuracy of facial recognition software, improving the efficiency of automated translation tools, optimizing route prediction in self-driving cars, refining suggestions in recommendation engines, or increasing the precision of forecasts in predictive models, the potential uses are vast and varied. Thus, while the methods have been described in the context of video encoding and decoding systems, it should be understood that the principles and techniques outlined in this patent can be beneficially implemented in any system that utilizes neural networks. This patent′sscope is intended to encompass all such applications, highlighting the wide-ranging applicability and significant potential of these neural network adaptation methods.

[0035] For better understanding of the present disclosure, relative technologies will be introduced  below.

[0036] Neural Network

[0037] A neural network for image and / or video processing (e.g., convolutional neural network, fully-connected neural network, Vision Transformer neural network) is typically constructed with one or multiple neural layers organized in a hierarchical manner, where each neuron (also called neural node) within a neural layer extracts learned visual features or patterns of increasing complexity from the input image. For instance, a convolutional neural network consists of one or more convolutional layers, where each neural 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. 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:

[0038] The neural projection operations can be formulated as:

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

[0040] Given an input image xin, a prediction ypred of neural network is:

[0041] where θ denotes base parameter weights of obtained by e.g. 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) .

[0042] Beyond mere inference, neural networks can also serve as accessory modules and auxiliary modules. Specifically, an 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 captioning, which converts words into vectors) . An 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 is 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.

[0043] Normalization Function

[0044] Normalization layer is often a critical component in neural network architectures for various  machine vision tasks. Typically, a normalization layer is used before or after a neural projection layer within neural network, and it standardizes or normalizes the output distribution of preceding layer and, consequently, also the input distribution of following layer. Typically, the normalization operation can be regarded as a process of modifying the input or output of a neuron using some statistics collected from some reference data or distribution, and the process conducted through mathematical calculations. A generalized normalization operation can be represented by:

[0045] Specifically, a normalization function is applied to neural node i to modify its output value from yi to si is the statistics used for the normalization operation of this neural node i (referred to as normalization statistics) . The normalization statistics are any data required to perform a normalization operation, and they are collected using certain collection function with Ri, where Ri is a set of output of certain specific neural nodes (e.g., node of preceding layer) including yi itself, and it is referred to as normalization reference.

[0046] Based on this processing paradigm, some normalization methods are developed to use different kinds of statistical information to constrain intermediate features within the normalized distribution. A wide group of existing neural networks collects and preserves aggregated statistics among multiple sample batches of training data, as an approximation of a global averaged statistics for all data samples. For instance, the generalized batch-based normalization is a baseline normalization method leveraging batch-wise aggregated statistics.

[0047] Batch-based Normalization.

[0048] This normalization operation collects normalization statistics in some way using the output of neural node from all data samples in a mini-batch, and then aggregate all the collected normalization statistics as the running statistics for the purpose of forward calculation during inference. A generalized batch-based normalization operation is represented as:

[0049] where denotes the output of neural node i of the k-th samples within the b-th mini-batch,  collects the batch statistics based on multiple within mini-batch, and collects normalization statistics based on multiple batch statistics within database.

[0050] Typically, mean and variance calculation are performed in as thereby batch-based normalization operation calculates the mean and variance among multiple data samples within the mini-batch, and then normalizes the output value of neural node by using the mean to normalize shift and the variance to normalize scale of the data samples, which can be represented as:

[0051] The parameter for normalizing shift is referred to as normalization shifting factor (e.g., mean) , and the parameter for normalizing scale is referred to as normalization scaling factor (e.g., variance) . Collectively, both normalization shifting factors and normalization scaling factors are identified as normalization statistics.

[0052] Typically, additional trainable affine parameters, including scaling parameters γi and shifting parameters βi, are employed to perform affine projection of the normalized data by adjusting the value interval of the batch-based normalized output, resulting in:

[0053] The usage of affine parameters is expected to improve the expressive power of the normalization layer.

[0054] In the following, an example illustrating application of batch normalization operation to a batch of 2-dimensional data (e.g., images described in RGB colors, images described in YUV, images described in YCrCb) . Other implementations that represent the same meaning and perform on input data of different shapes, such as 1-dimensional data (e.g., word projection vector) , 2.5-dimensional (e.g., images described in RGB colors and depth) , 3-dimensional data (e.g., a frame of point clouds) , 4-dimensional data (e.g., a sequence of point clouds) , are also included, and therefore will not be elaborated on further herein.

[0055] Denote the input of l-th neural layer as xl, and the output of linear projection in as yl = Wlxl + bl with a shape of where N, C, H, and W denote batch size, the number of feature channels, height of feature maps, and width of feature maps, respectively. The batch-based normalized output is calculated as:

[0056] where E (yl) and Var (yl) denotes the mean and variance among feature channels in yl, respectively, and ∈ denotes a very small constant (e.g., ∈ is set to 1e -5 by default in PyTorch framework) that prevents 0 from being used as the denominator.

[0057] Since during inference stage, the input data samples should be processed independently of each other, not within a batch, the batch-based normalization statistics cannot be often calculated during inference. To overcome this, it is proposed to collect the normalization statistics from training  data samples and compute an aggregated version as an approximated global averaged statistics that is expected to be generalized enough for all data samples to be processed. For instance, in batch normalization, the normalization statistics E (yl) and Var (yl) are accumulated over the dataset among multiple mini-batch of data samples to obtain an aggregated version, which is kept fixed during inference procedure. Typically, the aggregated statistics are obtained by a temporal-averaged result of the mean μB and variance within each mini-batch as:

[0058] where tam denotes the accumulation momentum.

[0059] The mean and variance statistics collected within mini-batch is calculated as:

[0060] The final result of E (yl) and Var (yl) will be preserved as statistical parameters within normalization layer of a neural network and used for inference procedures. Neural network equipped with batch normalization can be formulated as:

[0061] For more information on batch normalization, please refer to “Sergey Ioffe, Christian Szegedy: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. PMLR International Conference on Machine Learning (ICML) , 2015: 448-456” .

[0062] The batch normalization is a simple instantiation of normalization paradigm that preserves aggregated statistics among multiple training data samples to approximate global averaged statistics. Based on this, some variants have been developed, mainly including normalization among alternative sets of dimensions, normalization derived by multiple accumulation iterations, and normalization in multiple orders of various moments.

[0063] Normalization with Other Types of Statistics

[0064] Normalizations can also be conducted based on other types of statistics, e.g., skewness, kurtosis, maximum, minimum. For instance, in sampling batch normalization, the skewness and kurtosis statistics are collected as:

[0065] And the sampling batch-based normalized output is calculated as:

[0066] For more information on sampling batch normalization, please refer to “Zhuonan Liang, Ziheng Liu, Huaze Shi, Yunlong Chen, Yanbin Cai, Hong Hong, Yating Liang, Yafan Feng, Yuqing Yang, Jing Zhang, and Peng Fu. SPOC learner’s final grade prediction based on a novel sampling batch normalization embedded deep neural network method. Springer Multimedia Tools and Applications, 2023, 82 (7) : 9843-9853” .

[0067] Normalization among Alternative Sets of Dimensions

[0068] Normalizations can also be conducted among dimensions other than the batch dimension. For instance, in instance normalization, normalization statistics are derived by each data sample as:

[0069] where yi denotes output of neural node i in the l-th layer,  collects normalization statistics based on each single yi.

[0070] Denote the output of neural layer as the specific mean and variance statistics can be calculated as:

[0071] In another example, for group normalization, the normalization statistics are derived among multiple groups of neural nodes as:

[0072] where yi denotes output of neural node i within g-th group in the l-th layer,  collects normalization statistics based on a group of yi.

[0073] Denote the output of a neural layer as the specific mean and variance  statistics can be calculated as:

[0074] where GC denotes the number of channels for G-th group.

[0075] In another example, for layer normalization, the normalization statistics are derived among all channels within a layer as:

[0076] where yi denotes the output of neural node i in the l-th layer,  collects normalization statistics based on all yi in the l-th layer.

[0077] Denote the output of a neural layer as the specific mean and variance statistics can be calculated as:

[0078] Note that layer normalization is a special case of group normalization, where a single group spans across all channels within neural layer.

[0079] For more information on instance normalization, please refer to “Dmitry Ulyanov, Andrea Vedaldi, Victor S. Lempitsky: Instance Normalization: The Missing Ingredient for Fast Stylization. arXiv preprint arXiv: 1607.08022, 2016” .

[0080] For more information on group normalization, please refer to “Yuxin Wu, Kaiming He: Group Normalization. Springer European Conference on Computer Vision (ECCV) , 2018: 3-19” .

[0081] For more information on layer normalization, please refer to “Lei Jimmy Ba, Jamie Ryan Kiros, Geoffrey E. Hinton: Layer Normalization. arXiv preprint arXiv: 1607.06450, 2016” .

[0082] Some normalization operations are developed as more sophisticated combinations of batch normalization and other normalizations described above. In these normalization operations, statistics aggregated among multiple dimensions of training data samples are utilized. For instance, in batch group normalization, the normalization statistics are derived across channel groups and multiple training data samples:

[0083] where g denotes the grouping of neural nodes within the l-th neural layer.

[0084] Denote the output yl of neural layer with a shape the specific mean and variance statistics can be calculated as:

[0085] where GC denotes the number of channels for G-th group.

[0086] In another example of batch-channel normalization, the normalization statistics are derived from both multiple training data samples as well as multiple feature channels as:

[0087] where denotes the normalization statistics derived from multiple feature channels,  and  are collection functions for batch statistics among multiple samples and channel statistics among multiple neural nodes, respectively, and and are aggregation functions for running statistics derived from batch statistics and channel statistics, respectively.

[0088] Denote the output yl of neural layer with a shape the specific mean and variance statistics can be calculated as:

[0089] where μC and denotes the global averaged mean and variance calculated among feature channels, respectively.

[0090] The normalized output will be:

[0091] where tbc denotes the control factor to balance the normalized outputs along multiple samples and multiple channels.

[0092] For more information on batch group normalization, please refer to “Cecilia Summers, Michael J. Dinneen: Four Things Everyone Should Know to Improve Batch Normalization. International Conference on Learning Representation (ICLR) , 2020: 1_13” .

[0093] For more information on batch-channel normalization, please refer to “Afifa Khaled, Chao Li, Jia Ning, Kun He: BCN: Batch Channel Normalization for Image Classification. arXiv preprint arXiv: 2312.00596, 2023” .

[0094] Normalization Derived by Multiple Accumulation Iterations

[0095] These normalization operations collect and calculate normalization statistics using both current and historical training data samples. For instance, in streaming normalization, the running statistics is a weighted average of batch statistics among historical batches as:

[0096] where λb denotes the accumulation momentum for different historical batches.

[0097] In specific implementation of streaming normalization, a table is preserved to restore all the historical statistical information for statistical estimates used by normalization operation. The table gets updated using function every time it encounters a new training sample. Two sets of rtmning estimates are calculated to keep track of the long-term and short-term normalization statistics {slong, sshort} . The short-term normalization statistics sshort is the exact average of normalization statistics since the last weights update, while the long-term normalization statistics slong is an exponential moving average of sshort since the beginning of training, defined as slong = slong ·tls +sshort· (1 -tls) , where tls denotes the accumulation momentum for long-term normalization statistics. The final normalization statistics is computed as: s = ts1slong + ts2sshort and s is used as the normalization statistics.

[0098] For more information on streaming normalization, please refer to “Qianli Liao, Kenji Kawaguchi, Tomaso A. Poggio: Streaming normalization: Towards simpler and more biologically-plausible normalizations for online and recurrent learning. arXiv preprint arXiv: 1610.06160, 2016” .

[0099] Normalization Using Multiple Orders of Various Statistical Moments

[0100] These normalization operations use a specific order norder and a specific moment nmoment  to define the statistical measure within collection function as:

[0101] In this case, the previously described normalization methods that utilize mean and standard deviation as normalization statistics are regarded as special cases for approximating shift and scale of the data distribution, with multiple alternatives being possible. For instance, by utilizing Lp Normalization, the normalization scaling factor can be chosen as the p-th root of the p-th absolute moment:

[0102] For more information on Lp normalization, please refer to “Qianli Liao, Kenji Kawaguchi, Tomaso A. Poggio: Streaming Normalization: Towards Simpler and More Biologically-plausible Normalizations for Online and Recurrent Learning. arXiv preprint arXiv: 1610.06160, 2016” .

[0103] Importantly, when adapting the normalization layer to a set of target data samples, the statistical parameters of the normalization layer can be derived by mathematically calculating the output statistics of a layer preceding the adapted normalization layer using target data samples as input of the neural network, without a need for expensive fine-tuning via gradient backpropagation. Therefore, the statistical parameters can be adapted by a self-derivation in an online or offline manner.

[0104] Adaptation Methods

[0105] In order to further improve coding efficiency, some methods have been studied to adapt neural networks to a video sequence that is currently being processing. The goal of adaptation is to improve the prediction accuracy on the target data samples by fine-tuning the parameters of the initial neural network, which was originally trained on an initial dataset. Such an approach dates back to the existing High Efficiency Video Coding (HEVC) standard, where the filter coefficients of adaptive loop filters are trained at the video encoder side and then transmitted to the video decoder to improve the performance of the filter. Similarly, in neural network-based methods, parameters fine-tuning allows a neural network to adapt to new unseen data by updating existing parameter weights based on the new data. Up to date, there are two groups of parameter fine-tuning methods popularly used in the field of video compression: (i) feature adaptation, where visual features are transformed to better match the parameters of the neural network’s probability density function, and (ii) model adaptation, where parameter weights of neural node are transformed to better characterize the target data sample.

[0106] Feature Adaptation

[0107] The feature adaptation method learns new low-dimensional features trained on target visual data and combines these new features with the features extracted by original layer to improve neural  network performance based on a predefined optimization criterion, e.g. prediction error minimization. A commonly used feature adaptation technique is adapters, which integrates additional adapter layers after the convolutional of fully-connected modules with frozen parameter weights. For instance, the adapter layer generally uses the down projection of to project the layer input xl into the low-dimensional space specified by the bottleneck dimension r, then uses the nonlinear activation function hadp, l (·) , and then uses for up projection. These adapters are usually surrounded by a residual connection, resulting in:

[0108] Note that parameter weights for adapted modules of the initial neural network remain frozen during the adaptation process and only the adapter layers are trained.

[0109] Given prediction ground-truth ygt, the purpose of adapters is to find the optimal with minimum prediction error, which can be formulated as:

[0110] where denotes the error function.

[0111] For more information, please refer to “Koki Tsubota, Hiroaki Akutsu, Kiyoharu Aizawa: Universal Deep Image Compression via Content-Adaptive Optimization with Adapters. IEEE Winter Conference on Applications of Computer Vision (WACV) , 2023: 2528-2537” .

[0112] It should be noticed that, the feature adaptation approach will modify the initial topology of the convolutional neural network since addition of adapter layers is required. Consequently, this method requires: (i) additional parameters of adapter layers, (ii) additional computational costs due to processing with extra adapter layers during inference and (iii) additional overhead of training parameters of adapter layers on the target data during adaptation procedure via gradient back-propagation.

[0113] Model Adaptation

[0114] The model adaptation method updates the initial parameter weights of neural network by fine-tuning them on target data. The new, updated parameter weights are used during inference instead of the initial ones. One common technique used for fine-tuning a part of a neural network is layer freezing, which allows to update only part of the weights and keep other weights unchanged. Practitioners demonstrated that such fine-tuning can be done quite efficiently through bias-only update while other weights of the convolution or fully-connected layers remain frozen, resulting in:

[0115] where bovfNN, l are the trainable parameters for model adaptation. Similarly, the purpose of low-rank adaptation is to find the optimal with minimum prediction error as:

[0116] For more information, please refer to “Yat Hong Lam, Alireza Zare, Francesco Cricri, Jani Lainema, Miska M. Hannuksela: Efficient Adaptation of Neural Network Filter for Video Compression. ACM International Conference on Multimedia (MM) , 2020: 358-366” .

[0117] In contrast to the feature adaptation methods described above, model adaptation methods allow for update of the parameter weights without necessity of changing model topology and can be seamlessly merged with the base parameter weights, resulting in unchanged number of model parameters, as well as no additional computation cost during inference. However, these methods also have shortcomings. Specifically, existing methods rely on fine-tuning at the video encoder side and are difficult to apply to all application scenarios. The bitstream cost caused by the weights update signal of the neural network is often expensive. Moreover, limited by the bitstream cost, overfitting is often performed on the whole video, making it difficult to fully represent the characteristics of a single data sample or single coding unit.

[0118] Identified Problems

[0119] Limiting the complexity of fine-tuning is generally advisable. If it is possible to avoid the necessity of using a graphics processing unit (GPU) server for actual fine-tuning involving full back-propagation, and instead conduct simple mathematical computations that do not require extensive computational resources or memory, it would lead to savings in terms of both computation and money. This approach would also make the prospect of model adaptation on non-GPU encoders feasible.

[0120] The process of training neural networks that are utilized for video codec functionalities, is typically resource-intensive processes, requiring substantial computational resources and memory capacity to establish fine-tuning training procedures. For instance, as “Yat Hong Lam, Alireza Zare, Francesco Cricri, Jani Lainema, Miska M. Hannuksela: Efficient Adaptation of Neural Network Filter for Video Compression. ACM International Conference on Multimedia (MM) , 2020: 358-366” reported, a powerful Nvidia Tesla V100 device is required for the parameter fine-tuning. This poses a significant challenge in scenarios where video encoding side is constrained in terms of resources. Such scenarios are often encountered in low-powered devices or systems with limited memory capacity (e.g., Internet of Things (IoT) -devices, security cameras, and battery-powered drones) . Due to these resource limitations, the application of adaptation methods that require training or parameter fine-tuning becomes a challenge. Depending on a particular video compression method, this could result in  considerable deceleration of the training process, or, in severe cases, the training, and consequently the whole video coding, might become impossible to conduct.

[0121] Video compression process that depends on fine-tuning is typically characterized by extensive time requirements. Often, such processes necessitate a considerable amount of time to train a neural network to optimally compress the input video content, resulting in large delay introduced by the encoder. This becomes a challenge in applications that demand low latency encoding (e.g., live video streaming or real-time video calls) . In such scenarios, the time required for fine-tuning could introduce unacceptable delays, adversely affecting the quality of service and the overall user experience.

[0122] The aforementioned limitations motivate the necessity for an innovative adaptation method. The desired method should provide the capability to adapt to target data samples without the requirements for resource-intensive encoder and time-consuming fine-tuning training. Consequently, this would consequently enhance the applicability of the adaptation method across a wide range of scenarios. The presented invention aims to address these needs.

[0123] In existing adaptation approaches, the weights updates of the neural network require transmission alongside the compressed video data to ensure correct video decoding at the receiver end. This, in turn, results in a substantial increase of bitstream size. For instance, as “Yat Hong Lam, Alireza Zare, Francesco Cricri, Jani Lainema, Miska M. Hannuksela: Efficient Adaptation of Neural Network Filter for Video Compression. ACM International Conference on Multimedia (MM) , 2020: 358-366” reported that more than 5%of the bitrate is required for signalling weights update in a low-bitrate scenario (quantization parameter set to 37) . The substantial bitrate increase associated with weights update can become particularly problematic in situations of limited bandwidth or high data transmission costs. Consequently, this can lead to inefficient utilization of network resources, increased latency and additional expenses for data transmission. Additionally, under a fixed limitation of overall bitrate budget, the greater the number of bits used for weights updates is, the fewer bits are available for representing the actual video data. Once the video encoder couldn′t allocate bitrate between video and weights update flexibly or the available bitrate is very small, an adaptation of neural network may lead to a detrimental impact on final decoded video quality instead.

[0124] The aforementioned limitations motivate the necessity for an innovative adaptation method. The desired method should have capability to reduce bitstream costs while simultaneously maintaining high adaptation flexibility. This would consequently broaden the application of adaptation methods across a wide range of scenarios. The presented invention aims to address these needs.

[0125] Embodiment of Encoding Method based on the Proposed Method

[0126] FIG. 9 illustrates a flowchart of a neural network-based encoding method according to an embodiment of the present disclosure. The method includes operations described in blocks S201 to S204, that is: providing a base neural network; deriving a first set of adaptation parameters based on specific statistical information of target data samples; updating normalization statistics related to the normalization layer function with the first set of adaptation parameters to update the neural network;  and applying the updated neural network in video encoding process.

[0127] According to the present embodiment, the statistical information of the target data samples is used to update the normalization statistics which is determined based on the source data samples (e.g., the data samples used for pre-training a base neural network) . Therefore, deficiency caused by differences between the target data samples (e.g., the data samples that are currently being processed) and the source data samples may be eliminated or reduced. In light of the issues mentioned above, this invention introduces a normalization adaptation process, which collects the statistical information of target data samples and use it for e.g. forward calculation and training procedure, instead of the one obtained from source data sample. Detailed explanation of each step of the proposed method is introduced below.

[0128] In S201, a base neural network is provided.

[0129] The base neural network includes a projection layer function and a normalization layer function, and is obtained based on source data samples. Specifically, the neural network may include at least one projection layer and at least one normalization layer. The projection layer may include, but not limited to, convolutional, full-connected, or embedding layers. The normalization layer may preserve averaged statistics used for forward calculation procedure, which are derived based on, e.g., source data samples, through e.g. pre-training, most recent normalization adaptation process, parameter initialization process. The normalization layer is an adjacent connection of the projection layer. That is, the normalization layer may be the following layer of the projection layer, or the normalization layer may be the preceding layer of the projection layer. In some embodiments, the function of the projection layer and the function of the normalization layer can be merged and implemented as one single neural layer, e.g., a merged projection layer.

[0130] The neural network is obtained based on source data samples, and therefore the neural nodes of the neural network are equipped with base parameter weights. In one example, the base parameter weights may be obtained by training the neural network on a given tasks or tasks (including upstream tasks or pretext tasks) and datasets (e.g., large-scale datasets or multi-modal datasets) . The base parameter weights represent the learned features and patterns of the neural network. In another example, the base parameter weights may be obtained by adapting the normalization layers within neural network on a previously processed video sequence.

[0131] In S202, one or more first adaptation parameters are derived based on target data samples.

[0132] The first adaptation parameter (s) may represent specific statistical information of target data samples (referred to as target statistics) . Each set of target statistics corresponds to one or more normalization layer within the neural network, and is utilized to update the normalization statistics of corresponding normalization layer. Detailed explanation of the first adaptation parameter (s) and the target data samples will be elaborated on in subsequent sections of the disclosure.

[0133] In S203, normalization statistics related to the normalization layer function are updated with the first adaptation parameter (s) to update the neural network.

[0134] For each target statistic, it includes information indicating the specific statistical information  for input of the corresponding normalization layer (e.g., the output of neural node from the projection layer preceding the normalization layer) when target data samples are used as input of the neural network. Therefore, target statistic may be represented as one or more numerical data with any quantifiable value, which measures, summarizes or describes input of the corresponding normalization layer for one or more statistical purposes.

[0135] In S204, the updated neural network is applied in video encoding process.

[0136] Accordingly, the updated neural network may be utilized in the video encoding process. For example, the updated neural network may be implemented in the neural network loop filters for image / video prediction as illustrated in FIGS. 3 to 5.

[0137] According to the present embodiment, neural network-based encoding method may include: providing a neural network, deriving one or more first adaptation parameters based on target data samples, updating normalization statistics related to the normalization layer function of the neural network with the first adaptation parameters, and applying the updated neural network in video encoding process. The implementation of the present embodiment may update statistics for source data samples by statistics for target data samples so as to update the base neural network. Therefore, when the updated neural network is used in video encoding process for image / video reconstruction, the prediction accuracy of the neural network can be improved, and the quality of the reconstructed image / video can be improved.

[0138] Types of Statistical Information

[0139] When target data samples are used as input of the neural network, the statistical information may include at least one of: information indicating central tendency for input of the corresponding normalization layer; information indicating dispersion for input of the corresponding normalization layer; information indicating distribution shape for input of the corresponding normalization layer; or, information indicating numerical ranking for input of the corresponding normalization layer. For instance, information indicating central tendency may be represented by a mean value, with a statistical purpose of providing a measure of numerical average for input of the corresponding normalization layer. Information indicating dispersion may be represented by a variance value, with a statistical purpose of providing a measure of distance to distribution center for input of the corresponding normalization layer. Information indicating distribution shape may be represented by a skewness value, with a statistical purpose of describing the asymmetry of data distribution for input of the corresponding normalization layer. Information indicating distribution shape may also be represented by a kurtosis value, with a statistical purpose of measuring the tailedness or peakedness of data distribution for input of the corresponding normalization layer. Information indicating numerical ranking may be represented by a maximum value, with a statistical purpose of measuring the highest value of numerical ranging for input of the corresponding normalization layer. Information indicating numerical ranking may also be represented by a minimum value, with a statistical purpose of measuring the lowest value of numerical ranging for input of the corresponding normalization layer.

[0140] According to the present method, the set of target statistics is characterized by indicating the specific statistical information of the target data samples. After the normalization statistics within base neural network are updated based on the set of target statistics, the neural network is expected to be tuned to represent the characteristics of the target data samples.

[0141] Types of Target Data Samples

[0142] According to the present method, the target data samples may refer to the data samples to be processed by the neural network. In some embodiments, the target data samples include a target part of a video sequence. For example, the target samples may include at least one of: a set of group-of-pictures (GOP) , a single picture, a subpicture of frame, a slice of frame, a tile of frame, or a block within the video sequence, such as a coding tree unit or coding unit of frame of the whole video sequence. In some embodiments, the target data samples include a batch of any of the abovementioned items. In some embodiments, the target data samples include a whole video sequence itself.

[0143] Derivation of the First Adaptation Parameter (s)

[0144] In one embodiment, the first adaptation parameter (s) is derived based on a block within the video sequence that is currently being processed. In this embodiment, one or more sets of target statistics, which are included in the first set of adaptation parameters, are collected from the input of the corresponding normalization layer within neural network having the block within video sequence as input. For instance, given a block xtarget within video sequence  (i.e.,  ) , a set of target data samples Star can comprise xtarget, i.e., Star = {xtarget} . Denote the output of the l-th neural layer preceding the normalization layer to be yl, i.e.,  the normalization reference Rl can comprise yl, and the target statistic is collected as:

[0145] In some cases,  is used as updated normalization statistics, and the normalization operation can be implemented as

[0146] In some cases,  is used as part of updated normalization statistics, and the normalization operation can be implemented as

[0147] In one embodiment, the first parameter (s) is derived based on a target part of the whole video sequence. In this embodiment, one or more sets of target statistics, which are included in the first set of adaptation parameters, are collected from the input of the corresponding normalization layer within neural network that uses blocks within this target part of video sequence as input. For instance, given a target part of the whole video sequence  (i.e.,  ) , a set of target data samples Star can comprise all within with a total number of kblock (i.e., k ∈ {1, …, kblock} ) , i.e.,  Denote the output of the l-th neural layer preceding the normalization layer to be yl, i.e.,  the normalization reference Rl can comprise and the target statistic is collected as:

[0148] It is worth noting that, the collection process can be implemented not only on all blocks within a target part of the whole video sequence at once, but also in a way of batch processing. In the latter scenario, statistics can be collected either as aggregated results of each batch or an aggregated result among all batches.

[0149] Similarly, in some cases,  is used as updated normalization statistics, and the normalization operation can be implemented as

[0150] Similarly, in some cases,  is used as part of updated normalization statistics, and the normalization operation can be implemented as

[0151] In one embodiment, the first adaptation parameter (s) is derived based on a whole video sequence. In this embodiment, one or more set of target statistics, which are included in the first adaptation parameter (s) , is collected from the input of the corresponding normalization layer within neural network that uses all blocks within the whole video sequence as input. For instance, given a whole video sequence a set of target data samples Star can comprise all within with a total number of blocks equal to Kblock (i.e., k ∈ {1, ..., Kblock} ) , i.e.,  Denote the output of the l-th neural layer preceding the normalization layer to be yl, i.e.,  the normalization reference Rl can comprise and the target statistics is collected as:

[0152] Similarly, the collection process can be implemented not only on all blocks within a whole video sequence at once, but also in a way of batch processing. In the latter scenario, statistics can be collected either as aggregated results of each batch or an aggregated result among all batches.

[0153] Similarly, in some cases,  is used as updated normalization statistics, and the normalization operation can be implemented as

[0154] Similarly, in some cases,  is used as part of updated normalization statistics, and the normalization operation can be implemented as

[0155] The statistical types of target statistics included in the first s adaptation parameter (s) can be specified for one or more statistical purposes.

[0156] In one embodiment, the types of target statistics are specified by pre-settings. For example,  in neural network with batch normalization, mean and variance for the input of the corresponding normalization layer within neural network may be used as target statistics. Specifically, given a set of target data samples Star comprising with a total number of blocks equal to kblock, i.e.,  and denoting the output of the l-th neural layer preceding the normalization layer to be i.e.,  where C, H, and W denote the number of feature channels, height of feature maps, and width of feature maps, respectively, the target statistics may be collected as:

[0157] where and denote the target mean and variance statistics among all channels of respectively.

[0158] Similarly, in the case that is used as updated normalization statistics, the batch normalization operation can be implemented as In the case that is used as part of updated normalization statistics, the batch normalization operation can be implemented as

[0159] In another example, in neural network with batch group normalization, mean and variance for the input of corresponding normalization layer within the corresponding channel group, may be preset as target statistics. In this case, the target statistics may be collected as:

[0160] where GC denotes the number of channels within the corresponding channel group.

[0161] Similarly, in the case that is used as updated normalization statistics, the batch group normalization operation can be implemented as In the case that is used as part of updated normalization statistics, the batch group normalization operation can be implemented as

[0162] In another example, in neural network with batch-channel normalization, mean and variance for the input of corresponding normalization layer from multiple data samples within batch, as well as another mean and variance for the input of corresponding normalization layer from multiple channels within channel group, may be preset as target statistics. In this case, the target statistics may be collected as:

[0163] Similarly, in the case that is used as updated normalization statistics, the batch-channel normalization operation can be implemented as In the case that is used as part of updated normalization statistics, the batch-channel normalization operation can be implemented as

[0164] In another example, in neural network with streaming normalization, mean and variance for input of corresponding normalization layer within neural network using the target data samples as input, may be preset as target statistics Similarly, in the case that is used as updated normalization statistics, the streaming normalization operation can be implemented as  In the case that is used as part of updated normalization statistics, the streaming normalization operation can be implemented as

[0165] In another example, skewness, kurtosis, and variance for input of corresponding normalization layer from multiple data samples within batch, may be preset as target statistics. In this case, the target statistics may be collected as:

[0166] In another example, maximum and / or minimum statistics (e.g., the maximum value between skewness and kurtosis) , and variance for input of corresponding normalization layer from multiple data samples within batch, may be preset as target statistics. In this case, the target statistics may be collected as:

[0167] Indication for Types of Statistical Information

[0168] In one embodiment, the statistical types of target statistics are specified by unique identifiers, assuming that both the video encoder side and the video decoder side have look-up tables that are associated with the identifier to derive the statistical types based on the identifier. During the video encoding process, the video encoder obtains one or more identifiers of statistical types (e.g., from profiles) , and then implements the corresponding derivation of statistics according to one or more identifiers to obtain one or more set of target statistics. The one or more identifiers of statistical type are further signaled to the video decoder side. During the video decoding process, the video decoder receives these identifiers from bitstream, and then implements the corresponding derivation of the statistics according to the identified statistical type to derive the target statistics which are the same as those used in the video encoding process.

[0169] In one embodiment, the statistical types of target statistics are specified by identifiers of statistical moment and identifiers of corresponding statistical order. During the video encoding process, the video encoder obtains one or more identifiers of statistical moment and one or more identifiers of statistical order, and then implements the corresponding derivation of statistics according to these identifiers to obtain one or more sets of target statistics. Both the one or more identifiers of statistical moment and the one or more identifiers of statistical order are signaled to the video decoder side, either by independent identifier for each of moment and order items or as a combined identifier representing a specific combination of moment and order items. During the video decoding process, the video decoder receives these identifiers from bitstream, and then implements the corresponding derivation of statistics according to the identified statistical moment and identified statistical order to derive target statistics same as those used in the video encoding process. For example, given neural node i, the identifier of statistical order norder, i and the identifier of statistical moment nmoment, i, the target statistics are represented as where denotes a moment-based statistical calculation. In neural network with batch normalization, the target statistics in Eq. (43) can also be collected as:

[0170] where Iraw and Icentral denote raw moment and central moment, respectively. Ifirst and Isecond denote the first and second order, respectively.

[0171] Similarly, in the case where is used as updated normalization statistics, the batch normalization operation can be implemented as  In the case where is used as part of updated normalization statistics, the batch normalization operation can be implemented as

[0172] Adaptation of Running Statistics and First Adapted Neural Network

[0173] Running statistics are defined as the normalization statistics used for forward computation of normalization layers during inference. As discussed above, prior arts preserve statistics aggregated among multiple batches of source data samples as running statistics (e.g., time-averaged aggregated results of mean and variance in batch normalization) . In this solution, adaptation of running statistics is achieved by using one or more sets of target statistics included in one or more first adaptation parameters to replace or update the preserved aggregated statistics. The updated running statistics (i.e., new normalization statistics used for forward computation of normalization layers) based on the set of adaptation parameters are referred to as adapted running statistics.

[0174] A first adapted neural network is defined as the result of updating of neural network with adapted running statistics. Since the first adapted neural network is derived by updating normalization statistics only, the first adapted neural network is characterized by only adjusting normalization statistics within neural network. Since the set of adaptation parameters is derived without fine-tuning, the first adapted neural network is also characterized by being derived without full training requirements.

[0175] Adaptation of running statistics can be implemented in various normalization layers that use statistics aggregated among multiple batches of source data samples, including but not limited to batch-based normalization, normalization among alternative sets of dimensions, normalization derived by multiple accumulation iterations, and normalization using multiple orders of various statistical moments. For batch-based normalization, e.g., batch normalization, adaptation of running statistics is implemented by using one or more sets of target statistics included in a first set of adaptation parameters to replace or update the preserved statistics in base parameter weights. For normalization among alternative sets of dimensions, adaptation of running statistics is implemented by using one or more sets of target statistics to replace or update the part aggregated from batch dimension in the preserved statistics in base parameter weights. For normalization derived by multiple accumulation  iterations, e.g., streaming normalization, adaptation of running statistics is implemented by using one or more sets of target statistics to replace the preserved statistics in base parameter weights or update the statistics based on multiple accumulation iterations. For normalization using multiple orders of various statistical moments, e.g., L1 normalization, adaptation of running statistics is implemented by using one or more sets of target statistics to replace or update the statistics with specific order of preserved statistical moment in base parameter weights. Specific solution for each of these cases is introduced below.

[0176] In one embodiment, adaptation of running statistics within batch normalization layers is implemented to derive a first adapted neural network. It is a simple implementation example of adapting a neural network by a first set of adaptation parameters. In this solution, one or more sets of target mean and / or one or more sets of variance statistics included in a first set of adaptation parameters are used to replace the preserved mean statistics and / or preserved variance statistics within corresponding batch normalization layers. The output of the l-th neural layer preceding the normalization layer may be denoted as i.e.,  where C, H, and W denote the number of feature channels, height of feature maps, and width of feature maps, respectively. Given the target mean statistics of yl as and the target variance statistics as  in Eq. (43) , E (yl) and Var (yl) in Eq. (8) can be replaced by and respectively:

[0177] Note that, in most cases, the normalization layer with preserve statistics derived based on pre-training on source data samples is used as example. These cases are also applicable to normalization layer with preserve statistics derived based on other cases, e.g., most recent normalization adaptation process, parameter initialization process.

[0178] The batch normalization with adapted running statistics (referred to as adapted batch normalization) for the l-th neural layer is conducted as:

[0179] Compared with Eq. (8) , Eq. (50) indicates that in adapted batch normalization, target statistics derived from target data samples are used instead of preserved statistics aggregated from source data samples and utilized as running statistics to normalize the output of the neural layer preceding the normalization layer.

[0180] Based on the above, a first adapted neural network is derived by adapting one or more batch normalization layers into adapted batch normalization layers. For example, by applying Eq. (50) to  rewrite Eq. (13) , an adapted neural network with all batch normalization layers being adapted is represented as:

[0181] In another embodiment, adaptation of running statistics within batch normalization layers is implemented to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of variance statistics included in a first set of adaptation parameters are used to update the preserved mean statistics and / or preserved variance statistics within corresponding batch normalization layers. In this case, the running statistics are derived as an aggregated results of target statistics from target data samples and preserved statistics from source data samples. The output of the l-th neural layer preceding the normalization layer may be denoted as i.e.,  where C, H, and W denote the number of feature channels, height of feature maps, and width of feature maps, respectively. Given the current target mean statistics of yl as and the current target variance statistics as in Eq. (43) , aggregated mean statistics and aggregated variance statistics may be initialized as E (yl) and Var (yl) in Eq. (8) , and then get updated by and respectively:

[0182] where t′am denotes an accumulation momentum for updating normalization statistics. In this case, the adapted batch normalization is conducted as:

[0183] Note that, in the subsequent cases, the solution based on replacement (i.e., Eq. (49) ) is used as example. These cases are also applicable to the solution based on aggregation (i.e., Eq. (52) ) .

[0184] In some cases, the normalization statistics are updated in Eq. (49) based on each set of target statistics derived from all sequential batches of target data samples from a video sequence that is currently being processed. The final update result serves as the running statistics within normalization layer to derive a first adapted neural network. The first adapted neural network derived in this way can be used to process the current video sequence.

[0185] In some cases, the normalization statistics are updated in Eq. (49) based on a set of target statistics derived from current batch of target data samples from a video sequence that is currently being processed. These statistics serve as the running statistics within normalization layer to derive a first adapted neural network. The first adapted neural network derived in such a way can be used to process the current batch of target data samples. In this scenario, updates of normalization statistics, derivation of a new first adaptive neural network and processing of target data samples are all based on the current batch of target data samples.

[0186] Similarly, for batch group normalization, the target mean statistics and the target variance statistics in Eq. (44) are used instead of μBG and in Eq. (27) and Eq. (28) , respectively.

[0187] Similarly, for batch-channel normalization, the target mean statistics and the target variance statistics in Eq. (45) are used instead of μB and in Eq. (30) and Eq. (31) , respectively.

[0188] Similarly, for sampling batch normalization, the target skewness statistics and the target kurtosis statistics in Eq. (46) are used instead of and κB in Eq. (14) and Eq. (15) , respectively, and the target maximum statistics in Eq. (47) are used instead of the one in Eq. (16) .

[0189] Similarly, for streaming normalization, the target statistics in Eq. (40) or Eq. (42) are collected instead of in Eq. (33) .

[0190] Similarly, for Lp normalization, the target statistics and  in Eq. (48) are used instead of the one in Eq. (34) .

[0191] In some embodiments, adaptation of running statistics within batch normalization layers is implemented by replacing specific statistical parameters only. For example, a first adapted neural network can be derived by adapting normalization shifting factors only. For neural networks with batch normalization, given the target mean statistics of yl as in Eq. (43) , E (yl) in Eq. (8) may be replaced by

[0192] In some cases, the statistical types of target statistics included in a first set of adaptation parameters can be different from the one required in original normalization layer. For example, a first adapted neural network can be derived by replacing normalization shifting factors with specific order of statistical moments different from mean. For neural networks with batch normalization, given the target statistics of yl as with specific order norder, l of specific statistical moment nmoment, l, this can be expressed by replacing E (yl) in Eq. (8) with

[0193] For example, a first adapted neural network can also be derived by replacing normalization scaling factors only. For neural networks with batch normalization, given the target variance statistics of yl as in Eq. (43) , Var (yl) in Eq. (8) can be replaced by

[0194] Similarly, the statistical types of target statistics included in a first set of adaptation parameters can be different from the one required in original normalization layer. For example, a first adapted neural network can be derived by replacing normalization scaling factors with specific order of  statistical moments different from variance. Often, for neural networks with batch normalization, L1 normalization can be used as target statistics for normalization scaling factor:

[0195] Similarly, adaptation of running statistics within batch normalization layers is implemented by updating specific statistical parameters only, including normalization shifting factors and / or normalization scaling factors.

[0196] In one embodiment, adaptation of running statistics can be implemented to merged normalization layers to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of variance statistics included in a first set of adaptation parameters are used to update the preserved weights of affine parameters within merged normalization layers. For example, given the target mean statistics of yl as and the target variance statistics as in Eq. (43) , E (yl) and Var (yl) in Eq. (8) may be replaced by and respectively:

[0197] Obviously, updated parameter weights of affine parameters γ′l can be expressed as:

[0198] and updated parameter weights of a projection bias β′l as:

[0199] The merged normalization layer with updated parameter weights γ′l and β′l is equivalent to a normalization operation with γl, and βl as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively, i.e.:

[0200] Eq. (65) indicates that, in some cases, given one or more sets of target statistics as normalization statistics and base affine parameters, adaptation can be implemented for merged normalization operation. In these cases, information indicating the weights update of affine scaling factor and affine shifting factor.

[0201] In one embodiment, adaptation of running statistics can be implemented to merged projection layers to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of variance statistics included in a first set of adaptation  parameters are used to update the preserved parameter weights of merged projection layers. For example, for projection layers followed by normalization operation, given the target mean statistics of yl as and the target variance statistics as in Eq. (43) , E (yl) and Var (yl) in Eq. (8) can be replaced by and respectively:

[0202] Obviously, updated parameter weights of a neural projection operator W′l can be expressed as:

[0203] and updated parameter weights of a projection bias b′l as:

[0204] The merged projection layer with updated parameter weights W′l and b′l is equivalent to a projection layer with base parameter weights Wl and bl followed with a normalization operation with γl, and βl as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively, i.e.:

[0205] Eq. (65) indicates that, in some cases, given one or more sets of target statistics as normalization statistics and base affine parameters, adaptation can be implemented for projection layers without the following normalization operation. In these cases, at least one of the following should be signaled from the video encoder side to the video decoder side: 1) information indicating one or more sets of target statistics for normalization statistics and base affine parameters, or 2) information indicating the weights update of a neural projection operator and a projection bias. Note that, the weights update values can be coded differentially with respect to value 1.0 for scale and 0.0 for bias.

[0206] In another example, for projection layers preceded by normalization operation, given the target mean statistics of yl as and the target variance statistics as in Eq. (43) , E (yl) and Var (yl) in Eq. (8) may be replaced by and respectively:

[0207] Obviously, update parameter weights of a neural projection operator W′l are:

[0208] and update parameter weights of a projection bias b′l are:

[0209] The merged projection layers with new parameter weights W′l and b′l is equivalent to a normalization operation with γl and βl as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively, followed by a projection layer with base parameter weights Wl and bl, i.e.:

[0210] Similarly, Eq. (69) indicates that, in some cases, given one or more sets of target statistics as normalization statistics and base affine parameters, adaptation can be implemented for projection layers without preceding normalization operation. In these cases, at least one of the following should be signaled from the video encoder side to the video decoder side: 1) information indicating one or more set of target statistics for normalization statistics and base affine parameters, or 2) information indicating the weights update of a neural projection operator and a projection bias.

[0211] In one embodiment, adaptation of running statistics within batch group normalization layers is implemented to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of variance statistics included in a first set of adaptation parameters are used to replace the preserved mean and / or variance statistics within corresponding batch-group normalization layers. The output of the l-th neural layer preceding the normalization layer may be denoted as i.e.,  where C, H, and W denote the number of feature channels, height of feature maps, and width of feature maps, respectively. Given the target mean statistics of yl as and target variance statistics as in Eq. (44) , E (yl) and Var (yl) in Eq. (8) may be replaced by and respectively, and the batch-group normalization with adapted running statistics (referred to as adapted batch-group normalization) for the l-th neural layer can be expressed as:

[0212] In one embodiment, adaptation of running statistics within batch-channel normalization layers is implemented to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of variance statistics included in a first set of adaptation parameters are used to replace the preserved mean and / or variance statistics within corresponding batch-channel normalization layers. Similarly, given the target mean statistics of yl as and  target variance statistics as in Eq. (45) , μB in Eq. (30) and in Eq. (31) may be replaced by  and respectively, the batch-group normalization with adapted running statistics (referred to as adapted batch-channel normalization) for the l-th neural layer is:

[0213] In one embodiment, adaptation of running statistics within streaming normalization layers is implemented to derive a first adapted neural network. In this solution, one or more sets of target mean statistics and / or one or more sets of target variance statistics included in a first set of adaptation parameters are used to replace the preserved mean statistics and / or preserved variance statistics within corresponding streaming normalization layers. Similarly, given the target mean statistics of yl as  and target variance statistics as in Eq. (43) , E (yl) and Var (yl) in Eq. (8) may be replaced by and respectively. Besides, one or more sets of target mean statistics and / or one or more sets of target variance statistics can be used to update the preserved mean statistics and / or variance statistics based on the update rule of normalization statistics from streaming normalization.

[0214] As described above, the first adapted neural network only gets the running statistics adapted. Therefore, additional fine-tuning of model parameters other than normalization statistics is expected to bring additional improvement of prediction accuracy.

[0215] Second Adaptation Parameter (s) and Second Adapted Neural Network

[0216] In some embodiments, the neural network-based encoding method described above may further include the operation described in block S205 as shown in FIG. 9. That is: fine-tuning one or more second adaptation parameters based on target data samples to further update the neural network. The second adaptation parameter (s) include parameters of the neural network that differ from the normalization statistics. The operation S204 may be performed before or after the operation S202 / S203, alternatively, the operation S204 may be performed at the same time as the operation S202 / S203, which is not limited in the present disclosure. In this case, a second adapted neural network is derived as the updated neural network based on both the first adaptation parameter (s) and the second adaptation parameter (s) , and it is characterized by adjusting normalization statistics as well as adjusting at least one set of model parameters other than normalization statistics. In the present invention, the update sequence based on the first adaptation parameter and the update sequence based on the second adaptation parameter is not mandatory. In one case, the derivation process of the second adapted neural network may include adapting the running statistics and fine-tuning a base neural network simultaneously. Additionally or alternatively, the derivation process of the second adapted neural network may include adapting the running statistics and fine-tuning a base neural network simultaneously, and then adapting the running statistics again. Additionally or alternatively, the derivation process of the second adapted neural network may include fine-tuning a base neural network,  and then adapting the running statistics. Additionally or alternatively, the derivation process of the second adapted neural network may include adapting the running statistics of a base neural network to derive a first adapted neural network, and then fine-tuning the corresponding first adapted neural network.

[0217] Besides, the second adaptation parameters may include any parameters other than normalization statistics within neural network. For example, the second adaptation parameters may include affine parameters within the normalization layer function, e.g., the affine scaling parameters and / or the affine shifting parameters within normalization layer. Additionally or alternatively, the second set of adaptation parameters may include projection parameters of a preceding layer of the normalization layer, e.g., the projection parameters of convolution kernel, and / or the projection parameters of full-connected neuron. Additionally or alternatively, the second set of adaptation parameters may include parameters other than running statistics within the neural network, e.g., the negative slope factor of parametric rectified linear unit, and / or the saturation control factor of exponential linear unit. Detailed explanation with regard to these options is provided below.

[0218] In one embodiment, additional fine-tuning of one or more affine parameters is implemented to derive a second adapted neural network. In one solution, the implementation includes adapting the running statistics of a base neural network to derive a first adapted neural network, and then fine-tuning the corresponding first adapted neural network to derive a second adapted neural network. One or more affine parameters within adapted normalization layers are set trainable while keeping the adapted normalization statistics as fixed. The objective of fine-tuning is finding the optimal affine parameters with minimum prediction error or with prediction error less than a pre-set threshold. For example, given a first adapted neural network with adapted batch normalization layers (i.e., batch normalization with target mean statistics as normalization shifting factors and target variance statistics as  as normalization scaling factors) , at least one set of scaling parameters γl and / or shifting parameters βl are set as trainable to find the optimal scaling parameters and / or shifting parameters  based on the following equation:

[0219] The objective can be to find the optimal with minimum prediction error as:

[0220] The optimal scaling parameters and / or shifting parameters is derived by data-driven optimization. For instance, it can be derived by an end-to-end supervised fine-tuning with multiple iterations, which includes: 1) for each of the iterations, generating the prediction based on the current version of θft, and then obtaining the ground-truth target ygt , computing the prediction error between ypred and ygt, computing a gradient of the  prediction error using backpropagation, updating the parameter weights of θft based on the gradient of and 2) updating the parameter weights of θft iteratively until the prediction error  is less than an error threshold and take the final result as the optimal affine parameters

[0221] This solution may be suitable for the scenarios where the video encoder implements additional adaptation based on a set of second adaptation parameters and then signals the weights update to the video decoder when the performance gain brought by adaptation on running statistics is insufficient.

[0222] In another solution, the implementation includes adapting the running statistics and fine-tuning a base neural network simultaneously to derive a second adapted neural network. In this case, one or more sets of affine parameters within adapted normalization layers is set trainable along with adaptation of running statistics. Similarly, the objective of fine-tuning is finding the optimal affine parameters with minimum prediction error or with prediction error less than a pre-set threshold. For example, given neural network with batch normalization layers, at least one set of scaling parameters γl and / or shifting parameters βl are set as trainable to find the optimal scaling parameters and / or shifting parameters based on the following equation:

[0223] The objective can be finding the optimal with minimum prediction error as:

[0224] The optimal scaling parameters and / or shifting parameters is derived by data-driven optimization. For instance, it can be derived by an end-to-end supervised fine-tuning with multiple iterations, which includes: 1) for each of the iterations, deriving and based on Eq. (43) and using them for forward calculation layer by layer to generate a prediction based on the current version of θft, and then obtaining the ground-truth target ygt , computing the prediction error between ypred and ygt, computing a gradient of the prediction error using backpropagation, updating the parameter weights of θft based on the gradient of and 2) updating the parameter weights of θft iteratively until the prediction error  is less than an error threshold and take the final result as the optimal affine parameters

[0225] This solution may bring higher performance gain compared to the solution that implements fine-tuning with fixed adapted normalization layers.

[0226] In another solution, the implementation includes fine-tuning a base neural network, and then adapting the running statistics to derive a second adapted neural network. In this case, one or more sets of affine parameters within a base neural network gets fine-tuned before adaptation of running statistics.  Similarly, the objective of fine-tuning is to find the optimal affine parameters with minimum prediction error or with prediction error less than a pre-set threshold. For example, given neural network with batch normalization layers, at least one set of scaling parameters γl and / or shifting parameters βl are set as trainable to find the optimal scaling parameters and / or shifting parameters based on the following equation:

[0227] The objective can be to find the optimal with minimum prediction error as:

[0228] The optimal scaling parameters and / or shifting parameters is derived by data-driven optimization. For instance, it can be derived by an end-to-end supervised fine-tuning with multiple iterations, which includes: 1) for each of the iterations, generating the prediction based on the current version of θft, and then obtaining the ground-truth target ygt, computing the prediction error between ypred and ygt, computing a gradient of the prediction error using backpropagation, updating the parameter weights of θft based on the gradient of  and 2) updating the parameter weights of θft iteratively until the prediction error is less than an error threshold and take the final result as the optimal affine parameters

[0229] This solution may bring higher performance gain compared to the solution that implements adaptation on running statistics and fine-tuning at the same time.

[0230] Based on the above discussions, a second adapted neural network with updated normalization statistics and updated affine parameters within normalization layer is characterized by a decrease of prediction error on target data samples.

[0231] Similarly, additionally fine-tuning of affine parameters can be applied to specific affine parameters only, e.g., fine-tuning affine scaling factors only while keeping affine shifting factors with base weights or, alternatively, fine-tuning affine shifting factors only while keeping affine scaling factors with base weights.

[0232] Similarly, additionally fine-tuning of affine parameters can be applied to merged normalization layers. In this solution, one or more sets of affine scaling factors and / or affine shifting factors are used to update the preserved weights of affine parameters within normalization layers. For example, given and as well as and E (yl) and Var (yl) in Eq. (8) may be replaced by and and γl and βl in Eq. (8) may be replaced by and respectively:

[0233] Obviously, updated parameter weights of affine parameters γ′l can be expressed as:

[0234] and updated parameter weights of a projection bias β′l can be expressed as:

[0235] The merged normalization layer with updated parameter weights γ′l and β′l is equivalent to a normalization operation with γl, and βl as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively, i.e.:

[0236] Eq. (65) indicates that, in some cases, given one or more sets of target statistics as normalization statistics and fine-tuned affine parameters, adaptation can be implemented for merged normalization operation. In these cases, information indicating the weights update of affine scaling factor and affine shifting factor may be provided.

[0237] Similarly, additionally fine-tuning of affine parameters can be applied to merged projection layers. In this solution, one or more sets of affine scaling factors and / or affine shifting factors are used to update the preserved parameter weights of merged projection layers. For example, for projection layer followed by normalization operation, given and as well as and E (yl) and Var (yl) in Eq. (8) may be replaced by and and γl and βl in Eq. (8) may be replaced by and respectively:

[0238] Obviously, updated parameter weights of a neural projection operator W′l can be expressed as:

[0239] and updated parameter weights of neural projection bias b′l are:

[0240] The merged projection layer with new parameter weights W′l and b′l (referred to as adapted merged projection layer) is equivalent to a projection layer with base parameter weights Wl and bl  followed by a normalization operation with and as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively:

[0241] Eq. (85) indicates that, given one or more sets of target statistics containing normalization statistics and fine-tuned affine parameters, adaptation can be implemented for projection layers without the following normalization operation. In these cases, at least one of the following should be signaled from the video encoder side to the video decoder side: 1) information indicating one or more set of target statistics for normalization statistics and fine-tuned affine parameters, or 2) information indicating the weights update of a neural projection operator and a projection bias.

[0242] Similarly, in another example, for projection layer preceded by normalization operation, given and as well as and E (yl) and Var (yl) in Eq. (8) may be replaced by  and and γl and βl in Eq. (8) may be replaced by and respectively, to derive adapted merged projection layer.

[0243] Additional identifiers are required to indicate the specific normalization layer to be updated. Since both adaptation of running statistics and adaptation of affine parameters are implemented within one normalization layer, a common identifier can be used to indicate the specific normalization layer of which all parameters are to be updated. Additionally, for merged layers (e.g., merged normalization layer, merged projection layer) , a common identifier can also be used indicate this merged layer of which all parameters are to be updated. These additional identifiers need to be signaled from the video encoder side to the video decoder side.

[0244] In one embodiment, additional fine-tuning of projection parameters within preceding / following layers of the normalization layer is applied to derive a second adapted neural network. In this solution, one or more sets of projection parameters within preceding / following layers are set as trainable. The objective of fine-tuning is to find the optimal projection parameters with minimum prediction error or with prediction error less than a pre-defined threshold. For example, given the target mean statistics as and target variance statistics as for batch normalization layer, at least one set of projection parameters Wl (e.g. the projection parameters of convolutional kernel, or the projection parameters of fully-connected neuron) and / or projection bias parameter bl (e.g. the projection bias of convolutional kernel, or the projection bias of fully-connected neuron) are set as trainable to find the optimal projection parameters and / or projection bias parameters based on the following equation:

[0245] The objective can be to find the optimal with minimum prediction error based on the following equation:

[0246] In this solution, the optimal projection parameters and / or projection bias parameters are derived by data-driven optimization. For instance, by an end-to-end supervised training with multiple iterations, which includes: 1) for each of the iterations, generating the prediction based on the current version of θft, and then obtaining the ground-truth target ygt, computing the prediction error between ypred and ygt, computing a gradient of the prediction error using backpropagation, updating the parameter weights of θft based on the gradient of  and updating the parameter weights of θft iteratively until the prediction error is less than an error threshold and take the final result as the optimal affine parameters

[0247] Therefore, a second adapted neural network with adapted projection parameters of layer preceding / following a normalization layer is characterized by a decrease of prediction error on target data samples.

[0248] Similarly, additionally fine-tuning of affine parameters can be applied to some specific model parameters only, e.g., fine-tuning projection parameters only while keeping projection bias parameters with base weights, or, fine-tuning projection bias parameters only while keeping projection parameters with base weights.

[0249] Furthermore, additional fine-tuning of projection parameters within preceding / following layer of normalization layer can be applied to merged projection layers. For example, for projection layer followed by normalization operation, given and as well as and within normalization layer, and given and within preceding projection layer, E (yl) and Var (yl) in Eq. (8) may be replaced by and γl and βl in Eq. (8) may be replaced by and and Wl and bl in Eq. (8) may be replaced by and respectively:

[0250] Obviously, update parameter weights of a neural projection operator W′l are:

[0251] and update parameter weights of neural projection bias b′lare:

[0252] The merged projection layer with new parameter weights W′l and b′l (referred to as adapted merged projection layer) is equivalent to a projection layer with fine-tuned parameter weights and followed by a normalization operation with and as normalization shifting factor, normalization scaling factor, affine scaling factor, and affine shifting factor, respectively:

[0253] Eq. (91) indicates that, given one or more sets of target statistics as containing normalization statistics, fine-tuned affine parameters and fine-tuned projection parameters of the preceding projection layer, adaptation can be implemented for projection layers without the following normalization operation. In these cases, information indicating the weights update of a neural projection operator and a projection bias should be signaled from the video encoder side to the video decoder side.

[0254] Additional identifiers are required to indicate the specific projection layer to be updated. These additional identifiers need to be signaled from the video encoder side to the video decoder side.

[0255] In one embodiment, additional fine-tuning of any parameters other than normalization statistics is applied to derive a second adapted neural network. In this solution, one or more sets of model parameters is set as trainable. The objective of fine-tuning is to find the optimal parameters with minimum prediction error or with prediction error less than a pre-defined threshold. Additional identifiers are required to indicate the specific neural layer to be updated. These additional identifiers need to be signaled from the video encoder side to the video decoder side.

[0256] Indication of “Off-line” Adaptation for Decoder

[0257] The corresponding neural network at the decoding side should be updated in a similar way as the neural network at the encoding side, so that the decoder may generate correct prediction result based on the updated neural network and media stream received from the encoder. Correspondingly, the method may further include: transmitting a first indication indicating weights update of the neural network to a decoding device for the decoding device to update a corresponding neural network. In this way, the weights of the neural network at the decoding side may be updated by using the weights update received from the encoding side, which can be called “off-line” adaptation.

[0258] The first indication for the decoding device to update its corresponding neural network can be indicated in different ways. For example, the indication may include updated weights of the updated neural network. Additionally or alternatively, the indication may include a difference between updated weights and base weights. Typically, the difference may be represented by an increment or a scaling ratio between updated weights and base weights. Additionally or alternatively, the indication may include a difference between updated weights and previously updated weights. Additionally or alternatively, the indication may include a lookup-table index or a set of lookup-table indices, and the lookup-table index is related to weights update of the neural network.

[0259] In one embodiment, the indication includes a set of weights updates derived from adapting normalization statistics with / without fine-tuning of any other model parameters during video encoding. The purpose is to derive one or more first / second adapted neural networks at the video decoder side, which are the same as those used in the video encoding process. The set of weights updates should indicate the adapted normalization statistics and / or the other fine-tuned model parameters. Syntax elements may be used to indicate the specific parameter subjects being updated in the video encoding  process, including identifiers that indicate one or more specific neural networks being updated, identifiers that indicate one or more specific neural layers being updated, and identifiers that indicate one or more specific model parameters being updated. Note that, if all the above types of identifier are preset and remain fixed and are the same at both the video encoder side and the video decoder side, the corresponding syntax elements may not be required and / or may not be necessarily signaled. Based on the above parameter subjects, this solution comprises the following modes for weights update signaling.

[0260] In one example, a set of weights update is derived based on the updated weights of model parameters themselves, including: the updated normalization statistics and / or the other updated model parameters. For instance, given the updated mean parameters and updated variance parameters  within batch normalization function, a set of updated weights can be represented as {μ″, σ2″} , where and For instance, given the updated scaling parameters the updated shifting parameters the updated projection parameters and the updated projection bias a set of updated weights can be represented as {γ″, β″, W″, b″} , where  and For instance, a set of updated weights can include both updated running statistics and / or the other updated model parameters,and it can be represented as {μ″, σ2″, γ″, β″, W″, b″} , where  and In this case, the set of updated weights is used to replace the previous weights of identified parameters within neural network at the video decoder side. Therefore, syntax elements are required to at least indicate the specific parameters to be updated to derive corresponding first / second adapted neural networks at the video decoder side.

[0261] In another example, a set of weights update is derived as numerical difference between the updated weights and the base weights, including: numerical difference between the updated normalization statistics and the corresponding base normalization statistics (e.g., obtained from pre-training) ; and / or numerical difference between the updated model parameters obtained from additional fine-tuning and the corresponding base parameters obtained from pre-training. For instance, given the updated mean statistics and updated variance statistics and the corresponding preserved mean statistics E (yl) and preserved variance statistics Var (yl) within batch normalization function, a set of weights update can be represented as {μ″, σ2″, Rmodify} , where fmodify denotes the modification rule from base parameters to updated parameters, and Rmodify denotes indicator of fmodify. A specific instance of fmodify can be the residual. In this case,  and Rmodify indicates to conduct an addition operation. Another specific instance of fmodify can be the scaling. In this case,  and Rmodify indicates to conduct an multiplication operation. For instance, given the updated scaling parameters the updated shifting parameters the updated  projection parameters and the updated projection bias as well as the corresponding base scaling parameters γl, the base shifting parameters βl, the base projection parameters Wl, and the base projection bias bl, a set of weights update can be represented as {γ", β", W", b", Rmodify} , where  and  Similarly, a specific instance of fmodify can be the residual. In this case,  and and Rmodify indicates to conduct an addition operation. Similarly, another instance can be scaling, where and Similarly, a set of weights update can include both numerical difference in normalization statistics and the other model parameters, and it can be represented as {μ", σ2″, γ", β", W", b", Rmodify} l∈ {1, ..., L} , where  and In some cases, the set of weights update is used to modify the weights of identified parameters within neural network at the video decoder side based on the modification rule. Syntax elements are required to at least indicate the specific modification rule and the specific parameters to be updated to derive corresponding first / second adapted neural networks at the video decoder side. Note that, the modification rules may not be signalled in some cases, e.g., when this rule is set as numerical difference in default so that the current weights of parameters will always add the corresponding weights update to derive the updated weights.

[0262] In another example, a set of weights update is derived as numerical difference between the updated parameters obtained from current target data samples and the updated parameters obtained from previous target data samples. In this case, the set of weights update is used to modify the weights of identified parameters within neural network at the video decoder side based on the modification rule. Syntax elements are required to indicate the specific modification rule and the specific parameters to be updated to derive corresponding first / second adapted neural networks at the video decoder side. Besides, syntax elements may also indicate the version of neural networks to be updated (i.e., neural networks using specific parameter weights) , with default value indicating the most recent neural network.

[0263] In another example, a set of updated weights or a set of weights update is represented as a lookup-table index or a set of lookup-table indices. This solution assumes that both the video encoder side and the video decoder side have a look-up table associated with the adaptation, e.g., updated weights of a first adapted neural network. During the video encoding process, given a lookup-table index or a set of lookup-table indices from encoding profile, the video encoder obtains a set of updated weights, which is the value of a look-up table or a set of values of one or more look-up tables according to this lookup-table index or this set of lookup-table indices. Based on this set of updated weights, a neural network gets updated to derive a first adapted neural network, which can be further used for  video encoding. Besides, the lookup-table index or the set of lookup-table indices can further be signaled to the video decoder side. During the video decoding process, the video decoder receives the lookup-table index or the set of lookup-table indices from bitstream and derives the same first adapted neural network as the one used for video encoding process based on the look-up results of this lookup-table index or this set of lookup-table indices. The derived first adapted neural network can be used to decode the video stream into the reconstructed video. In most cases, each lookup-table entry can correspond to different adaptation scenarios. For example, lookup-table entry may correspond to content type, e.g., natural scene content, screen content. When input of a video codec is a video sequence with screen content, a set of lookup-table indices is signaled to implement corresponding adaptation based on the screen content type. This process results in a derivation of a first / second adapted neural network that is specifically tuned for screen content, and the adapted neural network will be used for the processing of this video sequence. Additionally or alternatively, lookup-table entry may correspond to content complexity, e.g., video content with slow motion, video content with rapid changes. Additionally or alternatively, lookup-table entry may correspond to scene type that the video codec serve for, e.g., landscape photography, telecommunication, artificial intelligence-based virtual generation. Additionally or alternatively, lookup-table entry may correspond to the data characteristics of video, e.g., amount of textures, color gamut.

[0264] It is appreciated that, the first indication can be transmitted from the encoder to the decoder in various ways. For example, in one embodiment, the first indication may be included in a Supplemental Enhancement Information (SEI) transmitted from the encoder to the decoder. In another embodiment, the first indication may be included in a header of syntax structure from the encoder to the decoder, including GOP header, picture header, slice header, video parameter set, sequence parameter set, picture parameter set, adaptation parameter set. In another embodiment, the first indication may be included in a specific code stream other than the media stream from the encoder to the decoder.

[0265] Indication of “On-line” Adaptation for Decoder

[0266] The corresponding neural network at the decoding side should be updated in a similar way as the neural network at the encoding side, so that the decoder may generate correct prediction result based on the updated neural network and media stream received from the encoder. Correspondingly, the method may further include: transmitting a second indication indicating derivation information of the neural network to a decoding device for the decoding device to update a corresponding neural network. The derivation information includes information about how to update the neural network. In this way, the neural network at the decoding side may be updated based on the derivation information, which can be called “on-line” adaptation.

[0267] In one embodiment, the indication includes information indicating a derivation of a first adapted neural network. In this embodiment, the running statistics get updated based on implementing a derivation of a first adaptation parameters at the video decoder side, rather than receiving a set of  weights update from the video encoder side. Since the process of adaptation of running statistics includes 1) collecting target statistics from target data samples and 2) applying the derived target statistics as running statistics, indications can be signaled for these two specific adaptation events.

[0268] In one example, the indication can include information indicating characteristics of collection of the target statistics. Typically, the target statistics are collected every mini-batch in order to update the running statistics. However, it is also possible to accumulate multiple mini-batches and then calculate the target statistics based on these accumulated batches of samples. This reduces the derivation frequency of normalization statistics, thereby reducing the number of parameters that require signaling for weights update. The adaptation information used for collecting target statistics may include the following: 1) information indicating the type of target data samples to be involved, 2) information indicating the type of statistics to be collected, 3) information indicating the accumulation scope of target data samples for derivation of target statistics, 4) information indicating the moment of time to calculate target statistics based on the accumulated target data samples.

[0269] Information indicating the type of target sample to be involved may include type identifiers of target data samples. It is specified to indicate which part of the whole video sequence the target data sample refers to, e.g., a whole video sequence, a set of group-of-pictures (GOP) , a single picture, a subpicture of frame, a slice of frame, a tile of frame, a coding tree unit of frame, or a coding unit of frame. During the video encoding / decoding process, the video encoder / decoder receives a target part of the video sequence based on the identifiers of target data sample. Subsequently, the target part of the video sequence is divided / resampled / reshaped into a set of coding units, which serve as the basic input of the neural network. It is worth noting that in certain cases, this indication may not be signalled. For example, when the type of target data samples is set as “GOP” by default value, the video decoder will always collect target statistics from each GOP.

[0270] Information indicating the type of statistics to be collected may include type identifiers of statistical information. It is specified to indicate what statistical type one or more sets of target statistics may include, e.g., mean, variance, skewness, kurtosis, maximum, minimum, specific order of statistical moments. Typically, at least one type identifier is required to indicate the statistical type of normalization shifting factor for one or more normalization layer, and / or at least one type identifier is required to indicate the statistical type of normalization scaling factor for one or more normalization layer. It is worth noting that in certain cases, this indication may not be signalled. For example, when the statistical type is set as “mean” and “variance” by default, the video decoder will always collect target mean statistics for normalization shift and target variance statistics for normalization scale.

[0271] Information indicating the accumulation scope of data samples for derivation of target statistics may include the amount of target data samples to be used for the calculation of target statistics. Typically, this scope can be defined as a number threshold. When the number is reached, the derivation of target statistics is performed based on the currently accumulated target data samples. It is worth noting that in certain cases, this indication may not be signalled. For example, when the accumulation scope is set to include all coding units from the current target data samples by default value, the video  decoder will always end the collection once it has collected statistics of all the coding units from the current target data samples.

[0272] Information indicating the moment of time to calculate target statistics may include identifiers may include identifiers of target statistics calculation ‘event’ . In some cases, the target statistics is calculated sequentially after the collection of target data samples get finished, e.g., the decoder starts calculating the target statistics immediately after the collection of target data sample collection is completed. In other cases, the target statistics is calculated at a specific moment after the collection of target data samples get completed (e.g., waiting for the rest of mini batches to construct a full batch) . In some cases, the moment of parsing indication can be set as default value. In some cases, the moment can be set as a specific frequency, e.g. every GOP, every picture, etc.

[0273] In another example, the indication can include information indicating characteristics of applying of the target statistics as rtmning statistics, including information indicating the specific statistical parameters within normalization layers to be updated

[0274] Information indicating the specific statistical parameters within normalization layers to be updated may include identifiers of statistical parameters to be updated by target statistics, e.g., normalization scaling factor, normalization shifting factor. During the video encoding / decoding process, the video encoder / decoder updates the corresponding statistical parameters within normalization layer according to these identifiers to derive a first / second adapted neural network.

[0275] It is appreciated that, the second indication can be transmitted from the encoder to the decoder in various ways. For example, in one embodiment, the second indication may be included in a Supplemental Enhancement Information (SEI) transmitted from the encoder to the decoder. In another embodiment, the second indication may be included in a header of syntax structure from the encoder to the decoder, including GOP header, picture header, slice header, video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptation parameter set (APS) . In another embodiment, the second indication may be included in a specific code stream other than the media stream from the encoder to the decoder.

[0276] Other Signaling from the Encoder

[0277] In some embodiments, the method may further include: transmitting one or more syntax elements with regard to the updated neural network. The syntax elements can be transmitted, for example, to a decoding apparatus for the decoding process.

[0278] In some embodiments, the syntax elements may include one or more identifier of neural network. These identifiers specify neural network to be updated in the video encoder / decoder side. During the video encoding process, video encoder updates one or more neural networks according to the encoding settings. The identifiers of the neural networks being updated is signaled to the video decoding side. During the video decoding process, the video decoder receives these identifiers from bitstream, and the conducts adaptation of the identified neural networks resulting in derivation of the corresponding first / second adapted neural networks that are the same as those used in video encoding  process.

[0279] It is worth noting that the identifiers of neural networks at least indicate one or more neural network entity (i.e., neural network′sspecific function, such as neural networks for intra-frame prediction) . Additionally or alternatively, the identifiers of neural networks may indicate an index into a set of pre-defined neural networks (e.g., standard neural networks, separately provided neural networks via a reference) , the index corresponding to the neural network in the set of pre-defined neural networks. Additionally, the identifiers of neural networks may further indicate one or more neural network version (i.e., versions of neural network's parameter weights, such as a base neural network, a first adapted neural network derived from a previous batch of target data samples, a first adapted neural network derived from a current batch of target adaptation samples) .

[0280] In some embodiments, the syntax elements may further include 1) identifier of moment of applying the update, and / or 2) identifier of resetting parameters to a specific status. One or more of these indications may get combined into one message with optional fields or may get signaled by a separate message.

[0281] Identifier of moment of applying the update specifies the moment of time to apply the first / second adaptation parameters into the identified neural network. Similarly, the moment of parsing indication can be set as default value. Similarly, the moment can be set as a specific frequency, e.g. every GOP, every picture, etc.

[0282] Identifier of resetting parameters to a specific status specifies, the first / second adapted neural network may reset the updated parameters into a specific status, including: base parameters obtained from pre-training or parameter initialization, a status obtained from previous adaptation process, e.g., the most recent adaptation process. Similarly, the moment of parsing indication can be set as default value and it also can be set as a specific frequency, e.g. every GOP, every picture, etc.

[0283] During the video encoding process, video encoder derives a first set of adaptation parameters according to the video encoding settings. In case where a set of weights updates of a first adapted neural network is included in the indication, the above identifiers may be not signaled. Otherwise, e.g., in the case where information indicating only the fact of derivation of a first adapted neural network is included in the indication, the above identifiers should be signaled to the video decoding side. In this case, during the video decoding process, the video decoder obtains the information of identifiers of type of target data samples, identifiers of statistical type to be collected, as well as identifiers of scope of target data samples to be accumulated, and then derives the corresponding first adapted neural networks. Additionally, in case that the above identifiers have been set by default, they may also be not signaled.

[0284] In some embodiments, the syntax elements may further include: identifier of model parameters, and identifier of scope of target data samples. Identifier of model parameters specifies the selected statistical parameters to be updated, including normalization shifting factor, and normalization scaling factor. For example, given only normalization shifting factors as specific statistical parameters to be updated, identifiers for "shifting factor" is signaled to indicate the update of the corresponding  parameters to derive first / second adapted neural networks. Identifier of scope of target data samples specifies the amount of target data samples to be processed by the currently derived first / second adapted neural network. In some cases, the latter identifier can be represented as a numerical parameter. This numerical parameter can be signaled to indicate an exact number of target data samples to be processed by the currently derived first / second adapted neural network. In some cases, this identifier can be represented as a dedicated flag. During video encoding, once the number of target data samples being processed reaches a predefined numerical threshold, the dedicated flag can be included in adaptation information and signaled to video decoding side. During video decoding, once the video decoder receives the dedicated flag from bitstream, the current first / second adapted neural network should fall back to the base state, or another new adaptation of running statistics is applied based on a new batch of target data samples to derive a new first / second adapted neural network.

[0285] In some embodiments, the normalization layer is retained in the neural network during the training procedure, while is merged into the preceding or following neural layer before the inference procedure in practical deployment. In this case, syntax element needs to indicate at least one of following: 1) both normalization statistics and affine parameters within normalization layers, or 2) model parameters of the merged layer. Therefore, the syntax elements may further include: identifiers to specific model parameters to be updated.

[0286] In some embodiments, the syntax elements may include an indication for the first set of adaptation parameters. In some embodiments, the syntax elements may include an indication for a second set of adaptation parameters. The second set of adaptation parameters includes parameters of the neural network other than the normalization statistics.

[0287] Carrier for Signaling from the Encoder to the Decoder

[0288] In one embodiment, a Supplemental Enhancement Information (SEI) message is proposed, which includes information about a derivation of one or more corresponding first / second adapted neural network at the video decoder side. In this case, the media bitstream includes one or more media units and a SEI message related to adaptation.

[0289] The SEI message includes at least two independently parsable structures: a first independently parsable structure comprising information to identify the one or more standard neural networks or separately provided neural networks via a reference identifier, and a second independently parsable structure comprising information required to derive first adapted neural network for each neural network identified by the first independently parsable structure. In this case, the video decoding process includes receiving a media bitstream; and decoding one or more media units in the media bitstream; and deriving corresponding first adapted neural network, based on information comprised in the second independently parsable structure, for one or more neural network identified by information comprised in the first independently parsable structure; and using the one or more first adapted neural networks to process one or more decoded media units.

[0290] An example version of the SEI message may include the following structure:

[0291] where sei_container may e.g. be a neural network nesting SEI message or a SEI Network Abstraction Layer (NAL) unit.

[0292] The sei_container structure may include SEI messages describing derivation operations of one or more adapted neural network and related information.

[0293] nn_sei_message () is a SEI message containing information of one or more neural network to be adapted in the video decoder side. The payload of nn_sei_message () may comprise one or more identifier to neural network at video decoder side.

[0294] In one example, nn_sei_message () may be represented as a unique identifier of neural network, given that given that a list of known neural networks enumerated at both the video encoder and the video decoder side. In such case, the video decoder parses the corresponding unique identifier from nn_sei_message () and then specifies the looked-up neural network from the known list to be updated.

[0295] In another example, nn_sei_message () may be represented as a purpose identifier associated with one or more neural network entry, which will be applied to media units, with the identified purpose. In this case, derivations will be implemented on one or more neural network used for an identified purpose, e.g., reference frame generation, in-loop filtering, or with functionalities that can achieve an identified purpose, e.g., artifact removal, post-processing. The video decoder parses the corresponding purpose identifier from nn_sei_message () and then specifies the neural networks used for identified purpose or with functionalities that can achieve the identified purpose.

[0296] In another example, when a video decoder (or alike) does not recognize the SEI message type of nn_sei_message () , or when nn_sei_message () is not contained in the sei_container, or nn_sei_message () is empty in sei_container, a preset neural network may be specified as to be updated, given that the neural network is preset in default and remains same and known to both the video encoder side and the video decoder side. In a case that there is no preset neural network, the derivation operations should be omitted.

[0297] adapt_sei_message () is a SEI message containing information of a derivation of adapted neural networks of corresponding one or more neural network identified by nn_sei_message () . The payload of adapt_sei_message () include at least one indication for whether one or more neural network identified by nn_sei_message () get adapted by 1) a set of weights for corresponding first adapted neural network from the video encoder side, or 2) using a set of first adaptation parameters that is derived from the video decoder side, to update the running statistics related to the normalization layer function within one or more identified neural network.

[0298] In one example, the indication may be a logical flag. If the flag is equal to True, it indicates that a set of weights update for corresponding first adapted neural network is contained in the  adapt_sei_message () . In this case, the video decoder receives and parses a set of weights update from the adapt_sei_message () , and then derives a corresponding first adapted neural network based on this set of weights update. Otherwise, it indicates that the set of weights update is not contained in the adapt_sei_message () . In this case, the video decoder 1) receives and parses one or more identifiers related to the derivation operation of an adapted neural networks from the adapt_sei_message () , derives a set of first adaptation parameters and then updates the running statistics related to the normalization layer function within one or more neural network identified by nn_sei_message () based on the one or more identifiers related to the derivation operation.

[0299] An example of associated syntax for deriving a corresponding first adapted neural network is as follows:

[0300] nn_adapt_params_flag is a logical flag indicating how one or more neural networks to be adapted. nn_adapt_params_flag equal to 1 specifies that the video decoder receives and parses a set of weights update from the adapt_sei_message () , and then derives a corresponding first adapted neural network based on this set of weights update. nn_adapt_params_flag equal to 0 specifies that the video decoder receives and parses one or more identifiers related to the derivation operation of an adapted neural networks from the adapt_sei_message () , derives a set of first adaptation parameters and then updates the running statistics related to the normalization layer function within one or more neural network identified by nn_sei_message () based on the one or more identifiers related to the derivation operation.

[0301] nn_adapt_type specifies the selected statistical parameters to be updated, including normalization shifting factor, and normalization scaling factor, as specified in TABLE 1. The value of  nn_adapt_type shall be in the range of 0 to 3, and the descriptors of nn_adapt_type may be an unsigned integer using 3 bits. In most cases, nn_adapt_type may be specified as 3 in default.

[0302] TABLE 1 nn_adapt_type codes and types of target data samples

[0303] nn_adapt_boundaries specifies the time moment to apply the update to one or more neural network identified by nn_sei_message () . nn_adapt_boundaries may be represented, for example, as 1) an integer, indicating a count range of coding unit order relative to the number of coding unit to be processed by one or more current first / second adapted neural network; or 2) a logical flag, indicating the end of the specific ‘event’ that the all the coding unit contained in the target data samples have already been processed by one or more current first / second adapted neural network.

[0304] nn_adapt_params is a container or a structure to store one or more sets of weights update for corresponding first adapted neural network of the one or more neural networks identified by nn_sei_message () .

[0305] The one or more sets of weights update for the first adapted neural network contained in nn_adapt_params comprises at least one of the following: 1) a set of updated weights for corresponding first adapted neural network, in which case that the video decoder may use the set of updated weights to replace the previous weights of neural network; 2) an indication of a modification rule and a set of weights update, in which case that the video decoder may use the set of weights update to modify the preserved weights based on the indicated modification rule, or 3) an indication of a modification rule and a set of weights update derived from the last updated weights of neural network, in which case that the video decoder may use the set of weights update to modify the last updated weights based on the indicated modification rule.

[0306] Additionally or alternatively, the one or more sets of weights update contained in nn_adapt_params can be stored in the NNR bitstream syntax format, which is a serialized stream of NNR units as defined in MPEG specification ISO / IEC 15938-17.

[0307] nn_adapt_target_type specifies the type of target data samples to be involved, as specified in TABLE 2. The value of nn_adapt_target_type shall be in the range of 0 to 7, and the descriptors of nn_adapt_target_type may be an unsigned integer using 3 bits. In most cases, nn_adapt_target_type may be specified as 0 in default.

[0308] TABLE 2 nn_adapt_target_type codes and types of target data samples

[0309] nn_adapt_statistic_type is a value array or single value specifying the type of target statistics be collected, as specified in TABLE 3. Each value of nn_adapt_statistic_type shall be in the range of 0 to 7, and the descriptors of nn_adapt_statistic_type may be an unsigned integer using 3 bits. In most cases, nn_adapt_target_type may be specified a 2xl array (i.e., 1-column by 2-row) or lx2 array (i.e., 2-column by 1-row) with 0 as the first element and 1 as the second element in default.

[0310] TABLE 3 nn_adapt_statistic_type codes and types of target statistics

[0311] nn_adapt_collect_boundaries specifies the amount of target data samples used for the calculation of target statistics. nn_adapt_collect_boundaries may be represented, for example, as 1) an integer, indicating a count range of coding unit order relative to the number of coding unit contained in the target data samples specified by nn_adapt_target_type; or 2) a logical flag, indicating the end of the specific ‘event’ that the target statistics from all the coding unit contained in the target data samples have already been collected.

[0312] nn_adapt_params_derive () is a derivation process of a set of adaptation parameters, and it is invoked with a set of weights update included in n_adapt_target_type, nn_adapt_statistic_type, and nn_adapt_collect_scope as input.

[0313] nn_update () is a derivation process of an updated neural network, and it is invoked with a set of weights update included in nn_adapt_params as input.

[0314] Additionally, the SEI message may further include a third independently parsable structure, comprising information required to derive second adapted neural network for each neural network identified by the first parsable structure. In this case, the video decoding process includes receiving a media bitstream; and decoding one or more media units in the media bitstream; and deriving corresponding second adapted neural network, based on information comprised in the second independently parsable structure and the third independently parsable structure, for one or more neural network identified by information comprised in the first independently parsable structure; and using the  one or more second adapted neural networks to process frames or parts of frames of the decoded media units.

[0315] An example version of the SEI message with may include the following structure:

[0316] second_adapt_sei_message () : a SEI message containing information of a derivation of corresponding second adapted neural networks of one or more neural network identified by nn_sei_message () .

[0317] The payload of second_adapt_sei_message () comprise one or more set of weights update of corresponding second adapted neural networks

[0318] An example of associated syntax for deriving a corresponding second adapted neural network is as follows:

[0319] nn_second_adapt_params a container to store one or more sets of weights update for corresponding second adapted neural network of the one or more neural networks identified by nn_sei_message () . The one or more sets of weights update for the second adapted neural network comprises at least one of the following: 1) a set of updated weights for corresponding second adapted neural network, in which case that the video decoder may use the set of updated weights to replace the previous weights of neural network; 2) an indication of a modification rule and a set of weights update derived from the preserved weights of neural network, in which case that the video decoder may use the set of weights update to modify the preserved weights based on the indicated modification rule, or 3) an indication of a modification rule and a set of weights update derived from the last updated weights of neural network, in which case that the video decoder may use the set of weights update to modify the last updated weights based on the indicated modification rule.

[0320] The one or more sets of weights update contained in nn_second_adapt_params can be stored in the NNR bitstream syntax format, which is a serialized stream of NNR units as defined in MPEG specification ISO / IEC 15938-17.

[0321] In another embodiment, information about first / second adaptation parameter may be introduced into a header of syntax structure, including GOP header, picture header, slice header, video parameter set (VPS) , sequence parameter set (SPS) , picture parameter set (PPS) , adaptation parameter set (APS) . In this case, the media bitstream includes one or more media units and a header of syntax structure related to adaptation.

[0322] The payload of the header may further indicate information corresponding to fields of SEI message.

[0323] In another embodiment, the adaptation information messages can be signaled in other ways than the SEI message. For instance, a message for adaptation information is signaled using a bitstream independent of the media stream. For example, the one or more sets of weights update for corresponding first / second adapted neural network can be represented in the NNR bitstream syntax format out of SEI message. Before the video decoding stage, the decoder receives the independent code stream and obtains the first / second adapted neural network based on the adaptation information extracted therefrom. Subsequently, the media stream is processed using the first / second adapted neural networks.

[0324] The payload of the independent bitstream may further indicate information corresponding to fields of SEI message.

[0325] Embodiment of Decoding Method based on the Proposed Method

[0326] FIG. 10 illustrates a flowchart of a neural network-based decoding method according to an embodiment of the present disclosure. The method includes operations described in blocks S301 to S304, that is: determining a base neural network; receiving an indication regarding one or more first adaptation parameters from an encoding device; updating running statistics of the base neural network based on the indication to acquire an updated neural network; and applying the updated neural network in video decoding process. Specifically, the first adaptation parameter (s) represents specific statistical information of target data samples.

[0327] According to the present embodiment, the statistical information of the target data samples is used to update the normalization statistics which were originally determined based on the source data samples. Therefore, deficiency caused by differences between the target data samples (e.g., the data samples that are currently being processed) and the source data samples may be eliminated or reduced. Detailed explanation of each step of the proposed method will be introduced below.

[0328] In S301, a base neural network is determined.

[0329] Specific information with regard to the neural network may be determined based on indication or syntax elements transmitted from an encoding apparatus.

[0330] In S302, an indication regarding one or more first adaptation parameters is received from an encoding device. The one or more first adaptation parameters represent specific statistical information of target data samples.

[0331] In one embodiment, the indication may include a first indication. The first indication indicates weights update acquired by the encoding device. The weights update may be acquired by updating running statistics related to a normalization layer function of a corresponding neural network of the base neural network with the one or more first adaptation parameters. Alternatively, the weights update may be acquired by: 1) updating running statistics related to a normalization layer function of a corresponding neural network of the base neural network with the one or more first adaptation  parameters; and 2) fine-tuning one or more second adaptation parameters based on the target data samples to further updating the corresponding neural network. The second adaptation parameters may include parameters of the neural network that differ from the normalization statistics. For example, the second adaptation parameters may include one or more affine parameters within the normalization layer function. Alternatively or additionally, the second adaptation parameters may include one or more projection parameters of the projection layer function. Alternatively or additionally, the second adaptation parameters may include parameters other than running statistics within the neural network.

[0332] The first indication may include a difference between updated weights and base weights of the corresponding neural network of the encoding device. Alternatively or additionally, the first indication may include a difference between updated weights and previously adapted weights of the corresponding neural network of the encoding device. Alternatively or additionally, the first indication may include a lookup-table index, and the lookup-table index is related to weights update of the corresponding neural network of the encoding device.

[0333] The first indication may be included in a Supplemental Enhancement Information (SEI) , a header of syntax structure, or a separate code stream. The specific code stream may be different from the media stream for carrying the target data samples. For more details of the first indication, please refer to the section of “off-line adaptation” .

[0334] In another embodiment, the indication may include a second indication which indicates normalization adaptation process to update the base neural network. The second indication may include at least one off identifier of type of the target data samples; identifier of type of the specific statistical information; or identifier of a scope of the target data samples.

[0335] The second indication may be included in a Supplemental Enhancement Information (SEI) , a header of syntax structure, or a separate code stream. The specific code stream may be different from the media stream for carrying the target data samples. For more details of the second indication, please refer to the section of “on-line adaptation” .

[0336] In S303, running statistics of the base neural network are updated based on the indication to acquire an updated neural network.

[0337] In S304, the updated neural network is applied in video decoding process.

[0338] Detailed explanation for each operation has been elaborated in foregoing embodiments with regards to the encoding method, and will not be repeated herein for simplicity and clarity.

[0339] Embodiments of the present disclosure have the advantages over existing adaptation techniques including: support for adaptation without training; support for on-line adaptation; reduction of bitrate cost and improvement of image / video quality. Compared with other existing methods that require additional training procedure at the video encoder side, this invention allows adaptation without any need for training. Therefore, it reduces the computational cost required for additional training procedure, suiting more application scenarios, e.g. resource-limited applications. Compared with other existing methods that require additional information from the video encoder to indicate the adaptation, this invention allows adaptation based on a data sample that is currently being processed only.  Therefore, it alleviates the dependency on additional information from the video encoder side and improves decoding robustness, especially in scenarios where transmission packets are lost. Since online adaptation is supported in this invention, no / less additional bitstream is required from the video encoder side to the video decoder side, thus reducing bitrate cost. The neural mapping established by fine-tuning is developed along with the adapted statistical information that represents the characteristics of target data samples only, and it is expected to accurately match the statistical characteristic of a current processing video. This results in improved prediction accuracy and quality of the reconstructed image / video.

[0340] The neural network described may include a projection layer and a normalization layer. The normalization layer is placed preceding or following the projection layer. The projection layer function is implemented as the projection layer, and the normalization function is implemented as the normalization layer. Alternatively, the projection layer function and the normalization layer function may be implemented as a merged projection layer.

[0341] The specific statistical information may include at least one selected from: a central value of input of the normalization layer function of the target data samples; a dispersion of input of the normalization layer function of the target data samples; a distribution shape of input of the normalization layer function of the target data samples; and a ranking relationship of input of the normalization layer of the target data samples.

[0342] The target data samples may include a part of the target video sequence, or the whole target video sequence.

[0343] Embodiments of Neural Network-based Encoding / Decoding Method

[0344] FIG. 11 illustrates a flowchart of a neural network-based encoding / decoding method according to an embodiment of the present disclosure. In this embodiment, the video encoder adapts the rtmning statistics within normalization layer based on target data samples, and then signals adaptation information to the video decoder side. The video decoder receives the adaptation information and then derives a first adapted neural network.

[0345] The process at the video encoder side includes: S401: providing at least one neural network; S402: deriving a set of adaptation parameters based on target data samples; S403: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; and S404: signaling adaptation information indicating the weights update of the first adapted neural network to the video decoder side. The process at the video decoder side includes: S405: providing at least one neural network, wherein the neural nodes in the neural network are equipped with base parameter weights; S406: receiving adaptation information from the video encoder side; S407: deriving a first adapted neural network for the original neural network based on the adaptation information; and S408: decoding a block from a data stream using the first adapted neural network.

[0346] In this embodiment, a first adapted neural network at the video decoder side is derived based  on adaptation information indicating the weights update of the first adapted neural network, and thereby the additional time cost for video decoding is less than the embodiments that derive a set of adaptation parameters to derive the first adapted neural network at the video decoder side.

[0347] FIG. 12 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure. In this embodiment, the video encoder adapts the running statistics within normalization layer based on target data samples, and then signals adaptation information to the video decoder side. The video decoder receives the adaptation information and adapts the running statistics within normalization layer based on both target data samples and adaptation information in order to derive a first adapted neural network at the video decoder side.

[0348] The process at the video encoder side includes: S501: providing at least one neural network; S502: deriving a set of adaptation parameters based on target data samples; S503: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; and S504: signaling adaptation information indicating the derivation of the first adapted neural network to the video decoder side. The process at the video decoder side includes: S505: providing at least one neural network, wherein the neural nodes in the neural network are equipped with base parameter weights; S506: receiving adaptation information from the video encoder side; S507: deriving a set of adaptation parameters based on target data samples and the adaptation information received; S508: deriving a first adapted neural network for the original neural network based on the adaptation information; and S509: decoding a block from a data stream using the first adapted neural network.

[0349] In this embodiment, a first adapted neural network at the video decoder side is derived based on adaptation information indicating the derivation of the first adapted neural network, and thereby the additional bitrate cost for video decoding is expected to be less than the embodiments that require signalling of the adaptation information indicating weights update.

[0350] FIG. 13 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure. In this embodiment, the video encoder or the video decoder adapts the running statistics within normalization layer based on target data samples to derive a first adapted neural network.

[0351] The process includes, at the video encoder or decoder side, S601: providing at least one neural network in which the neural nodes are equipped with base parameters weights; S602: deriving a set of adaptation parameters based on target data samples; S603: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; and S604: encoding a block into a data stream (or decoding a block from a data stream) using the first adapted neural network.

[0352] In this embodiment, a first adapted neural network at the video decoder side is derived based on a set of predefined adaptation parameters, and thereby the additional bitrate cost for video decoding is expected to be less than the embodiments that require signalling of adaptation information.

[0353] FIG. 14 illustrates a flowchart of a neural network-based encoding / decoding method  according to another embodiment of the present disclosure. In this embodiment, the video encoder adapts the running statistics within normalization layer as well as other model parameters, and then signals adaptation information to the video decoder side. The video decoder receives the adaptation information, and then derives a second adapted neural network.

[0354] The process at the video encoder side includes: S701: providing at least one neural network in which the neural nodes are equipped with base parameter weights; S702: deriving a set of adaptation parameters based on target data samples; S703: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; S704: obtaining a second adapted neural network; S705: signaling adaptation information indicating the weights updates of the first adapted neural network and the weights updates of the second adapted neural network to the video decoder side. The process at the video decoder side includes: S706: providing at least one neural network in which the neural nodes are equipped with base parameter weights; S707: receiving adaptation information from the video encoder side; S708: deriving a second adapted neural network for the original neural network based on the adaptation information; and S709: decoding a block from a data stream using the second adapted neural network.

[0355] In this embodiment, the additional time cost for video decoding in embodiment 4a is expected to be less than for embodiments that require deriving a set of adaptation parameters to derive the second adapted neural network at the video decoder side.

[0356] FIG. 15 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure. In this embodiment, the video encoder adapts the running statistics within normalization layer as well as other model parameters, and then signals adaptation information to the video decoder side. The video decoder receives the adaptation information and then adapts the running statistics within normalization layer and then derives a second adapted neural network at the video decoder side.

[0357] The process at the video encoder side includes: S801: providing at least one neural network in which the neural nodes are equipped with base parameter weights; S802: deriving a set of adaptation parameters based on target data samples; S803: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; S804: obtaining a second adapted neural network based on the first adapted neural network; S805: signaling adaptation information indicating the derivation of the first adapted neural network and the weights updates of the second adapted neural network to the video decoder side. The process at the video decoder side includes: S806: providing at least one neural network in which the neural nodes are equipped with base parameter weights; S807: receiving adaptation information from the video encoder side; S808: deriving a set of adaptation parameters based on target data samples; S809: deriving a second adapted neural network for the original neural network based on the set of adaptation parameters; and S810: decoding a block from a data stream using the second adapted neural network.

[0358] FIG. 16 illustrates a flowchart of a neural network-based encoding / decoding method according to another embodiment of the present disclosure. In this embodiment, the video encoder  adapts the running statistics within normalization layer as well as other model parameters, and then signals adaptation information to the video decoder side. The video decoder receives the adaptation information and then adapts the running statistics within normalization layer and then derives a second adapted neural network at the video decoder side.

[0359] The process at the video encoder side includes: S901: providing at least one neural network in which the neural nodes are equipped with base parameter weights; S902: deriving a set of adaptation parameters based on target data samples; S903: deriving a first adapted neural network for the original neural network based on the set of adaptation parameters; S904: obtaining a second adapted neural network based on the first adapted neural network; and S905: signaling adaptation information indicating the weights updates of the second adapted neural network to the video decoder side. The process at the video decoder side includes: S906 providing at least one neural network in which the neural nodes are equipped with base parameter weights; S907: receiving adaptation information from the video encoder side; S908: deriving a set of adaptation parameters based on target data samples; S909: deriving a second adapted neural network for the original neural network based on the set of adaptation parameters; and S910: decoding a block from a data stream using the second adapted neural network.

[0360] The embodiments described with regard to FIGs. 14 to 16, a second adapted neural network at the video decoder side is derived by adjusting more model parameters compared with the first adapted neural network, and thereby the accuracy of output prediction from the second adapted neural network is expected to be higher than the one from the first adapted neural network.

[0361] FIG. 17 conceptually illustrates an apparatus 1000 with which some embodiments of the invention are implemented. The apparatus 1000 may be, but not limited to, an encoding apparatus or a decoding apparatus. The apparatus 1000 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 apparatus 1000 includes a processor 1001 and a memory 1002. The memory 1002 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.

[0362] The processor 1001 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 401.

[0363] 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.

[0364] 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.

[0365] 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.

[0366] The present disclosure further provides a computer readable media 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.

[0367] 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.

[0368] 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.

[0369] 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 method for neural network-based video encoding of a video sequence, comprising:providing a base neural network, wherein the base neural network comprises a projection layer function and a normalization layer function;deriving one or more first adaptation parameters based on target data samples, wherein the one or more first adaptation parameters represent specific statistical information of the target data samples;updating running statistics related to the normalization layer function with the one or more first adaptation parameters to update the base neural network to acquire an updated neural network; andapplying the updated neural network in video encoding process.2.The method of claim 1, further comprising:fine-tuning one or more second adaptation parameters based on the target data samples to further update the base neural network, wherein the one or more second adaptation parameters comprise parameters of the base neural network that differ from the normalization statistics.3.The method of claim 2, wherein the one or more second adaptation parameters comprise one or more affine parameters within the normalization layer function.4.The method of claim 2, wherein the one or more second adaptation parameters comprise one or more projection parameters of the projection layer function.5.The method of claim 2, wherein the one or more second adaptation parameters comprise parameters other than running statistics within the base neural network.6.The method of claim 1,wherein the base neural network comprises a projection layer and a normalization layer;wherein the normalization layer is placed preceding or following the projection layer;wherein the projection layer function is implemented as the projection layer, and the normalization function is implemented as the normalization layer.7.The method of claim 1, wherein the projection layer function and the normalization layer function are implemented as a merged projection layer.8.The method of claim 1, wherein the specific statistical information comprises at least one selected from:a central value of input of the normalization layer function of the target data samples;a dispersion of input of the normalization layer function of the target data samples;a distribution shape of input of the normalization layer function of the target data samples; anda ranking relationship of input of the normalization layer of the target data samples.9.The method of claim 1, wherein the target data samples comprise a part of the target video sequence.10.The method of claim 1, wherein the target data samples comprise the target video sequence.11.The method of claim 1, further comprising:transmitting a first indication indicating weights update of the base neural network to a decoding device to update a corresponding neural network.12.The method of claim 11, wherein the first indication comprises updated weights of the updated neural network.13.The method of claim 11, wherein the first indication comprises a difference between updated weights and base weights.14.The method of claim 11, wherein the first indication comprises a difference between updated weights and previously adapted weights.15.The method of claim 11, wherein the first indication comprises a lookup-table index, wherein the lookup-table index is related to weights update of the base neural network.16.The method of claim 11, wherein the first indication is included in a Supplemental Enhancement Information (SEI) , a header of syntax structure, or a separate code stream.17.The method of claim 1, further comprising:transmitting a second indication indicating normalization adaptation process of the base neural network to a decoding device to update a corresponding neural network.18.The method of claim 17, wherein the second indication comprises at least one of:identifier of type of the target data samples;identifier of type of the specific statistical information;identifier of a scope of the target data samples;identifier of moment of time for target statistics derivation; oridentifier of statistical parameters within normalization layers to be updated.19.The method of claim 17, wherein the second indication is included in a Supplemental Enhancement Information (SEI) , a header of syntax structure, or a specific code stream.20.The method of claim 1, further comprising: transmitting a third indication comprising at least one of:identifier of moment of time to apply the update; oridentifier of resetting updated parameters to a specific status.21.A method for neural network-based video decoding of a video sequence, comprising:determining a base neural network, wherein the base neural network comprises a projection layer function and a normalization layer function;receiving an indication regarding one or more first adaptation parameters from an encoding device, wherein the one or more first adaptation parameters represent specific statistical information of target data samples;updating running statistics of the base neural network based on the indication to acquire an updated neural network; andapplying the updated neural network in video decoding process.22.The method of claim 21, wherein the indication comprises a first indication indicating weights update, wherein the weights update is acquired by updating running statistics related to a normalization layer function of a corresponding neural network of the base neural network with the one or more first adaptation parameters.23.The method of claim 22,wherein the weights update is acquired by:updating running statistics related to a normalization layer function of a corresponding neural network of the base neural network with the one or more first adaptation parameters; andfine-tuning one or more second adaptation parameters based on the target data samples to further updating the corresponding neural network.24.The method of claim 23, wherein the one or more second adaptation parameters comprise one or more affine parameters within the normalization layer function.25.The method of claim 23, wherein the one or more second adaptation parameters comprise one or more projection parameters of the projection layer function.26.The method of claim 23, wherein the one or more second adaptation parameters comprise parameters other than running statistics within the base neural network.27.The method of claim 22, wherein the first indication comprises a difference between updated weights and base weights of the corresponding neural network.28.The method of claim 22, wherein the first indication comprises a difference between updated weights and previously adapted weights of the corresponding neural network.29.The method of claim 22, wherein the first indication comprises a lookup-table index, wherein the lookup-table index is related to weights update of the corresponding neural network.30.The method of claim 21, wherein the indication comprises a second indication indicating normalization adaptation process to update the base neural network.31.The method of claim 30, wherein the second indication comprises at least one of:identifier of type of the target data samples;identifier of type of the specific statistical information;identifier of a scope of the target data samples;identifier of moment of time for target statistics derivation; oridentifier of statistical parameters within normalization layers to be updated.32.The method of claim 21, wherein the base neural network comprises a projection layer and a normalization layer;wherein the normalization layer is placed preceding or following the projection layer;wherein the projection layer function is implemented as the projection layer, and the normalization function is implemented as the normalization layer.33.The method of claim 21, wherein the projection layer function and the normalization layer function are implemented as a merged projection layer.34.The method of claim 21, wherein the specific statistical information comprises at least one selected from:a central value of input of the normalization layer function of the target data samples;a dispersion of input of the normalization layer function of the target data samples;a distribution shape of input of the normalization layer function of the target data samples; anda ranking relationship of input of the normalization layer of the target data samples.35.The method of claim 21, wherein the target data samples comprise a part of the target video sequence.36.The method of claim 21, wherein the target data samples comprise the target video sequence.37.An encoding apparatus, comprising a memory and a processor, wherein the memory is configured to store program instructions that, when executed by the processor, cause the processor to perform an encoding method corresponding to any one of claims 1 to 20.38.A decoding apparatus, comprising a memory and a processor, wherein the memory is configured to store program instructions that, when executed by the processor, cause the processor to perform a decoding method corresponding to any one of claims 21 to 36.39.A computer readable media storing program instructions that, when executed by a processor, cause the processor to perform an encoding method corresponding to any one of claims 1 to 20.40.A computer readable media storing program instructions that, when executed by a processor, cause the processor to perform a decoding method corresponding to any one of claims 21 to 36.

Citation Information

Patent Citations

  • Processing video frames via convolutional neural network using previous frame statistics

    CN113256506A

  • Training rate control neural networks by reinforcement learning

    CN117044199A

  • Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same

    US20200126263A1

  • Apparatus and method with neural network implementation of domain adaptation

    US20210182687A1

  • Self-supervised representation learning using bootstrapped latent representations

    US20210383225A1