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:
Encoding a video signal having a plurality of frames is described. Test frames in the sequence of test frames have an original resolution. A variance for each test frame in the sequence is calculated, as is a first peak signal-to-noise ratio (PSNR) for each test frame using the original resolution. A threshold is determined using the variances and first PSNRs. The threshold is provided to an encoder to select a frame resolution for a first frame of the plurality of frames, the frame resolution being one of the original resolution or a resolution different from the original resolution.
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:
Disclosed herein are methods and apparatuses for encoding a video signal having a plurality of frames, each frame having a plurality of blocks and an original resolution. The method includes identifying a first frame from the plurality of frames that is predicted using inter prediction, determining a first variance for the first frame using a processor. selecting a first frame resolution from one of: (a) the original resolution or (b) a resolution lower than the original resolution for the first frame based on the first variance, and encoding the first frame using the selected first frame resolution.
Abstract:
A method includes performing, by a microprocessor of a computing device, a coding to obtain a residual of a residual data block from an original data block. The method includes pre-defining a default order of symbols in the residual data block. The method includes re-ordering the symbols in the residual data block in an order other than the default order, such that a first set of most frequently used symbols are in a first location and a second set of least frequently used symbols are in a second location, producing a multi-symbol run-length code based on a group of symbols from the first set of most frequently used symbols, and detecting the second set of least frequently used symbols based on the multi-symbol run-length code.
Abstract:
In one general aspect, a computer-readable storage medium storing instructions that when executed cause one or more processors to perform a process that can include sending from a client device to a host device an indicator of a size of a target display area of a moving window session with respect to a host display area of an application operating at the host device where the application can be remotely controlled via the client device. The process can include analyzing a stream of images associated with the target display area of the moving window session and defining at the client device a plurality of regions within the target display area based on the analyzing. The process can also include modifying the moving window session without terminating the moving window session and without establishing a new moving window session.
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 method and apparatus for scalable buffer remote access is provided. Scalable buffer remote access may include generating, at a client device, a scalable display buffer request indicating a portion of a display area of an operating environment of a host device and a scaling factor ratio, transmitting the scalable display buffer request to the host device, receiving rendered content including a scaled rendering of a representation of the portion of the display area of the host device, presenting a client display window including the rendered content as a window into the display area of the operating environment of the host device, receiving a zoom indication, and presenting an updated client display window based on the rendered content and the zoom indication or based on updated rendered content received from the host device.
Abstract:
The subject disclosure relates to managing windows in communications between a client device and a host device. It includes obtaining display information for a host device in response to a communication request from a client device, determining, based on the display information for the host device, a primary window to provide for display at the client device and identifying content associated with the primary window. The disclosure further includes determining display specifications of the client device, wherein the display specifications comprise at least one of display size, display type or content download settings and providing the identified content associated with the primary window for display on the client device according to the display specifications of the client device.
Abstract:
A method includes performing, by a microprocessor of a computing device, a coding to obtain a residual of a residual data block from an original data block. The method includes pre-defining a default order of symbols in the residual data block. The method includes re-ordering the symbols in the residual data block in an order other than the default order, such that a first set of most frequently used symbols are in a first location and a second set of least frequently used symbols are in a second location, producing a multi-symbol run-length code based on a group of symbols from the first set of most frequently used symbols, and detecting the second set of least frequently used symbols based on the multi-symbol run-length code.