IP Library › Granted Patent US 10,819,990
Granted Patent B2
US 10,819,990 · App. 15/549,478 · Granted Oct 27, 2020

Method and apparatus for palette predictor initialization for palette coding in video and image compression

Inventors: Shan Liu (San Jose, CA); Jing Ye (San Jose, CA); Tzu-Der Chuang (Zhubei, TW)
Assignee: HFI Innovation Inc.
H04N19/197H04N19/119H04N19/159H04N19/176H04N19/186H04N19/463H04N19/593H04N19/70
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,819,990
App. No.
15/549,478
Granted
Oct 27, 2020
Kind
B2
Abstract

A method and apparatus of palette predictor initialization for a coding system using palette coding are disclosed. A SPS predictor flag indicating whether SPS palette predictor values are present in a current SPS and a PPS predictor flag indicating whether SPS palette predictor values are present in a current PPS are used. According to the values of the SPS predictor flag and the PPS predictor flag, the current palette predictor array having a current predictor size for blocks in a picture corresponding to the current PPS is signaled at an encoder side or derived at a decoder side based on the PPS palette predictor values, the SPS palette predictor values or both.

Claims (53)

1. A method of decoding video data coded in palette coding for a video decoding system, comprising:

receiving a video bitstream associated with the video data;

determining a sequence parameter set (SPS) predictor flag, wherein the SPS predictor flag indicates whether SPS palette predictor values are present in a current SPS;

if the SPS predictor flag indicates that the SPS palette predictor values are present in the current SPS, parsing the SPS palette predictor values from the current SPS of the video bitstream at least by setting a Predictor Palette Size variable to a SPS Nurn Palette Predictor Initializer and deriving array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer;

determining a picture parameter set (PPS) predictor flag, wherein the PPS predictor flag indicates whether PPS palette predictor values are present in a current PPS;

if the PPS predictor flag indicates that the PPS palette predictor values are present in the current PPS, parsing the PPS palette predictor values from the current PPS of the video bitstream at least by setting the Predictor Palette Size variable to a PPS Num Palette Predictor Initializer and deriving the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer;

deriving a current palette predictor array including the array Predictor Palette Entries having a current predictor size including the Predictor Palette Size variable for blocks in a picture corresponding to the current PPS based on (i) the PPS palette predictor values when pps_palette_predictor_initializer_present_flag is equal to 1, and (ii) the SPS palette predictor values when the pps_palette_predictor_initializer_present_flag is equal to 0 and sps_palette_predictor_initializer_present_flag is equal to 1;

applying palette decoding to the blocks in the picture using the current palette predictor array; and

decoding the video data for the video coding system,

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 1, the Predictor Palette Size is equal to pps_num_palette_predictor_initializer, and deriving the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer includes deriving the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer according to:

for(comp=0; comp<numComps; comp++)

for(i=0; i<PredictorPaletteSize; i++)

PredictorPaletteEntries[comp][i]=pps_palette_predictor_initializers[comp][i];

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 0 and the sps_palette_predictor_initializer_present_flag is equal to 1, the Predictor Palette Size is equal to sps_num_palette_predictor_initializer_minus1 plus 1, and deriving the array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer includes deriving the array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer according to:

for(comp=0; comp<numComps; comp++)

for(i=0; i<PredictorPaletteSize; i++)

PredictorPaletteEntries[comp][i]=sps_palette_predictor_initializers[comp][i];

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 0 and the sps_palette_predictor_initializer_present_flag is equal to 0, the Predictor Palette Size is equal to 0; and

wherein numComps=(ChromaArrayType==0)?1:3.

2. The method of claim 1 , further comprising parsing a first-total-predictor-number and parsing the first-total-predictor-number of the SPS palette predictor values from the current SPS according to the SPS predictor flag; and parsing a second-total-predictor-number and parsing the second-total-predictor-number of the PPS palette predictor values from the current PPS according to the PPS predictor flag.

3. The method of claim 2 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are present in the current PPS, the current predictor size is set to the second-total-predictor-number and entries of the current palette predictor array are copied from the PPS palette predictor values.

4. The method of claim 2 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are not present in the current PPS and the SPS predictor flag indicates that the SPS palette predictor values are present in the current SPS the current predictor size is set to the first-total-predictor-number and entries of the current palette predictor array are copied from the SPS palette predictor values.

5. The method of claim 2 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are not present in the current PPS and the SPS predictor flag indicates that the SPS palette predictor values are not present in the current SPS, the current predictor size is set to 0 and entries of the current palette predictor array are set to 0 or another default value.

6. The method of claim 2 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are present in the current PPS and the SPS predictor flag indicates that the SPS palette predictor values are present in the current SPS, the current predictor size is set to the first-total-predictor-number, beginning second-total-predictor-number entries of the current palette predictor array are copied from the PPS palette predictor values, and remaining (N-M) entries of the current palette predictor array are copied from the SPS palette predictor values, wherein N represents the first-total-predictor-number and NI represents the second-total-predictor-number.

7. The method of claim 2 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are present in the current PPS and the SPS predictor flag indicates that the SPS palette predictor values are present in the current SPS, the current predictor size is set to a sum of the first-total-predictor-number and the second-total-predictor-number.

8. The method of claim 7 , wherein if the sum of the first-total-predictor-number and the second-total-predictor-number is greater than a maximum allowed palette predictor size, the current predictor size is set to the maximum allowed palette predictor size.

9. The method of claim 1 , wherein if the PPS predictor flag indicates that the PPS palette predictor values are not present in the current PPS and the SPS predictor flag indicates that the SPS palette predictor values are not present in the current SPS, the current predictor size is set to 0 and entries of the current palette predictor array are set to a default value.

10. The method of claim 9 , wherein the default value is zero or half of a maximum pixel value.

11. The method of claim 1 , wherein the SPS predictor flag is parsed from the current SPS of the video bitstream, and if the SPS predictor flag is not present in the video bitstream, the SPS predictor flag is inferred to indicate that the SPS palette predictor values are not present in the current SPS.

12. The method of claim 1 , wherein the PPS predictor flag is parsed from the current PPS of the video bitstream, and if the PPS predictor flag is not present in the video bitstream, the PPS predictor flag is inferred to indicate that the PPS palette predictor values are not present in the current PPS.

13. The method of claim 1 , further comprising determining a slice predictor flag, wherein the slice predictor flag indicates whether slice palette predictor values are present in a current slice.

14. The method of claim 1 , further comprising determining a tile predictor flag, wherein the tile predictor flag indicates whether tile palette predictor values are present in a current tile.

15. The method of claim 14 , further comprises parsing a third-total-predictor-number and parsing the third-total-predictor-number of the tile palette predictor values in the current tile from the video bitstream if the tile predictor flag indicates that the tile palette predictor values are present in the current tile.

16. An apparatus of decoding video data coded in palette coding for a video decoding system, comprising:

a processor configured to:

receive a video bitstream associated with video data;

determine a sequence parameter set (SPS) predictor flag, wherein the SPS predictor flag indicates whether SPS palette predictor values are present in a current SPS;

if the SPS predictor flag indicates that the SPS palette predictor values are present in the current SPS, parse the SPS palette predictor values from the current SPS of the video bitstream at least by setting a Predictor Palette Size variable to a SPS Num Palette Predictor Initializer and deriving array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer:

determine a picture parameter set (PPS) predictor flag, wherein the PPS predictor flag indicates whether PPS palette predictor values are present in a current PPS;

if the PPS predictor flag indicates that the PPS palette predictor values are present in the current PPS, parse the PPS palette predictor values from the current PPS of the video bitstream at least by setting the Predictor Palette Size variable to a PPS Num Palette Predictor Initializer and deriving the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer;

derive a current palette predictor array including the array Predictor Palette Entries having a current predictor size including the Predictor Palette Size variable for blocks in a picture corresponding to the current PPS based on (i) the PPS palette predictor values when pps_palette_predictor_initializer_present_flag is equal to 1, and (ii) the SPS palette predictor values when the pps_palette_predictor_initializer_present_flag is equal to 0 and sps_palette_predictor_initializer_present_flag is equal to 1;

apply palette decoding to the blocks in the picture using the current palette predictor array; and

decode the video data for the video coding system,

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 1, the Predictor Palette Size is equal to pps_num_palette_predictor_initializer, and when deriving the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer, the processor is further configured to derive the array Predictor Palette Entries based on the PPS Num Palette Predictor Initializer according to:

for(comp=0; comp<numComps; comp++)

for(i=0; i<PredictorPaletteSize; i++)

PredictorPaletteEntries[comp][i]=pps_palette_predictor_initializers[comp][i];

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 0 and the sps_palette_predictor_initializer_present_flag is equal to 1, the Predictor Palette Size is equal to sps_num_palette_predictor_initializer_minus1 plus 1, and when deriving the array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer, the processor is further configured to derive the array Predictor Palette Entries based on the SPS Num Palette Predictor Initializer according to:

for(comp=0; comp<numComps; comp++)

for(i=0; i<PredictorPaletteSize; i++)

PredictorPaletteEntries[comp][i]=sps_palette_predictor_initializers[comp][i];

wherein, when the pps_palette_predictor_initializer_present_flag is equal to 0 and the sps_palette_predictor_initializer_present_flag is equal to 0, the Predictor Palette Size is equal to 0; and

wherein numComps=(ChromaArrayType==0)?1:3.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: LIU, SHAN; YE, JING; CHUANG, TZU-DER
To: MEDIATEK INC.
Reel/Frame 043229/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: MEDIATEK INC.
To: HFI INNOVATION INC.
Reel/Frame 043229/0692 →
Continuity (5)
Provisional Application 62181414 · Jun 18, 2015
Provisional Application 62173026 · Jun 9, 2015
Provisional Application 62126986 · Mar 2, 2015
Provisional Application 62116704 · Feb 16, 2015
Related Publication 20180027246A1 · Jan 25, 2018