Multi-view video codec with 4d scenario compression and residual compression

The 4D scenario compression engine decomposes multi-view videos into background and foreground models, using NeRF and 3DGS, to efficiently reduce cross-camera redundancy and adapt to varying camera setups, achieving high-quality video transmission with low bitrates and improved reconstruction.

WO2026129188A1PCT designated stage Publication Date: 2026-06-25INTEL CORP +4

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
INTEL CORP
Filing Date
2024-12-18
Publication Date
2026-06-25

Smart Images

  • Figure CN2024140261_25062026_PF_FP_ABST
    Figure CN2024140261_25062026_PF_FP_ABST
Patent Text Reader

Abstract

Some multi-view video compression solutions fail to reduce cross-camera redundancy, or they only work for stereo-video with two source inputs. To address this, an element-wise video management approach is used to compress single and multi-view video streams. A four-dimensional scenario is decomposed into a background model and one or more foreground object models. The models fully compress across three-dimensional spatial dimensions and cross-camera redundancy and can be transmitted to a decoder offline or stored locally with the decoder. A decoder can render video frames based on one or more camera poses and one or more foreground object poses, which compress across the time dimension and take extremely low transmission bandwidth. To improve reconstruction of the video frame, a compressed residual can be transmitted to the decoder. The decoder can use the compressed residual to remove artifacts in a reconstructed frame.
Need to check novelty before this filing date? Find Prior Art

Description

MULTI-VIEW VIDEO CODEC WITH 4D SCENARIO COMPRESSION AND RESIDUAL COMPRESSIONBackground

[0001] Video compression is a technology that enables efficient digital video transmission and storage by reducing the file size of video data while maintaining acceptable visual quality. By analyzing and eliminating redundant visual information across frames and within individual images, compression algorithms can dramatically decrease the bandwidth and storage requirements for video content. This process works by identifying and preserving the most important visual details while discarding less perceptible information, allowing for significantly smaller file sizes that can be quickly streamed over the Internet, stored on devices with limited capacity, and transmitted across networks with varying bandwidth constraints.Brief Description of the Drawings

[0002] Embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.

[0003] FIG. 1 illustrates a multi-view video codec, according to some embodiments of the disclosure.

[0004] FIG. 2 illustrates a four-dimensional (4D) scenario compression engine, according to some embodiments of the disclosure.

[0005] FIG. 3 illustrates a rendering engine, according to some embodiments of the disclosure.

[0006] FIG. 4 illustrates a modeling process implemented in Neural Radiance Fields (NeRF) , according to some embodiments of the disclosure.

[0007] FIG. 5 illustrates a modeling process implemented in three-dimensional Gaussian splatting (3DGS) , according to some embodiments of the disclosure.

[0008] FIG. 6 illustrates residual compression and residual reconstruction, according to some embodiments of the disclosure.

[0009] FIG. 7 illustrates residual compression and residual reconstruction, according to some embodiments of the disclosure.

[0010] FIG. 8 depicts a flowchart illustrating a method for video management, according to some embodiments of the disclosure.

[0011] FIG. 9 is a block diagram of an exemplary computing device, according to some embodiments of the disclosure.Detailed DescriptionOverview

[0012] Cameras are ubiquitous, and there are substantial amounts of video content being generated every day. Some video content includes multi-view videos, such as videos content captured by multiple cameras at a traffic intersection, or videos captured by multiple cameras on top of a moving vehicle. Some video content includes monocular videos captured by a stationary camera or a moving camera. Efficient storage and transmission of video content, especially multi-view videos, are important challenges for video management. Multi-view video compression can be useful in applications such as virtual reality, augmented reality, autonomous systems, and immersive media experiences, where efficient multi-view data representation can significantly impact processing speed, storage requirements, and overall system performance.

[0013] Multi-view video compression can be achieved by reducing redundancy, and if possible, across as many dimensions as possible. Dimensions can include three spatial dimensions and a temporal dimension. In some video compression standards, hand-crafted modules are used to perform compression, and some aim only at improving compression performance for a single view. For example, multi-view compression extensions of H. 264 or Advanced Video Coding (AVC) with a latest update in August 2024 and H. 265 or High Efficiency Video Coding (HVEC) with a latest update in July 2024 focus on compressing the disparity of information but fail to reduce cross-camera redundancy. The multi-view compression extension to H. 264 employed disparity compensation to exploit inter-view or inter-camera redundancy. The multi-view compression extension to H. 265 adopted techniques like the coding tree unit to compress the disparity information. They focus on reducing file size rather than analyzing or understanding the content within the video. Additionally, some solutions, such as one involving an iterative compression paradigm to interleave the compression of left and right views, only work for stereo-video with two source inputs, and cannot be easily adaptable to varying number of cameras.

[0014] To address this, an element-wise video management approach is used to compress single and multi-view video streams. The approach represents a new paradigm to managing single-view and multi-view videos. Compression is achieved by decomposing a large four-dimensional (4D) scenario into implicit three-dimensional (3D) models across timespans. The 3D models can be created by leveraging neural representation methods such as NeRF and 3DGS. Techniques such as NeRF and 3DGS can model 3D information from 2D data. The techniques have applications in areas like virtual reality, robotics, architectural preservation, and film production.

[0015] A 4D scenario having three spatial dimensions and a temporal dimension is decomposed by a 4D scenario compression engine into a background model and one or more foreground object models. The background model may be considered a static background model and can model a static background. The one or more foreground object models may be considered as one or more dynamic moving foreground object models and can model one or more dynamic moving foreground objects. The background model and the one or more foreground object models can be represented with implicit neural representation using NeRF and / or 3DGS (or similar techniques) .

[0016] The background model and the one or more foreground object models fully compress across 3D spatial dimensions and reduce cross-camera redundancy. The models can be transmitted to a decoder offline or stored locally with the decoder. Offline transmission is possible because the background does not change over a long period of time. The models can be transmitted in a channel, such as an offline channel, to the decoder. The models can be transmitted to the decoder just once.

[0017] The 4D scenario compression engine further decomposes the 4D scenario and extracts one or more camera poses and / or one or more foreground object poses. The one or more camera poses can represent pose information about a camera across the time dimension or poses at different time instants. The one or more foreground object poses can represent pose information about a foreground object across the time dimension or poses at different time instants. The camera poses can include a six-degrees-of-freedom (6DoF) trajectory of a camera. The foreground object poses can include an object identifier and a 6DoF trajectory of a foreground object. In the context of 6DoF, a pose represents a description of an object's or a camera’s state in 3D space, encompassing both its precise location and orientation. A pose has position and orientation. The position is defined by a three-dimensional vector specifying the object's or camera’s coordinates (x, y, z) within a reference frame, effectively pinpointing its exact location in space. The orientation describes how the object or camera is rotated, typically represented through methods like Euler angles, quaternions, or rotation matrices, which capture the object's rotation around its x, y, and z axes (e.g., roll, pitch, and yaw) . A 6DoF trajectory tracks these poses sequentially, forming a dynamic representation of an object's or camera’s movement through space.

[0018] The one or more camera poses and / or the one or more foreground object poses further compresses across the time dimension. The one or more camera poses and / or the one or more foreground object poses can be transmitted to a decoder online. The one or more camera poses and / or the one or more foreground object poses can be transmitted in a further channel, such as an online channel, to the decoder. The one or more camera poses and / or the one or more foreground object poses can be transmitted upon request, or per video to be decoded for a given background and a set of foreground objects. The amount of data that is to be transmitted online is very small, which means that a high quality video can be transmitted at an extremely low bitrate.

[0019] Advantageously, the one or more camera poses and / or the one or more foreground object poses are decoupled or separated from the background model and the one or more foreground object models. The one or more camera poses and / or the one or more foreground object poses can form one or more layers that are separate or independent from the background model and the one or more foreground object models. In particular, the one or more foreground object poses can include object-level semantic information, which can be stored in or as a metadata layer that is separate from the background model and the one or more foreground object models. This added layer enables more advanced content analysis, understanding, retrieval, etc. By decomposing video content into several distinct elements and managing these elements individually, more granular control and processing can be performed on the decoupled elements. The decoupled elements can be augmented or modified to produce a video for an augmented or modified 4D scenario. This element-wise video management approach can be especially advantageous for practical applications, such as object search / retrieval, video reconstruction, video compression, scenario summary, artificial intelligence generated content (AIGC) , object tracking, surveillance, simulations, etc.

[0020] A decoder can render video frames based on one or more camera poses and one or more foreground object poses, which take extremely low transmission bandwidth and minimal storage requirements. The result is an effective video management system that is able to compress across 3D spatial dimensions and the temporal dimension and remove cross-camera redundancy. The approach can significantly enhance compression efficiency and is particularly beneficial for rapidly growing 3D applications, such as 3D video, augmented reality, virtual reality, mixed reality, and more.

