IP Library Granted Patent US 12,192,510
Granted Patent B2
US 12,192,510 · App. 17/954,721 · Granted Jan 7, 2025

Validity determination of block vector candidates

Inventors: Tae Meon Bae (McLean, VA); Damian Ruiz Coll (Reston, VA)
Assignee: Ofinno, LLC
H04N19/521H04N19/43
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,192,510
App. No.
17/954,721
Granted
Jan 7, 2025
Kind
B2
Abstract

An apparatus calculates a block vector difference (BVD) between a block vector (BV) and a block vector predictor (BVP). The apparatus determines each of a plurality of BV candidates based on a sum of the BVP and a different one of a plurality of BVD candidates. Each of the plurality of BVD candidates comprises: a first and a second component magnitude of the BVD; and a different combination of signs for the first and second component magnitudes. The apparatus determines validities of the plurality of BV candidates based on values of samples, stored in a reference memory, of reference blocks indicated by the plurality of BV candidates. The apparatus signales, in a bitstream, a sign for at least one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates.

Claims (46)

1. A method comprising:

calculating a block vector difference (BVD) between a block vector (BV) and a block vector predictor (BVP);

determining each of a plurality of BV candidates based on a sum of the BVP and a different one of a plurality of BVD candidates, wherein each of the plurality of BVD candidates comprises:

a first and a second component magnitude of the BVD; and

a different combination of signs for the first and second component magnitudes; and

determining validities of the plurality of BV candidates based on values of samples, stored in a reference memory, of reference blocks indicated by the plurality of BV candidates; and

signaling, in a bitstream, a sign for at least one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates.

2. The method of claim 1 , wherein determining the validities of the plurality of BV candidates comprises determining a validity of a BV candidate of the plurality of BV candidates based on at least:

a first value, stored in the reference memory, for a top left sample of a reference block indicated by the BV candidate; and

a second value, stored in the reference memory, for a bottom right sample of the reference block indicated by the BV candidate.

3. The method of claim 2 , wherein determining the validity of the BV candidate comprises determining that the BV candidate is valid based on the first and second values not being equal to a default value.

4. The method of claim 3 , wherein the default value is −1.

5. The method of claim 1 , wherein determining the validities of the plurality of BV candidates comprises determining a validity of a BV candidate, of the plurality of BV candidates, based on a value, stored in the reference memory, for each sample of a reference block indicated by the BV candidate.

6. The method of claim 5 , wherein determining the validity of the BV candidate comprises determining that the BV candidate is valid based on the value, stored in the reference memory, for each sample of the reference block indicated by the BV candidate not being equal to a default value.

7. The method of claim 6 , wherein the default value is −1.

8. An apparatus comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

calculate a block vector difference (BVD) between a block vector (BV) and a block vector predictor (BVP);

determine each of a plurality of BV candidates based on a sum of the BVP and a different one of a plurality of BVD candidates, wherein each of the plurality of BVD candidates comprises:

a first and a second component magnitude of the BVD; and

a different combination of signs for the first and second component magnitudes; and

determine validities of the plurality of BV candidates based on values of samples, stored in a reference memory, of reference blocks indicated by the plurality of BV candidates; and

signal, in a bitstream, a sign for at least one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates.

9. The apparatus of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validities of the plurality of BV candidates further cause the apparatus to determine a validity of a BV candidate of the plurality of BV candidates based on at least:

a first value, stored in the reference memory, for a top left sample of a reference block indicated by the BV candidate; and

a second value, stored in the reference memory, for a bottom right sample of the reference block indicated by the BV candidate.

10. The apparatus of claim 9 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validity of the BV candidate further cause the apparatus to determine that the BV candidate is valid based on the first and second values not being equal to a default value.

11. The apparatus of claim 10 , wherein the default value is −1.

12. The apparatus of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validities of the plurality of BV candidates further cause the apparatus to determine a validity of a BV candidate, of the plurality of BV candidates, based on a value, stored in the reference memory, for each sample of a reference block indicated by the BV candidate.

13. The apparatus of claim 12 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validity of the BV candidate further cause the apparatus to determine that the BV candidate is valid based on the value, stored in the reference memory, for each sample of the reference block indicated by the BV candidate not being equal to a default value.

14. The apparatus of claim 13 , wherein the default value is −1.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of an apparatus, cause the apparatus to:

calculate a block vector difference (BVD) between a block vector (BV) and a block vector predictor (BVP);

determine each of a plurality of BV candidates based on a sum of the BVP and a different one of a plurality of BVD candidates, wherein each of the plurality of BVD candidates comprises:

a first and a second component magnitude of the BVD; and

a different combination of signs for the first and second component magnitudes; and

determine validities of the plurality of BV candidates based on values of samples, stored in a reference memory, of reference blocks indicated by the plurality of BV candidates; and

