Showing the changes to codec/decoder/core/src/decode_slice.cpp (1 of 1 file). Show all
Unified · Split
| @@ -517,7 +517,7 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 516 unmodified lines | ||
| 517 | 517 | //step 3: update QP and pNonZeroCount |
| 518 | 518 | pCurLayer->pLumaQp[iMbXy] = 0; |
| 519 | 519 | 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 | |
| 521 | 521 | return 0; |
| 522 | 522 | } else if (0 == uiMbType) { //reference to JM |
| 523 | 523 | ENFORCE_STACK_ALIGN_1D (int8_t, pIntraPredMode, 48, 16); |
| @@ -683,13 +683,6 @@ int32_t WelsActualDecodeMbCavlcISlice (PWelsDecoderContext pCtx) { · 159 unmodified lines | ||
| 683 | 683 | ST16 (&pCurLayer->pNzc[iMbXy][22], 0); |
| 684 | 684 | } |
| 685 | 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 | 688 | return 0; |
| @@ -827,10 +820,13 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 131 unmodified lines | ||
| 827 | 820 | //step 3: update QP and pNonZeroCount |
| 828 | 821 | pCurLayer->pLumaQp[iMbXy] = 0; |
| 829 | 822 | 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); | |
| 834 | 830 | return 0; |
| 835 | 831 | } else { |
| 836 | 832 | if (0 == uiMbType) { |
| @@ -883,6 +879,7 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 46 unmodified lines | ||
| 883 | 879 | ST32 (&pCurLayer->pNzc[iMbXy][4], 0); |
| 884 | 880 | ST32 (&pCurLayer->pNzc[iMbXy][8], 0); |
| 885 | 881 | ST32 (&pCurLayer->pNzc[iMbXy][12], 0); |
| 882 | + ST32 (&pCurLayer->pNzc[iMbXy][16], 0); | |
| 886 | 883 | ST32 (&pCurLayer->pNzc[iMbXy][20], 0); |
| 887 | 884 | if (pCurLayer->pCbp[iMbXy] == 0 && !IS_INTRA16x16 (pCurLayer->pMbType[iMbXy]) && !IS_I_BL (pCurLayer->pMbType[iMbXy])) { |
| 888 | 885 | pCurLayer->pLumaQp[iMbXy] = pSlice->iLastMbQp; |
| @@ -1004,13 +1001,6 @@ int32_t WelsActualDecodeMbCavlcPSlice (PWelsDecoderContext pCtx) { · 115 unmodified lines | ||
| 1004 | 1001 | ST32 (&pCurLayer->pNzc[iMbXy][20], 0); |
| 1005 | 1002 | } |
| 1006 | 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 | 1006 | return 0; |