[0021] In some cases, neural representations used in the background model and the one or more foreground models may cause artifacts in the rendered video. The artifacts caused by NeRF may include blurry details, geometry inconsistencies, ghosting, smearing, color bleeding or unnatural color transitions, etc. The artifacts caused by 3DGS may include visual noise, patchy appearance, staircase-like or faceted appearances for curved surfaces, discontinuities, etc. The artifacts can be caused by missed / erroneous object detection, moving background, changing background (e.g., changing traffic lights) , etc. These artifacts can lead to less than ideal reconstruction or recovery of the original video or rendered video. To improve reconstruction of the video frame, a compressed residual can be transmitted to the decoder. A residual, or a residual frame denotes a difference between an original frame and a rendered frame. The encoding side can produce a rendered frame using the models and the poses and produce a residual frame. The residual frame can be compressed using block based video compression, and a compressed residual frame can be transmitted to a decoder as part of a compressed residuals bitstream. The residual frame can be compressed using an encoder-decoder model of residual learning module, and compressed residual vectors generated by an encoder can be transmitted to a decoder. The decoder can use the compressed residual to generate a residual frame, which can be added to the rendered frame to remove artifacts in a reconstructed frame.

[0022] The multi-view codec described herein can easily adapted to variable number of video inputs, and flexible settings with one or more synchronized cameras (such as many moving cameras installed on top of a vehicle and static cameras installed in road-side in vehicle-infrastructure collaboration) .

[0023] In one experiment performed on compression of multi-view video capturing a traffic intersection, H. 264 with the very slow preset resulted in a bitrate of 0.259 Megabytes / second (Mb / s) , H. 265 with the very slow present resulted in a bitrate of 0.241 Mb / s, and one implementation of the disclosed embodiments resulted in a bitrate of 0.184 Mb / s. Besides bitrate improvement, the implementation of the disclosed embodiments was able to reconstruct a car license plate with higher fidelity than H. 264 and H. 265.Multi-view video codec

[0024] FIG. 1 illustrates multi-view video codec 100, according to some embodiments of the disclosure. Multi-view video codec 100 includes encoder side 160 and decoder side 180. Encoder side 160 can perform compression of input video 102. Compressed information may be transmitted to decoder side 180. Decoder side 180 may perform decompression of the compressed information to produce reconstructed video 130.

[0025] Encoder side 160 may include 4D scenario compression engine 104.4D scenario compression engine 104 can decompose a 4D spatio-temporal scenario into one background model and one or more foreground object models.

[0026] 4D scenario compression engine 104 can receive input video 102 capturing a 4D scenario. Input video 102 may include a multi-view video. A multi-view video can include multiple videos captured by multiple cameras having respective poses. The multi-view video may include two or more videos captured by two or more cameras having two or more respective poses. A multi-view video may include stereo-view video. A multi-view video may include four, five, or six videos captured by four, five, or six cameras mount on top of a moving vehicle. A video is a sequence of video frames, where the frames may have respective frame indices or timestamps. Input video 102 may include a monocular video captured by a single camera having a respective pose. The one or more cameras can be moving. The one or more cameras can be stationary. The one or more cameras can include one or more moving cameras and one or more stationary cameras. In one example, input video 102 may include 4-way surveillance videos capturing a traffic intersection. Each video may have a resolution of 1080x1920 pixels and a sampling rate of 25 frames per second. The 4-way surveillance videos may capture the traffic intersection with cameras facing East, South, West, and North directions. The 4D scenario may include a scene or a scenario within a 3D space across time.

[0027] In some cases, 4D scenario compression engine 104 can receive one or more other types of data, such as light detection and ranging (LIDAR) sensor data or a derivation thereof, radio frequency detection and ranging (RADAR) sensor data or a derivation thereof, depth sensing data, proximity sensing data, range sensing data, distance sensing data, etc.

[0028] 4D scenario compression engine 104 may update, based on input video 102, one or more parameters of a background model modeling a background of the 4D scenario. For the 4-way videos capturing a traffic intersection, the background model may model the static background of the traffic intersection having the road surfaces, traffic signals, stationary objects near the road, buildings or structures near the road, road signs, sidewalk, curb, lamp posts, etc. The background model may include a multi-layer perceptron model. The background model may include a multi-layer perceptron model. The background model may be transmitted to decoder side 180 as compressed background model 110.

[0029] 4D scenario compression engine 104 may update, based on input video 102, one or more further parameters of a foreground object model modeling a foreground object of the 4D scenario. For the 4-way videos capturing a traffic intersection, a foreground object model may model a moving object traveling through the traffic intersection, such as a pedestrian, an animal, trash, traffic cones, a bicycle, a motorcycle, a vehicle, etc. The foreground object model may include a multi-layer perceptron model. The foreground object model may include a multi-layer perceptron model. The foreground object model may be transmitted to decoder side 180 as compressed foreground models 112.

[0030] 4D scenario compression engine 104 may determine one or more camera poses. The one or more camera poses may be transmitted to decoder side 180 as camera poses 150. The one or more camera poses may include one or more camera poses over time. The one or more camera poses together may form a 6DoF trajectory of a camera. A camera pose in the one or more camera poses can include a vector having a position in a first direction (e.g., x-coordinate) , a position in a second direction (e.g., y-coordinate) , a position in a third direction (e.g., z-coordinate) , a rotation in the first direction (e.g., roll, or rotation around the x-axis) , a rotation in the second direction (e.g., pitch, or rotation around the y-axis) , and a rotation in the third direction (e.g., yaw, or rotation around the z-axis) . In some cases, a camera identifier, camera pose in the one or more camera poses can include a vector having a position in a first direction (e.g., x-coordinate) , a position in a second direction (e.g., y-coordinate) , a position in a third direction (e.g., z-coordinate) , a rotation in the first direction (e.g., roll, or rotation around the x-axis) , a rotation in the second direction (e.g., pitch, or rotation around the y-axis) , and a rotation in the third direction (e.g., yaw, or rotation around the z-axis) .

[0031] 4D scenario compression engine 104 may determine one or more foreground object poses of the foreground object. The one or more foreground object poses of the foreground object may be transmitted to decoder side 180 as foreground object poses 164. The one or more foreground object poses may include one or more foreground object poses over time. The one or more foreground object poses of the foreground object together may form a 6DoF trajectory of the foreground object. A foreground object pose in the one or more foreground object poses of the foreground object can include a vector having a foreground object identifier, a position in a first direction (e.g., x-coordinate) , a position in a second direction (e.g., y-coordinate) , a position in a third direction (e.g., z-coordinate) , a rotation in the first direction (e.g., roll, or rotation around the x-axis) , a rotation in the second direction (e.g., pitch, or rotation around the y-axis) , and a rotation in the third direction (e.g., yaw, or rotation around the z-axis) .

[0032] In some embodiments, encoder side 160 may include foreground augmentation 166. Foreground augmentation 166 can modify the one or more foreground object poses before transmitting the one or more foreground object poses as foreground object poses 164 to decoder side 180. In one example, foreground augmentation 166 can change the foreground object identifier in one or more foreground object poses to refer to a different foreground object or foreground object model. In another example, foreground augmentation 166 can change the 6DoF trajectory in one or more foreground object poses to reflect a different trajectory or movement of the foreground object.

[0033] In some embodiments, 4D scenario compression engine 104 may generate compressed residuals 114, which may aid the decoder side 180 to produce a higher quality reconstructed video 130. Compressed residuals 114 may be transmitted to decoder side 180. In some cases, compressed residuals 114 may include a compressed residuals bitstream. In some cases, compressed residuals 114 may include a decoder model of an encoder-decoder model. In some cases, compressed residuals 114 may include compressed residual vectors, or a bitstream representing the compressed residual vectors.

[0034] The decoupled elements of input video 102 having one or more of: compressed background model 110, compressed foreground models 112, camera poses 150, foreground object poses 164, and compressed residuals 114 can be treated differently when the elements are transmitted from encoder side 160 to decoder side 180. The decoupled elements can be transmitted as separate layers. The decoupled elements can be transmitted over separate channels, e.g., channel 162 and channel 168. The decoupled elements can be transmitted separately at different times.

[0035] In some embodiments, compressed background model 110 can be transmitted over channel 162, which may be an offline channel, from encoder side 160 to decoder side 180. Foreground object models 112 can be transmitted over channel 162, which may be an offline channel, from encoder side 160 to decoder side 180.

[0036] In some embodiments, camera poses 150 can be transmitted over channel 168, which may be an online channel, from encoder side 160 to decoder side 180. Foreground object poses 164 can be transmitted over channel 168, which may be an online channel, from encoder side 160 to decoder side 180.

[0037] At least a part of compressed residuals 114, such as compressed residual vectors and a compressed residuals bitstream, can be transmitted over channel 168, which may be an online channel, from encoder side 160 to decoder side 180. At least a part of compressed residuals 114, such as a decoder model of an encoder-decoder model, can be transmitted over channel 162, which may be an offline channel, (from encoder side 160 or a system that trains the decoder model) to decoder side 180.

[0038] Decoder side 180 includes rendering engine 120 to reconstruct input video 102, or in some cases, to construct a new video, based on compressed background model 110 and compressed foreground models 112. Rendering engine 120 may reconstruct input video 102 or to construct a new video further based on camera poses 150. Rendering engine 120 may reconstruct input video 102 or to construct a new video further based on foreground object poses 164. Rendering engine 120 may reconstruct input video 102 or to construct a new video further based on compressed residuals 114. Rendering engine 120 can produce or generate reconstructed video 130.

