Changeset 42 in 3DVCSoftware for trunk/source/Lib/TLibEncoder
- Timestamp:
- 26 Mar 2012, 18:05:40 (13 years ago)
- Location:
- trunk/source/Lib/TLibEncoder
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r5 r42 39 39 40 40 #include "TEncCavlc.h" 41 #include "../TLibCommon/SEI.h" 41 42 #include "SEIwrite.h" 42 43 … … 228 229 void TEncCavlc::codeSEI(const SEI& sei) 229 230 { 231 #if BITSTREAM_EXTRACTION 232 codeNALUnitHeader( NAL_UNIT_SEI, NAL_REF_IDC_PRIORITY_LOWEST, 0, sei.getLayerId() ); 233 #else 230 234 codeNALUnitHeader(NAL_UNIT_SEI, NAL_REF_IDC_PRIORITY_LOWEST); 235 #endif 231 236 writeSEImessage(*m_pcBitIf, sei); 232 237 } … … 235 240 { 236 241 // uiFirstByte 242 #if BITSTREAM_EXTRACTION 243 codeNALUnitHeader( NAL_UNIT_PPS, NAL_REF_IDC_PRIORITY_HIGHEST, 0, pcPPS->getLayerId() ); 244 #else 237 245 codeNALUnitHeader( NAL_UNIT_PPS, NAL_REF_IDC_PRIORITY_HIGHEST ); 246 #endif 238 247 239 248 xWriteUvlc( pcPPS->getPPSId() ); … … 249 258 } 250 259 260 #if BITSTREAM_EXTRACTION 261 Void TEncCavlc::codeNALUnitHeader( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId, UInt uiLayerId ) 262 { 263 // uiFirstByte 264 xWriteCode( 0, 1); // forbidden_zero_flag 265 xWriteCode( eNalRefIdc==0 ? 0:1, 1); // nal_ref_flag 266 xWriteCode( eNalUnitType, 6); // nal_unit_type 267 268 xWriteCode( TemporalId, 3); // temporal_id 269 xWriteCode( uiLayerId+1, 5); // layer_id_plus1 270 } 271 #else 251 272 Void TEncCavlc::codeNALUnitHeader( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId, Bool bOutputFlag ) 252 273 { … … 263 284 } 264 285 } 286 #endif 265 287 266 288 Void TEncCavlc::codeSPS( TComSPS* pcSPS ) 267 289 { 268 290 // uiFirstByte 291 #if BITSTREAM_EXTRACTION 292 codeNALUnitHeader( NAL_UNIT_SPS, NAL_REF_IDC_PRIORITY_HIGHEST, 0, pcSPS->getLayerId() ); 293 #else 269 294 codeNALUnitHeader( NAL_UNIT_SPS, NAL_REF_IDC_PRIORITY_HIGHEST ); 295 #endif 270 296 271 297 // Structure … … 385 411 // here someone can add an appropriated NalRefIdc type 386 412 #if DCM_DECODING_REFRESH 413 #if BITSTREAM_EXTRACTION 414 codeNALUnitHeader (pcSlice->getNalUnitType(), NAL_REF_IDC_PRIORITY_HIGHEST, 1, pcSlice->getLayerId()); 415 #else 387 416 codeNALUnitHeader (pcSlice->getNalUnitType(), NAL_REF_IDC_PRIORITY_HIGHEST, 1, true); 417 #endif 418 #else 419 #if BITSTREAM_EXTRACTION 420 codeNALUnitHeader (NAL_UNIT_CODED_SLICE, NAL_REF_IDC_PRIORITY_HIGHEST, 0, pcSlice->getLayerId()); 388 421 #else 389 422 codeNALUnitHeader (NAL_UNIT_CODED_SLICE, NAL_REF_IDC_PRIORITY_HIGHEST); 423 #endif 390 424 #endif 391 425 -
trunk/source/Lib/TLibEncoder/TEncCavlc.h
r5 r42 206 206 UInt getCoeffCost () { return m_uiCoeffCost; } 207 207 208 #if BITSTREAM_EXTRACTION 209 Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, UInt uiLayerId = 0 ); 210 #else 208 211 Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, Bool bOutputFlag = true ); 212 #endif 209 213 210 214 Void codeSPS ( TComSPS* pcSPS ); -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r21 r42 159 159 Bool m_bUseDMM; 160 160 #endif 161 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 162 Bool m_bUseDMM34; 163 #endif 161 164 #if HHI_MPI 162 165 Bool m_bUseMVI; … … 184 187 //std::vector<int> m_aiLayerQPOffset; 185 188 189 #if BITSTREAM_EXTRACTION 190 UInt m_uiLayerId; 191 #endif 186 192 UInt m_uiViewId; 187 193 Int m_iViewOrderIdx; … … 235 241 Void setRateGOPSize ( Int i ) { m_iRateGOPSize = i; } 236 242 243 #if BITSTREAM_EXTRACTION 244 Void setLayerId ( UInt u ) { m_uiLayerId = u; } 245 UInt getLayerId ( ) { return m_uiLayerId; } 246 #endif 237 247 Void setViewId ( UInt u ) { m_uiViewId = u; } 238 248 Void setViewOrderIdx ( Int i ) { m_iViewOrderIdx = i; } … … 424 434 Bool getUseDMM() { return m_bUseDMM; } 425 435 #endif 426 436 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 437 Void setUseDMM34( Bool b) { m_bUseDMM34 = b; } 438 Bool getUseDMM34() { return m_bUseDMM34; } 439 #endif 427 440 #if LM_CHROMA 428 441 Bool getUseLMChroma () { return m_bUseLMChroma; } -
trunk/source/Lib/TLibEncoder/TEncEntropy.h
r5 r42 72 72 virtual UInt getCoeffCost () = 0; 73 73 74 #if BITSTREAM_EXTRACTION 75 virtual Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, UInt uiLayerId = 0 ) = 0; 76 #else 74 77 virtual Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, Bool bOutputFlag = true ) = 0; 78 #endif 75 79 76 80 virtual Void codeSPS ( TComSPS* pcSPS ) = 0; -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r5 r42 639 639 seiBs.create(1024); 640 640 /* write the SEI messages */ 641 #if BITSTREAM_EXTRACTION 642 sei_recon_picture_digest.setLayerId( pcSlice->getLayerId() ); 643 #endif 641 644 m_pcEntropyCoder->setEntropyCoder(m_pcCavlcCoder, pcSlice); 642 645 m_pcEntropyCoder->setBitstream(&seiBs); … … 824 827 } 825 828 826 #if HHI_VSO 829 #if HHI_VSO_PRINT_DIST 827 830 if ( m_pcRdCost->getUseRenModel() ) 828 831 { -
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r5 r42 177 177 } 178 178 179 #if BITSTREAM_EXTRACTION 180 Void TEncSbac::codeNALUnitHeader( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId, UInt uiLayerId ) 181 #else 179 182 Void TEncSbac::codeNALUnitHeader( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId, Bool bOutputFlag ) 183 #endif 180 184 { 181 185 assert (0); … … 1126 1130 #endif 1127 1131 #if HHI_DMM_PRED_TEX 1132 #if FLEX_CODING_ORDER 1133 if ( !pcCU->getSlice()->getSPS()->getUseDMM34() ) 1134 { 1135 assert( uiDir != DMM_WEDGE_PREDTEX_D_IDX ); 1136 assert( uiDir != DMM_CONTOUR_PREDTEX_D_IDX ); 1137 } 1138 #endif 1128 1139 if( uiDir == DMM_WEDGE_PREDTEX_D_IDX ) { xCodeWedgePredTexDeltaInfo ( pcCU, uiAbsPartIdx ); } 1129 1140 if( uiDir == DMM_CONTOUR_PREDTEX_D_IDX ) { xCodeContourPredTexDeltaInfo( pcCU, uiAbsPartIdx ); } -
trunk/source/Lib/TLibEncoder/TEncSbac.h
r5 r42 89 89 //--SBAC RD 90 90 91 #if BITSTREAM_EXTRACTION 92 Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, UInt uiLayerId = 0 ); 93 #else 91 94 Void codeNALUnitHeader ( NalUnitType eNalUnitType, NalRefIdc eNalRefIdc, UInt TemporalId = 0, Bool bOutputFlag = true ); 95 #endif 92 96 93 97 Void codeSPS ( TComSPS* pcSPS ); -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r5 r42 1926 1926 #endif 1927 1927 #if HHI_DMM_PRED_TEX 1928 #if FLEX_CODING_ORDER 1929 if ( pcCU->getSlice()->getSPS()->getUseDMM34() ) 1930 { 1931 #endif 1928 1932 TComYuv cTempYuv; cTempYuv.create( uiWidth, uiHeight ); cTempYuv.clear(); 1929 1933 Pel* piTempY = cTempYuv.getLumaAddr(); … … 1958 1962 uiRdModeList[ uiNewMaxMode++ ] = DMM_CONTOUR_PREDTEX_D_IDX; 1959 1963 } 1960 1961 1964 cTempYuv.destroy(); 1965 #if FLEX_CODING_ORDER 1966 } 1967 #endif 1962 1968 #endif 1963 1969 } … … 1988 1994 #else 1989 1995 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 1996 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 1997 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() ) ) 1998 #else 1990 1999 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight ) ) 2000 #endif 1991 2001 continue; 1992 2002 #endif … … 2076 2086 #else 2077 2087 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 2088 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 2089 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight, pcCU->getSlice()->getSPS()->getUseDMM34() ) ) 2090 #else 2078 2091 if( m_pcEncCfg->isDepthCoder() && !predIntraLumaDMMAvailable( uiOrgMode, uiWidth, uiHeight ) ) 2092 #endif 2079 2093 continue; 2080 2094 #endif … … 2719 2733 } 2720 2734 2735 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 2736 Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight, Bool bDMMAvailable34 ) 2737 #else 2721 2738 Bool TEncSearch::predIntraLumaDMMAvailable( UInt uiMode, UInt uiWidth, UInt uiHeight ) 2739 #endif 2722 2740 { 2723 2741 if( uiMode <= MAX_MODE_ID_INTRA_DIR ) return true; … … 2747 2765 bDMMAvailable = false; 2748 2766 } 2767 #if FLEX_CODING_ORDER 2768 if ( !bDMMAvailable34 ) 2769 { 2770 bDMMAvailable = false; 2771 } 2772 #endif 2749 2773 } 2750 2774 -
trunk/source/Lib/TLibEncoder/TEncSearch.h
r5 r42 207 207 Bool predIntraLumaDMMAvailable( UInt uiMode, 208 208 UInt uiWidth, 209 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 210 UInt uiHeight, 211 Bool bDMMAvailable34 ); 212 #else 209 213 UInt uiHeight ); 214 #endif 210 215 #endif 211 216 #if HHI_DMM_WEDGE_INTRA -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r21 r42 149 149 rpcSlice->initSlice(); 150 150 rpcSlice->setPOC( pcPic->getPOC() ); 151 #if BITSTREAM_EXTRACTION 152 rpcSlice->setLayerId( m_pcCfg->getLayerId() ); 153 #endif 151 154 #if SONY_COLPIC_AVAILABILITY 152 155 rpcSlice->setViewOrderIdx(m_pcCfg->getViewOrderIdx()); -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r21 r42 287 287 288 288 bool bSomethingCoded = false ; 289 289 #if FLEX_CODING_ORDER 290 if (TEncTop::m_bPicWaitingForCoding ) 291 #else 290 292 if (m_bPicWaitingForCoding ) 293 #endif 291 294 { 292 295 std::map<Int, TComPic*>::iterator cIter = m_acInputPicMap.find( (Int)m_cSeqIter.getPoc() ); … … 543 546 m_cSPS.setMaxTrSize ( 1 << m_uiQuadtreeTULog2MaxSize ); 544 547 548 #if BITSTREAM_EXTRACTION 549 m_cSPS.setLayerId( m_uiLayerId ); 550 #endif 551 545 552 if( m_bIsDepth ) 546 553 { … … 616 623 m_cSPS.setUseDMM( m_bUseDMM ); 617 624 #endif 625 #if HHI_DMM_PRED_TEX && FLEX_CODING_ORDER 626 m_cSPS.setUseDMM34( m_bUseDMM34 ); 627 #endif 618 628 #if HHI_MPI 619 629 m_cSPS.setUseMVI( m_bUseMVI ); … … 626 636 Void TEncTop::xInitPPS() 627 637 { 638 #if BITSTREAM_EXTRACTION 639 m_cPPS.setLayerId( m_uiLayerId ); 640 #endif 641 628 642 m_cPPS.setConstrainedIntraPred( m_bUseConstrainedIntraPred ); 629 643 m_cPPS.setPPSId( ( m_uiViewId << 1 ) + ( m_bIsDepth ? 1 : 0 ) );
Note: See TracChangeset for help on using the changeset viewer.