History

nzc bug fix and clear

Licai Guo committed 12 years ago

Commit 5bffb621 parent 8962b7c1 file · +9 −19Browse files

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

Unified · Split

codec/decoder/core/src/decode_slice.cpp+9−19
@@ -517,7 +517,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 516 unmodified lines
517 //step 3: update QP and pNonZeroCount517 //step 3: update QP and pNonZeroCount
518 pCurLayer->pLumaQp[iMbXy] = 0;518 pCurLayer->pLumaQp[iMbXy] = 0;
519 pCurLayer->pChromaQp[iMbXy] = 0;519 pCurLayer->pChromaQp[iMbXy] = 0;
520 memset (pCurLayer->pNzc[iMbXy], 16, sizeof (pCurLayer->pNzc[iMbXy])); //JVT-x201wcm1.doc, page229, 2009.10.23520 memset (pCurLayer->pNzc[iMbXy], 16, sizeof (pCurLayer->pNzc[iMbXy])); //Rec. 9.2.1 for PCM, nzc=16
521 return 0;521 return 0;
522 } else if (0 == uiMbType) { //reference to JM522 } else if (0 == uiMbType) { //reference to JM
523 ENFORCE_STACK_ALIGN_1D (int8_t, pIntraPredMode, 48, 16);523 ENFORCE_STACK_ALIGN_1D (int8_t, pIntraPredMode, 48, 16);
@@ -683,13 +683,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 159 unmodified lines
683 ST16 (&pCurLayer->pNzc[iMbXy][22], 0);683 ST16 (&pCurLayer->pNzc[iMbXy][22], 0);
684 }684 }
685 BsEndCavlc (pBs);685 BsEndCavlc (pBs);
686 } else {
687 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
688 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
689 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
690 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
691 ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
692 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
693 }686 }
694 687
695 return 0;688 return 0;
@@ -827,10 +820,13 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 131 unmodified lines
827 //step 3: update QP and pNonZeroCount820 //step 3: update QP and pNonZeroCount
828 pCurLayer->pLumaQp[iMbXy] = 0;821 pCurLayer->pLumaQp[iMbXy] = 0;
829 pCurLayer->pChromaQp[iMbXy] = 0;822 pCurLayer->pChromaQp[iMbXy] = 0;
830 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);823 //Rec. 9.2.1 for PCM, nzc=16
831 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);824 ST32 (&pCurLayer->pNzc[iMbXy][0], 0x10101010);
832 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);825 ST32 (&pCurLayer->pNzc[iMbXy][4], 0x10101010);
833 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);826 ST32 (&pCurLayer->pNzc[iMbXy][8], 0x10101010);
827 ST32 (&pCurLayer->pNzc[iMbXy][12], 0x10101010);
828 ST32 (&pCurLayer->pNzc[iMbXy][16], 0x10101010);
829 ST32 (&pCurLayer->pNzc[iMbXy][20], 0x10101010);
834 return 0;830 return 0;
835 } else {831 } else {
836 if (0 == uiMbType) {832 if (0 == uiMbType) {
@@ -883,6 +879,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 46 unmodified lines
883 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);879 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
884 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);880 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
885 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);881 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
882 ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
886 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);883 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
887 if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {884 if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {
888 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;885 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;
@@ -1004,13 +1001,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 115 unmodified lines
1004 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);1001 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
1005 }1002 }
1006 BsEndCavlc (pBs);1003 BsEndCavlc (pBs);
1007 } else {
1008 ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
1009 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
1010 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
1011 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
1012 ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
1013 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
1014 }1004 }
1015 1005
1016 return 0;1006 return 0;

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