IP Library Granted Patent US 9,100,657
Granted Patent B1
US 9,100,657 · App. 13/313,272 · Granted Aug 4, 2015

Encoding time management in parallel real-time video encoding

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,100,657
App. No.
13/313,272
Granted
Aug 4, 2015
Kind
B1
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.

Claims (22)

1. A system, comprising:

a memory that stores computer executable components; and

at least one processor that executes the following computer executable components stored in the memory:

a coder component configured to encode a raw video frame of a sequence of raw video frames of a video;

a coder management component configured to control encoding of the raw video frame and identify a refinement mode from a plurality of refinement modes, in accordance with at least one predefined encoding criterion, to facilitate the encoding of at least a portion of the raw video frame within a predefined target period of time;

a statistics component configured to contain encoding-related statistics with the plurality of refinement modes, including the refinement mode; and

an analyzer component configured to derive a predicted amount of time to encode for the refinement mode based at least in part on the encoding-related statistics associated with the refinement mode, wherein the encoding-related statistics comprise a range designated by a minimum predicted amount of time to encode and a maximum predicted amount of time to encode, wherein the coder management component is further configured to derive the predicted amount of time to encode as a function of the minimum predicted amount of time to encode and the maximum predicted amount of time to encode.

2. A system, comprising:

a memory that stores computer executable components; and

at least one processor that executes the following computer executable components stored in the memory:

a coder component configured to encode a raw video frame of a sequence of raw video frames of a video;

a coder management component configured to control encoding of the raw video frame and identify a refinement mode from a plurality of refinement modes, in accordance with at least one predefined encoding criterion, to facilitate the encoding of at least a portion of the raw video frame within a predefined target period of time;

a statistics component configured to contain encoding-related statistics with the plurality of refinement modes, including the refinement mode; and

an analyzer component configured to derive a predicted amount of time to encode for the refinement mode based at least in part on the encoding-related statistics associated with the refinement mode, wherein the predicted amount of time to encode for the refinement mode is based at least in part on at least one of historical real amounts of time to encode, a quantization level, residual data, block types in a segment of the raw video frame, or segment position in the raw video frame.

3. A system, comprising:

a memory that stores computer executable components; and

at least one processor that executes the following computer executable components stored in the memory:

a coder component configured to encode a raw video frame of a sequence of raw video frames of a video;

a coder management component configured to control encoding of the raw video frame and identify a refinement mode from a plurality of refinement modes, in accordance with at least one predefined encoding criterion, to facilitate the encoding of at least a portion of the raw video frame within a predefined target period of time;

a statistics component configured to contain encoding-related statistics with the plurality of refinement modes, including the refinement mode;

an analyzer component configured to derive a predicted amount of time to encode for the refinement mode based at least in part on the encoding-related statistics associated with the refinement mode; and

an update component configured to update the encoding-related statistics dynamically based at least in part on statistical information obtained from a recent encode of prior raw video frame via use of the refinement mode.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2011
From: JIA, WEI; GU, QUNSHAN
To: GOOGLE INC.
Reel/Frame 027339/0907 →