History

remove BASE_MB related code

huili2 committed 12 years ago

Commit b1f596f1 parent 8492aac5 files · +37 −70Browse files

Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 5 files). Show all

Unified · Split

codec/decoder/core/src/decode_slice.cpp+25−32
@@ -453,7 +453,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 452 unmodified lines
453453 int32_t iMbX = pCurLayer->iMbX;
454454 int32_t iMbY = pCurLayer->iMbY;
455455 int32_t iMbXy = pCurLayer->iMbXyIndex;
456− int32_t iNMbMode, i;
456+ int32_t i;
457457 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;
458458 uint32_t uiCode;
459459 int32_t iCode;
@@ -551,8 +551,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 91 unmodified lines
551551 }
552552 }
553553
554− iNMbMode = BASE_MB;
555−
556554 memset (pCurLayer->pScaledTCoeff[iMbXy], 0, 384 * sizeof (pCurLayer->pScaledTCoeff[iMbXy][0]));
557555 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
558556 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
@@ -601,7 +599,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 42 unmodified lines
601599 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
602600 //step1: Luma DC
603601 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16,
604− g_kuiLumaDcZigzagScan, I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
602+ g_kuiLumaDcZigzagScan, I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer->pLumaQp[iMbXy], pCtx)) {
605603 return -1;//abnormal
606604 }
607605 //step2: Luma AC
@@ -609,7 +607,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 1 unmodified line
609607 for (i = 0; i < 16; i++) {
610608 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,
611609 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),
612− I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
610+ I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) {
613611 return -1;//abnormal
614612 }
615613 }
@@ -626,7 +624,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 10 unmodified lines
626624 //Luma (DC and AC decoding together)
627625 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
628626 iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart,
629− LUMA_DC_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
627+ LUMA_DC_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) {
630628 return -1;//abnormal
631629 }
632630 iIndex++;
@@ -648,7 +646,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 15 unmodified lines
648646 for (i = 0; i < 2; i++) { //Cb Cr
649647 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,
650648 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6),
651− iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) {
649+ pCurLayer->pChromaQp[iMbXy], pCtx)) {
652650 return -1;//abnormal
653651 }
654652 }
@@ -661,7 +659,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 6 unmodified lines
661659 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {
662660 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
663661 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),
664− CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) {
662+ CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pChromaQp[iMbXy], pCtx)) {
665663 return -1;//abnormal
666664 }
667665 iIndex++;
@@ -721,7 +719,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 53 unmodified lines
721719 int32_t iMbY = pCurLayer->iMbY;
722720 int32_t iMbXy = pCurLayer->iMbXyIndex;
723721
724− int32_t iNMbMode, i;
722+ int32_t i;
725723 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;
726724 uint32_t uiCode;
727725 int32_t iCode;
@@ -749,7 +747,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 21 unmodified lines
749747 }
750748
751749 if (pCurLayer->pResidualPredFlag[iMbXy] == 0) {
752− iNMbMode = BASE_MB;
753750 pCurLayer->pInterPredictionDoneFlag[iMbXy] = 0;
754751 } else {
755752 WelsLog (pCtx, WELS_LOG_WARNING, "residual_pred_flag = 1 not supported.\n");
@@ -826,7 +823,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 70 unmodified lines
826823 if (pCtx->pParseIntra4x4ModeFunc (&sNeighAvail, pIntraPredMode, pBs, pCurLayer)) {
827824 return -1;
828825 }
829− iNMbMode = BASE_MB;
830826 } else { //I_PCM exclude, we can ignore it
831827 pCurLayer->pMbType[iMbXy] = MB_TYPE_INTRA16x16;
832828 pCurLayer->pIntraPredMode[iMbXy][7] = (uiMbType - 1) & 3;
@@ -837,7 +833,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 4 unmodified lines
837833 if (pCtx->pParseIntra16x16ModeFunc (&sNeighAvail, pBs, pCurLayer)) {
838834 return -1;
839835 }
840− iNMbMode = BASE_MB;
841836 }
842837 }
843838 }
@@ -860,22 +855,20 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines
860855 uiCbpL = pCurLayer->pCbp[iMbXy] & 15;
861856 }
862857
863− if (iNMbMode == BASE_MB) {
864− pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16);
865− pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8);
866− pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8);
858+ pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16);
859+ pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8);
860+ pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8);
867861
868− ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
869− ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
870− ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
871− ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
872− ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
873− ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
874− if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {
875− pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;
876− pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] +
877− pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)];
878− }
862+ ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
863+ ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
864+ ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
865+ ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
866+ ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
867+ ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
868+ if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {
869+ pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;
870+ pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] +
871+ pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)];
879872 }
880873
881874 if (pCurLayer->pCbp[iMbXy] || MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
@@ -910,7 +903,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 28 unmodified lines
910903 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
911904 //step1: Luma DC
912905 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16, g_kuiLumaDcZigzagScan,
913− I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
906+ I16_LUMA_DC, pCurLayer->pScaledTCoeff[iMbXy], pCurLayer->pLumaQp[iMbXy], pCtx)) {
914907 return -1;//abnormal
915908 }
916909 //step2: Luma AC
@@ -918,7 +911,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 1 unmodified line
918911 for (i = 0; i < 16; i++) {
919912 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,
920913 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),
921− I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
914+ I16_LUMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (i << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) {
922915 return -1;//abnormal
923916 }
924917 }
@@ -935,7 +928,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 10 unmodified lines
935928 //Luma (DC and AC decoding together)
936929 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
937930 iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart, LUMA_DC_AC,
938− pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pLumaQp[iMbXy], pCtx)) {
931+ pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pLumaQp[iMbXy], pCtx)) {
939932 return -1;//abnormal
940933 }
941934 iIndex++;
@@ -958,7 +951,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines
958951 for (i = 0; i < 2; i++) { //Cb Cr
959952 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,
960953 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6),
961− iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) {
954+ pCurLayer->pChromaQp[iMbXy], pCtx)) {
962955 return -1;//abnormal
963956 }
964957 }
@@ -971,7 +964,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 6 unmodified lines
971964 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {
972965 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
973966 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),
974− CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), iNMbMode, pCurLayer->pChromaQp[iMbXy], pCtx)) {
967+ CHROMA_AC, pCurLayer->pScaledTCoeff[iMbXy] + (iIndex << 4), pCurLayer->pChromaQp[iMbXy], pCtx)) {
975968 return -1;//abnormal
976969 }
977970 iIndex++;

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