18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/****************************************************************************** 28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project 48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License"); 68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License. 78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at: 88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0 108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software 128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS, 138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and 158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License. 168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* File Includes */ 238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* System include files */ 258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <stdio.h> 268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <stdlib.h> 278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <string.h> 288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <math.h> 298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* User include files */ 318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_typedefs.h" 328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "iv2.h" 338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ive2.h" 348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264e.h" 358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "app.h" 368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "psnr.h" 378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Function Name : init_psnr */ 418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Description : Initialize PSNR for the Y, U, V component */ 438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inputs : */ 458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Globals : */ 478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Processing : */ 498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Outputs : */ 518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Returns : */ 538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Issues : */ 558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Revision History: */ 578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* DD MM YYYY Author(s) Changes (Describe the changes made) */ 598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* 28 12 2005 Ittiam Draft */ 608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Svoid init_psnr(app_ctxt_t *ps_app_ctxt) 638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->adbl_psnr[0] = 0; 658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->adbl_psnr[1] = 0; 668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->adbl_psnr[2] = 0; 678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->u4_psnr_cnt = 0; 688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} 698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Function Name : compute_psnr */ 748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Description : Computes the PSNR for the Y, U, V component */ 768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inputs : */ 788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Globals : */ 808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Processing : */ 828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Outputs : */ 848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Returns : */ 868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Issues : */ 888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Revision History: */ 908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* DD MM YYYY Author(s) Changes (Describe the changes made) */ 928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* 28 12 2005 Ittiam Draft */ 938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Svoid compute_psnr(app_ctxt_t *ps_app_ctxt, iv_raw_buf_t *ps_buf1, iv_raw_buf_t *ps_buf2) 968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 i, j; 988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 comp; 998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S DOUBLE df_psnr[3]; 1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 wd, ht, strd1, strd2; 1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S UWORD8 *pu1_buf1, *pu1_buf2; 1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 incr1, incr2; 1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("\nPicNum %4d\t ", ps_app_ctxt->u4_psnr_cnt); 1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S for(comp = 0; comp < 3; comp++) 1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S df_psnr[comp] = 0; 1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = (UWORD8 *)ps_buf1->apv_bufs[comp]; 1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = (UWORD8 *)ps_buf2->apv_bufs[comp]; 1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S wd = ps_buf1->au4_wd[comp]; 1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ht = ps_buf1->au4_ht[comp]; 1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S strd1 = ps_buf1->au4_strd[comp]; 1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S strd2 = ps_buf2->au4_strd[comp]; 1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr1 = 1; 1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr2 = 1; 1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if((IV_YUV_420SP_UV == ps_buf1->e_color_fmt) 1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S || (IV_YUV_420SP_UV == ps_buf1->e_color_fmt)) 1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S switch(comp) 1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 0: 1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = ps_buf1->apv_bufs[0]; 1258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 1: 1278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if(IV_YUV_420SP_UV == ps_buf1->e_color_fmt) 1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = (UWORD8 *)ps_buf1->apv_bufs[1]; 1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = (UWORD8 *)ps_buf1->apv_bufs[1] + 1; 1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr1 = 2; 1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 2: 1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if(IV_YUV_420SP_UV == ps_buf1->e_color_fmt) 1358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = (UWORD8 *)ps_buf1->apv_bufs[1] + 1; 1368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 = ps_buf1->apv_bufs[1]; 1388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr1 = 2; 1398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if ((IV_YUV_420SP_UV == ps_buf2->e_color_fmt) 1438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S || (IV_YUV_420SP_UV == ps_buf2->e_color_fmt)) 1448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S switch(comp) 1468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 0: 1488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = ps_buf2->apv_bufs[0]; 1498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 1: 1518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if(IV_YUV_420SP_UV == ps_buf2->e_color_fmt) 1528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = ps_buf2->apv_bufs[1]; 1538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = (UWORD8 *)ps_buf2->apv_bufs[1] + 1; 1558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr1 = 2; 1568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 2: 1588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if(IV_YUV_420SP_UV == ps_buf2->e_color_fmt) 1598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = (UWORD8 *)ps_buf2->apv_bufs[1] + 1; 1608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 = ps_buf2->apv_bufs[1]; 1628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S incr1 = 2; 1638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S for(i = 0; i < ht; i++) 1688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S for(j = 0; j < wd; j++) 1708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S WORD32 diff; 1728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S diff = (*pu1_buf1 - *pu1_buf2); 1738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 += incr1; 1748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 += incr2; 1758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S df_psnr[comp] += diff * diff; 1768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf1 += strd1 - ps_buf1->au4_wd[comp]; 1788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S pu1_buf2 += strd2 - ps_buf2->au4_wd[comp]; 1798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S df_psnr[comp] /= (wd * ht); 1818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S if(df_psnr[comp]) 1828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S df_psnr[comp] = 20 * log10(255 / sqrt(df_psnr[comp])); 1838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S df_psnr[comp] = 100; 1858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->adbl_psnr[comp] += df_psnr[comp]; 1878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S switch(comp) 1888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1898d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 0: 1908d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("Y :"); 1918d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 1: 1938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("U :"); 1948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S case 2: 1968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("V :"); 1978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 1988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S default: 1998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S break; 2008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 2018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("%2.2f\t", df_psnr[comp]); 2028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 2048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ps_app_ctxt->u4_psnr_cnt++; 2068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} 2078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 2108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Function Name : print_average_psnr */ 2128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Description : Computes the average PSNR for the Y, U, V component */ 2148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Inputs : */ 2168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Globals : */ 2188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Processing : */ 2208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Outputs : */ 2228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Returns : */ 2248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Issues : */ 2268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Revision History: */ 2288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* DD MM YYYY Author(s) Changes (Describe the changes made) */ 2308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* 28 12 2005 Ittiam Draft */ 2318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* */ 2328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 2338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha Svoid print_average_psnr(app_ctxt_t *ps_app_ctxt) 2348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 2358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("\n"); 2368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 2378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("Avg PSNR Y : %-2.2f\n", (ps_app_ctxt->adbl_psnr[0] / ps_app_ctxt->u4_psnr_cnt)); 2388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("Avg PSNR U : %-2.2f\n", (ps_app_ctxt->adbl_psnr[1] / ps_app_ctxt->u4_psnr_cnt)); 2398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S printf("Avg PSNR V : %-2.2f\n", (ps_app_ctxt->adbl_psnr[2] / ps_app_ctxt->u4_psnr_cnt)); 2408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} 2418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 242