A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/cisco/openh264/commit/33f7f48613258446decb33b3575fc0a3c9ed14e3 below:

Allow calculating PSNR for Y/U/V components (#3824) · cisco/openh264@33f7f48 · GitHub

@@ -2186,7 +2186,7 @@ void StatOverallEncodingExt (sWelsEncCtx* pCtx) {

2186 2186 2187 2187

}

2188 2188

}

2189 -

#endif

2189 +

#endif //#if defined(STAT_OUTPUT)

2190 2190 2191 2191 2192 2192

int32_t GetMultipleThreadIdc (SLogContext* pLogCtx, SWelsSvcCodingParam* pCodingParam, int16_t& iSliceNum,

@@ -3445,9 +3445,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour

3445 3445

SLayerBSInfo* pLayerBsInfo = &pFbi->sLayerInfo[0];

3446 3446

SWelsSvcCodingParam* pSvcParam = pCtx->pSvcParam;

3447 3447

SSpatialPicIndex* pSpatialIndexMap = &pCtx->sSpatialIndexMap[0];

3448 -

#if defined(ENABLE_FRAME_DUMP) || defined(ENABLE_PSNR_CALC)

3449 3448

SPicture* fsnr = NULL;

3450 -

#endif//ENABLE_FRAME_DUMP || ENABLE_PSNR_CALC

3451 3449

SPicture* pEncPic = NULL; // to be decided later

3452 3450

#if defined(MT_DEBUG)

3453 3451

int32_t iDidList[MAX_DEPENDENCY_LAYER] = {0};

@@ -3469,9 +3467,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour

3469 3467

int32_t iCurTid = 0;

3470 3468

bool bAvcBased = false;

3471 3469

SLogContext* pLogCtx = & (pCtx->sLogCtx);

3472 -

#if defined(ENABLE_PSNR_CALC)

3473 3470

float fSnrY = .0f, fSnrU = .0f, fSnrV = .0f;

3474 -

#endif//ENABLE_PSNR_CALC

3475 3471 3476 3472

#if defined(_DEBUG)

3477 3473

int32_t i = 0, j = 0, k = 0;

@@ -3624,9 +3620,7 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour

3624 3620

pCtx->eNalPriority = eNalRefIdc;

3625 3621 3626 3622

pCtx->pDecPic = pCtx->ppRefPicListExt[iCurDid]->pNextBuffer;

3627 -

#if defined(ENABLE_FRAME_DUMP) || defined(ENABLE_PSNR_CALC)

3628 3623

fsnr = pCtx->pDecPic;

3629 -

#endif//#if defined(ENABLE_FRAME_DUMP) || defined(ENABLE_PSNR_CALC)

3630 3624

pCtx->pDecPic->iPictureType = pCtx->eSliceType;

3631 3625

pCtx->pDecPic->iFramePoc = pParamInternal->iPOC;

3632 3626

@@ -3921,26 +3915,30 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour

3921 3915

}

3922 3916

#endif//ENABLE_FRAME_DUMP

3923 3917 3924 -

#if defined(ENABLE_PSNR_CALC)

3925 -

fSnrY = WelsCalcPsnr (fsnr->pData[0],

3926 -

fsnr->iLineSize[0],

3927 -

pEncPic->pData[0],

3928 -

pEncPic->iLineSize[0],

3929 -

iCurWidth,

3930 -

iCurHeight);

3931 -

fSnrU = WelsCalcPsnr (fsnr->pData[1],

3932 -

fsnr->iLineSize[1],

3933 -

pEncPic->pData[1],

3934 -

pEncPic->iLineSize[1],

3935 -

(iCurWidth >> 1),

3936 -

(iCurHeight >> 1));

3937 -

fSnrV = WelsCalcPsnr (fsnr->pData[2],

3938 -

fsnr->iLineSize[2],

3939 -

pEncPic->pData[2],

3940 -

pEncPic->iLineSize[2],

3941 -

(iCurWidth >> 1),

3942 -

(iCurHeight >> 1));

3943 -

#endif//ENABLE_PSNR_CALC

