Content adaptive entropy coding of coded/not-coded data for next generation video
Techniques related to content adaptive entropy coding of coded/not-coded data are described.
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.