[FFmpeg-devel] [PATCH] libvpx: add 2 pass setting mapping

James Zern jzern
Tue Jun 8 20:09:24 CEST 2010


The attached adds a mapping for libvpx/rc_2pass* based on comments
from earlier thread "[PATCH] add encode options to libvpxenc"
regarding use of qcompress.

Descriptions of the libvpx settings:
         * Bias, expressed on a scale of 0 to 100, for determining target size
         * for the current frame. The value 0 indicates the optimal CBR mode
         * value should be used. The value 100 indicates the optimal VBR mode
         * value should be used. Values in between indicate which way the
         * encoder should "lean."
         rc_2pass_vbr_bias_pct

         * This value, expressed as a percentage of the target
bitrate, indicates
         * the minimum bitrate to be used for a single GOP (aka "section")
         rc_2pass_vbr_minsection_pct

         * This value, expressed as a percentage of the target
bitrate, indicates
         * the maximum bitrate to be used for a single GOP (aka "section")
         rc_2pass_vbr_maxsection_pct
-------------- next part --------------
Index: libavcodec/libvpxenc.c
===================================================================
--- libavcodec/libvpxenc.c	(revision 23536)
+++ libavcodec/libvpxenc.c	(working copy)
@@ -242,6 +242,14 @@ static av_cold int vp8_init(AVCodecConte
     enccfg.rc_max_quantizer = ((avctx->qmax * 5 + 1) >> 2) - 1;
     enccfg.rc_dropframe_thresh = avctx->frame_skip_threshold;
 
+    //0-100 (0 => CBR, 100 => VBR)
+    enccfg.rc_2pass_vbr_bias_pct           = round(avctx->qcompress * 100);
+    enccfg.rc_2pass_vbr_minsection_pct     =
+        avctx->rc_min_rate * 100 / avctx->bit_rate;
+    if (avctx->rc_max_rate)
+        enccfg.rc_2pass_vbr_maxsection_pct =
+            avctx->rc_max_rate * 100 / avctx->bit_rate;
+
     //_enc_init() will balk if kf_min_dist differs from max w/VPX_KF_AUTO
     if (avctx->keyint_min == avctx->gop_size)
         enccfg.kf_min_dist = avctx->keyint_min;



More information about the ffmpeg-devel mailing list