IP Library › Granted Patent US 12,348,728
Granted Patent B2
US 12,348,728 · App. 17/954,707 · Granted Jul 1, 2025

Block vector difference signaling for intra block copy

Inventors: Damian Ruiz Coll (Reston, VA); Tae Meon Bae (McLean, VA)
Assignee: Ofinno, LLC
H04N19/137H04N19/176
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,348,728
App. No.
17/954,707
Granted
Jul 1, 2025
Kind
B2
Abstract

A decoder receives, in a bitstream, an indication of a block vector predictor (BVP) and a first and a second component magnitude of a block vector difference (BVD). The decoder 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: the first and second component magnitudes; and a different combination of signs for the first and second component magnitudes. The decoder determines a sign for at least one of the first and second component magnitudes of the BVD based on validities of the plurality of BV candidates.

Claims (78)

1. A method comprising:

receiving, in a bitstream for a block, an indication of a block vector predictor (BVP) and a first and a second component magnitude of a block vector difference (BVD);

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:

the first and second component magnitudes; and

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

determining validities of the plurality of BV candidates, wherein each of the validities for a respective BV candidate of the plurality of BV candidates is based on whether the BV candidate indicates a reference block located within a reference region of the block; and

determining a sign for one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates indicating only two or three of the plurality of BV candidates being valid.

2. The method of claim 1 , wherein:

a first BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and positive;

a second BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and negative;

a third BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and positive; and

a fourth BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and negative.

3. The method of claim 1 , wherein the first component magnitude is a magnitude of a horizontal component of the BVD and the second component magnitude is a magnitude of a vertical component of the BVD.

4. The method of claim 2 , wherein determining the sign for at least one of the first and second component magnitudes comprises determining the sign for the first component magnitude of the BVD based on only:

the first and second BV candidates, of the plurality of BVD candidates, being valid; or

the third and fourth BV candidates, of the plurality of BVD candidates, being valid.

5. The method of claim 2 , wherein determining the sign for at least one of the first and second component magnitudes comprises determining the sign for the second component magnitude of the BVD based on only:

the first and third BV candidates, of the plurality of BVD candidates, being valid; or

the second and fourth BV candidates, of the plurality of BVD candidates, being valid.

6. The method of claim 2 , wherein determining the sign for at least one of the first and second component magnitudes comprises determining the sign for the second component magnitude of the BVD based on only:

the second and third BV candidates, of the plurality of BVD candidates, being valid; or

the first and fourth BV candidates, of the plurality of BVD candidates, being valid.

7. The method of claim 2 , wherein determining the sign for at least one of the first and second component magnitudes comprises determining the sign for the second component magnitude of the BVD based on only:

the second, third, and fourth BV candidates, of the plurality of BVD candidates, being valid;

the first, third, and fourth BV candidates, of the plurality of BVD candidates, being valid;

the first, second, and fourth BV candidates, of the plurality of BVD candidates, being valid; or

the first, second, and third BV candidates, of the plurality of BVD candidates, being valid.

8. A decoder comprising:

one or more processors; and

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

receive, in a bitstream for a block, an indication of a block vector predictor (BVP) and a first and a second component magnitude of a block vector difference (BVD);

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:

the first and second component magnitudes; and

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

determine validities of the plurality of BV candidates, wherein each of the validities for a respective BV candidate of the plurality of BV candidates is based on whether the BV candidate indicates a reference block located within a reference region of the block; and

determine a sign for one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates indicating only two or three of the plurality of BV candidates being valid.

9. The decoder of claim 8 , wherein:

a first BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and positive;

a second BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and negative;

a third BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and positive; and

a fourth BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and negative.

10. The decoder of claim 8 , wherein the first component magnitude is a magnitude of a horizontal component of the BVD and the second component magnitude is a magnitude of a vertical component of the BVD.

11. The decoder of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the first component magnitude of the BVD based on only:

the first and second BV candidates, of the plurality of BVD candidates, being valid; or

the third and fourth BV candidates, of the plurality of BVD candidates, being valid.

12. The decoder of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the second component magnitude of the BVD based on only:

the first and third BV candidates, of the plurality of BVD candidates, being valid; or

the second and fourth BV candidates, of the plurality of BVD candidates, being valid.

