IP Library Granted Patent US 11,968,360
Granted Patent B2
US 11,968,360 · App. 17/218,655 · Granted Apr 23, 2024

Methods for palette prediction

Inventors: Ru-Ling Liao (Beijing, CN); Mohammed Golam Sarwer (Cupertino, CA); Yan Ye (San Diego, CA); Xuan Huang (Beijing, CN)
Assignee: Alibaba Group Holding Limited
H04N19/117H04N19/105H04N19/176H04N19/186H04N19/46H04N19/80
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 11,968,360
App. No.
17/218,655
Granted
Apr 23, 2024
Kind
B2
Abstract

The present disclosure provides a computer-implemented method for encoding video. The method includes: receiving a video frame for processing; generating one or more coding units of the video frame; and processing one or more coding units using one or more palette predictors having palette entries, wherein each palette entry of the one or more palette predictors has a corresponding reuse flag, and wherein a number of reuse flags for each palette predictor is set to a fixed number for a corresponding coding unit.

Claims (82)

1. A video data processing method, comprising:

receiving a video frame for processing;

generating one or more coding units of the video frame; and

processing the one or more coding units using one or more palette predictors having palette entries,

wherein each palette entry of the one or more palette predictors has a corresponding reuse flag, and

wherein a number of reuse flags for each palette predictor is set to a fixed number for a corresponding coding unit, wherein the fixed number of reuse flags is set to 31 or 63 based on a slice type and a dual tree mode setting.

2. The method of claim 1 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding entries from the previous palette predictor that are not reused in the current palette as a second set of entries of the palette predictor, wherein the second set of entries are after the first set of entries.

3. The method of claim 1 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding palette entries from a previous palette predictor as a second set of entries of the palette predictor regardless of a value of reuse flag of a palette entry in the previous palette predictor, wherein the second set of entries are after the first set of entries.

4. The method of claim 1 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor;

adding one or more palette entries of a previous palette predictor that is within a first range to the palette predictor as a second set of one or more entries of the palette predictor, wherein the first range starts at a first palette entry of the previous palette predictor and ends at a first palette entry of the previous palette predictor that has a reuse flag set, and

adding one or more palette entries of the previous palette predictor that is within a second range to the palette predictor as a third set of one or more entries of the palette predictor, wherein the second range starts at a last palette entry of the previous palette predictor that has a reuse flag set and ends at a last palette entry of the previous palette predictor, the second set of entries and the third set of entries are after the first set of entries.

5. The method of claim 1 , wherein the fixed number being set to 31 or 63 based on the slice type and the dual tree mode setting further comprises: setting the fixed number to be 31 when the slice type is I-slice and the dual tree mode is on;

or setting the fixed number to be 63 when the slice type is B-/P-slice or the slice type is I-slice and the dual tree mode is off.

6. The method of claim 1 , wherein a size of a palette predictor of the one or more palette predictors is initialized to a pre-defined value at a beginning of a slice for non-wavefront case.

7. An apparatus for performing video data processing, the apparatus comprising:

a memory figured to store instructions; and

one or more processors configured to execute the instructions to cause the apparatus to perform:

receiving a video frame for processing;

generating one or more coding units of the video frame; and

processing the one or more coding units using one or more palette predictors having palette entries,

wherein each palette entry of the one or more palette predictors has a corresponding reuse flag, and

wherein a number of reuse flags for each palette predictor is set to a fixed number for a corresponding coding unit, wherein the fixed number of reuse flags is set to 31 or 63 based on a slice type and a dual tree mode setting.

8. The apparatus of claim 7 , wherein the one or more processors are further configured to execute the instructions to cause the apparatus to perform:

updating the palette predictor by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding entries from the previous palette predictor that are not reused in the current palette as a second set of entries of the palette predictor, wherein the second set of entries are after the first set of entries.

9. The apparatus of claim 7 , wherein the one or more processors are further configured to execute the instructions to cause the apparatus to perform:

updating the palette predictor by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding palette entries from a previous palette predictor as a second set of entries of the palette predictor regardless of a value of reuse flag of a palette entry in the previous palette predictor, wherein the second set of entries are after the first set of entries.

10. The apparatus of claim 7 , wherein the one or more processors are further configured to execute the instructions to cause the apparatus to perform:

updating the palette predictor by:

adding all palette entries of a current palette as a first set of entries of the palette predictor;

adding one or more palette entries of a previous palette predictor that is within a first range to the palette predictor as a second set of one or more entries of the palette predictor, wherein the first range starts at a first palette entry of the previous palette predictor and ends at a first palette entry of the previous palette predictor that has a reuse flag set, and

adding one or more palette entries of the previous palette predictor that is within a second range to the palette predictor as a third set of one or more entries of the palette predictor, wherein the second range starts at a last palette entry of the previous palette predictor that has a reuse flag set and ends at a last palette entry of the previous palette predictor, the second set of entries and the third set of entries are after the first set of entries.

11. The apparatus of claim 7 , wherein the fixed number being set to 31 or 63 based on the slice type and the dual tree mode setting further comprises:

setting the fixed number to be 31 when the slice type is I-slice and the dual tree mode is on; or setting the fixed number to be 63 when the slice type is B-/P-slice or the slice type is I-slice and the dual tree mode is off.

