IP Library › Granted Patent US 7,711,049
Granted Patent B2
US 7,711,049 · App. 11/149,363 · Granted May 4, 2010

Method for fast macroblock mode decision based on motion cost of variable block size

Assignee: Sunplus Technology Co., Ltd.
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 7,711,049
App. No.
11/149,363
Granted
May 4, 2010
Kind
B2
Abstract

A method for fast macroblock mode decision is disclosed. The method includes: (A) determining if a motion cost at the origin (0, 0) or a prediction motion vector (PMV) for a 4n*4n macroblock is smaller than a first threshold; (B) if the motion cost is smaller than the first threshold, determining a macroblock mode as 4n*4n and ending the method; (C) if the motion cost is not smaller than the first threshold, using an adaptive diversity search strategy to perform motion estimation on four 2n*2n blocks associated with the 4n*4n macroblock; (D) determining if all motion costs of the four 2n*2n blocks in step (C) are smaller than a second threshold; and (E) if step (D) determines that the motion costs of the four 2n*2n blocks are smaller than the second threshold, determining the macroblock mode as 2n*2n and ending the method.

Claims (262)

1. A method for fast macroblock mode decision, which is used in a frame encoder meeting H.264/MPEG-4 video coding standard, the method comprising:

(A) calculating a motion cost at the origin (0, 0) or a prediction motion vector (PMV) for a 4n*4n macroblock;

(B) deciding a macroblock mode as 4n*4n if the motion cost calculated in step (A) is smaller than a first threshold and ending the method;

(C) using an adaptive diversity search strategy to perform motion estimation on four 2n*2n blocks associated with the 4n*4n macroblock if the motion cost calculated in step (A) is greater than or equal to the first threshold;

(D) calculating all motion costs of the four 2n*2n blocks;

(E) deciding the macroblock mode as 2n*2n if the motion costs of the four 2n*2n blocks calculated in step (D) are smaller than a second threshold;

(F) using a motion vector merge to perform the motion estimation on two 4n*2n blocks and two 2n*4n blocks associated with the 4n*4n macroblock when step (E) decides that any of the motion costs of the four 2n*2n blocks is greater than or equal to the second threshold;

(G) calculating a total motion cost of the two 4n*2n blocks and a total motion cost of the two 2n*4n blocks; and

(H) executing a sub-macroblock mode decision step when the two total motion costs calculated in step (0) are greater than the total motion cost of the four 2n*2n blocks,

wherein step (H) further comprises:

(H1) using a motion vector splitting to perform the motion estimation on two 2n*n blocks and two n*2n blocks associated with one of the four 2n*2n blocks,

(H2) calculating a total motion cost of the two 2n*n blocks and a total motion cost of the two n*2n blocks,

(H3) deciding the macroblock mode as 2n*2n when the total motion cost of the two 2n*n blocks and the total motion cost of the two n*2n blocks calculated in step (H2) are greater than the motion cost of the 2n*2n block, and

(H4) returning to step (H1) for execution until the four 2n*2n blocks are processed completely.

2. The method as claimed in claim 1 , further comprising:

(I) using the motion vector merge to perform the motion estimation on the 4n*4n macroblock if either the total motion cost of the two 4n*2n blocks or the total motion cost of the two 2n*4n blocks calculated in step (G) is smaller than or equal to the total motion cost of the four 2n*2n blocks; and

(J) selecting one with a minimum motion cost from the 4n*4n macroblock, the two 4n*2n blocks and the 2n*4n blocks as the macroblock mode, and ending the method.

3. The method as claimed in claim 1 , further comprises:

(H5) using the motion vector splitting to perform the motion estimation on four n*n blocks associated with one of the four 2n*2n blocks if either the total motion cost of the two 2n*n blocks or the total motion cost of the two n*2n blocks calculated in step (112) is smaller than or equal to the motion cost of the 2n*2n block;

(H6) selecting one with a minimum motion cost from the four n*n blocks, the two 2n*n blocks and the two n*2n blocks as the macroblock mode; and

(H7) returning to step (H1) for execution until the four 2n*2n blocks are processed completely.

4. The method as claimed in claim 1 , wherein n is a positive integer.

5. The method as claimed in claim 1 , wherein n equals to four.

6. The method as claimed in claim 1 , wherein the motion cost is represented by an equation J(m,λ motion )=SAD(s,c(m))+λ motion ·R(m−p), where m(m x , m y ) T indicates a motion vector (MV), p=(p x , p y ) T indicates a prediction motion vector (PMV), R(m−p) is a motion vector information, and λ motion =(0.85·2 QP/3 ) 1/2 that is a correction factor.

7. The method as claimed in claim 1 , wherein the first threshold is represented by an equation

TH

16

*

16

=

min

i

∈

{

i

❘

1

≤

i

≤

20

,

MBi

⁢

⁢

with

⁢

⁢

mode

⁢

⁢

16

*

16

}

⁢

[

cost

(

MBi

)

]

+

Δ

⁢

⁢

TH

16

*

16

.

8. The method as claimed in claim 7 , wherein ΔTH 16*16 =600.

9. The method as claimed in claim 1 , wherein the second threshold is represented by an equation

TH

8

*

8

=

min

i

∈

{

i

⁢

1

≤

i

≤

20

,

Sub

⁢

-

⁢

MBi

⁢

⁢

with

⁢

⁢

mode

⁢

⁢

8

*

8

}

⁢

