IP Library › Granted Patent US 12,531,986
Granted Patent B2
US 12,531,986 · App. 18/742,363 · Granted Jan 20, 2026

Interpolation filter clipping for sub-picture motion vectors

Inventors: Ye-Kui Wang (San Diego, CA); Jianle Chen (San Diego, CA); Fnu Hendry (San Diego, CA)
Assignee: Huawei Technologies Co., Ltd.
H04N19/117H04N19/105H04N19/119H04N19/132H04N19/137H04N19/159H04N19/172H04N19/174H04N19/176H04N19/184H04N19/186H04N19/46H04N19/52H04N19/593H04N19/70H04N19/82H04N19/86H04N19/96
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,531,986
App. No.
18/742,363
Granted
Jan 20, 2026
Kind
B2
Abstract

A video coding mechanism is disclosed. The mechanism includes receiving a bitstream comprising a current picture including a sub-picture coded according to inter-prediction. A motion vector for a block of the sub-picture is determined. A clipping function is applied to sample locations in a reference block to support application of an interpolation filter when the motion vector points outside of the sub-picture and when a flag is set to indicate the sub-picture is treated as a picture. The interpolation filter is applied to results of the clipping function to obtain a predicted sample value. The block is decoded based on the predicted sample value. The block is forwarded for display as part of a decoded video sequence.

Claims (126)

1 . A method implemented by a decoder, comprising:

receiving a current picture including a sub-picture with a block coded according to inter-prediction;

determining a motion vector for the block;

applying a clipping function to sample locations in a reference block during application of an interpolation process when a flag is set to indicate the sub-picture is treated as a picture;

applying the interpolation process to results of the clipping function to obtain a predicted sample value; and

decoding the block based on the predicted sample value,

wherein the interpolation process includes a luma sample bilinear interpolation process, wherein the block includes a block of luma samples, wherein the predicted sample value includes a predicted luma sample value, wherein the luma sample bilinear interpolation process receives inputs including a luma location in full sample units (xInt L , yInt L ), and wherein the luma sample bilinear interpolation process outputs the predicted luma sample value (predSampleLX L ), and

wherein the clipping function is applied to the sample locations according to:

xInti=Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L +i ), and

yInti=Clip3(SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt L +i ),

where xInti and yInti are a sample location at index i, SubPicRightBoundaryPos is a position of a right boundary of the sub-picture, SubPicLeftBoundaryPos is a position of a left boundary of the sub-picture, SubPicTopBoundaryPos is a position of a top boundary of the sub-picture, and

where SubPicBotBoundaryPos is a position of a bottom boundary of the sub-picture, and Clip3 is the clipping function according to:

Clip

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

where x, y, and z are numerical input values.

2 . The method of claim 1 , wherein the clipping function is applied to the sample locations when subpic_treated_as_pic_flag[SubPicIdx] is equal to one, where subpic_treated_as_pic_flag is the flag set to indicate the sub-picture is treated as a picture, SubPicIdx is an index of the sub-picture.

3 . The method of claim 1 , wherein the interpolation process includes a luma sample interpolation filtering process.

4 . A method implemented by an encoder, comprising:

partitioning a current picture into a sub-picture and the sub-picture into a block;

determining to encode the block according to inter-prediction;

selecting a motion vector to encode the block;

applying a clipping function to sample locations in a reference block to support application of an interpolation process when the motion vector points outside of the sub-picture and when a flag is set to indicate the sub-picture is treated as a picture;

applying the interpolation process to results of the clipping function to obtain a predicted sample value;

encoding the block into a bitstream based on the predicted sample value and the motion vector; and

storing the bitstream for communication toward a decoder,

wherein the interpolation process includes a luma sample bilinear interpolation process, wherein the block includes a block of luma samples, wherein the predicted sample value includes a predicted luma sample value, wherein the luma sample bilinear interpolation process receives inputs including a luma location in full sample units (xInt L , yInt L ), and wherein the luma sample bilinear interpolation process outputs the predicted luma sample value (predSampleLX L ), and

wherein the clipping function is applied to the sample locations according to:

xInti=Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L +i ), and

yInti=Clip3(SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt L +i ),

where xInti and yInti are a sample location at index i, SubPicRightBoundaryPos is a position of a right boundary of the sub-picture, SubPicLeftBoundaryPos is a position of a left boundary of the sub-picture, SubPicTopBoundaryPos is a position of a top boundary of the sub-picture, and

where SubPicBotBoundaryPos is a position of a bottom boundary of the sub-picture, and Clip3 is the clipping function according to:

Clip

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

where x, y, and z are numerical input values.

5 . The method of claim 4 , wherein the clipping function is applied to the sample locations when subpic_treated_as_pic_flag[SubPicIdx] is equal to one, where subpic_treated_as_pic_flag is the flag set to indicate the sub-picture is treated as a picture and SubPicIdx is an index of the sub-picture.

6 . The method of claim 4 , wherein the interpolation process includes a luma sample interpolation filtering process.

7 . A decoder, comprising:

a receiver configured to receive a current picture including a sub-picture with a block coded according to inter-prediction; and

one or more processors coupled to the receiver and configured to:

determine a motion vector for the block;

apply a clipping function to sample locations in a reference block during application of an interpolation process when a flag is set to indicate the sub-picture is treated as a picture;

apply the interpolation process to results of the clipping function to obtain a predicted sample value; and

decode the block based on the predicted sample value,

wherein the interpolation process includes a luma sample bilinear interpolation process, wherein the block includes a block of luma samples, wherein the predicted sample value includes a predicted luma sample value, wherein the luma sample bilinear interpolation process receives inputs including a luma location in full sample units (xInt L , yInt L ), and wherein the luma sample bilinear interpolation process outputs the predicted luma sample value (predSampleLX L ), and

