Computationally constrained video encoding
AssigneeQUALCOMM Incorporated
InventorChienchung Chang
Life of this patent
Estimating the term…
Abstract
Video encoding techniques are described that involve determining a number of processing cycles used during encoding of a video frame, and encoding the video frame without using motion estimation techniques when a number of processing cycles used during encoding exceeds a threshold. For example, the threshold may define a number of processing cycles available for encoding of the given video frame, and the determined number of processing cycles may be a counted number of cycles used during the encoding process of the given video frame. If the number of processing cycles used during encoding exceeds the threshold, motion estimation techniques can be discontinued in favor of less computationally intensive encoding techniques such as texture encoding.
Claims57
A device comprising:
- an encoder that encodes video frames by determining a number of processing cycles used as a given video frame is encoded, and selecting an encoding mode based on the determined number of processing cycles;
- and
- a transmitter that transmits the encoded video frames.
A method comprising:
- determining a number of processing cycles used during encoding of a video frame;
- and
- selectively encoding the video frame based on the determined number of processing cycles.
A method comprising:
- establishing a threshold to define a number of available processing cycles for encoding a video frame;
- determining a number of processing cycles used during encoding of the video frame;
- encoding the video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold;
- and
- encoding the video frame without using motion estimation techniques when the number of processing cycles used during encoding is greater than the threshold.
A device comprising:
- an encoder that encodes video frames by establishing a threshold to define a computational budget for encoding a given video frame, determining a number of processing cycles used during encoding of the given video frame, encoding the given video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold, and encoding the given video frame without using motion estimation techniques when the number of processing cycles used during encoding is greater than the threshold;
- and
- a transmitter that transmits the encoded video frames.
An apparatus comprising:
- a memory that stores computer executable instructions;
- and
- a processor that executes the instructions to determine a number of processing cycles used during encoding of a given video frame and select an encoding mode to encode the given video frame based on the determined number of processing cycles.
An apparatus comprising:
- a memory that stores computer executable instructions and a threshold that defines a computational budget for a video encoding routine;
- and
- a processor that executes the instructions to establish the threshold stored in memory, determine a number of processing cycles used during encoding of a given video frame, encode the given video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold, and encode the given video frame without using motion estimation techniques when the number of processing cycles used during encoding is greater than the threshold.
An apparatus that encodes video blocks according to an MPEG-4 standard by:
- determining a number of processing cycles used during encoding of a video frame;
- and
- selectively encoding the video frame using different encoding modes based on the determined number of processing cycles.
An apparatus that encodes video blocks according to an MPEG-4 standard by:
- establishing a threshold number of processing cycles;
- determining a number of processing cycles used during encoding of the video frame;
- encoding the video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold;
- and
- encoding the video frame without using motion estimation techniques when the number of processing cycles used during encoding is greater than the threshold.
A computer readable medium comprising instructions that upon execution in a device that encodes video streams compliant with an MPEG-4 standard:
- determine a number of processing cycles used during encoding of a video frame;
- and
- selectively encode the video frame using different encoding modes based on the determined number of processing cycles.
A computer readable medium comprising instructions that upon execution in a device that encodes video streams compliant with an MPEG-4 standard:
- establish a threshold to define a computational budget for encoding a video frame;
- determine a number of processing cycles used during encoding of the video frame;
- encode the video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold;
- and
- encode the video frame without using motion estimation techniques when the number of processing cycles used during encoding is greater than the threshold.
An apparatus comprising:
- means for determining a number of processing cycles used during encoding of a video frame;
- and
- means for encoding the video frame without using motion estimation techniques when a number of processing cycles used during encoding exceeds a threshold.
An apparatus comprising:
- means for establishing a threshold to define a computational budget for encoding a video frame;
- means for determining a number of processing cycles used during encoding of the video frame;
- means for encoding the video frame using motion estimation techniques when a number of processing cycles used during encoding is less than the threshold;
- and
- means for encoding the video frame without using motion estimation techniques when a number of processing cycles used during encoding is greater than the threshold.
A method comprising:
- establishing a threshold to define a computational budget for encoding a video frame;
- determining a number of processing cycles used as the video frame is encoded;
- and
- adjusting an encoding routine based on the determined number of processing cycles relative to the threshold.
A computer readable medium comprising instructions that upon execution in a device that encodes video streams compliant with an MPEG-4 standard:
- establish a threshold to define a computational budget for encoding a video frame;
- determine a number of processing cycles used as the video frame is encoded;
- and
- adjust an encoding routine based on the determined number of processing cycles relative to the threshold.
An apparatus comprising:
- a memory that stores computer executable instructions and a threshold that defines a computational budget for a video encoding routine;
- and
- a processor that executes the instructions to establish the threshold, determine a number of processing cycles used as the video frame is encoded, and adjust the encoding routine based on the determined number of processing cycles relative to the threshold.
A method comprising:
- encoding a first portion of a video frame using a first encoding technique;
- and
- encoding a second portion of the video frame using a second encoding technique.
A method comprising:
- encoding a first set of video blocks of a video frame according to a first encoding mode when a number of processing cycles used during encoding of the video frame is less than a threshold;
- and
- encoding a second set of video blocks of the video frame according to a second encoding mode when the number of processing cycles exceeds the threshold.
A computer readable medium comprising a video frame encoded compliant with an MPEG-4 standard, wherein the video frame includes (N) video blocks, wherein a first sequence of video blocks (1 to M) are substantially encoded using motion vectors, and wherein a second sequence of video blocks (M+1 to N) are encoded without using motion vectors.
Dependencies are inferred from the claim text.