Redhat_doom
11th May 2009, 03:26
Hi,
As you know in x264 three rate control methods are used:1- constant quantizer (cq) which uses a constant quantizer index for each frame, 2-constant rate factor (crf) which tries to adaptively adjust the quantizer index for each frame based on its content to achieve constant quality over the entire video, and 3-average bitrate which produces an encoded video with an average bitrate close to the given bitrate parameter.
But if we want to encode each frame on the fly in a real-time application such as videoconferencing, then which rate control method is the most suitable one? I think the third scheme (average bit rate) is the best for this purpose, but how can we estimate the best average bitrate for each frame? One way is to divide the available bandwidth (say 100 kbit/s) to the required fps (say 25) and set the bitrate parameter to a little smaller value than the resultant bitrate. But do you know any better way? However, I don't have any idea about the quality of the obtained video using this method because it is possible that many low-complexity frames get more bits than required and so it is possible that the quality of the video will be changed from one frame to another. But what do you think?
Thanks!
As you know in x264 three rate control methods are used:1- constant quantizer (cq) which uses a constant quantizer index for each frame, 2-constant rate factor (crf) which tries to adaptively adjust the quantizer index for each frame based on its content to achieve constant quality over the entire video, and 3-average bitrate which produces an encoded video with an average bitrate close to the given bitrate parameter.
But if we want to encode each frame on the fly in a real-time application such as videoconferencing, then which rate control method is the most suitable one? I think the third scheme (average bit rate) is the best for this purpose, but how can we estimate the best average bitrate for each frame? One way is to divide the available bandwidth (say 100 kbit/s) to the required fps (say 25) and set the bitrate parameter to a little smaller value than the resultant bitrate. But do you know any better way? However, I don't have any idea about the quality of the obtained video using this method because it is possible that many low-complexity frames get more bits than required and so it is possible that the quality of the video will be changed from one frame to another. But what do you think?
Thanks!