IP Library Granted Patent US 9,794,568
Granted Patent B2
US 9,794,568 · App. 14/375,690 · Granted Oct 17, 2017

Content adaptive entropy coding of coded/not-coded data for next generation video

Inventors: Atul Puri (Redmond, WA); Daniel Socek (Miami, FL)
Assignee: Intel Corporation
H04N19/13H04N19/105H04N19/117H04N19/119H04N19/12H04N19/122H04N19/124H04N19/126H04N19/136H04N19/139H04N19/14H04N19/159H04N19/167H04N19/17H04N19/172H04N19/176H04N19/182H04N19/184H04N19/186H04N19/1887H04N19/192H04N19/196H04N19/31H04N19/40H04N19/513H04N19/517H04N19/523H04N19/53H04N19/573H04N19/577H04N19/59H04N19/593H04N19/61H04N19/63H04N19/82H04N19/91H04N19/96H04N19/44
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 9,794,568
App. No.
14/375,690
Granted
Oct 17, 2017
Kind
B2
Abstract

Techniques related to content adaptive entropy coding of coded/not-coded data are described.

Claims (116)

1. A computer-implemented method for video coding, comprising:

determining a selected entropy coding technique for coded/not-coded video data from a plurality of entropy coding techniques, wherein the plurality of entropy coding techniques comprise a proxy variable length coding technique and a symbol-run coding technique, and wherein the coded/not-coded video data comprises a plurality of bits, wherein each bit indicates whether an associated block of a block structure associated with a frame of video data is coded or not-coded;

entropy encoding a processed bitstream associated with the coded/not-coded video data using the selected entropy coding technique to generate encoded coded/not-coded video data;

encoding a coded/not-coded video data header associated with at least one of the selected entropy coding technique or the processed bitstream; and

assembling the encoded coded/not-coded video data and the coded/not-coded video data header into an output bitstream.

2. The method of claim 1 , wherein the processed bitstream associated with the coded/not-coded video data comprises at least one of a pass-through of the coded/not-coded video data, a reverse of the coded/not-coded video data, a bit inversion of the coded/not-coded video data, or a bit difference of the coded/not-coded video data.

3. The method of claim 1 , wherein the processed bitstream associated with the coded/not-coded video data comprises at least one of a 1-dimensional raster scan based on the coded/not-coded video data, a 1-dimensional block-based scan based on the coded/not-coded video data, or a 1-dimensional tile-based scan based on the coded/not-coded video data.

4. The method of claim 1 , wherein the proxy variable length coding technique is based on a first proxy variable length coding table and wherein the plurality of entropy coding techniques comprises a second proxy variable length coding technique based on a second proxy variable length coding table.

5. The method of claim 1 , wherein the coded/not-coded data is associated with a P-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional raster scan based on the coded/not-coded video data;

generating a 1-dimensional block-based scan based on the coded/not-coded video data;

bit inverting the 1-dimensional block-based scan to generate an inverted bits 1-dimensional block-based scan;

estimating a first bit cost associated with the proxy variable length coding technique based on the 1-dimensional raster scan;

estimating a second bit cost associated with the symbol run coding technique based on the inverted bits 1-dimensional block-based scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional raster scan or the inverted bits 1-dimensional block-based scan.

6. The method of claim 1 , wherein the coded/not-coded data is associated with a P-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional raster scan based on the coded/not-coded video data;

generating a 1-dimensional block-based scan based on the coded/not-coded video data;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

bit inverting the 1-dimensional block-based scan to generate an inverted bits 1-dimensional block-based scan;

estimating a first bit cost associated with the proxy variable length coding technique based on the inverted bits 1-dimensional raster scan;

estimating a second bit cost associated with the symbol run coding technique based on the inverted bits 1-dimensional block-based scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the inverted bits 1-dimensional raster scan or the inverted bits 1-dimensional block-based scan.

7. The method of claim 1 , wherein the coded/not-coded data is associated with a P-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional raster scan based on the coded/not-coded video data;

generating a 1-dimensional block-based scan based on the coded/not-coded video data;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

bit inverting the 1-dimensional block-based scan to generate an inverted bits 1-dimensional block-based scan;

estimating a first bit cost associated with the symbol run coding technique based on the inverted bits 1-dimensional raster scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the inverted bits 1-dimensional raster scan;

estimating a third bit cost associated with a second symbol run coding technique based on the inverted bits 1-dimensional block-based scan;

