Abstract:
Techniques for efficient coding of digital media data are presented. A resource controller component dynamically allocates computing resources between an estimator component and a coder component. The estimator component generates an initial motion estimation of a raw video frame of a sequence of raw video frames based on a previous raw video frame. The coder component encodes the previous raw video frame to generate a reconstructed video frame in parallel with the generation of the initial motion estimation. When the previous raw video frame is reconstructed, the coder component dynamically determines whether and/or how to refine the motion estimation to encode the raw video frame based on a predefined encoding criterion. In making that determination, the coder component selects and uses a mode(s) of motion estimation refinement from a plurality of available motion estimation refinement modes to encode the raw video frame.
Abstract:
Object-based intra-prediction decoding may include generating a reconstructed block by decoding an encoded block, which may include identifying a first intra-prediction mode for a first portion of the reconstructed block and identifying a second intra-prediction mode for a second portion of the reconstructed block. Decoding the encoded block may include generating a first portion of a prediction block using the first intra-prediction mode, generating a second portion of the prediction block using the second intra-prediction mode, generating the first portion of the reconstructed block based on the first portion of the prediction block, such that the first portion of the reconstructed block corresponds to a first object represented in the reconstructed block, and generating the second portion of the reconstructed block based on the second portion of the prediction block, such that the second portion of the reconstructed block corresponds to a second object represented in the reconstructed block.
Abstract:
Second-order orthogonal spatial intra-prediction may include generating a reconstructed frame by generating a plurality of reconstructed blocks by decoding a portion of the current encoded frame, generating a decoded residual block by decoding a current block from the current encoded frame, identifying a current pixel location in the current block, identifying reconstructed pixels in respective reconstructed blocks, wherein first and second reconstructed pixels are at respective oblique angle to the current pixel location, and a third reconstructed pixel at the second oblique angle to the first reconstructed pixel or at the first oblique angle to the second reconstructed pixel, determining a predictor pixel for the current pixel location using a difference between the third reconstructed pixel and a sum of the first reconstructed pixel and the second reconstructed pixel, and identifying a reconstructed pixel as a sum of the predictor pixel and a corresponding residual pixel.
Abstract:
Encoding and decoding is accomplished herein using a reference picture list. Reference frames are identified with picture numbers and are assigned to reference picture buffers when used for encoding. The picture numbers associated the reference frames in the reference picture buffers are ranked. Reordering can occur to assign short word lengths to those reference frames used frequently for prediction. The resulting encoded reference picture list is sent to a decoder. The decoder decodes the reference picture list. By comparing picture numbers in the reference picture list with picture numbers of reference picture buffers of the decoder, the encoder and decoder buffers can remain in sync even under packet loss conditions. For example, the decoder can use the decoded reference picture list to determine missing and unused reference frames.
Abstract:
Techniques for efficient coding of digital media data are presented. A resource controller component dynamically allocates computing resources between an estimator component and a coder component. The estimator component generates an initial motion estimation of a raw video frame of a sequence of raw video frames based on a previous raw video frame. The coder component encodes the previous raw video frame to generate a reconstructed video frame in parallel with the generation of the initial motion estimation. When the previous raw video frame is reconstructed, the coder component dynamically determines whether and/or how to refine the motion estimation to encode the raw video frame based on a predefined encoding criterion. In making that determination, the coder component selects and uses a mode(s) of motion estimation refinement from a plurality of available motion estimation refinement modes to encode the raw video frame.
Abstract:
Systems, devices, and techniques for providing shortcuts to applications of a computing device are described. In one example, a method includes outputting, for display at a screen, a plurality of input nodes while the computing device is in a locked state and receiving an indication of a selection of a set of the plurality of input nodes in a defined order. The method may also include determining that the selection matches a predetermined selection order of the input nodes, the predetermined selection order being associated with the computing device. The method may also include, responsive to the determining, outputting, for display in place of at least one of the plurality of input nodes at the screen, an icon representative of an operation executable by the computing device, receiving an indication of a selection of the icon, and responsive to receiving the indication, executing the operation.
Abstract:
A method for encoding a frame having a plurality of blocks in a video stream using transform-domain intra prediction is disclosed. The method includes generating, using a two-dimensional transform, a set of transform coefficients for a current block; generating, using a one-dimensional transform, a set of transform coefficients for previously coded pixel values in the frame; determining, using the set of transform coefficients for the previously coded pixel values, a set of transform coefficients for a prediction block; determining a residual based on the difference between the set of transform coefficients for the current block and the set of coefficients for the prediction block; and encoding the residual.
Abstract:
Coding a video stream having a plurality of frames is disclosed. A frame of a video stream is processed to determine if direct motion prediction can be applied to the macroblocks of the frame. Macroblocks to which direct motion can be applied are grouped into superblocks. The distribution of superblock size and configuration is analyzed to determine variable-length codes that can vary for each frame or segment encoded using direct prediction superblocks, thereby reducing the number of bits used to indicate superblock encoding in the encoded video stream.
Abstract:
A block of a frame of a video stream can be encoded using lossless coding that generates a transform domain residual block and a spatial domain difference block. The compression ratio of the coding may be improved by selecting an optimal quantization value on a per-block basis. The optimal quantization value can be selected by quantizing a residual block resulting from prediction of the block using a plurality of candidate quantization values and selecting the candidate quantization value that results in the fewest number of bits for the quantized residual block.
Abstract:
Edge-selective intra coding may include encoding a first input block, generating a first reconstructed block by decoding the first encoded block, determining a reconstruction error block based on a difference between the first input block and the first reconstructed block, identifying a second input block from the first input frame, and determining a plurality of refined context pixels. Determining a plurality of refined context pixels may include identifying a plurality of context pixels from the reconstruction error block, generating a plurality of encoded context pixels by encoding the plurality of context pixels, generating a plurality of reconstructed context pixels by decoding the plurality of encoded context pixels, and adding at least a portion of the reconstruction error block and the plurality of reconstructed context pixels. The method may include generating a second encoded block by encoding the second input block based on the plurality of refined context pixels.