Log in

View Full Version : VBV-CBR and ABR in X264


xkfz007
10th December 2013, 04:23
In x264 VBV-CBR RC mode is based on ABR and vbv-maxrate and vbv-bufsize are set. On the basis of frame QP decided by ABR, the MB row QP is decided by VBV-CBR for each row. I test these two modes and the command lines are listed:
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

The final results are:
ABR: Y-PSNR 31.530dB, bitrate 1146.93kbps
VBV-CBR: Y-PSNR 31.728dB, bitrate 1230.25kbps
Compared to ABR, VBV-CBR achieved 4.9% bitrate promotion and 0.198dB PSNR promotion. But the PSNR promotion is lower than bitrate (1% bitrate=0.05dB).

Having talked so much, I just want to ask what is the advantage of VBV-CBR compared ABR? If ABR can get the reasonable results, why the VBV-cBR is needed?
In my opinion, VBV-CBR maybe can promote the subjective quality owing to deciding the QP for each MB row. But the bitrate also rises. Also I have compared some frames of the two modes, they are almost the same.
Maybe there are some situations that are fit for VBV-CBR and I don't know. So guys, give me, the new to x264, some professional explanation.

sneaker_ger
10th December 2013, 10:39
The differences in your results are unintended coincidences/normal deviation (not least because of your extremely short sample size), CBR is not made to "promote" bitrate or PSNR - usually it's quite the opposite since vbv restricts x264 in its possibilities to distribute bits freely. CBR is used if you want to maximize the bitrate in e.g. a streaming scenario or if the streaming application requires it.

xkfz007
10th December 2013, 12:42
@sneaker_ger
Thanks for your reply. I learned some about CBR.
Can you tell me in which situations VBV-CBR are used compared with ABR? I think ABR can satisfy most cases.
Compared with ABR, VBV-CBR decides QP for each MB row. Is this the reason why VBV-CBR distribute the bits more accurte than ABR?