determining a minimum bit cost based on the first, second, and third bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the inverted bits 1-dimensional raster scan or the inverted bits 1-dimensional block-based scan.

8. The method of claim 1 , wherein the coded/not-coded data is associated with a P-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional raster scan based on the coded/not-coded video data;

generating a 1-dimensional block-based scan based on the coded/not-coded video data;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

bit inverting the 1-dimensional block-based scan to generate an inverted bits 1-dimensional block-based scan;

estimating a first bit cost associated with the symbol run coding technique based on the inverted bits 1-dimensional raster scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the 1-dimensional raster scan;

estimating a third bit cost associated with a second symbol run coding technique based on the inverted bits 1-dimensional block-based scan;

determining a minimum bit cost based on the first, second, and third bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional raster scan, the inverted bits 1-dimensional raster scan, or the inverted bits 1-dimensional block-based scan.

9. The method of claim 1 , wherein the coded/not-coded data is associated with an F-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional tile-based scan based on the coded/not-coded video data;

generating a 1-dimensional raster scan based on the coded/not-coded video data;

estimating a first bit cost associated with the symbol-run coding technique based on the 1-dimensional tile-based scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the 1-dimensional raster scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional tile-based scan or the 1-dimensional raster scan.

10. The method of claim 1 , wherein the coded/not-coded data is associated with an F-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional tile-based scan based on the coded/not-coded video data;

generating a 1-dimensional raster scan based on the coded/not-coded video data;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

estimating a first bit cost associated with the symbol-run coding technique based on the 1-dimensional tile-based scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the inverted bits 1-dimensional raster scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional tile-based scan or the inverted bits 1-dimensional raster scan.

11. The method of claim 1 , wherein the coded/not-coded data is associated with an F-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional tile-based scan based on the coded/not-coded video data;

generating a 1-dimensional raster scan based on the coded/not-coded video data;

bit inverting the 1-dimensional tile-based scan to generate an inverted bits 1-dimensional tile-based scan;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

bit differencing the inverted bits 1-dimensional tile-based scan to generate an inverted differential bits 1-dimensional tile-based scan;

bit differencing the inverted bits 1-dimensional raster scan to generate an inverted differential bits 1-dimensional raster scan;

estimating a first bit cost associated with the symbol-run coding technique based on the inverted differential bits 1-dimensional tile-based scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the inverted differential bits 1-dimensional raster scan;

estimating a third bit cost associated with a second proxy variable length coding technique based on the inverted bits 1-dimensional tile-based scan;

determining a minimum bit cost based on the first, second, and third bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the inverted differential bits 1-dimensional tile-based scan, the inverted differential bits 1-dimensional raster scan, or the inverted bits 1-dimensional tile-based scan.

12. The method of claim 1 , wherein the coded/not-coded data is associated with an F-picture of video data, and wherein determining the selected entropy coding technique comprises:

generating a 1-dimensional tile-based scan based on the coded/not-coded video data;

generating a 1-dimensional raster scan based on the coded/not-coded video data;

bit inverting the 1-dimensional tile-based scan to generate an inverted bits 1-dimensional tile-based scan;

bit inverting the 1-dimensional raster scan to generate an inverted bits 1-dimensional raster scan;

bit differencing the inverted bits 1-dimensional tile-based scan to generate an inverted differential bits 1-dimensional tile-based scan;

bit differencing the inverted bits 1-dimensional raster scan to generate an inverted differential bits 1-dimensional raster scan;

estimating a first bit cost associated with the symbol-run coding technique based on the inverted differential bits 1-dimensional tile-based scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the inverted differential bits 1-dimensional raster scan;

estimating a third bit cost associated with a second proxy variable length coding technique based on the inverted differential bits 1-dimensional tile-based scan;

determining a minimum bit cost based on the first, second, and third bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the inverted differential bits 1-dimensional tile-based scan or the inverted differential bits 1-dimensional raster scan.

13. A video encoder comprising:

an image buffer;

a graphics processor communicatively coupled to the image buffer and configured to:

determine a selected entropy coding technique for coded/not-coded video data from a plurality of entropy coding techniques, wherein the plurality of entropy coding techniques comprise a proxy variable length coding technique and a symbol-run coding technique, and wherein the coded/not-coded video data comprises a plurality of bits, wherein each bit indicates whether an associated block of a block structure associated with a frame of video data is coded or not-coded;

