[FFmpeg-cvslog] Use log2(x) instead of log(x) / log(2)
Mans Rullgard
git at videolan.org
Tue Aug 14 15:39:43 CEST 2012
ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Sun Aug 5 22:22:10 2012 +0100| [d752509b7437beefac079021fc5ecbd4e27df6b5] | committer: Mans Rullgard
Use log2(x) instead of log(x) / log(2)
Signed-off-by: Mans Rullgard <mans at mansr.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d752509b7437beefac079021fc5ecbd4e27df6b5
---
avconv.c | 2 +-
avprobe.c | 2 +-
libavcodec/imc.c | 4 ++--
libavcodec/snowenc.c | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/avconv.c b/avconv.c
index 2bc9d82..83ff8b4 100644
--- a/avconv.c
+++ b/avconv.c
@@ -820,7 +820,7 @@ static void print_report(int is_last_report, int64_t timer_start)
if (qp >= 0 && qp < FF_ARRAY_ELEMS(qp_histogram))
qp_histogram[qp]++;
for (j = 0; j < 32; j++)
- snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", (int)lrintf(log(qp_histogram[j] + 1) / log(2)));
+ snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%X", (int)lrintf(log2(qp_histogram[j] + 1)));
}
if (enc->flags&CODEC_FLAG_PSNR) {
int j;
diff --git a/avprobe.c b/avprobe.c
index 28746bf..8107e54 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -468,7 +468,7 @@ static char *value_string(char *buf, int buf_size, double val, const char *unit)
int index;
if (unit == unit_byte_str && use_byte_value_binary_prefix) {
- index = (int) (log(val)/log(2)) / 10;
+ index = (int) log2(val) / 10;
index = av_clip(index, 0, FF_ARRAY_ELEMS(binary_unit_prefixes) - 1);
val /= pow(2, index * 10);
prefix_string = binary_unit_prefixes[index];
diff --git a/libavcodec/imc.c b/libavcodec/imc.c
index 95495bf..e452baf 100644
--- a/libavcodec/imc.c
+++ b/libavcodec/imc.c
@@ -342,7 +342,7 @@ static void imc_decode_level_coefficients(IMCContext *q, int *levlCoeffBuf,
// maybe some frequency division thingy
flcoeffs1[0] = 20000.0 / pow (2, levlCoeffBuf[0] * 0.18945); // 0.18945 = log2(10) * 0.05703125
- flcoeffs2[0] = log(flcoeffs1[0]) / log(2);
+ flcoeffs2[0] = log2f(flcoeffs1[0]);
tmp = flcoeffs1[0];
tmp2 = flcoeffs2[0];
@@ -414,7 +414,7 @@ static int bit_allocation(IMCContext *q, IMCChannel *chctx,
highest = FFMAX(highest, chctx->flcoeffs1[i]);
for (i = 0; i < BANDS - 1; i++)
- chctx->flcoeffs4[i] = chctx->flcoeffs3[i] - log(chctx->flcoeffs5[i]) / log(2);
+ chctx->flcoeffs4[i] = chctx->flcoeffs3[i] - log2f(chctx->flcoeffs5[i]);
chctx->flcoeffs4[BANDS - 1] = limit;
highest = highest * 0.25;
diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c
index 2eaf923..481dc1a 100644
--- a/libavcodec/snowenc.c
+++ b/libavcodec/snowenc.c
@@ -1529,7 +1529,7 @@ static void update_last_header_values(SnowContext *s){
}
static int qscale2qlog(int qscale){
- return rint(QROOT*log(qscale / (float)FF_QP2LAMBDA)/log(2))
+ return rint(QROOT*log2(qscale / (float)FF_QP2LAMBDA))
+ 61*QROOT/8; ///< 64 > 60
}
More information about the ffmpeg-cvslog
mailing list