From: Guillaume Martres Date: Sat, 5 Apr 2014 19:57:14 +0000 (+0200) Subject: vp9_firstpass: Get rid of magic number in bits per MB calculation X-Git-Tag: v1.4.0~1879^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ded9e191445c599f4fcc5d75ccf26a8b4c33532e;p=libvpx vp9_firstpass: Get rid of magic number in bits per MB calculation Change-Id: Ib3886cb7cafc211581f4f9e7f76782d9d1984434 --- diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index 26fc28004..f4ec7cb65 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -916,9 +916,10 @@ int vp9_twopass_worst_quality(VP9_COMP *cpi, FIRSTPASS_STATS *fpstats, if (section_target_bandwitdh <= 0) return rc->worst_quality; // Highest value allowed - target_norm_bits_per_mb = section_target_bandwitdh < (1 << 20) - ? (512 * section_target_bandwitdh) / num_mbs - : 512 * (section_target_bandwitdh / num_mbs); + target_norm_bits_per_mb = + section_target_bandwitdh < (1 << 20) + ? (section_target_bandwitdh << BPER_MB_NORMBITS) / num_mbs + : (section_target_bandwitdh / num_mbs) << BPER_MB_NORMBITS; // Try and pick a max Q that will be high enough to encode the // content at the given rate. diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index eb4db1a33..86de99ede 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -35,9 +35,6 @@ #define MIN_BPB_FACTOR 0.005 #define MAX_BPB_FACTOR 50 -// Bits Per MB at different Q (Multiplied by 512) -#define BPER_MB_NORMBITS 9 - // Tables relating active max Q to active min Q static int kf_low_motion_minq[QINDEX_RANGE]; static int kf_high_motion_minq[QINDEX_RANGE]; diff --git a/vp9/encoder/vp9_ratectrl.h b/vp9/encoder/vp9_ratectrl.h index f2d128c2d..1d8ba6692 100644 --- a/vp9/encoder/vp9_ratectrl.h +++ b/vp9/encoder/vp9_ratectrl.h @@ -22,6 +22,9 @@ extern "C" { #define FRAME_OVERHEAD_BITS 200 +// Bits Per MB at different Q (Multiplied by 512) +#define BPER_MB_NORMBITS 9 + typedef struct { // Rate targetting variables int this_frame_target;