Patentable/Patents/US-10038915
US-10038915

Escape sample coding in palette-based video coding

PublishedJuly 31, 2018
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In an example, a method of processing video data includes determining a value of a block-level syntax element that indicates, for all samples of a block of video data, whether at least one respective sample of the block is coded based on a color value of the at least one respective sample not being included in a palette of colors for coding the block of video data. The method also includes coding the block of video data based on the value.

Patent Claims
30 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of processing video data, the method comprising: determining a value of a block-level syntax element, wherein the block-level syntax element corresponds to an entirety of a block of the video data that includes a plurality of samples, and wherein the value of the block-level syntax element indicates whether at least one respective sample of the plurality of samples included in the block is coded using a color value of the at least one respective sample not being included in a palette of color values for coding the block of video data; and coding the block of video data based on the value of the block-level syntax element.

2

2. The method of claim 1 , wherein determining the value of the block-level syntax element comprises determining a value of a block-level escape flag that indicates whether at least one respective sample of the block is coded as an escape sample.

3

3. The method of claim 2 , wherein the block of the video data comprises a coding unit (CU) of the video data, and wherein determining the value of the block-level escape flag comprises determining the value of the block-level escape flag for the CU.

4

4. The method of claim 3 , further comprising: coding palette entries associated with the color values of the palette for the CU; and coding the block-level escape flag for the CU after coding the palette entries associated with the color values of the palette.

5

5. The method of claim 3 , further comprising: coding the block-level escape flag for the CU; and coding palette entries associated with the color values of the palette for the CU after coding the block-level escape flag for the CU.

6

6. The method of claim 3 , further comprising conditionally coding the block-level escape flag for the CU based on a size of the CU, wherein conditionally coding the block-level escape flag for the CU comprises only coding the block-level escape flag when the size of the CU exceeds a threshold size.

7

7. The method of claim 1 , further comprising: determining, based on the value of the block-level syntax element, that all samples of the plurality of samples included in the block are coded according to the color values of the palette; determining that a palette size that indicates a number of palette indices included in the palette of color values for the block is equal to one; and based on the determined palette size being equal to one, coding all samples of the block based on the one index of the palette and without coding any other syntax for the block that indicates palette indices for the block.

8

8. The method of claim 7 , wherein coding the block without coding any other syntax for the block that indicates palette indices for the block comprises coding the block without coding at least one of data that indicates a palette mode associated with coding the block, data that indicates index values of the palette of color values for the block, or data that indicates a run of palette indices of the palette.

9

9. The method of claim 1 , further comprising: determining that a palette size that indicates a number of palette indices of the palette for the block is equal to zero; and based on the determined palette size being equal to zero, determining the value of the block-level syntax element at least in part by inferring the value of the block-level syntax element, wherein inferring the value of the block-level syntax element comprises determining the value of the block-level syntax element without coding the block-level syntax element, and wherein the inferred value of the block-level syntax element indicates that all samples of the block are coded based on color value information not included in the palette.

10

10. The method of claim 9 , wherein coding the block of the video data comprises coding, based on the determined palette size being zero indices, all samples of the plurality of samples included in the block using the color value information that is not included in the palette and without coding any other syntax for the block that indicates palette indices for the palette of color values for the block of the video data.

11

11. The method of claim 10 , wherein coding the block without coding any other syntax for the block that indicates palette indices for the block comprises coding the block without coding at least one of data that indicates a palette mode associated with coding the block, data that indicates palette indices of the palette of color values for the block, or data that indicates a run of palette indices of the palette.

12

12. The method of claim 1 , wherein coding the block of the video data comprises encoding the block of the video data, and wherein encoding the block of the video data based on the value of the block-level syntax element comprises: based on the determined value of the block-level syntax element indicating that the at least one respective sample of the plurality of samples included in the block is to be encoded using the color value of the at least one respective sample not being included in the palette of colors, entropy encoding respective index values for all samples of the plurality of samples included in the block, wherein the respective index values identify respective entries of the palette, and wherein one of the respective index values indicates an escape sample that is to be encoded using the color value that is not included in the palette of colors; and signaling the respective index values of the palette in an encoded bitstream.

13

13. The method of claim 1 , wherein coding the block of the video data comprises decoding the block of the video data, and wherein decoding the block of the video data based on the value of the block-level syntax element comprises: obtaining, from an encoded bitstream, respective index values of a palette of color values for the block for the plurality of samples included in the block of the video data, wherein each of the respective index values identifies a respective entry of the palette of color values; and based on the determined value of the block-level syntax element indicating that the at least one respective sample of the plurality of samples included in the block is to be decoded using the color value of the at least one respective sample not being included in the palette of colors: entropy decoding values for all samples of the plurality of samples included in the block by matching the respective index values to at least one of the entries of the palettes; and entropy decoding the at least one sample using the respective color value that is not included in the palette of color values.

14

14. A device for processing video data, the device comprising: a memory configured to store a block of video data, the block including a plurality of samples; and one or more processors in communication with the memory, the one or more processors being configured to: determine a value of a block-level syntax element, wherein the block-level syntax element corresponds to an entirety of a block of the video data that includes a plurality of samples, and wherein the value of the block-level syntax element indicates whether at least one respective sample of the plurality of samples included in the block of the video data stored to the memory is coded using a color value of the at least one respective sample not being included in a palette of color values for coding the block of video data; and code the block of video data stored to the memory based on the value of the block-level syntax element.

15

15. The device of claim 14 , wherein to determine the value of the block-level syntax element, the one or more processors are configured to determine a value of a block-level escape flag that indicates whether at least one respective sample of the plurality of samples included in the video data stored to the memory is coded as an escape sample.

16

