Changeset 210 in 3DVCSoftware for trunk/source/Lib/TLibDecoder
- Timestamp:
- 11 Dec 2012, 18:52:43 (12 years ago)
- Location:
- trunk/source/Lib/TLibDecoder
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/NALread.cpp
r77 r210 132 132 #endif 133 133 134 #if QC_MVHEVC_B0046 135 //nalu.m_layerId = bs.read(6); 136 nalu.m_layerId = bs.read(5); 137 nalu.m_temporalId = bs.read(3) - 1; 138 #else 134 139 #if H0388 135 140 nalu.m_temporalId = bs.read(3); … … 145 150 if ( nalu.m_temporalId ) 146 151 { 152 #if QC_REM_IDV_B0046 153 assert( nalu.m_nalUnitType != NAL_UNIT_CODED_SLICE_CRA && nalu.m_nalUnitType != NAL_UNIT_CODED_SLICE_IDR); 154 #else 147 155 assert( nalu.m_nalUnitType != NAL_UNIT_CODED_SLICE_CRA && nalu.m_nalUnitType != NAL_UNIT_CODED_SLICE_IDR && nalu.m_nalUnitType != NAL_UNIT_CODED_SLICE_IDV ); 156 #endif 148 157 } 149 158 #endif … … 154 163 case NAL_UNIT_CODED_SLICE_IDR: 155 164 #if H0566_TLA 165 #if !QC_REM_IDV_B0046 156 166 case NAL_UNIT_CODED_SLICE_IDV: 167 #endif 157 168 case NAL_UNIT_CODED_SLICE_CRA: 158 169 case NAL_UNIT_CODED_SLICE_TLA: … … 175 186 if (nalu.m_temporalId == 0) 176 187 { 188 #if QC_REM_IDV_B0046 189 assert(nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR); 190 #else 177 191 assert(nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDV ); 192 #endif 178 193 } 179 194 else … … 190 205 } 191 206 #endif 207 #endif 192 208 } 193 209 //! \} -
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r189 r210 1338 1338 } 1339 1339 } 1340 1340 #if QC_MVHEVC_B0046 1341 Void TDecCavlc::parseVPS(TComVPS* pcVPS) 1342 { 1343 UInt uiCode; 1344 READ_CODE( 4, uiCode, "video_parameter_set_id" ); pcVPS->setVPSId( uiCode ); 1345 READ_FLAG( uiCode, "temporal_id_nesting_flag" ); pcVPS->setTemporalNestingFlag( uiCode ? true:false ); 1346 READ_CODE( 2, uiCode, "vps_reserved_zero_2bits" ); assert( !uiCode ); 1347 READ_CODE( 6, uiCode, "vps_max_layers_minus1" ); pcVPS->setMaxLayers( uiCode + 1 ); 1348 READ_CODE( 3, uiCode, "vps_max_sub_layers_minus1" ); pcVPS->setMaxTLayers( uiCode + 1 ); 1349 READ_CODE( 12, uiCode, "vps_extension_offset" ); assert( !uiCode ); 1350 for(UInt i = 0; i <= pcVPS->getMaxTLayers()-1; i++) 1351 { 1352 READ_UVLC( uiCode, "max_dec_pic_buffering[i]" ); pcVPS->setMaxDecPicBuffering( uiCode, i ); 1353 READ_UVLC( uiCode, "num_reorder_pics[i]" ); pcVPS->setNumReorderPics( uiCode, i ); 1354 READ_UVLC( uiCode, "max_latency_increase[i]" ); pcVPS->setMaxLatencyIncrease( uiCode, i ); 1355 } 1356 READ_UVLC( uiCode, "vps_num_hrd_parameters" ); pcVPS->setNumHRDParameters(uiCode); 1357 assert(pcVPS->getNumHRDParameters()==0); 1358 for ( UInt i = 0; i < pcVPS->getNumHRDParameters(); i ++) 1359 { 1360 // if( i > 0 ) 1361 //{ 1362 // READ_UVLC (0, "op_num_layer_id_values_minus1[ opIdx ]"); 1363 // for( i = 0; i <= op_num_layer_id_values_minus1[ opIdx ]; i++ ) 1364 // READ_UVLC(0, 6, "op_layer_id[ opIdx ][ i ]"); 1365 //} 1366 //hrd_parameters( i = = 0, vps_max_sub_layers_minus1 ); 1367 } 1368 1369 READ_CODE( 1, uiCode, "bit_equal_to_one" ); assert( uiCode ); 1370 //vps_extension_byte_alignment_reserved_one_bit 1371 xReadVPSAlignOne(); 1372 READ_CODE( 8, uiCode, "num_additional_layer_operation_points" ); pcVPS->setNumAddiLayerOperationPoints( uiCode ); 1373 READ_CODE( 8, uiCode, "num_additional_profile_level_sets" ); pcVPS->setNumAddiProLevelSets( uiCode); 1374 1375 1376 for(UInt i=0; i <= pcVPS->getMaxLayers()-1; i++) 1377 { 1378 READ_CODE( 4, uiCode, "num_types_zero_4bits[i]" ); assert( !uiCode ); 1379 READ_CODE( 4, uiCode, "type_zero_4bits[i]" ); assert( !uiCode ); 1380 READ_CODE( 8, uiCode, "view_id[i]" ); pcVPS->setViewId(uiCode, i); 1381 // WRITE_SVLC( pcVPS->getViewOrderIdx(i), "view_order_idx[i]" ); 1382 if(i) 1383 { 1384 READ_CODE( 6, uiCode, "num_direct_ref_layers[ i ]" ); pcVPS->setNumDirectRefLayer(uiCode, i); 1385 for (UInt j = 0; j< pcVPS->getNumDirectRefLayer(i); j++) 1386 { 1387 READ_CODE( 6, uiCode, "ref_layer_id[i][j]" ); pcVPS->setDirectRefLayerId (uiCode, i, j); 1388 } 1389 } 1390 } 1391 for( UInt i=1; i<=pcVPS->getNumAddiProLevelSets(); i++) 1392 { 1393 //profile_tier_level 1394 } 1395 for( UInt i=1; i<= pcVPS->getNumAddiLayerOperationPoints(); i++) 1396 { 1397 if(pcVPS->getMaxLayers() == 3) 1398 { 1399 pcVPS->setNumOpLayerIdMinus1((i < pcVPS->getNumAddiLayerOperationPoints() ? 1: 2), (i-1)); 1400 } 1401 else if( i==1 ) 1402 { 1403 assert(pcVPS->getNumAddiLayerOperationPoints()==1); 1404 pcVPS->setNumOpLayerIdMinus1(pcVPS->getMaxLayers()-1, (i-1)); 1405 } 1406 READ_UVLC( uiCode, "op_num_layer_id_values_minus1[ opIdx ]" ); pcVPS->setNumOpLayerIdMinus1(uiCode, i-1); 1407 for(UInt j = 0; j <= pcVPS->getNumOpLayerIdMinus1(i-1); j++ ) 1408 { 1409 READ_UVLC( uiCode, "op_layer_id[ opIdx ][ i ]" ); pcVPS->setNumOpLayerId(uiCode, i-1, j); 1410 } 1411 if (pcVPS->getNumAddiProLevelSets()) 1412 { 1413 //profile_level_idx[ i ] 1414 } 1415 } 1416 return; 1417 } 1418 #else 1341 1419 #if VIDYO_VPS_INTEGRATION 1342 1420 Void TDecCavlc::parseVPS(TComVPS* pcVPS) … … 1389 1467 1390 1468 #endif 1391 1469 #endif 1392 1470 #if HHI_MPI 1393 1471 Void TDecCavlc::parseSPS(TComSPS* pcSPS, Bool bIsDepth) … … 1401 1479 1402 1480 UInt uiCode; 1481 #if !QC_MVHEVC_B0046 1403 1482 Int iCode; 1404 1483 #endif 1405 1484 READ_CODE( 8, uiCode, "profile_idc" ); pcSPS->setProfileIdc( uiCode ); 1406 1485 READ_CODE( 8, uiCode, "reserved_zero_8bits" ); … … 1645 1724 #endif 1646 1725 READ_FLAG( uiCode, "sps_extension_flag"); 1726 #if !QC_MVHEVC_B0046 1647 1727 if(uiCode) 1648 1728 { … … 1803 1883 } 1804 1884 } 1885 #endif 1805 1886 } 1806 1887 … … 1907 1988 } 1908 1989 #endif 1990 #if QC_REM_IDV_B0046 1991 #if !QC_MVHEVC_B0046 1992 if(rpcSlice->getNalUnitType()==NAL_UNIT_CODED_SLICE_IDR && rpcSlice->getSPS()->getViewId() == 0) 1993 #else 1994 if(rpcSlice->getNalUnitType()==NAL_UNIT_CODED_SLICE_IDR && rpcSlice->getViewId() == 0) 1995 #endif 1996 #else 1909 1997 if(rpcSlice->getNalUnitType()==NAL_UNIT_CODED_SLICE_IDR) 1998 #endif 1910 1999 { 1911 2000 READ_UVLC( uiCode, "idr_pic_id" ); //ignored … … 1941 2030 } 1942 2031 rpcSlice->setPOC( iPOCmsb+iPOClsb ); 1943 2032 #if QC_REM_IDV_B0046 2033 #if !QC_MVHEVC_B0046 2034 if( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR && rpcSlice->getSPS()->getViewId() && rpcSlice->getPOC() == 0 ) 2035 #else 2036 if( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR && rpcSlice->getViewId() && rpcSlice->getPOC() == 0 ) 2037 #endif 2038 #else 1944 2039 if( rpcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDV && rpcSlice->getPOC() == 0 ) 2040 #endif 1945 2041 { 1946 2042 TComReferencePictureSet* rps = rpcSlice->getLocalRPS(); … … 2082 2178 { 2083 2179 #if H0412_REF_PIC_LIST_RESTRICTION 2180 #if QC_MVHEVC_B0046 2181 if( !rpcSlice->getViewId() || !rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2182 #else 2084 2183 if( !rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2184 #endif 2085 2185 { 2086 2186 refPicListModification->setRefPicListModificationFlagL0( 0 ); … … 2153 2253 { 2154 2254 #if H0412_REF_PIC_LIST_RESTRICTION 2255 #if QC_MVHEVC_B0046 2256 if( !rpcSlice->getViewId() || !rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2257 #else 2155 2258 if( !rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2259 #endif 2156 2260 { 2157 2261 refPicListModification->setRefPicListModificationFlagL1( 0 ); … … 2237 2341 2238 2342 #if H0412_REF_PIC_LIST_RESTRICTION 2239 if(rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2343 #if QC_MVHEVC_B0046 2344 if( rpcSlice->getViewId() && rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2345 #else 2346 if(rpcSlice->getSPS()->getListsModificationPresentFlag() ) 2347 #endif 2240 2348 { 2241 2349 #endif … … 2944 3052 } 2945 3053 3054 #if QC_MVHEVC_B0046 3055 /** Parse VPS alignment one bits. 3056 * \returns Void 3057 */ 3058 Void TDecCavlc::xReadVPSAlignOne( ) 3059 { 3060 UInt uiNumberOfBits = m_pcBitstream->getNumBitsUntilByteAligned(); 3061 3062 if(uiNumberOfBits) 3063 { 3064 UInt uiBits; 3065 UInt uiSymbol; 3066 3067 for(uiBits = 0; uiBits < uiNumberOfBits; uiBits++) 3068 { 3069 xReadFlag( uiSymbol ); 3070 3071 if(!uiSymbol) 3072 { 3073 printf("\nWarning! vps_extension_byte_alignment_reserved_one_bit include a non-zero value.\n"); 3074 } 3075 } 3076 } 3077 } 3078 #endif 2946 3079 /** Parse PCM alignment zero bits. 2947 3080 * \returns Void -
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r189 r210 75 75 Void xReadFlagTr ( UInt& rValue, const Char *pSymbolName); 76 76 #endif 77 77 #if QC_MVHEVC_B0046 78 Void xReadVPSAlignOne (); 79 #endif 78 80 Void xReadPCMAlignZero (); 79 81 … … 113 115 Void parseQtRootCbf ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt& uiQtRootCbf ); 114 116 115 #if VIDYO_VPS_INTEGRATION 117 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 116 118 Void parseVPS ( TComVPS* pcVPS ); 117 119 #endif -
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r189 r210 71 71 #endif 72 72 73 #if VIDYO_VPS_INTEGRATION 73 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 74 74 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 75 75 #endif … … 175 175 Void resetEntropy ( TComSlice* p) { m_pcEntropyDecoderIf->resetEntropy(p); } 176 176 177 #if VIDYO_VPS_INTEGRATION 177 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 178 178 Void decodeVPS ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); } 179 179 #endif -
trunk/source/Lib/TLibDecoder/TDecSbac.h
r189 r210 87 87 Void setBitstream ( TComInputBitstream* p ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); } 88 88 89 #if VIDYO_VPS_INTEGRATION 89 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 90 90 Void parseVPS ( TComVPS* pcVPS ) {} 91 91 #endif -
trunk/source/Lib/TLibDecoder/TDecSlice.cpp
r77 r210 446 446 , m_ppsBuffer(16) 447 447 , m_apsBuffer(64) 448 #if VIDYO_VPS_INTEGRATION 448 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 449 449 , m_vpsBuffer(16) 450 450 #endif … … 458 458 } 459 459 460 #if VIDYO_VPS_INTEGRATION 460 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 461 461 TComVPS* ParameterSetManagerDecoder::getPrefetchedVPS (Int vpsId) 462 462 { … … 513 513 m_ppsMap.mergePSList(m_ppsBuffer); 514 514 m_spsMap.mergePSList(m_spsBuffer); 515 #if VIDYO_VPS_INTEGRATION 515 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 516 516 m_vpsMap.mergePSList(m_vpsBuffer); 517 517 #endif -
trunk/source/Lib/TLibDecoder/TDecSlice.h
r100 r210 96 96 Void storePrefetchedAPS(TComAPS *aps) { m_apsBuffer.storePS( aps->getAPSID(), aps); }; 97 97 TComAPS* getPrefetchedAPS (Int apsId); 98 #if VIDYO_VPS_INTEGRATION 98 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 99 99 Void storePrefetchedVPS(TComVPS *vps) { m_vpsBuffer.storePS( vps->getVPSId(), vps); }; 100 100 TComVPS* getPrefetchedVPS (Int vpsId); … … 106 106 ParameterSetMap<TComPPS> m_ppsBuffer; 107 107 ParameterSetMap<TComAPS> m_apsBuffer; 108 #if VIDYO_VPS_INTEGRATION 108 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 109 109 ParameterSetMap<TComVPS> m_vpsBuffer; 110 110 #endif -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r77 r210 50 50 m_aaiCodedScale = new Int* [ MAX_VIEW_NUM ]; 51 51 m_aiViewOrderIndex = new Int [ MAX_VIEW_NUM ]; 52 #if QC_MVHEVC_B0046 53 m_aiViewId = new Int [ MAX_VIEW_NUM ]; 54 #endif 52 55 m_aiViewReceived = new Int [ MAX_VIEW_NUM ]; 53 56 for( UInt uiId = 0; uiId < MAX_VIEW_NUM; uiId++ ) … … 266 269 m_bFirstSliceInSequence = true; 267 270 m_pcCamParsCollector = 0; 271 #if QC_MVHEVC_B0046 272 m_bFirstNal = false; 273 #endif 268 274 } 269 275 … … 578 584 TComVPS *vps = m_parameterSetManagerDecoder.getVPS(sps->getVPSId()); 579 585 assert (vps != 0); 586 #if !QC_REM_IDV_B0046 580 587 if( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA ) 588 #else 589 if( (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA) && !sps->getViewId() ) 590 #endif 581 591 // VPS can only be activated on IDR or CRA... 582 592 getTAppDecTop()->getVPSAccess()->setActiveVPSId( sps->getVPSId() ); … … 584 594 m_apcSlicePilot->setPPS(pps); 585 595 m_apcSlicePilot->setSPS(sps); 586 #if VIDYO_VPS_INTEGRATION 596 #if QC_MVHEVC_B0046 597 TComVPS *vps = m_parameterSetManagerDecoder.getVPS(sps->getVPSId()); 598 #endif 599 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 587 600 m_apcSlicePilot->setVPS(vps); 588 601 #endif … … 626 639 m_apcSlicePilot->setPPS(m_parameterSetManagerDecoder.getPrefetchedPPS(0)); 627 640 m_apcSlicePilot->setSPS(m_parameterSetManagerDecoder.getPrefetchedSPS(0)); 628 #if VIDYO_VPS_INTEGRATION 641 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 642 #if QC_MVHEVC_B0046 643 m_apcSlicePilot->setIsDepth(false); 644 #endif 629 645 m_apcSlicePilot->setVPS(m_parameterSetManagerDecoder.getPrefetchedVPS(0)); 630 646 #endif 631 647 m_apcSlicePilot->initTiles(); 632 648 #if QC_MVHEVC_B0046 649 m_apcSlicePilot->setViewId( nalu.m_layerId ); 650 m_apcSlicePilot->setViewId( nalu.m_layerId ); 651 m_apcSlicePilot->setViewOrderIdx(m_apcSlicePilot->getVPS()->getViewId(nalu.m_layerId), nalu.m_layerId); 652 Int iNumDirectRef = m_apcSlicePilot->getVPS()->getNumDirectRefLayer(nalu.m_layerId); 653 m_apcSlicePilot->getSPS()->setNumberOfUsableInterViewRefs(iNumDirectRef); 654 for(Int iNumIvRef = 0; iNumIvRef < iNumDirectRef; iNumIvRef ++) 655 { 656 Int iDeltaLayerId = m_apcSlicePilot->getVPS()->getDirectRefLayerId( nalu.m_layerId, iNumIvRef); 657 m_apcSlicePilot->getSPS()->setUsableInterViewRef(iNumIvRef, (iDeltaLayerId-nalu.m_layerId)); 658 } 659 #endif 633 660 if (m_bFirstSliceInPicture) 634 661 { … … 645 672 if( m_bFirstSliceInPicture ) 646 673 { 674 #if QC_MVHEVC_B0046 675 if( nalu.m_layerId == 0 ) { m_nalUnitTypeBaseView = nalu.m_nalUnitType; } 676 else { m_nalUnitTypeBaseView = m_tAppDecTop->getTDecTop( 0, 0 )->getNalUnitTypeBaseView(); } 677 #else 647 678 #if VIDYO_VPS_INTEGRATION 648 679 if( m_apcSlicePilot->getVPS()->getViewId(nalu.m_layerId) == 0 ) { m_nalUnitTypeBaseView = nalu.m_nalUnitType; } … … 652 683 else { m_nalUnitTypeBaseView = m_tAppDecTop->getTDecTop( 0, nalu.m_isDepth )->getNalUnitTypeBaseView(); } 653 684 #endif 654 685 #endif 655 686 m_apcSlicePilot->setNalUnitTypeBaseViewMvc( m_nalUnitTypeBaseView ); 656 687 } … … 951 982 952 983 // Set reference list 984 #if !QC_MVHEVC_B0046 953 985 #if VIDYO_VPS_INTEGRATION 954 986 pcSlice->setViewId( pcSlice->getVPS()->getViewId(nalu.m_layerId) ); … … 958 990 pcSlice->setIsDepth(m_isDepth); 959 991 #endif 992 #endif 960 993 961 994 #if SONY_COLPIC_AVAILABILITY … … 969 1002 assert( m_tAppDecTop != NULL ); 970 1003 TComPic * const pcTexturePic = m_isDepth ? m_tAppDecTop->getPicFromView( m_viewId, pcSlice->getPOC(), false ) : NULL; 1004 1005 #if FLEX_CODING_ORDER_M23723 1006 if (pcTexturePic != NULL) 1007 { 1008 assert( !m_isDepth || pcTexturePic != NULL ); 1009 pcSlice->setTexturePic( pcTexturePic ); 1010 } 1011 #else 971 1012 assert( !m_isDepth || pcTexturePic != NULL ); 972 1013 pcSlice->setTexturePic( pcTexturePic ); 1014 #endif 1015 973 1016 974 1017 std::vector<TComPic*> apcInterViewRefPics = m_tAppDecTop->getInterViewRefPics( m_viewId, pcSlice->getPOC(), m_isDepth, pcSlice->getSPS() ); … … 1071 1114 m_cGopDecoder.decompressGop(nalu.m_Bitstream, pcPic, false); 1072 1115 1116 #if QC_IV_AS_LT_B0046 1117 std::vector<TComPic*> apcInterViewRefPics = m_tAppDecTop->getInterViewRefPics( m_viewId, pcSlice->getPOC(), m_isDepth, pcSlice->getSPS() ); 1118 for( Int k = 0; k < apcInterViewRefPics.size(); k++ ) 1119 { 1120 TComPic* pcPicIv = apcInterViewRefPics[k]; 1121 pcPicIv->setIsLongTerm( 0 ); 1122 } 1123 #endif 1073 1124 if( m_pcCamParsCollector ) 1074 1125 { … … 1082 1133 } 1083 1134 1084 #if VIDYO_VPS_INTEGRATION 1135 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1085 1136 Void TDecTop::xDecodeVPS() 1086 1137 { … … 1089 1140 m_cEntropyDecoder.decodeVPS( vps ); 1090 1141 m_parameterSetManagerDecoder.storePrefetchedVPS(vps); 1142 #if !QC_MVHEVC_B0046 1091 1143 getTAppDecTop()->getVPSAccess()->addVPS( vps ); 1144 #endif 1092 1145 } 1093 1146 #endif … … 1155 1208 switch (nalu.m_nalUnitType) 1156 1209 { 1157 #if VIDYO_VPS_INTEGRATION 1210 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 1158 1211 case NAL_UNIT_VPS: 1159 1212 xDecodeVPS(); … … 1178 1231 case NAL_UNIT_CODED_SLICE_IDR: 1179 1232 #if H0566_TLA 1233 #if !QC_REM_IDV_B0046 1180 1234 case NAL_UNIT_CODED_SLICE_IDV: 1235 #endif 1181 1236 case NAL_UNIT_CODED_SLICE_CRA: 1182 1237 case NAL_UNIT_CODED_SLICE_TLA: … … 1193 1248 } 1194 1249 1250 #if QC_MVHEVC_B0046 1251 Void TDecTop::xCopyVPS( TComVPS* pVPSV0 ) 1252 { 1253 m_parameterSetManagerDecoder.storePrefetchedVPS(pVPSV0); 1254 } 1255 1256 Void TDecTop::xCopySPS( TComSPS* pSPSV0 ) 1257 { 1258 TComSPS* sps = new TComSPS(); 1259 sps = pSPSV0; 1260 m_parameterSetManagerDecoder.storePrefetchedSPS(sps); 1261 #if LCU_SYNTAX_ALF 1262 m_cAdaptiveLoopFilter.create( sps->getPicWidthInLumaSamples(), sps->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth ); 1263 #endif 1264 } 1265 1266 Void TDecTop::xCopyPPS(TComPPS* pPPSV0 ) 1267 { 1268 m_parameterSetManagerDecoder.storePrefetchedPPS( pPPSV0 ); 1269 1270 //!!!KS: Activate parameter sets for parsing APS (unless dependency is resolved) 1271 m_apcSlicePilot->setPPSId(pPPSV0->getPPSId()); 1272 xActivateParameterSets(); 1273 m_apcSlicePilot->initTiles(); 1274 } 1275 #endif 1195 1276 /** Function for checking if picture should be skipped because of random access 1196 1277 * \param iSkipFrame skip frame counter -
trunk/source/Lib/TLibDecoder/TDecTop.h
r100 r210 88 88 Int** m_aaiCodedScale; 89 89 Int* m_aiViewOrderIndex; 90 #if QC_MVHEVC_B0046 91 Int* m_aiViewId; 92 #endif 90 93 Int* m_aiViewReceived; 91 94 UInt m_uiCamParsCodedPrecision; … … 168 171 169 172 Void deletePicBuffer(); 170 173 #if QC_MVHEVC_B0046 174 Void xCopySPS( TComSPS* pSPSV0); 175 Void xCopyPPS( TComPPS* pPPSV0); 176 Void xCopyVPS( TComVPS* pVPSV0); 177 #endif 171 178 #if HHI_INTER_VIEW_RESIDUAL_PRED 172 179 Void deleteExtraPicBuffers ( Int iPoc ); … … 195 202 TAppDecTop* getTAppDecTop() { return m_tAppDecTop; } 196 203 NalUnitType getNalUnitTypeBaseView() { return m_nalUnitTypeBaseView; } 197 204 #if QC_MVHEVC_B0046 205 bool m_bFirstNal; //used to copy SPS, PPS, VPS 206 ParameterSetManagerDecoder* xGetParaSetDec () {return &m_parameterSetManagerDecoder;} 207 #endif 198 208 protected: 199 209 Void xGetNewPicBuffer (TComSlice* pcSlice, TComPic*& rpcPic); … … 208 218 Bool xDecodeSlice(InputNALUnit &nalu, Int iSkipFrame, Int iPOCLastDisplay); 209 219 #endif 210 #if VIDYO_VPS_INTEGRATION 220 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046 211 221 Void xDecodeVPS(); 212 222 #endif
Note: See TracChangeset for help on using the changeset viewer.