492 lines · 16.7 KB · C++
RawDownload
#include<gtest/gtest.h>#include<math.h>#include<stdlib.h>#include<time.h> #include "cpu_core.h"#include "cpu.h"#include "macros.h"#include "encode_mb_aux.h"#include "decode_mb_aux.h"#include "wels_func_ptr_def.h" using namespace WelsSVCEnc;#define RECONTEST_NUM 1000static void FillWithRandomData (uint8_t* p, int32_t Len) {  for (int32_t i = 0; i < Len; i++) {    p[i] = rand() % 256;  }} TEST (ReconstructionFunTest, WelsIDctRecI16x16Dc) {  ENFORCE_STACK_ALIGN_2D (uint8_t, pRec, 2, 16 * 16, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pPred, 32 * 16, 16)  ENFORCE_STACK_ALIGN_1D (int16_t, pDct, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData (pPred, 32 * 16);    FillWithRandomData ((uint8_t*)pDct, 16 * 2);    for (int32_t i = 0 ; i < 16; i++) {      pDct[i] = WELS_CLIP3 (pDct[i], -4080, 4080);    }    WelsIDctRecI16x16Dc_c (pRec[0], 16, pPred, 32, pDct);    sFuncPtrList.pfIDctI16x16Dc (pRec[1], 16, pPred, 32, pDct);     for (int32_t j = 0 ; j < 16; j++) {      for (int32_t i = 0 ; i < 16; i++) {        ASSERT_EQ (pRec[0][i + j * 16], pRec[1][i + j * 16]);      }    }  } } TEST (ReconstructionFunTest, WelsGetNoneZeroCount) {  ENFORCE_STACK_ALIGN_1D (int16_t, pInput, 64, 16)  int32_t iZeroCount[2];  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData ((uint8_t*)pInput, 128);    iZeroCount[0] = WelsGetNoneZeroCount_c (pInput);    iZeroCount[1] = sFuncPtrList.pfGetNoneZeroCount (pInput);    ASSERT_EQ (iZeroCount[0], iZeroCount[1]);  } } TEST (ReconstructionFunTest, WelsHadamardT4Dc) {  ENFORCE_STACK_ALIGN_1D (int16_t, pDct, 16 * 16, 16)  ENFORCE_STACK_ALIGN_2D (int16_t, pLumaDc, 2, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData ((uint8_t*)pDct, 16 * 16 * 2);    for (int32_t j = 0 ; j < 16; j++) {      for (int32_t i = 0 ; i < 16; i++) {        pDct[i + j * 16] = WELS_CLIP3 (pDct[i + j * 16], -4080, 4080);      }    }    WelsHadamardT4Dc_c (pLumaDc[0], pDct);    sFuncPtrList.pfTransformHadamard4x4Dc (pLumaDc[1], pDct);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pLumaDc[0][i], pLumaDc[1][i]);    }  }  } TEST (ReconstructionFunTest, WelsDctT4) {  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput1, 16 * 4, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput2, 32 * 4, 16)  ENFORCE_STACK_ALIGN_2D (int16_t, pOut, 2, 16, 16)   int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData (pInput1, 16 * 4);    FillWithRandomData (pInput2, 32 * 4);    WelsDctT4_c (pOut[0], pInput1, 16, pInput2, 32);    sFuncPtrList.pfDctT4 (pOut[1], pInput1, 16, pInput2, 32);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pOut[0][i], pOut[1][i]);    }  }    memset (pInput1, 255, 16 * 4);  memset (pInput2, 0, 32 * 4);  WelsDctT4_c (pOut[0], pInput1, 16, pInput2, 32);  sFuncPtrList.pfDctT4 (pOut[1], pInput1, 16, pInput2, 32);  for (int32_t i = 0 ; i < 16; i++) {    ASSERT_EQ (pOut[0][i], pOut[1][i]);  }   memset (pInput1, 0, 16 * 4);  memset (pInput2, 255, 32 * 4);  WelsDctT4_c (pOut[0], pInput1, 16, pInput2, 32);  sFuncPtrList.pfDctT4 (pOut[1], pInput1, 16, pInput2, 32);  for (int32_t i = 0 ; i < 16; i++) {    ASSERT_EQ (pOut[0][i], pOut[1][i]);  }} TEST (ReconstructionFunTest, WelsDctFourT4) {  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput1, 16 * 8, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput2, 32 * 8, 16)  ENFORCE_STACK_ALIGN_2D (int16_t, pOut, 2, 64, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData (pInput1, 16 * 8);    FillWithRandomData (pInput2, 32 * 8);    WelsDctFourT4_c (pOut[0], pInput1, 16, pInput2, 32);    sFuncPtrList.pfDctFourT4 (pOut[1], pInput1, 16, pInput2, 32);    for (int32_t i = 0 ; i < 64; i++) {      ASSERT_EQ (pOut[0][i], pOut[1][i]);    }  } } TEST (ReconstructionFunTest, WelsIDctT4Rec) {  ENFORCE_STACK_ALIGN_2D (int16_t, pDct, 2, 16, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pPred, 32 * 4, 16)  ENFORCE_STACK_ALIGN_2D (uint8_t, pRec, 2, 16 * 4, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput1, 16 * 4, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput2, 32 * 4, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData (pPred, 32 * 4);    FillWithRandomData (pInput1, 16 * 4);    FillWithRandomData (pInput2, 32 * 4);    WelsDctT4_c (pDct[0], pInput1, 16, pInput2, 32);    sFuncPtrList.pfDctT4 (pDct[1], pInput1, 16, pInput2, 32);    WelsIDctT4Rec_c (pRec[0], 16, pPred, 32, pDct[0]);    sFuncPtrList.pfIDctT4 (pRec[1], 16, pPred, 32, pDct[1]);     for (int32_t j = 0 ; j < 4; j++) {      for (int32_t i = 0 ; i < 4; i++) {        ASSERT_EQ (pRec[0][i + j * 16], pRec[1][i + j * 16]);      }    }  }    memset (pPred, 255, 32 * 4);  memset (pInput1, 255, 16 * 4);  memset (pInput2, 0, 32 * 4);  WelsDctT4_c (pDct[0], pInput1, 16, pInput2, 32);  sFuncPtrList.pfDctT4 (pDct[1], pInput1, 16, pInput2, 32);  WelsIDctT4Rec_c (pRec[0], 16, pPred, 32, pDct[0]);  sFuncPtrList.pfIDctT4 (pRec[1], 16, pPred, 32, pDct[1]);   for (int32_t j = 0 ; j < 4; j++) {    for (int32_t i = 0 ; i < 4; i++) {      ASSERT_EQ (pRec[0][i + j * 16], pRec[1][i + j * 16]);    }  }   memset (pPred, 255, 32 * 4);  memset (pInput1, 0, 16 * 4);  memset (pInput2, 255, 32 * 4);  WelsDctT4_c (pDct[0], pInput1, 16, pInput2, 32);  sFuncPtrList.pfDctT4 (pDct[1], pInput1, 16, pInput2, 32);  WelsIDctT4Rec_c (pRec[0], 16, pPred, 32, pDct[0]);  sFuncPtrList.pfIDctT4 (pRec[1], 16, pPred, 32, pDct[1]);   for (int32_t j = 0 ; j < 4; j++) {    for (int32_t i = 0 ; i < 4; i++) {      ASSERT_EQ (pRec[0][i + j * 16], pRec[1][i + j * 16]);    }  } }  TEST (ReconstructionFunTest, WelsIDctFourT4Rec) {  ENFORCE_STACK_ALIGN_2D (int16_t, pDct, 2, 64, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pPred, 32 * 8, 16)  ENFORCE_STACK_ALIGN_2D (uint8_t, pRec, 2, 16 * 8, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput1, 16 * 8, 16)  ENFORCE_STACK_ALIGN_1D (uint8_t, pInput2, 32 * 8, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    FillWithRandomData (pInput1, 16 * 8);    FillWithRandomData (pInput2, 32 * 8);    FillWithRandomData (pPred, 32 * 8);    WelsDctFourT4_c (pDct[0], pInput1, 16, pInput2, 32);    sFuncPtrList.pfDctFourT4 (pDct[1], pInput1, 16, pInput2, 32);    WelsIDctFourT4Rec_c (pRec[0], 16, pPred, 32, pDct[0]);    sFuncPtrList.pfIDctFourT4 (pRec[1], 16, pPred, 32, pDct[1]);    for (int32_t j = 0 ; j < 8; j++) {      for (int32_t i = 0 ; i < 8; i++) {        ASSERT_EQ (pRec[0][i + j * 16], pRec[1][i + j * 16]);      }    }  } }  TEST (ReconstructionFunTest, WelsDequant4x4) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 32);    for (int32_t i = 0 ; i < 16; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 32);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuant4x4_c (pInput[0], pFF, pMF);    sFuncPtrList.pfQuantization4x4 (pInput[1], pFF, pMF);     WelsDequant4x4_c (pInput[0], g_kuiDequantCoeff[uiQp]);    sFuncPtrList.pfDequantization4x4 (pInput[1], g_kuiDequantCoeff[uiQp]);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  } } TEST (ReconstructionFunTest, WelsDequantIHadamard4x4) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 32);    for (int32_t i = 0 ; i < 16; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 32);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuant4x4_c (pInput[0], pFF, pMF);    sFuncPtrList.pfQuantization4x4 (pInput[1], pFF, pMF);     WelsDequantIHadamard4x4_c (pInput[0], g_kuiDequantCoeff[uiQp][0]);    sFuncPtrList.pfDequantizationIHadamard4x4 (pInput[1], g_kuiDequantCoeff[uiQp][0]);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  } } TEST (ReconstructionFunTest, WelsQuant4x4) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 32);    for (int32_t i = 0 ; i < 16; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 32);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuant4x4_c (pInput[0], pFF, pMF);    sFuncPtrList.pfQuantization4x4 (pInput[1], pFF, pMF);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  } }  TEST (ReconstructionFunTest, WelsQuant4x4Dc) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 16, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 32);    for (int32_t i = 0 ; i < 16; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 32);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuant4x4Dc_c (pInput[0], pFF[0], pMF[0]);    sFuncPtrList.pfQuantizationDc4x4 (pInput[1], pFF[0], pMF[0]);    for (int32_t i = 0 ; i < 16; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  } } TEST (ReconstructionFunTest, WelsQuantFour4x4) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 64, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 128);    for (int32_t i = 0 ; i < 64; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 128);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuantFour4x4_c (pInput[0], pFF, pMF);    sFuncPtrList.pfQuantizationFour4x4 (pInput[1], pFF, pMF);    for (int32_t i = 0 ; i < 64; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  } } TEST (ReconstructionFunTest, WelsQuantFour4x4Max) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 64, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   int16_t pMax[2][4];  for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 128);    for (int32_t i = 0 ; i < 64; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 128);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuantFour4x4Max_c (pInput[0], pFF, pMF, pMax[0]);    sFuncPtrList.pfQuantizationFour4x4Max (pInput[1], pFF, pMF, pMax[1]);    for (int32_t i = 0 ; i < 64; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);      ASSERT_EQ (pMax[0][i >> 4], pMax[1][i >> 4]);    }  }} TEST (ReconstructionFunTest, WelsDeQuantFour4x4) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 64, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);  WelsInitReconstructionFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 128);    for (int32_t i = 0 ; i < 64; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -32000, 32000);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 128);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    WelsQuantFour4x4_c (pInput[0], pFF, pMF);    sFuncPtrList.pfQuantizationFour4x4 (pInput[1], pFF, pMF);     WelsDequantFour4x4_c (pInput[0], g_kuiDequantCoeff[uiQp]);    sFuncPtrList.pfDequantizationFour4x4 (pInput[1], g_kuiDequantCoeff[uiQp]);    for (int32_t i = 0 ; i < 64; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }  }} TEST (ReconstructionFunTest, WelsHadamardQuant2x2Skip) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 64, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 128);    for (int32_t i = 0 ; i < 64; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -4080, 4080);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 128);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    int32_t iSkip_c = WelsHadamardQuant2x2Skip_c (pInput[0], pFF[0], pMF[0]);    int32_t iSkip_test = sFuncPtrList.pfQuantizationHadamard2x2Skip (pInput[1], pFF[0], pMF[0]);     ASSERT_EQ ((iSkip_test != 0), (iSkip_c != 0));  } } TEST (ReconstructionFunTest, WelsHadamardQuant2x2) {  ENFORCE_STACK_ALIGN_2D (int16_t, pInput, 2, 64, 16)  ENFORCE_STACK_ALIGN_2D (int16_t, pDct, 2, 4, 16)  ENFORCE_STACK_ALIGN_2D (int16_t, pBlock, 2, 4, 16)  int32_t iCpuCores = 0;  SWelsFuncPtrList sFuncPtrList;  uint32_t m_uiCpuFeatureFlag = WelsCPUFeatureDetect (&iCpuCores);  WelsInitEncodingFuncs (&sFuncPtrList, m_uiCpuFeatureFlag);   for (int32_t k = 0; k < RECONTEST_NUM; k++) {    uint8_t uiQp = rand() % 52;    FillWithRandomData ((uint8_t*)pInput[0], 128);    for (int32_t i = 0 ; i < 64; i++) {      pInput[0][i] = WELS_CLIP3 (pInput[0][i], -4080, 4080);    }    memcpy ((uint8_t*)pInput[1], (uint8_t*)pInput[0], 128);     const int16_t* pMF = g_kiQuantMF[uiQp];    const int16_t* pFF = g_iQuantIntraFF[uiQp];    int32_t iSkip_c = WelsHadamardQuant2x2_c (pInput[0], pFF[0], pMF[0], pDct[0], pBlock[0]);    int32_t iSkip_test = sFuncPtrList.pfQuantizationHadamard2x2 (pInput[1], pFF[0], pMF[0], pDct[1], pBlock[1]);     ASSERT_EQ ((iSkip_test != 0), (iSkip_c != 0));    for (int32_t i = 0 ; i < 64; i++) {      ASSERT_EQ (pInput[0][i], pInput[1][i]);    }    for (int32_t i = 0 ; i < 4; i++) {      ASSERT_EQ (pDct[0][i], pDct[1][i]);      ASSERT_EQ (pBlock[0][i], pBlock[1][i]);    }  } } 

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t