Palette mode coding for video coding
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-modifiedWhat 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.