Changeset 364 in 3DVCSoftware for branches/HTM-DEV-0.1-dev/source
- Timestamp:
- 3 May 2013, 16:34:51 (12 years ago)
- Location:
- branches/HTM-DEV-0.1-dev/source
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.1-dev/source/App/TAppDecoder/TAppDecCfg.cpp
r324 r364 45 45 #include <cassert> 46 46 #endif 47 48 47 #ifdef WIN32 49 48 #define strdup _strdup … … 79 78 ("OutputBitDepth,d", m_outputBitDepthY, 0, "bit depth of YUV output luma component (default: use 0 for native depth)") 80 79 ("OutputBitDepthC,d", m_outputBitDepthC, 0, "bit depth of YUV output chroma component (default: use 0 for native depth)") 81 82 80 #if H_MV 83 81 ("MaxLayerId,-ls", m_maxLayerId, MAX_NUM_LAYER_IDS-1, "Maximum LayerId to be decoded.") 84 82 #endif 85 86 83 ("MaxTemporalLayer,t", m_iMaxTemporalLayer, -1, "Maximum Temporal Layer to be decoded. -1 to decode all layers") 87 84 ("SEIDecodedPictureHash", m_decodedPictureHashSEIEnabled, 1, "Control handling of decoded picture hash SEI messages\n" … … 108 105 /* convert std::string to c string for compatability */ 109 106 m_pchBitstreamFile = cfg_BitstreamFile.empty() ? NULL : strdup(cfg_BitstreamFile.c_str()); 110 111 107 m_pchReconFile = cfg_ReconFile.empty() ? NULL : strdup(cfg_ReconFile.c_str()); 112 108 … … 191 187 } 192 188 #endif 193 194 189 //! \} -
branches/HTM-DEV-0.1-dev/source/App/TAppDecoder/TAppDecCfg.h
r324 r364 64 64 #endif 65 65 Char* m_pchReconFile; ///< output reconstruction file name 66 67 66 Int m_iSkipFrame; ///< counter for frames prior to the random access point to skip 68 67 Int m_outputBitDepthY; ///< bit depth used for writing output (luma) … … 78 77 Void xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char*& rpchOutputFileName); ///< create filenames 79 78 #endif 80 81 79 public: 82 80 TAppDecCfg() 83 81 : m_pchBitstreamFile(NULL) 84 85 82 #if H_MV 86 83 , m_maxLayerId(0) -
branches/HTM-DEV-0.1-dev/source/App/TAppDecoder/TAppDecTop.cpp
r363 r364 60 60 : m_numDecoders( 0 ) 61 61 #endif 62 63 62 { 64 63 ::memset (m_abDecFlag, 0, sizeof (m_abDecFlag)); … … 79 78 m_pchBitstreamFile = NULL; 80 79 } 81 82 80 #if H_MV 83 81 for (Int decIdx = 0; decIdx < m_numDecoders; decIdx++) -
branches/HTM-DEV-0.1-dev/source/App/TAppDecoder/TAppDecTop.h
r324 r364 90 90 Void decode (); ///< main decoding function 91 91 92 93 92 protected: 94 93 Void xCreateDecLib (); ///< create internal classes … … 153 152 Void xFlushOutput ( TComList<TComPic*>* pcListPic ); ///< flush all remaining decoded pictures to file 154 153 #endif 155 156 154 Bool isNaluWithinTargetDecLayerIdSet ( InputNALUnit* nalu ); ///< check whether given Nalu is within targetDecLayerIdSet 157 155 }; -
branches/HTM-DEV-0.1-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r363 r364 107 107 delete[] m_aidQP; 108 108 } 109 free(m_pchInputFile);110 109 #endif 111 110 #if J0149_TONE_MAPPING_SEI … … 126 125 } 127 126 #endif 127 #if !H_MV 128 free(m_pchInputFile); 129 #endif 128 130 free(m_pchBitstreamFile); 129 130 131 #if H_MV 131 132 for(Int i = 0; i< m_pchReconFileList.size(); i++ ) … … 137 138 free(m_pchReconFile); 138 139 #endif 139 140 140 free(m_pchdQPFile); 141 141 free(m_pColumnWidth); … … 337 337 #endif 338 338 #endif 339 340 339 string cfg_dQPFile; 341 340 string cfg_ColumnWidth; … … 361 360 362 361 // File, I/O and source parameters 363 364 362 #if H_MV 365 363 ("InputFile_%d,i_%d", m_pchInputFileList, (char *) 0 , MAX_NUM_LAYER_IDS , "original Yuv input file name %d") … … 367 365 ("InputFile,i", cfg_InputFile, string(""), "Original YUV input file name") 368 366 #endif 369 370 367 ("BitstreamFile,b", cfg_BitstreamFile, string(""), "Bitstream output file name") 371 372 368 #if H_MV 373 369 ("ReconFile_%d,o_%d", m_pchReconFileList, (char *) 0 , MAX_NUM_LAYER_IDS , "reconstructed Yuv output file name %d") … … 375 371 ("ReconFile,o", cfg_ReconFile, string(""), "Reconstructed YUV output file name") 376 372 #endif 377 378 373 #if H_MV 379 374 ("NumberOfLayers", m_numberOfLayers , 1, "Number of layers") … … 413 408 414 409 // Profile and level 415 416 410 ("Profile", m_profile, Profile::NONE, "Profile to be used when encoding (Incomplete)") 417 411 ("Level", m_level, Level::NONE, "Level limit to be used, eg 5.1 (Incomplete)") … … 730 724 } 731 725 #endif 732 733 726 po::setDefaults(opts); 734 727 const list<const Char*>& argv_unhandled = po::scanArgv(opts, argc, (const Char**) argv); … … 760 753 m_pchReconFile = cfg_ReconFile.empty() ? NULL : strdup(cfg_ReconFile.c_str()); 761 754 #endif 762 763 755 m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str()); 764 756 … … 824 816 free ( pRowHeight ); 825 817 #endif 826 827 818 #if SIGNAL_BITRATE_PICRATE_IN_VPS 828 819 readBoolString(cfg_bitRateInfoPresentFlag, m_bitRatePicRateMaxTLayers, m_bitRateInfoPresentFlag, "bit rate info. present flag" ); … … 1142 1133 xConfirmPara( m_iFrameRate <= 0, "Frame rate must be more than 1" ); 1143 1134 xConfirmPara( m_framesToBeEncoded <= 0, "Total Number Of Frames encoded must be more than 0" ); 1144 1145 1135 #if H_MV 1146 1136 xConfirmPara( m_numberOfLayers > MAX_NUM_LAYER_IDS , "NumberOfLayers must be less than or equal to MAX_NUM_LAYER_IDS"); … … 1155 1145 xConfirmPara( m_scalabilityMask != 1 , "Scalability Mask must be equal to 1. "); 1156 1146 #endif 1157 1147 1158 1148 m_dimIds.push_back( m_viewId ); 1159 1149 #if H_3D … … 1212 1202 1213 1203 #endif 1214 1215 1216 1204 xConfirmPara( m_iGOPSize < 1 , "GOP Size must be greater or equal to 1" ); 1217 1205 xConfirmPara( m_iGOPSize > 1 && m_iGOPSize % 2, "GOP Size must be a multiple of 2, if GOP Size is greater than 1" ); -
branches/HTM-DEV-0.1-dev/source/App/TAppEncoder/TAppEncTop.cpp
r362 r364 136 136 m_cTEncTop.setIvPicLists ( &m_ivPicLists ); 137 137 #endif 138 139 138 m_cTEncTop.setVPS(&vps); 140 139 141 140 m_cTEncTop.setProfile(m_profile); 142 141 m_cTEncTop.setLevel(m_levelTier, m_level); 143 144 142 #if L0046_CONSTRAINT_FLAGS 145 143 m_cTEncTop.setProgressiveSourceFlag(m_progressiveSourceFlag); … … 462 460 } 463 461 #endif 464 465 #if H_MV 466 } 467 #endif 468 462 #if H_MV 463 } 464 #endif 469 465 } 470 466 … … 721 717 } 722 718 #endif 723 724 719 // ==================================================================================================================== 725 720 // Protected member functions … … 795 790 } 796 791 #endif 797 798 792 } 799 793 … … 825 819 { 826 820 TComPicYuv* pcPicYuvRec = *(iterPicYuvRec++); 827 828 821 #if H_MV 829 822 if (m_pchReconFileList[layerId]) … … 853 846 } 854 847 #endif 855 856 848 } 857 849 … … 899 891 void TAppEncTop::printRateSummary() 900 892 { 901 902 893 #if H_MV 903 894 Double time = (Double) m_frameRcvd[0] / m_iFrameRate; … … 906 897 Double time = (Double) m_iFrameRcvd / m_iFrameRate; 907 898 #endif 908 909 899 printf("Bytes written to file: %u (%.3f kbps)\n", m_totalBytes, 0.008 * m_totalBytes / time); 910 900 #if VERBOSE_RATE -
branches/HTM-DEV-0.1-dev/source/App/TAppEncoder/TAppEncTop.h
r324 r364 59 59 private: 60 60 // class interface 61 62 61 #if H_MV 63 62 std::vector<TEncTop*> m_acTEncTopList ; ///< encoder class per layer … … 100 99 101 100 // file I/O 102 103 101 #if H_MV 104 102 Void xWriteOutput(std::ostream& bitstreamFile, Int iNumEncoded, std::list<AccessUnit>& accessUnits, UInt layerId); ///< write bitstream to file … … 106 104 Void xWriteOutput(std::ostream& bitstreamFile, Int iNumEncoded, const std::list<AccessUnit>& accessUnits); ///< write bitstream to file 107 105 #endif 108 109 106 void rateStatsAccum(const AccessUnit& au, const std::vector<UInt>& stats); 110 107 void printRateSummary(); … … 116 113 Int xGetMax( std::vector<Int>& vec); 117 114 #endif 118 119 115 public: 120 116 TAppEncTop(); … … 122 118 123 119 Void encode (); ///< main encoding function 124 125 120 #if H_MV 126 121 TEncTop* getTEncTopLayer(UInt layer) { return m_acTEncTopList[layer]; } ///< return pointer to encoder class for specific layer … … 131 126 TEncTop& getTEncTop () { return m_cTEncTop; } ///< return encoder class pointer reference 132 127 #endif 133 134 128 };// END CLASS DEFINITION TAppEncTop 135 129 -
branches/HTM-DEV-0.1-dev/source/App/TAppEncoder/encmain.cpp
r324 r364 62 62 fprintf( stdout, "HM software: Encoder Version [%s]", NV_VERSION ); 63 63 #endif 64 65 64 fprintf( stdout, NVM_ONOS ); 66 65 fprintf( stdout, NVM_COMPILEDBY ); -
branches/HTM-DEV-0.1-dev/source/Lib/TAppCommon/program_options_lite.h
r324 r364 46 46 #endif 47 47 #endif 48 49 48 //! \ingroup TAppCommon 50 49 //! \{ … … 382 381 } 383 382 #endif 384 385 383 /** 386 384 * Add option described by name to the parent Options list, -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/CommonDef.h
r362 r364 168 168 169 169 #endif 170 171 170 172 171 // ==================================================================================================================== -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/NAL.h
r362 r364 47 47 NalUnitType m_nalUnitType; ///< nal_unit_type 48 48 UInt m_temporalId; ///< temporal_id 49 50 49 #if H_MV 51 50 Int m_layerId; ///< layer id -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/TComDataCU.cpp
r324 r364 3200 3200 Bool bIsCurrRefLongTerm = m_pcSlice->getRefPic( eRefPicList, iRefIdx)->getIsLongTerm(); 3201 3201 Bool bIsNeibRefLongTerm = false; 3202 3203 3202 //--------------- V1 (END) ------------------// 3204 3203 if( pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx) >= 0) -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/TComPic.h
r324 r364 93 93 #endif 94 94 #endif 95 96 95 public: 97 96 TComPic(); … … 116 115 #endif 117 116 #endif 118 119 117 Bool getUsedByCurr() { return m_bUsedByCurr; } 120 118 Void setUsedByCurr( Bool bUsed ) { m_bUsedByCurr = bUsed; } … … 186 184 Void print( Bool legend ); 187 185 #endif 188 189 190 191 186 /** transfer ownership of seis to this picture */ 192 187 void setSEIs(SEIMessages& seis) { m_SEIs = seis; } -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/TComSlice.h
r363 r364 603 603 TimingInfo* getTimingInfo() { return &m_timingInfo; } 604 604 #endif 605 606 605 #if H_MV 607 606 Void setAvcBaseLayerFlag( Bool val ) { m_avcBaseLayerFlag = val; } … … 971 970 static const Int m_winUnitY[MAX_CHROMA_FORMAT_IDC+1]; 972 971 TComPTL m_pcPTL; 973 974 972 #if H_MV 975 973 Bool m_interViewMvVertConstraintFlag; 976 974 #endif 977 978 975 public: 979 976 TComSPS(); … … 1106 1103 1107 1104 TComPTL* getPTL() { return &m_pcPTL; } 1108 1109 1105 #if H_MV 1110 1106 Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; } … … 1464 1460 1465 1461 Bool m_enableTMVPFlag; 1466 1467 1462 #if H_MV 1468 1463 Int m_layerId; … … 1472 1467 #endif 1473 1468 #endif 1474 1475 1469 public: 1476 1470 TComSlice(); … … 1639 1633 Void decodingMarking( TComList<TComPic*>& rcListPic, Int iGOPSIze, Int& iMaxRefPicNum ); 1640 1634 Void applyReferencePictureSet( TComList<TComPic*>& rcListPic, TComReferencePictureSet *RPSList); 1641 1642 1635 #if H_MV 1643 1636 Void createAndApplyIvReferencePictureSet( TComPicLists* ivPicLists, std::vector<TComPic*>& refPicSetInterLayer ); … … 1648 1641 Void xPrintRefPicList(); 1649 1642 #endif 1650 1651 1643 Bool isTemporalLayerSwitchingPoint( TComList<TComPic*>& rcListPic ); 1652 1644 Bool isStepwiseTemporalLayerSwitchingPointCandidate( TComList<TComPic*>& rcListPic ); -
branches/HTM-DEV-0.1-dev/source/Lib/TLibCommon/TypeDef.h
r362 r364 91 91 #define MAX_VPS_NUM_HRD_PARAMETERS 1 92 92 #define MAX_VPS_OP_SETS_PLUS1 1024 93 94 93 #if H_MV 95 94 #define MAX_VPS_NUH_LAYER_ID_PLUS1 64 … … 105 104 #define MAX_CPB_CNT 32 ///< Upper bound of (cpb_cnt_minus1 + 1) 106 105 #define MAX_NUM_LAYER_IDS 64 106 #if H_MV 107 107 #define MAX_NUM_LAYERS 64 108 #endif 108 109 109 110 #define COEF_REMAIN_BIN_REDUCTION 3 ///< indicates the level at which the VLC … … 569 570 #endif 570 571 #endif 571 -
branches/HTM-DEV-0.1-dev/source/Lib/TLibDecoder/TDecGop.cpp
r324 r364 208 208 rpcPic->compressMotion(); 209 209 #endif 210 211 210 Char c = (pcSlice->isIntra() ? 'I' : pcSlice->isInterP() ? 'P' : 'B'); 212 211 if (!pcSlice->isReferenced()) c += 32; 213 212 214 213 //-- For time output for each slice 215 216 214 #if H_MV 217 215 printf("\nLayer %2d POC %4d TId: %1d ( %c-SLICE, QP%3d ) ", pcSlice->getLayerId(), -
branches/HTM-DEV-0.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r363 r364 93 93 } 94 94 95 96 95 Void TDecTop::init() 97 96 { … … 100 99 initROM(); 101 100 #endif 102 103 101 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO); 104 102 m_cSliceDecoder.init( &m_cEntropyDecoder, &m_cCuDecoder ); … … 222 220 rpcListPic = &m_cListPic; 223 221 m_cCuDecoder.destroy(); 224 225 222 #if H_MV 226 223 TComSlice::markIvRefPicsAsShortTerm( m_refPicSetInterLayer ); 227 224 TComSlice::markIvRefPicsAsUnused ( m_ivPicLists, targetDecLayerIdSet, m_parameterSetManagerDecoder.getActiveVPS(), m_layerId, poc ); 228 225 #endif 229 230 226 m_bFirstSliceInPicture = true; 231 227 … … 380 376 m_apcSlicePilot->setLayerId( nalu.m_layerId ); 381 377 #endif 382 383 378 m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder); 384 379 -
branches/HTM-DEV-0.1-dev/source/Lib/TLibDecoder/TDecTop.h
r324 r364 64 64 class TAppDecTop; 65 65 #endif 66 67 66 /// decoder class 68 67 class TDecTop … … 81 80 ParameterSetManagerDecoder m_parameterSetManagerDecoder; // storage for parameter sets 82 81 #endif 83 84 82 TComSlice* m_apcSlicePilot; 85 83 -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncCfg.h
r363 r364 406 406 #endif 407 407 #endif 408 409 408 //====== Coding Structure ======== 410 409 Void setIntraPeriod ( Int i ) { m_uiIntraPeriod = (UInt)i; } -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r362 r364 410 410 UInt *accumNalsDU = NULL; 411 411 SEIDecodingUnitInfo decodingUnitInfoSEI; 412 413 412 #if !H_MV 414 413 for ( Int iGOPid=0; iGOPid < m_iGopSize; iGOPid++ ) … … 472 471 if(pocCurr>=m_pcCfg->getFramesToBeEncoded()) 473 472 { 474 475 473 #if H_MV 476 474 delete pcBitstreamRedirect; … … 2057 2055 assert ( m_iNumPicCoded == iNumPicRcvd ); 2058 2056 #endif 2059 2060 2057 } 2061 2058 … … 2377 2374 m_gcAnalyzeAll.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2378 2375 #endif 2379 2380 2376 TComSlice* pcSlice = pcPic->getSlice(0); 2381 2377 if (pcSlice->isIntra()) … … 2386 2382 m_gcAnalyzeI.addResult (dYPSNR, dUPSNR, dVPSNR, (Double)uibits); 2387 2383 #endif 2388 2389 2384 } 2390 2385 if (pcSlice->isInterP()) -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncGOP.h
r363 r364 108 108 #endif 109 109 #endif 110 111 110 //--Adaptive Loop filter 112 111 TEncSampleAdaptiveOffset* m_pcSAO; -
branches/HTM-DEV-0.1-dev/source/Lib/TLibEncoder/TEncTop.h
r362 r364 63 63 // Class definition 64 64 // ==================================================================================================================== 65 66 67 65 68 66 /// encoder class … … 133 131 TEncAnalyze m_cAnalyzeB; 134 132 #endif 135 136 133 protected: 137 134 Void xGetNewPicBuffer ( TComPic*& rpcPic ); ///< get picture buffer which will be processed … … 148 145 Void create (); 149 146 Void destroy (); 150 151 147 Void init (); 152 153 148 #if H_MV 154 149 TComPicLists* getIvPicLists() { return m_ivPicLists; } 155 150 #endif 156 157 151 Void deletePicBuffer (); 158 152 … … 162 156 Void initNewPic(TComPicYuv* pcPicYuvOrg); 163 157 #endif 164 165 158 // ------------------------------------------------------------------------------------------------------------------- 166 159 // member access functions
Note: See TracChangeset for help on using the changeset viewer.