IP Library › Granted Patent US 12,041,270
Granted Patent B2
US 12,041,270 · App. 16/872,643 · Granted Jul 16, 2024

Transform-skip residual coding of video data

Inventors: Mohammed Golam Sarwer (San Mateo, CA); Yan Ye (San Mateo, CA); Jiancong Luo (San Mateo, CA)
Assignee: Alibaba Group Holding Limited
H04N19/645H04N19/176H04N19/18
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 12,041,270
App. No.
16/872,643
Granted
Jul 16, 2024
Kind
B2
Abstract

The present disclosure provides systems and methods for transform-skip residual video data coding and decoding. One exemplary method comprises: performing a first pass of scanning a transform coefficient of a sub-block of a video frame, wherein the first pass of scanning comprises: bypass coding a parity level flag for the transform coefficient, the parity level flag indicating a parity of an absolute value of a level of the transform coefficient.

Claims (74)

1. A coding method implemented by a decoder of video data, the method comprising:

performing a first pass of scanning a plurality of transform coefficients of a sub-block of a video frame, wherein decoding of the sub-block is executed by multiple passes of scanning of the sub-block including the first pass of scanning and a second pass of scanning, the first pass of scanning comprising:

determining whether a remaining number of context coded bins (MaxCcbs) being greater than or equal to 4; and

in response to the remaining number of context coded bins being greater than or equal to 4, performing:

decoding a sig_coeff_flag for a current transform coefficient, the sig_coeff_flag indicating whether a level of the current transform coefficient is zero;

in response to the level of the current transform coefficient being not zero, decoding a coeff_sign_flag and an abs_level_gtx_flag[0] for the current transform coefficient, the coeff_sign_flag representing the sign of the level of the current transform coefficient and the abs_level_gtx_flag[0] representing the absolute value of the level of the current transform coefficient is greater than 1; and

performing the second pass of scanning the plurality of transform coefficients of the sub-block of the video frame, the second pass of scanning comprising:

in response to the abs_level_gtx_flag[0] for the current transform coefficient being equal to 1, decoding an abs_level_gtx_flag[1] for the current transform coefficient, the abs_level_gtx_flag[1] indicating whether the absolute value of the level of the current transform coefficient is greater than 3;

in response to the abs_level_gtx_flag[1] for the current transform coefficient being equal to 1, decoding an abs_level_gtx_flag[2] for the current transform coefficient, the abs_level_gtx_flag[2] indicating whether the absolute value of the level of the current transform coefficient is greater than 5;

in response to the abs_level_gtx_flag[2] for the current transform coefficient being equal to 1, decoding an abs_level_gtx_flag[3] for the current transform coefficient, the abs_level_gtx_flag[3] indicating whether the absolute value of the level of the current transform coefficient is greater than 7; and

in response to the abs_level_gtx_flag[3] for the current transform coefficient being equal to 1, decoding an abs_level_gtx_flag[4] for the current transform coefficient, the abs_level_gtx_flag[4] indicating whether the absolute value of the level of the current transform coefficient is greater than 9.

2. The coding method of claim 1 , further comprising: in response to the remaining number of context coded bins being smaller than 4, terminating the first pass of scanning.

3. The coding method of claim 1 , further comprising:

receiving the video frame; and

splitting the video frame into a plurality of sub-blocks including the sub-block.

4. The coding method of claim 1 , further comprising:

performing a third pass of scanning the plurality of transform coefficients of the sub-block of the video frame, the third pass of scanning comprising:

in response to the abs_level_gtx_flag[4] for the current transform coefficient being equal to 1, decoding an abs_remainder for the current transform coefficient, the abs_remainder indicating a remaining absolute level.

5. The coding method of claim 1 , wherein the first pass scanning further comprises:

in response to the abs_level_gtx_flag[0] for the current transform coefficient being equal to 1, decoding a parity level flag for the current transform coefficient, the parity level flag indicating a parity of an absolute value of the current transform coefficient.

6. A coding method implemented by an encoder of video data, the method comprising:

performing a first pass of scanning a plurality of transform coefficients of a sub-block of a video frame, wherein coding of the sub-block is executed by multiple passes of scanning of the sub-block including the first pass of scanning, a second pass of scanning, and a third pass of scanning, the first pass of scanning comprises that in response to a remaining number of context coded bins being greater than or equal to a first limit, for each transform coefficient starting from a first scan position of the sub-block to a last scan position of the sub-block, performing:

coding a significance flag for the transform coefficients, the significance flag indicating whether levels of the transform coefficients are zero; and

coding a greater-than-1 flag in response to the significance flag indicating that the absolute values of levels of the transform coefficients are greater than 1;

setting a first pass bypass position variable based on the last scan position of the first pass;

performing the second pass of scanning the plurality of transform coefficients of the sub-block of the video frame, the second pass of scanning comprising:

coding a greater-than-3 flag for the transform coefficients in response to the greater-than-1 flag being equal to 1, the greater-than-3 flag indicating whether the absolute values of levels are greater than 3;

coding a greater-than-5 flag for the transform coefficients in response to the greater-than-3 flag being equal to 1, the greater-than-5 flag indicating whether the absolute values of levels are greater than 5;

coding a greater-than-7 flag for the transform coefficients in response to the greater-than-5 flag being equal to 1, the greater-than-7 flag indicating whether the absolute values of levels are greater than 7; and

coding a greater-than-9 flag for the transform coefficients in response to the greater-than-7 flag being equal to 1, the greater-than-9 flag indicating whether the absolute values of levels are greater than 9;

setting a second pass bypass position variable based on the last scan position of the second pass; and

performing a third pass of scanning the plurality of transform coefficients of the sub-block of the video frame.

7. The coding method of claim 6 , wherein coding the greater-than-3 flag, the greater-than-5 flag, the greater-than-7 flag, or the greater-than-9 flag in the second pass of scanning are performed in response to the remaining number of context coded bins being greater than or equal to a second limit, for each transform coefficient starting from the first scan position of the sub-block to the first pass bypass position variable.

8. The coding method of claim 6 , wherein the third pass of scanning comprises:

for each transform coefficient starting from the first scan position of the sub-block to the first pass bypass position variable:

bypass coding the parity level flags for the transform coefficients in response to the greater-than-1 flag being equal to 1, the parity level flags indicating parities of absolute values of levels of the transform coefficients; and

coding a remaining absolute level for the transform coefficients using Golomb-Rice code in response to the greater-than-9 flag being equal to 1;

for each coefficient starting from the first pass bypass position variable to the last scan position:

coding of the absolute values of levels of the transform coefficients using Golomb-Rice code; and

coding the significance flag.

9. A system to encode video data, the system comprising:

a memory storing a set of instructions; and

one or more processors a processor configured to execute the set of instructions to cause the system to perform operations comprising:

performing a first pass of scanning a plurality of transform coefficients of one or more sub-blocks of a video frame, wherein coding of the one or more sub-blocks is executed by multiple passes of scanning of the one or more sub-blocks, the multiple passes of scanning including the first pass of scanning and a second pass of scanning, and the first pass of scanning comprises:

performing a context coding for the plurality of transform coefficients until a number of context coded bins reaches a maximum limit; and

in response to the number of context coded bins reaching the maximum limit, performing bypass coding of an abs_level_gtx_flag[0] for one or more remaining transform coefficients that are unscanned, the abs_level_gtx_flag[0] representing an absolute value of a level of a current transform coefficient is greater than 1; and

performing the second pass of scanning the plurality of transform coefficients of the one or more sub-blocks of the video frame, the second pass of scanning comprises:

in response to the abs_level_gtx_flag[0] for the current transform coefficient being equal to 1, performing bypass coding of an abs_level_gtx_flag[1] for the current transform coefficient, the abs_level_gtx_flag[1] indicating whether the absolute value of the level of the current transform coefficient is greater than 3;

in response to the abs_level_gtx_flag[1] for the current transform coefficient being equal to 1, performing bypass coding of an abs_level_gtx_flag[2] for the current transform coefficient, the abs_level_gtx_flag[2] indicating whether the absolute value of the level of the current transform coefficient is greater than 5;

in response to the abs_level_gtx_flag[2] for the current transform coefficient being equal to 1, performing bypass coding of an abs_level_gtx_flag[3] for the current transform coefficient, the abs_level_gtx_flag[3] indicating whether the absolute value of the level of the current transform coefficient is greater than 7; and

in response to the abs_level_gtx_flag[3] for the current transform coefficient being equal to 1, performing bypass coding of an abs_level_gtx_flag[4] for the current transform coefficient, the abs_level_gtx_flag[4] indicating whether the absolute value of the level of the current transform coefficient is greater than 9.

10. A decoding method implemented by a decoder of video data, the method comprising:

performing a first pass of scanning a plurality of transform coefficients of a sub-block of a video frame, wherein decoding of the one or more sub-blocks is executed by multiple passes of scanning of the one or more sub-blocks, the multiple passes of scanning including the first pass of scanning and a second pass of scanning, and the first pass of scanning comprises:

performing a context decoding for the plurality of transform coefficients until a number of context coded bins reaches a maximum limit; and

in response to the number of context coded bins reaching the maximum limit, performing bypass decoding of an abs_level_gtx_flag[0] for one or more remaining transform coefficients that are unscanned, the abs_level_gtx_flag[0] representing an absolute value of a level of a current transform coefficient is greater than 1; and

performing the second pass of scanning the plurality of transform coefficients of the one or more sub-blocks of the video frame, the second pass of scanning comprises:

in response to the abs_level_gtx_flag[0] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[1] for the current transform coefficient, the abs_level_gtx_flag[1] indicating whether the absolute value of the level of the current transform coefficient is greater than 3;

in response to the abs_level_gtx_flag[1] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[2] for the current transform coefficient, the abs_level_gtx_flag[2] indicating whether the absolute value of the level of the current transform coefficient is greater than 5;

in response to the abs_level_gtx_flag[2] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[3] for the current transform coefficient, the abs_level_gtx_flag[3] indicating whether the absolute value of the level of the current transform coefficient is greater than 7; and

in response to the abs_level_gtx_flag[3] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[4] for the current transform coefficient, the abs_level_gtx_flag[4] indicating whether the absolute value of the level of the current transform coefficient is greater than 9.

11. The decoding method of claim 10 , wherein the bypass decoding comprises Golomb-Rice coding.

12. The decoding method of claim 11 , wherein the Golomb-Rice coding uses a Rice parameter that is determined using a look-up table that includes correspondence between the Rice parameter and a location of sum absolute represented by a variable, the variable being derived by a pseudo code determined based on an array of the absolute values of levels for a transform-skip block, a top-left luma location, and a current coefficient scan location.

13. The decoding method of claim 10 , wherein the one or more remaining transform coefficients are in the first pass of scanning such that the context decoding and the bypass decoding are performed in a single pass of scanning.

14. A system to decode video data, the system comprising:

a memory storing a set of instructions; and

one or more processors configured to execute the set of instructions to cause the system to perform operations comprising:

performing a first pass of scanning a plurality of transform coefficients of one or more sub-blocks of a video frame, wherein decoding of the one or more sub-blocks is executed by multiple passes of scanning of the one or more sub-blocks, the multiple passes of scanning including the first pass of scanning and a second pass of scanning, and the first pass of scanning comprises:

performing a context decoding for the plurality of transform coefficients until a number of context coded bins reaches a maximum limit; and

in response to the number of context coded bins reaching the maximum limit, performing bypass decoding of an abs_level_gtx_flag[0] for one or more remaining transform coefficients that are unscanned, the abs_level_gtx_flag[0] representing an absolute value of a level of a current transform coefficient is greater than 1; and

performing the second pass of scanning the plurality of transform coefficients of the one or more sub-blocks of the video frame, the second pass of scanning comprises:

in response to the abs_level_gtx_flag[0] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[1] for the current transform coefficient, the abs_level_gtx_flag[1] indicating whether the absolute value of the level of the current transform coefficient is greater than 3;

in response to the abs_level_gtx_flag[1] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[2] for the current transform coefficient, the abs_level_gtx_flag[2] indicating whether the absolute value of the level of the current transform coefficient is greater than 5;

in response to the abs_level_gtx_flag[2] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[3] for the current transform coefficient, the abs_level_gtx_flag[3] indicating whether the absolute value of the level of the current transform coefficient is greater than 7; and

in response to the abs_level_gtx_flag[3] for the current transform coefficient being equal to 1, performing bypass decoding of an abs_level_gtx_flag[4] for the current transform coefficient, the abs_level_gtx_flag[4] indicating whether the absolute value of the level of the current transform coefficient is greater than 9.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2020
From: LUO, JIANCONG
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053668/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: SARWER, MOHAMMED GOLAM; YE, YAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053251/0596 →
Continuity (4)
Provisional Application 62953460 · Dec 24, 2019
Provisional Application 62902115 · Sep 18, 2019
Provisional Application 62865916 · Jun 24, 2019
Related Publication 20200404332A1 · Dec 24, 2020