Changeset 1157 in 3DVCSoftware for branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder
- Timestamp:
- 3 Mar 2015, 09:01:07 (10 years ago)
- Location:
- branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder/TEncCfg.h
r1133 r1157 180 180 Int m_iSearchRange; // 0:Full frame 181 181 Int m_bipredSearchRange; 182 182 #ifdef SONY_MV_V_CONST_C0078 183 Bool m_bUseDisparitySearchRangeRestriction; 184 Int m_iVerticalDisparitySearchRange; 185 #endif 183 186 //====== Quality control ======== 184 187 Int m_iMaxDeltaQP; // Max. absolute delta QP (1:default) … … 502 505 Void setSearchRange ( Int i ) { m_iSearchRange = i; } 503 506 Void setBipredSearchRange ( Int i ) { m_bipredSearchRange = i; } 507 #ifdef SONY_MV_V_CONST_C0078 508 Void setUseDisparitySearchRangeRestriction ( Bool b ) { m_bUseDisparitySearchRangeRestriction = b; } 509 Void setVerticalDisparitySearchRange ( Int i ) { m_iVerticalDisparitySearchRange = i; } 510 #endif 504 511 505 512 //====== Quality control ======== … … 554 561 Int getFastSearch () { return m_iFastSearch; } 555 562 Int getSearchRange () { return m_iSearchRange; } 563 #ifdef SONY_MV_V_CONST_C0078 564 Bool getUseDisparitySearchRangeRestriction () { return m_bUseDisparitySearchRangeRestriction; } 565 Int getVerticalDisparitySearchRange () { return m_iVerticalDisparitySearchRange; } 566 #endif 556 567 557 568 //==== Quality control ======== -
branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder/TEncSearch.cpp
r1133 r1157 5256 5256 return uiCost; 5257 5257 } 5258 5259 5258 Void TEncSearch::xMotionEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPartIdx, RefPicList eRefPicList, TComMv* pcMvPred, Int iRefIdxPred, TComMv& rcMv, UInt& ruiBits, UInt& ruiCost, Bool bBi ) 5260 5259 { … … 5269 5268 TComYuv* pcYuv = pcYuvOrg; 5270 5269 m_iSearchRange = m_aaiAdaptSR[eRefPicList][iRefIdxPred]; 5271 5272 5270 Int iSrchRng = ( bBi ? m_bipredSearchRange : m_iSearchRange ); 5273 5271 TComPattern* pcPatternKey = pcCU->getPattern (); … … 5311 5309 TComMv cMvPred = *pcMvPred; 5312 5310 5311 #ifdef SONY_MV_V_CONST_C0078 5312 Bool bMv_VRng_Restricted = false; 5313 if( m_pcEncCfg->getUseDisparitySearchRangeRestriction() 5314 && 5315 pcCU->getSlice()->getRefPic( eRefPicList, iRefIdxPred )->getPOC() == pcCU->getSlice()->getPOC() 5316 ) 5317 { 5318 bMv_VRng_Restricted = true; 5319 } 5320 if ( bBi ) xSetSearchRange ( pcCU, rcMv , iSrchRng, cMvSrchRngLT, cMvSrchRngRB, bMv_VRng_Restricted, m_pcEncCfg->getVerticalDisparitySearchRange() ); 5321 else xSetSearchRange ( pcCU, cMvPred, iSrchRng, cMvSrchRngLT, cMvSrchRngRB, bMv_VRng_Restricted, m_pcEncCfg->getVerticalDisparitySearchRange() ); 5322 #else 5313 5323 if ( bBi ) xSetSearchRange ( pcCU, rcMv , iSrchRng, cMvSrchRngLT, cMvSrchRngRB ); 5314 5324 else xSetSearchRange ( pcCU, cMvPred, iSrchRng, cMvSrchRngLT, cMvSrchRngRB ); 5315 5325 #endif 5326 5316 5327 m_pcRdCost->getMotionCost ( 1, 0 ); 5317 5328 … … 5365 5376 5366 5377 5378 #ifdef SONY_MV_V_CONST_C0078 5379 Void TEncSearch::xSetSearchRange ( TComDataCU* pcCU, TComMv& cMvPred, Int iSrchRng, TComMv& rcMvSrchRngLT, TComMv& rcMvSrchRngRB, Bool bMv_VRng_Restricted, Int iVerDispSrchRng ) 5380 #else 5367 5381 Void TEncSearch::xSetSearchRange ( TComDataCU* pcCU, TComMv& cMvPred, Int iSrchRng, TComMv& rcMvSrchRngLT, TComMv& rcMvSrchRngRB ) 5382 #endif 5368 5383 { 5369 5384 Int iMvShift = 2; … … 5380 5395 rcMvSrchRngRB.setHor( cTmpMvPred.getHor() + (iSrchRng << iMvShift) ); 5381 5396 rcMvSrchRngRB.setVer( cTmpMvPred.getVer() + (iSrchRng << iMvShift) ); 5397 5398 #ifdef SONY_MV_V_CONST_C0078 5399 if ( bMv_VRng_Restricted ) { 5400 Int iRestrictMvVrange = ( iVerDispSrchRng << iMvShift ) ; 5401 if ( rcMvSrchRngRB.getVer() >= iRestrictMvVrange ){ 5402 rcMvSrchRngRB.setVer( iRestrictMvVrange ); 5403 } 5404 if ( rcMvSrchRngLT.getVer() <= -iRestrictMvVrange ){ 5405 rcMvSrchRngLT.setVer( -iRestrictMvVrange ); 5406 } 5407 } 5408 #endif 5409 5382 5410 pcCU->clipMv ( rcMvSrchRngLT ); 5383 5411 pcCU->clipMv ( rcMvSrchRngRB ); -
branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder/TEncSearch.h
r1084 r1157 456 456 UInt& ruiCost, 457 457 Bool bBi = false ); 458 458 459 459 Void xTZSearch ( TComDataCU* pcCU, 460 460 TComPattern* pcPatternKey, … … 466 466 UInt& ruiSAD ); 467 467 468 #ifdef SONY_MV_V_CONST_C0078 469 Void xSetSearchRange ( TComDataCU* pcCU, 470 TComMv& cMvPred, 471 Int iSrchRng, 472 TComMv& rcMvSrchRngLT, 473 TComMv& rcMvSrchRngRB, 474 Bool bMv_VRng_Restricted, 475 Int iVerDispSrchRng ); 476 #else 468 477 Void xSetSearchRange ( TComDataCU* pcCU, 469 478 TComMv& cMvPred, … … 471 480 TComMv& rcMvSrchRngLT, 472 481 TComMv& rcMvSrchRngRB ); 473 482 #endif 483 474 484 Void xPatternSearchFast ( TComDataCU* pcCU, 475 485 TComPattern* pcPatternKey, -
branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder/TEncTop.cpp
r1133 r1157 760 760 m_cSPS.setSpsInferScalingListFlag ( true ); 761 761 m_cSPS.setSpsScalingListRefLayerId( m_cVPS->getIdRefLayer( getLayerId(), 0 ) ); 762 #if SONY_MV_V_CONST_C0078 763 if ( m_bUseDisparitySearchRangeRestriction ) 764 { 765 m_cSPS.setInterViewMvVertConstraintFlag ( true ) ; 766 } 767 #endif 762 768 } 763 769 m_cSPS.setSpsExtensionPresentFlag ( true );
Note: See TracChangeset for help on using the changeset viewer.