[0039] FIG. 2 illustrates 4D scenario compression engine 104, according to some embodiments of the disclosure. 4D scenario compression engine 104 may include 3D object detection and tracking 202, foreground or background decision 244, background modeling 204 and foreground modeling 206.

[0040] 3D object detection and tracking 202 may apply signal processing and / or machine learning to input video 102 (and optionally additional input data) to obtain one or more 3D bounding boxes of one or more foreground objects at each time instance or frame. A 3D bounding box can include a foreground object’s pose information and the volume that the foreground object occupies within a 3D space. A 3D bounding box can include a three-dimensional rectangular cuboid that encloses the foreground object in 3D space, providing a compact representation of the object's size, orientation, and position. A 3D bounding box can be defined by a center point (x, y, z coordinates) representing the foreground object's location in 3D space, length, width, and height dimensions that define the box's size, and an orientation angle that indicates how the object is rotated relative to a reference coordinate system. 3D object detection and tracking 202 may maintain object identifiers and optionally object classifications and / or properties of foreground objects across frames or over time. 3D object detection and tracking 202 can apply techniques such as Kalman filtering and Hungarian algorithm-based data association. Each foreground object may be assigned a unique object identifier that persists across frames or over time. The 3D bounding boxes tracked for a particular foreground object may form a 6DoF trajectory of the foreground object. The 3D bounding boxes of one or more foreground objects may be extracted and saved as foreground object poses 164.

[0041] Using the one or more 3D bounding boxes determined by 3D object detection and tracking 20, foreground or background decision 244 can implement spatial filtering when performing ray sampling or when updating Gaussians. In particular, foreground or background decision 244 may direct data or information associated with the background to background modeling 204 and direct data or information associated with a foreground object to foreground modeling 206. The sorting performed by foreground or background decision 244 enables separate models to be constructed for the background and one or more foreground objects. Foreground or background decision 244 may consider data or information to be associated with the background if the data or information is not within a 3D bounding box of a foreground object. Foreground or background decision 244 may consider data or information to be associated with a foreground object if the data or information is within a 3D bounding box of the foreground object. The sorted information enables separate models to be generated, where background modeling 204 may use the background data or information to build a background model, and foreground modeling 206 may use the foreground object data or information to build a foreground object model.

[0042] In the context of NeRF, foreground or background decision 244 may implement spatial filtering for ray sampling, where a sampling point along a ray is determined to belong to the background if the sampling point is not located in a 3D bounding box of a foreground object, and a sampling point along a ray is determined to belong to a foreground object if the sampling point is located in the 3D bounding box of the foreground object. In NeRF, rendering an image involves casting rays from the camera through each pixel and sampling points along these rays to estimate color and density. The 3D bounding box provides a spatial boundary for a foreground object. When sampling points along a ray, the algorithm checks each sampling point's 3D coordinates against one or more 3D bounding boxes. If a sampling point falls inside a foreground object's bounding box, it's classified as a foreground point and will be processed by or used to update one or more parameters of a foreground object model by foreground modeling 206. If the point is outside all 3D bounding boxes, it's considered a background point and will be processed by or used to update one or more parameters of the background model by background modeling 204.

[0043] In the context of NeRF, background modeling 204 and foreground modeling 206 may construct separate models for the background and one or more foreground objects. A model may include a multi-layer perceptron model, where background modeling 204 may update one or more parameters of a multi-layer perception model to construct the background model, and foreground modeling 206 may update one or more parameters of a (separate) multi-layer perception model to construct a foreground object model. A multi-layer perceptron model can be updated through a differentiable rendering process using gradient-based optimization. During training, rays are cast from the camera through each pixel, and along each ray, multiple 3D sampling points are generated. The 3D sampling points are sorted by foreground or background decision 244 accordingly. For each sampling point, the multi-layer perceptron model takes the 3D coordinate and viewing direction as input and predicts both color and density. A volume rendering technique is used to aggregate these per-point predictions into a final pixel color. The loss is computed by comparing the predicted pixel colors with the ground truth colors from training images. Using backpropagation and techniques like stochastic gradient descent, the gradients are propagated through the entire differentiable rendering process back to the parameters of the multi-layer perceptron (e.g., weights) , allowing the network to learn a representation that can accurately reconstruct the scene from novel viewpoints. The optimization can minimize a combination of photometric loss (pixel color difference) and potentially regularization terms to prevent overfitting and encourage smooth, coherent scene representation.

[0044] In the context of 3DGS, foreground or background decision 244 may implement spatial filtering of 3D Gaussians, where a 3D Gaussian is determined to belong to the background if a center point of the 3D Gaussian is not located in a 3D bounding box of a foreground object, and a 3D Gaussian is determined to belong to a foreground object if a center point of the 3D Gaussian is located in the 3D bounding box of the foreground object. In 3DGS, if a 3D Gaussian falls inside a foreground object's bounding box, it's classified as a foreground 3D Gaussian for the foreground object and will be processed by foreground modeling 206. Foreground modeling 206 may update one or more parameters of a foreground object model having a set of foreground 3D Gaussians associated with the foreground object. If a 3D Gaussian falls inside a further foreground object's bounding box, it's classified as a foreground 3D Gaussian for the further foreground object and will be processed by foreground modeling 206. Foreground modeling 206 may update one or more parameters of a further foreground object model having a set of foreground 3D Gaussians associated with the further foreground object. If the 3D Gaussian is outside all 3D bounding boxes, it's considered a background 3D Gaussian and will be processed by background modeling 204. Background modeling 204 may update the one or more parameters of a background model having a set of background 3D Gaussians associated with the background.

[0045] In the context of 3DGS, background modeling 204 and foreground modeling 206 may construct separate models for the background and one or more foreground objects. A model may include a set of 3D Gaussians, where background modeling 204 may update one or more parameters of a set of 3D Gaussians to construct the background model, and foreground modeling 206 may update one or more parameters of a (separate) set of 3D to construct a foreground object model. The 3D Gaussians (sorted by foreground or background decision 244) are updated through an optimization process that directly refines their parameters to minimize a reconstruction loss. During training, each Gaussian has several optimizable parameters: its 3D position, opacity, scale (as a 3x3 covariance matrix) , and spherical harmonic coefficients for color. The rendering process involves splatting these Gaussians onto 2D images, where their contribution is weighted by their opacity and transformed by their covariance matrix. The loss is computed by comparing the rendered image with ground truth images. Using techniques like adaptive gradient descent, the algorithm simultaneously optimizes all Gaussian parameters to minimize this reconstruction loss. In some cases, 3DGS uses specific optimization strategies like adaptive density control (adding or removing Gaussians based on their contribution) and annealing techniques to control Gaussian opacity and scale.

[0046] In some embodiments, background modeling 204 may perform analysis or determination of one or more camera poses. One or more camera poses associated with one or more cameras that captured input video 102 may be extracted from input video 102, and saved as camera poses 150. In some cases, input video 102 may include metadata which includes geolocations of one or more cameras corresponding to the frames, and the one or more camera poses may be determined based on the metadata. In some cases, metadata which includes differences in pose between different cameras, and the one or more camera poses may be determined based on the metadata. In some cases, the one or more camera poses may be extracted by extracting a fundamental matrix or an essential matrix (which describes the geometric relationship between the different camera views) from the frames in input video 102, and the one or more camera poses may be determined based on the fundamental matrix or the essential matrix. The fundamental matrix or the essential matrix can be determined using a structure from motion (SfM) technique. The SfM process begins with feature extraction, where distinctive points are identified across multiple frames of input video 102 using algorithms like Scale-Invariant Feature Transform (SIFT) or Oriented FAST and Rotated BRIEF (ORB) . These features are robust to changes in scale, rotation, and lighting conditions. Next, feature matching is performed across different frames to track these points, creating correspondence between images. The fundamental matrix or essential matrix can then be computed by solving an optimization problem that determines the relative rotation and translation between camera positions. Techniques like Random Sample Consensus (RANSAC) can be used to eliminate outlier matches and improve accuracy.

[0047] In some embodiments, data generated by 4D scenario compression engine 104, including one or more of: compressed background model 110, camera poses 150, compressed foreground models 112, and foreground object poses 164, may be compressed further by entropy encoder 288. Entropy encoder 288 may implement a lossless data compression technique that leverages the statistical properties of the data to reduce its size. Entropy encoder 288 can assign shorter codes to more frequent symbols and longer codes to less frequent symbols, thereby minimizing the overall length of the encoded data or bitrate of an encoded bitstream. Entropy encoder 288 can implement techniques such as Huffman coding and arithmetic coding. These techniques ensure that the encoded data or the encoded bitstreams are as compact as possible without losing any information. The data generated by 4D scenario compression engine 104 are usually not random, since they are produced based on a 4D scenario with structure and some predictable patterns. Therefore, the data can benefit from entropy encoder 288.