3918 +

if (fsnr && (pSvcParam->bPsnrY || pSrcPic->bPsnrY)) {

3919 +

fSnrY = WelsCalcPsnr (fsnr->pData[0],

3920 +

fsnr->iLineSize[0],

3921 +

pEncPic->pData[0],

3922 +

pEncPic->iLineSize[0],

3923 +

iCurWidth,

3924 +

iCurHeight);

3925 +

}

3926 +

if (fsnr && (pSvcParam->bPsnrU || pSrcPic->bPsnrU)) {

3927 +

fSnrU = WelsCalcPsnr (fsnr->pData[1],

3928 +

fsnr->iLineSize[1],

3929 +

pEncPic->pData[1],

3930 +

pEncPic->iLineSize[1],

3931 +

(iCurWidth >> 1),

3932 +

(iCurHeight >> 1));

3933 +

}

3934 +

if (fsnr && (pSvcParam->bPsnrV || pSrcPic->bPsnrV)) {

3935 +

fSnrV = WelsCalcPsnr (fsnr->pData[2],

3936 +

fsnr->iLineSize[2],

3937 +

pEncPic->pData[2],

3938 +

pEncPic->iLineSize[2],

3939 +

(iCurWidth >> 1),

3940 +

(iCurHeight >> 1));

3941 +

}

3944 3942 3945 3943

#if defined(LAYER_INFO_OUTPUT)

3946 3944

fprintf (stderr, "%2s %5d: %-5d %2s T%1d D%1d Q%-2d QP%3d Y%2.2f U%2.2f V%2.2f %8d bits\n",

@@ -3958,15 +3956,32 @@ int32_t WelsEncoderEncodeExt (sWelsEncCtx* pCtx, SFrameBSInfo* pFbi, const SSour

3958 3956

(iLayerSize << 3));

3959 3957

#endif//LAYER_INFO_OUTPUT

3960 3958 3959 +

pLayerBsInfo->rPsnr[0] = NAN;

3960 +

pLayerBsInfo->rPsnr[1] = NAN;

3961 +

pLayerBsInfo->rPsnr[2] = NAN;

3962 +

if (pSrcPic->bPsnrY) {

3963 +

pLayerBsInfo->rPsnr[0] = fSnrY;

3964 +

}

3965 +

if (pSrcPic->bPsnrU) {

3966 +

pLayerBsInfo->rPsnr[1] = fSnrU;

3967 +

}

3968 +

if (pSrcPic->bPsnrV) {

3969 +

pLayerBsInfo->rPsnr[2] = fSnrV;

3970 +

}

3971 + 3961 3972

#if defined(STAT_OUTPUT)

3962 3973 3963 -

#if defined(ENABLE_PSNR_CALC)

3964 3974

{

3965 -

pCtx->sStatData[iCurDid][0].sQualityStat.rYPsnr[pCtx->eSliceType] += fSnrY;

3966 -

pCtx->sStatData[iCurDid][0].sQualityStat.rUPsnr[pCtx->eSliceType] += fSnrU;

3967 -

pCtx->sStatData[iCurDid][0].sQualityStat.rVPsnr[pCtx->eSliceType] += fSnrV;

3975 +

if (pSvcParam->bPsnrY) {

3976 +

pCtx->sStatData[iCurDid][0].sQualityStat.rYPsnr[pCtx->eSliceType] += fSnrY;

3977 +

}

3978 +

if (pSvcParam->bPsnrU) {

3979 +

pCtx->sStatData[iCurDid][0].sQualityStat.rUPsnr[pCtx->eSliceType] += fSnrU;

3980 +

}

3981 +

if (pSvcParam->bPsnrV) {

3982 +

pCtx->sStatData[iCurDid][0].sQualityStat.rVPsnr[pCtx->eSliceType] += fSnrV;

3983 +

}

3968 3984

}

3969 -

#endif//ENABLE_PSNR_CALC

3970 3985 3971 3986

#if defined(MB_TYPES_CHECK) //091025, frame output

3972 3987

if (pCtx->eSliceType == P_SLICE) {


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4