13. The decoder of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the second component magnitude of the BVD based on only:

the second and third BV candidates, of the plurality of BVD candidates, being valid; or

the first and fourth BV candidates, of the plurality of BVD candidates, being valid.

14. The decoder of claim 8 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the second component magnitude of the BVD based on only:

the second, third, and fourth BV candidates, of the plurality of BVD candidates, being valid;

the first, third, and fourth BV candidates, of the plurality of BVD candidates, being valid;

the first, second, and fourth BV candidates, of the plurality of BVD candidates, being valid; or

the first, second, and third BV candidates, of the plurality of BVD candidates, being valid.

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

receive, in a bitstream for a block, an indication of a block vector predictor (BVP) and a first and a second component magnitude of a block vector difference (BVD);

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:

the first and second component magnitudes; and

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

determine validities of the plurality of BV candidates, wherein each of the validities for a respective BV candidate of the plurality of BV candidates is based on whether the BV candidate indicates a reference block located within a reference region of the block; and

determine a sign for one of the first and second component magnitudes of the BVD based on the validities of the plurality of BV candidates indicating only two or three of the plurality of BV candidates being valid.

16. The non-transitory computer-readable medium of claim 15 , wherein:

a first BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and positive;

a second BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of positive and negative;

a third BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and positive; and

a fourth BVD candidate, of the plurality of BVD candidates, comprises the first and second component magnitudes with respective signs of negative and negative.

17. The non-transitory computer-readable medium of claim 16 , wherein the first component magnitude is a magnitude of a horizontal component of the BVD and the second component magnitude is a magnitude of a vertical component of the BVD.

18. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the first component magnitude of the BVD based on only:

the first and second BV candidates, of the plurality of BVD candidates, being valid; or

the third and fourth BV candidates, of the plurality of BVD candidates, being valid.

19. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the second component magnitude of the BVD based on only:

the first and third BV candidates, of the plurality of BVD candidates, being valid; or

the second and fourth BV candidates, of the plurality of BVD candidates, being valid.

20. The non-transitory computer-readable medium of claim 16 , wherein the instructions that, when executed by the one or more processors, cause the decoder to determine the sign for one of the first and second component magnitudes further cause the decoder to determine the sign for the second component magnitude of the BVD based on only:

the second and third BV candidates, of the plurality of BVD candidates, being valid; or

the first and fourth BV candidates, of the plurality of BVD candidates, being valid.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2023
From: RUIZ COLL, DAMIAN; BAE, TAE MEON
To: OFINNO, LLC
Reel/Frame 062643/0186 →
Continuity (2)
Provisional Application 63249523 · Sep 28, 2021
Related Publication 20230095946A1 · Mar 30, 2023
References Cited (29)
US 20150373366A1 · He et al. · 2015 [cited by applicant]
US 20150373370A1 · Rapaka · 2015 [cited by examiner]
US 20180278951A1 · Seregin · 2018 [cited by examiner]
US 20200112743A1 · Xu et al. · 2020 [cited by applicant]
US 20220094979A1 · Tian et al. · 2022 [cited by applicant]
US 20220109852A1 · Xu et al. · 2022 [cited by applicant]
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]
Jian Cao et al., “Intra Block Copy Mirror Mode for Screen Content Coding in Versatile Video Coding”, IEEE Access, vol. 9, Feb. 19, 2021, pp. 31390-31400. [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]
JVET-J0050-r2; 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: Intra block copy improvement on top of Tencent's CfP response; Stat… [cited by applicant]
JVET-L0081-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: CE1.2.1: Constraint for binary and ternary partitions; Status: Input doc… [cited by applicant]
JVET-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-N0095-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: CE8-related: Unified method for coding BVD and MVD; Status: Input Docu… [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-N0251_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: intra block copy clean-up; Status: Input document to JVET; Pu… [cited by applicant]
JVET-N0260-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: Adaptive Fractional MVD search in DMVR for SCC; Status: Input… [cited by applicant]
JVET-N0289-V3; 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: CE8-Related : On MVD Coding; Status: Input document to JVET; Purpose: … [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 IVE… [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-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-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]
Notice of Allowance mailed Aug. 28, 2024 in U.S. Appl. No. 17/954,721. [cited by applicant]