IP Library Granted Patent US 9,654,782
Granted Patent B2
US 9,654,782 · App. 14/536,342 · Granted May 16, 2017

Low complexity coding based on dynamic mode decision branching

Inventors: In Suk Chong (San Diego, CA); Sungwon Lee (San Diego, CA); Cheng-Teh Hsieh (San Diego, CA); Xianglin Wang (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/176H04N19/103H04N19/105H04N19/122H04N19/137H04N19/139
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 9,654,782
App. No.
14/536,342
Granted
May 16, 2017
Kind
B2
Abstract

Provided are techniques for low complexity video coding. For example, a video coder may be configured to calculate a first sum of absolute difference (SAD) value between a coding unit (CU) block and a first corresponding block in a reference frame, and define branching conditions for branching of CU sizes based on the first SAD value, the branching conditions including a background condition and/or a homogeneous condition. The video coder may be configured to detect the background condition if the first SAD value of the CU block is less than a first threshold background value, and detect the homogeneous condition if a second SAD value of a sub-block of the CU block is between upper and lower homogeneous threshold values based on the first SAD value. The branching of the CU sizes may be based on detecting the background or homogeneous conditions.

Claims (99)

1. A method for video coding, comprising:

calculating a first sum of absolute difference (SAD) value between a coding unit (CU) block and a first corresponding block in a reference frame;

defining branching conditions for branching of CU sizes based at least in part on the first SAD value, the branching conditions comprising a background condition and a homogeneous condition;

detecting the background condition in response to the first SAD value of the CU block being less than a first threshold background value;

detecting the homogeneous condition in response to a second SAD value of a sub-block of the CU block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

determining the branching of the CU sizes based on the detection of the background condition or the homogeneous condition.

2. The method of claim 1 , wherein:

the upper homogeneous threshold value equals C u *(first SAD value)/4, wherein C d is greater than 1; and

the lower homogeneous threshold value equals C d *(first SAD value)/4, wherein C d is less than 1.

3. The method of claim 1 , wherein defining the branching conditions for the branching of CU sizes comprises:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the second SAD value of the sub-block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

4. The method of claim 1 , wherein defining the branching conditions for the branching of CU sizes comprises:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the third SAD value of a sub-sub block of the sub-block being between upper and lower homogeneous threshold values based at least in part on the second SAD value; and

defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

5. The method of claim 1 , wherein defining the branching conditions for the branching of CU sizes comprises:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition; and

defining the branching conditions for a second branch to comprise non-satisfaction of the branching conditions for the first branch.

6. The method of claim 1 , further comprising performing dynamic mode decision (DMD) branching for a largest coding unit (LCU) based on checking a subset of the CU sizes according to the branching of the CU sizes.

7. The method of claim 6 , further comprising (i) selecting a coding mode for a coding tree unit (CTU) or (ii) performing motion estimation, based at least in part on the DMD branching for the LCU.

8. The method of claim 6 , further comprising encoding video data based on performing block-based processing of the video data according to the DMD branching for the LCU, the block-based processing comprising:

determining prediction blocks based on the DMD branching for the LCU;

calculating residuals based on subtracting the prediction blocks from original pixels of the video data;

forward transforming the calculated residuals into coefficients; and

quantizing and entropy encoding the coefficients.

9. The method of claim 6 , further comprising decoding video data based on performing block-based processing of the video data according to the DMD branching for the LCU, the block-based processing comprising:

entropy decoding and de-quantizing the received coefficients;

calculating residuals based on inverse transforming the entropy-decoded, de-quantized coefficients;

determining prediction blocks based on the DMD branching for the LCU; and

forming reconstructed pixels based on adding the calculated residuals to the prediction blocks.

10. The method of claim 1 , the method being executable on a wireless communication device, wherein the device comprises:

a memory configured to store video data;

a processor configured to execute instructions to process the video data stored in said memory; and

a transmitter configured to transmit encoded video data using a coding mode based upon CU sizes as determined by the branching conditions.

11. The method of claim 10 , wherein the wireless communication device is a wireless telephone and the encoded video data is transmitted by the transmitter and modulated according to a wireless communication standard.

12. An apparatus for video coding, comprising:

a memory unit configured to store video data; and

a video encoder in communication with the memory unit, the video encoder configured to:

calculate a first sum of absolute difference (SAD) value between a coding unit (CU) block and a first corresponding block in a reference frame;

define branching conditions for branching of CU sizes based at least in part on the first SAD value, the branching conditions comprising a background condition and a homogeneous condition;

detect the background condition in response to the first SAD value of the CU block being less than a first threshold background value;

detect the homogeneous condition in response to a second SAD value of a sub-block of the CU block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

determine the branching of the CU sizes based on the detection of the background condition or the homogeneous condition.

13. The apparatus of claim 12 , wherein:

the upper homogeneous threshold value equals C u *(first SAD value)/4, wherein C d is greater than 1; and

the lower homogeneous threshold value equals C d *(first SAD value)/4, wherein C d is less than 1.

14. The apparatus of claim 12 , wherein the video encoder is configured to define the branching conditions for the branching of CU sizes based on:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the second SAD value of the sub-block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

15. The apparatus of claim 12 , wherein the video encoder is configured to define the branching conditions for the branching of CU sizes based on:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the third SAD value of a sub-sub block of the sub-block being between upper and lower homogeneous threshold values based at least in part on the second SAD value; and

defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

16. The apparatus of claim 12 , wherein the video encoder is configured to define the branching conditions for the branching of CU sizes based on:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition; and

defining the branching conditions for a second branch to comprise non-satisfaction of the branching conditions for the first branch.

17. The apparatus of claim 12 , wherein the video encoder is further configured to perform dynamic mode decision (DMD) branching for a largest coding unit (LCU) based on checking a subset of the CU sizes according to the branching of the CU sizes.

18. The apparatus of claim 17 , wherein the video encoder is further configured to (i) select a coding mode for a coding tree unit (CTU) or (ii) perform motion estimation, based at least in part on the DMD branching for the LCU.

19. The apparatus of claim 12 , wherein the device is a wireless communication device, further comprising:

a transmitter configured to transmit encoded video data using a coding mode based upon CU sizes as determined by the branching conditions.

20. The apparatus of claim 19 , wherein the wireless communication device is a wireless telephone and the encoded video data is transmitted by the transmitter and modulated according to a wireless communication standard.

21. An apparatus for video coding, comprising:

means for calculating a first sum of absolute difference (SAD) value between a coding unit (CU) block and a first corresponding block in a reference frame;

means for defining branching conditions for branching of CU sizes based at least in part on the first SAD value, the branching conditions comprising a background condition and a homogeneous condition;

means for detecting the background condition in response to the first SAD value of the CU block being less than a first threshold background value;

means for detecting the homogeneous condition in response to a second SAD value of a sub-block of the CU block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

means for determining the branching of the CU sizes based on the detection of the background condition or the homogeneous condition.

22. The apparatus of claim 21 , wherein:

the upper homogeneous threshold value equals C u *(first SAD value)/4, wherein C d is greater than 1; and

the lower homogeneous threshold value equals C d *(first SAD value)/4, wherein C d is less than 1.

23. The apparatus of claim 21 , wherein the means for defining branching conditions for branching of CU sizes comprises:

means for defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

means for defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the second SAD value of the sub-block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

means for defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

24. The apparatus of claim 21 , wherein the means for defining branching conditions for branching of CU sizes comprises:

means for defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

means for defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the third SAD value of a sub-sub block of the sub-block being between upper and lower homogeneous threshold values based at least in part on the second SAD value; and

means for defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

25. The apparatus of claim 21 , wherein the means for defining branching conditions for branching of CU sizes comprises:

means for defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition; and

means for defining the branching conditions for a second branch to comprise non-satisfaction of the branching conditions for the first branch.

26. The apparatus of claim 21 , further comprising means for performing dynamic mode decision (DMD) branching for a largest coding unit (LCU) based on checking a subset of the CU sizes according to the branching of the CU sizes.

27. The apparatus of claim 26 , further comprising at least one of: (i) means for selecting a coding mode for a coding tree unit (CTU) based at least in part on the DMD branching for the LCU; or (ii) means for performing motion estimation based at least in part on the DMD branching for the LCU.

28. A non-transitory computer readable medium comprising code that, when executed, causes an apparatus to perform a process comprising:

calculating a first sum of absolute difference (SAD) value between a coding unit (CU) block and a first corresponding block in a reference frame;

defining branching conditions for branching of CU sizes based at least in part on the first SAD value, the branching conditions comprising a background condition and a homogeneous condition;

detecting the background condition in response to the first SAD value of the CU block being less than a first threshold background value;

detecting the homogeneous condition in response to a second SAD value of a sub-block of the CU block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

determining the branching of the CU sizes based on the detection of the background condition or the homogeneous condition.

29. The non-transitory computer readable medium of claim 28 , further comprising code that, when executed, causes the apparatus to define the branching conditions for the branching of CU sizes based on:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition; and

defining the branching conditions for a second branch to comprise non-satisfaction of the branching conditions for the first branch.

30. The non-transitory computer readable medium of claim 28 , further comprising code that, when executed, causes the apparatus to define the branching conditions for the branching of CU sizes based on:

defining the branching conditions for a first branch to comprise satisfaction of the background condition or the homogeneous condition;

defining the branching conditions for a second branch to comprise satisfaction of: (i) the second SAD value of the sub-block being less than a second threshold background value; or (ii) the second SAD value of the sub-block being between upper and lower homogeneous threshold values based at least in part on the first SAD value; and

defining the branching conditions for a third branch to comprise non-satisfaction of the branching conditions for the first and second branches.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2014
From: CHONG, IN SUK; LEE, SUNGWON; HSIEH, CHENG-TEH; WANG, XIANGLIN
To: QUALCOMM INCORPORATED
Reel/Frame 034381/0739 →
Continuity (1)
Related Publication 20160134877A1 · May 12, 2016