1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-24 13:56:33 +02:00

vc2enc: Calculate average slice quantiser correctly

This commit is contained in:
Kieran Kunhya 2017-07-24 19:25:41 +01:00
parent 77748d12a0
commit 626d200e76

View File

@ -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);