wherein the clipping function is applied to the sample locations according to:

xInti=Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L +i ), and

yInti=Clip3(SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt L +i ),

where xInti and yInti are a sample location at index i, SubPicRightBoundaryPos is a position of a right boundary of the sub-picture, SubPicLeftBoundaryPos is a position of a left boundary of the sub-picture, SubPicTopBoundaryPos is a position of a top boundary of the sub-picture, and

where SubPicBotBoundaryPos is a position of a bottom boundary of the sub-picture, and Clip3 is the clipping function according to:

Clip

⁢

3

⁢

(

x

,

y

,

z

)

=

{

x

;

z

<

x

y

;

z

>

y

z

;

otherwise

where x, y, and z are numerical input values.

8 . The decoder of claim 7 , wherein the clipping function is applied to the sample locations when subpic_treated_as_pic_flag[SubPicIdx] is equal to one, where subpic_treated_as_pic_flag is the flag set to indicate the sub-picture is treated as a picture and SubPicIdx is an index of the sub-picture.

9 . The decoder of claim 7 , wherein the interpolation process includes a luma sample interpolation filtering process.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2025
From: FUTUREWEI TECHNOLOGIES, INC.
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 073884/0270 →
Continuity (5)
Continuation 17470376 · Sep 9, 2021
Continuation PCTUS2020022083 · Mar 11, 2020
Provisional Application 62826659 · Mar 29, 2019
Provisional Application 62816751 · Mar 11, 2019
Related Publication 20250008095A1 · Jan 2, 2025
References Cited (37)
US 9462298B2 · Chong et al. · 2016 [cited by applicant]
US 11140386B2 · Zhang · 2021 [cited by examiner]
US 20070183676A1 · Hannuksela et al. · 2007 [cited by applicant]
US 20130107973A1 · Wang et al. · 2013 [cited by applicant]
US 20130202051A1 · Zhou · 2013 [cited by applicant]
US 20130208806A1 · Hu et al. · 2013 [cited by applicant]
US 20130208808A1 · Sasai et al. · 2013 [cited by applicant]
US 20140037011A1 · Lim et al. · 2014 [cited by applicant]
US 20140161189A1 · Zhang · 2014 [cited by examiner]
US 20140254666A1 · Rapaka et al. · 2014 [cited by applicant]
US 20140369415A1 · Naing et al. · 2014 [cited by applicant]
US 20150010091A1 · Hsu et al. · 2015 [cited by applicant]
US 20160080753A1 · Oh et al. · 2016 [cited by applicant]
US 20170085917A1 · Hannuksela · 2017 [cited by applicant]
US 20180091825A1 · Zhao · 2018 [cited by examiner]
US 20190075328A1 · Huang et al. · 2019 [cited by applicant]
CN 108293136A · 2018 [cited by applicant]
EP 2728876A1 · 2014 [cited by applicant]
JP 2018056685A · 2018 [cited by applicant]
WO 2014051915A1 · 2014 [cited by applicant]
WO 2015007946A1 · 2015 [cited by applicant]
Benjamin Bross et al., “Versatile Video Coding (Draft 3)”, Document: JVET-L1001-v9, 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,3 Oct. 12, 2018, XP030252734, t… [cited by applicant]
Minhua Zhou “AHG4: Enable parallel decoding with tiles,” Document: JCTVC-10118,M24357 Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 9th Meeting: Geneva, Switzerland, Apr… [cited by applicant]
Hannuksela Miska M et al., “Sub-picture video coding for unequal error protection,” 2010 18th European Signal Processing Conference, IEEE, Sep. 3, 2002, pp. 1-4, XP032754192. [cited by applicant]
Document: JVET-N0826-v1, Wang, Y.K., et al., “AHG12: Harmonized proposal for sub-picture-based coding for VVC,” 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,… [cited by applicant]
Document: JVET-Q0352, Jang, H., et al., “AHG9/AHG12: On subpicture boundary”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 17th Meeting: Brussels, BE, Jan. 7-17, 2020, 12 pages. [cited by applicant]
Hannuksela, M., et al., “Sub-Picture Video Coding for Unequal Error Protection”, Mar. 2002, 4 pages. [cited by applicant]
“Line Transmission of Non-Telephone Signals, Video Codec for Audiovisual Services at p×64 kbits,” ITU-T, H.261, Mar. 1993, 29 pages. [cited by applicant]
“Transmission of Non-Telephone Signals, Information Technology—Generic Coding of Moving Pictures and Associated Audio Information: Video,” H.262, Jul. 1995, 211 pages. [cited by applicant]
“Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video, Video coding for low bit rate communication,” ITU-T, H.263, Jan. 2005, 226 pages. [cited by applicant]
“Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video, Advanced video coding for generic audiovisual services,” ITU-T, H.264, Jun. 2019, 836 pages. [cited by applicant]
“Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video, High efficiency video coding,” H.265, Apr. 2013, 317 pages. [cited by applicant]
Bross, B., et al., “Versatile Video Coding (Draft 3),” JVET-L1001-v3, Oct. 3-12, 2018, 181 pages. [cited by applicant]
JVET-M1001-v6, “Versatile Video Coding (Draft 4),” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, Jan. 9-18, 2019, 298 pages. [cited by applicant]
JVET-M0261, “AHG12: On grouping of tiles,” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, Jan. 9-18, 2019, 11 pages. [cited by applicant]
JCTVC-AC1005-v2, “HEVC Additional Supplemental Enhancement Information (Draft 4),” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 29th Meeting: Macao, CN, Oct. 19-25… [cited by applicant]
Document: JVET-M0136-v1, Chen, J., et al., “AHG12: Treating tile and tile group boundaries as picture boundaries,” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrake… [cited by applicant]
Cited By (1)
US 12,652,382