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