IP Library › Granted Patent US 11,451,831
Granted Patent B2
US 11,451,831 · App. 17/215,886 · Granted Sep 20, 2022

Method and apparatus for video coding

Inventors: Xiaozhong Xu (State College, PA); Shan Liu (San Jose, CA)
Assignee: Tencent America LLC
H04N19/70H04N19/105H04N19/132H04N19/137H04N19/159H04N19/176H04N19/186H04N19/44H04N19/85
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,451,831
App. No.
17/215,886
Granted
Sep 20, 2022
Kind
B2
Abstract

Aspects of the disclosure provide a method and an apparatus including processing circuitry for video decoding. The processing circuitry is configured to decode coding information for a current block of a current picture. The coding information can indicate a coding mode for the current block being one of: an intra block copy (IBC) mode and a string copy mode. The processing circuitry is configured to determine current vector information for a current unit of samples in the current block based on the coding mode for the current block and a history buffer. The history buffer can be configured to store vector information of at least a block previously decoded in the IBC mode and a string previously decoded in the string copy mode. The processing circuitry is configured to reconstruct the current unit of samples based on the current vector information.

Claims (64)

1. A method for video decoding in a decoder, comprising:

decoding coding information for a current block of a current picture, the coding information indicating a coding mode for the current block being one of: an intra block copy (IBC) mode or a string copy mode;

determining current vector information for a current unit of samples in the current block based on the coding mode for the current block and a history buffer, the history buffer being configured to store vector information of at least a block previously decoded in the IBC mode and a string previously decoded in the string copy mode;

reconstructing the current unit of samples based on the current vector information; and

storing the current vector information in the history buffer in response to a determination that the current vector information is different from the vector information already stored in the history buffer, wherein the current vector information is determined to be different from a piece of the vector information already stored in the history buffer based on a size of the current unit of samples being different from a size of a block or a string corresponding to the piece of the vector information already stored in the history buffer.

2. The method of claim 1 , wherein

the coding mode for the current block is the IBC mode;

the current unit of samples is the current block; and

the determining the current vector information further includes:

determining a block vector (BV) predictor candidate list for the current block based at least on the vector information in the history buffer; and

determining, based on the BV predictor candidate list, a current BV as the current vector information.

3. The method of claim 1 , wherein

the coding mode for the current block is the string copy mode;

the current unit of samples is a current string in the current block; and

the determining the current vector information further includes:

determining a current string vector (SV) as the current vector information based on the vector information in the history buffer, the current SV corresponding to the current string.

4. The method of claim 1 , wherein the storing the current vector information comprises:

determining that the current vector information is different from the vector information already stored in the history buffer in response to a determination that a difference between a current vector in the current vector information and each vector of the vector information already stored in the history buffer is larger than a threshold.

5. The method of claim 1 , wherein the storing the current vector information comprises:

determining that the size of the current unit of samples is different from the size of the block or the string corresponding to the piece of the vector information when a difference between the size of the current unit of samples and the size of the block or the string corresponding to the piece of the vector information is larger than a size threshold.

6. The method of claim 5 , further comprising:

in response to a determination that a difference between a current vector of the current vector information and a vector of the piece of the vector information already stored in the history buffer is not larger than a threshold, removing the piece of the vector information from the history buffer.

7. The method of claim 1 , wherein

the determination that the current vector information is different from the vector information already stored in the history buffer indicates that the current vector information is different from (i) a subset of all of the vector information in the history buffer or (ii) all of the vector information in the history buffer.

8. The method of claim 1 , wherein

the piece of the vector information already stored in the history buffer includes a string vector and at least one of (i) a string location or (ii) a string size of the string previously decoded in the string copy mode,

the string location is a location of a pre-determined sample in the string previously decoded in the string copy mode, and

the string size is a number of samples in the string previously decoded in the string copy mode.

9. The method of claim 1 , wherein

the vector information already stored in the history buffer includes previous vectors, previous unit sizes, and previous unit locations of corresponding previously decoded units of samples that include the block previously decoded in the IBC mode and the string previously decoded in the string copy mode; and

