Commit b398b72c authored by Yaowu Xu's avatar Yaowu Xu

Move PSNRHVS function declaration to psnr.h

ported from libvpx/nextgenv2: 6e695da2

Change-Id: I53e60e4b7a59ba61d59634a87663c0311452fbf4
parent 7d99827f
......@@ -49,6 +49,10 @@ int64_t highbd_get_sse_shift(const uint8_t *a8, int a_stride, const uint8_t *b8,
void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b,
PSNR_STATS *psnr);
double aom_psnrhvs(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, double *phvs_y,
double *phvs_u, double *phvs_v, uint32_t bd, uint32_t in_bd);
int64_t highbd_get_sse(const uint8_t *a, int a_stride, const uint8_t *b,
int b_stride, int width, int height);
#ifdef __cplusplus
......
......@@ -244,27 +244,26 @@ static double calc_psnrhvs(const unsigned char *src, int _systride,
return ret;
}
double aom_psnrhvs(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, double *y_psnrhvs,
double *u_psnrhvs, double *v_psnrhvs, uint32_t bit_depth) {
double aom_psnrhvs(const YV12_BUFFER_CONFIG *src, const YV12_BUFFER_CONFIG *dst,
double *y_psnrhvs, double *u_psnrhvs, double *v_psnrhvs,
uint32_t bd, uint32_t in_bd) {
double psnrhvs;
const double par = 1.0;
const int step = 7;
aom_clear_system_state();
assert(bit_depth == 8 || bit_depth == 10 || bit_depth == 12);
assert(bd == 8 || bd == 10 || bd == 12);
*y_psnrhvs = calc_psnrhvs(source->y_buffer, source->y_stride, dest->y_buffer,
dest->y_stride, par, source->y_crop_width,
source->y_crop_height, step, csf_y, bit_depth);
*u_psnrhvs = calc_psnrhvs(source->u_buffer, source->uv_stride, dest->u_buffer,
dest->uv_stride, par, source->uv_crop_width,
source->uv_crop_height, step, csf_cb420, bit_depth);
*v_psnrhvs = calc_psnrhvs(source->v_buffer, source->uv_stride, dest->v_buffer,
dest->uv_stride, par, source->uv_crop_width,
source->uv_crop_height, step, csf_cr420, bit_depth);
*y_psnrhvs =
calc_psnrhvs(src->y_buffer, src->y_stride, dst->y_buffer, dst->y_stride,
par, src->y_crop_width, src->y_crop_height, step, csf_y, bd);
*u_psnrhvs = calc_psnrhvs(src->u_buffer, src->uv_stride, dst->u_buffer,
dst->uv_stride, par, src->uv_crop_width,
src->uv_crop_height, step, csf_cb420, bd);
*v_psnrhvs = calc_psnrhvs(src->v_buffer, src->uv_stride, dst->v_buffer,
dst->uv_stride, par, src->uv_crop_width,
src->uv_crop_height, step, csf_cr420, bd);
psnrhvs = (*y_psnrhvs) * .8 + .1 * ((*u_psnrhvs) + (*v_psnrhvs));
return convert_score_db(psnrhvs, 1.0, bit_depth);
return convert_score_db(psnrhvs, 1.0, bd);
}
......@@ -78,10 +78,6 @@ double aom_calc_fastssim(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, double *ssim_y,
double *ssim_u, double *ssim_v, uint32_t bit_depth);
double aom_psnrhvs(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, double *phvs_y,
double *phvs_u, double *phvs_v, uint32_t bit_depth);
#if CONFIG_AOM_HIGHBITDEPTH
double aom_highbd_calc_ssim(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, double *weight,
......
......@@ -3606,7 +3606,7 @@ static void compute_internal_stats(AV1_COMP *cpi) {
frame_all = aom_calc_fastssim(orig, recon, &y, &u, &v, bit_depth);
adjust_image_stat(y, u, v, frame_all, &cpi->fastssim);
frame_all = aom_psnrhvs(orig, recon, &y, &u, &v, bit_depth);
frame_all = aom_psnrhvs(orig, recon, &y, &u, &v, bit_depth, in_bit_depth);
adjust_image_stat(y, u, v, frame_all, &cpi->psnrhvs);
}
}
......
......@@ -52,13 +52,13 @@ double compute_hbd_psnrhvs(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest, uint32_t in_bd,
uint32_t bd) {
double tempy, tempu, tempv;
return aom_psnrhvs(source, dest, &tempy, &tempu, &tempv, bd);
return aom_psnrhvs(source, dest, &tempy, &tempu, &tempv, bd, in_bd);
}
double compute_psnrhvs(const YV12_BUFFER_CONFIG *source,
const YV12_BUFFER_CONFIG *dest) {
double tempy, tempu, tempv;
return aom_psnrhvs(source, dest, &tempy, &tempu, &tempv, 8);
return aom_psnrhvs(source, dest, &tempy, &tempu, &tempv, 8, 8);
}
double compute_hbd_fastssim(const YV12_BUFFER_CONFIG *source,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment