IP Library Patent Application 11453143
Patent Application
App. No. 11/453,143

Controlling buffer states in video compression coding to enable editing and distributed encoding

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 None
App. No.
11/453,143
Abstract

An encoder includes a parser, a plurality of encoder engines and an assembler. The parser divides a portion of a received digital data stream into a plurality of segments having a begin boundary and an end boundary. The plurality of encoder engines independently encode the plurality of segments to accommodate a begin buffer status condition corresponding to each begin boundary and an end buffer status condition corresponding to each end boundary, thereby producing a plurality of corresponding encoded segments. The assembler combines the plurality of encoded segments to form a portion of an encoded digital data stream. The encoder engines verify the begin and the end buffer status conditions are satisfied for each encoded segment and also verify each encoded segment prevents an overflow and an underflow of a modeled decoder buffer. Any violating segment is re-encoded and re-verified prior to assembly.

Claims (57)

1 . A method of coding video data, comprising:

parsing a video data sequence into separate segments,

coding each segment independently of the other segments by an iterative coding process, comprising:

coding a respective segment according to default coding parameters,

modeling buffer fullness at a receiver based on an estimated initial buffer fullness level and the coded segment, and

if the modeled buffer fullness reaches a violation condition or if the modeled buffer fullness at an end of the respective segment fails to reach an estimated final buffer fullness level, modifying the coding parameters for a next iteration of the coding process; and

multiplexing the coded segments into a coded video data signal.

2 . The method of claim 1 , wherein the estimated initial buffer fullness level is a set value between a 50% and a 100% fullness condition.

3 . The method of claim 2 , wherein the set value is 60%.

4 . The method of claim 1 , wherein the estimated final buffer fullness level is a set value between a 50% and a 100% fullness condition.

5 . The method of claim 4 , wherein the set value is 60%.

6 . The method of claim 1 , wherein the estimated initial buffer fullness level is a fullness condition MIN to MAX range.

7 . The method of claim 6 , wherein the fullness condition MIN to MAX range is from a 50% to a 100% fullness condition.

8 . The method of claim 1 , wherein the estimated final buffer fullness level is a fullness condition MIN to MAX range.

9 . The method of claim 8 , wherein the fullness condition MIN to MAX range is from a 50% to a 100% fullness condition.

10 . The method of claim 1 , further comprising re-coding boundaries of adjacent coded segments.

11 . A method for encoding a portion of a digital data stream, comprising:

parsing the portion of the digital data stream into a plurality of segments, each segment having a begin boundary and an end boundary;

encoding each segment separately to accommodate a begin buffer status condition corresponding to each begin boundary and an end buffer status condition corresponding to each end boundary; and

assembling the encoded segments to form a portion of an encoded digital data stream.

12 . The method of claim 11 , wherein encoding comprises encoding each segment in parallel.

13 . The method of claim 11 , wherein encoding comprises encoding each segment independently.

14 . The method of claim 11 , further comprising modeling a decoder buffer.

15 . The method of claim 14 , further comprising verifying the begin buffer status condition and the end buffer status condition are satisfied for each encoded segment received by the modeled decoder buffer.

16 . The method of claim 15 , further comprising re-encoding each encoded segment violating one of the begin buffer status condition and the end buffer status condition.

17 . The method of claim 14 , further comprising verifying each encoded segment prevents an overflow and an underflow of the modeled decoder buffer between a begin boundary and an end boundary of each encoded segment.

18 . The method of claim 17 , further comprising re-encoding each encoded segment causing one of the overflow and the underflow of the modeled decoder buffer.

19 . The method of claim 11 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined value between a maximum capacity and a minimum capacity of the modeled decoder buffer.

20 . The method of claim 11 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined range between a maximum capacity and a minimum capacity of the decoder buffer.

21 . The method of claim 11 , further comprising re-encoding boundaries of adjacent encoded segments.

22 . The method of claim 11 , wherein parsing comprises parsing the portion of the digital data stream into a plurality of overlapping segments.

23 . The method of claim 22 , further comprising jointly encoding an shared region of adjacent overlapping segments.

24 . The method of claim 11 , wherein assembling comprises concatenating the encoded segments.

25 . An encoder, comprising:

a parser to divide a portion of a digital data stream into a plurality of segments, each segment having a begin boundary and an end boundary;

a plurality of encoder engines to independently encode the plurality of segments to accommodate a begin buffer status condition corresponding to each begin boundary and an end buffer status condition corresponding to each end boundary, thereby producing a plurality of corresponding encoded segments; and

an assembler to combine the plurality of encoded segments to form a portion of an encoded digital data stream.

26 . The encoder of claim 25 , wherein the plurality of encoder engines implement a compression algorithm.

27 . The encoder of claim 26 , wherein the compression algorithm is one of the Moving Picture Experts Group (MPEG) video compression standards.

28 . The encoder of claim 26 , wherein the compression algorithm is an International Telecommunication Union (ITU) H.264 standard.

29 . The encoder of claim 28 , wherein the portion of the encoded digital data stream includes a variable bit rate delivery mechanism in accordance with Annex E of the ITU H.264 standard.

30 . The encoder of claim 25 , wherein the plurality of encoder engines verify the begin buffer status condition and the end buffer status condition are satisfied for the plurality of encoded segments.

31 . The encoder of claim 30 , wherein the plurality of encoder engines re-encode any encoded segment violating one of the begin buffer status condition and the end buffer status condition.

32 . The encoder of claim 25 , wherein the plurality of encoder engines verify the plurality of encoded segments prevent an overflow and an underflow of a modeled decoder buffer.

33 . The encoder of claim 32 , wherein the plurality of encoder engines re-encode any encoded segment causing one of the overflow and the underflow of the modeled decoder buffer.

34 . The encoder of claim 25 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined value between a maximum capacity and a minimum capacity of a modeled decoder buffer.

35 . The encoder of claim 25 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined range between a maximum capacity and a minimum capacity of a modeled decoder buffer.

36 . A method for encoding a portion of a digital data stream, comprising:

parsing the portion of the digital data stream into one or more segments;

encoding the one or more segments such that a begin boundary of each encoded segment accounts for a begin buffer status condition of a modeled decoder buffer;

verifying the one or more encoded segments prevent an overflow and an underflow of the modeled decoder buffer; and

verifying the one or more encoded segments satisfy an end buffer status condition at an end boundary of each encoded segment.

37 . The method of claim 36 , further comprising re-encoding any encoded segment causing an underflow or an overflow of the modeled decoder buffer.

38 . The method of claim 36 , further comprising re-encoding any encoded segment violating the end buffer status condition.

39 . The method of claim 36 , further comprising concatenating the one or more encoded segments to form a portion of an encoded digital data stream.

40 . The method of claim 36 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined value between a minimum capacity and a maximum capacity of the modeled decoder buffer.

41 . The method of claim 36 , wherein the begin buffer status condition and the end buffer status condition comprise a predetermined range between a minimum capacity and a maximum capacity of the modeled decoder buffer.

Assignments (2)
CHANGE OF NAME Recorded Apr 23, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019219/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2006
From: TONG, XIN; WU, HSI-JUNG; HASKELL, BARIN GEOFFRY
To: APPLE COMPUTER, INC.
Reel/Frame 017977/0935 →