[0048] Rendering using NeRF or 3DGS can result in artifacts in rendered frame 280. Phrased differently, there may be differences, or residual errors, between an original frame in input video 102 and rendered frame 280. The differences may be a result of missed detections of 3D object detection and tracking 202. Some foreground objects might be missed in 3D object detection and tracking 202, especially for far away or small vehicles. Some differences may be a result of NeRF or 3DGS, at or near irregular shapes or some surfaces, or in shadows, etc. The differences may be a result of a dynamic background. Using a (static) background model to model the background, errors would show up for moving background elements, such as traffic lights changing or leaves swayed by the wind. The differences may be a result of misalignment. In real life, the camera might shake when the car passes by, which could lead to misalignment of road lanes.

[0049] In some embodiments, 4D scenario compression engine 104 may include a data path to generate compressed residuals 114. The data path may include composite rendering 208 and residual encoding 210.

[0050] Composite rendering 208 may generate rendered frame 280 based on one or more of: compressed background model 110, camera poses 150, compressed foreground models 112, and foreground object poses 164. Composite rendering 208 may produce rendered frame 280 having a particular camera pose in camera poses 150 by combining, stitching, or concatenating color and opacity predictions from compressed background model 110 and compressed foreground models 112 according to foreground object poses 164. In the event that there is occlusion of one foreground object with another foreground object, the opacity may be adjusted based on a distance from a center point of the camera pose.

[0051] Residual encoding 210 may receive an original frame of input video 102 having the particular camera pose and rendered frame 280 having the same camera pose and generate compressed residuals 114 based on the original frame and rendered frame 280. Compressed residuals 114 may include compressed information that can be decompressed in the decoding side to reconstruct or predict a reconstructed frame that matches the original frame as closely as possible. In some cases, residual encoding 210 may directly compress residual frames and generate compressed residuals as an encoded bitstream. In some cases, residual encoding 210 may implement a machine learning or predictive approach to learn a compact representation of the residuals, which can be used to predict the residuals in the decoding side. In some cases, entropy encoder 288 may be implemented to perform lossless compression and further compress compressed residuals 114. Additional details relating to different implementations of residual encoding 210 are illustrated in FIGS. 6 and 7.

[0052] FIG. 3 illustrates rendering engine 120, according to some embodiments of the disclosure. Rendering engine 120 may be implemented in a decoding side. Rendering engine 120 may receive one or more of: compressed background model 110, camera poses 150, compressed foreground models 112, and foreground object poses 164. Rendering engine 120 may include composite rendering 304, which can be implemented in the same or similar manner as composite rendering 208 of FIG. 2. Composite rendering 304 may generate rendered frame 340, based on one or more of: compressed background model 110, camera poses 150, compressed foreground models 112, and foreground object poses 164.

[0053] In some cases, rendering engine 120 may include residual decoding 306. Residual decoding 306 may receive compressed residuals 114 and generate reconstructed residual frame 360. Additional details relating to different implementations of residual decoding 306 are illustrated in FIGS. 6 and 7. Rendered frame 340 and reconstructed residual frame 360 may be added together by adder 388 to generate reconstructed frame 366 for reconstructed video 130.Understanding NeRF and 3DGS

[0054] Three-dimensional reconstruction of a scene is a technique in computer vision and computational geometry that aims to recreate a three-dimensional (3D) model of the scene from multiple two-dimensional (2D) camera images or other sensor data. Background modeling 204 and / or foreground modeling 206 of FIG. 2 may implement modeling processes illustrated in FIGS. 4-5.

[0055] FIG. 4 illustrates modeling process 400 implemented in NeRF, according to some embodiments of the disclosure. Input images 402 capturing a scenario from multiple view points can be collected. Camera poses and intrinsic parameters for each image may be captured. A model, such as a multi-layer perceptron model (e.g., a neural network model) , can be initiated or provisioned. Feed input to model 404, volume rendering 406, and update model based on loss 408 make up a training process to train the model to learn to predict color and density for sampled points in the scene. Trained model 420 can predict scene properties (color, density) for any arbitrary 3D point and viewing direction, allowing rendering 430 to generate new views, including views which are not present in the input images 402.

[0056] In feed input to model 404, 3D coordinates and viewing direction extracted from input images 402 can be fed as input into the model. The model can output color and density for each point in space.

[0057] In volume rendering 406, a differentiable volume rendering technique can be applied to project 3D representations into 2D images, sampling points along camera rays and computing their color and opacity using the model.

[0058] In update model based on loss 408, photometric loss between rendered and input images 402 can be calculated. The parameters of the model are updated or optimized by backpropagating gradients and iteratively refining the model to minimize the loss. Trained model 420 may be produced after the training process is performed.

[0059] In rendering 430, trained model 420 can be used to render image 450 based on view and projection matrices 480. View and projection matrices 480 may define the camera parameters for the novel view and the novel view’s desired image plane. Image 450 can be an image from a novel, unseen camera viewpoint. Image 450 can be a photorealistic rendering, which can be generated by sampling and aggregating points along rays. Once trained, trained model 420 can generate novel views by casting rays through a new image plane, sampling points along these rays, querying the trained model to predict color and density for each point, and then using volume rendering techniques (e.g., alpha compositing or blending, accumulating pixels, etc. ) to aggregate these samples into a final image.

[0060] 3DGS is a powerful technique for three-dimensional reconstruction using multiple input images. 3DGS uses 3D Gaussians as a flexible and expressive scene representation. 3DGS achieves efficient rendering by rasterizing the Gaussians into pixels of an image. 3DGS involves initializing a model having many 3D Gaussians based on a sparse point cloud generated by a structure from motion process. The model may then be trained or optimized to better fit the scene. Reconstructing a large-scale scene can mean that a large number of input images are stored in memory and processed in the training process. Also, reconstructing a large-scale scene can mean that a large number of 3D Gaussians are used to represent the scene and are updated during the training process.

[0061] FIG. 5 illustrates modeling process 500 implemented in 3DGS, according to some embodiments of the disclosure. The 3DGS process may include one or more of: structure from motion 502, convert to Gaussian 504, training 506, and rendering 508. The model includes a collection of 3D Gaussians or 3D Gaussian distributions. A 3D Gaussian is defined by, position (3D location or coordinates) , center point in 3D space (3D coordinates) , covariance matrix (e.g., a 3x3 matrix) , opacity, and spherical harmonic coefficients (e.g., color) . The model is initiated with 3D Gaussians, and the modeling process updates the parameters of the 3D Gaussians through differentiable rendering techniques. 3D Gaussians can be rapidly rendered and efficiently optimized, providing high quality novel view synthesis with significantly faster performance compared to NeRF.

[0062] Structure from motion 502 receive and process input images 520 and produce point cloud 560. Structure from motion 502 may implement computer vision and 3D reconstruction techniques to create a 3D model of a scene (e.g., point cloud 560) from a series of 2D images (e.g., input images 520) . Input images 520 may include a series of camera images or a video captured of a scene. Input images 520 may include overlapping photos of the scene taken from different angles. Structure from motion 502 may implement feature detection to identify features in (each) input images 520. Structure from motion 502 may perform feature matching across different images in input images 520. Structure from motion 502 may calculate relative positions of the cameras for each image in input images 520. Structure from motion 502 may generate a sparse point cloud, e.g., point cloud 560, by triangulating the 3D positions of the matched features. Point cloud 560 may offer an initial estimate of the 3D model of the scene and may not be sufficient for high fidelity reconstruction.

[0063] Convert to Gaussian 504 may receive point cloud 560 from structure from motion 502. Points in point cloud 560 are converted to initial 3D Gaussians of initial model 510. Information from input images 520 may be used to convert points in point cloud 560 into the 3D Gaussians of initial model 510. A 3D Gaussian is defined by one or more parameters, e.g., a position (alocation within a three-dimensional space) or mean, covariance matrix (defining covariance in three dimensions, and determines shape and orientation of the 3D Gaussian) , opacity, and color. Color may be defined by one or more spherical harmonic coefficients. Some of the parameters of the 3D Gaussians in initial model 510 may be incomplete or not optimized.

[0064] Training 506 implements an optimization process to update the one or more parameters of the 3D Gaussians to increase the fidelity of the model and produce trained model 530 having 3D Gaussians that have updated parameters. In some embodiments, training 506 may implement a training procedure based on stochastic gradient descent to update the parameters of the 3D Gaussians iteratively to reduce a difference between one or more pixels of a rendered image produced from the 3D Gaussians and one or more pixels of a ground truth image (e.g., one or more images in input images 520) . The difference may be referred to a loss. The parameters of the 3D Gaussians may be updated in a manner to reduce the loss. The parameters of the 3D Gaussians may be iteratively refined to better represent the underlying geometry and appearance of the scene. The parameters may be updated to perform one or more of: adjust the position (or mean) , modify the covariance matrix to change the shape and / or orientation, and update the color information (e.g., the spherical harmonic coefficients) . In some cases, training 506 may perform densification and / or pruning to adjust the number of 3D Gaussians used in trained model 530 or density of 3D Gaussians over unit volume to represent the scene. For example, training 506 may densify Gaussians when an average magnitude of gradients exceeds a threshold. Training 506 may clone a small Gaussian with low variance into multiple Gaussians. Training 506 may split a large Gaussian with high variance into multiple Gaussians. Training 506 may remove Gaussians whose opacity is below a threshold.

