IP Library Granted Patent US 12,335,464
Granted Patent B2
US 12,335,464 · App. 18/427,605 · Granted Jun 17, 2025

Adaptive unequal weight planar prediction

Inventors: Krit Panusopone (San Diego, CA); Yue Yu (San Diego, CA); Seungwook Hong (San Diego, CA); Limin Wang (San Diego, CA)
Assignee: ARRIS Enterprises LLC
H04N19/105H04N19/107H04N19/11H04N19/119H04N19/136H04N19/176H04N19/186H04N19/52H04N19/593H04N19/82H04N19/126H04N19/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,335,464
App. No.
18/427,605
Granted
Jun 17, 2025
Kind
B2
Abstract

A method of decoding JVET video includes receiving a bitstream that includes encoded video data that includes encoded video data. From the encoded data, a horizontal predictor and a vertical predictor for a pixel in the current coding block may be interpolated. A coding block size may be identified to determine whether to use equal weight or unequal weights to apply to each of the horizontal and vertical predictors for calculating a final planar prediction value P(x,y) by comparing the coding block size to a coding block size threshold.

Claims (57)

1. A method of decoding a bitstream, including a plurality of frames, by a decoder, comprising:

(a) receiving said bitstream indicating how a coding tree unit was partitioned into rectangular coding units according to a quad tree plus multi tree structure that allows a coding block to be split in half in both horizontal and vertical directions, where said partitioning allows a resulting node partitioned by said coding block split in half in both horizontal and vertical directions to be further partitioned by being split in half in both horizontal and vertical directions, wherein one of said partitioned blocks to be split is further based upon one selected from a group consisting of,

(i) a symmetric binary partitioning that splits one of said partitioned blocks in half in either a horizontal direction or a vertical direction resulting in two blocks that are the same size, and

(ii) an asymmetric partitioning that splits one of said partitioned blocks in either a horizontal direction or a vertical direction resulting in a plurality of blocks that are different sizes;

(b) where a first one of said coding units has a first width and a first height, wherein said first width is different than said first height;

(c) where a second one of said coding units has a second width and a second height, wherein said second width is different than said second height;

(d) where said first width is different than said second width, and said first height is different than said second height;

(e) calculating a first prediction to predict pixel values for said first coding unit and calculating a second prediction to predict pixel values for said second coding unit;

(f) determining a first predictor based upon a plurality of pixels drawn from a first horizontal array of pixels and drawn from a first vertical array of pixels for a pixel in said first coding unit;

(g) determining a second predictor based upon a plurality of pixels drawn from a second horizontal array of pixels and drawn from a second vertical array of pixels for a pixel in said second coding unit;

(h) where said first horizontal array of pixels is different than said second horizontal array of pixels, and said first vertical array of pixels is different than said second vertical array of pixels;

(i) where a set of available first horizontal array of pixels and available first vertical array of pixels for said first coding unit is based upon said first height and said first width, respectively;

(j) where a set of available second horizontal array of pixels and available second vertical array of pixels for said second coding unit is based upon said second height and said second width, respectively;

(k) decoding said first coding unit based upon said first prediction for said predicted pixel of said first coding unit which is based upon said first predictor, and decoding said second coding unit based upon said second prediction for said predicted pixel of said second coding unit which is based upon said second predictor.

2. A method of decoding a bitstream by a decoder, comprising:

(a) receiving said bitstream indicating how a coding tree unit was partitioned into rectangular coding units according to a quad tree plus multi tree structure that allows a coding block to be split in half in both horizontal and vertical directions, where said partitioning allows a resulting node partitioned by said coding block split in half in both horizontal and vertical directions to be further partitioned by being split in half in both horizontal and vertical directions, wherein one of said partitioned blocks to be split is further based upon one selected from a group consisting of,

(i) a symmetric binary partitioning that splits one of said partitioned blocks in half in either a horizontal direction or a vertical direction resulting in two blocks that are the same size, and

(ii) an asymmetric partitioning that splits one of said partitioned blocks in either a horizontal direction or a vertical direction resulting in a plurality of blocks that are different sizes;

(b) where a first one of said coding units has a first width and a first height, wherein said first width is different than said first height;

(c) where a second one of said coding units has a second width and a second height, wherein said second width is different than said second height;

