IP Library Granted Patent US 8,325,796
Granted Patent B2
US 8,325,796 · App. 12/329,177 · Granted Dec 4, 2012

System and method for video coding using adaptive segmentation

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,325,796
App. No.
12/329,177
Granted
Dec 4, 2012
Kind
B2
Abstract

A method for decoding compressed video information is disclosed. The video information can include a plurality of frames each having a plurality of blocks. The method includes reading from the video information a segment map that associates blocks in the frame with four segment identifiers. Each segment identifier is associated with one or more segment parameters, such as quantization parameters, loop filter type, loop filter strength and sub-pixel interpolation filter. The blocks in each segment are then decoded using the associated segment parameters. Segment parameters can persist to following frames unless overwritten by a subsequent frame. A frame can also include a bit suppressing segmentation, in which case default parameters are used for all blocks in the frame.

Claims (54)

1. A method for decoding compressed video information including a plurality of frames, each having a plurality of blocks, comprising:

reading, from the video information, a segment map associating at least some of the plurality of blocks in a first frame of the plurality of frames with at least one segment identifier;

reading, from the video information, a current block to be decoded by a decoder;

reading, from the segment map, a segment identifier that is associated with the current block;

reading, from the video information, at least one segment parameter associated with the segment identifier that is associated with the current block, each segment parameter being a setting of the decoder; and

decoding the current block using the at least one segment parameter associated with the segment identifier that is associated with the current block.

2. The method of claim 1 , wherein the at least one segment parameter includes at least one of a quantization parameter, a loop filter type, a loop filter strength value or a sub-pixel interpolation filter.

3. The method of claim 2 , wherein a plurality of segment parameters are associated with the segment identifier and a first one of the plurality of segment parameters includes a value indicative of an alternate reference frame; and where the method further comprises:

updating the alternate reference frame using at least a second one of the plurality of segment parameters associated with the at least one segment identifier.

4. The method of claim 1 , further comprising:

determining whether a frame subsequent to the first frame specifies an updated segment parameter for a specific one of the segments; and

associating the updated segment parameter to the specific one of the segments.

5. The method of claim 2 , wherein the updated segment parameter is an incremental value to be added to the at least one segment parameter.

6. The method of claim 1 , further comprising:

reading, from the video information, a record indicative of a segmentation condition of a frame subsequent to the first frame; and

setting the at least one segment parameter to a respective default parameter and suppressing the reading of the segment map, the reading of the segment identifier and the reading of the at least one segment parameter for all blocks of the frame subsequent to the first frame when the segmentation condition indicates to not apply segmentation.

7. The method of claim 1 , wherein reading the segment map further comprises:

reading the at least one segment identifier in portions of the video information that are interleaved with data specific to the at least some of the plurality of blocks.

8. The method of claim 1 , wherein reading the segment map further comprises:

reading the at least one segment identifier in a header file associated with the first frame.

9. The method of claim 1 , further comprising:

determining whether a frame subsequent to the first frame is a key frame; and

setting the at least one segment parameter to a default value when the frame subsequent to the first frame is a key frame.

10. The method of claim 1 , wherein the segment identifier that is associated with the current block is decoded using a binary arithmetic decoder.

11. A method for creating a stream of encoded video information including a plurality of frames, each having a plurality of blocks, comprising:

for at least a first frame, creating a segment map associating at least one block in the first frame with at least one segment identifier, and associating the at least one segment identifier with at least one segment parameter, each segment parameter being a setting of an encoder;

selecting a current block of the first frame for encoding by the encoder;

encoding a segment identifier associated with the current block based on the segment map; and

encoding the current block using the at least one segment parameter associated with the segment identifier that is associated with the current block.

12. The method of claim 11 , further comprising:

for a second frame, detecting a segmentation modification condition;

when the segmentation modification condition is detected, updating the at least one segment parameter and storing the updated segment parameter with video information associated with the second frame.

13. The method of claim 12 , wherein the updated segment parameter is an incremental value.

14. The method of claim 11 , further comprising:

for a second frame, detecting a segmentation condition; and

when the segmentation condition is detected, storing a segmentation flag with encoded video information associated with the second frame.

15. The method of claim 11 , wherein the at least one segment parameter includes at least one of a quantization parameter, a loop filter type, a loop filter strength or a sub-pixel interpolation filter.

16. The method of claim 15 , wherein the at least one segment parameter includes a value indicative of an alternate reference frame; and where the method further comprises:

updating the alternate reference frame using the at least one segment parameter.

17. The method of claim 11 , further comprising:

storing the at least one segment identifier in portions of the video information that are interleaved with data specific to the at least one block.

18. The method of claim 11 , further comprising:

storing the at least one segment identifier in a header portion of the first frame.

19. The method of claim 11 , wherein the segment identifier that is associated with the current block is encoded using a binary arithmetic encoder.

20. A method for decoding a stream of encoded video information including a plurality of frames, each having a plurality of blocks, comprising:

for at least a first frame, reading from the video information a segment map associating at least some of the plurality of blocks in the first frame with at least one segment identifier;

reading, from the video information, a current block of the first frame to be decoded by a decoder;

reading, from the segment map, a segment identifier associated with the current block;

reading, from the video information, at least one segment parameter associated with the segment identifier that is associated with the current block, each segment parameter being a setting of the decoder;

decoding the current block using the at least one segment parameter associated with the segment identifier that is associated with the current block; and

for a second frame, decoding a block in the second frame corresponding to the current block in the first frame using the segment identifier that is associated with the current block.

21. The method of claim 20 , wherein the at least one segment parameter includes at least one of a quantization parameter, a loop filter type, a loop filter strength value or a subpixel interpolation filter.

22. The method of claim 20 , wherein the segment identifier that is associated with the current block is decoded using a binary arithmetic decoder.

23. The method of claim 20 wherein the second frame includes frame level header information including a bit indicating whether segmentation is enabled or disabled for the second frame, a bit indicating whether or not to update the segment map, a bit indicating whether to update the at least one segmentation parameter for the second frame, a value for each of the at least one segmentation parameter, and a bit indicating whether the value is a delta value or an absolute value.

Assignments (4)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
MERGER Recorded Nov 18, 2010
From: ON2 TECHNOLOGIES, INC.
To: ON2 TECHNOLOGIES, LLC
Reel/Frame 025388/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2010
From: ON2 TECHNOLOGIES, LLC
To: GOOGLE INC.
Reel/Frame 025389/0098 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2009
From: WILKINS, PAUL; BANKOSKI, JAMES; XU, YAOWU
To: ON2 TECHNOLOGIES, INC.
Reel/Frame 022369/0764 →
Continuity (2)
Provisional Application 61096242 · Sep 11, 2008
Related Publication 20100061444A1 · Mar 11, 2010