Fix compiler warnings about comparison between signed and unsigned Fix bugs WelsDeblockingFilterSlice UT when random value is 0
Showing the changes to test/decoder/DecUT_DeblockCommon.cpp (1 of 1 file). Show all
Unified · Split
| @@ -583,7 +583,7 @@ TEST (DecoderDeblocking, WelsDeblockingFilterSlice) { · 582 unmodified lines | |||
| 583 | // (1) Normal case, the iTotalMbInCurSlice == pSps->uiTotalMbCount | 583 | // (1) Normal case, the iTotalMbInCurSlice == pSps->uiTotalMbCount |
| 584 | sDqLayer.iMbX = sDqLayer.iMbY = 0; | 584 | sDqLayer.iMbX = sDqLayer.iMbY = 0; |
| 585 | sDqLayer.iMbXyIndex = 0; | 585 | sDqLayer.iMbXyIndex = 0; |
| 586 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = rand() % 256; | 586 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = 1 + rand() % 256; // at least one MB |
| 587 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = | 587 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = |
| 588 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; | 588 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; |
| 589 | sDqLayer.iMbWidth = 1 + rand() % 128; | 589 | sDqLayer.iMbWidth = 1 + rand() % 128; |
| @@ -591,32 +591,32 @@ TEST (DecoderDeblocking, WelsDeblockingFilterSlice) { · 1 unmodified line | |||
| 591 | EXPECT_TRUE ((sDqLayer.iMbXyIndex + 1) == sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice) << sDqLayer.iMbXyIndex | 591 | EXPECT_TRUE ((sDqLayer.iMbXyIndex + 1) == sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice) << sDqLayer.iMbXyIndex |
| 592 | << " " << sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; | 592 | << " " << sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; |
| 593 | 593 | ||
| 594 | // (2) Normal case, multi slices, iTotalMbInCurSlice < pSps->uiTotalMbCount | 594 | // (2) Normal case, multi slices, iTotalMbInCurSlice <= pSps->uiTotalMbCount |
| 595 | sDqLayer.iMbX = sDqLayer.iMbY = 0; | 595 | sDqLayer.iMbX = sDqLayer.iMbY = 0; |
| 596 | sDqLayer.iMbXyIndex = 0; | 596 | sDqLayer.iMbXyIndex = 0; |
| 597 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = rand() % 256; | 597 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = 1 + rand() % 256; |
| 598 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = | 598 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = |
| 599 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice + rand() % 256; | 599 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice + rand() % 256; |
| 600 | sDqLayer.iMbWidth = 1 + rand() % 128; | 600 | sDqLayer.iMbWidth = 1 + rand() % 128; |
| 601 | WelsDeblockingFilterSlice (&sCtx, pDeblockMb); | 601 | WelsDeblockingFilterSlice (&sCtx, pDeblockMb); |
| 602 | EXPECT_TRUE ((sDqLayer.iMbXyIndex + 1) == sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice); | 602 | EXPECT_TRUE ((sDqLayer.iMbXyIndex + 1) == sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice); |
| 603 | 603 | ||
| 604 | // (3) Special case, iTotalMbInCurSlice > pSps->uiTotalMbCount, JUST FOR TEST | 604 | // (3) Special case, iTotalMbInCurSlice >= pSps->uiTotalMbCount, JUST FOR TEST |
| 605 | sDqLayer.iMbX = sDqLayer.iMbY = 0; | 605 | sDqLayer.iMbX = sDqLayer.iMbY = 0; |
| 606 | sDqLayer.iMbXyIndex = 0; | 606 | sDqLayer.iMbXyIndex = 0; |
| 607 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = rand() % 256; | 607 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = 1 + rand() % 256; |
| 608 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = | 608 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = |
| 609 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount + rand() % 256; | 609 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount + rand() % 256; |
| 610 | sDqLayer.iMbWidth = 1 + rand() % 128; | 610 | sDqLayer.iMbWidth = 1 + rand() % 128; |
| 611 | WelsDeblockingFilterSlice (&sCtx, pDeblockMb); | 611 | WelsDeblockingFilterSlice (&sCtx, pDeblockMb); |
| 612 | EXPECT_TRUE ((sDqLayer.iMbXyIndex + 1) == | 612 | EXPECT_TRUE ((uint32_t) (sDqLayer.iMbXyIndex + 1) == |
| 613 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount); | 613 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount); |
| 614 | 614 | ||
| 615 | // (4) Special case, uiDisableDeblockingFilterIdc==1, disable deblocking | 615 | // (4) Special case, uiDisableDeblockingFilterIdc==1, disable deblocking |
| 616 | sDqLayer.iMbX = sDqLayer.iMbY = 0; | 616 | sDqLayer.iMbX = sDqLayer.iMbY = 0; |
| 617 | sDqLayer.iMbXyIndex = 0; | 617 | sDqLayer.iMbXyIndex = 0; |
| 618 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.uiDisableDeblockingFilterIdc = 1; | 618 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.uiDisableDeblockingFilterIdc = 1; |
| 619 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = rand() % 256; | 619 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice = 1 + rand() % 256; |
| 620 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = | 620 | sDqLayer.sLayerInfo.sSliceInLayer.sSliceHeaderExt.sSliceHeader.pSps->uiTotalMbCount = |
| 621 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; | 621 | sDqLayer.sLayerInfo.sSliceInLayer.iTotalMbInCurSlice; |
| 622 | sDqLayer.iMbWidth = 1 + rand() % 128; | 622 | sDqLayer.iMbWidth = 1 + rand() % 128; |
| @@ -796,20 +796,20 @@ TEST (DecoderDeblocking, DeblockingBsMarginalMBAvcbase) { · 173 unmodified lines | |||
| 796 | UT_DB_CLEAN_STATUS | 796 | UT_DB_CLEAN_STATUS |
| 797 | iNoZeroCount[0 * 24 + iCurrBlock] = 1; // Current MB_block position | 797 | iNoZeroCount[0 * 24 + iCurrBlock] = 1; // Current MB_block position |
| 798 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 798 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 799 | 0) == (2 << (iPos * 8))) << iEdge << " " << iPos << " NoZeroCount!=0"; | 799 | 0) == (2u << (iPos * 8))) << iEdge << " " << iPos << " NoZeroCount!=0"; |
| 800 | 800 | ||
| 801 | // (2) iEdge == 0, neighbor block NoZeroCount != 0 | 801 | // (2) iEdge == 0, neighbor block NoZeroCount != 0 |
| 802 | UT_DB_CLEAN_STATUS | 802 | UT_DB_CLEAN_STATUS |
| 803 | iNoZeroCount[1 * 24 + iNeighborBlock ] = 1; // Neighbor MB_block position | 803 | iNoZeroCount[1 * 24 + iNeighborBlock ] = 1; // Neighbor MB_block position |
| 804 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 804 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 805 | 0) == (2 << (iPos * 8))) << iEdge << " " << iPos << " NoZeroCount!=0"; | 805 | 0) == (2u << (iPos * 8))) << iEdge << " " << iPos << " NoZeroCount!=0"; |
| 806 | 806 | ||
| 807 | // (3) iEdge == 0, reference idx diff | 807 | // (3) iEdge == 0, reference idx diff |
| 808 | UT_DB_CLEAN_STATUS | 808 | UT_DB_CLEAN_STATUS |
| 809 | iLayerRefIndex[0][0 * 16 + iCurrBlock] = 0; | 809 | iLayerRefIndex[0][0 * 16 + iCurrBlock] = 0; |
| 810 | iLayerRefIndex[0][1 * 16 + iNeighborBlock] = 1; | 810 | iLayerRefIndex[0][1 * 16 + iNeighborBlock] = 1; |
| 811 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 811 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 812 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " Ref idx diff"; | 812 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " Ref idx diff"; |
| 813 | 813 | ||
| 814 | // (4) iEdge == 0, abs(mv diff) < 4 | 814 | // (4) iEdge == 0, abs(mv diff) < 4 |
| 815 | UT_DB_CLEAN_STATUS | 815 | UT_DB_CLEAN_STATUS |
| @@ -832,34 +832,34 @@ TEST (DecoderDeblocking, DeblockingBsMarginalMBAvcbase) { · 16 unmodified lines | |||
| 832 | UT_DB_CLEAN_STATUS | 832 | UT_DB_CLEAN_STATUS |
| 833 | iLayerMv[0][0 * 16 + iCurrBlock][0] = 4; | 833 | iLayerMv[0][0 * 16 + iCurrBlock][0] = 4; |
| 834 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 834 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 835 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; | 835 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; |
| 836 | 836 | ||
| 837 | UT_DB_CLEAN_STATUS | 837 | UT_DB_CLEAN_STATUS |
| 838 | iLayerMv[0][0 * 16 + iCurrBlock][1] = 4; | 838 | iLayerMv[0][0 * 16 + iCurrBlock][1] = 4; |
| 839 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 839 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 840 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; | 840 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; |
| 841 | 841 | ||
| 842 | UT_DB_CLEAN_STATUS | 842 | UT_DB_CLEAN_STATUS |
| 843 | iLayerMv[0][1 * 16 + iNeighborBlock][0] = 4; | 843 | iLayerMv[0][1 * 16 + iNeighborBlock][0] = 4; |
| 844 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 844 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 845 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; | 845 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; |
| 846 | 846 | ||
| 847 | UT_DB_CLEAN_STATUS | 847 | UT_DB_CLEAN_STATUS |
| 848 | iLayerMv[0][1 * 16 + iNeighborBlock][1] = 4; | 848 | iLayerMv[0][1 * 16 + iNeighborBlock][1] = 4; |
| 849 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 849 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 850 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; | 850 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == 4"; |
| 851 | 851 | ||
| 852 | UT_DB_CLEAN_STATUS | 852 | UT_DB_CLEAN_STATUS |
| 853 | iLayerMv[0][0 * 16 + iCurrBlock][0] = -2048; | 853 | iLayerMv[0][0 * 16 + iCurrBlock][0] = -2048; |
| 854 | iLayerMv[0][1 * 16 + iNeighborBlock][0] = 2047; | 854 | iLayerMv[0][1 * 16 + iNeighborBlock][0] = 2047; |
| 855 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 855 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 856 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == maximum"; | 856 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == maximum"; |
| 857 | 857 | ||
| 858 | UT_DB_CLEAN_STATUS | 858 | UT_DB_CLEAN_STATUS |
| 859 | iLayerMv[0][0 * 16 + iCurrBlock][1] = -2048; | 859 | iLayerMv[0][0 * 16 + iCurrBlock][1] = -2048; |
| 860 | iLayerMv[0][1 * 16 + iNeighborBlock][1] = 2047; | 860 | iLayerMv[0][1 * 16 + iNeighborBlock][1] = 2047; |
| 861 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, | 861 | EXPECT_TRUE (DeblockingBsMarginalMBAvcbase (&sDqLayer, iEdge, 1, |
| 862 | 0) == (1 << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == maximum"; | 862 | 0) == (1u << (iPos * 8))) << iEdge << " " << iPos << " diff_mv == maximum"; |
| 863 | } | 863 | } |
| 864 | } | 864 | } |
| 865 | } | 865 | } |
| @@ -951,4 +951,4 @@ TEST (Deblocking, WelsDeblockingMb) { · 85 unmodified lines | |||
| 951 | iQP = rand() % 16; | 951 | iQP = rand() % 16; |
| 952 | sDqLayer.pMbType[1] = 0x04; | 952 | sDqLayer.pMbType[1] = 0x04; |
| 953 | UT_DB_MACROBLOCK_TEST (0x03, iQP, 0, 0, 0, 0, 0, 0) | 953 | UT_DB_MACROBLOCK_TEST (0x03, iQP, 0, 0, 0, 0, 0, 0) |
| 954 | } | 954 | } |