entropy encode a processed bitstream associated with the coded/not-coded video data using the selected entropy coding technique to generate encoded coded/not-coded video data;

encode a coded/not-coded video data header associated with at least one of the selected entropy coding technique or the processed bitstream; and

assemble the encoded coded/not-coded video data and the coded/not-coded video data header into an output bitstream.

14. The video encoder of claim 13 , wherein the plurality of entropy coding techniques comprise a second proxy variable length coding technique, wherein the proxy variable length coding technique is associated with a first proxy variable length code table and the second proxy variable length coding technique is associated with a second proxy variable length code table.

15. The video encoder of claim 13 , wherein the plurality of entropy coding techniques comprise a second symbol-run coding technique, wherein the symbol run coding technique is associated with a first symbol-run variable length code table and the second symbol run coding technique is associated with a second symbol-run variable length code table.

16. The video encoder of claim 13 , wherein the processed bitstream associated with the coded/not-coded video data comprises at least one of a pass-through of the coded/not-coded video data, a reverse of the coded/not-coded video data, a bit inversion of the coded/not-coded video data, a bit difference of the coded/not-coded video data, a 1-dimensional raster scan based on the coded/not-coded video data, a 1-dimensional block-based scan based on the coded/not-coded video data, or a 1-dimensional tile-based scan based on the coded/not-coded video data.

17. At least one non-transitory machine readable medium comprising a plurality of instructions that in response to being executed on a computing device, cause the computing device to provide video coding by:

determining a selected entropy coding technique for coded/not-coded video data from a plurality of entropy coding techniques, wherein the plurality of entropy coding techniques comprise a proxy variable length coding technique and a symbol-run coding technique, and wherein the coded/not-coded video data comprises a plurality of bits, wherein each bit indicates whether an associated block of a block structure associated with a frame of video data is coded or not-coded;

entropy encoding a processed bitstream associated with the coded/not-coded video data using the selected entropy coding technique to generate encoded coded/not-coded video data;

encoding a coded/not-coded video data header associated with at least one of the selected entropy coding technique or the processed bitstream; and

assembling the encoded coded/not-coded video data and the coded/not-coded video data header into an output bitstream.

18. The machine readable medium of claim 17 , wherein the processed bitstream associated with the coded/not-coded video data comprises at least one of a pass-through of the coded/not-coded video data, a reverse of the coded/not-coded video data, a bit inversion of the coded/not-coded video data, or a bit difference of the coded/not-coded video data.

19. The machine readable medium of claim 17 , wherein the processed bitstream associated with the coded/not-coded video data comprises at least one of a 1-dimensional raster scan based on the coded/not-coded video data, a 1-dimensional block-based scan based on the coded/not-coded video data, or a 1-dimensional tile-based scan based on the coded/not-coded video data.

20. The machine readable medium of claim 17 , wherein the coded/not-coded data is associated with a P-picture of video data, and further comprising instructions that in response to being executed on a computing device, cause the computing device to provide video coding by:

generating a 1-dimensional raster scan based on the coded/not-coded video data;

generating a 1-dimensional block-based scan based on the coded/not-coded video data;

bit inverting the 1-dimensional block-based scan to generate an inverted bits 1-dimensional block-based scan;

estimating a first bit cost associated with the proxy variable length coding technique based on the 1-dimensional raster scan;

estimating a second bit cost associated with the symbol run coding technique based on the inverted bits 1-dimensional block-based scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional raster scan or the inverted bits 1-dimensional block-based scan.

21. The machine readable medium of claim 17 , wherein the coded/not-coded data is associated with an F-picture of video data, and further comprising instructions that in response to being executed on a computing device, cause the computing device to provide video coding by:

generating a 1-dimensional tile-based scan based on the coded/not-coded video data;

generating a 1-dimensional raster scan based on the coded/not-coded video data;

estimating a first bit cost associated with the symbol-run coding technique based on the 1-dimensional tile-based scan;

estimating a second bit cost associated with the proxy variable length coding technique based on the 1-dimensional raster scan;

determining a minimum bit cost based on the first and second bit costs; and

determining the selected entropy coding technique as a coding technique associated with the minimum bit cost, wherein the processed bitstream comprises at least one of the 1-dimensional tile-based scan or the 1-dimensional raster scan.

Continuity (2)
Provisional Application 61758314 · Jan 30, 2013
Related Publication 20160277738A1 · Sep 22, 2016