[0065] Rendering 508 implements a rasterization approach to determine one or more pixel values of image 550 based on the trained 3D Gaussians of the trained model 530 and view and projection matrices 580. Image 550 may be a 2D image, which can be displayed on an output device. 3D gaussians may be projected or transformed into 2D splats using view and projection matrices 580. The 2D splats are also 2D Gaussians. A pixel value can be determined based on 2D splats that intersect a ray that is traced from the camera’s perspective (the origin of the ray) to a location in the scene. The 2D splats, e.g., the 2D splats that intersect the ray can be sorted by depth (e.g., the distance from the origin of the ray) . The properties of the 2D splats at the intersection with the ray can be determined and blended in depth order to produce the pixel value.Choosing the type of model to model the background and the one or more foreground objects

[0066] The type of model of the background model and the type of the one or more foreground object models do not have to be the same. In some cases, the type of model of the background model and the type of the one or more foreground object models are not the same. In some cases, the types of some foreground object models are different from the types of some foreground object models, depending on the kind of foreground object or a property of the foreground object.

[0067] The type of model used and one or more hyperparameters of the model used to perform compression of the 4D scenario can be sent as metadata from the encoding side to the decoding side to enable the decoding side to recover the 4D scenario using the correct type of model and hyperparameters.

[0068] For modeling the background of the 4D scenario, 3DGS can perform better than NeRF. 3DGS can have faster rendering times, higher spatial resolution, more efficient memory usage, and quicker training process. NeRF has slower rendering and can struggle with complex background details. NeRF can be more computationally intensive, less efficient for large-scale scenes, and can produce blurrier background representations. For these reasons, the background model can be generated using 3DGS, and the background model may include 3D Gaussians.

[0069] For modeling a foreground object of the 4D scenario (e.g., a car, a pedestrian, etc. ) , NeRF can perform better than 3DGS. NeRF can be better for modeling detailed foreground objects because NeRF can be better at capturing fine geometric and texture details, more precise representation of object surfaces, and superior at handling complex material properties. 3DGS can be less precise for intricate object details, and using Gaussian primitives can miss subtle surface variations. Also, 3DGS can have less refined surface reconstruction, and slightly lower fidelity for complex objects. For these reasons, a foreground object model can be generated using NeRF, and a foreground object model may include a multi-layer perceptron model. In some cases, a classification of a foreground object (e.g., a car, a motorcycle, a pedestrian, etc. ) may indicate whether the foreground object has fine geometric and texture details or not. The classification of the foreground object can be used to decide whether to model the foreground object using 3DGS or with NeRF.

[0070] In some cases, a foreground object model of a foreground object can be generated using 3GDS with an increased density of 3D Gaussians (relative to a background model) to model the finer details of the foreground object.

[0071] In some cases, the density of 3D Gaussians may be adjusted based on a classification of a foreground object. In some cases, the density of 3D Gaussians may be adjusted based on the complexity of a foreground object. In some cases, the density of 3D Gaussians may be adjusted based on the complexity of the background of the 4D scenario.

[0072] In some cases, the type of model used to model the background and the foreground objects may depend on other factors or characteristics of the 4D scenario. For instance, different types of models may be used depending on the time of day, or the level of lighting in the 4D scenario. In one example, 3DGS may be chosen as the modeling technique for night time or low light 4D scenarios because 3DGS can have a more direct representation of scene geometry, and the Gaussian splat representation can capture subtle light variations more effectively. 3DGS can also be more robust to low-contrast and low-illumination environments due to 3DGS’s ability to better interpolate between sparse light samples. NeRF can struggle with low light 4D scenarios, producing more noise and offering less detailed reconstructions.Residual compression techniques

[0073] FIG. 6 illustrates residual compression and residual reconstruction, according to some embodiments of the disclosure. Residual encoding 210 can perform residual compression and generate compressed residuals 114.

[0074] In the encoding side, residual encoding 210 may determine residual frame 610 based on original frame 602 and rendered frame 606. Rendered frame 606 may be generated by composite rendering, such as composite rendering 304 of FIG. 3. Residual frame 610 may be generated by subtractor 608 by subtracting original frame 602 by rendered frame 606. Residual frame 610 may be a residual map.

[0075] Residual frame 610 can be encoded by encoder 620 to generate compressed residuals 114. Encoder 620 may compress residual frame 610 using block based video compression to generate a compressed residuals bitstream as compressed residuals 114. Examples of block based video compression may include H. 264, H. 265, etc. The compressed residuals bitstream as compressed residuals 114 can be transmitted to the decoding side.

[0076] Encoder 620 may break each video frame into small, fixed-size blocks (e.g., 8x8 or 16x16 pixels) for efficient compression. These blocks are transformed using techniques like the Discrete Cosine Transform (DCT) , which converts spatial pixel data into frequency domain coefficients. The transform allows for significant data reduction by concentrating most image information in fewer coefficients, which can then be quantized (e.g., rounded) to further compress the data. Redundant or less important visual information is discarded, while maintaining perceptual image quality. Motion estimation and compensation can also be implemented, where blocks are compared between consecutive frames to encode only the changes, reducing the total amount of data needed to represent a video sequence. Intra-prediction within frames may also be implemented, where blocks are predicted based on other blocks of the same frame to encode only the differences. In some cases, entropy encoding may be implemented as well to further compress the data.

[0077] In the decoding side, rendering engine 120 may include residual decoding 306. Residual decoding 306 can include decoder 630 decode the compressed residuals bitstream to obtain reconstructed residual frame 360. Decoder 630 may perform entropy decoding, inverse quantization, inverse transforms, and reconstruction of blocks based on predicted data and residuals.

[0078] FIG. 7 illustrates residual compression and residual reconstruction, according to some embodiments of the disclosure. Residual encoding 210 can perform residual compression and generate compressed residuals having compressed residual vector 722 and decoder model 744.

[0079] In the encoding side, residual encoding 210 may determine residual frame 610 based on original frame 602 and rendered frame 606. Rendered frame 606 may be generated by composite rendering, such as composite rendering 304 of FIG. 3. Residual frame 610 may be generated by subtractor 608 by subtracting original frame 602 by rendered frame 606. Residual frame 610 may be a residual map.

[0080] Residual frame 610 can be encoded by residual coding 720 to generate the compressed residuals. Residual coding 720 may compress residual frame 610 using a machine learning based solution. An exemplary machine learning based solution may include an encoder-decoder neural network, illustrated as encoder 712 and decoder 714. Residual frame 610 is input into encoder 712 of the encoder-decoder neural network to generate a compressed residual vector 722. Compressed residual vector 722 can be transmitted to the decoder side as part of the compressed residuals. In some cases, entropy encoding may be implemented as well to further compress the compressed residual vector 722 before transmitting compressed residual vector 722 to the decoder side.

[0081] In an encoder-decoder model, the encoding process begins by decomposing residual frame 610 into feature representations through a neural network encoder, such as encoder 712. Encoder 712 and decoder 714 can include convolutional or transformer-based layers to extract hierarchical spatial and optionally temporal features from input residual frames. Encoder 712 is trained to compress residual frame 610 into a compact latent representation, while decoder 714 is simultaneously trained to reproduce the original residual frame 610 from this compact latent representation. The encoder-decoder model may include an autoencoder-like architecture where the loss function directly compares the output (reconstructed residual frame produced by decoder 714) with the original input frames (residual frame 610 input into encoder 712) . The training process minimizes this reconstruction loss, which can include one or more of: pixel-wise loss (comparing the reconstructed and original frames) , perceptual loss (comparing high-level features) , structural similarity index (SSIM) , and adversarial losses. After training, parameters of decoder 714 can be transmitted to the decoding side as decoder model 744 to implement decoder 714 in residual decoding 306.

[0082] The compact latent representation, shown as compressed residual vector 722 can capture both spatial details within individual residual frames and optionally temporal motion information across consecutive residual frames. Encoder 712 compresses residual frame 610 into a compact latent representation, shown as compressed residual vector 722) , which can capture the visual characteristics while reducing redundancy. Encoder 712 can create an efficient bottleneck that preserves the most critical visual information while dramatically reducing the data needed to represent residual frame 610.

[0083] Compressed residual vector 722 can be passed to decoder 714 in the decoding side, which can perform reconstruction and generate reconstructed residual frame 360 from this compressed representation. In the decoding side, rendering engine 120 may include residual decoding 306. Residual decoding 306 can include decoder 714 that is configured based on decoder 714 that is trained by residual coding 720 or a different training system. Decoder 714 can generate or predict reconstructed residual frame 360 based on compressed residual vector 722.

[0084] In some embodiments, residual coding 720 may be implemented to train a neural network model to predict original frame 602 based on rendered frame 606 and optionally one or more contextual features. The decoding side may receive parameters of the trained neural network model. Residual decoding 306 may be implemented to predict reconstructed residual frame 360 based on a rendered frame and optionally one or more contextual features using the trained neural network model. The neural network model may include an autoencoder (e.g., an encoder-decoder model) , a variational autoencoder (e.g., an encoder-decoder model with probabilistic encoding) , a generative adversarial network (e.g., a generator network to compress and reconstruct images and a discriminator network to improve compression quality) , a transformer-based neural network (e.g., attention mechanisms to learn efficient representations) , etc.Methods for video management

