Don't build calc_psnr for high bit depth.
Change-Id: I63a7da7857534dcb4c69ed316c1feadea9ffb45b
This commit is contained in:
		| @@ -2145,42 +2145,6 @@ typedef struct { | ||||
|   uint32_t samples[4];  // total/y/u/v | ||||
| } PSNR_STATS; | ||||
|  | ||||
| static void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, | ||||
|                       PSNR_STATS *psnr) { | ||||
|   static const double peak = 255.0; | ||||
|   const int widths[3]        = { | ||||
|       a->y_crop_width, a->uv_crop_width, a->uv_crop_width}; | ||||
|   const int heights[3]       = { | ||||
|       a->y_crop_height, a->uv_crop_height, a->uv_crop_height}; | ||||
|   const uint8_t *a_planes[3] = {a->y_buffer, a->u_buffer, a->v_buffer}; | ||||
|   const int a_strides[3]     = {a->y_stride, a->uv_stride, a->uv_stride}; | ||||
|   const uint8_t *b_planes[3] = {b->y_buffer, b->u_buffer, b->v_buffer}; | ||||
|   const int b_strides[3]     = {b->y_stride, b->uv_stride, b->uv_stride}; | ||||
|   int i; | ||||
|   uint64_t total_sse = 0; | ||||
|   uint32_t total_samples = 0; | ||||
|  | ||||
|   for (i = 0; i < 3; ++i) { | ||||
|     const int w = widths[i]; | ||||
|     const int h = heights[i]; | ||||
|     const uint32_t samples = w * h; | ||||
|     const uint64_t sse = get_sse(a_planes[i], a_strides[i], | ||||
|                                  b_planes[i], b_strides[i], | ||||
|                                  w, h); | ||||
|     psnr->sse[1 + i] = sse; | ||||
|     psnr->samples[1 + i] = samples; | ||||
|     psnr->psnr[1 + i] = vpx_sse_to_psnr(samples, peak, (double)sse); | ||||
|  | ||||
|     total_sse += sse; | ||||
|     total_samples += samples; | ||||
|   } | ||||
|  | ||||
|   psnr->sse[0] = total_sse; | ||||
|   psnr->samples[0] = total_samples; | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
|  | ||||
| #if CONFIG_VP9_HIGHBITDEPTH | ||||
| static void calc_highbd_psnr(const YV12_BUFFER_CONFIG *a, | ||||
|                              const YV12_BUFFER_CONFIG *b, | ||||
| @@ -2233,6 +2197,44 @@ static void calc_highbd_psnr(const YV12_BUFFER_CONFIG *a, | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
|  | ||||
| #else  // !CONFIG_VP9_HIGHBITDEPTH | ||||
|  | ||||
| static void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, | ||||
|                       PSNR_STATS *psnr) { | ||||
|   static const double peak = 255.0; | ||||
|   const int widths[3]        = { | ||||
|       a->y_crop_width, a->uv_crop_width, a->uv_crop_width}; | ||||
|   const int heights[3]       = { | ||||
|       a->y_crop_height, a->uv_crop_height, a->uv_crop_height}; | ||||
|   const uint8_t *a_planes[3] = {a->y_buffer, a->u_buffer, a->v_buffer}; | ||||
|   const int a_strides[3]     = {a->y_stride, a->uv_stride, a->uv_stride}; | ||||
|   const uint8_t *b_planes[3] = {b->y_buffer, b->u_buffer, b->v_buffer}; | ||||
|   const int b_strides[3]     = {b->y_stride, b->uv_stride, b->uv_stride}; | ||||
|   int i; | ||||
|   uint64_t total_sse = 0; | ||||
|   uint32_t total_samples = 0; | ||||
|  | ||||
|   for (i = 0; i < 3; ++i) { | ||||
|     const int w = widths[i]; | ||||
|     const int h = heights[i]; | ||||
|     const uint32_t samples = w * h; | ||||
|     const uint64_t sse = get_sse(a_planes[i], a_strides[i], | ||||
|                                  b_planes[i], b_strides[i], | ||||
|                                  w, h); | ||||
|     psnr->sse[1 + i] = sse; | ||||
|     psnr->samples[1 + i] = samples; | ||||
|     psnr->psnr[1 + i] = vpx_sse_to_psnr(samples, peak, (double)sse); | ||||
|  | ||||
|     total_sse += sse; | ||||
|     total_samples += samples; | ||||
|   } | ||||
|  | ||||
|   psnr->sse[0] = total_sse; | ||||
|   psnr->samples[0] = total_samples; | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
| #endif  // CONFIG_VP9_HIGHBITDEPTH | ||||
|  | ||||
| static void generate_psnr_packet(VP10_COMP *cpi) { | ||||
|   | ||||
| @@ -2248,42 +2248,6 @@ typedef struct { | ||||
|   uint32_t samples[4];  // total/y/u/v | ||||
| } PSNR_STATS; | ||||
|  | ||||
| static void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, | ||||
|                       PSNR_STATS *psnr) { | ||||
|   static const double peak = 255.0; | ||||
|   const int widths[3]        = { | ||||
|       a->y_crop_width, a->uv_crop_width, a->uv_crop_width}; | ||||
|   const int heights[3]       = { | ||||
|       a->y_crop_height, a->uv_crop_height, a->uv_crop_height}; | ||||
|   const uint8_t *a_planes[3] = {a->y_buffer, a->u_buffer, a->v_buffer}; | ||||
|   const int a_strides[3]     = {a->y_stride, a->uv_stride, a->uv_stride}; | ||||
|   const uint8_t *b_planes[3] = {b->y_buffer, b->u_buffer, b->v_buffer}; | ||||
|   const int b_strides[3]     = {b->y_stride, b->uv_stride, b->uv_stride}; | ||||
|   int i; | ||||
|   uint64_t total_sse = 0; | ||||
|   uint32_t total_samples = 0; | ||||
|  | ||||
|   for (i = 0; i < 3; ++i) { | ||||
|     const int w = widths[i]; | ||||
|     const int h = heights[i]; | ||||
|     const uint32_t samples = w * h; | ||||
|     const uint64_t sse = get_sse(a_planes[i], a_strides[i], | ||||
|                                  b_planes[i], b_strides[i], | ||||
|                                  w, h); | ||||
|     psnr->sse[1 + i] = sse; | ||||
|     psnr->samples[1 + i] = samples; | ||||
|     psnr->psnr[1 + i] = vpx_sse_to_psnr(samples, peak, (double)sse); | ||||
|  | ||||
|     total_sse += sse; | ||||
|     total_samples += samples; | ||||
|   } | ||||
|  | ||||
|   psnr->sse[0] = total_sse; | ||||
|   psnr->samples[0] = total_samples; | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
|  | ||||
| #if CONFIG_VP9_HIGHBITDEPTH | ||||
| static void calc_highbd_psnr(const YV12_BUFFER_CONFIG *a, | ||||
|                              const YV12_BUFFER_CONFIG *b, | ||||
| @@ -2336,6 +2300,44 @@ static void calc_highbd_psnr(const YV12_BUFFER_CONFIG *a, | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
|  | ||||
| #else  // !CONFIG_VP9_HIGHBITDEPTH | ||||
|  | ||||
| static void calc_psnr(const YV12_BUFFER_CONFIG *a, const YV12_BUFFER_CONFIG *b, | ||||
|                       PSNR_STATS *psnr) { | ||||
|   static const double peak = 255.0; | ||||
|   const int widths[3]        = { | ||||
|       a->y_crop_width, a->uv_crop_width, a->uv_crop_width}; | ||||
|   const int heights[3]       = { | ||||
|       a->y_crop_height, a->uv_crop_height, a->uv_crop_height}; | ||||
|   const uint8_t *a_planes[3] = {a->y_buffer, a->u_buffer, a->v_buffer}; | ||||
|   const int a_strides[3]     = {a->y_stride, a->uv_stride, a->uv_stride}; | ||||
|   const uint8_t *b_planes[3] = {b->y_buffer, b->u_buffer, b->v_buffer}; | ||||
|   const int b_strides[3]     = {b->y_stride, b->uv_stride, b->uv_stride}; | ||||
|   int i; | ||||
|   uint64_t total_sse = 0; | ||||
|   uint32_t total_samples = 0; | ||||
|  | ||||
|   for (i = 0; i < 3; ++i) { | ||||
|     const int w = widths[i]; | ||||
|     const int h = heights[i]; | ||||
|     const uint32_t samples = w * h; | ||||
|     const uint64_t sse = get_sse(a_planes[i], a_strides[i], | ||||
|                                  b_planes[i], b_strides[i], | ||||
|                                  w, h); | ||||
|     psnr->sse[1 + i] = sse; | ||||
|     psnr->samples[1 + i] = samples; | ||||
|     psnr->psnr[1 + i] = vpx_sse_to_psnr(samples, peak, (double)sse); | ||||
|  | ||||
|     total_sse += sse; | ||||
|     total_samples += samples; | ||||
|   } | ||||
|  | ||||
|   psnr->sse[0] = total_sse; | ||||
|   psnr->samples[0] = total_samples; | ||||
|   psnr->psnr[0] = vpx_sse_to_psnr((double)total_samples, peak, | ||||
|                                   (double)total_sse); | ||||
| } | ||||
| #endif  // CONFIG_VP9_HIGHBITDEPTH | ||||
|  | ||||
| static void generate_psnr_packet(VP9_COMP *cpi) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Johann
					Johann