IP Library Granted Patent US 7,953,152
Granted Patent B1
US 7,953,152 · App. 11/170,629 · Granted May 31, 2011

Video compression and encoding method

Assignee: Google 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,953,152
App. No.
11/170,629
Granted
May 31, 2011
Kind
B1
Abstract

A method of compressing video data having at least one frame having at least one block and each block having an array of pixels is provided. The method transforms the pixels of each block into coefficients and creates an optimal transmission order of the coefficients. The method also optimizes the speed of processing compressed video data by partitioning the data bitstream and coding each partition independently. The method also predicts fractional pixel motion by selecting an interpolation method for each given plurality or block of pixels depending upon at least one metric related to each given block and varies the method from block to block. The method also enhances error recovery for a current frame using a frame prior to the frame immediately before the current frame as the only reference frame for lessening quality loss during data transmission. Enhanced motion vector coding is also provided.

Claims (69)

1. A method for inter prediction of blocks of pixels using motion vectors in a processor comprising:

specifying the location of a block in a previously decoded reference frame to be used as a predictor, relative to the spatial position of a block being predicted, by a two-dimensional motion vector;

specifying the motion vector to ½ or ⅛ pixel precision in the luma domain and ¼ or ⅛ pixel precision in U and V;

where a fractional pixel vector is used, deriving the predictor block using the processor by applying a 6-tap 2 dimensional interpolation filter, whose coefficients, when implemented as a separable 2-dimensional filter such that the predictor block is first filtered in one dimension (horizontal or vertical) and the resulting filtered block is then filtered in the other dimension, are as follows:

2

−11

108 

36

 −8

1

(¼ pixel)

3

−16

77

77

−16

3

(½ pixel)

1

 −8

36

108 

−11

2

(¾ pixel).

2. A method for inter prediction of blocks of pixels using motion vectors in a processor comprising:

specifying the location of a block in a previously decoded reference frame to be used as a predictor, relative to the spatial position of a block being predicted, by a two-dimensional motion vector;

specifying the motion vector to ½ or ⅛ pixel precision in the luma domain and ¼ or ⅛ pixel precision in U and V;

where a fractional pixel vector is used, deriving the predictor block using the processor by applying of an interpolation filter selected from a plurality of interpolation filters according to the content of the data being filtered,

wherein the plurality of interpolation filters includes a 6-tap 2 dimensional interpolation filter, whose coefficients, when implemented as a separable 2-dimensional filter such that the predictor block is first filtered in one dimension (horizontal or vertical) and the resulting filtered block is then filtered in the other dimension, are as follows:

2

−11

108 

36

 −8

1

(¼ pixel)

3

−16

77

77

−16

3

(½ pixel)

1

 −8

36

108 

−11

2

(¾ pixel).

3. The method according to claim 1 , wherein the filter is implemented using floating point or fixed point arithmetic.

4. A The method according to claim 1 , wherein the filter is not implemented as a separable 2 dimensional filter.

5. The method according to claim 2 , wherein the filters are implemented using floating point or fixed point arithmetic.

6. The method according to claim 2 , wherein the filters are not implemented as separable 2 dimensional filters.

7. The method according to claim 2 , wherein one of the filters that may optionally be selected is a 2-tap bi-linear filter.

8. The method according to claim 2 , wherein one of the filters that may optionally be selected is a 4-tap bi-cubic filter.

9. The method according to claim 2 , wherein the plurality of interpolation filters comprises: a bi-linear filter, a 4-tap bi-cubic filter, or a 6-tap filter.

10. The method according to claim 2 , wherein the basis for selecting between the plurality of interpolation filters is the magnitude of the sum of inter-pixel differences.

11. The method according to claim 9 , wherein the basis for selecting between the plurality of interpolation filters comprises:

defining a first sum of differences between horizontally neighboring pixels in a block;

defining a second sum of differences between vertically neighboring pixels in a block;

if the first sum of differences is less than a first threshold, selecting the bi-linear filter;

if the first sum of differences is greater than the first threshold but less than a second threshold, selecting the bi-cubic filter;

if the first sum of differences is greater than the second threshold but less than a third threshold, selecting the 6-tap filter;

if the second sum of differences is less than the first threshold, selecting the bi-linear filter;

if the second sum of differences is greater than the first threshold but less than the second threshold, selecting the bi-cubic filter; and

if the second sum of differences is greater than the second threshold but less than the third threshold, selecting the 6-tap filter,

wherein the first, second, and third thresholds may either be derived by an encoder and values coded in a bitstream, or have fixed values known to both the encoder and decoder.

Assignments (5)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044101/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2012
From: MURPHY, TIM
To: GOOGLE INC.
Reel/Frame 027965/0274 →
MERGER Recorded Nov 19, 2010
From: ON2 TECHNOLOGIES, INC.
To: ON2 TECHNOLOGIES, LLC
Reel/Frame 025377/0330 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2010
From: ON2 TECHNOLOGIES, LLC
To: GOOGLE INC.
Reel/Frame 025377/0406 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2007
From: AMERES, ERIC L.; BANKOSKI, JAMES B.; GRANGE, ADRIAN W.; XU, YAOWU; WILKINS, PAUL
To: ON2 TECHNOLOGIES, INC.
Reel/Frame 019421/0369 →
Continuity (1)
Provisional Application 60583872 · Jun 28, 2004