signal, in a bitstream, a sign for at least one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates.

16. The non-transitory computer-readable medium of claim 15 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validities of the plurality of BV candidates further cause the apparatus to determine a validity of a BV candidate of the plurality of BV candidates based on at least:

a first value, stored in the reference memory, for a top left sample of a reference block indicated by the BV candidate; and

a second value, stored in the reference memory, for a bottom right sample of the reference block indicated by the BV candidate.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validity of the BV candidate further cause the apparatus to determine that the BV candidate is valid based on the first and second values not being equal to a default value.

18. The non-transitory computer-readable medium of claim 17 , wherein the default value is −1.

19. The non-transitory computer-readable medium of claim 15 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validities of the plurality of BV candidates further cause the apparatus to determine a validity of a BV candidate, of the plurality of BV candidates, based on a value, stored in the reference memory, for each sample of a reference block indicated by the BV candidate.

20. The non-transitory computer-readable medium of claim 19 , wherein the instructions that, when executed by the one or more processors, cause the apparatus to determine the validity of the BV candidate further cause the apparatus to determine that the BV candidate is valid based on the value, stored in the reference memory, for each sample of the reference block indicated by the BV candidate not being equal to a default value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2023
From: BAE, TAE MEON; RUIZ COLL, DAMIAN
To: OFINNO, LLC
Reel/Frame 062643/0153 →
Continuity (2)
Provisional Application 63249522 · Sep 28, 2021
Related Publication 20230100650A1 · Mar 30, 2023
References Cited (19)
US 20150373366A1 · He · 2015 [cited by examiner]
US 20200112743A1 · Xu · 2020 [cited by examiner]
US 20220094979A1 · Tian · 2022 [cited by examiner]
US 20220109852A1 · Xu · 2022 [cited by examiner]
Xiaozhong XU et al., “Intra block copy in Versatile Video Coding with Reference Sample Memory Reuse”, 2019 Picture Coding Symposium (PCS), 2019, pp. 1-5. [cited by applicant]
Tung Nguyen et al., “Overview of the Screen Content Support in VVC: Applications, Coding Tools, and Performance”, IEEE Transactions on Circuits and Systems for Video Technology PP(99):1-1, Apr. 2021, pp. 1-18. [cited by applicant]
International Telecommunication Union, ITU-T, Telecommunication Standardization Sector of ITU, H.266, (Aug. 2020), Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving vi… [cited by applicant]
JVET-J0047-v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 10th Meeting: San Diego, US, Apr. 10-20, 2018; Title: Further work on top of Tencent's CfP response; Status: Input docume… [cited by applicant]
IVET-L0404-v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 12th Meeting: Macao, CN, Oct. 3-12, 2018; Title: CE8-related: Restrictions for the search area of the IBC blocks in CPR; … [cited by applicant]
JVET-M0407-v3; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 13th Meeting: Marrakesh, MA, Jan. 9-18, 2019; Title: CE8: CPR reference memory reuse without increasing memory requiremen… [cited by applicant]
JVET-N0249_v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 14th Meeting: Geneva, CH, Mar. 19-27, 2019; Title: Non-CE8: an alternative search area for IBC; Status: Input document to… [cited by applicant]
JVET-N0250; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 14th Meeting: Geneva, CH, Mar. 19-27, 2019; Title: Non-CE8: Reference memory reduction for intra block copy; Status: Input d… [cited by applicant]
JVET-N0383-v1; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 14th Meeting: Geneva, CH, Mar. 19-27, 2019; Title: Non-CE8: IBC search range adjustment for implementation consideration;… [cited by applicant]
JVET-N0472_v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 14th Meeting: Geneva, CH, Mar. 19-27, 2019; Title: Non-CE8: On IBC reference buffer design; Status: Input document to JVE… [cited by applicant]
JVET-O1170-v1; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 15th Meeting: Gothenburg, SE, Jul. 3-12, 2019; Title: Bitstream conformance with a virtual IBC buffer concept; Status: In… [cited by applicant]
JVET-P0454-v3; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 16th Meeting: Geneva, CH, Oct. 1-11, 2019; Title: Non-CE8: Constraints on IBC reference block locations; Status: Input do… [cited by applicant]
JVET-P1018-v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 16th Meeting: Geneva, CH, Oct. 1-11, 2019; Title: Non-CE8: An alternative IBC virtual buffer setting to avoid reference s… [cited by applicant]
JVET-T2002-v2; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29; 20th Meeting, by teleconference, Oct. 7-16, 2020; Title: Algorithm description for Versatile Video Coding and Test Model 11 (VT… [cited by applicant]
JVET-S2001-vG; Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11; 19th Meeting: by teleconference, Jun. 22-Jul. 1, 2020; Title: Versatile Video Coding (Draft 10); Status: Output document … [cited by applicant]