IP Library Granted Patent US 7,483,488
Granted Patent B1
US 7,483,488 · App. 10/449,436 · Granted Jan 27, 2009

Systems and methods for improving bit rate control of video encoding by correcting for the effects of scene changes and bit stuffing in a video buffer verifier (VBV) buffer model

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,483,488
App. No.
10/449,436
Granted
Jan 27, 2009
Kind
B1
Abstract

The invention is related to methods and apparatus that advantageously improve picture quality in a video encoder, such as an MPEG video encoder. The picture quality of a video encoder can be compromised by bit stuffing. Bit stuffing is a technique that is commonly used when encoding to resolve buffer underrun problems. However, bit stuffing can introduce instabilities in the encoding process. Embodiments of the invention advantageously stabilize the encoding process due to bit stuffing, and thereby improve picture quality.

Claims (176)

1. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison; said scale factors for the set summing to 1;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor, different from the first factor and normalized to sum, in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped.

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

detecting that a scene change has occurred; and

invoking the sum computing step, the comparing step, and one of the reassigning steps only upon the detection of the scene change.

3. The method as defined in claim 1 , further comprising:

detecting that the video encoding process is in a critical state; and

invoking the sum computing step, the comparing step, and one of the reassigning steps only upon the detection of the scene change.

4. The method as defined in claim 1 , wherein the first state of the comparison comprises a determination that sum is less than the predetermined threshold T norm .

5. The method as defined in claim 1 , further including the step of computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer.

6. The method as defined in claim 1 , wherein a value for the predetermined threshold T norm is zero.

7. The method as defined in claim 1 , wherein the video encoding process corresponds to MPEG-2.

8. The method as defined in claim 1 , wherein the video encoding process is performed in real time.

9. The method as defined in claim 1 , wherein the video encoding process is performed in real time and with a constant bit rate.

10. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder at an effectively constant average bit rate;

detecting that the video encoding process is in a critical state; and

invoking the sum computing step, the comparing step, and one of the reassigning steps only upon the detection of the scene change;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped; wherein the critical state is identified when bit stuffing is used, but values for quantization parameter mquant j are above a predetermined threshold.

11. The method as defined in claim 10 , wherein the predetermined threshold is a lowest value for the quantization parameter permitted by a corresponding encoding standard.

12. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder at an effectively constant average bit rate;

computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped; wherein delta comprises:

delta= vbv _buffer_size− V ststus ,

where vbv_buffer_size is a capacity of a model of the buffer at the decoder and V status is a current buffer occupancy of the model of the buffer at the decoder.

13. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder at an effectively constant average bit rate;

computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped; wherein delta comprises:

delta= V initial −V status ,

where V initial is an initial value of a capacity of a model of the buffer at the decoder and V status is a current buffer occupancy of the model of the buffer at the decoder.

14. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder at an effectively constant average bit rate;

computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped; wherein assigning virtual buffer levels according to the first criterion further comprises:

d 0 i =delta· fr i ;

d 0 p =delta· fr p ; and

d 0 b =delta·fr b ,

where d 0 i , d 0 p and d 0 b are the previously assigned virtual buffer occupancy initial values for the I-pictures, the P-pictures and the B-pictures, respectively, fr i , fr p and fr b are the first scaling factors for the I-pictures, the P-pictures and the B-pictures, respectively.

15. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for I-pictures, for P-pictures and for B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning each of the virtual buffer occupancy initial values to a value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture;

computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer;

wherein assigning virtual buffer levels according to the first criterion further comprises:

d 0 i =delta· fr i ;

d 0 p =delta· fr p ; and

d 0 b =delta· fr b ,

where d 0 i , d 0 p and d 0 b are the previously assigned virtual buffer occupancy initial values for the I-pictures, the P-pictures and the B-pictures, respectively, fr i , fr p and fr b are the first scaling factors for the I-pictures, the P-pictures and the B-pictures, respectively;

wherein values for fr i , fr p , and fr b correspond to 5/17, 5/17, and 7/17, respectively.

16. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

comparing the value for sum to a predetermined threshold T norm ;

reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison;

reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor in response to a second state of the comparison; and

providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder at an effectively constant average bit rate;

computing a value for delta, where delta is the value corresponding to an unoccupied amount of the decoder buffer;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped; wherein assigning virtual buffer levels according to the second criterion further comprises:

d

0

i

=

d

0

i

·

delta

sum

;

d

0

p

=

d

0

p

·

delta

sum

;

and

d

0

b

=

d

0

b

·

delta

sum

,

where d 0 i , d 0 p and d 0 b are the previously assigned virtual buffer occupancy initial values for the I-pictures, the P-pictures and the B-pictures, respectively.

17. A computer readable medium encoded with computer executable instructions for reassigning virtual buffer levels to stabilize a video encoding process, comprising:

instructions for assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

instructions for computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

instructions for comparing the value for sum to a predetermined threshold T norm ;

instructions for reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled respectively by a corresponding first factor in response to a first state of the comparison; said scale factors for the set summing to 1;

instructions for reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor, different from the first factor and normalized to sum, in response to a second state of the comparison; and

instructions for providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped.

18. A circuit for reassigning virtual buffer levels to stabilize a video encoding process in a real-time video encoder comprising:

means for assigning at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

means for computing a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

