- Timestamp:
- 7 May 2013, 00:03:47 (12 years ago)
- Location:
- branches/SHM-2.0-dev/source
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-2.0-dev/source/App/TAppDecoder/TAppDecCfg.h
r125 r154 60 60 #if SVC_EXTENSION 61 61 Char* m_pchReconFile [MAX_LAYERS]; ///< output reconstruction file name 62 #if AVC_BASE63 Char* m_pchBLReconFile; ///< input BL reconstruction file name64 Int m_iBLSourceWidth;65 Int m_iBLSourceHeight;66 #if AVC_SYNTAX67 Char* m_pchBLSyntaxFile; ///< input BL syntax file name68 #endif69 #endif70 62 #else 71 63 Char* m_pchReconFile; ///< output reconstruction file name 72 #endif73 #if SYNTAX_OUTPUT74 Char* m_pchBLSyntaxFile; ///< input BL syntax file name75 Int m_iBLSourceWidth;76 Int m_iBLSourceHeight;77 Int m_iBLFrames;78 64 #endif 79 65 Int m_iSkipFrame; ///< counter for frames prior to the random access point to skip … … 86 72 #if SVC_EXTENSION 87 73 Int m_tgtLayerId; ///< target layer ID 74 #if AVC_BASE 75 Char* m_pchBLReconFile; ///< input BL reconstruction file name 76 Int m_iBLSourceWidth; 77 Int m_iBLSourceHeight; 78 #if AVC_SYNTAX 79 Char* m_pchBLSyntaxFile; ///< input BL syntax file name 88 80 #endif 81 #endif 82 #endif 83 84 #if SYNTAX_OUTPUT 85 Char* m_pchBLSyntaxFile; ///< input BL syntax file name 86 Int m_iBLSourceWidth; 87 Int m_iBLSourceHeight; 88 Int m_iBLFrames; 89 #endif 90 89 91 std::vector<Int> m_targetDecLayerIdSet; ///< set of LayerIds to be included in the sub-bitstream extraction process. 90 92 Int m_respectDefDispWindow; ///< Only output content inside the default display window … … 103 105 #if SVC_EXTENSION 104 106 , m_tgtLayerId(0) 105 #endif106 , m_respectDefDispWindow(0)107 107 #if AVC_BASE 108 108 , m_iBLSourceWidth(0) … … 114 114 , m_iBLFrames(0) 115 115 #endif 116 #endif 117 , m_respectDefDispWindow(0) 116 118 {} 117 119 virtual ~TAppDecCfg() {} -
branches/SHM-2.0-dev/source/App/TAppDecoder/TAppDecTop.cpp
r152 r154 157 157 #if AVC_BASE 158 158 TComPic pcBLPic; 159 if( !m_pchBLReconFile ) 160 { 161 printf( "Wrong base layer YUV input file\n" ); 162 exit(EXIT_FAILURE); 163 } 164 fstream streamYUV( m_pchBLReconFile, fstream::in | fstream::binary ); 165 if( !streamYUV.good() ) 166 { 167 printf( "Base layer YUV input reading error\n" ); 168 exit(EXIT_FAILURE); 159 fstream streamYUV; 160 if( m_pchBLReconFile ) 161 { 162 streamYUV.open( m_pchBLReconFile, fstream::in | fstream::binary ); 169 163 } 170 164 TComList<TComPic*> *cListPic = m_acTDecTop[0].getListPic(); … … 174 168 cListPic->pushBack( &pcBLPic ); 175 169 #if AVC_SYNTAX 176 if( !m_pchBLSyntaxFile ) 177 { 178 printf( "Wrong base layer syntax file\n" ); 179 exit(EXIT_FAILURE); 180 } 181 fstream streamSyntaxFile( m_pchBLSyntaxFile, fstream::in | fstream::binary ); 182 if( !streamSyntaxFile.good() ) 183 { 184 printf( "Base layer syntax input reading error\n" ); 185 exit(EXIT_FAILURE); 170 fstream streamSyntaxFile; 171 if( m_pchBLSyntaxFile ) 172 { 173 streamSyntaxFile.open( m_pchBLSyntaxFile, fstream::in | fstream::binary ); 186 174 } 187 175 m_acTDecTop[0].setBLSyntaxFile( &streamSyntaxFile ); -
branches/SHM-2.0-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r146 r154 343 343 #endif 344 344 } 345 #if AVC_BASE 346 string cfg_BLInputFile; 347 #endif 345 348 #if AVC_SYNTAX 346 349 string cfg_BLSyntaxFile; … … 399 402 400 403 #if AVC_BASE 401 ("InputBLFile,-ibl", *cfg_InputFile[0], string(""), "Base layer rec YUV input file name") 404 ("AvcBase", m_avcBaseLayerFlag, 0, "AVC_BASElayer_flag") 405 ("InputBLFile,-ibl", cfg_BLInputFile, string(""), "Base layer rec YUV input file name") 402 406 #if AVC_SYNTAX 403 407 ("InputBLSyntaxFile,-ibs", cfg_BLSyntaxFile, string(""), "Base layer syntax input file name") … … 716 720 ; 717 721 722 #if AVC_BASE 723 if( m_avcBaseLayerFlag ) 724 { 725 *cfg_InputFile[0] = cfg_BLInputFile; 726 } 727 #endif 728 718 729 for(Int i=1; i<MAX_GOP+1; i++) { 719 730 std::ostringstream cOSS; … … 1906 1917 #if SVC_EXTENSION 1907 1918 printf("RecalQP:%d ", m_recalculateQPAccordingToLambda ? 1 : 0 ); 1908 printf("AVC_BASE:%d ", AVC_BASE); 1919 #if AVC_BASE 1920 printf("AvcBase:%d ", m_avcBaseLayerFlag ? 1 : 0); 1921 #else 1922 printf("AvcBase:%d ", 0); 1923 #endif 1909 1924 #if REF_IDX_FRAMEWORK 1910 1925 printf("REF_IDX_FRAMEWORK:%d ", REF_IDX_FRAMEWORK); -
branches/SHM-2.0-dev/source/App/TAppEncoder/TAppEncCfg.h
r133 r154 67 67 UInt m_FrameSkip; ///< number of skipped frames from the beginning 68 68 Int m_framesToBeEncoded; ///< number of encoded frames 69 #if AVC_BASE 70 Int m_avcBaseLayerFlag; ///< AVC_BASElayer_flag 71 #endif 69 72 #if AVC_SYNTAX 70 char* m_BLSyntaxFile; ///< input syntax file73 Char* m_BLSyntaxFile; ///< input syntax file 71 74 #endif 72 75 #else -
branches/SHM-2.0-dev/source/App/TAppEncoder/TAppEncTop.cpp
r152 r154 112 112 113 113 #if REF_IDX_MFM 114 #if AVC_BASE 115 m_acTEncTop[layer].setMFMEnabledFlag(layer == 0 ? false : ( m_avcBaseLayerFlag ? AVC_SYNTAX : true )); 116 #else 114 117 m_acTEncTop[layer].setMFMEnabledFlag(layer == 0 ? false : true); 118 #endif 115 119 #endif 116 120 // set layer ID … … 805 809 #if VPS_EXTN_MASK_AND_DIM_INFO 806 810 UInt i = 0, dimIdLen = 0; 811 #if AVC_BASE 812 vps->setAvcBaseLayerFlag(m_avcBaseLayerFlag); 813 #else 807 814 vps->setAvcBaseLayerFlag(false); 815 #endif 808 816 vps->setSplittingFlag(false); 809 817 for(i = 0; i < MAX_VPS_NUM_SCALABILITY_TYPES; i++) … … 931 939 932 940 #if AVC_SYNTAX 933 if( !m_BLSyntaxFile ) 934 { 935 printf( "Wrong base layer syntax input file\n" ); 936 exit(EXIT_FAILURE); 937 } 938 fstream streamSyntaxFile( m_BLSyntaxFile, fstream::in | fstream::binary ); 939 if( !streamSyntaxFile.good() ) 940 { 941 printf( "Base layer syntax input reading error\n" ); 942 exit(EXIT_FAILURE); 943 } 944 m_acTEncTop[0].setBLSyntaxFile( &streamSyntaxFile ); 941 fstream streamSyntaxFile; 942 if( m_acTEncTop[0].getVPS()->getAvcBaseLayerFlag() ) 943 { 944 if( !m_BLSyntaxFile ) 945 { 946 printf( "Wrong base layer syntax input file\n" ); 947 exit(EXIT_FAILURE); 948 } 949 streamSyntaxFile.open( m_BLSyntaxFile, fstream::in | fstream::binary ); 950 if( !streamSyntaxFile.good() ) 951 { 952 printf( "Base layer syntax input reading error\n" ); 953 exit(EXIT_FAILURE); 954 } 955 m_acTEncTop[0].setBLSyntaxFile( &streamSyntaxFile ); 956 } 945 957 #endif 946 958 -
branches/SHM-2.0-dev/source/Lib/TLibCommon/TComSlice.cpp
r149 r154 1612 1612 #endif 1613 1613 { 1614 1615 1614 for( Int i = 0; i < MAX_TLAYER; i++) 1616 1615 { -
branches/SHM-2.0-dev/source/Lib/TLibCommon/TypeDef.h
r152 r154 66 66 #define JCTVC_M0259_LAMBDAREFINEMENT 1 ///< JCTVC-M0259: lambda refinement (encoder only optimization) 67 67 68 #define AVC_BASE 0 ///< YUV BL reading for AVC base SVC69 68 #define REF_IDX_FRAMEWORK 1 ///< inter-layer reference framework 70 69 … … 75 74 #define IDR_ALIGNMENT 1 ///< align IDR picures across layers 76 75 76 #define AVC_BASE 1 ///< YUV BL reading for AVC base SVC 77 77 #if AVC_BASE 78 #define AVC_SYNTAX 1///< Syntax reading for AVC base78 #define AVC_SYNTAX 0 ///< Syntax reading for AVC base 79 79 #endif 80 80 … … 82 82 #define REF_IDX_ME_ZEROMV 1 ///< L0051: use zero motion for inter-layer reference picture (without fractional ME) 83 83 #define ENCODER_FAST_MODE 1 ///< L0174: enable encoder fast mode. TestMethod 1 is enabled by setting to 1 and TestMethod 2 is enable by setting to 2. By default it is set to 1. 84 #if !AVC_BASE || AVC_SYNTAX85 84 #define REF_IDX_MFM 1 ///< L0336: motion vector mapping of inter-layer reference picture 86 #endif87 85 88 86 #if REF_IDX_MFM -
branches/SHM-2.0-dev/source/Lib/TLibDecoder/TDecTop.cpp
r153 r154 581 581 { 582 582 #if AVC_BASE 583 if( m_layerId == 1 )583 if( m_layerId == 1 && m_parameterSetManagerDecoder[0].getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 584 584 { 585 585 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin()); 586 586 fstream* pFile = m_ppcTDecTop[0]->getBLReconFile(); 587 #if ILP_DECODED_PICTURE 588 UInt uiWidth = pBLPic->getPicYuvRec()->getWidth(); 589 UInt uiHeight = pBLPic->getPicYuvRec()->getHeight(); 590 #else 587 591 const Window &conf = pBLPic->getConformanceWindow(); 588 592 #if ILP_DECODED_PICTURE … … 796 800 { 797 801 #if AVC_BASE 798 pcSlice->setBaseColPic ( *m_ppcTDecTop[0]->getListPic()->begin() ); 802 if( m_parameterSetManagerDecoder[0].getActiveVPS()->getAvcBaseLayerFlag() ) 803 { 804 pcSlice->setBaseColPic ( *m_ppcTDecTop[0]->getListPic()->begin() ); 799 805 #if AVC_SYNTAX 800 TComPic* pBLPic = pcSlice->getBaseColPic(); 801 if( pcSlice->getPOC() == 0 ) 802 { 803 // initialize partition order. 804 UInt* piTmp = &g_auiZscanToRaster[0]; 805 initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp ); 806 initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 ); 807 } 808 pBLPic->getSlice( 0 )->initBaseLayerRPL( pcSlice ); 809 pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES ); 810 #endif 811 806 TComPic* pBLPic = pcSlice->getBaseColPic(); 807 if( pcSlice->getPOC() == 0 ) 808 { 809 // initialize partition order. 810 UInt* piTmp = &g_auiZscanToRaster[0]; 811 initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp ); 812 initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 ); 813 } 814 pBLPic->getSlice( 0 )->initBaseLayerRPL( pcSlice ); 815 pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES ); 816 #endif 817 } 818 else 819 { 820 #if VPS_EXTN_DIRECT_REF_LAYERS_CONTINUE 821 TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( m_layerId ); 822 #else 823 TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 ); 824 #endif 825 TComList<TComPic*> *cListPic = pcTDecTop->getListPic(); 826 pcSlice->setBaseColPic ( *cListPic, m_layerId ); 827 } 812 828 #else 813 829 #if VPS_EXTN_DIRECT_REF_LAYERS_CONTINUE … … 837 853 setILRPic(pcPic); 838 854 #if REF_IDX_MFM 839 pcSlice->setRefPOCListILP(m_ppcTDecTop[m_layerId]->m_cIlpPic, pcSlice->getBaseColPic()); 855 if( pcSlice->getSPS()->getMFMEnabledFlag() ) 856 { 857 pcSlice->setRefPOCListILP(m_ppcTDecTop[m_layerId]->m_cIlpPic, pcSlice->getBaseColPic()); 858 } 840 859 #endif 841 860 #if REF_LIST_BUGFIX … … 1079 1098 case NAL_UNIT_VPS: 1080 1099 xDecodeVPS(); 1100 #if AVC_BASE 1101 if( m_parameterSetManagerDecoder[0].getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 1102 { 1103 if( !m_ppcTDecTop[0]->getBLReconFile()->good() ) 1104 { 1105 printf( "Base layer YUV input reading error\n" ); 1106 exit(EXIT_FAILURE); 1107 } 1108 #if AVC_SYNTAX 1109 if( !m_ppcTDecTop[0]->getBLSyntaxFile()->good() ) 1110 { 1111 printf( "Base layer syntax input reading error\n" ); 1112 exit(EXIT_FAILURE); 1113 } 1114 #endif 1115 } 1116 else 1117 { 1118 TComList<TComPic*> *cListPic = m_ppcTDecTop[0]->getListPic(); 1119 cListPic->clear(); 1120 } 1121 #endif 1081 1122 return false; 1082 1123 … … 1084 1125 xDecodeSPS(); 1085 1126 #if AVC_BASE 1127 if( m_parameterSetManagerDecoder[0].getPrefetchedVPS(0)->getAvcBaseLayerFlag() ) 1086 1128 { 1087 1129 TComPic* pBLPic = (*m_ppcTDecTop[0]->getListPic()->begin()); -
branches/SHM-2.0-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r138 r154 1109 1109 startCUAddrSliceSegmentIdx++; 1110 1110 #if AVC_BASE 1111 if( m_layerId == 0 )1111 if( m_layerId == 0 && m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) 1112 1112 { 1113 1113 pcPic->getPicYuvOrg()->copyToPic( pcPic->getPicYuvRec() ); … … 1225 1225 OutputNALUnit nalu(NAL_UNIT_VPS, 0, m_layerId); 1226 1226 #if AVC_BASE 1227 if( m_layerId == 1)1227 if( ( m_layerId == 1 && m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) || ( m_layerId == 0 && !m_pcEncTop->getVPS()->getAvcBaseLayerFlag() ) ) 1228 1228 #else 1229 1229 if( m_layerId == 0 )
Note: See TracChangeset for help on using the changeset viewer.