IP Library Granted Patent US 12,256,087
Granted Patent B2
US 12,256,087 · App. 18/217,706 · Granted Mar 18, 2025

Adaptive coding unit (CU) partitioning based on image statistics

Inventor: Hyung Joon Kim (Johns Creek, GA)
Assignee: TEXAS INSTRUMENTS INCORPORATED
H04N19/176H04N19/119H04N19/14
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,256,087
App. No.
18/217,706
Granted
Mar 18, 2025
Kind
B2
Abstract

A method for determining coding unit (CU) partitioning of a largest coding unit (LCU) of a picture is provided that includes computing a first statistical measure and a second statistical measure for the LCU, selecting the LCU as the CU partitioning when the first statistical measure does not exceed a first threshold and the second statistical measure does not exceed a second threshold, and selecting CUs in one or more lower layers of a CU hierarchy of the LCU to form the CU partitioning when the first statistical measure exceeds the first threshold and/or the second statistical measure exceeds the second threshold.

Claims (86)

1. An encoder comprising:

a coding component configured to output a largest coding unit (LCU) of an image in a video sequence; and

a partitioning component configured to:

determine a first gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective neighboring pixel;

determine that the first gradient to exceeds a first threshold;

partition the LCU into a first set of child coding units (CUs) including a first child CU in response to determining that the first gradient exceeds the first threshold;

after partitioning the LCU into the first set of child CUs, determine a second gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective neighboring pixel;

determine that the second gradient to exceeds a second threshold; and

partition the first child CU into a second set of child CUs in response to determining that the second gradient exceeds the second threshold.

2. The encoder of claim 1 , wherein to determine the first gradient, the partitioning component is configured to:

determine a horizontal gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective horizontally neighboring pixel; and

determine a vertical gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective vertically neighboring pixel.

3. The encoder of claim 2 , wherein the partitioning component is further configured to determine the first gradient based on a sum of the horizontal gradient and the vertical gradient.

4. The encoder of claim 1 , wherein to determine the second gradient, the partitioning component is configured to:

determine a horizontal gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective horizontally neighboring pixel; and

determine a vertical gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective vertically neighboring pixel.

5. The encoder of claim 1 , wherein the partitioning component is further configured to:

determine an average pixel value for the LCU;

determine a variance of the LCU based on a sum of squared differences between each current pixel in the LCU and the average pixel value for the LCU; and

determine that the variance of the LCU exceeds a third threshold,

wherein the partitioning component is configured to partition the LCU into the first set of child CUs in response to determining that the variance exceeds the third threshold.

6. The encoder of claim 1 , wherein the partitioning component is further configured to:

determine an average pixel value for the first child CU;

determine a variance of the first child CU based on a sum of squared differences between each current pixel in the first child CU and the average pixel value for the first child CU; and

determine that the variance of the first child CU exceeds a third threshold,

wherein the partitioning component is configured to partition the first child CU into the second set of child CUs in response to determining that the variance exceeds the third threshold.

7. The encoder of claim 1 , wherein the partitioning component is further configured to:

determine an average pixel value for the LCU;

determine a variance of the LCU based on a sum of differences between each current pixel in the LCU and the average pixel value for the LCU; and

determine that the variance of the LCU exceeds a third threshold,

wherein the partitioning component is configured to partition the LCU into the first set of child CUs in response to determining that the variance exceeds the third threshold.

8. The encoder of claim 1 , wherein the partitioning component is further configured to:

determine an average pixel value for the first child CU;

determine a variance of the first child CU based on a sum of differences between each current pixel in the first child CU and the average pixel value for the first child CU; and

determine that the variance of the first child CU exceeds a third threshold,

wherein the partitioning component is configured to partition the first child CU into the second set of child CUs in response to determining that the variance exceeds the third threshold.

9. The encoder of claim 1 , wherein the coding component is configured to perform intra-prediction and inter-prediction for the second set of child CUs.

10. The encoder of claim 1 , wherein the first threshold is based on an expected content of the video sequence.

11. A method comprising:

determining, by a processor, a first gradient of a largest coding unit (LCU) based on a sum of differences between each current pixel in the LCU and a respective neighboring pixel;

determining, by the processor, that the first gradient to exceeds a first threshold;

partitioning, by the processor, the LCU into a first set of child coding units (CUs) including a first child CU in response to determining that the first gradient exceeds the first threshold;

after partitioning the LCU into the first set of child CUs, determining, by the processor, a second gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective neighboring pixel;

determining, by the processor, that the second gradient to exceeds a second threshold; and

partitioning, by the processor, the first child CU into a second set of child CUs in response to determining that the second gradient exceeds the second threshold.

12. The method of claim 11 , wherein determining the first gradient comprises:

determining a horizontal gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective horizontally neighboring pixel; and

determining a vertical gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective vertically neighboring pixel,

wherein the method further comprises determining the first gradient based on a sum of the horizontal gradient and the vertical gradient.

13. The method of claim 11 , wherein determining the second gradient comprises:

determining a horizontal gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective horizontally neighboring pixel; and

determining a vertical gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective vertically neighboring pixel.

14. The method of claim 11 , further comprising:

determining an average pixel value for the LCU;

determining a variance of the LCU based on a sum of squared differences between each current pixel in the LCU and the average pixel value for the LCU; and

