在x264中,VBV-CBR RC模式基于ABR,并且设置了vbv-maxrate和vbv-bufsize。在ABR决定的帧QP的基础上,MB行QP由VBV-CBR决定每行。我测试了这两种模式,并列出了命令行: ABR:-o BasketballDrill_832x480_50_20131210102507.264 BasketballDrill_832x480_50.yuv 832x480 --fps 50 --frames 300 --bitrate 1120 --profile baseline --threads -1 -I 50 -v --psnr VBV-CBR:-o BasketballDrill_832x480_50_20131210102507_mb.264 BasketballDrill_832x480_50.yuv 832x480 --fps 50 --frames 300 --bitrate 1120 --vbv-maxrate 1120 --vbv-bufsize 1680 --profile baseline --threads 1 -I 50 -v --psnr
最终结果如下: ABR:Y-PSNR 31.530dB,比特率1146.93kbps VBV-CBR:Y-PSNR 31.728dB,比特率1230.25kbps 与ABR相比,VBV-CBR实现了4.9%的比特率提升和0.198dB的PSNR提升。但PSNR升级低于比特率(1%比特率= 0.05dB)。
谈了这么多,我只想问一下VBV-CBR与ABR相比有什么优势?如果ABR能够得到合理的结果,为什么需要VBV-cBR? 在我看来,VBV-CBR可能会因为决定每个MB行的QP而提升主观质量。但比特率也在上升。我也比较了两种模式的一些帧,它们几乎相同。 也许有些情况适合VBV-CBR,我不知道。那么伙计们,给我一些新的x264,一些专业的解释。