Merge "Calculate SSIM over both reconstruction as well as postproc buffer." into experimental
This commit is contained in:
Коммит
cdac4ad4e6
|
@ -1514,6 +1514,8 @@ VP9_PTR vp9_create_compressor(VP9_CONFIG *oxcf) {
|
||||||
cpi->tot_recode_hits = 0;
|
cpi->tot_recode_hits = 0;
|
||||||
cpi->summed_quality = 0;
|
cpi->summed_quality = 0;
|
||||||
cpi->summed_weights = 0;
|
cpi->summed_weights = 0;
|
||||||
|
cpi->summedp_quality = 0;
|
||||||
|
cpi->summedp_weights = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpi->b_calculate_ssimg) {
|
if (cpi->b_calculate_ssimg) {
|
||||||
|
@ -1709,18 +1711,25 @@ void vp9_remove_compressor(VP9_PTR *ptr) {
|
||||||
if (cpi->b_calculate_psnr) {
|
if (cpi->b_calculate_psnr) {
|
||||||
YV12_BUFFER_CONFIG *lst_yv12 =
|
YV12_BUFFER_CONFIG *lst_yv12 =
|
||||||
&cpi->common.yv12_fb[cpi->common.ref_frame_map[cpi->lst_fb_idx]];
|
&cpi->common.yv12_fb[cpi->common.ref_frame_map[cpi->lst_fb_idx]];
|
||||||
double samples = 3.0 / 2 * cpi->count * lst_yv12->y_width * lst_yv12->y_height;
|
double samples = 3.0 / 2 * cpi->count *
|
||||||
|
lst_yv12->y_width * lst_yv12->y_height;
|
||||||
double total_psnr = vp9_mse2psnr(samples, 255.0, cpi->total_sq_error);
|
double total_psnr = vp9_mse2psnr(samples, 255.0, cpi->total_sq_error);
|
||||||
double total_psnr2 = vp9_mse2psnr(samples, 255.0, cpi->total_sq_error2);
|
double total_psnr2 = vp9_mse2psnr(samples, 255.0, cpi->total_sq_error2);
|
||||||
double total_ssim = 100 * pow(cpi->summed_quality / cpi->summed_weights, 8.0);
|
double total_ssim = 100 * pow(cpi->summed_quality /
|
||||||
|
cpi->summed_weights, 8.0);
|
||||||
|
double total_ssimp = 100 * pow(cpi->summedp_quality /
|
||||||
|
cpi->summedp_weights, 8.0);
|
||||||
|
|
||||||
fprintf(f, "Bitrate\tAVGPsnr\tGLBPsnr\tAVPsnrP\tGLPsnrP\tVPXSSIM\t Time(ms)\n");
|
fprintf(f, "Bitrate\tAVGPsnr\tGLBPsnr\tAVPsnrP\tGLPsnrP\t"
|
||||||
fprintf(f, "%7.2f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%8.0f\n",
|
"VPXSSIM\tVPSSIMP\t Time(ms)\n");
|
||||||
dr, cpi->total / cpi->count, total_psnr, cpi->totalp / cpi->count, total_psnr2, total_ssim,
|
fprintf(f, "%7.2f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%8.0f\n",
|
||||||
|
dr, cpi->total / cpi->count, total_psnr,
|
||||||
|
cpi->totalp / cpi->count, total_psnr2, total_ssim, total_ssimp,
|
||||||
total_encode_time);
|
total_encode_time);
|
||||||
// fprintf(f, "%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%8.0f %10ld\n",
|
// fprintf(f, "%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%7.3f\t%8.0f %10ld\n",
|
||||||
// dr, cpi->total / cpi->count, total_psnr, cpi->totalp / cpi->count, total_psnr2, total_ssim,
|
// dr, cpi->total / cpi->count, total_psnr,
|
||||||
// total_encode_time, cpi->tot_recode_hits);
|
// cpi->totalp / cpi->count, total_psnr2, total_ssim,
|
||||||
|
// total_encode_time, cpi->tot_recode_hits);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpi->b_calculate_ssimg) {
|
if (cpi->b_calculate_ssimg) {
|
||||||
|
@ -3950,10 +3959,16 @@ int vp9_get_compressed_data(VP9_PTR ptr, unsigned int *frame_flags,
|
||||||
cpi->totalp += frame_psnr2;
|
cpi->totalp += frame_psnr2;
|
||||||
|
|
||||||
frame_ssim2 = vp9_calc_ssim(cpi->Source,
|
frame_ssim2 = vp9_calc_ssim(cpi->Source,
|
||||||
&cm->post_proc_buffer, 1, &weight);
|
recon, 1, &weight);
|
||||||
|
|
||||||
cpi->summed_quality += frame_ssim2 * weight;
|
cpi->summed_quality += frame_ssim2 * weight;
|
||||||
cpi->summed_weights += weight;
|
cpi->summed_weights += weight;
|
||||||
|
|
||||||
|
frame_ssim2 = vp9_calc_ssim(cpi->Source,
|
||||||
|
&cm->post_proc_buffer, 1, &weight);
|
||||||
|
|
||||||
|
cpi->summedp_quality += frame_ssim2 * weight;
|
||||||
|
cpi->summedp_weights += weight;
|
||||||
#if 0
|
#if 0
|
||||||
{
|
{
|
||||||
FILE *f = fopen("q_used.stt", "a");
|
FILE *f = fopen("q_used.stt", "a");
|
||||||
|
|
|
@ -640,6 +640,8 @@ typedef struct VP9_COMP {
|
||||||
int bytes;
|
int bytes;
|
||||||
double summed_quality;
|
double summed_quality;
|
||||||
double summed_weights;
|
double summed_weights;
|
||||||
|
double summedp_quality;
|
||||||
|
double summedp_weights;
|
||||||
unsigned int tot_recode_hits;
|
unsigned int tot_recode_hits;
|
||||||
|
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче