summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2016-05-11 18:02:00 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-05-11 18:02:00 +0000
commita45596cff7bce21db776dbae8df88844db46c0e8 (patch)
tree256e20d408f419b53c91ff4c86834e7aaadf680b
parent5fd142e763ce2760ff118b91b92714f1978e3d0b (diff)
parent45df87ca5798e495ee1d5d037e6e9db731617c45 (diff)
downloadlibvpx-a45596cff7bce21db776dbae8df88844db46c0e8.tar
libvpx-a45596cff7bce21db776dbae8df88844db46c0e8.tar.gz
libvpx-a45596cff7bce21db776dbae8df88844db46c0e8.tar.bz2
libvpx-a45596cff7bce21db776dbae8df88844db46c0e8.zip
Merge "Added a measure of rc drift."
-rw-r--r--vp10/encoder/encoder.c7
-rw-r--r--vp8/encoder/onyx_if.c10
-rw-r--r--vp9/encoder/vp9_encoder.c7
3 files changed, 17 insertions, 7 deletions
diff --git a/vp10/encoder/encoder.c b/vp10/encoder/encoder.c
index 31a93906b..e7fff8299 100644
--- a/vp10/encoder/encoder.c
+++ b/vp10/encoder/encoder.c
@@ -1858,6 +1858,8 @@ void vp10_remove_compressor(VP10_COMP *cpi) {
const double dr =
(double)cpi->bytes * (double) 8 / (double)1000 / time_encoded;
const double peak = (double)((1 << cpi->oxcf.input_bit_depth) - 1);
+ const double target_rate = (double)cpi->oxcf.target_bandwidth / 1000;
+ const double rate_err = ((100.0 * (dr - target_rate)) / target_rate);
if (cpi->b_calculate_psnr) {
const double total_psnr =
@@ -1909,8 +1911,9 @@ void vp10_remove_compressor(VP10_COMP *cpi) {
SNPRINT2(results, "\t%7.3f", cpi->ssimg.worst);
}
- fprintf(f, "%s\t Time\n", headings);
- fprintf(f, "%s\t%8.0f\n", results, total_encode_time);
+ fprintf(f, "%s\t Time Rc-Err Abs Err\n", headings);
+ fprintf(f, "%s\t%8.0f %7.2f %7.2f\n", results,
+ total_encode_time, rate_err, fabs(rate_err));
}
fclose(f);
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c
index 88c191e94..661742208 100644
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -2257,6 +2257,8 @@ void vp8_remove_compressor(VP8_COMP **ptr)
double total_encode_time = (cpi->time_receive_data +
cpi->time_compress_data) / 1000.000;
double dr = (double)cpi->bytes * 8.0 / 1000.0 / time_encoded;
+ const double target_rate = (double)cpi->oxcf.target_bandwidth / 1000;
+ const double rate_err = ((100.0 * (dr - target_rate)) / target_rate);
if (cpi->b_calculate_psnr)
{
@@ -2302,12 +2304,14 @@ void vp8_remove_compressor(VP8_COMP **ptr)
cpi->summed_weights, 8.0);
fprintf(f, "Bitrate\tAVGPsnr\tGLBPsnr\tAVPsnrP\t"
- "GLPsnrP\tVPXSSIM\t Time(us)\n");
+ "GLPsnrP\tVPXSSIM\t Time(us) Rc-Err "
+ "Abs Err\n");
fprintf(f, "%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t"
- "%7.3f\t%8.0f\n",
+ "%7.3f\t%8.0f %7.2f %7.2f\n",
dr, cpi->total / cpi->count, total_psnr,
cpi->totalp / cpi->count, total_psnr2,
- total_ssim, total_encode_time);
+ total_ssim, total_encode_time,
+ rate_err, fabs(rate_err));
}
}
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index ff6e62a33..82017940d 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2026,6 +2026,8 @@ void vp9_remove_compressor(VP9_COMP *cpi) {
const double dr =
(double)cpi->bytes * (double) 8 / (double)1000 / time_encoded;
const double peak = (double)((1 << cpi->oxcf.input_bit_depth) - 1);
+ const double target_rate = (double)cpi->oxcf.target_bandwidth / 1000;
+ const double rate_err = ((100.0 * (dr - target_rate)) / target_rate);
if (cpi->b_calculate_psnr) {
const double total_psnr =
@@ -2077,8 +2079,9 @@ void vp9_remove_compressor(VP9_COMP *cpi) {
SNPRINT2(results, "\t%7.3f", cpi->ssimg.worst);
}
- fprintf(f, "%s\t Time\n", headings);
- fprintf(f, "%s\t%8.0f\n", results, total_encode_time);
+ fprintf(f, "%s\t Time Rc-Err Abs Err\n", headings);
+ fprintf(f, "%s\t%8.0f %7.2f %7.2f\n", results,
+ total_encode_time, rate_err, fabs(rate_err));
}
fclose(f);