IP Library › Granted Patent US 11,438,595
Granted Patent B2
US 11,438,595 · App. 17/082,371 · Granted Sep 6, 2022

Video coding method and system using a scan region based coefficient coding

Inventors: Xiaozhong Xu (State College, PA); Shan Liu (San Jose, CA)
Assignee: TENCENT AMERICA LLC
H04N19/129H04N19/172H04N19/176H04N19/50
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,438,595
App. No.
17/082,371
Filed
Oct 28, 2020
Granted
Sep 6, 2022
Kind
B2
Art Unit
2487
USPC
375/240.12
Abstract

A video encoding method includes obtaining a current frame of a video input; dividing the obtained current frame into a plurality of blocks; obtaining a residual block for each of the plurality of blocks; performing scan region based coefficient coding (SRCC) to the residual block, wherein a size of a scan region of a current block is predicted based on the sizes of the scan regions of previously coded blocks, such that coding efficiency and compression performance are improved; and coding the current frame to generate a bitstream including the coded residual block for each of the plurality of blocks of the current frame.

Claims (83)

1. A video encoding method, comprising:

obtaining a current frame of a video input;

dividing the obtained current frame into a plurality of blocks;

obtaining a residual block for each of the plurality of blocks;

performing scan region based coefficient coding (SRCC) to the residual block, wherein a size of a scan region of a current block is predicted based on the sizes of the scan regions of previously coded blocks; and

coding the current frame to generate a bitstream including the coded residual block for each of the plurality of blocks of the current frame.

2. The method according to claim 1 , wherein:

each block is a rectangular region within the current frame and has a width W and a height H, wherein W and H are positive integers;

the scan region of each block is a rectangular region within the block, wherein non-zero coefficients are located only within the scan region;

the upper-left corner of each scan region coincides with the upper-left corner of the corresponding block;

each scan region has a width SRx and a height SRy, wherein SRx is an integer between 1 and W of the corresponding block and SRy is an integer between 1 and H of the corresponding block; and

the size of the scan region defined by SRx and SRy for each previously coded block is stored and identified by an index number, wherein the index number is an integer greater than or equal to 0.

3. The method according to claim 1 , wherein:

a pre_srcc_size_flag flag is used to indicate whether the size of the scan region of each block, all blocks in each frame, or all frames in each slice is coded with or without prediction.

4. The method according to claim 3 , wherein when the size of the scan region of a current block is coded with prediction, predicting the size of the scan region of the current block includes:

determining a reference block among previously coded blocks;

determining the size of the scan region of the reference block as a predicted size of the scan region of the current block;

using the index number of the scan region of the reference block to signal the predicted size of the scan region of the current block; and

coding a difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block.

5. The method according to claim 4 , wherein when the predicted size of the scan region of the current block is limited to no more than the actual size of the scan region of the current block, coding the difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block includes:

coding a difference between the actual width of the scan region of the current block and the predicted width of the scan region of the current block; and

coding a difference between the actual height of the scan region of the current block and the predicted height of the scan region of the current block.

6. The method according to claim 4 , wherein when the predicted size of the scan region of the current block is not limited to no more than the actual size of the scan region of the current block, coding the difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block includes:

coding a width sign flag and an absolute difference between the actual width of the scan region of the current block and the predicted width of the scan region of the current block; and

coding a height sign flag and an absolute difference between the actual height of the scan region of the current block and the predicted height of the scan region of the current block.

7. The method according to claim 4 , wherein the reference block is:

the most recently coded block;

the most recently coded block having a same area as the current block;

the most recently coded block having a same width and a same height as the current block;

the most recently coded block falling into a same pre-defined category as the current block, wherein the pre-defined category includes the blocks having the area within a certain range; or

one of the neighboring blocks adjacent to the current block.

8. The method according to claim 4 , wherein the predicted size of the scan region of the current block is determined by:

averaging the sizes of the scan regions for a pre-defined number of previously coded blocks preceding the current block; and

determining the averaged size as the predicted size of the scan region of the current block.

9. The method according to claim 4 , wherein the predicted size of the scan region of the current block is determined by:

determining a most used size of the scan region among the pre-defined number of previously coded blocks preceding the current block; and

determining the most used size as the predicted size of the scan region of the current block.

10. The method according to claim 1 , wherein:

the plurality of blocks include luma blocks and chroma blocks;