the method further includes classifying each piece of the vector information stored in the history buffer into one of a plurality of categories based on at least one of: (i) a previous unit size of the respective piece of the vector information, (ii) a previous unit location of the respective piece of the vector information, or (iii) a number of times that the respective piece of the vector information is used to predict one or more previously decoded units of samples, the history buffer being a class-based history buffer.

10. The method of claim 9 , wherein

the coding information for the current block further includes an index; and

the determining the current vector information for the current unit of samples further includes determining the current vector information to be a first entry in one of the plurality of categories indicated by the index.

11. An apparatus for video decoding, comprising:

processing circuitry configured to:

decode coding information for a current block of a current picture, the coding information indicating a coding mode for the current block being one of: an intra block copy (IBC) mode or a string copy mode;

determine current vector information for a current unit of samples in the current block based on the coding mode for the current block and a history buffer, the history buffer being configured to store vector information of at least a block previously decoded in the IBC mode and a string previously decoded in the string copy mode;

reconstruct the current unit of samples based on the current vector information; and

store the current vector information in the history buffer in response to a determination that the current vector information is different from the vector information already stored in the history buffer, wherein the current vector information is determined to be different from a piece of the vector information already stored in the history buffer based on a size of the current unit of samples being different from a size of a block or a string corresponding to the piece of the vector information already stored in the history buffer.

12. The apparatus of claim 11 , wherein

the coding mode for the current block is the IBC mode;

the current unit of samples is the current block; and

the determining the current vector information further includes:

determining a block vector (BV) predictor candidate list for the current block based at least on the vector information in the history buffer; and

determining, based on the BV predictor candidate list, a current BV as the current vector information.

13. The apparatus of claim 11 , wherein

the coding mode for the current block is the string copy mode;

the current unit of samples is a current string in the current block; and

the processing circuitry is further configured to:

determine a current string vector (SV) as the current vector information based on the vector information in the history buffer, the current SV corresponding to the current string.

14. The apparatus of claim 11 , wherein the processing circuitry is further configured to:

determine that the current vector information is different from the vector information already stored in the history buffer in response to a determination that a difference between a current vector in the current vector information and each vector of the vector information already stored in the history buffer is larger than a threshold.

15. The apparatus of claim 11 , wherein the processing circuitry is further configured to:

determine that the size of the current unit of samples is different from the size of the block or the string corresponding to the piece of the vector information when a difference between the size of the current unit of samples and the size of the block or the string corresponding to the piece of the vector information is larger than a size threshold.

16. The apparatus of claim 11 , wherein

the determination that the current vector information is different from the vector information already stored in the history buffer indicates that the current vector information is different from (i) a subset of all of the vector information in the history buffer or (ii) all of the vector information in the history buffer.

17. The apparatus of claim 11 , wherein

the piece of the vector information already stored in the history buffer includes a string vector and at least one of (i) a string location or (ii) a string size of the string previously decoded in the string copy mode,

the string location is a location of a pre-determined sample in the string previously decoded in the string copy mode, and

the string size is a number of samples in the string previously decoded in the string copy mode.

18. The apparatus of claim 11 , wherein

the vector information already stored in the history buffer includes previous vectors, previous unit sizes, and previous unit locations of corresponding previously decoded units of samples that include the block previously decoded in the IBC mode and the string previously decoded in the string copy mode; and

the processing circuitry is further configured to classify each piece of the vector information stored in the history buffer into one of a plurality of categories based on at least one of: (i) a previous unit size of the respective piece of the vector information, (ii) a previous unit location of the respective piece of the vector information, or (iii) a number of times that the respective piece of the vector information is used to predict one or more previously decoded units of samples, the history buffer being a class-based history buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2021
From: XU, XIAOZHONG; LIU, SHAN
To: TENCENT AMERICA LLC
Reel/Frame 055756/0155 →
Continuity (2)
Provisional Application 63003665 · Apr 1, 2020
Related Publication 20210314585A1 · Oct 7, 2021