System and method for unified reference picture synthesis
The URFS framework addresses data imbalance in neural network-based video coding by generating high-fidelity reference frames using compressed data for training, enhancing VVC inter prediction with a hierarchical structure and incremental learning, thus improving coding efficiency and adaptability.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-02
- Publication Date
- 2026-03-12
AI Technical Summary
Existing neural network-based video coding models face challenges due to data imbalance between compressed input and uncompressed labels, leading to ineffective capture of compression relationships, and incremental learning schemes are not directly applicable to these models.
A lightweight unified reference frame synthesis (URFS) framework with a hierarchical structure and weight-shared flow estimation network, combined with quantization parameters-based incremental learning, generates high-fidelity reference frames from decoded pictures for enhanced inter prediction in VVC coding, using compressed data for training.
The URFS framework effectively captures spatial correlations and adapts to changing environments, improving VVC inter coding performance with reduced model complexity and enhanced fidelity.
Smart Images

Figure CN2024103214_12032026_PF_FP_ABST
Abstract
Description
SYSTEM AND METHOD FOR UNIFIED REFERENCE PICTURE SYNTHESISBACKGROUND
[0001] Embodiments of the present disclosure relate to video coding.
[0002] Digital video has become mainstream and is being used in a wide range of applications including digital television, video telephony, and teleconferencing. These digital video applications are feasible because of the advances in computing and communication technologies as well as efficient video coding techniques. Various video coding techniques may be used to compress video data, such that coding on the video data can be performed using one or more video coding standards. Exemplary video coding standards may include, but not limited to, versatile video coding (H. 266 / VVC) , high-efficiency video coding (H. 265 / HEVC) , advanced video coding (H. 264 / AVC) , moving picture expert group (MPEG) coding, to name a few.SUMMARY
[0003] According to one aspect of the present disclosure, a method of video encoding is provided. The method may include obtaining, by a processor, a first reference picture from a decoded picture buffer. The method may include deriving, by the processor, feature information based on the first reference picture. The method may include deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information. The method may include generating, by the processor, a second reference picture based on the optical flow information. The method may include adding, by the processor, the second reference picture into a reference picture list. The method may include encoding, by the processor, a current picture region based on the reference picture list.
[0004] According to another aspect of the present disclosure, an apparatus for video encoding is provided. The apparatus may include a processor and memory storing instructions. The memory storing instructions, which when executing by the processor, may cause the processor to obtain a first reference picture from a decoded picture buffer. The memory storing instructions, which when executing by the processor, may cause the processor to derive feature information based on the first reference picture. The memory storing instructions, which when executing by the processor, may cause the processor to derive optical flow information by performing weight-sharing flow estimation using the feature information. The memory storing instructions, which when executing by the processor, may cause the processor to generate a second reference picture based on the optical flow information. The memory storing instructions, which when executing by the processor, may cause the processor to add the second reference picture into a reference picture list. The memory storing instructions, which when executing by the processor, may cause the processor to encode a current picture region based on the reference picture list.
[0005] According to a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions for a video encoder is provided. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to obtain a first reference picture from a decoded picture buffer. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to derive feature information based on the first reference picture. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to derive optical flow information by performing weight-sharing flow estimation using the feature information. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to generate a second reference picture based on the optical flow information. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to add the second reference picture into a reference picture list. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to encode a current picture region based on the reference picture list.
[0006] According to still another aspect of the present disclosure, a method of video decoding is provided. The method may include obtaining, by a processor, a first reference picture from a decoded picture buffer. The method may include deriving, by the processor, feature information based on the first reference picture. The method may include deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information. The method may include generating, by the processor, a second reference picture based on the optical flow information. The method may include adding, by the processor, the second reference picture into a reference picture list. The method may include decoding, by the processor, a current picture region based on the reference picture list.
[0007] According to yet a further aspect of the present disclosure, an apparatus for video decoding is provided. The apparatus may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a first reference picture from a decoded picture buffer. The memory storing instructions, which when executed by the processor, may cause the processor to derive feature information based on the first reference picture. The memory storing instructions, which when executed by the processor, may cause the processor to derive optical flow information by performing weight-sharing flow estimation using the feature information. The memory storing instructions, which when executed by the processor, may cause the processor to generate a second reference picture based on the optical flow information. The memory storing instructions, which when executed by the processor, may cause the processor to add the second reference picture into a reference picture list. The memory storing instructions, which when executed by the processor, may cause the processor to decode a current picture region based on the reference picture list.
[0008] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions or a video decoder is provided. The instructions, which when executed by a processor of a video decoder, may cause the processor of the video decoder to obtain a first reference picture from a decoded picture buffer. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to derive feature information based on the first reference picture. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to derive optical flow information by performing weight-sharing flow estimation using the feature information. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder generate a second reference picture based on the optical flow information. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder add the second reference picture into a reference picture list. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder decode a current picture region based on the reference picture list.
[0009] These illustrative embodiments are mentioned not to limit or define the present disclosure, but to provide examples to aid understanding thereof. Additional embodiments are described in the Detailed Description, and further description is provided there.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate embodiments of the present disclosure and, together with the description, further serve to explain the principles of the present disclosure and to enable a person skilled in the pertinent art to make and use the present disclosure.
[0011] FIG. 1 illustrates a block diagram of an exemplary video codec system, according to some embodiments of the present disclosure.
[0012] FIG. 2A illustrates a block diagram of an exemplary encoding apparatus, according to some embodiments of the present disclosure.
[0013] FIG. 2B illustrates a block diagram of an exemplary decoding apparatus, according to some embodiments of the present disclosure.
[0014] FIG. 3 illustrates a detailed block diagram of an exemplary video-coding framework that includes a lightweight unified reference frame synthesis (URFS) network, according to some embodiments of the present disclosure.
[0015] FIG. 4 illustrates a detailed block diagram of image-feature pyramids network of the URFS network of FIG. 3, according to some embodiments of the present disclosure.
[0016] FIG. 5A illustrates a detailed block diagram of weight-sharing flow network of the URFS network of FIG. 3, according to some embodiments of the present disclosure.
[0017] FIG. 5B illustrates a diagram of a neural network structure for flow estimation blocks in FIG. 5A, according to some embodiments of the present disclosure.
[0018] FIG. 6 illustrates an exemplary U-net architecture that may be used for feature enhancer and picture synthesizer of FIG. 5A, according to some embodiments of the present disclosure.
[0019] FIG. 7 is a diagram of an exemplary quantization parameter (QP) -incremental learning (QPIL) training strategy for neural network coding models, according to some embodiments of the present disclosure.
[0020] FIG. 8A is a table illustrating the delta (BD) -rates of URFS network in terms of peak signal-to-noise ratio (PSNR) , when compared to the anchor under random access (RA) and low delay B (LDB) configurations, according to some embodiments of the present disclosure.
[0021] FIG. 8B is a table illustrating the average BD-rate (%) results on all test sequences under RA configuration in terms of PSNR, according to some embodiments of the present disclosure.
[0022] FIG. 8C is a table illustrating the average BD-rate (%) on all test sequences under LDB configuration in terms of PSNR, according to some embodiments of the present disclsoure.
[0023] FIG. 8D is a table illustrating a complexity comparison between existing Deep Reference Field Generation (DRF) method and the proposed URFS, according to some embodiments of the present disclosure.
[0024] FIG. 9 illustrates a flow chart of an exemplary method of video encoding, according to some embodiments of the present disclosure.
[0025] FIG. 10 illustrates a flow chart of an exemplary method of video encoding, according to some embodiments of the present disclosure.
[0026] Embodiments of the present disclosure will be described with reference to the accompanying drawings.DETAILED DESCRIPTION
[0027] Although some configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the pertinent art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the present disclosure. It will be apparent to a person skilled in the pertinent art that the present disclosure can also be employed in a variety of other applications.
[0028] It is noted that references in the specification to “one embodiment, ” “an embodiment, ” “an example embodiment, ” “some embodiments, ” “certain embodiments, ” etc. , indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of a person skilled in the pertinent art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0029] In general, terminology may be understood at least in part from usage in context. For example, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms, such as “a, ” “an, ” or “the, ” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.
[0030] Various aspects of video coding systems will now be described with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various modules, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends upon the particular application and design constraints imposed on the overall system.
[0031] The techniques described herein may be used for various video coding applications. As described herein, video coding includes both encoding and decoding a video. Encoding and decoding of a video can be performed by the unit of block. For example, an encoding / decoding process such as transform, quantization, prediction, in-loop filtering, reconstruction, or the like may be performed on a coding block, a transform block, or a prediction block. As described herein, a block to be encoded / decoded will be referred to as a “current block. ” For example, the current block may represent a coding block, a transform block, or a prediction block according to a current encoding / decoding process. In addition, it is understood that the term “unit” used in the present disclosure indicates a basic unit for performing a specific encoding / decoding process, and the term “block” indicates a sample array of a predetermined size. Unless otherwise stated, the “block, ” “unit, ” and “component” may be used interchangeably.
[0032] Over the past decade, deep neural networks (DNNs) with powerful nonlinear representation capabilities have achieved remarkable results in both high-level and low-level vision tasks. Inevitably, image and video coding based on DNNs have received attention from academia and industry. From 2020, the Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC29 has established a dedicated group Ad-Hoc Group 11 (AHG11) to explore new promising NNVC technologies. NNVC can be divided into two main categories, namely NN-based coding models integrated in traditional codecs and end-to-end compression frameworks built entirely on DNNs. However, when training these NN-based coding models, e.g., such as intra / inter prediction, reference picture resampling, in-loop filters, and post-processing, almost all existing approaches take compressed data as the input of the model, and then use uncompressed raw data as labels (e.g., ground truth) to constrain the output of the model. However, due to the compression artifacts in the input data and without any distortions in the label data, there is a disparity and data imbalance between the input and the label. In addition, the network cannot effectively capture the compression relationship between the compressed input and uncompressed label.
[0033] Learning, accumulating, and applying knowledge are fundamental skills for humans to adapt to dynamic environments. With the widespread development of artificial intelligence (AI) , people have been exploring ways to provide intelligent systems with the ability of continual learning. In recent years, incremental learning (IL) (also called “continual learning” ) methods have been extensively studied in the fields of image classification and semantic segmentation, with the main goal of overcoming critical challenges of machine learning and deep learning on new datasets. IL allows the networks to gradually receive new data for learning and fine-tune the entire model so that the networks continuously update their knowledge and achieve high performance. Unfortunately, most of the IL schemes mentioned above involve class-based incremental learning and, therefore, cannot be directly extended to the NN-based coding models.
[0034] To overcome these and other challenges, the present disclosure provides a lightweight unified reference frame synthesis (URFS) framework for VVC inter prediction enhancement. In terms of the model complexity, the lightweight URFS only has 1.94M parameters with 727kMAC / pixel. The lightweight URFS framework described herein generates a high-fidelity reference frame from two reconstructed frames in the decoded picture buffer (DPB) by learning to refine optical flow and fuse warped features. The generated frame is inserted into the reference picture lists (RPL) and regarded as a candidate reference frame to enhance the performance of VVC inter coding.
[0035] To effectively capture the spatial correlation of the input frames and adapt the proposed network to the change in the receptive field, the present disclosure presents a twofold hierarchical structure based on image-feature pyramids (IFP) . For instance, image-level pyramids are generated via bicubic downsampling, and then the images at three scales are fed into their corresponding multi-scale feature extractors to generate feature-level pyramids. To predict effective motion information between input frames, a weight-shared flow estimation (WSFE) network is proposed, which utilizes multi-level feature pyramids to iteratively refine optical flow in a coarse-to-fine manner. Since the flow estimation network shares trainable parameters, they can be continually learned within the same epoch and can adapt to the features of different resolutions to achieve effective modeling of large-scale motion.
[0036] Still further, the present disclosure proposes a quantization parameters-based incremental learning (QPIL) technique for network training, which is not limited to the reference frame generation task disclosed herein, but can be easily extended to the training process for other neural network-based video coding (NNVC) tasks. For instance, the techniques described herein first shift the previous training idea for NN-based video coding models and use compressed data with less compression distortion instead of uncompressed data as label for training. Secondly, the QPIL technique performs a three-stage progressive training process based on an offline incremental learning strategy that gradually adds datasets with different QPs classes to refine and fine-tune the proposed URFS network.
[0037] FIG. 1 is a block diagram of a video codec system, according to some embodiments of the present disclosure.
[0038] The video codec system, according to an embodiment, may include an encoding apparatus 10 and a decoding apparatus 20. The encoding apparatus 10 may deliver encoded video and / or picture information or data to the decoding apparatus 20 in the form of a file or streaming via a digital storage medium or network.
[0039] The encoding apparatus 10, according to an embodiment, may include a video source generator 11, an encoding unit 12, and a transmitter 13. The decoding apparatus 20, according to an embodiment, may include a receiver 21, a decoding unit 22, and a renderer 23. The encoding unit 12 may be called a video / picture encoding unit, and the decoding unit 22 may be called a video / picture decoding unit. The transmitter 13 may be included in the encoding unit 12.The receiver 21 may be included in the decoding unit 22. The renderer 23 may include a display, and the display may be configured as a separate device or an external component.
[0040] The video source generator 11 may acquire a video / picture through a process of capturing, synthesizing, or generating the video / picture. The video source generator 11 may include a video / picture capture device and / or a video / picture generating device. The video / picture capture device may include, for example, one or more cameras, video / picture archives including previously captured video / pictures, and the like. The video / picture-generating device may include, for example, computers, tablets, and smartphones, and may (electronically) generate video / pictures. For example, a virtual video / picture may be generated through a computer or the like. In this case, the video / picture capturing process may be replaced by a process of generating related data.
[0041] The encoding unit 12 may encode an input video / picture. The encoding unit 12 may perform a series of procedures such as prediction, transform, and quantization for compression and coding efficiency. The encoding unit 12 may output encoded data (encoded video / picture information) in the form of a bitstream.
[0042] The transmitter 13 may transmit the encoded video / picture information or data output in the form of a bitstream to the receiver 21 of the decoding apparatus 20 through a digital storage medium or a network in the form of a file or streaming. The digital storage medium may include various storage mediums such as universal serial bus (USB) , secure digital (SD) , compact disc (CD) , digital video disc (DVD) , Blu-ray, hard disk drive (HDD) , solid-state drive (SSD) , and the like. The transmitter 13 may include an element for generating a media file through a predetermined file format and may include an element for transmission through a broadcast / communication network. The receiver 21 may extract / receive the bitstream from the storage medium or network and transmit the bitstream to the decoding unit 22.
[0043] The decoding unit 22 may decode the video / picture by performing a series of procedures such as dequantization, inverse transform, and prediction corresponding to the operation of the encoding unit 12.
[0044] The renderer 23 may render the decoded video / picture. The rendered video / picture may be displayed through the display.
[0045] FIG. 2A is a schematic block diagram of an encoding apparatus, in accordance with some aspects of the present disclosure. Referring to FIG. 2A, the encoding apparatus 200 includes a picture partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 251, a filter 261, and a memory 271. The predictor 220 may include an inter predictor 221 and an intra predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 251 may be called a reconstructor or a reconstructed block generator. The picture partitioner 210, the predictor 220, the residual processor 230, the entropy encoder 240, the adder 251, and the filter 261 may be configured by at least one hardware component (e.g., an encoder chipset or processor) , according to an embodiment. In addition, the memory 271 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium. The hardware component may further include the memory 271 as an internal / external component.
[0046] The picture partitioner 210 may partition an input picture (or a picture or a frame) input to the encoding apparatus 200 into one or more processors. For example, the processor may be called a coding unit (CU) . In this case, the coding unit may be recursively partitioned according to a quad-tree binary-tree ternary-tree (QTBTTT) structure from a coding tree unit (CTU) or a largest coding unit (LCU) . For example, one coding unit may be partitioned into a plurality of coding units of a deeper depth based on a quad tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad tree structure may be applied first, and the binary tree structure and / or ternary structure may be applied later. Alternatively, the binary tree structure may be applied first. The coding procedure according to this invention may be performed based on the final coding unit that is no longer partitioned. In this case, the largest coding unit may be used as the final coding unit based on coding efficiency according to picture characteristics, or if necessary, the coding unit may be recursively partitioned into coding units of deeper depth, and a coding unit having an optimal size may be used as the final coding unit. Here, the coding procedure may include a procedure of prediction, transform, and reconstruction, which will be described later. As another example, the processor may further include a prediction unit (PU) or a transform unit (TU) . In this case, the prediction unit and the transform unit may be split or partitioned from the aforementioned final coding unit. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
[0047] The unit may be used interchangeably with terms such as block or area in some cases. In a general case, an M×N block may represent a set of samples or transform coefficients composed of M columns and N rows. A sample may generally represent a pixel or a value of a pixel, may represent only a pixel / pixel value of a luma component or represent only a pixel / pixel value of a chroma component. A sample may be used as a term corresponding to one picture (or picture) for a pixel or a pel.
[0048] In the encoding apparatus 200, a prediction signal (predicted block, prediction sample array) output from the inter predictor 221 or the intra predictor 222 is subtracted from an input picture signal (original block, original sample array) to generate a residual signal residual block, residual sample array) , and the generated residual signal is transmitted to the transformer 232. In this case, as shown, a unit for subtracting a prediction signal (predicted block, prediction sample array) from the input picture signal (original block, original sample array) in the encoding apparatus 200 may be called a subtractor 231. The predictor may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The predictor may determine whether intra prediction or inter prediction is applied on a current block or CU basis. As described later in the description of each prediction mode, the predictor may generate various information related to prediction, such as prediction mode information, and transmit the generated information to the entropy encoder 240. The information on the prediction may be encoded in the entropy encoder 240 and output in the form of a bitstream.
[0049] The intra predictor 222 may predict the current block by referring to the samples in the current picture. The referred samples may be located in the neighborhood of the current block or may be located apart according to the prediction mode. In the intra prediction, prediction modes may include a plurality of non-directional modes and a plurality of directional modes. The non-directional mode may include, for example, a DC mode and a planar mode. The directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of detail of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra predictor 222 may determine the prediction mode applied to the current block by using a prediction mode applied to a neighboring block.
[0050] The inter predictor 221 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. Here, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between the neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc. ) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a co-located CU (colCU) , and the like, and the reference picture including the temporal neighboring block may be called a collocated picture (colPic) . For example, the inter predictor 221 may configure a motion information candidate list based on neighboring blocks and generate information indicating which candidate is used to derive a motion vector and / or a reference picture index of the current block. Inter prediction may be performed based on various prediction modes. For example, in the case of a skip mode and a merge mode, the inter predictor 221 may use motion information of the neighboring block as motion information of the current block. In the skip mode, unlike the merge mode, the residual signal may not be transmitted. In the case of the motion vector prediction (MVP) mode, the motion vector of the neighboring block may be used as a motion vector predictor, and the motion vector of the current block may be indicated by signaling a motion vector difference.
[0051] The predictor 220 may generate a prediction signal based on various prediction methods described below. For example, the predictor may not only apply intra prediction or inter prediction to predict one block but also simultaneously apply both intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP) . In addition, the predictor may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content picture / video coding of a game or the like, for example, screen content coding (SCC) . The IBC basically performs prediction in the current picture but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, the IBC may use at least one of the inter prediction techniques described in the present disclosure. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information on the palette table and the palette index.
[0052] The prediction signal generated by the predictor (including the inter predictor 221 and / or the intra predictor 222) may be used to generate a reconstructed signal or to generate a residual signal. The transformer 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include at least one of a discrete cosine transform (DCT) , a discrete sine transform (DST) , a karhunen-loève transform (KLT) , a graph-based transform (GBT) , or a conditionally non-linear transform (CNT) . Here, the GBT means transform obtained from a graph when relationship information between pixels is represented by the graph. The CNT refers to the transform generated based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to square pixel blocks having the same size or may be applied to blocks having a variable size rather than a square.
[0053] The quantizer 233 may quantize the transform coefficients and transmit them to the entropy encoder 240, and the entropy encoder 240 may encode the quantized signal (information on the quantized transform coefficients) and output a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange block type quantized transform coefficients into a one-dimensional vector form based on a coefficient scanning order and generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information on transform coefficients may be generated. The entropy encoder 240 may perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC) , context-adaptive binary arithmetic coding (CABAC) , and the like. The entropy encoder 240 may encode information necessary for video / picture reconstruction other than quantized transform coefficients (e.g., values of syntax elements, etc. ) together or separately. Encoded information (e.g., encoded video / picture information) may be transmitted or stored in units of NALs (network abstraction layer) in the form of a bitstream. The video / picture information may further include information on various parameter sets, such as an adaptation parameter set (APS) , a picture parameter set (PPS) , a sequence parameter set (SPS) , or a video parameter set (VPS) . In addition, the video / picture information may further include general constraint information. In the present disclosure, information and / or syntax elements transmitted / signaled from the encoding apparatus to the decoding apparatus may be included in video / picture information. The video / picture information may be encoded through the above-described encoding procedure and included in the bitstream. The bitstream may be transmitted over a network or may be stored in a digital storage medium. The network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like. A transmitter (not shown) transmitting a signal output from the entropy encoder 240 and / or a storage unit (not shown) storing the signal may be included as internal / external element of the encoding apparatus 200, and alternatively, the transmitter may be included in the entropy encoder 240.
[0054] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, the residual signal (residual block or residual samples) may be reconstructed by applying dequantization and inverse transform to the quantized transform coefficients through the dequantizer 234 and the inverse transformer 235. The adder 251 adds the reconstructed residual signal to the prediction signal output from the inter predictor 221 or the intra predictor 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) . If there is no residual for the block to be processed, such as in a case where the skip mode is applied, the predicted block may be used as the reconstructed block. The adder 251 may be called a reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture and may be used for inter prediction of the next picture through filtering as described below.
[0055] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied during picture encoding and / or reconstruction.
[0056] The filter 261 may improve subjective / objective picture quality by applying filtering to the reconstructed signal. For example, the filter 261 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 271, specifically, a DPB of the memory 271. The various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like. The filter 261 may generate various information related to the filtering and transmit the generated information to the entropy encoder 240, as described later in the description of each filtering method. The information related to the filtering may be encoded by the entropy encoder 240 and output in the form of a bitstream.
[0057] The modified reconstructed picture transmitted to the memory 271 may be used as the reference picture in the inter predictor 221. When the inter prediction is applied through the encoding apparatus, prediction mismatch between the encoding apparatus 200 and the decoding apparatus 250 may be avoided, and encoding efficiency may be improved.
[0058] The DPB of the memory 271 DPB may store the modified reconstructed picture for use as a reference picture in the inter predictor 221. The memory 271 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the blocks in the picture that have already been reconstructed. The stored motion information may be transmitted to the inter predictor 221 and used as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 271 may store reconstructed samples of reconstructed blocks in the current picture and may transfer the reconstructed samples to the intra predictor 222.
[0059] FIG. 2B is a schematic block diagram of a decoding, in accordance with some embodiments of the present disclosure.
[0060] Referring to FIG. 2B, the decoding apparatus 250 may include an entropy decoder 270, a residual processor 252, a predictor 258, an adder 264, a filter 266, and a memory 268. The predictor 258 may include an inter predictor 260 and an intra predictor 262. The residual processor 252 may include a dequantizer 254 and an inverse transformer 256. The entropy decoder 270, the residual processor 252, the predictor 258, the adder 264, and the filter 266 may be configured by a hardware component (e.g., a decoder chipset or a processor) according to an embodiment. In addition, the memory 268 may include a decoded picture buffer (DPB) or may be configured by digital storage.
[0061] When a bitstream including video / picture information is input, the decoding apparatus 250 may reconstruct a picture corresponding to a process in which the video / picture information is processed in the encoding apparatus of FIG. 2A. For example, the decoding apparatus 250 may derive units / blocks based on block partition-related information obtained from the bitstream. The decoding apparatus 250 may perform decoding using a processor applied in the encoding apparatus. Thus, the processor of decoding may be a coding unit, for example, and the coding unit may be partitioned according to a quad tree structure, binary tree structure and / or ternary tree structure from the coding tree unit or the largest coding unit. One or more transform units may be derived from the coding unit. The input picture data signal decoded and output through the decoding apparatus 250 may be reproduced through a reproducing apparatus.
[0062] The decoding apparatus 250 may receive a signal output from the encoding apparatus of FIG. 2A in the form of a bitstream, and the received signal may be decoded through the entropy decoder 270. For example, the entropy decoder 270 may parse the bitstream to derive information (e.g., video / picture information) necessary for picture reconstruction (or picture reconstruction) . The video / picture information may further include information on various parameter sets, such as an adaptation parameter set (APS) , a picture parameter set (PPS) , a sequence parameter set (SPS) , or a video parameter set (VPS) . In addition, the video / picture information may further include general constraint information. The decoding apparatus may further decode picture based on the information on the parameter set and / or the general constraint information. Signaled / received information and / or syntax elements described later in the present disclosure may be decoded by the decoding procedure and obtained from the bitstream. For example, the entropy decoder 270 decodes the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output syntax elements required for picture reconstruction and quantized values of transform coefficients for residual. More specifically, the CABAC entropy decoding method may receive a bin corresponding to each syntax element in the bitstream, determine a context model using a decoding target syntax element information, decoding information of a decoding target block or information of a symbol / bin decoded in a previous stage, and perform an arithmetic decoding on the bin by predicting a probability of occurrence of a bin according to the determined context model, and generate a symbol corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for a context model of the next symbol / bin after determining the context model. The information related to the prediction among the information decoded by the entropy decoder 270 may be provided to the predictor (the inter predictor 260 and the intra predictor 262) , and the residual value on which the entropy decoding was performed in the entropy decoder 270, that is, the quantized transform coefficients and related parameter information, may be input to the residual processor 252. The residual processor 252 may derive the residual signal (the residual block, the residual samples, and the residual sample array) . In addition, information on filtering among information decoded by the entropy decoder 270 may be provided to the filter 266. Meanwhile, a receiver (not shown) for receiving a signal output from the encoding apparatus may be further configured as an internal / external element of the decoding apparatus 250, or the receiver may be a component of the entropy decoder 270. Meanwhile, the decoding apparatus in the present disclosure may be referred to as a video / picture / picture decoding apparatus, and the decoding apparatus may be classified into an information decoder (video / picture / picture information decoder) and a sample decoder (video / picture / picture sample decoder) . The information decoder may include the entropy decoder 270, and the sample decoder may include at least one of the dequantizer 254, the inverse transformer 256, the adder 264, the filter 266, the memory 268, the inter predictor 260, and the intra predictor 262.
[0063] The dequantizer 254 may dequantize the quantized transform coefficients and output the transform coefficients. The dequantizer 254 may rearrange the quantized transform coefficients in the form of a two-dimensional block form. In this case, the rearrangement may be performed based on the coefficient scanning order performed in the encoding apparatus. The dequantizer 254 may perform dequantization on the quantized transform coefficients by using a quantization parameter (e.g., quantization step size information) and obtain transform coefficients.
[0064] The inverse transformer 256 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array) .
[0065] The predictor may perform prediction on the current block and generate a predicted block including prediction samples for the current block. The predictor may determine whether intra prediction or inter prediction is applied to the current block based on the information on the prediction output from the entropy decoder 270 and may determine a specific intra / inter prediction mode.
[0066] The predictor 258 may generate a prediction signal based on various prediction methods described below. For example, the predictor may not only apply intra prediction or inter prediction to predict one block but also simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP) . In addition, the predictor may be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content picture / video coding of a game or the like, for example, screen content coding (SCC) . The IBC basically performs prediction in the current picture but may be performed similarly to inter prediction in that a reference block is derived in the current picture. That is, the IBC may use at least one of the inter prediction techniques described in this document. The palette mode may be considered an example of intra coding or intra prediction. When the palette mode is applied, a sample value within a picture may be signaled based on information on the palette table and the palette index.
[0067] The intra predictor 262 may predict the current block by referring to the samples in the current picture. The referred samples may be located in the neighborhood of the current block or may be located apart according to the prediction mode. In the intra prediction, prediction modes may include a plurality of nondirectional modes and a plurality of directional modes. The intra predictor 262 may determine the prediction mode applied to the current block by using a prediction mode applied to a neighboring block.
[0068] The intra predictor 262 may predict the current block by referring to the samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located apart according to the prediction mode. In intra prediction, prediction modes may include a plurality of nondirectional modes and a plurality of directional modes. The intra predictor 262 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
[0069] The inter predictor 260 may derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between the neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc. ) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. For example, the inter predictor 260 may configure a motion information candidate list based on neighboring blocks and derive a motion vector of the current block and / or a reference picture index based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information on the prediction may include information indicating a mode of inter prediction for the current block.
[0070] The adder 264 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the obtained residual signal to the prediction signal (predicted block, predicted sample array) output from the predictor (including the inter predictor 260 and / or the intra predictor 262) . If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as the reconstructed block.
[0071] The adder 264 may be called reconstructor or a reconstructed block generator. The generated reconstructed signal may be used for intra prediction of the next block to be processed in the current picture, may be output through filtering as described below, or may be used for inter prediction of the next picture.
[0072] Meanwhile, luma mapping with chroma scaling (LMCS) may be applied in the picture decoding process.
[0073] The filter 266 may improve subjective / objective picture quality by applying filtering to the reconstructed signal. For example, the filter 266 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture and store the modified reconstructed picture in the memory 268, specifically, a DPB of the memory 268. The various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
[0074] The (modified) reconstructed picture stored in the DPB of the memory 268 may be used as a reference picture in the inter predictor 260. The memory 268 may store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the blocks in the picture that have already been reconstructed. The stored motion information may be transmitted to the inter predictor 221 so as to be utilized as the motion information of the spatial neighboring block or the motion information of the temporal neighboring block. The memory 268 may store reconstructed samples of reconstructed blocks in the current picture and transfer the reconstructed samples to the intra predictor 262.
[0075] In the present disclosure, the embodiments described in the filter 261, the inter predictor 221, and the intra predictor 222 of the encoding apparatus 200 may be the same as or respectively applied to correspond to the filter 266, the inter predictor 260, and the intra predictor 262 of the decoding apparatus 250. The same may also apply to the inter predictor 260 and the intra predictor 262.
[0076] Reference frame generation (RFG) techniques for traditional video codecs are one of the representative components of NN-based coding models or tools. RFG aims to generate new reference frames for inter prediction from previously decoded frames in a video sequence with motion information between adjacent frames. NN-based RFG has become one of the core modules of JVET NNVC in the cross-validation and optimization stages. As mentioned above, the present disclosure provides an exemplary RFG technique based on neural networks to fully verify the effectiveness of the proposed QPIL.
[0077] Moreover, the present disclosure provides a lightweight URFS framework based on image-feature pyramids and weight-shared flow estimation, as described below in connection to FIG. 3.
[0078] FIG. 3 illustrates a detailed block diagram of an exemplary video-coding apparatus 300 that includes a lightweight URFS framework, according to some embodiments of the present disclosure. As shown in FIG. 3, video-coding apparatus 300 may include, e.g., a transformation unit 302, a quantizer 304, an entropy coding unit 306, a scaling unit 308, an in-loop filter unit 312, a decoded-picture buffer (DPB) 314, a lightweight URFS network 316 (referred to hereinafter as “URFS network 316” ) , an inter-prediction unit 318, an intra-prediction unit 326, an adder / subtractor 340, and an adder / subtractor 350. The inter-prediction unit 318 may include, e.g., a reference-picture list (RPL) 320, a motion estimation unit 322, and a motion compensation unit 324. For ease of description, video-coding apparatus 300 will be described as an encoding apparatus. However, video-coding apparatus 300 may be a decoding apparatus. When implemented as a decoding apparatus, quantizer 304 may be an inverse quantizer, and transformer 302 may be an inverse transformer. Each of the units or components in FIG. 3 may correspond to one of the units or components described above in connection with FIGs. 2A or 2B.
[0079] Referring to FIG. 3, URFS network 316 takes two previously decoded pictures from the DPB 314 and learns to interpolate (RA configuration) or extrapolate (LDB configuration) a new reference picture (e.g., output picture 325) . The new reference picture is inserted into the RPL 320 for the subsequent inter prediction.
[0080] UFRS network 316 has a unified architecture with the same network for RA and LDB configurations in VVC. Since the motion estimation unit 322 in VVC has not been modified, there is no need to add any additional information to the bitstream. For RA configuration, VVC employs a hierarchical coding structure, where video pictures are divided into distinct temporal layers. When the temporal distance between pictures is unduly long, NN-based motion estimators cannot generate accurate optical flow, thus resulting in the frame synthesis failure. Similar to DRF, URFS network 316 only handles pictures that are located in coding temporal layer {4, 5, 6} . For the LDB configuration, VVC compresses video pictures according to the display order. Therefore, when VVC first encodes two video frames in the display order, URFS network is activated to generate subsequent reference pictures.
[0081] URFS network 316 may be integrated into VVC / H. 266. For the model complexity, URFS network 316 only has 1.94M parameters and a multiply-accumulate operation of 727kMAC / pixel. For instance, URFS network is integrated in VTM11.0-NNVC4.0 between DPB 314 and RPL 320. URFS network takes two previously decoded frames from DPB and learns to interpolate (e.g., RA configuration) or extrapolate (e.g., LDB configuration) a new reference picture, which will be inserted into RPL 320 to enhance subsequent motion estimation (ME) and motion compensation (MC) . As shown in FIG. 3, URFS network 316 can be divided into three main parts: 1) image-feature pyramids network 311, 2) weight-sharing flow estimation network 313, enhancement / generation network 315 (e.g., including feature enhancer 330 and picture synthesizer 332) . Firstly, a three-layer image pyramid (e.g., 317a, 317b, 316c) via bicubic downsampling, which is then fed at three factors into their corresponding multi-scale feature extractors (e.g., 5-level feature extractor 320a, 4-level feature extractor 320b, 3-level feature extractor 320c) to generate three feature-level pyramids. Weight-sharing flow estimation network 313 learns to refine optical flows in a coarse-to-fine manner. Since weight-sharing flow estimation network 313 shares parameters, the weights and biases can be continually trained more times within the same epoch and can adapt to the features of different resolutions to achieve effective modeling of large-scale motion. Finally, feature enhancer 330 and picture synthesizer 332, which utilizes U-net as the basic backbone, are used to enhance temporal alignment features based on backward warping by residual learning and then concatenate the enhanced features to synthesize a high-quality reference picture (e.g., output picture 325) .
[0082] FIG. 4 illustrates a detailed block diagram 400 of image-feature pyramids network 311 of the URFS network 316 of FIG. 3, according to some embodiments of the present disclosure.
[0083] Referring to FIG. 4, the present disclosure provides an image-feature pyramids (IFP) structure, as shown in Table. 1. The present disclosure builds not only multiple feature-level pyramids but also an image-level pyramid. First, a three-layer image-level pyramid (or four-layer image-level pyramid, five-layer image-level feature pyramid, six-layer image-level pyramid, etc. ) is generated for the two input decoded frames via bicubic downsampling. Since the image downsampling stage only uses the traditional bicubic interpolation technique, no additional learning parameters are required, thus providing a significant reduction in complexity. Taking these three pairs of images (or four pairs, five pairs, etc. ) , different resolutions are fed into their corresponding multi-scale feature extractors (e.g., 5-level feature extractor 320a, 4-level feature extractor 320b, 3-level feature extractor, etc. ) that are stacked by 3×3 convolutional layers to generate three feature-level pyramids. Among them, downsampling is performed using convolutional layers with stride of 2. Although the spatial features are downsampled 16 times, the number of channels is maintained at 48.
[0084] Table 1, shown below, illustrates all output results of image-feature pyramid network 311. Among them, l represents the level of the image pyramid, and i, j, and k are defined as the levels of the corresponding feature pyramids, respectively. For RA and LDB configurations, the previous or future timestamp n are {t-1, t+1} and {t-2, t-1} , where t is the current timestamp.
[0085] Table 1: Image-Feature Pyramids Structure
[0086] Referring again to FIG. 3, image-feature pyramids network 311 generates image-level pyramids and feature-level pyramids, which collectively may overcome the challenges of large-scale motion while reducing computational complexity. For instance, image-feature pyramids network 301 may receive a pair of input pictures associated with a first resolution, which may be used as a first image-pyramid pair 317a. Bicubic downsampling of first image-pyramid pair 317a may be performed to obtain a second image-pyramid pair 317b of a second resolution lower than the first resolution. Bicubic downsampling of the second image-pyramid pair 317b may be performed to obtain a third image-pyramid pair 317c, and so on. For ease of illustration and depiction, only image-pyramid pairs of levels 5, 4, and 3 are shown and described in connection with FIG. 3. However, in practice, levels 5-1 may be implemented by image-feature pyramids network 311. Also, more or fewer than five levels may be implemented by image-feature pyramids network 311 without departing from the scope of the present disclosure.
[0087] Still referring to FIG. 3, each image-pyramid level may have a corresponding feature extractor configured to generate feature maps from its image-pyramids. The feature maps generated at each level may have the same resolution. For instance, the 5-level feature extractor 320a may generate a first set of feature maps 321a from first image-pyramid pair 317a, the 4-level feature extractor 320b may generate a second set of feature maps 321b from second image-pyramid pair 317b, and the 3-level feature extractor 320c may generate a third set of feature maps 321c from third image-pyramid pair 317c. First set of feature maps 321a, second set of feature maps 321b, and third set of feature maps 321c may be input into weight-sharing flow estimation network 313.
[0088] FIG. 5A illustrates a detailed block diagram of weight-sharing flow estimation network 313 of the URFS network 316 of FIG. 3, according to some embodiments of the present disclosure.
[0089] Referring to FIG. 5A, after extraction, multiple feature pyramids are used to compute flows at each level of the pyramid. Weight-sharing flow estimation network 313 (e.g., an optical flow estimation network) adopts residual learning to progressively refine the optical flows from coarse-to-fine granularity, using flow estimation units. Each flow estimation unit may include a flow estimation block (FEB) (e.g., a flow estimation block1 (FEB1) 502 or a flow estimation block2 (FEB2) 508) , a warping block 504, and a summation block 506. The first flow estimation unit may only include FEB1 502, which uses a first set of weights and biases 510a for flow estimation. FEB1 504 in the last flow estimation unit may use a fourth set of weights and biases 510d for flow estimation. All other FEB1 504 in weight-sharing flow estimation network 313 may share a second set of weights and biases 510b. Each FEB2 508 may share a third set of weights and biases 510c.
[0090] To achieve a lightweight network, apart from the first and last flow estimation networks, the remaining networks used to calculate optical flows between feature pyramids share learnable parameters. For network, we take the coarsest features and time flag tas inputs to generate the coarsest-grained optical flows and intermediate feature according to equation (1) :
[0091] where the time flag t is used to distinguish models under RA and LDB configurations, and is set to 0.5 and 2 during training, respectively. C (·) represents the concatenating operation of multiple tensors.
[0092] Next, the weight-sharing flow estimation networks, and use the outputs of flow estimation networks and the input features of the corresponding level as inputs to generate more refined optical flows and intermediate features. is represented according to equations (2) and (3) .
[0093] (2) ; and
[0094] where j=i-1 (i=4, 3, 2, 1) in equations (2) and (3) , W (·) is defined as the backward warping operation based on bilinear resample, and (·) ×2 is a bilinear upsampling. The progressive process of is similar to but there is no upsampling operation in For the finest features level, the last flow estimation network only outputs the final optical flows with maximum resolution according to equation (4) :
[0095] Through such a progressive-recursive manner, weight-sharing flow estimation network 313 predicts accurate optical flows in large-scale motion scenes and high-resolution videos such as 1080p and 2K. In addition, compared with independent trainable parameters between each FEB, weight-sharing flow estimation network 313 can be iteratively trained more times on spatial features with different resolutions and effectively utilize statistical information in the data, thereby achieving adaptive resolution and improving the generalization ability of the model.
[0096] Referring to FIG. 5A, the weight-sharing flow estimation network 313 predicts the bidirectional flows at feature levels with the same resolution, and progressively estimates and upsample the flows at feature levels at different resolutions. Overall, the weight-sharing flow estimation network 313 learns residual optical flow vectors and continuously adds them together. For ease of description and illustration, only the feature maps from level-5, level-4, and level-3 are depicted, but it is understood that five sets of feature maps at each resolution may be used for motion estimation in determining the final set of optical flow vectors 513.
[0097] For instance, the third set of feature maps 321c are input into FEB1 502. A time step T indicates the time step between images in the image-pyramids may also be included into FEB1 502. FEB1 502 may include a plurality of 3x3 convolutional layers and a summation operation to generate a first set of optical flow vectors from the third set of feature maps 321c. The first set of optical flow vectors may be input into the warping block 504, FEB1 502, and summation block 506 associated with the level-4 image-pyramids.
[0098] The second set of feature maps 321b may be input into the corresponding warping block 504, which may warp the second set of feature maps 321b using the first set of optical flow vectors. The warped feature maps may be input into FEB1, which generates an intermediate second set of optical flow vectors based on the warped second set of feature maps and the first set of optical flow vectors. Summation block 506 may perform a summation operation using the first set of optical flow vectors and the intermediate second set of optical flow vectors to generate a final second set of optical flow vectors. Weight-sharing flow estimation network 313 may upsample the final second set of optical flow vectors. The upsampled second set of optical flow vectors may be input into the warping block 504, the motion estimation block2 (FEB2) 508, and the summation block 506 associated with the first set of feature maps 321a.
[0099] The first set of feature maps 321a may be input into the corresponding warping block 504, which may warp the first set of feature maps 321a using the upsampled second set of optical flow vectors. The warped feature maps may be input into FEB2 508, which generates an intermediate third set of optical flow vectors based on the warped first set of feature maps and the upsampled second set of optical flow vectors. Summation block 506 may perform a summation operation using the upsampled second set of optical flow vectors and the third set of optical flow vectors to generate a final third set of optical flow vectors. The final third set of optical flow vectors may be into the warping block 504, the FEB1 502, and the summation block 506 associated with the next stage in which the feature maps have been upsampled As shown in FIG. 5A, these operations continue until a final set of optical flow vectors 513 is generated.
[0100] FIG. 5B illustrates a diagram of a neural network structure 550 for flow estimation blocks in FIG. 5A, according to some embodiments of the present disclosure.
[0101] Referring to FIG. 5B, assume that the activation function is chosen according to equation (5) .
[0102] In FIG. 5B, the top branch is used to illustrate the learnable parameters (including weights w and bias b) of the neural network, according to equations (6) - (11) .
[0103] z11=w11x1+b11 (6) ,
[0104] z’11=w’11f (z11) +b’11 (8) ,
[0105] z”11=w”11f (z11) +b”11 (10) , and
[0106] From equations (6) - (11) , weights (w11, w’11, w”11) and bias (b11, b’11, b”11) are the trainable parameters that weight-sharing flow estimation network 313 needs to learn.
[0107] Referring again to FIG. 3, the final set of feature maps may be input into the backward warping block 328 and picture synthesizer 332 of enhancement / generation network 315. The final set of optical flow vectors 513 may be input into backward warping block 328. Moreover, the input pictures (e.g., first image-pyramid pair 317a) may be input into backward warping block 328. Backward warping block 328 may warp the input pictures based on the final set of optical flow vectors 513. The warped pictures may be input into picture synthesizer 332, which enhances the features of the warped pictures using the final set of feature maps. The enhanced warped pictures are input into picture synthesizer 332, which synthesizes the enhanced warped pictures into output picture 325 (e.g., a reference picture) . Both picture synthesizer 332 and picture synthesizer 332 include a U-net architecture as their basic structure and are equipped with depth wise-separable convolution (DSC) blocks, as shown in FIG. 6.
[0108] FIG. 6 illustrates an exemplary U-net architecture 600 that may be used for feature enhancer 330 and picture synthesizer 332 of FIG. 5, according to some embodiments of the present disclosure. For instance, the U-net architecture 600 may include a plurality of 3x3 convolutional layers 602, DSC blocks 604, max-pooling layers 606, pixel-shuffle layers 608, and a x2 DSC block 610 that includes a plurality of 1x1 convolutional layers 612, and a 3x3 DSC layer 614. For the enhancement / generation network 315 of FIG. 3, the feature enhancer 330 and picture synthesizer 332, which are constructed by the U-net architecture 600 as the basic backbone, organically combine motion compensation information to synthesize high-quality reference pictures. To reduce parameter complexity, DSC blocks 604 / 610 are used.
[0109] FIG. 7 is a diagram of an exemplary QP-incremental learning (QPIL) training strategy 700 for neural network coding models, according to some embodiments of the present disclosure. As set forth below, a trainable neural network-based coding model (NNCM) is denoted as FNNCM (·) .
[0110] Considering the disadvantages of the training method for existing NNCMs and inspired by incremental learning, the present disclosure provides an effective quantization parameter distance-based method to drive incremental learning of NNCMs, named QPIL. As shown in FIG. 7, the proposed QPIL contains the QP-distance and a three-stage progressive training strategy. First, the conventional strategy of using uncompressed raw data as ground truth to train NNCMs is shifted. Unlike the conventional training strategy that takes uncompressed data as ground truth for training, the present strategy takes compressed data at lager QPs (e.g., ) as input and compressed data at smaller QPs (e.g., ) as ground truth for training. Therefore, the proposed QPIL strategy is formulated according to equation (12) .
[0111] QPIL is not limited to the reference picture generation task mentioned in the present disclosure, but can be easily extended to the training process of many existing NN-based video coding tasks.
[0112] Simultaneously, as shown in FIG. 7, the present three-stage incremental learning strategy adjusts and updates the trainable parameters of the proposed coding model by continuously adding data classes compressed by different QPs to the model. For instance, the first training cycle takes the compressed data at minimum QPs (e.g., QP = 7, 12, 17, 22, 27) as input to the model, and then uses uncompressed raw data as the ground truth to supervise the training process to obtain the first pre-trained model. Next, the parameters of the first pre-trained model are loaded as the starting point for the second trainable model. The second training cycle uses the compressed data at moderate QPs (e.g., QP = 12, 17, 22, 27, 32) as input to the model, and then takes compressed data at minimum QPs (e.g., QP = 7, 12, 17, 22, 27) as the ground truth to constraint the training process to get the second pre-trained model. Finally, the parameters of the second pre-trained model are loaded as the starting point for the third trainable model. The third training cycle uses the compressed data at maximum QPs (e.g., QP = 22, 27, 32, 37, 42) as input to the model, and then takes compressed data at moderate QPs (e.g., QP = 12, 17, 22, 27, 32) as the ground truth to constraint the training process to get the final pre-trained model, which will be embedded into VVC for performance testing. Experimental results show that QPIL can not only effectively capture the relationship between compressed input and its label, but also successfully solve the data imbalance problem caused by QPs.
[0113] FIG. 8A is a table 800 illustrating the BD-rates of URFS network 316 in terms of peak signal-to-noise ratio (PSNR) , when compared to the anchor under random access (RA) and low delay B (LDB) configurations, according to some embodiments of the present disclosure. Average BD-rate (%) on all test sequences in terms of PSNR. It should be noted that the reported results are obtained following the common test conditions (CTC) provided by JVET. The anchor is VTM11.0-NNVC4.0. Negative value indicates the bitrate reduction. Each sequence is compressed with five QP values, including 22, 27, 32, 37, and 42. Then, an average BD-rate is calculated. The lighter URFS achieves significant improvement in coding efficiency over VTM11.0-NNVC4.0 anchor on every sequence. To be specific, there are average {RA: 5.24%, 12.21%, 11.20%} and {LDB: 6.02%, 14.55%, 10.37%} bitrate saving on {Y, U, V} components in terms of PSNR.
[0114] FIG. 8B is a table 805 illustrating the average BD-rate (%) results on all test sequences under RA configuration in terms of PSNR, according to some embodiments of the present disclosure. In the table shown in FIG. 8B, “URFS+QPIL” means that URFS is trained by the proposed QPIL method, while “URFS+Raw” means that URFS is trained using uncompressed raw data as label for training. For RA configuration, the table shown in FIG. 8B presents the BD-rate comparison results of existing DRF and the proposed URFS on all test datasets in terms of PSNR. As shown in FIG. 8B, “URFS + QPIL” outperforms the DRF method by {1.06%, 1.19%, 1.19%} on {Y, U, V} components in terms of BD-rate. “URFS + QPIL” outperforms “URFS +Raw” by {0.18%, 1.47%, 1.20%} on {Y, U, V} components in terms of BD-rate. “URFS + Raw” outperforms DRF by {0.74%, 0.02%, -0.07%} on {Y, U, V} components in terms of BD-rate.
[0115] FIG. 8C is a table 810 illustrating the average BD-rate (%) on all test sequences under LDB configuration in terms of PSNR, according to some embodiments of the present disclsoure. Referring to FIG. 8C, “URFS+QPIL” means that URFS is trained by the proposed QPIL method, while “URFS+Raw” means that URFS is trained using uncompressed raw data as labels for training.
[0116] Referring to FIG. 8C, for LDB configuration, the average BD-rate reduction measured by PSNR is shown. It can be found that URFS consistently outperforms DRF on all test videos. Comparing FIGs. 8B and 8B, it can be concluded that the proposed URFS has more significant advantages under LDB configuration. Specifically, it can be observed that the proposed “URFS + QPIL” under LDB configuration exceeds DRF by about {2.86%, 4.15%, 2.77%} in terms of the average BD-rate measured by PSNR. “URFS + QPIL” outperforms “URFS + Raw” by {0.35%, 4.33%, 2.19%} on {Y, U, V} components in terms of BD-rate. “URFS + Raw” outperforms DRF by {2.51%, -0.18%, 0.58%} on {Y, U, V} components in terms of BD-rate.
[0117] FIG. 8D is a table 815 illustrating a complexity comparison between the existing DRF method and the proposed URFS, according to some embodiments of the present disclosure. Regardless of the RA or LDB model, the complexity of our URFS is lower than that of DRF. Specifically, the URFS network only has a parameter number of 1.9 M and the multiply accumulate operation of 727kMAC / pixel. It can be observed from table 815 in FIG. 8D that the complexity of the LDB model in DRF is significantly higher than that of the RA model. On the contrary, the present RA and LDB models have the same complexity due to using the same network architecture. In other words, the proposed URFS is a unified reference frame generation scheme for VVC inter coding.
[0118] FIG. 9 illustrates a flow chart of an exemplary method 900 of video encoding, according to some embodiments of the present disclosure. Method 900 may be performed by an apparatus, e.g., such as encoding apparatus 10, encoding unit 12, video-coding network apparatus, URFS network 316, image-feature pyramids network 311, weight-sharing flow estimation network 313, and / or enhancement / generation network 315. Method 900 may include operations 902-914 as described below. It is understood that some of the operations may be optional, and some of the operations may be performed simultaneously, or in a different order other than shown in FIG. 9.
[0119] At 902, the apparatus may obtain a first reference picture from a decoded picture buffer. For example, referring to FIG. 3, image-feature pyramids network 301 may receive a pair of input pictures associated with a first resolution, which may be used as a first image-pyramid pair 317a.
[0120] At 904, the apparatus may derive feature information based on the first reference picture. For example, referring to FIG. 3, bicubic downsampling of first image-pyramid pair 317a may be performed to obtain a second image-pyramid pair 317b of a second resolution lower than the first resolution. Still referring to FIG. 3, bicubic downsampling of the second image-pyramid pair 317b may be performed to obtain a third image-pyramid pair 317c, and so on. Still referring to FIG. 3, each image-pyramid level may have a corresponding feature extractor configured to generate feature maps from its image-pyramids. The feature maps generated at each level may have the same resolution. For instance, the 5-level feature extractor 320a may generate a first set of feature maps 321a from first image-pyramid pair 317a, the 4-level feature extractor 320b may generate a second set of feature maps 321b from second image-pyramid pair 317b, and the 3-level feature extractor 320c may generate a third set of feature maps 321c from third image-pyramid pair 317c. First set of feature maps 321a, second set of feature maps 321b, and third set of feature maps 321c may be input into weight-sharing flow estimation network 313.
[0121] At 906, the apparatus may derive optical flow information by performing weight-sharing flow estimation using the feature information. For example, referring to FIG. 5A, the weight-sharing flow estimation network 313 predicts the bidirectional flows at feature levels with the same resolution, and progressively estimates and upsample the flows at feature levels at different resolutions. Overall, the weight-sharing flow estimation network 313 learns residual optical flow vectors and continuously adds them together. For ease of description and illustration, only the feature maps from level-5, level-4, and level-3 are depicted, but it is understood that five sets of feature maps at each resolution may be used for motion estimation in determining the final set of optical flow vectors 513. For instance, the third set of feature maps 321c are input into FEB1 502. A time step T indicates the time step between images in the image-pyramids may also be included into FEB1 502. FEB1 502 may include a plurality of 3x3 convolutional layers and a summation operation to generate a first set of optical flow vectors from the third set of feature maps 321c. The first set of optical flow vectors may be input into the warping block 504, FEB1 502, and summation block 506 associated with the level-4 image-pyramids. The second set of feature maps 321b may be input into the corresponding warping block 504, which may warp the second set of feature maps 321b using the first set of optical flow vectors. The warped feature maps may be input into FEB1, which generates an intermediate second set of optical flow vectors based on the warped second set of feature maps and the first set of optical flow vectors. Summation block 506 may perform a summation operation using the first set of optical flow vectors and the intermediate second set of optical flow vectors to generate a final second set of optical flow vectors. Weight-sharing flow estimation network 313 may upsample the final second set of optical flow vectors. The upsampled second set of optical flow vectors may be input into the warping block 504, the motion estimation block2 (FEB2) 508, and the summation block 506 associated with the first set of feature maps 321a. The first set of feature maps 321a may be input into the corresponding warping block 504, which may warp the first set of feature maps 321a using the upsampled second set of optical flow vectors. The warped feature maps may be input into FEB2 508, which generates an intermediate third set of optical flow vectors based on the warped first set of feature maps and the upsampled second set of optical flow vectors. Summation block 506 may perform a summation operation using the upsampled second set of optical flow vectors and the third set of optical flow vectors to generate a final third set of optical flow vectors. The final third set of optical flow vectors may be into the warping block 504, the FEB1 502, and the summation block 506 associated with the next stage in which the feature maps have been upsampled As shown in FIG. 5A, these operations continue until a final set of optical flow vectors 513 is generated. An example description of the shared weights is provided above in connection with FIG. 5B.
[0122] At 908, the apparatus may generate a second reference picture based on the optical flow information. For example, referring to FIG. 3, feature enhancer 330 and picture synthesizer 332, which utilizes U-net as the basic backbone, are used to enhance temporal alignment features based on backward warping by residual learning and then concatenate the enhanced features to synthesize a high-quality reference picture (e.g., output picture 325) .
[0123] At 910, the apparatus may add the second reference picture into a reference picture list. For example, referring to FIG. 3, reference picture 325 may be input into reference picture list 320.
[0124] At 912, the apparatus may encode a current picture region based on the reference picture list. For example, referring to FIG. 2A, encoding apparatus 200 may encode a current picture region based on the reference picture list 320 pictures into the bitstream. The current picture region may be a picture, or a portion of a picture, or a sub-picture, and the portion of the picture can be a Tile, a Slice, an encoded block or a decoded block.
[0125] FIG. 10 illustrates a flow chart of an exemplary method 1000 of video encoding, according to some embodiments of the present disclosure. Method 1000 may be performed by an apparatus, e.g., such as decoding apparatus 20, decoding unit 22, video-coding network apparatus, URFS network 316, image-feature pyramids network 311, weight-sharing flow estimation network 313, and / or enhancement / generation network 315. Method 1000 may include operations 1002-1014 as described below. It is understood that some of the operations may be optional, and some of the operations may be performed simultaneously, or in a different order other than shown in FIG. 10.
[0126] At 1002, the apparatus may obtain a first reference picture from a decoded picture buffer. For example, referring to FIG. 3, image-feature pyramids network 301 may receive a pair of input pictures associated with a first resolution, which may be used as a first image-pyramid pair 317a.
[0127] At 1004, the apparatus may derive feature information based on the first reference picture. For example, referring to FIG. 3, bicubic downsampling of first image-pyramid pair 317a may be performed to obtain a second image-pyramid pair 317b of a second resolution lower than the first resolution. Still referring to FIG. 3, bicubic downsampling of the second image-pyramid pair 317b may be performed to obtain a third image-pyramid pair 317c, and so on. Still referring to FIG. 3, each image-pyramid level may have a corresponding feature extractor configured to generate feature maps from its image-pyramids. The feature maps generated at each level may have the same resolution. For instance, the 5-level feature extractor 320a may generate a first set of feature maps 321a from first image-pyramid pair 317a, the 4-level feature extractor 320b may generate a second set of feature maps 321b from second image-pyramid pair 317b, and the 3-level feature extractor 320c may generate a third set of feature maps 321c from third image-pyramid pair 317c. First set of feature maps 321a, second set of feature maps 321b, and third set of feature maps 321c may be input into weight-sharing flow estimation network 313.
[0128] At 1006, the apparatus may derive optical flow information by performing weight-sharing flow estimation using the feature information. For example, referring to FIG. 5A, the weight-sharing flow estimation network 313 predicts the bidirectional flows at feature levels with the same resolution, and progressively estimates and upsample the flows at feature levels at different resolutions. Overall, the weight-sharing flow estimation network 313 learns residual optical flow vectors and continuously adds them together. For ease of description and illustration, only the feature maps from level-5, level-4, and level-3 are depicted, but it is understood that five sets of feature maps at each resolution may be used for motion estimation in determining the final set of optical flow vectors 513. For instance, the third set of feature maps 321c are input into FEB1 502. A time step T indicates the time step between images in the image-pyramids may also be included into FEB1 502. FEB1 502 may include a plurality of 3x3 convolutional layers and a summation operation to generate a first set of optical flow vectors from the third set of feature maps 321c. The first set of optical flow vectors may be input into the warping block 504, FEB1 502, and summation block 506 associated with the level-4 image-pyramids. The second set of feature maps 321b may be input into the corresponding warping block 504, which may warp the second set of feature maps 321b using the first set of optical flow vectors. The warped feature maps may be input into FEB1, which generates an intermediate second set of optical flow vectors based on the warped second set of feature maps and the first set of optical flow vectors. Summation block 506 may perform a summation operation using the first set of optical flow vectors and the intermediate second set of optical flow vectors to generate a final second set of optical flow vectors. Weight-sharing flow estimation network 313 may upsample the final second set of optical flow vectors. The upsampled second set of optical flow vectors may be input into the warping block 504, the motion estimation block2 (FEB2) 508, and the summation block 506 associated with the first set of feature maps 321a. The first set of feature maps 321a may be input into the corresponding warping block 504, which may warp the first set of feature maps 321a using the upsampled second set of optical flow vectors. The warped feature maps may be input into FEB2 508, which generates an intermediate third set of optical flow vectors based on the warped first set of feature maps and the upsampled second set of optical flow vectors. Summation block 506 may perform a summation operation using the upsampled second set of optical flow vectors and the third set of optical flow vectors to generate a final third set of optical flow vectors. The final third set of optical flow vectors may be into the warping block 504, the FEB1 502, and the summation block 506 associated with the next stage in which the feature maps have been upsampled As shown in FIG. 5A, these operations continue until a final set of optical flow vectors 513 is generated. An example description of the shared weights is provided above in connection with FIG. 5B.
[0129] At 1008, the apparatus may generate a second reference picture based on the optical flow information. For example, referring to FIG. 3, feature enhancer 330 and picture synthesizer 332, which utilizes U-net as the basic backbone, are used to enhance temporal alignment features based on backward warping by residual learning and then concatenate the enhanced features to synthesize a high-quality reference picture (e.g., output picture 325) .
[0130] At 1010, the apparatus may add the second reference picture into a reference picture list. For example, referring to FIG. 3, reference picture 325 may be input into reference picture list 320.
[0131] At 1012, the apparatus may decode a current picture region based on the reference picture list. For example, referring to FIG. 2B, decoding apparatus 250 may encode a current picture region based on the reference picture list 320 pictures from the bitstream. The current picture region may be a picture, or a portion of a picture, or a sub-picture, and the portion of the picture can be a Tile, a Slice, an encoded block or a decoded block.
[0132] In various aspects of the present disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as instructions on a non-transitory computer-readable medium. Computer-readable media includes computer storage media. Storage media may be any available media that can be accessed by a processor, such as a processor in encoding unit 12 or decoding unit 22 in FIG. 1. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, HDD, such as magnetic disk storage or other magnetic storage devices, Flash drive, SSD, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a processing system, such as a mobile device or a computer. Disk and disc, as used herein, include CD, laser disc, optical disc, digital video disc (DVD) , and floppy disk where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
[0133] According to one aspect of the present disclosure, a method of video encoding is provided. The method may include obtaining, by a processor, a first reference picture from a decoded picture buffer. The method may include deriving, by the processor, feature information based on the first reference picture. The method may include deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information. The method may include generating, by the processor, a second reference picture based on the optical flow information. The method may include adding, by the processor, the second reference picture into a reference picture list. The method may include encoding, by the processor, a current picture region based on the reference picture list.
[0134] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include generating, by the processor, a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include generating, by the processor, a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include obtaining, by the processor, a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the third set of feature maps into a first flow estimation block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0135] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the second set of feature maps into the first warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0136] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the first set of feature maps into the second warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0137] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled first set of feature maps into the third warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0138] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled second set of feature maps into the fourth warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0139] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled third set of feature maps into the fifth warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0140] In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include performing, by the processor, a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include generating, by the processor, an enhanced warped picture using the feature enhancer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the enhanced warped picture into a picture synthesizer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include generating, by the processor, the second reference picture using the picture synthesizer block.
[0141] According to another aspect of the present disclosure, an apparatus for video encoding is provided. The apparatus may include a processor and memory storing instructions. The memory storing instructions, which when executing by the processor, may cause the processor to obtain a first reference picture from a decoded picture buffer. The memory storing instructions, which when executing by the processor, may cause the processor to derive feature information based on the first reference picture. The memory storing instructions, which when executing by the processor, may cause the processor to derive optical flow information by performing weight-sharing flow estimation using the feature information. The memory storing instructions, which when executing by the processor, may cause the processor to generate a second reference picture based on the optical flow information. The memory storing instructions, which when executing by the processor, may cause the processor to add the second reference picture into a reference picture list. The memory storing instructions, which when executing by the processor, may cause the processor to encode a current picture region based on the reference picture list.
[0142] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to obtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the third set of feature maps into a first flow estimation block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0143] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the second set of feature maps into the first warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0144] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first set of feature maps into the second warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0145] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled first set of feature maps into the third warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0146] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled second set of feature maps into the fourth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0147] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled third set of feature maps into the fifth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0148] In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to generate an enhanced warped picture using the feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the enhanced warped picture into a picture synthesizer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to generate the second reference picture using the picture synthesizer block.
[0149] According to a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions for a video encoder is provided. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to obtain a first reference picture from a decoded picture buffer. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to derive feature information based on the first reference picture. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to derive optical flow information by performing weight-sharing flow estimation using the feature information. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to generate a second reference picture based on the optical flow information. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to add the second reference picture into a reference picture list. The instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to encode a current picture region based on the reference picture list.
[0150] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to obtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the third set of feature maps into a first flow estimation block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0151] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the second set of feature maps into the first warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0152] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the first set of feature maps into the second warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0153] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled first set of feature maps into the third warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0154] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled second set of feature maps into the fourth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0155] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled third set of feature maps into the fifth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0156] In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate an enhanced warped picture using the feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to input the enhanced warped picture into a picture synthesizer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, may cause the processor of the video encoder to generate the second reference picture using the picture synthesizer block.
[0157] According to still another aspect of the present disclosure, a method of video decoding is provided. The method may include obtaining, by a processor, a first reference picture from a decoded picture buffer. The method may include deriving, by the processor, feature information based on the first reference picture. The method may include deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information. The method may include generating, by the processor, a second reference picture based on the optical flow information. The method may include adding, by the processor, the second reference picture into a reference picture list. The method may include decoding, by the processor, a current picture region based on the reference picture list.
[0158] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include generating, by the processor, a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include generating, by the processor, a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, the deriving, by the processor, the feature information based on the first reference picture may include obtaining, by the processor, a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the third set of feature maps into a first flow estimation block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0159] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the second set of feature maps into the first warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0160] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the first set of feature maps into the second warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0161] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled first set of feature maps into the third warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0162] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled second set of feature maps into the fourth warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include upsampling, by the processor, the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0163] In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include inputting, by the processor, the upsampled third set of feature maps into the fifth warping block. In some implementations, the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information may include generating, by the processor, a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0164] In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include performing, by the processor, a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include generating, by the processor, an enhanced warped picture using the feature enhancer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include inputting, by the processor, the enhanced warped picture into a picture synthesizer block. In some implementations, the generating, by the processor, the second reference picture based on the optical flow information may include generating, by the processor, the second reference picture using the picture synthesizer block.
[0165] According to yet a further aspect of the present disclosure, an apparatus for video decoding is provided. The apparatus may include a processor and memory storing instructions. The memory storing instructions, which when executed by the processor, may cause the processor to obtain a first reference picture from a decoded picture buffer. The memory storing instructions, which when executed by the processor, may cause the processor to derive feature information based on the first reference picture. The memory storing instructions, which when executed by the processor, may cause the processor to derive optical flow information by performing weight-sharing flow estimation using the feature information. The memory storing instructions, which when executed by the processor, may cause the processor to generate a second reference picture based on the optical flow information. The memory storing instructions, which when executed by the processor, may cause the processor to add the second reference picture into a reference picture list. The memory storing instructions, which when executed by the processor, may cause the processor to decode a current picture region based on the reference picture list.
[0166] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, may cause the processor to obtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the third set of feature maps into a first flow estimation block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0167] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the second set of feature maps into the first warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0168] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first set of feature maps into the second warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0169] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled first set of feature maps into the third warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0170] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled second set of feature maps into the fourth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0171] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled third set of feature maps into the fifth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, may cause the processor to generate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0172] In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to generate an enhanced warped picture using the feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to input the enhanced warped picture into a picture synthesizer block. In some implementations, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, may cause the processor to generate the second reference picture using the picture synthesizer block.
[0173] According to still a further aspect of the present disclosure, a non-transitory computer-readable medium storing instructions or a video decoder is provided. The instructions, which when executed by a processor of a video decoder, may cause the processor of the video decoder to obtain a first reference picture from a decoded picture buffer. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to derive feature information based on the first reference picture. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to derive optical flow information by performing weight-sharing flow estimation using the feature information. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder generate a second reference picture based on the optical flow information. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder add the second reference picture into a reference picture list. The instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder decode a current picture region based on the reference picture list.
[0174] In some implementations, the first reference picture may include a first input picture associated with a first time and a second input picture associated with a second time. In some implementations, the first input picture and the second input picture may form a first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels. In some implementations, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to obtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network. In some implementations, the first set of feature maps, the second set of feature maps, and a third set of feature maps may be associated with a same resolution. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the third set of feature maps into a first flow estimation block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.
[0175] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the second set of feature maps into the first warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block. In some implementations, the second flow estimation block may apply a second set of weights and biases to the second set of feature maps. In some implementations, the second set of weights and biases may be different than the first set of weights and biases. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.
[0176] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the first set of feature maps into the second warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block. In some implementations, the third flow estimation block may apply a third set of weights and biases to the first set of feature maps. In some implementations, the third set of weights and biases may be different than the first set of weights and biases and the second set of weights and bias. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.
[0177] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled first set of feature maps into the third warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block. In some implementations, the fourth flow estimation block may apply the second set of weights and biases to the upsampled first set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.
[0178] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled second set of feature maps into the fourth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block. In some implementations, the fifth flow estimation block may apply the third set of weights and biases to the upsampled second set of feature maps. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.
[0179] In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled third set of feature maps into the fifth warping block. In some implementations, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block. In some implementations, the sixth flow estimation block may apply a fourth set of weights and biases to the upsampled third set of feature maps. In some implementations, the fourth set of weights and biases may be different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.
[0180] In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the upsampled third set of feature maps and the warped picture into a feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate an enhanced warped picture using the feature enhancer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to input the enhanced warped picture into a picture synthesizer block. In some implementations, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, may cause the processor of the video decoder to generate the second reference picture using the picture synthesizer block.
[0181] The foregoing description of the embodiments will so reveal the general nature of the present disclosure that others can, by applying knowledge within the skill of the art, readily modify and / or adapt for various applications such embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
[0182] Embodiments of the present disclosure have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
[0183] The Summary and Abstract sections may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor (s) , and thus, are not intended to limit the present disclosure and the appended claims in any way.
[0184] Various functional blocks, modules, and steps are disclosed above. The arrangements provided are illustrative and without limitation. Accordingly, the functional blocks, modules, and steps may be reordered or combined in different ways than in the examples provided above. Likewise, some embodiments include only a subset of the functional blocks, modules, and steps, and any such subset is permitted.
[0185] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims
1.A method of video encoding, comprising:obtaining, by a processor, a first reference picture from a decoded picture buffer;deriving, by the processor, feature information based on the first reference picture;deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information;generating, by the processor, a second reference picture based on the optical flow information;adding, by the processor, the second reference picture into a reference picture list; andencoding, by the processor, a current picture region based on the reference picture list.2.The method of claim 1, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein deriving, by the processor, the feature information based on the first reference picture comprises:generating, by the processor, a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generating, by the processor, a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels;obtaining, by the processor, a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the third set of feature maps into a first flow estimation block;generating, by the processor, a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinputting, by the processor, the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.3.The method of claim 2, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsampling, by the processor, the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinputting, by the processor, the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.4.The method of claim 3, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the first set of feature maps into the second warping block;generating, by the processor, a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinputting, by the processor, the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.5.The method of claim 4, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:upsampling, by the processor, the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;inputting, by the processor, the upsampled first set of feature maps into the third warping block;generating, by the processor, a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinputting, by the processor, the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.6.The method of claim 5, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the upsampled second set of feature maps into the fourth warping block;generating, by the processor, a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsampling, by the processor, the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinputting, by the processor, the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.7.The method of claim 6, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the upsampled third set of feature maps into the fifth warping block; andgenerating, by the processor, a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.8.The method of claim 7, wherein the generating, by the processor, the second reference picture based on the optical flow information comprises:inputting, by the processor, the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;performing, by the processor, a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;inputting, by the processor, the upsampled third set of feature maps and the warped picture into a feature enhancer block;generating, by the processor, an enhanced warped picture using the feature enhancer block;inputting, by the processor, the enhanced warped picture into a picture synthesizer block; andgenerating, by the processor, the second reference picture using the picture synthesizer block.9.An apparatus for video encoding, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:obtain a first reference picture from a decoded picture buffer;derive feature information based on the first reference picture;derive optical flow information by performing weight-sharing flow estimation using the feature information;generate a second reference picture based on the optical flow information;add the second reference picture into a reference picture list; andencode a current picture region based on the reference picture list.10.The apparatus of claim 9, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, cause the processor to:generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels; andobtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the third set of feature maps into a first flow estimation block;generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinput the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.11.The apparatus of claim 10, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinput the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.12.The apparatus of claim 11, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the first set of feature maps into the second warping block;generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinput the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.13.The apparatus of claim 12, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;input the upsampled first set of feature maps into the third warping block;generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinput the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.14.The apparatus of claim 13, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the upsampled second set of feature maps into the fourth warping block;generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinput the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.15.The apparatus of claim 14, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the upsampled third set of feature maps into the fifth warping block; andgenerate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.16.The apparatus of claim 15, wherein, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, cause the processor to:input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;input the upsampled third set of feature maps and the warped picture into a feature enhancer block;generate an enhanced warped picture using the feature enhancer block;input the enhanced warped picture into a picture synthesizer block; andgenerate the second reference picture using the picture synthesizer block.17.A non-transitory computer-readable medium storing instructions, which when executed by a processor of a video encoder, cause the processor of the video encoder to:obtain a first reference picture from a decoded picture buffer;derive feature information based on the first reference picture;derive optical flow information by performing weight-sharing flow estimation using the feature information;generate a second reference picture based on the optical flow information;add the second reference picture into a reference picture list; andencode a current picture region based on the reference picture list.18.The non-transitory computer-readable medium of claim 17, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels; andobtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:input the third set of feature maps into a first flow estimation block;generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinput the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.19.The non-transitory computer-readable medium of claim 18, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder toinput the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinput the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.20.The non-transitory computer-readable medium of claim 19, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:input the first set of feature maps into the second warping block;generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinput the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.21.The non-transitory computer-readable medium of claim 20, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;input the upsampled first set of feature maps into the third warping block;generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinput the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.22.The non-transitory computer-readable medium of claim 21, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:input the upsampled second set of feature maps into the fourth warping block;generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinput the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.23.The non-transitory computer-readable medium of claim 22, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:input the upsampled third set of feature maps into the fifth warping block; andgenerate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.24.The non-transitory computer-readable medium of claim 23, wherein, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video encoder, cause the processor of the video encoder to:input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;input the upsampled third set of feature maps and the warped picture into a feature enhancer block;generate an enhanced warped picture using the feature enhancer block;input the enhanced warped picture into a picture synthesizer block; andgenerate the second reference picture using the picture synthesizer block.25.A method of video decoding, comprising:obtaining, by a processor, a first reference picture from a decoded picture buffer;deriving, by the processor, feature information based on the first reference picture;deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information;generating, by the processor, a second reference picture based on the optical flow information;adding, by the processor, the second reference picture into a reference picture list; anddecoding, by the processor, a current picture region based on the reference picture list.26.The method of claim 25, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein deriving, by the processor, the feature information based on the first reference picture comprises:generating, by the processor, a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generating, by the processor, a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels;obtaining, by the processor, a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the third set of feature maps into a first flow estimation block;generating, by the processor, a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinputting, by the processor, the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.27.The method of claim 26, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsampling, by the processor, the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinputting, by the processor, the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.28.The method of claim 27, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the first set of feature maps into the second warping block;generating, by the processor, a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinputting, by the processor, the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.29.The method of claim 28, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:upsampling, by the processor, the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;inputting, by the processor, the upsampled first set of feature maps into the third warping block;generating, by the processor, a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinputting, by the processor, the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.30.The method of claim 29, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the upsampled second set of feature maps into the fourth warping block;generating, by the processor, a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsampling, by the processor, the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinputting, by the processor, the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.31.The method of claim 30, wherein the deriving, by the processor, optical flow information by performing weight-sharing flow estimation using the feature information comprises:inputting, by the processor, the upsampled third set of feature maps into the fifth warping block; andgenerating, by the processor, a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.32.The method of claim 31, wherein the generating, by the processor, the second reference picture based on the optical flow information comprises:inputting, by the processor, the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;performing, by the processor, a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;inputting, by the processor, the upsampled third set of feature maps and the warped picture into a feature enhancer block;generating, by the processor, an enhanced warped picture using the feature enhancer block;inputting, by the processor, the enhanced warped picture into a picture synthesizer block; andgenerating, by the processor, the second reference picture using the picture synthesizer block.33.An apparatus for video decoding, comprising:a processor; andmemory storing instructions, which when executed by the processor, cause the processor to:obtain a first reference picture from a decoded picture buffer;derive feature information based on the first reference picture;derive optical flow information by performing weight-sharing flow estimation using the feature information;generate a second reference picture based on the optical flow information;add the second reference picture into a reference picture list; anddecode a current picture region based on the reference picture list.34.The apparatus of claim 33, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein, to derive the feature information based on the first reference picture, the memory storing instructions, which when executed by the processor, cause the processor to:generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels; andobtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the third set of feature maps into a first flow estimation block;generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinput the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.35.The apparatus of claim 34, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinput the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.36.The apparatus of claim 35, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the first set of feature maps into the second warping block;generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinput the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.37.The apparatus of claim 36, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;input the upsampled first set of feature maps into the third warping block;generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinput the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.38.The apparatus of claim 37, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the upsampled second set of feature maps into the fourth warping block;generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinput the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.39.The apparatus of claim 38, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the memory storing instructions, which when executed by the processor, cause the processor to:input the upsampled third set of feature maps into the fifth warping block; andgenerate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.40.The apparatus of claim 39, wherein, to generate the second reference picture based on the optical flow information, the memory storing instructions, which when executed by the processor, cause the processor to:input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;input the upsampled third set of feature maps and the warped picture into a feature enhancer block;generate an enhanced warped picture using the feature enhancer block;input the enhanced warped picture into a picture synthesizer block; andgenerate the second reference picture using the picture synthesizer block.41.A non-transitory computer-readable medium storing instructions, which when executed by a processor of a video decoder, cause the processor of the video decoder to:obtain a first reference picture from a decoded picture buffer;derive feature information based on the first reference picture;derive optical flow information by performing weight-sharing flow estimation using the feature information;generate a second reference picture based on the optical flow information;add the second reference picture into a reference picture list; anddecode a current picture region based on the reference picture list.42.The non-transitory computer-readable medium of claim 41, wherein the first reference picture includes a first input picture associated with a first time and a second input picture associated with a second time, wherein the first input picture and the second input picture form a first image-pyramid pair, and wherein, to derive the feature information based on the first reference picture, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:generate a second image-pyramid pair by performing a first filtering of the first image-pyramid pair;generate a third image-pyramid pair by performing a second filtering of the second image-pyramid pair, the first image-pyramid pair, the second image-pyramid pair, and the third image-pyramid pair each being associated with a same number of spatial channels; andobtain a first set of feature maps by inputting the first image-pyramid pair into a first feature-extraction network, a second set of feature maps by inputting the second image-pyramid pair into a second feature-extraction network, and a third set of feature maps by inputting the third image-pyramid pair into a third feature-extraction network, the first set of feature maps, the second set of feature maps, and a third set of feature maps being associated with a same resolution, andwherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the third set of feature maps into a first flow estimation block;generate a first set of optical flow vectors using the first flow estimation block, the first flow estimation block applying a first set of weights and biases to the third set of feature maps; andinput the first set of optical flow vectors into a first warping block, a second flow estimation block, and a first summation block.43.The non-transitory computer-readable medium of claim 42, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the second set of feature maps into the first warping block;generating, by the processor, a second set of optical flow vectors associated with the second set of feature maps using the first warping block, the second flow estimation block, and the first summation block, the second flow estimation block applying a second set of weights and biases to the second set of feature maps, the second set of weights and biases being different than the first set of weights and biases;upsample the second set of optical flow vectors to generate an upsampled second set of optical flow vectors; andinput the upsampled second set of optical flow vectors into a second warping block, a third flow estimation block, and a second summation block.44.The non-transitory computer-readable medium of claim 43, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the first set of feature maps into the second warping block;generate a third set of optical flow vectors associated with the first set of feature maps using the second warping block, the third flow estimation block, and the second summation block, the third flow estimation block applying a third set of weights and biases to the first set of feature maps, the third set of weights and biases being different than the first set of weights and biases and the second set of weights and bias; andinput the third set of optical flow vectors into a third warping block, a fourth flow estimation block, and a third summation block.45.The non-transitory computer-readable medium of claim 44, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:upsample the first set of feature maps, the second set of feature maps, and the third set of feature maps to generate an upsampled first set of feature maps, an upsampled second set of feature maps, and an upsampled third set of feature maps;input the upsampled first set of feature maps into the third warping block;generate a fourth set of optical flow vectors using the third warping block, the fourth flow estimation block, and the third summation block, the fourth flow estimation block applying the second set of weights and biases to the upsampled first set of feature maps; andinput the fourth set of optical flow vectors into a fourth warping block, a fifth flow estimation block, and a fourth summation block.46.The non-transitory computer-readable medium of claim 45, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the upsampled second set of feature maps into the fourth warping block;generate a fifth set of optical flow vectors using the fourth warping block, the fifth flow estimation block, and the fourth summation block, the fifth flow estimation block applying the third set of weights and biases to the upsampled second set of feature maps;upsample the fifth set of optical flow vectors to generate an upsampled fifth set of optical flow vectors; andinput the upsampled fifth set of optical flow vectors into a fifth warping block, a sixth flow estimation block, and a fifth summation block.47.The non-transitory computer-readable medium of claim 46, wherein, to derive the optical flow information by performing weight-sharing flow estimation using the feature information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the upsampled third set of feature maps into the fifth warping block; andgenerate a plurality of final optical flow vectors using the fifth warping block, the sixth flow estimation block, and the fifth summation block, the sixth flow estimation block applying a fourth set of weights and biases to the upsampled third set of feature maps, the fourth set of weights and biases being different than the first set of weights and biases, the second set of weights and biases, and the third set of weights and biases.48.The non-transitory computer-readable medium of claim 47, wherein, to generate the second reference picture based on the optical flow information, the instructions, which when executed by the processor of the video decoder, cause the processor of the video decoder to:input the first input picture, the second input picture, the upsampled third set of feature maps, and the plurality of final optical flows into a sixth warping block;perform a warping of the first input picture and the second input picture based on the upsampled third set of feature maps and the plurality of final optical flow vectors using the sixth warping block to generate a warped picture;input the upsampled third set of feature maps and the warped picture into a feature enhancer block;generate an enhanced warped picture using the feature enhancer block;input the enhanced warped picture into a picture synthesizer block; andgenerate the second reference picture using the picture synthesizer block.