[FFmpeg-cvslog] vc2enc: Calculate average slice quantiser correctly
Kieran Kunhya
git at videolan.org
Sat Nov 4 20:26:38 EET 2017
ffmpeg | branch: master | Kieran Kunhya <kierank at obe.tv> | Mon Jul 24 19:25:41 2017 +0100| [626d200e76e15487cff20992256a55919432b0b3] | committer: Kieran Kunhya
vc2enc: Calculate average slice quantiser correctly
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=626d200e76e15487cff20992256a55919432b0b3
---
libavcodec/vc2enc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c
index 96e27d93ed..f7fb17b076 100644
--- a/libavcodec/vc2enc.c
+++ b/libavcodec/vc2enc.c
@@ -167,7 +167,7 @@ typedef struct VC2EncContext {
int slice_max_bytes;
int slice_min_bytes;
int q_ceil;
- int q_avg;
+ int64_t q_avg;
/* Options */
double tolerance;
@@ -755,7 +755,7 @@ static int calc_slice_sizes(VC2EncContext *s)
for (i = 0; i < s->num_x*s->num_y; i++) {
SliceArgs *args = &enc_args[i];
total_bytes_needed += args->bytes;
- s->q_avg = (s->q_avg + args->quant_idx)/2;
+ s->q_avg += args->quant_idx;
}
return total_bytes_needed;
@@ -1045,7 +1045,7 @@ static av_cold int vc2_encode_end(AVCodecContext *avctx)
int i;
VC2EncContext *s = avctx->priv_data;
- av_log(avctx, AV_LOG_INFO, "Qavg: %i\n", s->q_avg);
+ av_log(avctx, AV_LOG_INFO, "Qavg: %f\n", (float)s->q_avg / (s->num_x*s->num_y));
for (i = 0; i < 3; i++) {
ff_vc2enc_free_transforms(&s->transform_args[i].t);
More information about the ffmpeg-cvslog
mailing list