12. The apparatus of claim 7 , wherein a size of a palette predictor of the one or more palette predictors is initialized to a pre-defined value at a beginning of a slice for non-wavefront case.

13. A non-transitory computer readable medium storing a bitstream of a video for processing according to a method comprising:

generating one or more coding units of a video frame; and

processing the one or more coding units using one or more palette predictors having palette entries,

wherein each palette entry of the one or more palette predictors has a corresponding reuse flag, and

wherein a number of reuse flags for each palette predictor is set to a fixed number for a corresponding coding unit, wherein the fixed number of reuse flags is set to 31 or 63 based on a slice type and a dual tree mode setting.

14. The non-transitory computer readable medium of claim 13 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding entries from the previous palette predictor that are not reused in the current palette as a second set of entries of the palette predictor, wherein the second set of entries are after the first set of entries.

15. The non-transitory computer readable medium of claim 13 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor; and

adding palette entries from a previous palette predictor as a second set of entries of the palette predictor regardless of a value of reuse flag of a palette entry in the previous palette predictor, wherein the second set of entries are after the first set of entries.

16. The non-transitory computer readable medium of claim 13 , wherein the palette predictor is updated by:

adding all palette entries of a current palette as a first set of entries of the palette predictor;

adding one or more palette entries of a previous palette predictor that is within a first range to the palette predictor as a second set of one or more entries of the palette predictor, wherein the first range starts at a first palette entry of the previous palette predictor and ends at a first palette entry of the previous palette predictor that has a reuse flag set, and

adding one or more palette entries of the previous palette predictor that is within a second range to the palette predictor as a third set of one or more entries of the palette predictor, wherein the second range starts at a last palette entry of the previous palette predictor that has a reuse flag set and ends at a last palette entry of the previous palette predictor, the second set of entries and the third set of entries are after the first set of entries.

17. The non-transitory computer readable medium of claim 13 wherein the fixed number being set to 31 or 63 based on the slice type and the dual tree mode setting further comprises:

setting the fixed number to be 31 when the slice type is I-slice and the dual tree mode is on; or setting the fixed number to be 63 when the slice type is B-/P-slice or the slice type is I-slice and the dual tree mode is off.

18. A method for deblocking filter of palette mode, comprising:

receiving a video frame for processing;

generating two or more coding units for the video frame, wherein each coding unit of the two or more coding units have one or more coding blocks;

determining whether at least one of a first coding block of two neighboring coding blocks and a second coding block of the two neighboring coding blocks is coded in an intra prediction mode;

in response to the first coding block and the second coding block being not coded in the intra prediction mode, determining whether at least one of the first coding block and the second coding block is coded in an CIIP (combined inter and intra prediction) mode;

in response to the first coding block and the second coding block being not coded in the CIIP mode, determining whether at least one of the first coding block and the second coding block is coded in a palette mode; and

setting a boundary filter strength to 1 in response to the first coding block being coded in palette mode and the second coding block having a coding mode different from the palette mode.

19. An apparatus for performing video data processing, the apparatus comprising:

a memory figured to store instructions; and

one or more processors configured to execute the instructions to cause the apparatus to perform:

receiving a video frame for processing;

generating two or more coding units for the video frame, wherein each coding unit of the two or more coding units has have one or more coding blocks;

determining whether at least one of a first coding block of two neighboring coding blocks and a second coding block of the two neighboring coding blocks is coded in an intra prediction mode;

in response to the first coding block and the second coding block being not coded in the intra prediction mode, determining whether at least one of the first coding block and the second coding block is coded in an CIIP (combined inter and intra prediction) mode;

in response to the first coding block and the second coding block being not coded in the CIIP mode, determining whether at least one of the first coding block and the second coding block is coded in a palette mode; and

setting a boundary filter strength to 1 in response to the first coding block being coded in palette mode and the second coding block having a coding mode different from the palette mode.

20. A non-transitory computer readable medium storing a bitstream of a video for processing according to a method comprising:

generating two or more coding units of a video frame, wherein each coding unit of the two or more coding units have one or more coding blocks;

determining whether at least one of a first coding block of two neighboring coding blocks and a second coding block of the two neighboring coding blocks is coded in an intra prediction mode;

in response to the first coding block and the second coding block being not coded in the intra prediction mode, determining whether at least one of the first coding block and the second coding block is coded in an CIIP (combined inter and intra prediction) mode;

in response to the first coding block and the second coding block being not coded in the CIIP mode, determining whether at least one of the first coding block and the second coding block is coded in a palette mode; and

setting a boundary filter strength to 1 in response to the first coding block being coded in palette mode and the second coding block having a coding mode different from the palette mode.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2026
From: ALIBABA INNOVATION PRIVATE LIMITED
To: HFI INNOVATION INC.
Reel/Frame 075499/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: ALIBABA INNOVATION PRIVATE LIMITED
Reel/Frame 074832/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2021
From: LIAO, RULING; SARWER, MOHAMMED GOLAM; YE, YAN; HUANG, XUAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 055947/0858 →
Continuity (3)
Provisional Application 63005305 · Apr 4, 2020
Provisional Application 63002594 · Mar 31, 2020
Related Publication 20210306627A1 · Sep 30, 2021