IP Library Granted Patent US 8,665,951
Granted Patent B2
US 8,665,951 · App. 13/617,864 · Granted Mar 4, 2014

Video compression and encoding method

Inventors: Eric Ameres (Cohoes, NY); James Bankoski (Wynantskill, NY); Adrian W Grange (Cambridgeshire, GB); Tim Murphy (New York, NY); Paul G Wilkins (Cambridge, GB); Yaowu Xu (San Diego, CA)
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 8,665,951
App. No.
13/617,864
Filed
Sep 14, 2012
Granted
Mar 4, 2014
Kind
B2
Art Unit
2482
USPC
375/240.16
Abstract

Disclosed herein is a method for decoding a video signal having at least one frame with a plurality of blocks including a current block, including generating, for at least a selected pixel in the current block, a predicted value for at least one pixel located in a row i and a column j of the current block using a processor and according to the following equation: X ij =L i +A j −C; wherein X ij is the predicted value, L i is the value of a pixel to the left of the current block, A j is the value of a pixel in a row above the current block and C is the value of a pixel in the row above and the column to the left of the current block and decoding the current block using the predicted value.

Claims (50)

1. A method for decoding a video signal having a plurality of images, comprising:

subdividing each of the plurality of images into a set of fixed partitions;

selecting one of a plurality of alternative subdivisions using a processor to further subdivide at least one of the set of fixed partitions into one or more segments, wherein the selected alternative subdivision is chosen based on a combined error score determined in an encoder by:

further subdividing each of the set of fixed partitions into segments according to the plurality of alternative subdivisions;

selecting an optimal motion vector for each segment in each of the plurality of alternative subdivisions based on an error score for each segment; and

calculating the combined error score for each of the plurality of alternative subdivisions equal to the sum of the error scores for each segment of a corresponding subdivision;

wherein the selected alternative subdivision corresponds to the alternative subdivision having the lowest combined error score.

2. The method of claim 1 , further comprising:

receiving and decoding a motion vector for each segment in the selected alternative subdivision.

3. The method of claim 1 , wherein each of the one or more segments including at least one block of pixels.

4. The method of claim 1 , wherein the optimal motion vector is selected from a previously encoded partition.

5. The method of claim 1 , wherein the plurality of alternative subdivisions comprises a fixed set of subdivisions.

6. The method of claim 1 , wherein at least a portion of the plurality of alternative subdivisions comprises at least one of:

a) a fixed set of subdivisions;

b) a set of subdivisions derived from labeling functions; or

c) both a first set of fixed subdivisions and a second set of subdivisions that are derived from labeling functions.

7. The method of claim 6 , wherein the labeling functions includes at least one of the following: grouping blocks into segments according to variance; grouping blocks into segments according to average pixel intensity; or grouping blocks into segments according to error score.

8. The method of claim 6 , wherein multiple subdivisions are created using each labeling function of different thresholds.

9. The method of claim 1 , wherein selecting the motion vector further comprises at least one of the following:

performing a motion search for each block or segment and encoding the resulting new motion vectors;

using the same motion vector as the block or segment to the left of the current block or segment;

using the same motion vector as the block or segment above the current block or segment;

using a zero motion vector (0,0); or

using a previously encoded motion vector from a block or segment that is not immediately adjacent to the current block or segment.

10. The method of claim 1 , wherein the error score is calculated using a rate distortion calculation.

11. The method of claim 1 , wherein the error score is calculated using a prediction error calculated as one of the sum squared error or the sum of absolute differences.

12. An apparatus for decoding a video signal having at least one image, comprising:

a memory; and

a processor configured to execute instructions stored in the memory to: subdivide each image into a set of fixed partitions;

select one of a plurality of alternative subdivisions using a processor to further subdivide at least one of the set of fixed partitions into one or more segments, wherein the selected alternative subdivision is chosen based on a combined error score determined in an encoder by:

further subdivide each of the set of fixed partitions into segments according to the plurality of alternative subdivisions;

select an optimal motion vector for each segment in each of the plurality of alternative subdivisions based on an error score for each segment; and

calculate the combined error score for each of the plurality of alternative subdivisions equal to the sum of the error scores for each segment of a corresponding subdivision;

wherein the selected alternative subdivision corresponds to the alternative subdivision having the lowest combined error score.

13. The method of claim 12 , wherein the processor is further configured to execute instructions stored in the memory to:

receive and decode a motion vector for each segment in the selected alternative subdivision.

14. The method of claim 12 , wherein each of the one or more segments including at least one block of pixels.

15. The method of claim 12 , wherein the optimal motion vector is selected from a previously encoded partition.

16. The method of claim 12 , wherein the combined error score calculating step iv) of a current partition uses error scores calculated from a previously encoded partition.

17. The method of claim 12 , wherein the selected alternative subdivision is selected from a previously encoded partition.

18. The method of claim 12 , wherein the plurality of alternative subdivisions comprises a fixed set of subdivisions.

19. A method for decoding a video signal having a plurality of images, each image partitioned into a set of 16×16 block of pixels, comprising:

receiving an indication of a selection of one of a plurality of alternative subdivisions for at least one of the 16×16 block of pixels;

subdividing, using a processor, the at least one 16×16 block of pixels into a plurality of segments based on the indication;

wherein the indication of the selection of one of the plurality of alternative subdivisions is determined in an encoder by:

further subdividing at least some of the 16×16 block of pixels into segments according to the plurality of alternative subdivisions;

selecting a motion vector for each segment in each of the plurality of subdivisions based on an error score for each segment; and

calculating a combined error score for each of the plurality of alternative subdivisions equal to the sum of the error scores for each segment of a corresponding subdivision;

wherein the indication is associated with the alternative subdivision having the lowest combined error score.

20. The method of claim 19 , wherein the indication is transmitted in a bitstream representing the video signal.

Assignments (5)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2012
From: AMERES, ERIC L.; BANKOSKI, JAMES B.; GRANGE, ADRIAN W.; XU, YAOWU; WILKINS, PAUL
To: ON2 TECHNOLOGIES, INC.
Reel/Frame 029446/0331 →
MERGER Recorded Dec 11, 2012
From: ON2 TECHNOLOGIES, INC.
To: ON2 TECHNOLOGIES, LLC
Reel/Frame 029446/0361 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2012
From: ON2 TECHNOLOGIES, LLC
To: GOOGLE INC.
Reel/Frame 029446/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2012
From: MURPHY, TIM
To: GOOGLE INC.
Reel/Frame 029446/0447 →
Continuity (4)
Continuation 13066668 · Apr 21, 2011
Continuation 11170629 · Jun 28, 2005
Provisional Application 60583872 · Jun 28, 2004
Related Publication 20130010868A1 · Jan 10, 2013