Changeset 154 in SHVCSoftware for branches/SHM-2.0-dev/source/Lib
- Timestamp:
- 7 May 2013, 00:03:47 (12 years ago)
- Location:
- branches/SHM-2.0-dev/source/Lib
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
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.