the size of the scan region of a current luma block is predicted based on the sizes of the scan regions of previously coded luma blocks; and

the size of the scan region of a current chroma block is predicted based on the sizes of the scan regions of previously coded chroma blocks.

11. The method according to claim 10 , wherein:

when the pre_srcc_size_flag flag is shared to indicate whether the sizes of the scan regions of luma and chroma components of each block are coded with or without prediction, separate context models are used to code the luma and chroma components of each block, respectively;

a pre_srcc_size_luma_flag flag is used to indicate whether the sizes of the scan regions of a luma component of each block are coded with or without prediction; and

a pre_srcc_size_chroma_flag flag is used to indicate whether the sizes of the scan regions of a chroma component of each block are coded with or without prediction.

12. A video decoding method, comprising:

obtaining a bitstream including a plurality of coded frames of a video signal;

decoding each of the plurality of coded frames into a plurality of coded coding tree units (CTUs) and each of the plurality of coded CTUs into a plurality of coded residual blocks;

decoding each of the plurality of coded residual blocks by reversing scan region based coefficient coding (SRCC), wherein a size of a scan region of a current block is predicted based on sizes of scan regions of previously coded blocks;

recovering the current block for each of the plurality of decoded residual blocks;

reconstructing each frame of the video signal by storing the recovered block for each of the plurality of decoded residual blocks in a frame buffer; and

continuously outputting the reconstructed frames to restore the video signal.

13. The method according to claim 12 , wherein:

each block is a rectangular region within the current frame and has a width W and a height H, wherein W and H are positive integers;

the scan region of each block is a rectangular region within the block, wherein non-zero coefficients are located only within the scan region;

the upper-left corner of each scan region coincides with the upper-left corner of the corresponding block;

each scan region has a width SRx and a height SRy, wherein SRx is an integer between 1 and W of the corresponding block and SRy is an integer between 1 and H of the corresponding block; and

the size of the scan region defined by SRx and SRy for each previously coded block is stored and identified by an index number, wherein the index number is an integer greater than or equal to 0.

14. The method according to claim 12 , wherein:

a pre_srcc_size_flag flag is used to indicate whether the size of the scan region of each block, all blocks in each frame, or all frames in each slice is coded with or without prediction.

15. The method according to claim 14 , wherein when the size of the scan region of a current block is coded with prediction, predicting the size of the scan region of the current block includes:

determining a reference block among previously coded blocks;

determining the size of the scan region of the reference block as a predicted size of the scan region of the current block;

using the index number of the scan region of the reference block to signal the predicted size of the scan region of the current block; and

coding a difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block.

16. The method according to claim 15 , wherein when the predicted size of the scan region of the current block is limited to no more than the actual size of the scan region of the current block, coding the difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block includes:

coding a difference between the actual width of the scan region of the current block and the predicted width of the scan region of the current block; and

coding a difference between the actual height of the scan region of the current block and the predicted height of the scan region of the current block.

17. The method according to claim 15 , wherein when the predicted size of the scan region of the current block is not limited to no more than the actual size of the scan region of the current block, coding the difference between the actual size of the scan region of the current block and the predicted size of the scan region of the current block includes:

coding a width sign flag and an absolute difference between the actual width of the scan region of the current block and the predicted width of the scan region of the current block; and

coding a height sign flag and an absolute difference between the actual height of the scan region of the current block and the predicted height of the scan region of the current block.

18. The method according to claim 15 , wherein the reference block is:

the most recently coded block;

the most recently coded block having a same area as the current block;

the most recently coded block having a same width and a same height as the current block;

the most recently coded block falling into a same pre-defined category as the current block, wherein the pre-defined category includes the blocks having the area within a certain range; or

one of the neighboring blocks adjacent to the current block.

19. The method according to claim 15 , wherein the predicted size of the scan region of the current block is determined by:

averaging the sizes of the scan regions for a pre-defined number of previously coded blocks preceding the current block; and

determining the averaged size as the predicted size of the scan region of the current block.

20. The method according to claim 15 , wherein the predicted size of the scan region of the current block is determined by:

determining a most used size of the scan region among the pre-defined number of previously coded blocks preceding the current block; and

determining the most used size as the predicted size of the scan region of the current block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2020
From: XU, XIAOZHONG; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 054194/0867 →
Continuity (2)
Provisional Application 62941994 · Nov 29, 2019
Related Publication 20210168368A1 · Jun 3, 2021