IP Library Granted Patent US 6,944,224
Granted Patent B2
US 6,944,224 · App. 10/642,396 · Granted Sep 13, 2005

Systems and methods for selecting a macroblock mode in a video encoder

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 6,944,224
App. No.
10/642,396
Granted
Sep 13, 2005
Kind
B2
Abstract

The invention is related to methods and apparatus that provide improved video encoding. Conventional video encoding techniques inadequately determine the encoding mode for a macroblock. One embodiment according to the invention advantageously includes the coding cost for motion vectors into the mode decision, thereby enhancing the quality of the selection of the mode. One embodiment further uses an L1 norm in the decision, thereby advantageously reducing the computational complexity of taking the coding cost for motion vectors into the mode decision.

Claims (24)

1. A method of selecting a mode for the encoding of a macroblock in a video encoder, the method comprising: performing a motion search to select a motion vector; determining a residual error for the motion vector with a plurality of macroblock modes; estimating a coding cost from motion vectors for at least some of the plurality of macroblock modes; and selecting the mode for the encoding of the macroblock based on both the residual error and the coding cost associated with the mode, the step of determining a residual, error includes the steps of:

performing a sum of absolute differences (SAD) calculation;

adjusting the SAD calculation based on the coding cost for the mode;

comparing the adjusted SAD calculation for the mode to another adjusted SAD calculation for another mode; and

selecting the mode with the lower adjusted SAD calculation.

2. The method as defined in claim 1 , wherein the coding cost for an Inter macroblock with zero motion vector is zero.

3. The method as defined in claim 1 , further comprising the step of using different criteria to calculate the coding cost depending on whether the picture is a B-picture or is a P-picture.

4. The method as defined in claim 1 , further comprising the step of using different criteria to calculate the coding cost depending on whether the picture is interleaved or is progressive.

5. A method of selecting a mode for the encoding of a macroblock (MB) in a video encoder, the method comprising using both an indication for residual error and a coding cost for a motion vector for a mode to determine which mode is selected for the macroblock, the step of using an indication for residual error includes the steps of:

performing a sum of absolute differences (SAD) calculation;

adjusting the SAD calculation based on the coding cost for the mode;

comparing the adjusted SAD calculation for the mode to another adjusted SAD calculation for another mode; and

selecting the mode with the lower adjusted SAD calculation.

6. The method as defined in claim 5 , wherein the motion vector (MV) is a differential motion vector (DMV).

7. The method as defined in claim 5 , wherein the step of using an indication for residual error includes at least partially computing residual error by reusing a calculation of sum of absolute values of the residual error from a motion search.

8. A video encoder that is configured to select a mode for the encoding of a macroblock (MB), the video encoder comprising means for using both an indication for residual error and a coding cost for a motion vector for a mode to determine which mode is selected for the macroblock, the means for using both an indication for residual error and a coding cost including (a) means for performing a sum of absolute differences (SAD) calculation, (b) means far adjusting the SAD calculation based on the coding cost for the mode, (c) means for comparing the adjusted SAD calculation for the mode to another adjusted SAD calculation for another mode, and (d) means selecting the mode with the lower adjusted SAD calculation.

9. The video encoder as defined in claim 8 , wherein the means for using both an indication for residual error and a coding cost further includes means for at least partially computing residual error by reusing a calculation of sum of absolute values of the residual error from a motion search.

10. A computer program stored in a tangible medium comprising a module with instructions for selecting mode for the encoding of a macroblock (MB) when executed by a computer, the computer program including instructions for using both an indication for residual error and a coding cost for a motion vector for a mode to determine which mode is selected for the macroblock, the instructions for using an indication for residual error and a coding cost for a motion vector for a mode includes the steps of:

performing a sum of absolute differences (SAD) calculation;

adjusting the SAD calculation based on the coding cost for the mode;

comparing the adjusted SAD calculation for the mode to another adjusted SAD calculation for another mode; and

