Changeset 459 in 3DVCSoftware for branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder
- Timestamp:
- 6 Jun 2013, 11:46:05 (11 years ago)
- Location:
- branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder/TDecCAVLC.cpp
r446 r459 953 953 if (uiCode) 954 954 { 955 #if H_3D 956 m_pcBitstream->readOutTrailingBits(); 957 958 for( Int i = 0; i <= pcVPS->getMaxLayers() - 1; i++ ) 959 { 960 if( pcVPS->getDepthId( i ) ) 961 { 962 READ_FLAG( uiCode, "vps_depth_modes_flag[i]" ); pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false ); 963 } 964 } 965 #else 955 966 while ( xMoreRbspData() ) 956 967 { 957 968 READ_FLAG( uiCode, "vps_extension2_data_flag"); 958 969 } 970 #endif 959 971 } 960 972 -
branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder/TDecCu.cpp
r324 r459 468 468 469 469 //===== get prediction signal ===== 470 #if H_3D_DIM 471 if( isDimMode( uiLumaPredMode ) ) 472 { 473 m_pcPrediction->predIntraLumaDepth( pcCU, uiAbsPartIdx, uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight ); 474 } 475 else 476 { 477 #endif 470 478 m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 479 #if H_3D_DIM 480 } 481 #endif 471 482 472 483 //===== inverse transform ===== … … 556 567 { 557 568 uiChromaPredMode = pcCU->getLumaIntraDir( 0 ); 569 #if H_3D_DIM 570 mapDepthModeToIntraDir( uiChromaPredMode ); 571 #endif 558 572 } 559 573 m_pcPrediction->predIntraChromaAng( pPatChroma, uiChromaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); -
branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder/TDecSbac.cpp
r324 r459 77 77 , m_cTransformSkipSCModel ( 1, 2, NUM_TRANSFORMSKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 78 78 , m_CUTransquantBypassFlagSCModel( 1, 1, NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX, m_contextModels + m_numContextModels, m_numContextModels) 79 #if H_3D_DIM 80 , m_cDepthIntraModeSCModel ( 1, 1, NUM_DEPTH_INTRA_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 81 , m_cDdcFlagSCModel ( 1, 1, NUM_DDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 82 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 83 #if H_3D_DIM_DMM 84 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 85 , m_cDmm2DataSCModel ( 1, 1, NUM_DMM2_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 86 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 87 #endif 88 #if H_3D_DIM_RBC 89 , m_cRbcDataSCModel ( 1, 1, NUM_RBC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 90 #endif 91 #endif 79 92 { 80 93 assert( m_numContextModels <= MAX_NUM_CTX_MOD ); … … 137 150 m_cTransformSkipSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_TRANSFORMSKIP_FLAG ); 138 151 m_CUTransquantBypassFlagSCModel.initBuffer( sliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); 152 153 #if H_3D_DIM 154 m_cDepthIntraModeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE ); 155 m_cDdcFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_FLAG ); 156 m_cDdcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_DATA ); 157 #if H_3D_DIM_DMM 158 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 159 m_cDmm2DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM2_DATA ); 160 m_cDmm3DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM3_DATA ); 161 #endif 162 #if H_3D_DIM_RBC 163 m_cRbcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_RBC_DATA ); 164 #endif 165 #endif 166 139 167 m_uiLastDQpNonZero = 0; 140 168 … … 181 209 m_cTransformSkipSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANSFORMSKIP_FLAG ); 182 210 m_CUTransquantBypassFlagSCModel.initBuffer( eSliceType, iQp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); 211 212 #if H_3D_DIM 213 m_cDepthIntraModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DEPTH_INTRA_MODE ); 214 m_cDdcFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_FLAG ); 215 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 216 #if H_3D_DIM_DMM 217 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 218 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA ); 219 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 220 #endif 221 #if H_3D_DIM_RBC 222 m_cRbcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_RBC_DATA ); 223 #endif 224 #endif 183 225 m_pcTDecBinIf->start(); 184 226 } … … 297 339 } 298 340 } 341 342 #if H_3D_DIM 343 Void TDecSbac::xReadExGolombLevel( UInt& ruiSymbol, ContextModel& rcSCModel ) 344 { 345 UInt uiSymbol; 346 UInt uiCount = 0; 347 do 348 { 349 m_pcTDecBinIf->decodeBin( uiSymbol, rcSCModel ); 350 uiCount++; 351 } 352 while( uiSymbol && ( uiCount != 13 ) ); 353 354 ruiSymbol = uiCount - 1; 355 356 if( uiSymbol ) 357 { 358 xReadEpExGolomb( uiSymbol, 0 ); 359 ruiSymbol += uiSymbol + 1; 360 } 361 362 return; 363 } 364 365 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt dimType ) 366 { 367 UInt absValDeltaDC = 0; 368 xReadExGolombLevel( absValDeltaDC, m_cDdcDataSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 369 rValDeltaDC = (Pel)absValDeltaDC; 370 371 if( rValDeltaDC != 0 ) 372 { 373 UInt uiSign; 374 m_pcTDecBinIf->decodeBinEP( uiSign ); 375 if ( uiSign ) 376 { 377 rValDeltaDC = -rValDeltaDC; 378 } 379 } 380 } 381 #if H_3D_DIM_DMM 382 Void TDecSbac::xParseDmm1WedgeIdx( UInt& ruiTabIdx, Int iNumBit ) 383 { 384 UInt uiSymbol, uiIdx = 0; 385 for( Int i = 0; i < iNumBit; i++ ) 386 { 387 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm1DataSCModel.get(0, 0, 0) ); 388 uiIdx += uiSymbol << i; 389 } 390 ruiTabIdx = uiIdx; 391 } 392 Void TDecSbac::xParseDmm2Offset( Int& riOffset ) 393 { 394 Int iDeltaEnd = 0; 395 if( DMM2_DELTAEND_MAX > 0 ) 396 { 397 UInt uiFlag = 0; 398 m_pcTDecBinIf->decodeBin( uiFlag, m_cDmm2DataSCModel.get(0, 0, 0) ); 399 400 if( uiFlag ) 401 { 402 UInt uiAbsValMinus1; 403 UInt uiSymbol; 404 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm2DataSCModel.get(0, 0, 0) ); uiAbsValMinus1 = uiSymbol; 405 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm2DataSCModel.get(0, 0, 0) ); uiAbsValMinus1 |= uiSymbol << 1; 406 iDeltaEnd = uiAbsValMinus1 + 1; 407 UInt uiSign; 408 m_pcTDecBinIf->decodeBinEP( uiSign ); 409 if( uiSign ) 410 { 411 iDeltaEnd = -iDeltaEnd; 412 } 413 } 414 } 415 riOffset = iDeltaEnd; 416 } 417 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 418 { 419 UInt uiSymbol, uiIdx = 0; 420 for( Int i = 0; i < iNumBit; i++ ) 421 { 422 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm3DataSCModel.get(0, 0, 0) ); 423 uiIdx += uiSymbol << i; 424 } 425 ruiIntraIdx = uiIdx; 426 } 427 #endif 428 #if H_3D_DIM_RBC 429 Void TDecSbac::xParseRbcEdge( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 430 { 431 UInt uiSymbol = 0; 432 433 // 1. Top(0) or Left(1) 434 UChar ucLeft; 435 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 436 ucLeft = uiSymbol; 437 438 // 2. Start position (lowest bit first) 439 UChar ucStart = 0; 440 for( UInt ui = 0; ui < 6 - uiDepth; ui++ ) 441 { 442 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 443 ucStart |= (uiSymbol << ui); 444 } 445 446 // 3. Number of edges 447 UChar ucMax = 0; 448 for( UInt ui = 0; ui < 7 - uiDepth; ui++ ) 449 { 450 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 451 ucMax |= (uiSymbol << ui); 452 } 453 ucMax++; // +1 454 455 // 4. Edges 456 UChar* pucSymbolList = (UChar*) xMalloc( UChar, 256 * RBC_MAX_EDGE_NUM_PER_4x4 ); 457 for( Int iPtr = 0; iPtr < ucMax; iPtr++ ) 458 { 459 UChar ucEdge = 0; 460 UInt uiReorderEdge = 0; 461 for( UInt ui = 0; ui < 6; ui++ ) 462 { 463 m_pcTDecBinIf->decodeBin( uiSymbol, m_cRbcDataSCModel.get( 0, 0, 0 ) ); 464 ucEdge <<= 1; 465 ucEdge |= uiSymbol; 466 if( uiSymbol == 0 ) 467 break; 468 } 469 470 switch( ucEdge ) 471 { 472 case 0 : // "0" 473 uiReorderEdge = 0; 474 break; 475 case 2 : // "10" 476 uiReorderEdge = 1; 477 break; 478 case 6 : // "110" 479 uiReorderEdge = 2; 480 break; 481 case 14 : // "1110" 482 uiReorderEdge = 3; 483 break; 484 case 30 : // "11110" 485 uiReorderEdge = 4; 486 break; 487 case 62 : // "111110" 488 uiReorderEdge = 5; 489 break; 490 case 63 : // "111111" 491 uiReorderEdge = 6; 492 break; 493 default : 494 printf("parseIntraEdgeChain: error (unknown code %d)\n",ucEdge); 495 assert(false); 496 break; 497 } 498 pucSymbolList[iPtr] = uiReorderEdge; 499 } 500 ///////////////////// 501 // Edge Reconstruction 502 Bool* pbRegion = pcCU->getEdgePartition( uiAbsPartIdx ); 503 pcCU->reconPartition( uiAbsPartIdx, uiDepth, ucLeft == 1, ucStart, ucMax, pucSymbolList, pbRegion ); 504 xFree( pucSymbolList ); 505 } 506 #endif 507 #endif 299 508 300 509 /** Parse I_PCM information. … … 619 828 for (j=0;j<partNum;j++) 620 829 { 830 #if H_3D_DIM 831 if( pcCU->getSlice()->getVpsDepthModesFlag() ) 832 { 833 parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth ); 834 } 835 if( pcCU->getLumaIntraDir( absPartIdx+partOffset*j ) < NUM_INTRA_MODE ) 836 #if H_3D_DIM_SDC 837 if( !pcCU->getSDCFlag( absPartIdx+partOffset*j ) ) 838 #endif 839 { 840 #endif 621 841 m_pcTDecBinIf->decodeBin( symbol, m_cCUIntraPredSCModel.get( 0, 0, 0) ); 622 842 mpmPred[j] = symbol; 843 #if H_3D_DIM 844 } 845 #endif 623 846 } 624 847 for (j=0;j<partNum;j++) 625 848 { 849 #if H_3D_DIM 850 if( pcCU->getLumaIntraDir( absPartIdx+partOffset*j ) < NUM_INTRA_MODE ) 851 #if H_3D_DIM_SDC 852 if( !pcCU->getSDCFlag( absPartIdx+partOffset*j ) ) 853 #endif 854 { 855 #endif 626 856 Int preds[3] = {-1, -1, -1}; 627 857 Int predNum = pcCU->getIntraDirLumaPredictor(absPartIdx+partOffset*j, preds); … … 661 891 } 662 892 pcCU->setLumaIntraDirSubParts( (UChar)intraPredMode, absPartIdx+partOffset*j, depth ); 893 #if H_3D_DIM 894 } 895 #endif 663 896 } 664 897 } … … 687 920 return; 688 921 } 922 923 #if H_3D_DIM 924 Void TDecSbac::parseIntraDepth( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) 925 { 926 parseIntraDepthMode( pcCU, absPartIdx, depth ); 927 928 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 929 UInt dimType = getDimType( dir ); 930 931 switch( dimType ) 932 { 933 #if H_3D_DIM_DMM 934 case( DMM1_IDX ): 935 { 936 UInt uiTabIdx = 0; 937 xParseDmm1WedgeIdx( uiTabIdx, g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 938 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 939 } break; 940 case( DMM2_IDX ): 941 { 942 Int iOffset = 0; 943 xParseDmm2Offset( iOffset ); 944 pcCU->setDmm2DeltaEndSubParts( iOffset, absPartIdx, depth ); 945 } break; 946 case( DMM3_IDX ): 947 { 948 UInt uiIntraIdx = 0; 949 xParseDmm3WedgeIdx( uiIntraIdx, g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 950 pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth ); 951 } break; 952 case( DMM4_IDX ): break; 953 #endif 954 #if H_3D_DIM_RBC 955 case( RBC_IDX ): 956 { 957 xParseRbcEdge( pcCU, absPartIdx, depth ); 958 } break; 959 #endif 960 default: break; 961 } 962 963 #if H_3D_DIM_SDC 964 if( pcCU->getSDCAvailable(absPartIdx) && pcCU->getSDCFlag(absPartIdx) ) // sdcFlag 965 { 966 //assert(pcCU->getPartitionSize(uiAbsPartIdx)!=SIZE_NxN); 967 //pcCU->setTrIdxSubParts(0, uiAbsPartIdx, uiDepth); 968 //pcCU->setCbfSubParts(1, 1, 1, uiAbsPartIdx, uiDepth); 969 970 //UInt uiNumSegments = ( uiDir == DC_IDX || uiDir == PLANAR_IDX )? 1 : 2; 971 //for (int uiSeg=0; uiSeg<uiNumSegments; uiSeg++) 972 //{ 973 // parseSDCResidualData(pcCU, uiAbsPartIdx, uiDepth, uiSeg); 974 //} 975 } 976 else 977 { 978 #endif 979 if( dimType < DIM_NUM_TYPE ) 980 { 981 UInt symbol; 982 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 983 if( symbol ) 984 { 985 dir += symbol; 986 for( UInt segment = 0; segment < 2; segment++ ) 987 { 988 Pel valDeltaDC = 0; 989 xParseDimDeltaDC( valDeltaDC, dimType ); 990 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 991 } 992 } 993 } 994 #if H_3D_DIM_SDC 995 } 996 #endif 997 998 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); 999 } 1000 1001 Void TDecSbac::parseIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) 1002 { 1003 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); 1004 UInt dir = 0; 1005 Bool sdcFlag = 0; 1006 UInt symbol = 1; 1007 UInt modeCode = 0 ; 1008 UInt binNum = 0; 1009 UInt ctxDepthMode = 0; 1010 1011 if( puIdx == 2 ) 1012 { 1013 while( binNum < 2 && symbol ) 1014 { 1015 ctxDepthMode = puIdx*3 + binNum; 1016 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1017 modeCode = (modeCode<<1) + symbol; 1018 binNum++; 1019 } 1020 if( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1021 else if( modeCode == 2 ) { dir = 0; sdcFlag = 0;} 1022 else if( modeCode == 3 ) { dir = DC_IDX; sdcFlag = 1;} 1023 } 1024 else if( puIdx == 0 ) 1025 { 1026 while( binNum < 3 && symbol ) 1027 { 1028 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); 1029 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1030 modeCode = (modeCode<<1) + symbol; 1031 binNum++; 1032 } 1033 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1034 else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1035 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1036 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1037 } 1038 else 1039 { 1040 ctxDepthMode = puIdx*3 ; 1041 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1042 modeCode = (modeCode<<1) + symbol; 1043 if( !symbol ) 1044 { 1045 ctxDepthMode = puIdx*3 + 1; 1046 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1047 modeCode = (modeCode<<1) + symbol; 1048 if( symbol ) 1049 { 1050 ctxDepthMode = puIdx*3 + 2; 1051 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1052 modeCode = (modeCode<<1) + symbol; 1053 } 1054 } 1055 else 1056 { 1057 ctxDepthMode = puIdx*3 + 1; 1058 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1059 modeCode = (modeCode<<1) + symbol; 1060 if( !symbol ) 1061 { 1062 ctxDepthMode = puIdx*3 + 2; 1063 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1064 modeCode = (modeCode<<1) + symbol; 1065 } 1066 else 1067 { 1068 binNum = 0; 1069 while( symbol && binNum < 3 ) 1070 { 1071 ctxDepthMode = puIdx*3 + 2; 1072 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1073 modeCode = (modeCode<<1) + symbol; 1074 binNum++; 1075 } 1076 } 1077 } 1078 if( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1079 else if( modeCode == 2 ) { dir = 5; sdcFlag = 0;} 1080 else if( modeCode == 3 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1081 else if( modeCode == 4 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1082 else if( modeCode == 5 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1083 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1084 else if( modeCode == 14 ) { dir = DC_IDX; sdcFlag = 1;} 1085 else if( modeCode == 30 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1086 else if( modeCode == 31 ) { dir = (2*DMM2_IDX+DIM_OFFSET); sdcFlag = 0;} 1087 } 1088 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); 1089 #if H_3D_DIM_SDC 1090 pcCU->setSDCFlagSubParts( sdcFlag, absPartIdx, 0, depth ); 1091 #endif 1092 } 1093 #endif 689 1094 690 1095 Void TDecSbac::parseInterDir( TComDataCU* pcCU, UInt& ruiInterDir, UInt uiAbsPartIdx ) -
branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder/TDecSbac.h
r446 r459 97 97 Void xReadEpExGolomb ( UInt& ruiSymbol, UInt uiCount ); 98 98 Void xReadCoefRemainExGolomb ( UInt &rSymbol, UInt &rParam ); 99 #if H_3D_DIM 100 Void xReadExGolombLevel ( UInt& ruiSymbol, ContextModel& rcSCModel ); 101 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt dimType ); 102 #if H_3D_DIM_DMM 103 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit ); 104 Void xParseDmm2Offset ( Int& riOffset ); 105 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit ); 106 #endif 107 #if H_3D_DIM_RBC 108 Void xParseRbcEdge ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 109 #endif 110 #endif 99 111 private: 100 112 TComInputBitstream* m_pcBitstream; … … 115 127 Void parseIntraDirChroma( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 116 128 129 #if H_3D_DIM 130 Void parseIntraDepth ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ); 131 Void parseIntraDepthMode ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ); 132 #endif 133 117 134 Void parseInterDir ( TComDataCU* pcCU, UInt& ruiInterDir, UInt uiAbsPartIdx ); 118 135 Void parseRefFrmIdx ( TComDataCU* pcCU, Int& riRefFrmIdx, RefPicList eRefList ); … … 171 188 ContextModel3DBuffer m_cTransformSkipSCModel; 172 189 ContextModel3DBuffer m_CUTransquantBypassFlagSCModel; 190 191 #if H_3D_DIM 192 ContextModel3DBuffer m_cDepthIntraModeSCModel; 193 ContextModel3DBuffer m_cDdcFlagSCModel; 194 ContextModel3DBuffer m_cDdcDataSCModel; 195 #if H_3D_DIM_DMM 196 ContextModel3DBuffer m_cDmm1DataSCModel; 197 ContextModel3DBuffer m_cDmm2DataSCModel; 198 ContextModel3DBuffer m_cDmm3DataSCModel; 199 #endif 200 #if H_3D_DIM_RBC 201 ContextModel3DBuffer m_cRbcDataSCModel; 202 #endif 203 #endif 173 204 }; 174 205 -
branches/HTM-DEV-0.3-dev1/source/Lib/TLibDecoder/TDecTop.cpp
r446 r459 894 894 895 895 #endif 896 #if H_3D 897 pcSlice->setPicLists( m_ivPicLists ); 898 #endif 896 899 // For generalized B 897 900 // note: maybe not existed case (always L0 is copied to L1 if L1 is empty)
Note: See TracChangeset for help on using the changeset viewer.