[Ffmpeg-devel] Bug in libavcodec/x264.c? (original) (raw)

Måns Rullgård mru
Thu Feb 2 12:41:39 CET 2006


Luca Abeni said:

Hi all,

in libavcodec/x264.c I see x4->params.rc.iqpmin = avctx->qmin; x4->params.rc.iqpmax = avctx->qmax; x4->params.rc.iqpstep = avctx->maxqdiff; But... qmin & qmax defaults are 2 & 31, whereas iqpmin & iqpmax defaults are 10 & 51... So, I suppose iqpmin/iqpmax use a different scale respect to qmin/qmax?

The H.264 quantizer is in the range 1..51. Using a value of 10 or less the results are usually visually indistinguishable from the original. Values higher than 30 start giving a blocky look.

The result of this is that using default parameters h264 rate control does not work very well in ffmpeg (if I encode mpeg4 video, it always matches the target bitrate, but if I try encoding h264 I often get a lot of VBV underflows and the final bitrate is wrong).

So, how can I correctly convert qmin/qmax values in iqpmin/iqpmax values?

For the rate control to work properly you should not restrict the quantizer range. On the other hand, you really don't want to use values higher than 31 anyway, so if the rate control fails with that limit you should use a higher bitrate.

-- M?ns Rullg?rd mru at inprovide.com



More information about the ffmpeg-devel mailing list