IP Library Granted Patent US 7,519,229
Granted Patent B2
US 7,519,229 · App. 10/811,955 · Granted Apr 14, 2009

Video coding system providing separate coding chains for dynamically selected small-size or full-size playback

Assignee: Apple, Inc.
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 7,519,229
App. No.
10/811,955
Granted
Apr 14, 2009
Kind
B2
Abstract

Embodiments of the present invention provide a coding system that codes data according to a pair of coding chains. A first coding chain generates coded video data that can be decoded by itself to represent a source video sequence of a small size, such as a size sufficient to support the real time playback and display features of a video editing application. The second coding chain generates coded video data representing supplementary data, which when decoded in conjunction with the coded video data of the first coding chain, yields the source video sequence for full-size display. The output of the first coding chain may be stored in memory in a file structure that can be accessed independently of the second chain's output and, therefore, it facilitates real time decoding and playback.

Claims (62)

1. A video coding method, comprising:

organizing each frame of input video into a plurality of blocks of pixels,

for each block:

coding the block as a plurality of coefficients according to a predetermined transform,

quantizing the block of coefficients according to a quantization parameter,

extracting a sub-set of coefficients;

coding a pair of sub-sets according to run length coding and storing the result therefrom in a first file, wherein the run length coding of the pair of sub-sets is done according to a scan direction that:

progresses across a first sub-set of the pair in a zig-zag from a lowest frequency coefficient to a highest frequency coefficient therein,

advances to a highest frequency coefficient of a second sub-set of the pair, and

progresses across the second sub-set in a zig-zag from the highest frequency coefficient to a lowest frequency coefficient therein,

coding the remaining coefficients according to run length coding and storing the results therefrom in a second file separate from the first file.

2. The video coding method of claim 1 , wherein the transform is a discrete cosine transform.

3. The video coding method of claim 1 , wherein the transform is wavelet decomposition.

4. The video coding method of claim 1 , further comprising for at least one block, predicting image data of the block from a neighboring block.

5. The video coding method of claim 1 , wherein each frame in a video sequence is coded as an intra coded frame.

6. The video coding method of claim 1 , wherein the input video data is obtained from a video capture device.

7. The video coding method of claim 1 , wherein the input video data is obtained from decoding of predictively coded data.

8. A computer readable storage medium having stored thereon two files containing coded video data generated from a process, the process comprising:

organizing each frame of input video into a plurality of blocks of pixels,

for each block:

coding the block as a plurality of coefficients according to a predetermined transform,

quantizing the block of coefficients according to a quantization parameter,

extracting a sub-set of coefficients;

coding pair of sub-sets according to run length coding using a scan direction that:

progresses across a first sub-set of the pair in a zig-zag from a lowest frequency coefficient to a highest frequency coefficient therein,

advances to a highest frequency coefficient of a second sub-set of the pair, and

progresses across the second sub-set in a zig-zag from the highest frequency coefficient to a lowest frequency coefficient therein,

coding the remaining coefficients according to run length coding,

wherein the coded data representing the extracted coefficients are stored in a first file on the computer readable storage medium to be accessed separately from a second file stored on the computer readable storage medium storing the coded data representing the remaining coefficients.

9. The medium of claim 8 , wherein the coded data representing the extracted coefficients of multiple frames from a video sequence are stored together on a first portion of the computer readable storage medium, and the coded data representing the remaining coefficients are stored on a second portion thereof.

10. A computer readable storage medium storing program instructions that when executed cause an executing device to perform the method comprising:

organizing each frame of input video into a plurality of blocks of pixels,

for each block:

coding the block as a plurality of coefficients according to a predetermined transform,

quantizing the block of coefficients according to a quantization parameter,

extracting a sub-set of coefficients;

coding a pair of sub-sets according to run length coding and storing the result therefrom in a first portion of storage, wherein the run length coding of the pair of sub-sets is done according to a scan direction that:

progresses across a first sub-set of the pair in a zig-zag from a lowest frequency coefficient to a highest frequency coefficient therein,

advances to a highest frequency coefficient of a second sub-set of the pair, and

progresses across the second sub-set in a zig-zag from the highest frequency coefficient to a lowest frequency coefficient therein,

coding the remaining coefficients according to run length coding and storing the results therefrom in a second portion of storage separate from the first portion.

11. The medium of claim 10 , wherein the coded data representing the extracted coefficients of multiple frames from a video sequence are stored together on a first portion of the storage, and the coded data representing the remaining coefficients are stored on a second portion thereof.

12. A video coding method, comprising:

organizing each frame of input video into a plurality of blocks of pixels,

for each block:

coding the block as a plurality of coefficients according to a predetermined transform,

quantizing the block of coefficients according to a quantization parameter;

coding a pair of blocks according to run length coding using a scan direction that:

progresses across a first block of the pair in a zig-zag from a lowest frequency coefficient to a highest frequency coefficient therein,

advances to a highest frequency coefficient of a second block of the pair, and

progresses across the second block in a zig-zag from the highest frequency coefficient to a lowest frequency coefficient therein.

13. The video coding method of claim 12 , wherein the transform is a discrete cosine transform.

14. The video coding method of claim 12 , wherein the transform is wavelet decomposition.

15. A computer readable storage medium storing program instructions that when executed cause an executing device to perform the method comprising:

organizing each frame of input video into a plurality of blocks of pixels,

for each block:

coding the block as a plurality of coefficients according to a predetermined transform,

quantizing the block of coefficients according to a quantization parameter;

run length encoding a pair of blocks according to a scan direction that:

progresses across a first block of the pair ma zigzag from a lowest frequency coefficient to a highest frequency coefficient therein,

advances to a highest frequency coefficient of a second block of the pair, and

progresses across the second block in a zig-zag from the highest frequency coefficient to a lowest frequency coefficient therein.

Assignments (3)
CHANGE OF NAME Recorded Apr 23, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019219/0721 →
RECORD TO CORRECT THE 1ST CONVEYING PARTY'S NAME, PREVIOUSLY RECORDED AT REEL 015710, FRAME 0850. Recorded Apr 25, 2005
From: WALLACE, GREGORY KENT; GUO, HAITAO; OSLICK, MITCHELL
To: APPLE COMPUTER, INC.
Reel/Frame 016161/0317 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2004
From: WALLACE, GREGORY KEN; GUO, HAITAO; OSLICK, MITCHELL
To: APPLE COMPUTER, INC.
Reel/Frame 015710/0850 →
Continuity (1)
Related Publication 20050226513A1 · Oct 13, 2005