[0085] FIG. 8 depicts a flowchart illustrating a method for video management, according to some embodiments of the disclosure. Method 800 can be performed using a computing device, such as computing device 900 in FIG. 9. Method 800 may be performed using or by one or more parts illustrated in FIGS. 1-7.

[0086] In 802, an input video capturing a 4D scenario is received.

[0087] In 804, based on the input video, one or more parameters of a background model modeling a background of the 4D scenario are updated.

[0088] In 806, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the 4D scenario are updated.

[0089] In 808, one or more camera poses and one or more foreground object poses of the foreground object are determined.

[0090] In 810, the background model and the foreground object model are transmitted over a channel to a decoder. The decoder has a rendering engine to reconstruct the input video based on the background model and the one or more foreground object models.

[0091] In 812, the one or more camera poses and the one or more foreground object poses are transmitted over a further channel separate from the channel to the decoderExemplary computing device

[0092] FIG. 9 is a block diagram of an apparatus or a system, e.g., an exemplary computing device 900, according to some embodiments of the disclosure. One or more computing devices 900 may be used to implement the functionalities described with the FIGS. and herein. A number of components illustrated in FIG. 9 can be included in computing device 900, but any one or more of these components may be omitted or duplicated, as suitable for the application. In some embodiments, some or all of the components included in computing device 900 may be attached to one or more motherboards. In some embodiments, some or all of these components are fabricated onto a single system on a chip (SoC) die. Additionally, in various embodiments, computing device 900 may not include one or more of the components illustrated in FIG. 8, and computing device 900 may include interface circuitry for coupling to the one or more components. For example, the computing device 900 may not include display device 906, and may include display device interface circuitry (e.g., a connector and driver circuitry) to which a display device 906 may be coupled. In another set of examples, computing device 900 may not include audio input device 918 or an audio output device 908 and may include audio input or output device interface circuitry (e.g., connectors and supporting circuitry) to which an audio input device 918 or audio output device 908 may be coupled.

[0093] Computing device 900 may include processing device 902 (e.g., one or more processing devices, one or more of the same types of processing device, one or more of different types of processing device) . Processing device 902 may include electronic circuitry that process electronic data from data storage elements (e.g., registers, memory, resistors, capacitors, quantum bit cells) to transform that electronic data into other electronic data that may be stored in registers and / or memory. Examples of processing device 902 may include a central processing unit (CPU) , a GPU, a quantum processor, a machine learning processor, an artificial intelligence processor, a neural network processor, an artificial intelligence accelerator, an application specific integrated circuit (ASIC) , an analog signal processor, an analog computer, a microprocessor, a digital signal processor, a field-programmable gate array (FPGA) , a tensor processing unit (TPU) , a data processing unit (DPU) , etc.

[0094] The computing device 900 may include a memory 904, which may itself include one or more memory devices such as volatile memory (e.g., DRAM) , nonvolatile memory (e.g., read-only memory (ROM) ) , high bandwidth memory (HBM) , flash memory, solid state memory, and / or a hard drive. Memory 904 includes one or more non-transitory computer-readable storage media. In some embodiments, memory 904 may include memory that shares a die with the processing device 902.

[0095] In some embodiments, memory 904 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with the FIGS. and herein, such as the methods and operations illustrated in the FIGS. The instructions stored in the one or more non-transitory computer-readable media may be executed by processing device 902.

[0096] In some embodiments, memory 904 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with 4D scenario compression engine 104. Memory 904 can include one or more non-transitory computer-readable media storing instructions executable to perform operations described with foreground augmentation 166.

[0097] In some embodiments, memory 904 includes one or more non-transitory computer-readable media storing instructions executable to perform operations of method 800 of FIG. 8.

[0098] In some embodiments, memory 904 may store data, e.g., data structures, binary data, bits, metadata, files, blobs, etc., as described with the FIGS. and herein. For example, memory 904 may store one or more of: input video 102, reconstructed video 130, compressed background model 110, camera poses 150, compressed foreground models 112, foreground object poses 164, and compressed residuals 114.

[0099] In some embodiments, memory 904 may store one or more models (or parts thereof) described herein. Memory 904 may store training data for training (trained) the one or more models. Memory 904 may store instructions that perform operations associated with training the one or more models. Memory 904 may store input data, output data, intermediate outputs, intermediate inputs of the one or more one or more models. Memory 904 may store one or more parameters used by the one or more one or more models. Memory 904 may store information that encodes how nodes of the one or more one or more models are connected with each other. Memory 904 may store instructions (e.g., low-level machine code) to perform one or more operations of the one or more one or more models. Memory 904 may store a model definition that specifies one or more operations of a one or more models. Memory 904 may store instructions, such as configuration files, that are generated by a compiler based on the model definition.

[0100] In some embodiments, the computing device 900 may include a communication device 912 (e.g., one or more communication devices) . For example, the communication device 912 may be configured for managing wired and / or wireless communications for the transfer of data to and from the computing device 900. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a nonsolid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not. The communication device 912 may implement any of a number of wireless standards or protocols, including but not limited to Institute for Electrical and Electronic Engineers (IEEE) standards including Wi-Fi (IEEE 802.10 family) , IEEE 802.16 standards (e.g., IEEE 802.16-2005 Amendment) , Long-Term Evolution (LTE) project along with any amendments, updates, and / or revisions (e.g., advanced LTE project, ultramobile broadband (UMB) project (also referred to as "3GPP2" ) , etc. ) . IEEE 802.16 compatible Broadband Wireless Access (BWA) networks are generally referred to as WiMAX networks, an acronym that stands for worldwide interoperability for microwave access, which is a certification mark for products that pass conformity and interoperability tests for the IEEE 802.16 standards. The communication device 912 may operate in accordance with a Global System for Mobile Communication (GSM) , General Packet Radio Service (GPRS) , Universal Mobile Telecommunications System (UMTS) , High Speed Packet Access (HSPA) , Evolved HSPA (E-HSPA) , or LTE network. The communication device 912 may operate in accordance with Enhanced Data for GSM Evolution (EDGE) , GSM EDGE Radio Access Network (GERAN) , Universal Terrestrial Radio Access Network (UTRAN) , or Evolved UTRAN (E-UTRAN) . The communication device 912 may operate in accordance with Code-division Multiple Access (CDMA) , Time Division Multiple Access (TDMA) , Digital Enhanced Cordless Telecommunications (DECT) , Evolution-Data Optimized (EV-DO) , and derivatives thereof, as well as any other wireless protocols that are designated as 3G, 4G, 5G, and beyond. The communication device 912 may operate in accordance with other wireless protocols in other embodiments. The computing device 900 may include an antenna 922 to facilitate wireless communications and / or to receive other wireless communications (such as radio frequency transmissions) . The computing device 900 may include receiver circuits and / or transmitter circuits. In some embodiments, the communication device 912 may manage wired communications, such as electrical, optical, or any other suitable communication protocols (e.g., the Ethernet) . As noted above, the communication device 912 may include multiple communication chips. For instance, a first communication device 912 may be dedicated to shorter-range wireless communications such as Wi-Fi or Bluetooth, and a second communication device 912 may be dedicated to longer-range wireless communications such as global positioning system (GPS) , EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, or others. In some embodiments, a first communication device 912 may be dedicated to wireless communications, and a second communication device 912 may be dedicated to wired communications.

[0101] The computing device 900 may include power source  / power circuitry 914. The power source  / power circuitry 914 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 900 to an energy source separate from the computing device 900 (e.g., DC power, AC power, etc. ) .

[0102] The computing device 900 may include a display device 906 (or corresponding interface circuitry, as discussed above) . The display device 906 may include any visual indicators, such as a heads-up display, a computer monitor, a projector, a touchscreen display, a liquid crystal display (LCD) , a light-emitting diode display, or a flat panel display, for example.

[0103] The computing device 900 may include an audio output device 908 (or corresponding interface circuitry, as discussed above) . The audio output device 908 may include any device that generates an audible indicator, such as speakers, headsets, or earbuds, for example.

[0104] The computing device 900 may include an audio input device 918 (or corresponding interface circuitry, as discussed above) . The audio input device 918 may include any device that generates a signal representative of a sound, such as microphones, microphone arrays, or digital instruments (e.g., instruments having a musical instrument digital interface (MIDI) output) .

[0105] The computing device 900 may include a GPS device 916 (or corresponding interface circuitry, as discussed above) . The GPS device 916 may be in communication with a satellite-based system and may receive a location of the computing device 900, as known in the art.

[0106] The computing device 900 may include a sensor 930 (or one or more sensors) . The computing device 900 may include corresponding interface circuitry, as discussed above) . Sensor 930 may sense physical phenomenon and translate the physical phenomenon into electrical signals that can be processed by, e.g., processing device 902. Examples of sensor 930 may include: capacitive sensor, inductive sensor, resistive sensor, electromagnetic field sensor, light sensor, camera, imager, microphone, pressure sensor, temperature sensor, vibrational sensor, accelerometer, gyroscope, strain sensor, moisture sensor, humidity sensor, distance sensor, range sensor, time-of-flight sensor, pH sensor, particle sensor, air quality sensor, chemical sensor, gas sensor, biosensor, ultrasound sensor, a scanner, etc.

