Changeset 1412 in 3DVCSoftware for branches/HTM-16.2-dev/source/Lib/TLibDecoder/TDecTop.cpp
- Timestamp:
- 12 Apr 2018, 11:12:21 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-16.2-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1405 r1412 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 6, ITU/ISO/IEC6 * Copyright (c) 2010-2017, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 37 37 #include "NALread.h" 38 38 #include "TDecTop.h" 39 #include "TDecConformance.h" 40 39 41 #if NH_MV 40 42 ParameterSetManager TDecTop::m_parameterSetManager; … … 227 229 } 228 230 229 #if !H_3D_FCO230 231 if ( pcSlice->getIsDepth()) 231 232 { 232 233 return; 233 234 } 234 #endif235 235 236 236 Int curPoc = pcSlice->getPOC(); … … 376 376 , m_warningMessageSkipPicture(false) 377 377 #endif 378 #if MCTS_ENC_CHECK 379 , m_tmctsCheckEnabled(false) 380 #endif 378 381 , m_prefixSEINALUs() 379 382 { … … 471 474 #endif 472 475 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO); 473 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder ); 476 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder, &m_conformanceCheck ); 477 #if MCTS_ENC_CHECK 478 m_cEntropyDecoder.init(&m_cPrediction, &m_conformanceCheck ); 479 #else 474 480 m_cEntropyDecoder.init(&m_cPrediction); 481 #endif 475 482 } 476 483 … … 506 513 rpcPic = new TComPic(); 507 514 515 #if REDUCED_ENCODER_MEMORY 516 rpcPic->create ( sps, pps, false, true); 517 #else 508 518 rpcPic->create ( sps, pps, true); 519 #endif 509 520 510 521 m_cListPic.pushBack( rpcPic ); … … 543 554 } 544 555 rpcPic->destroy(); 556 #if REDUCED_ENCODER_MEMORY 557 rpcPic->create ( sps, pps, false, true); 558 #else 545 559 rpcPic->create ( sps, pps, true); 560 #endif 546 561 } 547 562 … … 692 707 693 708 xParsePrefixSEImessages(); 709 #if MCTS_ENC_CHECK 710 xAnalysePrefixSEImessages(); 711 #endif 694 712 695 713 #if RExt__HIGH_BIT_DEPTH_SUPPORT==0 … … 726 744 sps=pSlice->getSPS(); 727 745 728 #if NH_MV 746 #if NH_MV 729 747 pSlice->setPic( m_pcPic ); 730 748 vps=pSlice->getVPS(); … … 772 790 // Recursive structure 773 791 m_cCuDecoder.create ( sps->getMaxTotalCUDepth(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getChromaFormatIdc() ); 792 #if MCTS_ENC_CHECK 793 m_cCuDecoder.init ( &m_cEntropyDecoder, &m_cTrQuant, &m_cPrediction, &m_conformanceCheck ); 794 #else 774 795 m_cCuDecoder.init ( &m_cEntropyDecoder, &m_cTrQuant, &m_cPrediction ); 796 #endif 775 797 m_cTrQuant.init ( sps->getMaxTrSize() ); 776 798 … … 807 829 xParsePrefixSEImessages(); 808 830 831 #if MCTS_ENC_CHECK 832 xAnalysePrefixSEImessages(); 833 #endif 809 834 // Check if any new SEI has arrived 810 835 if(!m_SEIs.empty()) … … 845 870 } 846 871 } 872 873 #if MCTS_ENC_CHECK 874 Void TDecTop::xAnalysePrefixSEImessages() 875 { 876 if (m_tmctsCheckEnabled) 877 { 878 SEIMessages mctsSEIs = getSeisByType(m_SEIs, SEI::TEMP_MOTION_CONSTRAINED_TILE_SETS); 879 for (SEIMessages::iterator it = mctsSEIs.begin(); it != mctsSEIs.end(); it++) 880 { 881 SEITempMotionConstrainedTileSets *mcts = (SEITempMotionConstrainedTileSets*)(*it); 882 if (!mcts->m_each_tile_one_tile_set_flag) 883 { 884 printf("cannot (yet) check Temporal constrained MCTS if each_tile_one_tile_set_flag is not enabled\n"); 885 exit(1); 886 } 887 else 888 { 889 printf("MCTS check enabled!\n"); 890 m_conformanceCheck.enableTMctsCheck(true); 891 } 892 } 893 } 894 } 895 #endif 896 847 897 848 898 #if !NH_MV … … 1023 1073 xActivateParameterSets(); 1024 1074 1075 1076 1077 TComSlice* pcSlice = m_pcPic->getPicSym()->getSlice(m_uiSliceIdx); 1078 1079 if (TDecConformanceCheck::doChecking()) 1080 { 1081 m_conformanceCheck.checkSliceActivation(*pcSlice, nalu, *m_pcPic, m_bFirstSliceInBitstream, m_bFirstSliceInSequence, m_bFirstSliceInPicture); 1082 } 1083 1025 1084 m_bFirstSliceInSequence = false; 1026 1085 m_bFirstSliceInBitstream = false; 1027 1028 1029 TComSlice* pcSlice = m_pcPic->getPicSym()->getSlice(m_uiSliceIdx);1030 1086 1031 1087 #endif … … 1105 1161 } 1106 1162 } 1107 #if NH_3D _NBDV1163 #if NH_3D 1108 1164 pcSlice->setDefaultRefView(); 1109 #endif1110 #if NH_3D_ARP1111 1165 pcSlice->setPocsInCurrRPSs(); 1112 1166 pcSlice->setARPStepNum(m_dpb); … … 1155 1209 //--------------- 1156 1210 pcSlice->setRefPOCList(); 1157 #if NH_3D _TMVP1211 #if NH_3D 1158 1212 if(pcSlice->getLayerId()) 1159 1213 { … … 1253 1307 pps->setLayerId( getLayerId() ); 1254 1308 #endif 1255 #if NH_3D _DLT1309 #if NH_3D 1256 1310 // create mapping from depth layer indexes to layer ids 1257 1311 Int j=0; … … 1863 1917 { 1864 1918 Int profileIdc = vps->getPTL( vps->getProfileTierLevelIdx( m_targetOlsIdx, lIdx ) )->getGeneralPTL()->getProfileIdc(); 1865 assert( profileIdc == 1 || profileIdc == 6 || profileIdc == 8 ); 1866 1867 if ( profileIdc == 6 ) 1919 1920 #if !NH_MV_ALLOW_NON_CONFORMING 1921 assert( profileIdc == Profile::MAIN || profileIdc == Profile::MULTIVIEWMAIN|| profileIdc == Profile::MAIN3D ); 1922 #else 1923 assert( profileIdc == Profile::MAIN || profileIdc == Profile::MAIN10 || profileIdc == Profile::MULTIVIEWMAIN|| profileIdc == Profile::MAIN3D || profileIdc == Profile::NONE || profileIdc == Profile::MULTIVIEWMAIN_NONCONFORMING || profileIdc == Profile::MAIN3D_NONCONFORMING ); 1924 #endif 1925 1926 if ( profileIdc == Profile::MULTIVIEWMAIN 1927 #if NH_MV_ALLOW_NON_CONFORMING 1928 || profileIdc == Profile::MULTIVIEWMAIN_NONCONFORMING 1929 #endif 1930 ) 1868 1931 { 1869 1932 m_decodingProcess = ANNEX_G; … … 1873 1936 m_decodingProcess = ANNEX_H; 1874 1937 } 1875 else if (profileIdc == 8 ) 1938 else if (profileIdc == Profile::MAIN3D 1939 #if NH_MV_ALLOW_NON_CONFORMING 1940 || profileIdc == Profile::MAIN3D_NONCONFORMING 1941 #endif 1942 ) 1876 1943 { 1877 1944 m_decodingProcess = ANNEX_I;
Note: See TracChangeset for help on using the changeset viewer.