Distributed control strategy for dynamically encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
First Claim
1. A method of processing multiple streams of video frames comprising:
- employing multiple encode processes to encode multiple streams of video frames in parallel;
directly exchanging encode process to encode process at least one input statistic or encode statistic employed by each encode process of the multiple encode processes;
dynamically adapting encoding of at least one stream of video frames of the multiple streams of video frames based on relative complexity of the video frames comprising the multiple streams of video frames employing the at least one input statistic or encode statistic directly exchanged between the encode processes; and
wherein said dynamically adapting comprising employing a joint rate control strategy distributed among said multiple encode processes, and wherein each encode process of said multiple encode processes ascertains said at least one input statistic or encode statistic for its respective stream of video frames being encoded, saves said at least one input statistic or encode statistic, and shares said at least one input statistic or encode statistic directly with said multiple encode processes during said exchanging to allow determination by at least one encode process of the multiple encode processes of a total statistic corresponding to a sum of the at least one input statistics or encode statistics generated by said multiple encode processes, and wherein said directly exchanging further comprises sharing the total statistic by the at least one encode process with the multiple encode processes, and responsive to obtaining of the total statistic, at least one encode process employs the total statistic and its own at least one input statistic or encode statistic during said dynamically adapting encoding to facilitate said dynamically adapting encoding of the at least one stream of video frames of the multiple streams of video frames.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed control strategy is provided for dynamically encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel. The control strategy is a single pass strategy which allows individual encode bit rates to be dynamically adjusted for each video data stream based in part on relative complexity of the multiple streams of video data, as well as fullness of compressed video data buffers coupled between the encoders and the constant bit rate channel. The control strategy includes encoding the multiple streams of video frames in parallel using multiple encoders, exchanging one or more statistics between the encode processes using an exchange interface, and dynamically adapting encoding of at least one stream of the video frames using the exchanged statistics based on relative complexity of the video frames.
119 Citations
45 Claims
-
1. A method of processing multiple streams of video frames comprising:
-
employing multiple encode processes to encode multiple streams of video frames in parallel; directly exchanging encode process to encode process at least one input statistic or encode statistic employed by each encode process of the multiple encode processes; dynamically adapting encoding of at least one stream of video frames of the multiple streams of video frames based on relative complexity of the video frames comprising the multiple streams of video frames employing the at least one input statistic or encode statistic directly exchanged between the encode processes; and wherein said dynamically adapting comprising employing a joint rate control strategy distributed among said multiple encode processes, and wherein each encode process of said multiple encode processes ascertains said at least one input statistic or encode statistic for its respective stream of video frames being encoded, saves said at least one input statistic or encode statistic, and shares said at least one input statistic or encode statistic directly with said multiple encode processes during said exchanging to allow determination by at least one encode process of the multiple encode processes of a total statistic corresponding to a sum of the at least one input statistics or encode statistics generated by said multiple encode processes, and wherein said directly exchanging further comprises sharing the total statistic by the at least one encode process with the multiple encode processes, and responsive to obtaining of the total statistic, at least one encode process employs the total statistic and its own at least one input statistic or encode statistic during said dynamically adapting encoding to facilitate said dynamically adapting encoding of the at least one stream of video frames of the multiple streams of video frames. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of processing multiple streams of video frames comprising:
-
encoding the multiple streams of video frames in parallel employing multiple encode processes, the encoding including employing at least one controllable encode parameter for each stream of video frames; during the encoding, analyzing each stream of video frames to derive information on at least one characteristic thereof, the at least one characteristic comprising at least one of an intraframe characteristic or an interframe characteristic; directly exchanging encode process to encode process the information derived on the at least one characteristic of each stream of video frames; dynamically adapting encoding of at least one stream of video frames using relative information on the at least one characteristic obtained from each stream of video frames of the multiple streams of video frames, the dynamically adapting including for the at least one stream of video frames adjusting the at least one controllable encode parameter employed in the encoding, wherein the encoding of each stream of video frames is dynamically adaptive to relative changes in the at least one characteristic obtained from the multiple streams of video frames by directly exchanging encode process to encode process the information on the at least one characteristic of the multiple streams of video frames; and wherein said dynamically adapting comprising employing a joint rate control strategy distributed among said multiple encode processes, and wherein each encode process of said multiple encode processes ascertains said at least one input statistic or encode statistic for its respective stream of video frames being encoded, saves said at least one input statistic or encode statistic, and shares said at least one input statistic or encode statistic directly with said multiple encode processes during said exchanging to allow determination by at least one encode process of the multiple encode processes of a total statistic corresponding to a sum of the at least one input statistics or encode statistics generated by said multiple encode processes, and wherein said directly exchanging further comprises sharing the total statistic by the at least one encode process with the multiple encode processes, and responsive to obtaining of the total statistic, at least one encode process employs the total statistic and its own at least one input statistic or encode statistic during said dynamically adapting encoding to facilitate said dynamically adapting encoding of the at least one stream of video frames of the multiple streams of video frames. - View Dependent Claims (14, 15, 16)
-
-
17. A system for processing multiple streams of video frames comprising:
-
multiple encoders for encoding the multiple streams of video frames in parallel, each encoder receiving one stream of video frames of said multiple streams of video frames; a direct exchange interface providing encoder to encoder communications paths between said multiple encoders and allowing said multiple encoders to directly exchange the at least one input statistic or encode statistic therebetween; a distributed joint rate control means integrated within said multiple encoders for dynamically adapting encoding of at least one stream of video frames of the multiple streams of video frames based on relative complexity of the video frames comprising the multiple streams of video frames; and wherein each encoder ascertains said at least one input statistic or encode statistic for its respective stream of video frames being encoded, saves said at least one input statistic or encode statistic, and shares said at least one input statistic or encode statistic among said multiple encoders using said direct exchange interface to allow determination by at least one encoder of the multiple encoders of a total statistic corresponding to a sum of the at least one input statistics or encode statistics generated by said multiple encoders, and wherein said direct exchange interface facilitates encoder to encoder sharing of the total statistic, wherein at least one encoder employs the total statistic and its own at least one input statistic or encode statistic to dynamically adapt encoding of the at least one stream of video frames of the multiple streams of video frames. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A system for processing multiple streams of video frames comprising:
-
multiple encoders for encoding multiple streams of video frames in parallel, each encoder employing at least one controllable encode parameter for encoding one stream of the video frames; means for analyzing each stream of video frames to derive information on at least one characteristic thereof, said at least one characteristic comprising at least one of an intraframe characteristic or an interframe characteristic; a direct exchange interface comprising an encoder to encoder communications bus interconnecting said multiple encoders and allowing said encoders to directly exchange information derived on the at least one characteristic of each stream of video frames; means for dynamically adapting encoding of at least one stream of video frames using relative information on the at least one characteristic obtained from each stream of video frames of the multiple streams of video frames, the dynamically adapting including for the at least one stream of video frames adjusting the at least one controllable encode parameter employed in the encoding, wherein the encoding of each stream of video frames is dynamically adaptive to relative changes in the at least one characteristic obtained from the multiple streams of video frames by directly exchanging encoder to encoder the information on the at least one characteristic of the multiple streams of video frames, and wherein the means for dynamically adapting encoding comprises a distributed means integrated within each of the multiple encoders; and wherein said means for dynamically adapting encoding comprises means for employing a joint rate control strategy distributed within said multiple encoders, and wherein each encoder of said multiple encoders ascertains said state information derived on the at least one characteristic of its respective stream of video frames, saves said information, and shares said information among said multiple encoders using said exchange interface to allow determination by at least one encoder of the multiple encoders of a total statistic corresponding to a sum of the information derived on the at least one characteristic by each encoder of the multiple encoders, and wherein said direct exchange interface further comprises means for sharing the total statistic among the multiple encoders, wherein at least one encoder employs the total statistic and its own information during the dynamically adapting encoding to facilitate said dynamically encoding of the at least one stream of video frames of the multiple streams of video frames. - View Dependent Claims (29, 30)
-
-
31. 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 processing multiple streams of video frames, comprising:
-
employing multiple encode processes to encode multiple streams of video frames in parallel; directly exchanging encode process to encode process at least one input statistic or encode statistic employed by each encode process of the multiple encode processes; dynamically adapting encoding of at least one stream of video frames of the multiple streams of video frames based on relative complexity of the video frames comprising the multiple streams of video frames employing the at least one input statistic or encode statistic directly exchanged between the encode processes; and wherein said dynamically adapting comprising employing a joint rate control strategy distributed among said multiple encode processes, and wherein each encode process of said multiple encode processes ascertains said at least one input statistic or encode statistic for its respective stream of video frames being encoded, saves said at least one input statistic or encode statistic, and shares said at least one input statistic or encode statistic directly with said multiple encode processes during said exchanging to allow determination by at least one encode process of the multiple encode processes of a total statistic corresponding to a sum of the at least one input statistics or encode statistics generated by said multiple encode processes, and wherein said directly exchanging further comprises sharing the total statistic by the at least one encode process with the multiple encode processes, and responsive to obtaining of the total statistic, at least one encode process employs the total statistic and its own at least one input statistic or encode statistic during said dynamically adapting encoding to facilitate said dynamically adapting encoding of the at least one stream of video frames of the multiple streams of video frames. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. 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 processing multiple streams of video frames, comprising:
-
encoding the multiple streams of video frames in parallel employing multiple encode processes, the encoding including employing at least one controllable encode parameter for each stream of video frames; during the encoding, analyzing each stream of video frames to derive information on at least one characteristic thereof, the at least one characteristic comprising at least one of an intraframe characteristic or an interframe characteristic; directly exchanging encode process to encode process the information derived on the at least one characteristic of each stream of video frames; dynamically adapting encoding of at least one stream of video frames using relative information on the at least one characteristic obtained from each stream of video frames of the multiple streams of video frames, the dynamically adapting including for the at least one stream of video frames adjusting the at least one controllable encode parameter employed in the encoding, wherein the encoding of each stream of video frames is dynamically adaptive to relative changes in the at least one characteristic obtained from the multiple streams of video frames by directly exchanging encode process to encode process the information on the at least one characteristic of the multiple streams of video frames between the encode processes; and wherein said dynamically adapting encoding comprises employing a joint rate control strategy distributed among said multiple encode processes, and wherein each encode process of said multiple encode processes ascertains said information derived on the at least one characteristic of its respective stream of video frames, saves said information, and shares said information among said multiple encode processes during said exchanging to allow determination by at least one encode process of said multiple encode processes of a total statistic corresponding to a sum of the information derived on the at least one characteristic by each encode process of the multiple encode processes, and wherein said directly exchanging further comprises sharing the total statistic among the multiple encode processes, wherein at least one encode process employs the total statistic and its own information during said dynamically adapting encoding to facilitate said dynamically encoding of the at least one stream of video frame of the multiple streams of video frames. - View Dependent Claims (43, 44, 45)
-
Specification