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
453 int32_t iMbX = pCurLayer->iMbX;453 int32_t iMbX = pCurLayer->iMbX;
454 int32_t iMbY = pCurLayer->iMbY;454 int32_t iMbY = pCurLayer->iMbY;
455 int32_t iMbXy = pCurLayer->iMbXyIndex;455 int32_t iMbXy = pCurLayer->iMbXyIndex;
456 int32_t iNMbMode, i;456 int32_t i;
457 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;457 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;
458 uint32_t uiCode;458 uint32_t uiCode;
459 int32_t iCode;459 int32_t iCode;
@@ -551,8 +551,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 91 unmodified lines
551 }551 }
552 }552 }
553 553
554 iNMbMode = BASE_MB;
555
556 memset (pCurLayer->pScaledTCoeff[iMbXy], 0, 384 * sizeof (pCurLayer->pScaledTCoeff[iMbXy][0]));554 memset (pCurLayer->pScaledTCoeff[iMbXy], 0, 384 * sizeof (pCurLayer->pScaledTCoeff[iMbXy][0]));
557 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);555 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
558 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);556 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
@@ -601,7 +599,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 42 unmodified lines
601 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {599 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
602 //step1: Luma DC600 //step1: Luma DC
603 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16,601 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)) {
605 return -1;//abnormal603 return -1;//abnormal
606 }604 }
607 //step2: Luma AC605 //step2: Luma AC
@@ -609,7 +607,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 1 unmodified line
609 for (i = 0; i < 16; i++) {607 for (i = 0; i < 16; i++) {
610 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,608 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,
611 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),609 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)) {
613 return -1;//abnormal611 return -1;//abnormal
614 }612 }
615 }613 }
@@ -626,7 +624,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 10 unmodified lines
626 //Luma (DC and AC decoding together)624 //Luma (DC and AC decoding together)
627 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,625 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
628 iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart,626 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)) {
630 return -1;//abnormal628 return -1;//abnormal
631 }629 }
632 iIndex++;630 iIndex++;
@@ -648,7 +646,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 15 unmodified lines
648 for (i = 0; i < 2; i++) { //Cb Cr646 for (i = 0; i < 2; i++) { //Cb Cr
649 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,647 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,
650 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6),648 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)) {
652 return -1;//abnormal650 return -1;//abnormal
653 }651 }
654 }652 }
@@ -661,7 +659,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 6 unmodified lines
661 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {659 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {
662 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,660 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
663 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),661 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)) {
665 return -1;//abnormal663 return -1;//abnormal
666 }664 }
667 iIndex++;665 iIndex++;
@@ -721,7 +719,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 53 unmodified lines
721 int32_t iMbY = pCurLayer->iMbY;719 int32_t iMbY = pCurLayer->iMbY;
722 int32_t iMbXy = pCurLayer->iMbXyIndex;720 int32_t iMbXy = pCurLayer->iMbXyIndex;
723 721
724 int32_t iNMbMode, i;722 int32_t i;
725 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;723 uint32_t uiMbType = 0, uiCbp = 0, uiCbpL = 0, uiCbpC = 0;
726 uint32_t uiCode;724 uint32_t uiCode;
727 int32_t iCode;725 int32_t iCode;
@@ -749,7 +747,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 21 unmodified lines
749 }747 }
750 748
751 if (pCurLayer->pResidualPredFlag[iMbXy] == 0) {749 if (pCurLayer->pResidualPredFlag[iMbXy] == 0) {
752 iNMbMode = BASE_MB;
753 pCurLayer->pInterPredictionDoneFlag[iMbXy] = 0;750 pCurLayer->pInterPredictionDoneFlag[iMbXy] = 0;
754 } else {751 } else {
755 WelsLog (pCtx, WELS_LOG_WARNING, "residual_pred_flag = 1 not supported.\n");752 WelsLog (pCtx, WELS_LOG_WARNING, "residual_pred_flag = 1 not supported.\n");
@@ -826,7 +823,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 70 unmodified lines
826 if (pCtx->pParseIntra4x4ModeFunc (&sNeighAvail, pIntraPredMode, pBs, pCurLayer)) {823 if (pCtx->pParseIntra4x4ModeFunc (&sNeighAvail, pIntraPredMode, pBs, pCurLayer)) {
827 return -1;824 return -1;
828 }825 }
829 iNMbMode = BASE_MB;
830 } else { //I_PCM exclude, we can ignore it826 } else { //I_PCM exclude, we can ignore it
831 pCurLayer->pMbType[iMbXy] = MB_TYPE_INTRA16x16;827 pCurLayer->pMbType[iMbXy] = MB_TYPE_INTRA16x16;
832 pCurLayer->pIntraPredMode[iMbXy][7] = (uiMbType - 1) & 3;828 pCurLayer->pIntraPredMode[iMbXy][7] = (uiMbType - 1) & 3;
@@ -837,7 +833,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 4 unmodified lines
837 if (pCtx->pParseIntra16x16ModeFunc (&sNeighAvail, pBs, pCurLayer)) {833 if (pCtx->pParseIntra16x16ModeFunc (&sNeighAvail, pBs, pCurLayer)) {
838 return -1;834 return -1;
839 }835 }
840 iNMbMode = BASE_MB;
841 }836 }
842 }837 }
843 }838 }
@@ -860,22 +855,20 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines
860 uiCbpL = pCurLayer->pCbp[iMbXy] & 15;855 uiCbpL = pCurLayer->pCbp[iMbXy] & 15;
861 }856 }
862 857
863 if (iNMbMode == BASE_MB) {858 pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16);
864 pCtx->sBlockFunc.pWelsBlockZero16x16Func (pCurLayer->pScaledTCoeff[iMbXy], 16);859 pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8);
865 pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256, 8);860 pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8);
866 pCtx->sBlockFunc.pWelsBlockZero8x8Func (pCurLayer->pScaledTCoeff[iMbXy] + 256 + 64, 8);
867 861
868 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);862 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
869 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);863 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
870 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);864 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
871 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);865 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
872 ST32 (&pCurLayer->pNzc[iMbXy][16], 0);866 ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
873 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);867 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
874 if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {868 if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {
875 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;869 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;
876 pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] +870 pCurLayer->pChromaQp[iMbXy] = g_kuiChromaQp[WELS_CLIP3 (pCurLayer->pLumaQp[iMbXy] +
877 pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)];871 pSliceHeader->pPps->iChromaQpIndexOffset, 0, 51)];
878 }
879 }872 }
880 873
881 if (pCurLayer->pCbp[iMbXy] || MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {874 if (pCurLayer->pCbp[iMbXy] || MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
@@ -910,7 +903,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 28 unmodified lines
910 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {903 if (MB_TYPE_INTRA16x16 == pCurLayer->pMbType[iMbXy]) {
911 //step1: Luma DC904 //step1: Luma DC
912 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, 0, 16, g_kuiLumaDcZigzagScan,905 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)) {
914 return -1;//abnormal907 return -1;//abnormal
915 }908 }
916 //step2: Luma AC909 //step2: Luma AC
@@ -918,7 +911,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 1 unmodified line
918 for (i = 0; i < 16; i++) {911 for (i = 0; i < 16; i++) {
919 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,912 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, i,
920 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),913 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)) {
922 return -1;//abnormal915 return -1;//abnormal
923 }916 }
924 }917 }
@@ -935,7 +928,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 10 unmodified lines
935 //Luma (DC and AC decoding together)928 //Luma (DC and AC decoding together)
936 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,929 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
937 iScanIdxEnd - iScanIdxStart + 1, g_kuiZigzagScan + iScanIdxStart, LUMA_DC_AC,930 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)) {
939 return -1;//abnormal932 return -1;//abnormal
940 }933 }
941 iIndex++;934 iIndex++;
@@ -958,7 +951,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 16 unmodified lines
958 for (i = 0; i < 2; i++) { //Cb Cr951 for (i = 0; i < 2; i++) { //Cb Cr
959 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,952 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs,
960 16 + (i << 2), 4, g_kuiChromaDcScan, CHROMA_DC, pCurLayer->pScaledTCoeff[iMbXy] + 256 + (i << 6),953 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)) {
962 return -1;//abnormal955 return -1;//abnormal
963 }956 }
964 }957 }
@@ -971,7 +964,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 6 unmodified lines
971 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {964 for (iId4x4 = 0; iId4x4 < 4; iId4x4++) {
972 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,965 if (WelsResidualBlockCavlc (pVlcTable, pNonZeroCount, pBs, iIndex,
973 iScanIdxEnd - WELS_MAX (iScanIdxStart, 1) + 1, g_kuiZigzagScan + WELS_MAX (iScanIdxStart, 1),966 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)) {
975 return -1;//abnormal968 return -1;//abnormal
976 }969 }
977 iIndex++;970 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