means for comparing the value for sum to a predetermined threshold T norm ;

means for reassigning to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled by a first factor in response to a first state of the comparison; said scale factors for the set summing to 1;

means for reassigning each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor, different from the first factor and normalized to sum, in response to a second state of the comparison; and

means for providing the reassigned virtual buffer occupancy initial values to the video encoding process prior to encoding a next picture for encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate;

wherein said set of I-pictures, P-pictures and B-pictures are not skipped.

19. A circuit adapted to reassign virtual buffer levels to stabilize a video encoding process comprising:

a module configured to assign at an encoder initial values for virtual buffer occupancies for a set of I-pictures, P-pictures and B-pictures, respectively, each of the virtual buffer occupancies indicative of an occupancy level of a buffer at a decoder for each of a corresponding one of the I-pictures, the P-pictures and the B-pictures, respectively, prior to encoding a first block of a picture;

a module configured to compute a value for sum, where sum corresponds to a summation of the virtual buffer occupancy initial values for the I-pictures, for the P-pictures, and for the B-pictures;

a module configured to compare the value for sum to a predetermined threshold T norm ;

a module configured to reassign each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to an adaptively modified value corresponding to an unoccupied amount of the decoder buffer scaled by a first factor in response to a first state of the comparison; said scale factors for the set summing to 1; and

a module configured to reassign to alter each of the virtual buffer occupancy initial values for said set of I-pictures, P-pictures and B-pictures to respective previously assigned values thereof scaled by a second factor, different from the first factor and normalized to sum, in response to a second state of the comparison;

wherein encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer occurs at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate; and said set of I-pictures, P-pictures and B-pictures are not skipped.

20. A video encoder that embodies the circuit of claim 19 .

21. A method of reassigning virtual buffer levels to stabilize a video encoding process, the method comprising:

monitoring a final occupancy level d of a virtual buffer for a set of I-pictures, P-pictures and B-pictures, the virtual buffer representing occupancy of a physical buffer at a decoder;

determining whether the final occupancy level d corresponds to a value impossible to realize in the physical buffer; and

resetting to alter the final occupancy level d for said set of I-pictures, P-pictures and B-pictures upon a positive determination that the value is impossible to realize in the physical buffer;

wherein encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer occurs at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate, and said set of I-pictures, P-pictures and B-pictures are optionally not skipped.

22. The method as defined in claim 21 , wherein the final occupancy level d of the virtual buffer corresponds to the type of picture that had just been encoded by the video encoding process.

23. The method as defined in claim 21 , wherein determining comprises comparing the final occupancy level to zero such that a value less than zero indicates a final occupancy level that is impossible to realize in the physical circuit.

24. The method as defined in claim 21 , wherein resetting comprises resetting to zero.

25. The method as defined in claim 21 , further comprising normalizing values for the final occupancy levels of other picture types when the final occupancy level d is reset.

26. A computer readable medium encoded with computer executable instructions for reassigning virtual buffer levels to stabilize a video encoding process, comprising:

instructions for monitoring a final occupancy level d of a virtual buffer for a set of I-pictures, P-pictures and B-pictures, the virtual buffer representing occupancy of a physical buffer at a decoder;

instructions for determining whether the final occupancy level d corresponds to a value impossible to realize in the physical buffer; and

instructions for resetting to alter the final occupancy level d for said set of I-pictures, P-pictures and B-pictures upon a positive determination that the value is impossible to realize in the physical buffer;

wherein encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer occurs at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate; and said set of I-pictures, P-pictures and B-pictures are optionally not skipped.

27. A circuit for reassigning virtual buffer levels to stabilize a video encoding process in a real-time video encoder comprising:

means for monitoring a final occupancy level d of a virtual buffer for a set of I-pictures, P-pictures and B-pictures, the virtual buffer representing occupancy of a physical buffer at a decoder;

means for determining whether the final occupancy level d corresponds to a value impossible to realize in the physical buffer; and

means for resetting to alter the final occupancy level d for said set of I-pictures, P-pictures and B-pictures upon a positive determination that the value is impossible to realize in the physical buffer;

wherein encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer occurs at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate; and said set of I-pictures, P-pictures and B-pictures are optionally not skipped.

28. A circuit adapted to reassign virtual buffer levels to stabilize a video encoding process comprising:

a module configured to monitor a final occupancy level d of a virtual buffer for a set of I-pictures, P-pictures and B-pictures, the virtual buffer representing occupancy of a physical buffer at a decoder;

a module configured to determine whether the final occupancy level d corresponds to a value impossible to realize in the physical buffer; and

a module configured to reset to alter the final occupancy level d for said set of I-pictures, P-pictures and B-pictures upon a positive determination indicates that the value is impossible to realize in the physical buffer;

wherein encoded transmission of said set of I-pictures, P-pictures, and B-pictures to the decoder buffer occurs at an effectively constant average bit rate; said set exchanged between the encoder and encoder buffer, and decoder buffer and decoder respectively, at an optionally variable bit rate; and said set of I-pictures, P-pictures and B-pictures are optionally not skipped.

29. A video encoder that embodies the circuit of claim 28 .

Assignments (11)
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/0341 →
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 23, 2004
From: HSU, KUO-WEI; KATSAVOUNIDIS, IOANNIS
To: INTERVIDEO INC.
Reel/Frame 014912/0523 →