remove BASE_MB related code
Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 5 files). Show all
Unified · Split
| @@ -444,7 +444,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 443 unmodified lines | ||
| 444 | 444 | int32_t iMbX = pCurLayer->iMbX; |
| 445 | 445 | int32_t iMbY = pCurLayer->iMbY; |
| 446 | 446 | int32_t iMbXy = pCurLayer->iMbXyIndex; |
| 447 | − int32_t iNMbMode, i; | |
| 447 | + int32_t i; | |
| 448 | 448 | uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0; |
| 449 | 449 | uint32_t uiCode; |
| 450 | 450 | int32_t iCode; |
| @@ -542,8 +542,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 91 unmodified lines | ||
| 542 | 542 | } |
| 543 | 543 | } |
| 544 | 544 | |
| 545 | − iNMbMode = BASE_MB; | |
| 546 | − | |
| 547 | 545 | memset (pCurLayer->pScaledTCoeff[iMbXy], 0, 384 * sizeof (pCurLayer->pScaledTCoeff[iMbXy][0])); |
| 548 | 546 | ST32 (&pCurLayer->pNzc[iMbXy][0], 0); |
| 549 | 547 | ST32 (&pCurLayer->pNzc[iMbXy][4], 0); |
| @@ -592,7 +590,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 42 unmodified lines | ||
| 592 | 590 | if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) { |
| 593 | 591 | //step1: Luma DC |
| 594 | 592 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16, |
| 595 | − g_kuiLumaDcZigzagScan, I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 593 | + g_kuiLumaDcZigzagScan, I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 596 | 594 | return -1;//abnormal |
| 597 | 595 | } |
| 598 | 596 | //step2: Luma AC |
| @@ -600,7 +598,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 1 unmodified line | ||
| 600 | 598 | for (i = 0; i < 16; i++) { |
| 601 | 599 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i, |
| 602 | 600 | iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1), |
| 603 | − I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 601 | + I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 604 | 602 | return -1;//abnormal |
| 605 | 603 | } |
| 606 | 604 | } |
| @@ -617,7 +615,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 10 unmodified lines | ||
| 617 | 615 | //Luma (DC and AC decoding together) |
| 618 | 616 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex, |
| 619 | 617 | iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart, |
| 620 | − LUMA_DC_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 618 | + LUMA_DC_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 621 | 619 | return -1;//abnormal |
| 622 | 620 | } |
| 623 | 621 | iIndex++; |
| @@ -639,7 +637,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 15 unmodified lines | ||
| 639 | 637 | for (i = 0; i < 2; i++) { //Cb Cr |
| 640 | 638 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, |
| 641 | 639 | 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6), |
| 642 | − iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 640 | + pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 643 | 641 | return -1;//abnormal |
| 644 | 642 | } |
| 645 | 643 | } |
| @@ -652,7 +650,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 6 unmodified lines | ||
| 652 | 650 | for (iId4x4 = 0; iId4x4 < 4; iId4x4++) { |
| 653 | 651 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex, |
| 654 | 652 | iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1), |
| 655 | − CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 653 | + CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 656 | 654 | return -1;//abnormal |
| 657 | 655 | } |
| 658 | 656 | iIndex++; |
| @@ -712,7 +710,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 53 unmodified lines | ||
| 712 | 710 | int32_t iMbY = pCurLayer->iMbY; |
| 713 | 711 | int32_t iMbXy = pCurLayer->iMbXyIndex; |
| 714 | 712 | |
| 715 | − int32_t iNMbMode, i; | |
| 713 | + int32_t i; | |
| 716 | 714 | uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0; |
| 717 | 715 | uint32_t uiCode; |
| 718 | 716 | int32_t iCode; |
| @@ -740,7 +738,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 21 unmodified lines | ||
| 740 | 738 | } |
| 741 | 739 | |
| 742 | 740 | if (pCurLayer->pResidualPredFlag[iMbXy] == 0) { |
| 743 | − iNMbMode = BASE_MB; | |
| 744 | 741 | pCurLayer->pInterPredictionDoneFlag[iMbXy] = 0; |
| 745 | 742 | } else { |
| 746 | 743 | WelsLog (pCtx, WELS_LOG_WARNING, "residual_pred_flag = 1 not supported.\n"); |
| @@ -817,7 +814,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 70 unmodified lines | ||
| 817 | 814 | if (pCtx->pParseIntra4x4ModeFunc (&sNeighAvail, pIntraPredMode, pBs, pCurLayer)) { |
| 818 | 815 | return -1; |
| 819 | 816 | } |
| 820 | − iNMbMode = BASE_MB; | |
| 821 | 817 | } else { //I_PCM exclude, we can ignore it |
| 822 | 818 | pCurLayer->pMbType[iMbXy] = MB_TYPE_INTRA16x16; |
| 823 | 819 | pCurLayer->pIntraPredMode[iMbXy][7] = (uiMbType - 1) & 3; |
| @@ -828,7 +824,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 4 unmodified lines | ||
| 828 | 824 | if (pCtx->pParseIntra16x16ModeFunc (&sNeighAvail, pBs, pCurLayer)) { |
| 829 | 825 | return -1; |
| 830 | 826 | } |
| 831 | − iNMbMode = BASE_MB; | |
| 832 | 827 | } |
| 833 | 828 | } |
| 834 | 829 | } |
| @@ -851,22 +846,20 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines | ||
| 851 | 846 | uiCbpL = pCurLayer->pCbp[iMbXy] & 15; |
| 852 | 847 | } |
| 853 | 848 | |
| 854 | − if (iNMbMode == BASE_MB) { | |
| 855 | − pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16); | |
| 856 | − pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8); | |
| 857 | − pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8); | |
| 849 | + pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16); | |
| 850 | + pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8); | |
| 851 | + pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8); | |
| 858 | 852 | |
| 859 | − ST32 (&pCurLayer->pNzc[iMbXy][0], 0); | |
| 860 | − ST32 (&pCurLayer->pNzc[iMbXy][4], 0); | |
| 861 | − ST32 (&pCurLayer->pNzc[iMbXy][8], 0); | |
| 862 | − ST32 (&pCurLayer->pNzc[iMbXy][12], 0); | |
| 863 | − ST32 (&pCurLayer->pNzc[iMbXy][16], 0); | |
| 864 | − ST32 (&pCurLayer->pNzc[iMbXy][20], 0); | |
| 865 | − if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) { | |
| 866 | − pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp; | |
| 867 | − pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] + | |
| 868 | − pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)]; | |
| 869 | − } | |
| 853 | + ST32 (&pCurLayer->pNzc[iMbXy][0], 0); | |
| 854 | + ST32 (&pCurLayer->pNzc[iMbXy][4], 0); | |
| 855 | + ST32 (&pCurLayer->pNzc[iMbXy][8], 0); | |
| 856 | + ST32 (&pCurLayer->pNzc[iMbXy][12], 0); | |
| 857 | + ST32 (&pCurLayer->pNzc[iMbXy][16], 0); | |
| 858 | + ST32 (&pCurLayer->pNzc[iMbXy][20], 0); | |
| 859 | + if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) { | |
| 860 | + pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp; | |
| 861 | + pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] + | |
| 862 | + pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)]; | |
| 870 | 863 | } |
| 871 | 864 | |
| 872 | 865 | if (pCurLayer->pCbp[iMbXy] || MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) { |
| @@ -901,7 +894,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 28 unmodified lines | ||
| 901 | 894 | if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) { |
| 902 | 895 | //step1: Luma DC |
| 903 | 896 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16, g_kuiLumaDcZigzagScan, |
| 904 | − I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 897 | + I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 905 | 898 | return -1;//abnormal |
| 906 | 899 | } |
| 907 | 900 | //step2: Luma AC |
| @@ -909,7 +902,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 1 unmodified line | ||
| 909 | 902 | for (i = 0; i < 16; i++) { |
| 910 | 903 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i, |
| 911 | 904 | iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1), |
| 912 | − I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 905 | + I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 913 | 906 | return -1;//abnormal |
| 914 | 907 | } |
| 915 | 908 | } |
| @@ -926,7 +919,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 10 unmodified lines | ||
| 926 | 919 | //Luma (DC and AC decoding together) |
| 927 | 920 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex, |
| 928 | 921 | iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart, LUMA_DC_AC, |
| 929 | − pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 922 | + pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) { | |
| 930 | 923 | return -1;//abnormal |
| 931 | 924 | } |
| 932 | 925 | iIndex++; |
| @@ -949,7 +942,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines | ||
| 949 | 942 | for (i = 0; i < 2; i++) { //Cb Cr |
| 950 | 943 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, |
| 951 | 944 | 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6), |
| 952 | − iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 945 | + pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 953 | 946 | return -1;//abnormal |
| 954 | 947 | } |
| 955 | 948 | } |
| @@ -962,7 +955,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 6 unmodified lines | ||
| 962 | 955 | for (iId4x4 = 0; iId4x4 < 4; iId4x4++) { |
| 963 | 956 | if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex, |
| 964 | 957 | iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1), |
| 965 | − CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 958 | + CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pChromaQp[iMbXy], pCtx)) { | |
| 966 | 959 | return -1;//abnormal |
| 967 | 960 | } |
| 968 | 961 | iIndex++; |