Merge "Protect new metric computation with use_highbitdepth flag"

This commit is contained in:
Yaowu Xu 2015-05-12 23:20:35 +00:00 коммит произвёл Gerrit Code Review
Родитель 5c02f88a81 3f42d10805
Коммит a8015e217e
1 изменённых файлов: 34 добавлений и 21 удалений

Просмотреть файл

@ -4216,7 +4216,7 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
vp9_clear_system_state();
#if CONFIG_VP9_HIGHBITDEPTH
calc_highbd_psnr(orig, pp, &psnr, cpi->td.mb.e_mbd.bd,
calc_highbd_psnr(orig, pp, &psnr2, cpi->td.mb.e_mbd.bd,
cpi->oxcf.input_bit_depth);
#else
calc_psnr(orig, pp, &psnr2);
@ -4267,31 +4267,38 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
}
}
if (cpi->b_calculate_blockiness) {
double frame_blockiness = vp9_get_blockiness(
cpi->Source->y_buffer, cpi->Source->y_stride,
cm->frame_to_show->y_buffer, cm->frame_to_show->y_stride,
cpi->Source->y_width, cpi->Source->y_height);
cpi->worst_blockiness = MAX(cpi->worst_blockiness, frame_blockiness);
cpi->total_blockiness += frame_blockiness;
#if CONFIG_VP9_HIGHBITDEPTH
if (!cm->use_highbitdepth)
#endif
{
double frame_blockiness = vp9_get_blockiness(
cpi->Source->y_buffer, cpi->Source->y_stride,
cm->frame_to_show->y_buffer, cm->frame_to_show->y_stride,
cpi->Source->y_width, cpi->Source->y_height);
cpi->worst_blockiness = MAX(cpi->worst_blockiness, frame_blockiness);
cpi->total_blockiness += frame_blockiness;
}
}
if (cpi->b_calculate_consistency) {
double this_inconsistency = vp9_get_ssim_metrics(
cpi->Source->y_buffer, cpi->Source->y_stride,
cm->frame_to_show->y_buffer, cm->frame_to_show->y_stride,
cpi->Source->y_width, cpi->Source->y_height, cpi->ssim_vars,
&cpi->metrics, 1);
#if CONFIG_VP9_HIGHBITDEPTH
if (!cm->use_highbitdepth)
#endif
{
double this_inconsistency = vp9_get_ssim_metrics(
cpi->Source->y_buffer, cpi->Source->y_stride,
cm->frame_to_show->y_buffer, cm->frame_to_show->y_stride,
cpi->Source->y_width, cpi->Source->y_height, cpi->ssim_vars,
&cpi->metrics, 1);
const double peak = (double)((1 << cpi->oxcf.input_bit_depth) - 1);
double consistency = vpx_sse_to_psnr(samples, peak,
const double peak = (double)((1 << cpi->oxcf.input_bit_depth) - 1);
double consistency = vpx_sse_to_psnr(samples, peak,
(double)cpi->total_inconsistency);
if (consistency > 0.0)
cpi->worst_consistency = MIN(cpi->worst_consistency,
consistency);
cpi->total_inconsistency += this_inconsistency;
if (consistency > 0.0)
cpi->worst_consistency = MIN(cpi->worst_consistency,
consistency);
cpi->total_inconsistency += this_inconsistency;
}
}
if (cpi->b_calculate_ssimg) {
@ -4309,6 +4316,9 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
#endif // CONFIG_VP9_HIGHBITDEPTH
adjust_image_stat(y, u, v, frame_all, &cpi->ssimg);
}
#if CONFIG_VP9_HIGHBITDEPTH
if (!cm->use_highbitdepth)
#endif
{
double y, u, v, frame_all;
frame_all = vp9_calc_fastssim(cpi->Source, cm->frame_to_show, &y, &u,
@ -4316,6 +4326,9 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
adjust_image_stat(y, u, v, frame_all, &cpi->fastssim);
/* TODO(JBB): add 10/12 bit support */
}
#if CONFIG_VP9_HIGHBITDEPTH
if (!cm->use_highbitdepth)
#endif
{
double y, u, v, frame_all;
frame_all = vp9_psnrhvs(cpi->Source, cm->frame_to_show, &y, &u, &v);