(d) where said first width is different than said second width, and said first height is different than said second height;

(e) using a first single directional index to predict a first pixel of said first coding unit which identifies a plurality of pixels drawn from a first reference pixel in a position above said first coding unit in array of pixels and a second reference pixel at a position to the left of said first coding unit in array of pixels;

(f) using a second single directional index to predict a first pixel of said second coding unit which identifies a plurality of pixels drawn from a third reference pixel in a position above said second coding unit in array of pixels and a fourth reference pixel at a position to the left of said second coding unit in array of pixels;

(g) where said first single directional index is different than said second single directional index;

(h) where a set of available first indexes from which said first single directional index is selected based upon said first height and/or said first width of said first coding unit;

(i) where a set of available second indexes from which said second single directional index is selected based upon said second height and/or said second width of said first coding unit;

(j) decoding said first coding unit based upon said first pixel prediction for said first pixel of said first coding unit, and decoding said second coding unit based upon said second pixel prediction for said first pixel of said second coding unit;

(k) wherein said first set of available first indexes refers to directional predicational angles including values greater then 45 degrees and/or less than-135 degrees;

(l) wherein said second set of available first indexes refers to directional predicational angles including values greater then 45 degrees and/or less than-135 degrees.

3. A method of encoding a bitstream, including a plurality of frames, by an encoder, comprising:

(a) providing said bitstream indicating how a coding tree unit was partitioned into rectangular coding units according to a quad tree plus multi tree structure that allows a coding block to be split in half in both horizontal and vertical directions, where said partitioning allows a resulting node partitioned by said coding block split in half in both horizontal and vertical directions to be further partitioned by being split in half in both horizontal and vertical directions, wherein one of said partitioned blocks to be split is further based upon one selected from a group consisting of,

(i) a symmetric binary partitioning that splits one of said partitioned blocks in half in either a horizontal direction or a vertical direction resulting in two blocks that are the same size, and

(ii) an asymmetric partitioning that splits one of said partitioned blocks in either a horizontal direction or a vertical direction resulting in a plurality of blocks that are different sizes;

(b) where a first one of said coding units has a first width and a first height, wherein said first width is different than said first height;

(c) where a second one of said coding units has a second width and a second height, wherein said second width is different than said second height;

(d) where said first width is different than said second width, and said first height is different than said second height;

(e) said bitstream containing data suitable for calculating a first prediction to predict pixel values for said first coding unit and calculating a second prediction to predict pixel values for said second coding unit;

(f) said bitstream containing data suitable for determining a first predictor based upon a plurality of pixels drawn from a first horizontal array of pixels and drawn from a first vertical array of pixels for a pixel in said first coding unit;

(g) said bitstream containing data suitable for determining a second predictor based upon a plurality of pixels drawn from a second horizontal array of pixels and drawn from a second vertical array of pixels for a pixel in said second coding unit;

(h) where said first horizontal array of pixels is different than said second horizontal array of pixels, and said first vertical array of pixels is different than said second vertical array of pixels;

(i) where a set of available first horizontal array of pixels and available first vertical array of pixels for said first coding unit is based upon said first height and said first width, respectively;

(j) where a set of available second horizontal array of pixels and available second vertical array of pixels for said second coding unit is based upon said second height and said second width, respectively;

(k) encoding said first coding unit based upon said first prediction for said predicted pixel of said first coding unit which is based upon said first predictor, and encoding said second coding unit based upon said second prediction for said predicted pixel of said second coding unit which is based upon said second predictor.

4. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to:

(a) indicating how a coding tree unit was partitioned into rectangular coding units according to a quad tree plus multi tree structure that allows a coding block to be split in half in both horizontal and vertical directions, where said partitioning allows a resulting node partitioned by said coding block split in half in both horizontal and vertical directions to be further partitioned by being split in half in both horizontal and vertical directions, wherein one of said partitioned blocks to be split is further based upon one selected from a group consisting of,

(i) a symmetric binary partitioning that splits one of said partitioned blocks in half in either a horizontal direction or a vertical direction resulting in two blocks that are the same size, and

(ii) an asymmetric partitioning that splits one of said partitioned blocks in either a horizontal direction or a vertical direction resulting in a plurality of blocks that are different sizes;

(b) where a first one of said coding units has a first width and a first height, wherein said first width is different than said first height;

