IP Library Granted Patent US 7,133,451
Granted Patent B2
US 7,133,451 · App. 10/092,375 · Granted Nov 7, 2006

Systems and methods for refreshing macroblocks

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,133,451
App. No.
10/092,375
Granted
Nov 7, 2006
Kind
B2
Abstract

In one embodiment, an adaptive motion area process is performed to determine which macroblocks are to be intracoded. Adaptive motion change detection can efficiently reduce the large propagation error, including errors occurring in the motion area. An intercode distortion value and an intracode distortion value are calculated, as are an intercode bit rate and an intracode bit rate. Based on a comparison of the calculated intercode distortion value and the intracode distortion value, and on a comparison of the intercode bit rate and the intracode bit rate for each macroblock, a decision is made as to which predicted frame macroblocks are to be intracoded.

Claims (66)

1. A method of performing adaptive intra refresh, the method comprising:

receiving a packet loss probability value;

receiving a motion vector for a first macroblock in a first frame; mapping the motion vector onto portions of a plurality of other macroblocks in a previous frame;

calculating at least a first transition factor value based at least in part on the mapping;

calculating an estimated inter distortion value for the first macroblock based on at least the packet loss probability value and the first transition factor value;

calculating an estimated intra distortion value for the first macroblock based on a squared initial error energy value multiplied by the packet loss probability value;

receiving a first bit quantity value corresponding to a bit quantity used to intracode the first macroblock;

receiving a second bit quantity value corresponding to a bit quantity used to intercode the first macroblock;

determining a first difference value based on a difference between the estimated intra distortion value and the estimated inter distortion value, and a second difference value based on a difference between the first bit quantity value and the second bit quantity value;

based at least in part on the first difference value and the second difference value, transmitting the first macroblock as one of an intra macroblock and an inter macroblock.

2. The method as defined in claim 1 , further comprising transmitting the first macroblock as one of an intra macroblock and an inter macroblock based in part on a quantization distortion value.

3. The method as defined in claim 1 , wherein the first macroblock is transmitted as an intra macroblock at least partly in response to the second difference value being positive, and the first difference value divided by the second difference value being more negative than a first threshold.

4. The method as defined in claim 1 , wherein the first macroblock is transmitted as an intra macroblock at least partly in response to the second difference value being zero, and the first difference value being negative.

5. The method as defined in claim 1 , wherein the first macroblock is transmitted as an intra macroblock at least partly in response to the second difference value being negative, and the first difference value divided by the second difference value being greater than a first threshold.

6. The method as defined in claim 5 , wherein the first threshold is a weighting factor.

7. The method as defined in claim 1 , wherein the first macroblock is transmitted as an inter macroblock at least partly in response to the second difference value being zero, and the first difference value being positive.

8. The method as defined in claim 1 , wherein the first macroblock is transmitted as an intra macroblock at least partly in response to the second difference value being negative, and the first difference value divided by the second difference value being less than a first threshold.

9. The method as defined in claim 1 , wherein the first macroblock is transmitted as an intra macroblock at least partly in response to the second difference value being positive, and the first difference value divided by the second difference value being less than a first threshold.

10. The method as defined in claim 1 , wherein the estimated intra distortion value is further based on an initial error energy.

11. The method as defined in claim 1 , wherein the estimated inter distortion value is recursively calculated to include distortion propagated from a plurality of previous frames.

12. The method as defined in claim 1 , wherein the first transition factor corresponds to a first half-pixel horizontal and vertical propagation strength.

13. The method as defined in claim 1 , wherein the first transition factor corresponds to a first half-pixel horizontal strength.

14. The method as defined in claim 1 , wherein the first transition factor corresponds to a first half-pixel vertical propagation strength.

15. The method as defined in claim 1 , further comprising limiting how many macroblocks can be intracoded in the first frame to a first amount.

16. A method of selectively intracoding macroblocks, the method comprising:

receiving a packet loss probability value;

receiving a motion vector for a first macroblock in a first frame;

based at least in part on the motion vector, determining which portions of macroblocks in a previous frame would be used in predicting the first macroblock;

calculating at least a first propagation strength value based at least in part on determining which portions of macroblocks in the previous frame would be used in predicting the first macroblock;

calculating an estimated inter distortion value for the first macroblock based on at least the packet loss probability value and the first propagation strength value;

calculating an estimated intra distortion value for the first macroblock based on at least the packet loss probability value;

calculating a quantization distortion value for the first macroblock;

receiving a first bit quantity value corresponding to a bit quantity used to intracode the first macroblock;

receiving a second bit quantity value corresponding to a bit quantity used to intercode the first macroblock; and

based at least in part on a difference between the estimated inter distortion value and the estimated intra distortion value, the quantization distortion value, and a difference between the first bit quantity value and the second bit quantity value, providing for transmission the first macroblock as one of an intra macroblock and an inter macroblock.

17. The method as defined in claim 16 , wherein the intra distortion value is further based on an initial error energy.

