Changeset 1158 in 3DVCSoftware


Ignore:
Timestamp:
3 Mar 2015, 10:44:14 (10 years ago)
Author:
sony
Message:

Fix for SONY_MV_V_CONST_C0078
1) search range limit to consider sub-pel search
2) added disparity vector check module

ohji.nakagami@…

Location:
branches/HTM-13.1-dev2-Sony/source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-13.1-dev2-Sony/source/App/TAppEncoder/TAppEncCfg.cpp

    r1157 r1158  
    15871587  xConfirmPara( m_bipredSearchRange < 0 ,                                                   "Search Range must be more than 0" );
    15881588#ifdef SONY_MV_V_CONST_C0078
    1589   xConfirmPara( m_iVerticalDisparitySearchRange < 0 ,                                      "Vertical Disparity Search Range must be more than 0" );
     1589  xConfirmPara( m_iVerticalDisparitySearchRange <= 0 ,                                      "Vertical Disparity Search Range must be more than 0" );
    15901590#endif
    15911591  xConfirmPara( m_iMaxDeltaQP > 7,                                                          "Absolute Delta QP exceeds supported range (0 to 7)" );
  • branches/HTM-13.1-dev2-Sony/source/Lib/TLibCommon/TComDataCU.cpp

    r1152 r1158  
    53415341}
    53425342
     5343#if SONY_MV_V_CONST_C0078
     5344Void TComDataCU::checkMV_V (TComMv&  rcMv,  RefPicList eRefPicList, int iRefIdx )
     5345{
     5346  if ( getSlice()->getSPS()->getInterViewMvVertConstraintFlag() )
     5347  {
     5348    if ( getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC() == getSlice()->getPOC() )
     5349    {
     5350        //When inter_view_mv_vert_constraint_flag is equal to 1,
     5351        //the vertical component of the motion vectors used for inter-layer prediction
     5352        //shall be equal to or less than 56 in units of luma samples
     5353        assert ( rcMv.getVer() <= (56<<2) );
     5354    }
     5355  }
     5356}
     5357#endif
     5358
    53435359UInt TComDataCU::getIntraSizeIdx(UInt uiAbsPartIdx)
    53445360{
  • branches/HTM-13.1-dev2-Sony/source/Lib/TLibCommon/TComDataCU.h

    r1133 r1158  
    591591 
    592592  Void          clipMv                ( TComMv&     rcMv     );
     593#if SONY_MV_V_CONST_C0078
     594  Void          checkMV_V (TComMv&  rcMv,  RefPicList eRefPicList, int iRefIdx );
     595#endif
    593596  Void          getMvPredLeft         ( TComMv&     rcMvPred )   { rcMvPred = m_cMvFieldA.getMv(); }
    594597  Void          getMvPredAbove        ( TComMv&     rcMvPred )   { rcMvPred = m_cMvFieldB.getMv(); }
  • branches/HTM-13.1-dev2-Sony/source/Lib/TLibCommon/TComPrediction.cpp

    r1152 r1158  
    12931293  TComMv      cMv         = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr );
    12941294  pcCU->clipMv(cMv);
    1295 
     1295#if SONY_MV_V_CONST_C0078
     1296  pcCU->checkMV_V(cMv, eRefPicList, iRefIdx );
     1297#endif
    12961298#if H_3D_ARP
    12971299  if(pcCU->getARPW( uiPartAddr ) > 0  && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC())
  • branches/HTM-13.1-dev2-Sony/source/Lib/TLibEncoder/TEncSearch.cpp

    r1157 r1158  
    53985398#ifdef SONY_MV_V_CONST_C0078
    53995399  if ( bMv_VRng_Restricted ) {
    5400     Int iRestrictMvVrange = ( iVerDispSrchRng << iMvShift ) ;
     5400    Int iRestrictMvVrange = ( iVerDispSrchRng - 1 ) << iMvShift ; // -1 to consider subpel search
    54015401    if ( rcMvSrchRngRB.getVer() >= iRestrictMvVrange  ){
    5402       rcMvSrchRngRB.setVer( iRestrictMvVrange );
    5403     }
    5404     if ( rcMvSrchRngLT.getVer() <= -iRestrictMvVrange ){
    5405       rcMvSrchRngLT.setVer( -iRestrictMvVrange );
     5402      rcMvSrchRngRB.setVer( iRestrictMvVrange ); //only positive side is restricted
    54065403    }
    54075404  }
Note: See TracChangeset for help on using the changeset viewer.