IP Library Granted Patent US 10,382,749
Granted Patent B2
US 10,382,749 · App. 14/719,263 · Granted Aug 13, 2019

Coding run values based on palette index in palette-based video coding

Inventors: Vadim Seregin (San Diego, CA); Rajan Laxman Joshi (San Diego, CA); Marta Karczewicz (San Diego, CA); Wei Pu (San Diego, CA); Joel Sole Rojals (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/103H04N19/176H04N19/51H04N19/70H04N19/91H04N19/93
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 10,382,749
App. No.
14/719,263
Granted
Aug 13, 2019
Kind
B2
Abstract

In an example a method of processing video data includes determining a run value that indicates a run-length of a run of a palette index of a block of video data, wherein the palette index is associated with a color value in a palette of color values for coding the block of video data, the method also includes determining a context for context adaptive coding of data that represents the run value based on the palette index, and coding the data that represents run value from a bitstream using the determined context.

Claims (70)

1. A method of processing video data, the method comprising:

determining, by one or more processors of a video encoder or a video decoder, a run value that indicates a run-length of a run of a palette index of a block of video data, wherein the palette index is associated with a color value in a palette of color values for encoding or decoding the block of video data, and wherein each color value in the palette corresponds to a luma and one or more chroma values;

determining, by the one or more processors and based on the palette index, a context index value for context adaptive binary arithmetic coding (CABAC) of data that represents the run value, wherein determining the context index value based on the palette index comprises selecting from three context index values based on the palette index, wherein selecting from the three context index values comprises:

based on the palette index being zero, selecting a first context index value of the three context index values for CABAC encoding or CABAC decoding at least one of a first bin, a second bin, and a third bin;

based on the palette index being one or two, selecting a second context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin; and

based on the palette index being greater than two, selecting a third context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin;

CABAC encoding or CABAC decoding, by the one or more processors and respectively in or from a video bitstream, the data that represents the run value using the determined context index value; and

reconstructing, by the one or more processors, the block of video data based on the run-length.

2. The method of claim 1 , wherein CABAC encoding or CABAC decoding the data that represents the run value comprises CABAC encoding or CABAC decoding the first bin, wherein the first bin indicates whether the run value is greater than zero, CABAC encoding or CABAC decoding the second bin, wherein the second bin indicates whether the run value is greater than one, and CABAC encoding or CABAC decoding the third bin, wherein the third bin indicates whether the run value is greater than two.

3. The method of claim 1 , further comprising encoding or decoding, respectively in or from the video bitstream, data that represents the palette index.

4. The method of claim 1 , wherein the palette index comprises an adjusted palette index, the method further comprising encoding or decoding, respectively in or from the video bitstream, the data that represents the adjusted palette index.

5. The method of claim 1 , wherein determining the context index value further comprises determining the context index value based on a size of the palette of color values or a size of the block.

6. The method of claim 1 , wherein CABAC encoding or CABAC decoding the data that represents the run value comprises CABAC encoding the data, and wherein the method further comprises:

encoding data that indicates the palette of color values; and

encoding data that indicates, for each pixel associated with the palette index, a palette mode used to encode the pixel.

7. The method of claim 1 , wherein CABAC encoding or CABAC decoding the data that represents the run value comprises CABAC decoding the data, and wherein the method further comprises:

obtaining, from the video bitstream, data that indicates the palette of color values; and

determining the value of a pixel and samples of the run using the palette of color values.

8. A device for processing video data, the device comprising:

a memory configured to store a block of video data; and

one or more processors implemented in circuitry and configured to:

determine a run value that indicates a run-length of a run of a palette index of the block of video data, wherein the palette index is associated with a color value in a palette of color values for encoding or decoding the block of video data, and wherein each color value in the palette corresponds to a luma and one or more chroma values;

determine, based on the palette index, a context index value for context adaptive binary arithmetic coding (CABAC) of data that represents the run value, wherein to determine the context index value based on the palette index comprises selecting from three context index values based on the palette index, wherein selecting from the three context index values comprises:

based on the palette index being zero, selecting a first context index value of the three context index values for CABAC encoding or CABAC decoding at least one of a first bin, a second bin, and a third bin;

based on the palette index being one or two, selecting a second context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin; and

based on the palette index being greater than two, selecting a third context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin;

CABAC encode or CABAC decode, respectively in or from a video bitstream, the data that represents the run value from a bitstream using the determined context index value; and

reconstruct the block of video data based on the run-length.

9. The device of claim 8 , wherein to CABAC encode or CABAC decode the data that represents the run value, the one or more processors are configured to CABAC encode or CABAC decode the first bin, wherein the first bin indicates whether the run value is greater than zero, CABAC encode or CABAC decode the second bin, wherein the second bin indicates whether the run value is greater than one, and CABAC encode or CABAC decode the third bin, wherein the third bin indicates whether the run value is greater than two.

10. The device of claim 8 , wherein the one or more processors are further configured to encode or decode, respectively in or from the video bitstream, data that represents the palette index.

11. The device of claim 8 , wherein the palette index comprises an adjusted palette index, and wherein the one or more processors are further configured to encode or decode, respectively in or from the video bitstream, data that represents the adjusted palette index.

12. The device of claim 8 , wherein to determine the context index value, the one or more processors are configured to determine the context index value based on a size of the palette of color values or a size of the block.

13. The device of claim 8 , wherein to CABAC encode or CABAC decode the data that represents the run value, the one or more processors are configured to CABAC encode the data, and wherein the one or more processors are further configured to:

encode data that indicates the palette of color values; and

encode data that indicates, for each pixel associated with the palette index, a palette mode used to encode the pixel.

14. The device of claim 13 , further comprising a camera configured to capture a picture that includes the block of video data.

15. The device of claim 8 , wherein to CABAC encode or CABAC decode the data that represents the run value, the one or more processors are configured to CABAC decode the data, and wherein the one or more processors are further configured to:

obtain, from the video bitstream, data that indicates the palette of color values; and

determine the value of a pixel and samples of the run using the palette of color values.

16. The device of claim 15 , further comprising a display configured to display the block of video data.

17. The device of claim 8 , wherein the device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

18. An apparatus for processing video data, the apparatus comprising:

means for determining a run value that indicates a run-length of a run of a palette index of a block of video data, wherein the palette index is associated with a color value in a palette of color values for encoding or decoding the block of video data, and wherein each color value in the palette corresponds to a luma and one or more chroma values;

means for determining, based on the palette index, a context index value for context adaptive binary arithmetic coding (CABAC) of data that represents the run value, wherein determining the context index value based on the palette index comprises selecting from three context index values based on the palette index, wherein selecting from the three context index values comprises:

based on the palette index being zero, selecting a first context index value of the three context index values for CABAC encoding or CABAC decoding at least one of a first bin, a second bin, and a third bin;

based on the palette index being one or two, selecting a second context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin; and

based on the palette index being greater than two, selecting a third context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin;

means for CABAC encoding or CABAC decoding, respectively in or from a video bitstream, the data that represents the run value using the determined context index value; and

means for reconstructing the block of video data based on the run-length.

19. The apparatus of claim 18 , wherein the means for CABAC encoding or CABAC decoding the data that represents the run value comprises means for CABAC encoding or CABAC decoding the first bin, wherein the first bin indicates whether the run value is greater than zero, means for CABAC encoding or CABAC decoding the second bin, wherein the second bin indicates whether the run value is greater than one, and means for CABAC encoding or CABAC decoding the third bin, wherein the third bin indicates whether the run value is greater than two.

20. A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause one or more processors to:

determine a run value that indicates a run-length of a run of a palette index of a block of video data, wherein the palette index is associated with a color value in a palette of color values for encoding or decoding the block of video data, and wherein each color value in the palette corresponds to a luma and one or more chroma values;

determine, based on the palette index, a context index value for context adaptive binary arithmetic coding (CABAC) of data that represents the run value, wherein to determine the context index value based on the palette index comprises selecting from three context index values based on the palette index, wherein selecting from the three context index values comprises:

based on the palette index being zero, selecting a first context index value of the three context index values for CABAC encoding or CABAC decoding at least one of a first bin, a second bin, and a third bin;

based on the palette index being one or two, selecting a second context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin; and

based on the palette index being greater than two, selecting a third context index value of the three context index values for CABAC encoding or CABAC decoding at least one of the first bin, the second bin, and the third bin; and

CABAC encode or CABAC decode, respectively in or from a video bitstream, the data that represents the run value using the determined context index value; and

reconstruct the block of video data based on the run-length.

21. The non-transitory computer-readable medium of claim 20 , wherein to CABAC encode or CABAC decode the data that represents the run value, the instructions cause the one or more processors to CABAC encode or CABAC decode the first bin, wherein the first bin indicates whether the run value is greater than zero, CABAC encode or CABAC decode the second bin, wherein the second bin indicates whether the run value is greater than one, and CABAC encode or CABAC decode the third bin, wherein the third bin indicates whether the run value is greater than two.

22. The method of claim 1 , wherein the first context index value comprises run context (0).

23. The method of claim 1 , wherein the second context index value comprises run context (1).

24. The method of claim 1 , wherein the third context index value comprises run context (2).

25. The device of claim 8 , wherein the first context index value comprises run context (0).

26. The device of claim 8 , wherein the second context index value comprises run context (1).

27. The device of claim 8 , wherein the third context index value comprises run context (2).

28. The apparatus of claim 18 , wherein the first context index value comprises run context (0), the second context index value comprises run context (1), and the third context index value comprises run context (2).

29. The non-transitory computer-readable medium of claim 20 , wherein the first context index value comprises run context (0), the second context index value comprises run context (1), and the third context index value comprises run context (2).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2015
From: SEREGIN, VADIM; JOSHI, RAJAN LAXMAN; KARCZEWICZ, MARTA; PU, WEI; SOLE ROJALS, JOEL
To: QUALCOMM INCORPORATED
Reel/Frame 035795/0902 →
Continuity (7)
Provisional Application 62002717 · May 23, 2014
Provisional Application 62009772 · Jun 9, 2014
Provisional Application 62015261 · Jun 20, 2014
Provisional Application 62019223 · Jun 30, 2014
Provisional Application 62059659 · Oct 3, 2014
Provisional Application 62065526 · Oct 17, 2014
Related Publication 20150341635A1 · Nov 26, 2015
Cited By (1)
US 12,647,130