Claims
- 1. A method for encoding a motion video signal, the method comprising:
determining a desired size for a first frame of the motion video signal; encoding the first frame of the motion video signal to form an encoded frame; determining an encoded size of the encoded frame; comparing the encoded size to the desired size; adjusting a quantization parameter such that encoding the first frame according to the quantization parameter as adjusted would form a different encoded frame having a size closer to the desired size than the encoded size is to the desired size; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 2. The method of claim 1 wherein the second frame is subsequent to the first frame in the motion video signal.
- 3. The method of claim 1 wherein the step of adjusting comprises:
determining a difference between the encoded size and the desired size; and adjusting the quantization parameter by an amount which is proportional to the difference.
- 4. A method for encoding a motion video signal, the method comprising:
initializing an accumulated bandwidth record; encoding a first frame of the motion video signal to form an encoded frame; determining a consumed bandwidth of the encoded frame; adjusting the accumulated bandwidth record according to the consumed bandwidth; comparing the accumulated bandwidth record to a desired range of acceptable accumulated bandwidth; adjusting a quantization parameter such that encoding subsequent frames of the motion video signal according to the quantization parameter as adjusted consumes bandwidth in a manner which compensates for a deviation from the desired range of acceptable bandwidth by the accumulated bandwidth record; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 5. The method of claim 4 wherein the step of adjusting the accumulated bandwidth record comprises:
adding to the accumulative bandwidth record an amount of available bandwidth between the first frame and a preceding frame; and subtracting from the accumulative bandwidth record an amount of bandwidth consumed by the encoded frame.
- 6. The method of claim 4 wherein the second frame is subsequent to the first frame in the motion video signal.
- 7. The method of claim 4 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth in excess of the desired range; and decreasing the quantization parameter to increase bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 8. The method of claim 4 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth which is below the desired range; and increasing the quantization parameter to decrease bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 9. A method for encoding a motion video signal, the method comprising:
measuring a first difference between first and second frames of the motion video signal; measuring a second difference between the second frame and a third frame of the motion video signal; determining a third difference between the first and second differences; comparing the third difference to a predetermined threshold; adjusting a quantization parameter if the third difference is greater than the predetermined threshold; and encoding the third frame according to the quantization parameter as adjusted.
- 10. The method of claim 9 wherein the first and second differences are absolute pixel differences.
- 11. The method of claim 9 wherein the step of comparing comprises determining that the second difference is greater than the first difference; and
further wherein the step of adjusting comprises increasing the quantization parameter.
- 12. The method of claim 9 wherein the step of comparing comprises determining that the second difference is less than the first difference; and
further wherein the step of adjusting comprises decreasing the quantization parameter.
- 13. A method for encoding a motion video signal, the method comprising:
comparing first and second frames of the motion video signal to one another; determining whether the second frame represents a scene change in a motion video image represented by the motion video image; encoding the second frame as an independent frame upon a condition in which the second frame represents the scene change in the motion video image; and encoding the second frame as a motion-compensated frame upon a condition in which the second frame does not represent the scene change in the motion video image.
- 14. The method of claim 13 wherein the step of determining comprises:
measuring a difference between the first and second frames; comparing the difference to a predetermined threshold; determining that the second frame represents the scene change if the difference is greater than the predetermined threshold; and determining that the second frame does not represent the scene change if the difference is not greater than the predetermined threshold.
- 15. The method of claim 14 wherein the difference is an absolute pixel difference.
- 16. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to perform the steps of:
determining a desired size for a first frame of the motion video signal; encoding the first frame of the motion video signal to form an encoded frame; determining an encoded size of the encoded frame; comparing the encoded size to the desired size; adjusting a quantization parameter such that encoding the first frame according to the quantization parameter as adjusted would form a different encoded frame having a size closer to the desired size than the encoded size is to the desired size; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 17. The computer readable medium of claim 16 wherein the second frame is subsequent to the first frame in the motion video signal.
- 18. The computer readable medium of claim 16 wherein the step of adjusting comprises:
determining a difference between the encoded size and the desired size; and adjusting the quantization parameter by an amount which is proportional to the difference.
- 19. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to perform the steps of:
initializing an accumulated bandwidth record; encoding a first frame of the motion video signal to form an encoded frame; determining a consumed bandwidth of the encoded frame; adjusting the accumulated bandwidth record according to the consumed bandwidth; comparing the accumulated bandwidth record to a desired range of acceptable accumulated bandwidth; adjusting a quantization parameter such that encoding subsequent frames of the motion video signal according to the quantization parameter as adjusted consumes bandwidth in a manner which compensates for a deviation from the desired range of acceptable bandwidth by the accumulated bandwidth record; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 20. The computer readable medium of claim 19 wherein the step of adjusting the accumulated bandwidth record comprises:
adding to the accumulative bandwidth record an amount of available bandwidth between the first frame and a preceding frame; and subtracting from the accumulative bandwidth record an amount of bandwidth consumed by the encoded frame.
- 21. The computer readable medium of claim 19 wherein the second frame is subsequent to the first frame in the motion video signal.
- 22. The computer readable medium of claim 19 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth in excess of the desired range; and decreasing the quantization parameter to increase bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 23. The computer readable medium of claim 19 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth which is below the desired range; and increasing the quantization parameter to decrease bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 24. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to perform the steps of:
measuring a first difference between first and second frames of the motion video signal; measuring a second difference between the second frame and a third frame of the motion video signal; determining a third difference between the first and second differences; comparing the third difference to a predetermined threshold; adjusting a quantization parameter if the third difference is greater than the predetermined threshold; and encoding the third frame according to the quantization parameter as adjusted.
- 25. The computer readable medium of claim 24 wherein the first and second differences are absolute pixel differences.
- 26. The computer readable medium of claim 24 wherein the step of comparing comprises determining that the second difference is greater than the first difference; and
further wherein the step of adjusting comprises increasing the quantization parameter.
- 27. The computer readable medium of claim 24 wherein the step of comparing comprises determining that the second difference is less than the first difference; and
further wherein the step of adjusting comprises decreasing the quantization parameter.
- 28. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to perform the steps of:
comparing first and second frames of the motion video signal to one another; determining whether the second frame represents a scene change in a motion video image represented by the motion video image; encoding the second frame as an independent frame upon a condition in which the second frame represents the scene change in the motion video image; and encoding the second frame as a motion-compensated frame upon a condition in which the second frame does not represent the scene change in the motion video image.
- 29. The computer readable medium of claim 28 wherein the step of determining comprises:
measuring a difference between the first and second frames; comparing the difference to a predetermined threshold; determining that the second frame represents the scene change if the difference is greater than the predetermined threshold; and determining that the second frame does not represent the scene change if the difference is not greater than the predetermined threshold.
- 30. The computer readable medium of claim 29 wherein the difference is an absolute pixel difference.
- 31. A computer system comprising:
a processor; a memory operatively coupled to the processor; and a motion video signal encoder which executes in the processor from the memory and which, when executed by the processor, performs the steps of:
determining a desired size for a first frame of the motion video signal; encoding the first frame of the motion video signal to form an encoded frame; determining an encoded size of the encoded frame; comparing the encoded size to the desired size; adjusting a quantization parameter such that encoding the first frame according to the quantization parameter as adjusted would form a different encoded frame having a size closer to the desired size than the encoded size is to the desired size; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 32. The computer system of claim 31 wherein the second frame is subsequent to the first frame in the motion video signal.
- 33. The computer system of claim 31 wherein the step of adjusting comprises:
determining a difference between the encoded size and the desired size; and adjusting the quantization parameter by an amount which is proportional to the difference.
- 34. A computer system comprising:
a processor; a memory operatively coupled to the processor; and a motion video signal encoder which executes in the processor from the memory and which, when executed by the processor, performs the steps of:
initializing an accumulated bandwidth record; encoding a first frame of the motion video signal to form an encoded frame; determining a consumed bandwidth of the encoded frame; adjusting the accumulated bandwidth record according to the consumed bandwidth; comparing the accumulated bandwidth record to a desired range of acceptable accumulated bandwidth; adjusting a quantization parameter such that encoding subsequent frames of the motion video signal according to the quantization parameter as adjusted consumes bandwidth in a manner which compensates for a deviation from the desired range of acceptable bandwidth by the accumulated bandwidth record; and encoding a second frame of the motion video signal according to the quantization parameter as adjusted.
- 35. The computer system of claim 34 wherein the step of adjusting the accumulated bandwidth record comprises:
adding to the accumulative bandwidth record an amount of available bandwidth between the first frame and a preceding frame; and subtracting from the accumulative bandwidth record an amount of bandwidth consumed by the encoded frame.
- 36. The computer system of claim 34 wherein the second frame is subsequent to the first frame in the motion video signal.
- 37. The computer system of claim 34 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth in excess of the desired range; and decreasing the quantization parameter to increase bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 38. The computer system of claim 34 wherein the step of adjusting the quantization parameter comprises:
determining that the accumulated bandwidth record represents accumulated bandwidth which is below the desired range; and increasing the quantization parameter to decrease bandwidth consumed by encoding of subsequent frames of the motion video signal.
- 39. A computer system comprising:
a processor; a memory operatively coupled to the processor; and a motion video signal encoder which executes in the processor from the memory and which, when executed by the processor, performs the steps of: measuring a first difference between first and second frames of the motion video signal; measuring a second difference between the second frame and a third frame of the motion video signal; determining a third difference between the first and second differences; comparing the third difference to a predetermined threshold; adjusting a quantization parameter if the third difference is greater than the predetermined threshold; and encoding the third frame according to the quantization parameter as adjusted.
- 40. The computer system of claim 39 wherein the first and second differences are absolute pixel differences.
- 41. The computer system of claim 39 wherein the step of comparing comprises determining that the second difference is greater than the first difference; and
further wherein the step of adjusting comprises increasing the quantization parameter.
- 42. The computer system of claim 39 wherein the step of comparing comprises determining that the second difference is less than the first difference; and
further wherein the step of adjusting comprises decreasing the quantization parameter.
- 43. A computer system comprising:
a processor; a memory operatively coupled to the processor; and a motion video signal encoder which executes in the processor from the memory and which, when executed by the processor, performs the steps of: comparing first and second frames of the motion video signal to one another; determining whether the second frame represents a scene change in a motion video image represented by the motion video image; encoding the second frame as an independent frame upon a condition in which the second frame represents the scene change in the motion video image; and encoding the second frame as a motion-compensated frame upon a condition in which the second frame does not represent the scene change in the motion video image.
- 44. The computer system of claim 43 wherein the step of determining comprises:
measuring a difference between the first and second frames; comparing the difference to a predetermined threshold; determining that the second frame represents the scene change if the difference is greater than the predetermined threshold; and determining that the second frame does not represent the scene change if the difference is not greater than the predetermined threshold.
- 45. The computer system of claim 44 wherein the difference is an absolute pixel difference.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to co-pending (1) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP003/VXT701), entitled “Method and Apparatus for Implementing Motion Detection in Video Compression,” (2) U.S. patent application Ser. No. ______ (Atty Docket No.: VXT703), entitled “Production of a Video Stream with Synchronized Annotations over a Computer Network,” (3) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP001/VXT704), entitled “Methods and Apparatus for Implementing Control Functions in a Streamed Video Display System,” (4) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP002/VXT705), entitled “Methods and Apparatus for Automatically Detecting Protocols in a Computer Network,” (5) U.S. patent application Ser. No. ______ (Atty Docket No.: VXT706), entitled “Dynamic Bandwidth Selection for Efficient Transmission of Multimedia Streams in a Computer Network,” (6) U.S. patent application Ser. No. ______ (Atty Docket No.: VXT710), entitled “Streaming and Displaying of a Video Stream with Synchronized Annotations over a Computer Network,” (7) U.S. patent application Ser. No. ______ (Atty Docket No.: VXT711), entitled “Selective Retransmission for Efficient and Reliable Streaming of Multimedia Packets in a Computer Network,” (8) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP005/VXT712), entitled “Method and Apparatus for Table-Based Compression with Embedded Coding,” (9) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTP004/VXT716), entitled “Method and Apparatus for Implementing Motion Estimation in Video Compression,” (10) U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP006/VXT717), entitled “Method and Apparatus for Communication Media Commands and Data Using the HTTP Protocol,” 11) U.S. patent application Ser. No. ______ (Atty Docket No.: P-2051/VXT718), entitled “Conditional Replenishment Mechanism for Digital Video Signal Encoding,” all filed concurrently herewith, (12) provisional U.S. patent application Ser. No. ______ (Atty Docket No: VXTMP001+), entitled “VCR Control Functions,” filed Jan. 30, 1997, (13) provisional U.S. patent application Ser. No. ______ (Atty Docket No.: VXTMP002+), entitled “METHODS AND APPARATUS FOR AUTODETECTING PROTOCOLS IN A COMPUTER NETWORK,” filed Jan. 30, 1997, (14) U.S. patent application Ser. No. 08/623,299, filed Mar. 28, 1996, U.S. patent application Ser. No. 08/625,650, filed Mar. 29, 1996, and (15) U.S. patent application Ser. No. 08/714,447, filed Sep. 16, 1996, which are all incorporated herein by reference in their entirety for all purposes.
Divisions (1)
|
Number |
Date |
Country |
| Parent |
08841838 |
May 1997 |
US |
| Child |
09653124 |
Aug 2000 |
US |
Continuations (1)
|
Number |
Date |
Country |
| Parent |
09653124 |
Aug 2000 |
US |
| Child |
10803069 |
Mar 2004 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
| Parent |
08819507 |
Mar 1997 |
US |
| Child |
08841838 |
May 1997 |
US |