P
US9986248B2ActiveUtilityPatentIndex 84

Palette mode coding for video coding

Assignee: QUALCOMM INCPriority: Jan 29, 2015Filed: Jan 22, 2016Granted: May 29, 2018
Est. expiryJan 29, 2035(~8.6 yrs left)· nominal 20-yr term from priority
Inventors:PU WEIKARCZEWICZ MARTAJOSHI RAJAN LAXMANZOU FENGSEREGIN VADIM
H04N 19/30H04N 19/593H04N 19/44H04N 19/503H04N 19/70H04N 19/196H04N 19/176H04N 19/186
84
PatentIndex Score
9
Cited by
33
References
46
Claims

Abstract

Receiving a plurality of syntax elements that are indicative of a palette that was used to encode a block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein the first syntax element is encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, decoding the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes, reconstructing the palette based on the decoded plurality of syntax elements, and decoding the block of video data using the reconstructed palette.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of decoding video data, the method comprising:
 receiving a block of video data in an encoded video bitstream, the block of video data having been encoded using a palette-based coding mode; 
 receiving a plurality of syntax elements that are indicative of a palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold, and encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits; 
 decoding the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes; 
 reconstructing the palette based on the decoded plurality of syntax elements; and 
 decoding the block of video data using the reconstructed palette. 
 
     
     
       2. The method of  claim 1 , wherein the first syntax element is a num_signalled_palette_entries syntax element. 
     
     
       3. The method of  claim 1 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is an exponential Golomb code of order 0. 
     
     
       4. The method of  claim 1 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is a concatenation of a truncated Rice code and an exponential Golomb code. 
     
     
       5. The method of  claim 1 , wherein the plurality of syntax elements includes the palette values indicated as being explicitly signaled by the first syntax element. 
     
     
       6. The method of  claim 1 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates the maximum size of the palette and the third syntax element that indicates the maximum size of the palette predictor. 
     
     
       7. The method of  claim 1 , wherein the first threshold is one of 4095 or 4096 and the second threshold is one of 4095, 8191, or 8192. 
     
     
       8. The method of  claim 1 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates a maximum size of the palette and the third syntax element that indicates a maximum size of the palette predictor, the method further comprising:
 defining the second syntax element to be less than or equal to a number of pixels in a largest possible block of the video data in the encoded video bitstream; and 
 defining the third syntax element to be less than or equal to K*a value of the second syntax element, where K is a positive constant and * indicates a multiplication operation. 
 
     
     
       9. The method of  claim 8 , wherein K is 2. 
     
     
       10. The method of  claim 1 , further comprising:
 displaying the decoded block of video data. 
 
     
     
       11. The method of  claim 1 , further comprising:
 receiving a syntax element indicating a palette run type in the case that a current pixel of the block of video data is not a first pixel in a scanning order of the block of video data; and 
 inferring the syntax element as indicating a palette run type in the case that the current pixel is the first pixel in the scanning order. 
 
     
     
       12. An apparatus configured to decode video data, the apparatus comprising:
 a memory configured to store an encoded video bitstream; and 
 a video decoder configured to:
 receive a block of video data in the encoded video bitstream, the block of video data having been encoded using a palette-based coding mode; 
 receive a plurality of syntax elements that are indicative of a palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold, and encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits; 
 decode the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes; 
 reconstruct the palette based on the decoded plurality of syntax elements; and 
 decode the block of video data using the reconstructed palette. 
 
 
     
     
       13. The apparatus of  claim 12 , wherein the first syntax element is a num_signalled_palette_entries syntax element. 
     
     
       14. The apparatus of  claim 12 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is an exponential Golomb code of order 0. 
     
     
       15. The apparatus of  claim 12 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is a concatenation of a truncated Rice code and an exponential Golomb code. 
     
     
       16. The apparatus of  claim 12 , wherein the plurality of syntax elements includes the palette values indicated as being explicitly signaled by the first syntax element. 
     
     
       17. The apparatus of  claim 12 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates the maximum size of the palette and the third syntax element that indicates the maximum size of a palette predictor. 
     
     
       18. The apparatus of  claim 12 , wherein the first threshold is one of 4095 or 4096 and the second threshold is one of 4095, 8191, or 8192. 
     
     
       19. The apparatus of  claim 12 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates a maximum size of the palette and the third syntax element that indicates a maximum size of the palette predictor, and wherein the video decoder is further configured to:
 define the second syntax element to be less than or equal to a number of pixels in a largest possible block of the video data in the encoded video bitstream; and 
 define the third syntax element to be less than or equal to K*a value of the second syntax element, where K is a positive constant and * indicates a multiplication operation. 
 
     
     
       20. The apparatus of  claim 19 , wherein K is 2. 
     
     
       21. The apparatus of  claim 12 , further comprising:
 a display configured to display the decoded block of video data. 
 
     
     
       22. The apparatus of  claim 12 , wherein the video decoder is further configured to:
 receive a syntax element indicating a palette run type in the case that a current pixel of the block of video data is not a first pixel in a scanning order of the block of video data; and 
 infer the syntax element as indicating a palette run type in the case that the current pixel is the first pixel in the scanning order. 
 
     
     
       23. An apparatus configured to decode video data, the apparatus comprising:
 means for receiving a block of video data in an encoded video bitstream, the block of video data having been encoded using a palette-based coding mode; 
 means for receiving a plurality of syntax elements that are indicative of a palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold, and encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits; 
 means for decoding the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes; 
 means for reconstructing the palette based on the decoded plurality of syntax elements; and 
 means for decoding the block of video data using the reconstructed palette. 
 
     
     
       24. A non-transitory computer-readable storage medium storing instructions that, when executed, causes one or more processors of a device configured to decode video data to:
 receive a block of video data in an encoded video bitstream, the block of video data having been encoded using a palette-based coding mode; 
 receive a plurality of syntax elements that are indicative of a palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in the encoded video bitstream, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold, and encoded using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits; 
 decode the plurality of syntax elements, including decoding the first syntax element using the one or more Golomb codes; 
 reconstruct the palette based on the decoded plurality of syntax elements; and 
 decode the block of video data using the reconstructed palette. 
 
     
     
       25. A method of encoding video data, the method comprising:
 encoding a block of video data using a palette and a palette-based coding mode; 
 generating a plurality of syntax elements that are indicative of the palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in an encoded video bitstream; 
 encoding the first syntax element using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold; and 
 including the plurality of syntax elements in the encoded video bitstream. 
 
     
     
       26. The method of  claim 25 , wherein the first syntax element is a num_signalled_palette_entries syntax element. 
     
     
       27. The method of  claim 25 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is an exponential Golomb code of order 0. 
     
     
       28. The method of  claim 25 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is a concatenation of a truncated Rice code and an exponential Golomb code. 
     
     
       29. The method of  claim 25 , wherein the plurality of syntax elements includes the palette values indicated as being explicitly signaled by the first syntax element. 
     
     
       30. The method of  claim 25 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates the maximum size of the palette and the third syntax element that indicates the maximum size of a palette predictor. 
     
     
       31. The method of  claim 25 , wherein the first threshold is one of 4095 or 4096 and the second threshold is one of 4095, 8191, or 8192. 
     
     
       32. The method of  claim 25 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates a maximum size of the palette and the third syntax element that indicates a maximum size of the palette predictor, the method further comprising:
 defining the second syntax element to be less than or equal to a number of pixels in a largest possible block of the video data in the encoded video bitstream; and 
 defining the third syntax element to be less than or equal to K*a value of the second syntax element, where K is a positive constant and * indicates a multiplication operation. 
 
     
     
       33. The method of  claim 32 , wherein K is 2. 
     
     
       34. The method of  claim 25 , further comprising:
 signaling a syntax element indicating a palette run type in the case that a current pixel is not a first pixel in a scanning order; and 
 not signaling the syntax element indicating a palette run type in the case that the current pixel of the block of video data is the first pixel in the scanning order of the block of video data. 
 
     
     
       35. An apparatus configured to encode video data, the apparatus comprising:
 a memory configured to store a block of video data; and 
 a video encoder configured to:
 encode the block of video data using a palette and a palette-based coding mode; 
 generate a plurality of syntax elements that are indicative of the palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in an encoded video bitstream; 
 encode the first syntax element using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold; and 
 include the plurality of syntax elements in the encoded video bitstream. 
 
 
     
     
       36. The apparatus of  claim 35 , wherein the first syntax element is a num_signalled_palette_entries syntax element. 
     
     
       37. The apparatus of  claim 35 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is an exponential Golomb code of order 0. 
     
     
       38. The apparatus of  claim 35 , wherein the predetermined maximum number of bits is 32, and wherein the one or more Golomb codes is a concatenation of a truncated Rice code and an exponential Golomb code. 
     
     
       39. The apparatus of  claim 35 , wherein the plurality of syntax elements includes the palette values indicated as being explicitly signaled by the first syntax element. 
     
     
       40. The apparatus of  claim 35 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates the maximum size of the palette and the third syntax element that indicates the maximum size of a palette predictor. 
     
     
       41. The apparatus of  claim 35 , wherein the first threshold is one of 4095 or 4096 and the second threshold is one of 4095, 8191, or 8192. 
     
     
       42. The apparatus of  claim 35 , wherein the maximum value of the first syntax element is defined relative to both of the second syntax element that indicates a maximum size of the palette and the third syntax element that indicates a maximum size of the palette predictor, and wherein the video encoder is further configured to:
 define the second syntax element to be less than or equal to a number of pixels in a largest possible block of the video data in the encoded video bitstream; and 
 define the third syntax element to be less than or equal to K*a value of the second syntax element, where K is a positive constant and * indicates a multiplication operation. 
 
     
     
       43. The apparatus of  claim 42 , wherein K is 2. 
     
     
       44. The apparatus of  claim 35 , wherein the video encoder is further configured to:
 signal a syntax element indicating a palette run type in the case that a current pixel is not a first pixel in a scanning order; and 
 not signal the syntax element indicating a palette run type in the case that the current pixel of the block of video data is the first pixel in the scanning order of the block of video data. 
 
     
     
       45. An apparatus configured to encode video data, the apparatus comprising:
 means for encoding a block of video data using a palette and a palette-based coding mode; 
 means for generating a plurality of syntax elements that are indicative of the palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in an encoded video bitstream; 
 means for encoding the first syntax element using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold; and 
 means for including the plurality of syntax elements in the encoded video bitstream. 
 
     
     
       46. A non-transitory computer-readable storage medium storing instructions that, when executed, causes one or more processors of a device configured to encode video data to:
 encode a block of video data using a palette and a palette-based coding mode; 
 generate a plurality of syntax elements that are indicative of the palette that was used to encode the block of video data, the plurality of syntax elements including a first syntax element that indicates a number of palette values for the palette that are explicitly signaled in an encoded video bitstream; 
 encode the first syntax element using one or more Golomb codes such that the length of the encoded first syntax element is less than or equal to a predetermined maximum number of bits, wherein a maximum value of the first syntax element is defined relative to one or more of a second syntax element that indicates a maximum size of the palette or a third syntax element that indicates a maximum size of a palette predictor, wherein the second syntax element has a value from 0 to a first threshold and the third syntax element has a value from 0 to a second threshold; and 
 include the plurality of syntax elements in the encoded video bitstream.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.