(c) where a second one of said coding units has a second width and a second height, wherein said second width is different than said second height;

(d) where said first width is different than said second width, and said first height is different than said second height;

(e) calculating a first prediction to predict pixel values for said first coding unit and calculating a second prediction to predict pixel values for said second coding unit;

(f) determining a first predictor based upon a plurality of pixels drawn from a first horizontal array of pixels and drawn from a first vertical array of pixels for a pixel in said first coding unit;

(g) determining a second predictor based upon a plurality of pixels drawn from a second horizontal array of pixels and drawn from a second vertical array of pixels for a pixel in said second coding unit;

(h) where said first horizontal array of pixels is different than said second horizontal array of pixels, and said first vertical array of pixels is different than said second vertical array of pixels;

(i) where a set of available first horizontal array of pixels and available first vertical array of pixels for said first coding unit is based upon said first height and said first width, respectively;

(j) where a set of available second horizontal array of pixels and available second vertical array of pixels for said second coding unit is based upon said second height and said second width, respectively;

(k) decoding said first coding unit based upon said first prediction for said predicted pixel of said first coding unit which is based upon said first predictor, and decoding said second coding unit based upon said second prediction for said predicted pixel of said second coding unit which is based upon said second predictor.

Assignments (2)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
Continuity (13)
Continuation 18120934 · Mar 13, 2023
Continuation 17483531 · Sep 23, 2021
Continuation 17001939 · Aug 25, 2020
Continuation 16359936 · Mar 20, 2019
Continuation 15856393 · Dec 28, 2017
Provisional Application 62566117 · Sep 29, 2017
Provisional Application 62528732 · Jul 5, 2017
Provisional Application 62522420 · Jun 20, 2017
Provisional Application 62482178 · Apr 5, 2017
Provisional Application 62459797 · Feb 16, 2017
Provisional Application 62440379 · Dec 29, 2016
Provisional Application 62439724 · Dec 28, 2016
Related Publication 20240251072A1 · Jul 25, 2024
References Cited (14)
US 20110249741A1 · Zhao et al. · 2011 [cited by applicant]
US 20130329794A1 · Jeon · 2013 [cited by examiner]
US 20170094314A1 · Zhao et al. · 2017 [cited by applicant]
US 20170272759A1 · Seregin et al. · 2017 [cited by applicant]
US 20180184082A1 · Yoo et al. · 2018 [cited by applicant]
EP 2728884A2 · 2014 [cited by applicant]
EP 2890130A1 · 2015 [cited by applicant]
J. Chen, et al., “Algorithm Description of Joint Exploration Test Model 4 (JEM4)”, 116th MPEG Meeting (Motion Picture Expert Grop or ISO/IEC JTC1/SC29/WG11, No. N16511, Nov. 21, 2016, pp. 6-12. [cited by applicant]
K. Panusopone, et al., “Unequal Weight Planar Prediction and Constrained PDPC”, 5th JVET Meeting (The Joint Video Exploration Team of ISO/IEC JTC1/SC29 WG11 and ITU-T SG. 16), No. JVET-E0068, dated Jan. 5, 2017. [cited by applicant]
J. Lainema, et al., “Intra Coding of the HEVC Standard”, IEEE Transactions on Circuits and Systems for Video Technology, Institute of Electrical and Electronics Engineers, vol. 22, No. 12, Dec. 1, 2012, pp. 1792-1801. [cited by applicant]
K. Ugur (Nokia), et al., “Description of Video Coding Technology Proposal by Tandberg, Nokia, Ericsson”, 1st JCT-VC Meeting Apr. 15-23, 2010 (Joint Collaborative Team on Video Coding of ISO/IEC JTC1/SC29/WG11 and ITU-T … [cited by applicant]
S. Yu, et al., “Distance-based Weighted Prediction for H.264 Intra Coding” Audio, Language and Image Processing, 2008. ICALIP 2008, International Conference on, Jul. 7, 2008, pp. 1477-1480. [cited by applicant]
J. Chen, et al., “Algorithm Description of Joint Exploration Test Model 5 (JEM 5)”, JVET-E1001-V2, 5th Meeting, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 WG/11, Jan. 12-20, 2017. [cited by applicant]
English Translation of German Office Action Re: Application No. 11 2017 006 657.3. [cited by applicant]