selecting the mode with the lower adjusted SAD calculation.

11. The computer program as defined in claim 10 , wherein the instructions for using an indication for residual error and a coding cost for a motion vector for a mode includes the step, of at least partially computing residual error by reusing a calculation of sum of absolute values of the residual error from a motion search.

12. A circuit configured to select a mode for the encoding of a macroblock in a fast and quality efficient manner, the circuit comprising: a circuit configured to perform a motion search to select a motion vector; a circuit configured to determine a residual error for the motion vector with a plurality of macroblock modes; a circuit configured to estimate a coding cost associated with the motion vectors for at least some of the plurality of macroblock modes; and a circuit configured to select the mode for the encoding of the macroblock based on both the residual error and the coding cost associated with the mode, the circuit configured to select the mode for the encoding of the macroblock based on both the residual error and the coding cost associated with the mode including (a) a circuit for performing a sum of absolute differences (SAD) calculation, (b) a circuit for adjusting the SAD calculation based on the coding cost for the mode, (c) a circuit for comparing the adjusted SAD calculation for the mode to another adjusted SAD calculation for another mode, and (d) a circuit for selecting the mode with the lower adjusted SAD calculation.

Assignments (14)
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded May 6, 2026
From: CANTOR FITZGERALD SECURITIES, AS COLLATERAL AGENT
To: CLEARSLIDE INC.; COREL CORPORATION (AS SUCCESSOR IN INTEREST TO CASCADE BIDCO CORP.)
Reel/Frame 075522/0510 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2026
From: CITIBANK, N.A., AS AGENT
To: COREL CORPORATION; CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
Reel/Frame 075559/0953 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CITIBANK, N.A.
Reel/Frame 049678/0950 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CANTOR FITZGERALD SECURITIES
Reel/Frame 049678/0980 →
ENTITY DOMICLE CHANGE Recorded Jan 13, 2019
From: 8324450 CANADA INC.
To: 8324450 DELAWARE INC.
Reel/Frame 049501/0055 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE, AND REPLACE THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 030427 FRAME 0331. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO 8324450 CANADA INC. Recorded Aug 1, 2013
From: COREL CORPORATION
To: 8324450 CANADA INC.
Reel/Frame 030986/0268 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2013
From: JPMORGAN CHASE BANK, N.A.
To: COREL CORPORATION; COREL INC.; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LP; WINZIP COMPUTING LLC; CAYMAN LTD. HOLDCO; WINZIP COMPUTING, S.L.U.; WINZIP HOLDINGS SPAIN, S.L.U.; COREL US HOLDINGS, LLC; INTERVIDEO, INC.; INTERVIDEO DIGITAL TECHNOLOGY CORP.
Reel/Frame 030591/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
To: 8324450 CANADA INC.
Reel/Frame 030427/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2013
From: COREL CORPORATION
To: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
Reel/Frame 030427/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2010
From: COREL INCORPORATED
To: COREL CORPORATION
Reel/Frame 025404/0624 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2010
From: COREL INCORPORATED
To: COREL CORPORATION
Reel/Frame 025386/0938 →
MERGER Recorded Mar 11, 2009
From: INTERVIDEO, INC.
To: COREL INC.
Reel/Frame 022380/0348 →
REAFFIRMATION AND JOINDER AGREEMENT Recorded Dec 28, 2006
From: COREL CORPORATION; COREL INC.; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LLC; WINZIP COMPUTING LP; CAYMAN LTD. HOLDCO; WINZIP COMPUTING, S.L.U.; WINZIP HOLDINGS SPAIN, S.L.U.; INTERVIDEO, INC.; INTERVIDEO DIGITAL TECHNOLOGY CORP.; COREL US HOLDINGS, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 018688/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2004
From: ZHAO, LIFENG; KATSAVOUNIDIS, IOANNIS
To: INTERVIDEO, INC.
Reel/Frame 014870/0281 →