[0107] The computing device 900 may include another output device 910 (or corresponding interface circuitry, as discussed above) . Examples of the other output device 910 may include an audio codec, a video codec, a printer, a wired or wireless transmitter for providing information to other devices, haptic output device, gas output device, vibrational output device, lighting output device, home automation controller, or an additional storage device.

[0108] The computing device 900 may include another input device 920 (or corresponding interface circuitry, as discussed above) . Examples of the other input device 920 may include an accelerometer, a gyroscope, a compass, an image capture device, a keyboard, a cursor control device such as a mouse, a stylus, a touchpad, a bar code reader, a Quick Response (QR) code reader, any sensor, or a radio frequency identification (RFID) reader.

[0109] The computing device 900 may have any desired form factor, such as a handheld or mobile computer system (e.g., a cell phone, a smart phone, a mobile Internet device, a music player, a tablet computer, a laptop computer, a netbook computer, a personal digital assistant (PDA) , a personal computer, a remote control, wearable device, headgear, eyewear, footwear, electronic clothing, etc. ) , a desktop computer system, a server or other networked computing component, a printer, a scanner, a monitor, a set-top box, an entertainment control unit, a vehicle control unit, a digital camera, a digital video recorder, an Internet-of-Things device, or a wearable computer system. In some embodiments, the computing device 900 may be any other electronic device that processes data.Select examples

[0110] Example 1 provides a method for video management, including receiving an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time; updating, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario; updating, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario; determining one or more camera poses and one or more foreground object poses of the foreground object; transmitting, over a channel, the background model and the foreground object model to a decoder, where the decoder reconstructs the input video based on the background model and the foreground object model; and transmitting, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.

[0111] Example 2 provides the method of example 1, further including generating a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determining a residual frame based on the rendered frame and an original frame; compressing the residual frame to generate a compressed residuals bitstream; and transmitting the compressed residuals bitstream to the decoder.

[0112] Example 3 provides the method of example 1, further including generating a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determining a residual frame based on the rendered frame and an original frame; inputting the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; and transmitting the compressed residual vector to the decoder.

[0113] Example 4 provides the method of any one of examples 1-3, where the input video is a multi-view video.

[0114] Example 5 provides the method of any one of examples 1-3, where the input video is a monocular video.

[0115] Example 6 provides the method of any one of examples 1-5, where the one or more camera poses includes one or more camera poses over time.

[0116] Example 7 provides the method of any one of example 1-6, where a camera pose in the one or more camera poses includes a vector having a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0117] Example 8 provides the method of any one of examples 1-7, where the one or more foreground object poses includes one or more foreground object poses over time.

[0118] Example 9 provides the method of any one of example 1-8, where a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0119] Example 10 provides the method of any one of examples 1-9, further including modifying the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0120] Example 11 provides the method of any one of examples 1-10, further including changing a foreground object identifier in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0121] Example 12 provides the method of any one of examples 1-11, further including changing one or more of a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0122] Example 13 provides the method of any one of examples 1-12, where the background model includes a multi-layer perceptron model.

[0123] Example 14 provides the method of any one of examples 1-13, where the background model includes three-dimensional Gaussians.

[0124] Example 15 provides the method of any one of examples 1-14, where the foreground object model includes a multi-layer perceptron model.

[0125] Example 16 provides the method of any one of examples 1-15, where the foreground object model includes three-dimensional Gaussians.

[0126] Example 17 provides the method of any one of examples 1-16, where the background model includes a multi-layer perceptron model and the foreground object model includes three-dimensional Gaussians.

[0127] Example 18 provides the method of any one of examples 1-17, where the background model includes three-dimensional Gaussians and the foreground object model includes a multi-layer perceptron model.

[0128] Example 19 provides one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to: receive an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time; update, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario; update, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario; determine one or more camera poses and one or more foreground object poses of the foreground object; transmit, over a channel, the background model and the foreground object model to a decoder, where the decoder reconstructs the input video based on the background model and the foreground object model; and transmit, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.

[0129] Example 20 provides the one or more non-transitory computer-readable media of example 19, where the instructions further cause the one or more processors to: generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determine a residual frame based on the rendered frame and an original frame; compress the residual frame to generate a compressed residuals bitstream; and transmit the compressed residuals bitstream to the decoder.

[0130] Example 21 provides the one or more non-transitory computer-readable media of example 19, where the instructions further cause the one or more processors to: generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determine a residual frame based on the rendered frame and an original frame; input the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; and transmit the compressed residual vector to the decoder.

[0131] Example 22 provides the one or more non-transitory computer-readable media of any one of examples 19-21, where the input video is a multi-view video.

[0132] Example 23 provides the one or more non-transitory computer-readable media of any one of examples 19-21, where the input video is a monocular video.

[0133] Example 24 provides the one or more non-transitory computer-readable media of any one of examples 19-23, where the one or more camera poses includes one or more camera poses over time.

[0134] Example 25 provides the one or more non-transitory computer-readable media of any one of example 19-24, where a camera pose in the one or more camera poses includes a vector having a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0135] Example 26 provides the one or more non-transitory computer-readable media of any one of examples 19-25, where the one or more foreground object poses includes one or more foreground object poses over time.

[0136] Example 27 provides the one or more non-transitory computer-readable media of any one of example 19-26, where a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0137] Example 28 provides the one or more non-transitory computer-readable media of any one of examples 19-27, where the instructions further cause the one or more processors to: modify the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0138] Example 29 provides the one or more non-transitory computer-readable media of any one of examples 19-28, where the instructions further cause the one or more processors to: change a foreground object identifier in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0139] Example 30 provides the one or more non-transitory computer-readable media of any one of examples 19-29, where the instructions further cause the one or more processors to: change one or more of a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0140] Example 31 provides the one or more non-transitory computer-readable media of any one of examples 19-30, where the background model includes a multi-layer perceptron model.

[0141] Example 32 provides the one or more non-transitory computer-readable media of any one of examples 19-31, where the background model includes three-dimensional Gaussians.

[0142] Example 33 provides the one or more non-transitory computer-readable media of any one of examples 19-32, where the foreground object model includes a multi-layer perceptron model.

[0143] Example 34 provides the one or more non-transitory computer-readable media of any one of examples 19-33, where the foreground object model includes three-dimensional Gaussians.

[0144] Example 35 provides the one or more non-transitory computer-readable media of any one of examples 19-34, where the background model includes a multi-layer perceptron model and the foreground object model includes three-dimensional Gaussians.

[0145] Example 36 provides the one or more non-transitory computer-readable media of any one of examples 19-35, where the background model includes three-dimensional Gaussians and the foreground object model includes a multi-layer perceptron model.

[0146] Example 37 provides an apparatus including one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to: receive an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time; update, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario; update, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario; determine one or more camera poses and one or more foreground object poses of the foreground object; transmit, over a channel, the background model and the foreground object model to a decoder, where the decoder reconstructs the input video based on the background model and the foreground object model; and transmit, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.

[0147] Example 38 provides the apparatus of example 37, where the instructions further cause the one or more processors to: generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determine a residual frame based on the rendered frame and an original frame; compress the residual frame to generate a compressed residuals bitstream; and transmit the compressed residuals bitstream to the decoder.

[0148] Example 39 provides the apparatus of example 37, where the instructions further cause the one or more processors to: generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses; determine a residual frame based on the rendered frame and an original frame; input the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; and transmit the compressed residual vector to the decoder.

[0149] Example 40 provides the apparatus of any one of examples 37-39, where the input video is a multi-view video.

[0150] Example 41 provides the apparatus of any one of examples 37-39, where the input video is a monocular video.

[0151] Example 42 provides the apparatus of any one of examples 37-41, where the one or more camera poses includes one or more camera poses over time.

[0152] Example 43 provides the apparatus of any one of example 37-42, where a camera pose in the one or more camera poses includes a vector having a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0153] Example 44 provides the apparatus of any one of examples 37-43, where the one or more foreground object poses includes one or more foreground object poses over time.

[0154] Example 45 provides the apparatus of any one of example 37-44, where a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.

[0155] Example 46 provides the apparatus of any one of examples 37-45, where the instructions further cause the one or more processors to: modify the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0156] Example 47 provides the apparatus of any one of examples 37-46, where the instructions further cause the one or more processors to: change a foreground object identifier in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0157] Example 48 provides the apparatus of any one of examples 37-47, where the instructions further cause the one or more processors to: change one or more of a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.

[0158] Example 49 provides the apparatus of any one of examples 37-48, where the background model includes a multi-layer perceptron model.

[0159] Example 50 provides the apparatus of any one of examples 37-49, where the background model includes three-dimensional Gaussians.

[0160] Example 51 provides the apparatus of any one of examples 37-50, where the foreground object model includes a multi-layer perceptron model.

[0161] Example 52 provides the apparatus of any one of examples 37-51, where the foreground object model includes three-dimensional Gaussians.

[0162] Example 53 provides the apparatus of any one of examples 37-52, where the background model includes a multi-layer perceptron model and the foreground object model includes three-dimensional Gaussians.

