Claims
- 1. A system for encoding a sequence of video frames comprising:
multiple encoders connected in parallel, each encoder to receive the sequence of video frames for encoding thereof, wherein each encoder of said multiple encoders employs a set of encode parameters, at least one encode parameter of the sets of encode parameters being varied between at least two encoders of the multiple encoders connected in parallel; a controller coupled to the multiple encoders for selecting one set of encode parameters from the sets of encode parameters which best meets an encode objective; and means for outputting a bitstream of encoded video data encoded from the sequence of video frames using said one set of encode parameters.
- 2. The system of claim 1, wherein said sequence of video frames comprises a single channel bitstream of video data.
- 3. A system of claim 1, wherein the set of encode parameters employed by each encoder of said multiple encoders comprises a predetermined static set of parameters.
- 4. The system of claim 3, wherein the set of encode parameters employed by each encoder of said multiple encoders includes at least one of:
a bit rate for a resultant encoded stream; field or frame encoding; group of picture (GOP) structure, including number of B pictures and distance between I pictures; and 3:2 pull down inversion.
- 5. The system of claim 1, wherein said controller selects the set of encode parameters which yields the best picture quality as measured by a picture quality indicator (PQI) , wherein the encode objective comprises best picture quality.
- 6. The system of claim 1, wherein said bitstream of encoded video data is produced by said system in a single pass of said sequence of video frames through said system.
- 7. The system of claim 1, wherein said controller ascertains the encode objective from a plurality of possible encode objectives.
- 8. The system of claim 7, wherein the encode objective comprises one of best picture quality, constant picture quality, VBV buffer fullness, constant bits per picture, constant bit rate (CBR), transrating/transcoding, or variable bit rate encoding (VBR).
- 9. The system of claim 1, wherein the set of encode parameters employed by each encoder of the multiple encoders comprises at least one of the following parameters: bit rate; field or frame encoding; GOP structure; 3:2 PDI; target bits per picture; predicted average mquant; search range; promote P to I; demote I to P; average activity; and VBV buffer fullness.
- 10. The system of claim 1, wherein said controller comprises means for user selection of the encode objective, and user initialization of one or more encode parameters in the sets of encode parameters employed by the multiple encoders.
- 11. The system of claim 1, wherein said means for outputting comprises an encode subsystem for subsequently encoding the sequence of video frames using said one set of encode parameters to produce said bitstream of encoded video data.
- 12. The system of claim 1, wherein said means for outputting comprises means for outputting an encode result of an encoder of the multiple encoders employing said selected one set of encode parameters, wherein said encoded result comprises said bitstream of encoded video data.
- 13. The system of claim 12, wherein said means for outputting comprises multiple buffers, each buffer connected to an output of a respective encoder of said multiple encoders, and means for forwarding a buffered encoded result of the encoder having the selected one set of encode parameters.
- 14. The system of claim 13, wherein each buffer comprises memory for storing encoded video data comprising at least one encoded frame of the sequence of video frames.
- 15. The system of claim 14, wherein each buffer of said multiple buffers comprises memory for holding a number of encoded frames of the sequence of video frames sufficient to allow said controller to select said encoded result which best meets the encode objective.
- 16. The system of claim 13, further comprising an encode subsystem, and means for switching between said means for selecting and said encode subsystem, wherein said bitstream of encoded video data can be taken as an output of one encoder of said multiple encoders, or can comprise an output of said encode subsystem as determined by said means for switching.
- 17. The system of claim 1, wherein said controller further comprises means for adapting an encode parameter in one or more encoders of the multiple encoders when no set of encode parameters of the sets of encode parameters employed by the multiple encoders produces an encoded result which meets the encode objective.
- 18. A method of encoding a sequence of video frames comprising:
encoding the sequence of video frames employing multiple parallel connected encoders, each encoder of the multiple encoders receiving the identical sequence of video frames for encoding thereof, wherein each encoder of the multiple encoders employs a set of encode parameters, at least one encode parameter of the sets of encode parameters being varied between at least two encoders of the multiple encoders connected in parallel; selecting one set of encode parameters from the sets of encode parameters employed by the multiple parallel connected encoders which best meets an encode objective; and outputting a bitstream of encoded video data encoded from the sequence of video frames using the one set of encode parameters.
- 19. The method of claim 18, further comprising receiving the sequence of video frames across a single channel of video data.
- 20. The method of claim 18, wherein the set of encode parameters employed by each encoder of said multiple encoders includes at least one of:
a bit rate for a resultant encoded stream; field or frame encoding; group of picture (GOP) structure, including number of B pictures and distance between I pictures; and 3:2 pull down inversion.
- 21. The method of claim 18, wherein said bitstream of encoded video data is produced in a single pass of said data through said encoding.
- 22. The method of claim 18, further comprising ascertaining the encode objective from a plurality of possible encode objectives prior to selecting said one set of encode parameters from the sets of encode parameters employed by the multiple parallel connected encoders.
- 23. The method of claim 22, wherein the encode objective comprises one of best picture quality, constant picture quality, VBV buffer fullness, constant bits per picture, constant bit rate (CBR), transrating/transcoding, or variable bit rate encoding (VBR).
- 24. The method of claim 18, wherein the set of encode parameters employed by each encoder of the multiple encoders comprises at least one of: bit rate; field or frame encoding; GOP structure; 3:2 PDI; target bits per picture; predicted average mquant; search range; promote P to I; demote I to P; average activity; and VBV buffer fullness.
- 25. The method of claim 18, wherein said selecting comprises user selecting of the encode objective, and user initialization of one or more encode parameters in the sets of encode parameters employed by the multiple encoders.
- 26. The method of claim 18, wherein said outputting comprises subsequently encoding the sequence of video frames using the one set of encode parameters to produce said bitstream of encoded video data.
- 27. The method of claim 18, wherein said outputting comprises selecting an encoded result of an encoder of the multiple encoders employing the selected one set of encode parameters, wherein the encoded result comprises the bitstream of encoded video data.
- 28. The method of claim 27, wherein said outputting comprises buffering encoded results produced by the multiple encoders, and forwarding for output the buffered encoded result of the encoder employing the selected one set of encode parameters.
- 29. The method of claim 28, wherein said buffering comprises storing one or more encoded frames of the sequence of video frames sufficient to allow the selecting of the encoded result which best meets the encode objective.
- 30. The method of claim 28, further comprising switching between said selecting a buffered encoded result, and subsequently encoding the sequence of video frames using the selected set of encode parameters, wherein said bitstream of encoded video data can be taken as output of one encoder of said multiple encoders, or can comprise an output of an encode subsystem performing said subsequent encoding.
- 31. The method of claim 18, wherein said selecting further comprises adapting an encode parameter in one or more encoders of the multiple encoders when no set of encode parameters of the sets of encode parameters employed by the multiple encoders produces an encoded result which meets the encode objective.
- 32. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method of encoding a sequence of video frames, the method comprising:
encoding the sequence of video frames employing multiple parallel connected encoders, each encoder of the multiple encoders receiving the identical sequence of video frames for encoding thereof, wherein each encoder of the multiple encoders employs a set of encode parameters, at least one encode parameter of the sets of encode parameters being varied between at least two encoders of the multiple encoders connected in parallel; selecting one set of encode parameters from the sets of encode parameters employed by the multiple parallel connected encoders which best meets an encode objective; and outputting a bitstream of encoded video data encoded from the sequence of video frames using the one set of encode parameters.
- 33. The at least one program storage device of claim 32, further comprising receiving a sequence of video frames across a single channel of video data.
- 34. The at least one program storage device of claim 32, wherein said bitstream of encoded video data is produced in a single pass of said data through said encoding.
- 35. The at least one program storage device of claim 32, further comprising ascertaining the encode objective from a plurality of possible encode objectives prior to selecting said one set of encode parameters from the sets of encode parameters employed by the multiple parallel connected encoders.
- 36. The at least one program storage device of claim 34, wherein the encode objective comprises one of best picture quality, constant picture quality, VBV buffer fullness, constant bits per picture, constant bit rate (CBR), transrating/transcoding, or variable bit rate encoding (VBR).
- 37. The at least one program storage device of claim 32, wherein said outputting comprises subsequently encoding the sequence of video frames using the one set of encode parameters to produce said bitstream of encoded video data.
- 38. The at least one program storage device of claim 32, wherein said outputting comprises selecting an encoded result of an encoder of the multiple encoders employing the selected one set of encode parameters, wherein the encoded result comprises the bitstream of encoded video data.
- 39. The at least one program storage device of claim 32, wherein said selecting further comprises adapting an encode parameter in one or more encoders of the multiple encoders when no set of encode parameters of the sets of encode parameters employed by the multiple encoders produces an encoded result which meets the encode objective.
CROSS-REFERENCE TO RELATED PATENTS/APPLICATIONS
[0001] This application contains subject matter which relates to the subject matter of the following commonly-owned patents, each of which is hereby incorporated herein by reference in its entirety:
[0002] “Adaptive Real-Time Encoding of Video Sequence Employing Image Statistics”, U.S. Pat. No. 6,040,861, issued Mar. 21, 2000;
[0003] “Real-Time Variable Bit Rate Encoding of Video Sequence Employing Image Statistics”, U.S. Pat. No. 6,097,757, issued Aug. 1, 2000;
[0004] “Real-Time Encoding of Video Sequence Employing Two Encoders and Statistical Analysis”, U.S. Pat. No. 5,978,029, issued Nov. 2, 1999;
[0005] “Control Scheme For Shared-Use Dual-Port Predicted Error Rate”, U.S. Pat. No. 6,118,823, issued Sep. 12, 2000; and
[0006] “Optimized Field-Frame Prediction Error Calculation Method and Apparatus In A Scalable MPEG-2 Compliant Video Encoder”, U.S. Pat. No. 6,081,622, issued Jun. 27, 2000.