Abstract:
A method of managing resources on a terminal includes determining a number of downloaded video streams active at the terminal, prioritizing the active video streams, assigning a decoding quality level to each active video stream based on a priority assignment for each active video stream, and apportioning reception bandwidth to each active video stream based on an assigned quality level of each active video stream.
Abstract:
Techniques are proposed to improve temporal motion projection in video coding. Candidate reference frames available for use in temporal motion projection are sorted in processing order according to scores assigned based on estimates of the reference frames' suitability for prediction. Such estimates may be based on temporal distance between each candidate reference frame and that reference frame's prediction references. Estimates may be based, for each reference frame, based on an estimate of coding quality of a reference frame from which the respective candidate reference frame makes a prediction reference. Once sorted, the candidate reference frames may be processing in the sorting order to supply prediction data to a current frame that is to be coded from the candidate reference frames. Additionally, hardware friendly designs of motion field hole filling and motion vector smoothing operations are proposed. Such designs can reduce hardware implementation complexity and benefit hardware parallel processing in several aspects: by removing the dependency among different processing block rows for hole filling and motion vector smoothing so that it is becomes easier and friendlier to achieve hardware parallel processing; by reducing the hardware bandwidth loading overhead; by improving hardware pipeline throughput; and/or by avoiding adding a line buffer to store the data from the above row since a line buffer will increase hardware cost.
Abstract:
Improved neural-network-based image and video coding techniques are presented, including hybrid techniques that include both tools of a host codec and neural-network-based tools. In these improved techniques, the host coding tools may include conventional video coding standards such H.266 (VVC). In an aspects, source frames may be partitioned and either host or neural-network-based tools may be selected per partition. Coding parameter decisions for a partition may be constrained based on the partitioning and coding tool selection. Rate control for host and neural network tools may be combined. Multi-stage processing of neural network output may use a checkerboard prediction pattern.
Abstract:
Improved lossless entropy coding techniques for coding of image data include selecting a context for entropy coding based on an ordered scan path of possible context locations. A symbol for a current location within a source image may be entropy coded based on a context of prior encoded symbols of other locations within source images, where the context is selected based on an ordered scan path enumerating a series of potential context locations within one or more source images. To select a context, a predetermined number of prior symbols may be selected by qualifying or disqualifying locations in the scan path, and then the current symbol may be encoded with a context based on prior symbols corresponding to the first qualifying context locations in the order of the scan path.
Abstract:
A cross-component based filtering system is disclosed for video coders and decoders. The filtering system may include a filter having an input for a filter offset and an input for samples reconstructed from coded video data representing a native component of source video on which the filter operates. The offset may be generated at least in part from a sample classifier that classifies samples reconstructed from coded video data representing a color component of the source video orthogonal to the native component according to sample intensity.
Abstract:
A flexible coefficient coding (FCC) approach is presented. In the first aspect, spatial sub-regions are defined over a transform unit (TU) or a prediction unit (PU). These sub-regions organize the coefficient samples residing inside a TU or a PU into variable coefficient groups (VCGs). Each VCG corresponds to a sub-region inside a larger TU or PU. The shape of VCGs or the boundaries between different VCGs may be irregular, determined based on the relative distance of coefficient samples with respect to each other. Alternatively, the VCG regions may be defined according to scan ordering within a TU. Each VCG can encode a 1) different number of symbols for a given syntax element, or a 2) different number of syntax elements within the same TU or PU. Whether to code more symbols or more syntax elements may depend on the type of arithmetic coding engine used in a particular coding specification. For multi-symbol arithmetic coding (MS-AC), a VCG may encode a different number of symbols for a syntax element. For example, to encode absolute coefficient values inside a TU after performing a transform such as the discrete cosine transform (DCT), a VCG region may be defined around lower-frequency transform coefficients and for that VCG M-symbols can be encoded the absolute coefficient values. Another VCG region can be defined around the higher-frequency transform coefficients to encode K-symbols, where K may be different than M. For binary arithmetic coders (BACs), FCC allows for coding a variable number of syntax elements in different VCGs. In this case, one VCG in a TU may code M-syntax elements associated with signaling the absolute coefficient value, where each one of the M-syntax elements may have 2-symbols. Probability models and context derivation rules may be tailored for each VCG in a given TU or PU. Since each VCG may code a different number of symbols or syntax elements in different spatial locations of a TU or PU, different context models may be used for each VCG to provide better granularity for entropy modeling for arithmetic coding. Furthermore, different VCGs may also use different entropy coders including combinations of arithmetic coding, Golomb-Rice coding, Huffman coding.
Abstract:
Video coders and decoders perform transform coding and decoding on blocks of video content according to an adaptively selected transform type. The transform types are organized into a hierarchy of transform sets where each transform set includes a respective number of transforms and each higher-level transform set includes the transforms of each lower-level transform set within the hierarchy. The video coders and video decoders may exchange signaling that establishes a transform set context from which a transform set that was selected for coding given block(s) may be identified. The video coders and video decoders may exchange signaling that establishes a transform decoding context from which a transform that was selected from the identified transform set to be used for decoding the transform unit. The block(s) may be coded and decoded by the selected transform.
Abstract:
Techniques are disclosed for coding video in applications where regions of video are inactive on a frame to frame basis. According to the techniques, coding processes update and reconstruct only a subset of pixel blocks of pixels within a frame, while other pixel blocks are retained from a previously coded frame stored in a coder's or decoder's reference frame buffer. The technique is called Backward Reference Updating (or “BRU”) for convenience. At a desired pixel block granularity, based on the activity between a current frame to be coded and its reference frame(s), BRU will only perform prediction, transform, quantization, and reconstruction on selected regions that are determined to be active. The reconstructed pixels in these active regions are directly placed onto a specified reference frame in memory instead of creating a new frame. Therefore, fewer memory transfers need to be performed.
Abstract:
Techniques are disclosed for improved video coding with virtual reference frames. A motion vector for prediction of a pixel block from a reference may be constrained based on the reference. In as aspect, if the reference is a temporally interpolated virtual reference frame with corresponding time close to the time of the current pixel block, the motion vector for prediction may be constrained magnitude and/or precision. In another aspect, a bitstream syntax for encoding the constrained motion vector may also be constrained. In this manner, the techniques proposed herein contribute to improved coding efficiencies.
Abstract:
Techniques are disclosed for generating virtual reference frames that may be used for prediction of input video frames. The virtual reference frames may be derived from already-coded reference frames and thereby incur reduced signaling overhead. Moreover, signaling of virtual reference frames may be avoided until an encoder selects the virtual reference frame as a prediction reference for a current frame. In this manner, the techniques proposed herein contribute to improved coding efficiencies.