determining that the variance of the LCU exceeds a third threshold,

wherein partitioning the LCU into the first set of child CUs is in response to determining that the variance exceeds the third threshold.

15. The method of claim 11 , further comprising:

determining an average pixel value for the first child CU;

determining a variance of the first child CU based on a sum of squared differences between each current pixel in the first child CU and the average pixel value for the first child CU; and

determining that the variance of the first child CU exceeds a third threshold,

wherein partitioning the first child CU into the second set of child CUs is in response to determining that the variance exceeds the third threshold.

16. The method of claim 11 , further comprising:

determining an average pixel value for the LCU;

determining a variance of the LCU based on a sum of differences between each current pixel in the LCU and the average pixel value for the LCU; and

determining that the variance of the LCU exceeds a third threshold,

wherein partitioning the LCU into the first set of child CUs is in response to determining that the variance exceeds the third threshold.

17. The method of claim 11 , further comprising:

determining an average pixel value for the first child CU;

determining a variance of the first child CU based on a sum of differences between each current pixel in the first child CU and the average pixel value for the first child CU; and

determining that the variance of the first child CU exceeds a third threshold,

wherein partitioning the first child CU into the second set of child CUs is in response to determining that the variance exceeds the third threshold.

18. A non-transitory computer readable medium storing software instructions that, when executed by at least one processor, cause the at least one processor to perform a method for determining coding unit (CU) partitioning of a largest CU (LCU) of an image in a video sequence, wherein the method comprises:

determine a first gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective neighboring pixel;

determine that the first gradient to exceeds a first threshold;

partition the LCU into a first set of child coding units (CUs) including a first child CU in response to determining that the first gradient exceeds the first threshold;

after partitioning the LCU into the first set of child CUs, determine a second gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective neighboring pixel;

determine that the second gradient to exceeds a second threshold; and

partition the first child CU into a second set of child CUs in response to determining that the second gradient exceeds the second threshold.

19. The non-transitory computer readable medium of claim 18 , wherein the instructions to determine the first gradient comprise instructions to:

determine a horizontal gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective horizontally neighboring pixel;

determine a vertical gradient of the LCU based on a sum of differences between each current pixel in the LCU and a respective vertically neighboring pixel; and

determine the first gradient based on a sum of the horizontal gradient and the vertical gradient.

20. The non-transitory computer readable medium of claim 18 , wherein the instructions to determine the second gradient comprise instructions to:

determine a horizontal gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective horizontally neighboring pixel; and

determine a vertical gradient of the first child CU based on a sum of differences between each current pixel in the first child CU and a respective vertically neighboring pixel.

Continuity (4)
Continuation 17499301 · Oct 12, 2021
Continuation 14083423 · Nov 18, 2013
Provisional Application 61727938 · Nov 19, 2012
Related Publication 20230353759A1 · Nov 2, 2023
References Cited (20)
US 8861615B2 · Sjoberg · 2014 [cited by examiner]
US 20050128306A1 · Porter · 2005 [cited by examiner]
US 20080253454A1 · Imamura et al. · 2008 [cited by applicant]
US 20110274162A1 · Zhou · 2011 [cited by examiner]
US 20120183080A1 · Zhou · 2012 [cited by applicant]
US 20130003868A1 · Sjoberg et al. · 2013 [cited by applicant]
US 20140086314A1 · Hebel · 2014 [cited by examiner]
US 20140355690A1 · Choi · 2014 [cited by examiner]
US 20150010056A1 · Choi et al. · 2015 [cited by applicant]
US 20150131713A1 · Kim et al. · 2015 [cited by applicant]
Thomas Wiegand et al., “WD3: Working Draft 3 of High-Efficiency Video Coding”, JCTVC-E603, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-215 Mar. 16-23, 2011, Gene… [cited by applicant]
Benjamin Bross et al., “WD4: Working Draft of High-Efficiency Video Coding”, JCTVC-F803_d6, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-217, Jul. 14-22, 2011, To… [cited by applicant]
Benjamin Bross et al., “WD5: Working Draft 5 of High-Efficiency Video Coding”, JCTVC-G1103_d9, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-223, Nov. 21-30, 2011,… [cited by applicant]
Benjamin Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 6”, JCTVC-H1003, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-249, Nov. 21-30… [cited by applicant]
Il-Koo Kim et al., “HM7: High Efficiency Video Coding (HEVC) Test Model 7 Encoder Description”, JCTVC-11002, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and Iso/Iec JTC1/SC29/WG11, pp. 1-50, Apr.… [cited by applicant]
Benjamin Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 7”, JCTVC-11003_d9, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-260, Apr. 27… [cited by applicant]
Benjamin Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 8”, JCTVC-J1003_d7, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-250, Jul. 11… [cited by applicant]
Benjamin Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 9”, JCTVC-K1003_v12, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, pp. 1-293, Oct. 1… [cited by applicant]
Benjamin Bross et al., High Efficiency Video Coding (HEVC) Text Specification Draft 10 (for FDIS & Last Call), JCTVC-L1003_v34, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/W… [cited by applicant]
“TMS320DM6467 Digital Media System-on-Chip”, SPRS403G, Texas Instruments Incorporated, Dec. 2007, revised Oct. 2010, pp. 1-355. [cited by applicant]