[0163] Example 54 provides the apparatus of any one of examples 37-53, where the background model includes three-dimensional Gaussians and the foreground object model includes a multi-layer perceptron model.

[0164] Example A provides an apparatus comprising means to carry out or means for carrying out any one of the methods provided in examples 1-15 and methods / processes described herein.

[0165] Example B provides a 4D scenario compression engine as described herein.

[0166] Example C provides the 4D scenario compression engine of example B, and further includes foreground augmentation as described herein.

[0167] Example D provides rendering engine 120 as described herein.

[0168] Example E provides a codec comprising: an encoder having a 4D scenario compression engine as described herein; and a decoder having a rendering engine as described herein.

[0169] Example F provides the codec of example E, and further includes foreground augmentation as described herein.

[0170] Example G provides residual encoding as described herein.

[0171] Example H provides residual decoding as described herein.

[0172] Example I provides the residual encoding of example G and the residual decoding of example H.Variations and other notes

[0173] Although the operations of the example method shown in and described with reference to FIGS. 1-8 are illustrated as occurring once each and in a particular order, it will be recognized that the operations may be performed in any suitable order and repeated as desired. Additionally, one or more operations may be performed in parallel. Furthermore, the operations illustrated in FIGS. 1-8 may be combined or may include more or fewer details than described.

[0174] The various implementations described herein may refer to artificial intelligence, machine learning, and deep learning. Machine learning may be a subset of artificial intelligence. Deep learning may be a subset of machine learning. In cases where a deep learning model is mentioned, if suitable for a particular application, a different kind of machine learning model may be used instead. In cases where a deep learning model is mentioned, if suitable for a particular application, a different kind of artificial intelligence model may be used instead. In cases where a deep learning model, machine learning model, or an artificial intelligence model is mentioned, if suitable for a particular application, a digital signal processing system may be used instead.

[0175] Various models can be trained using training data, or in an unsupervised manner. Parameters of the model (e.g., parameters in background models, foreground object models, neural networks, etc. ) may be updated during the training process, or through unsupervised learning.

[0176] The above description of illustrated implementations of the disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. While specific implementations of, and examples for, the disclosure are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize. These modifications may be made to the disclosure in light of the above detailed description.

[0177] For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the illustrative implementations. However, it will be apparent to one skilled in the art that the present disclosure may be practiced without the specific details and / or that the present disclosure may be practiced with only some of the described aspects. In other instances, well known features are omitted or simplified in order not to obscure the illustrative implementations.

[0178] Further, references are made to the accompanying drawings that form a part hereof, and in which are shown, by way of illustration, embodiments that may be practiced. It is to be understood that other embodiments may be utilized, and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense.

[0179] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the disclosed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order from the described embodiment. Various additional operations may be performed or described operations may be omitted in additional embodiments.

[0180] For the purposes of the present disclosure, the phrase “A or B” or the phrase "A and / or B" means (A) , (B) , or (A and B) . For the purposes of the present disclosure, the phrase “A, B, or C” or the phrase "A, B, and / or C" means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B, and C) . The term "between, " when used with reference to measurement ranges, is inclusive of the ends of the measurement ranges.

[0181] The description uses the phrases "in an embodiment" or "in embodiments, " which may each refer to one or more of the same or different embodiments. The terms "comprising, " "including, " "having, " and the like, as used with respect to embodiments of the present disclosure, are synonymous. The disclosure may use perspective-based descriptions such as "above, " "below, " "top, " "bottom, " and "side" to explain various features of the drawings, but these terms are simply for ease of discussion, and do not imply a desired or required orientation. The accompanying drawings are not necessarily drawn to scale. Unless otherwise specified, the use of the ordinal adjectives “first, ” “second, ” and “third, ” etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.

[0182] In the following detailed description, various aspects of the illustrative implementations will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art.

[0183] The terms “substantially, ” “close, ” “approximately, ” “near, ” and “about, ” generally refer to being within + / -20%of a target value as described herein or as known in the art. Similarly, terms indicating orientation of various elements, e.g., “coplanar, ” “perpendicular, ” “orthogonal, ” “parallel, ” or any other angle between the elements, generally refer to being within + / -5-20%of a target value as described herein or as known in the art.

[0184] In addition, the terms “comprise, ” “comprising, ” “include, ” “including, ” “have, ” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a method, process, or device, that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such method, process, or device. Also, the term “or” refers to an inclusive “or” and not to an exclusive “or. ”

[0185] The systems, methods and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for all desirable attributes disclosed herein. Details of one or more implementations of the subject matter described in this specification are set forth in the description and the accompanying drawings.

Claims

1.A method for video management, comprising:receiving an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time;updating, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario;updating, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario;determining one or more camera poses and one or more foreground object poses of the foreground object;transmitting, over a channel, the background model and the foreground object model to a decoder, wherein the decoder reconstructs the input video based on the background model and the foreground object model; andtransmitting, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.2.The method of claim 1, further comprising:generating a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determining a residual frame based on the rendered frame and an original frame;compressing the residual frame to generate a compressed residuals bitstream; andtransmitting the compressed residuals bitstream to the decoder.3.The method of claim 1, further comprising:generating a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determining a residual frame based on the rendered frame and an original frame;inputting the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; andtransmitting the compressed residual vector to the decoder.4.The method of claim 1, wherein a camera pose in the one or more camera poses includes a vector having a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.5.The method of claim 1, wherein a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.6.The method of claim 1, further comprising:modifying the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.7.The method of claim 1, further comprising:changing a foreground object identifier in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.8.The method of claim 1, further comprising:changing one or more of a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.9.The method of claim 8, wherein the background model includes a multi-layer perceptron model and the foreground object model includes three-dimensional Gaussians.10.The method of claim 8, wherein the background model includes three-dimensional Gaussians and the foreground object model includes a multi-layer perceptron model.11.One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:receive an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time;update, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario;update, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario;determine one or more camera poses and one or more foreground object poses of the foreground object;transmit, over a channel, the background model and the foreground object model to a decoder, wherein the decoder reconstructs the input video based on the background model and the foreground object model; andtransmit, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.12.The one or more non-transitory computer-readable media of claim 11, wherein the instructions further cause the one or more processors to:generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determine a residual frame based on the rendered frame and an original frame;compress the residual frame to generate a compressed residuals bitstream; andtransmit the compressed residuals bitstream to the decoder.13.The one or more non-transitory computer-readable media of claim 11, wherein the instructions further cause the one or more processors to:generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determine a residual frame based on the rendered frame and an original frame;input the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; andtransmit the compressed residual vector to the decoder.14.The one or more non-transitory computer-readable media of claim 11, wherein a camera pose in the one or more camera poses includes a vector having a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.15.The one or more non-transitory computer-readable media of claim 11, wherein a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.16.The one or more non-transitory computer-readable media of claim 11, wherein the instructions further cause the one or more processors to:modify the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.17.The one or more non-transitory computer-readable media of claim 11, wherein the background model includes a multi-layer perceptron model and the foreground object model includes three-dimensional Gaussians.18.The one or more non-transitory computer-readable media of claim 11, wherein the background model includes three-dimensional Gaussians and the foreground object model includes a multi-layer perceptron model.19.An apparatus comprising:one or more processors; andone or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to:receive an input video capturing a four-dimensional scenario, the four-dimensional scenario including a scenario within a three-dimensional space across time;update, based on the input video, one or more parameters of a background model modeling a background of the four-dimensional scenario;update, based on the input video, one or more further parameters of a foreground object model modeling a foreground object of the four-dimensional scenario;determine one or more camera poses and one or more foreground object poses of the foreground object;transmit, over a channel, the background model and the foreground object model to a decoder, wherein the decoder reconstructs the input video based on the background model and the foreground object model; andtransmit, over a further channel separate from the channel, the one or more camera poses and the one or more foreground object poses to the decoder.20.The apparatus of claim 19, wherein the instructions further cause the one or more processors to:generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determine a residual frame based on the rendered frame and an original frame;compress the residual frame to generate a compressed residuals bitstream; andtransmit the compressed residuals bitstream to the decoder.21.The apparatus of claim 19, wherein the instructions further cause the one or more processors to:generate a rendered frame based on the background model, the foreground object model, the one or more camera poses, and the one or more foreground object poses;determine a residual frame based on the rendered frame and an original frame;input the residual frame into an encoder of an encoder-decoder neural network to generate a compressed residual vector; andtransmit the compressed residual vector to the decoder.22.The apparatus of claim 19, wherein a foreground object pose in the one or more foreground object poses includes a vector having a foreground object identifier, a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction.23.The apparatus of claim 19, wherein the instructions further cause the one or more processors to:modify the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.24.The apparatus of claim 19, wherein the instructions further cause the one or more processors to:change a foreground object identifier in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.25.The apparatus of claim 19, wherein the instructions further cause the one or more processors to:change one or more of a position in a first direction, a position in a second direction, a position in a third direction, a rotation in the first direction, a rotation in the second direction, and a rotation in the third direction in the one or more foreground object poses before transmitting the one or more foreground object poses over the further channel to the decoder.