16. The device of claim 15 , wherein the block of the video data stored to the memory comprises a coding unit (CU) of the video data stored to the memory, and wherein to determine the value of the block-level escape flag, the one or more processors are configured to determine the value of the block-level escape flag for the CU.

17

17. The device of claim 16 , wherein the one or more processors are further configured to: code palette entries associated with the color values of the palette for the CU; and code the block-level escape flag for the CU after coding the palette entries associated with the color values of the palette.

18

18. The device of claim 16 , wherein the one or more processors are further configured to: code the block-level escape flag for the CU; and code palette entries of the palette for the CU after coding the block-level escape flag for the CU.

19

19. The device of claim 16 , wherein the one or more processors are further configured to conditionally code the block-level escape flag for the CU based on a size of the CU, wherein to conditionally code the block-level escape flag for the CU, the one or more processors are configured to only code the block-level escape flag when the size of the CU exceeds a threshold size.

20

20. The device of claim 14 , wherein the one or more processors are further configured to: determine, based on the value of the block-level syntax element, that all samples of the plurality of samples included in the block are coded according to the color values of the palette of color values; determine that a palette size that indicates a number of palette indices included in the palette of color values for the block is equal to one; and code, based on the determined palette size being equal to one, all samples of the plurality of samples included in the block based on the one index of the palette and without coding any other syntax for the block that indicates palette indices for the block of the video data stored to the memory.

21

21. The device of claim 20 , wherein to code the block without coding any other syntax for the block that indicates palette indices for the block, the one or more processors are configured to code the block without coding at least one of data that indicates a palette mode associated with coding the block, data that indicates index values of the palette of color values for the block of the video data stored to the memory, or data that indicates a run of palette indices of the palette.

22

22. The device of claim 14 , wherein the one or more processors are further configured to: determine that a palette size that indicates a number of palette indices of the palette for the block is equal to zero; and based on the determined palette size being zero indices, to determine the value of the block-level syntax element, the one or more processors are configured to infer the value of the block-level syntax element including determining the value of the block-level syntax element without coding the block-level syntax element, and wherein the inferred value of the block-level syntax element indicates that all samples of the block are coded based on color value information not included in the palette.

23

23. The device of claim 22 , wherein to code the block of the video data stored to the memory, the one or more processors are configured to code, based on the determined palette size being zero indices, all samples of the plurality of samples included in the block using the color value information that is not included in the palette and without coding any other syntax for the block that indicates palette indices for the palette of color values for the block of the video data stored to the memory.

24

24. The device of claim 23 , wherein to code the block without coding any other syntax for the block that indicates palette indices for the block, the one or more processors are configured to code the block without coding at least one of data that indicates a palette mode associated with coding the block, data that indicates palette indices of the palette of color values for the block, or data that indicates a run of palette indices of the palette.

25

25. The device of claim 14 , wherein to code the block of the video data stored to the memory, the one or more processors are configured to encode the block of the video data stored to the memory, and wherein to encode the block of the video data based on the value of the block-level syntax element, the one or more processors are configured to: based on the determined value of the block-level syntax element indicating that the at least one respective sample of the plurality of samples included in the block is to be encoded using the color value of the at least one respective sample not being included in the palette of colors, entropy encode respective index values for all samples of the plurality of samples included in the block, wherein the respective index values identify respective entries of the palette, and wherein one of the respective index values indicates an escape sample that is to be encoded using the color value that is not included in the palette of colors; and signal the respective index values in an encoded bitstream.

26

26. The device of claim 14 , wherein to code the block of the video data stored to the memory, the one or more processors are configured to decode the block of the video data stored to the memory, and wherein to decode the block of the video data based on the value of the block-level syntax element, the one or more processors are configured to: obtain, from an encoded bitstream, respective index values of a palette of color values for the block for the plurality of samples included in the block, wherein each of the respective index values identifies a respective entry of the palette of color values; and based on the determined value of the block-level syntax element indicating that the at least one respective sample of the plurality of samples included in the block is to be decoded using the color value of the at least one respective sample not being included in the palette of colors; entropy decode values for all samples of the plurality of samples included in the block by matching the respective index values to at least one of the entries of the palette; and entropy decode the at least one sample using the respective color value that is not included in the palette of color values.

27

27. The device of claim 26 , further comprising a display configured to display the decoded block.

28

28. The device of claim 14 , wherein the device comprises at least one of: an integrated circuit; a microprocessor; one or more digital signal processors (DSPs); one or more field programmable gate arrays (FPGAs); a desktop computer; a laptop computer; a tablet computer; a phone; a television; a camera; a display device; a digital media player; a video game console; a video game device; a video streaming device; or a wireless communication device.

29

29. An apparatus for processing video data, the apparatus comprising: means for determining a value of a block-level syntax element, wherein the block-level syntax element corresponds to an entirety of a block of the video data that includes a plurality of samples, and wherein the value of the block-level syntax element indicates whether at least one respective sample of the plurality of samples included in the block is coded using a color value of the at least one respective sample not being included in a palette of color values for coding the block of video data; and means for coding the block of video data based on the value of the block-level syntax element.

30

30. A non-transitory computer-readable medium having stored thereon instructions that, when executed, cause one or more processors of a video coding device to: determine a value of a block-level syntax element, wherein the block-level syntax element corresponds to an entirety of a block of the video data that includes a plurality of samples, and wherein the value of the block-level syntax element indicates whether at least one respective sample of the plurality of samples included in the block is coded using a color value of the at least one respective sample not being included in a palette of color values for coding the block of video data; and code the block of video data based on the value of the block-level syntax element.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

May 21, 2015

Publication Date

July 31, 2018

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Escape sample coding in palette-based video coding” (US-10038915). https://patentable.app/patents/US-10038915

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.