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
517517 //step 3: update QP and pNonZeroCount
518518 pCurLayer->pLumaQp[iMbXy] = 0;
519519 pCurLayer->pChromaQp[iMbXy] = 0;
520− memset (pCurLayer->pNzc[iMbXy], 16, sizeof (pCurLayer->pNzc[iMbXy])); //JVT-x201wcm1.doc, page229, 2009.10.23
520+ memset (pCurLayer->pNzc[iMbXy], 16, sizeof (pCurLayer->pNzc[iMbXy])); //Rec. 9.2.1 for PCM, nzc=16
521521 return 0;
522522 } else if (0 == uiMbType) { //reference to JM
523523 ENFORCE_STACK_ALIGN_1D (int8_t, pIntraPredMode, 48, 16);
@@ -683,13 +683,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 159 unmodified lines
683683 ST16 (&pCurLayer->pNzc[iMbXy][22], 0);
684684 }
685685 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);
693686 }
694687
695688 return 0;
@@ -827,10 +820,13 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 131 unmodified lines
827820 //step 3: update QP and pNonZeroCount
828821 pCurLayer->pLumaQp[iMbXy] = 0;
829822 pCurLayer->pChromaQp[iMbXy] = 0;
830− ST32 (&pCurLayer->pNzc[iMbXy][0], 0);
831− ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
832− ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
833− ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
823+ //Rec. 9.2.1 for PCM, nzc=16
824+ ST32 (&pCurLayer->pNzc[iMbXy][0], 0x10101010);
825+ ST32 (&pCurLayer->pNzc[iMbXy][4], 0x10101010);
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);
834830 return 0;
835831 } else {
836832 if (0 == uiMbType) {
@@ -883,6 +879,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 46 unmodified lines
883879 ST32 (&pCurLayer->pNzc[iMbXy][4], 0);
884880 ST32 (&pCurLayer->pNzc[iMbXy][8], 0);
885881 ST32 (&pCurLayer->pNzc[iMbXy][12], 0);
882+ ST32 (&pCurLayer->pNzc[iMbXy][16], 0);
886883 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
887884 if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) {
888885 pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp;
@@ -1004,13 +1001,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 115 unmodified lines
10041001 ST32 (&pCurLayer->pNzc[iMbXy][20], 0);
10051002 }
10061003 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);
10141004 }
10151005
10161006 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