Changeset 1157 in 3DVCSoftware for branches/HTM-13.1-dev2-Sony/source
- Timestamp:
- 3 Mar 2015, 09:01:07 (10 years ago)
- Location:
- branches/HTM-13.1-dev2-Sony/source
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-13.1-dev2-Sony/source/App/TAppEncoder/TAppEncCfg.cpp
r1133 r1157 477 477 ("FastSearch", m_iFastSearch, 1, "0:Full search 1:Diamond 2:PMVFAST") 478 478 ("SearchRange,-sr", m_iSearchRange, 96, "Motion search range") 479 #ifdef SONY_MV_V_CONST_C0078 480 ("DispSearchRangeRestriction", m_bUseDisparitySearchRangeRestriction, false, "restrict disparity search range") 481 ("VerticalDispSearchRange", m_iVerticalDisparitySearchRange, 56, "vertical disparity search range") 482 #endif 479 483 ("BipredSearchRange", m_bipredSearchRange, 4, "Motion search range for bipred refinement") 480 484 ("HadamardME", m_bUseHADME, true, "Hadamard ME for fractional-pel") … … 1582 1586 xConfirmPara( m_iSearchRange < 0 , "Search Range must be more than 0" ); 1583 1587 xConfirmPara( m_bipredSearchRange < 0 , "Search Range must be more than 0" ); 1588 #ifdef SONY_MV_V_CONST_C0078 1589 xConfirmPara( m_iVerticalDisparitySearchRange < 0 , "Vertical Disparity Search Range must be more than 0" ); 1590 #endif 1584 1591 xConfirmPara( m_iMaxDeltaQP > 7, "Absolute Delta QP exceeds supported range (0 to 7)" ); 1585 1592 xConfirmPara( m_iMaxCuDQPDepth > m_uiMaxCUDepth - 1, "Absolute depth for a minimum CuDQP exceeds maximum coding unit depth" ); … … 2453 2460 printf("Min PCM size : %d\n", 1 << m_uiPCMLog2MinSize); 2454 2461 printf("Motion search range : %d\n", m_iSearchRange ); 2462 #ifdef SONY_MV_V_CONST_C0078 2463 printf("Disp search range restriction: %d\n", m_bUseDisparitySearchRangeRestriction ); 2464 printf("Vertical disp search range : %d\n", m_iVerticalDisparitySearchRange ); 2465 #endif 2455 2466 #if H_MV 2456 2467 xPrintParaVector( "Intra period", m_iIntraPeriod ); -
branches/HTM-13.1-dev2-Sony/source/App/TAppEncoder/TAppEncCfg.h
r1133 r1157 289 289 Int m_iSearchRange; ///< ME search range 290 290 Int m_bipredSearchRange; ///< ME search range for bipred refinement 291 #ifdef SONY_MV_V_CONST_C0078 292 Bool m_bUseDisparitySearchRangeRestriction; ///< restrict vertical search range for inter-view prediction 293 Int m_iVerticalDisparitySearchRange; ///< ME vertical search range for inter-view prediction 294 #endif 291 295 Bool m_bUseFastEnc; ///< flag for using fast encoder setting 292 296 Bool m_bUseEarlyCU; ///< flag for using Early CU setting -
branches/HTM-13.1-dev2-Sony/source/App/TAppEncoder/TAppEncTop.cpp
r1133 r1157 348 348 m_cTEncTop.setBipredSearchRange ( m_bipredSearchRange ); 349 349 350 #if SONY_MV_V_CONST_C0078 351 m_cTEncTop.setUseDisparitySearchRangeRestriction ( m_bUseDisparitySearchRangeRestriction ); 352 m_cTEncTop.setVerticalDisparitySearchRange ( m_iVerticalDisparitySearchRange ); 353 #endif 350 354 //====== Quality control ======== 351 355 m_cTEncTop.setMaxDeltaQP ( m_iMaxDeltaQP ); -
branches/HTM-13.1-dev2-Sony/source/Lib/TLibCommon/TypeDef.h
r1152 r1157 64 64 #define H_MV ( HEVC_EXT != 0) 65 65 #define H_3D ( HEVC_EXT == 2) 66 67 #if H_MV 68 #define SONY_MV_V_CONST_C0078 1 // Control disparity vector search range via configuration file 69 #endif 66 70 67 71 #define NTT_BUG_FIX_TK54 1 -
branches/HTM-13.1-dev2-Sony/source/Lib/TLibDecoder/TDecTop.cpp
r1133 r1157 954 954 955 955 xActivateParameterSets(); 956 957 #if SONY_MV_V_CONST_C0078 958 //Check Multiview Main profile constraint in G.11.1.1 959 // When ViewOrderIdx[ i ] derived according to any active VPS is equal to 1 960 // for the layer with nuh_layer_id equal to i in subBitstream, 961 // inter_view_mv_vert_constraint_flag shall be equal to 1 962 // in the sps_multilayer_extension( ) syntax structure in each active SPS for that layer. 963 if( m_apcSlicePilot->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc()==Profile::MULTIVIEWMAIN 964 && 965 m_apcSlicePilot->getVPS()->getViewOrderIdx(m_apcSlicePilot->getVPS()->getLayerIdInNuh(getLayerId()))==1 966 ) 967 { 968 assert( m_apcSlicePilot->getSPS()->getInterViewMvVertConstraintFlag()==1 ); 969 } 970 #endif 956 971 957 972 if (m_apcSlicePilot->isNextSlice()) -
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.