[

cost

⁡

(

Sub

⁢

-

⁢

MBi

)

]

+

Δ

⁢

⁢

TH

8

*

8

.

10. The method as claimed in claim 9 , wherein ΔTH 8*8 =150.

11. The method as claimed in claim 1 , wherein in step (B), a motion vector of the macroblock is the origin (0, 0) or the prediction motion vector.

12. The method as claimed in claim 1 , wherein in step (E), a motion vector of the macroblock is a motion vector obtained by the adaptive diversity search strategy.

13. A method for fast macroblock mode decision, which is used in a frame encoder meeting H.264/MPEG-4 video coding standard, the method comprising:

(A) determining if a motion cost at the origin (0, 0) or a prediction motion vector (PMV) for a 4n*4n macroblock is smaller than a first threshold;

(B) if the motion cost is smaller than the first threshold, deciding a macroblock mode as 4n*4n and ending the method;

(C) if the motion cost is greater than or equal to the first threshold, using an adaptive diversity search strategy to perform motion estimation on four 2n*2n blocks associated with the 4n*4n macroblock;

(D) determining if all motion costs of the four 2n*2n blocks in step (C) are smaller than a second threshold;

(E) if step (D) decides that the motion costs of the four 2n*2n blocks are smaller than the second threshold, choosing the macroblock mode as 2n*2n and ending the method;

(F) when step (D) decides that any of the motion costs of the four 2n*2n blocks is greater than or equal to the second threshold, using a motion vector merge to perform the motion estimation on two 4n*2n blocks and two 2n*4n blocks associated with the 4n*4n macroblock;

(G) determining if a total motion cost of the two 4n*2n blocks and a total motion cost of the two 2n*4n blocks are greater than a total motion cost of the four 2n*2n blocks; and

(H) when step (G) decides that the two total motion costs are greater than the total motion cost of the four 2n*2n blocks, executing a sub-macroblock mode decision step which contains,

wherein step (H) further comprises:

(H1) using a motion vector splitting to perform the motion estimation on two 2n*n blocks and two n*2n blocks associated with one of the four 2n*2n blocks,

(H2) determining if a total motion cost of the two 2n*n blocks and a total motion cost of the two n*2n blocks are greater than a motion cost of the 2n*2n block,

(H3) when sty (H2) decides that the total motion cost of the two 2n*n blocks and the total motion cost of the two n*2n blocks are greater than the motion cost of the 2n*2n block, choosing the macroblock mode as 2n*2n, and

(H4) returning to step (H1) for execution until the four 2n*2n blocks are processed completely.

14. The method as claimed in claim 13 , further comprising:

(I) if step (G) decides that either the total motion cost of the two 4n*2n blocks or the total motion cost of the two 2n*4n blocks is smaller than or equal to the total motion cost of the four 2n*2n blocks, using the motion vector merge to perform the motion estimation on the 4n*4n macroblock; and

(J) selecting one with a minimum motion cost from the 4n*4n macroblock, the two 4n*2n blocks and the 2n*4n blocks as the macroblock mode, and ending the method.

15. The method as claimed in claim 13 , further comprises:

(H5) if step (H2) decides that either the total motion cost of the two 2n*n blocks or the total motion cost of the two n*2n blocks is smaller than or equal to the motion cost of the 2n*2n block, using the motion vector splitting to perform the motion estimation on four n*n blocks associated with one of the four 2n*2n blocks;

(H6) selecting one with a minimum motion cost from the four n*n blocks, the two 2n*n blocks and the two n*2n blocks as the macroblock mode; and

(H7) returning to step (H1) for execution until the four 2n*2n blocks are processed completely.

16. The method as claimed in claim 13 , wherein the motion cost is represented by an equation J(m,λ motion )=SAD(s,c(m))+λ motion ·R(m−p), where m(m x , m y ) T indicates a motion vector (MV), p=(p x , p y ) T indicates a prediction motion vector (PMV), R(m−p) is a motion vector information, and λ motion =(0.85·2 QP/3 ) 1/2 that is a correction factor.

17. The method as claimed in claim 13 , wherein the first threshold is represented by an equation

TH

16

*

16

=

min

i

∈

{

i

⁢

1

≤

i

≤

20

,

MBi

⁢

⁢

with

⁢

⁢

mode

⁢

⁢

16

*

16

}

⁢

[

cost

⁡

(

MBi

)

]

+

Δ

⁢

⁢

TH

16

*

16

.

18. The method as claimed in claim 17 , wherein ΔTH 16*16 =600.

19. The method as claimed in claim 13 , wherein the second threshold is represented by an equation

TH

8

*

8

=

min

i

∈

{

i

⁢

1

≤

i

≤

20

,

Sub

⁢

-

⁢

MBi

⁢

⁢

with

⁢

⁢

mode

⁢

⁢

8

*

8

}

⁢

[

cost

⁡

(

Sub

⁢

-

⁢

MBi

)

]

+

Δ

⁢

⁢

TH

8

*

8

.

20. The method as claimed in claim 19 , wherein ΔTH 8*8 =150.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2005
From: ZHOU, ZHI; SUN, MING-TING; CHANG, SHIN-HUANG
To: SUNPLUS TECHNOLOGY CO., LTD.
Reel/Frame 016684/0782 →
Priority Claims (1)
TW 94107220 A · Mar 9, 2005 · national
Continuity (1)
Related Publication 20060203911A1 · Sep 14, 2006