18. The method as defined in claim 16 , wherein the estimated inter distortion value is recursively calculated to include distortion propagated from a plurality of previous frames.

19. The method as defined in claim 16 wherein the intra distortion value is further based on an initial error energy squared multiplied by the packet loss probability value.

20. The method as defined in claim 16 , wherein the first macroblock is provided as one of an intra macroblock and an inter macroblock further based upon a weighting factor.

21. The method as defined in claim 20 , wherein the weighting factor is generated at least in part by calculating a plurality of intra distortions values using corresponding different quantization parameters, and selecting a weighting factor value that results in the lowest distortion value meeting a first bitrate criterion.

22. A method of selectively intracoding macroblocks in a plurality of macroblocks in a first frame, the method comprising:

receiving a packet loss probability value;

receiving a corresponding motion vector for each macroblock in the plurality of macroblocks;

based at least in part on the corresponding motion vector, determining which portions of macroblocks in a previous frame would be used in predicting said each macroblock;

calculating for each of said macroblocks at least a first corresponding propagation strength value based at least in part on said portions of macroblocks in the previous frame determined to be used in predicting said each macroblock;

calculating for each of said macroblocks an estimated inter distortion value based upon at least the packet loss probability value and the corresponding at least first propagation strength value;

calculating for each of said macroblocks an estimated intra distortion value based upon at least the packet loss probability value;

calculating for each of said macroblocks a quantization distortion value; and

based at least in part on the quantization distortion values for each macroblock in the plurality of macroblocks and a difference between the estimated inter distortion and the estimated intra distortion, designating a subset of the plurality of macroblocks to be intracoded.

23. The method as defined in claim 22 , wherein the subset is limited to a predetermined number of macroblocks.

24. The method as defined in claim 22 , further comprising:

for each of said macroblocks, receiving a first bit quantity value corresponding to a bit quantity used to intracode said each macroblock; and

for each of said macroblocks, receiving a second bit quantity value corresponding to a bit quantity used to intercede said each macroblock, wherein the subset is designated based in part on the first bit quantity values and the second bit quantity values.

25. A circuit configured to selectively intracode macroblocks, the circuit comprising:

a first instruction configured to receive a packet loss probability value;

a second instruction configured to receive a motion vector for a first macroblock in a first frame;

a third instruction configured to determine, based at least in part on the motion vector, which portions of macroblocks in a previous frame would be used in predicting the first macroblock;

a fourth instruction configured to calculate at least a first propagation strength value based at least in part on the determination of which portions of macroblocks in the previous frame would be used in predicting the first macroblock;

a fifth instruction configured to calculate an estimated inter distortion value for the first macroblock based on at least the packet loss probability value and the first propagation strength value;

a sixth instruction configured to calculate an estimated intra distortion value for the first macroblock based on a squared initial energy value multiplied by the packet loss probability value;

a seventh instruction for calculating a difference between the estimated intra distortion value and the estimated inter distortion value; and

an eighth instruction configured to selectively provide for transmission of the first macroblock as one of an intra macroblock and an inter macroblock based at least in part on the difference between the estimated inter distortion value and the estimated intra distortion value.

26. The circuit as defined in claim 25 , wherein the intra distortion value is further based upon an initial error energy.

27. The circuit as defined in claim 25 , further comprising an ninth instruction configured to calculate a quantization distortion value for the first macroblock, wherein the eighth instruction is further configured to selectively provide for transmission of the first macroblock as one of an intra macroblock and an inter macroblock based at least in part on quantization distortion value.

28. The circuit as defined in claim 25 , wherein the fifth instruction is further configured to recursively calculate the estimated inter distortion value to thereby include distortion propagated from a plurality of previous frames.

29. The circuit as defined in claim 25 , wherein the seventh instruction is further configured to selectively provide for transmission of the first macroblock as one of an intra macroblock and an inter macroblock based at least in part on a weighting factor.

Assignments (16)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2023
From: SHANGHAI STOMATOLOGICAL HOSPITAL, FUDAN UNIVERSITY
To: WUXI EA MEDICAL INSTRUMENTS TECHNOLOGIES LIMITED
Reel/Frame 062268/0920 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2019
From: COREL SOFTWARE LLC
To: COREL CORPORATION
Reel/Frame 048067/0586 →
CHANGE OF NAME Recorded Nov 29, 2018
From: 8324450 CANADA INC.
To: COREL SOFTWARE LLC
Reel/Frame 047675/0950 →
ENTITY DOMICILE CHANGE Recorded Dec 17, 2014
From: 8324450 CANADA INC.
To: 8324450 DELAWARE LLC
Reel/Frame 034651/0817 →
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/0588 →
MERGER Recorded Mar 11, 2009
From: INTERVIDEO, INC.
To: COREL INC.
Reel/Frame 022380/0378 →
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 Jun 10, 2002
From: KIM, JIN-GYEONG; KIM, JONG WON; KATSAVOUNIDIS, IOANNIS
To: INTERVIDEO, INC.
Reel/Frame 012957/0401 →