Ignore:
Timestamp:
10 May 2013, 10:17:06 (11 years ago)
Author:
mediatek-htm
Message:

ARP Warning Fix, the related MACRO is "QC_ARP_WARNING_FIX"

by Yu-Lin Chang (yulin.chang@…)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.2-dev2-Mediatek/source/Lib/TLibCommon/TComDataCU.cpp

    r373 r390  
    6969    if (vspIdx < 4)
    7070    {
     71#if MTK_VSP_USING_NBDV_D0105
     72      pcMvFieldNeighbours[ iCount<<1].setMvField ( pDInfo->m_acMvCandNoRef[0],  NOT_VALID );
     73#else
    7174      pcMvFieldNeighbours[ iCount<<1].setMvField ( pDInfo->m_acMvCand[0],  NOT_VALID );
     75#endif
    7276      if ( pcCURef->getSlice()->isInterB() )
    7377      {
     78#if MTK_VSP_USING_NBDV_D0105
     79        pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField ( pDInfo->m_acMvCandNoRef[0],  NOT_VALID );
     80#else
    7481         pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField ( pDInfo->m_acMvCand[0],  NOT_VALID );
     82#endif
    7583      }
    7684    }
     
    8189                                          UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDInfo )
    8290{
     91#if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
     92  if (getSlice()->getSPS()->isDepth())
     93  {
     94    return true;
     95  }
     96#endif
     97
    8398#if MERL_VSP_C0152_BugFix_ForNoDepthCase
    8499  TComPic* pRefPicBaseDepth = NULL;
     
    105120          if (vspIdx < 4) // spatial
    106121          {
     122#if MTK_VSP_USING_NBDV_D0105
     123            pcMvFieldNeighbours[iCount<<1].setMvField(pDInfo->m_acMvCandNoRef[0], NOT_VALID );
     124#else
    107125            pcMvFieldNeighbours[iCount<<1].setMvField(pDInfo->m_acMvCand[0], NOT_VALID );
     126#endif
    108127            if ( getSlice()->isInterB() )
    109128            {
     129#if MTK_VSP_USING_NBDV_D0105
     130              pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acMvCandNoRef[0], NOT_VALID );
     131#else
    110132              pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acMvCand[0], NOT_VALID );
     133#endif
    111134            }
    112135          }
     
    37153738      cDisInfo.m_acMvCand[0] = getDvInfo(uiAbsPartIdx).m_acMvCand[0];
    37163739      cDisInfo.m_aVIdxCan[0] = getDvInfo(uiAbsPartIdx).m_aVIdxCan[0];
     3740#if MTK_VSP_USING_NBDV_D0105
     3741      cDisInfo.m_acMvCandNoRef[0] = getDvInfo(uiAbsPartIdx).m_acMvCandNoRef[0];
     3742#endif
    37173743    }
    37183744#else
     
    37803806        clipMv(cMvPred);
    37813807        pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
     3808#if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
     3809        if (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0)
     3810        {
     3811          assert(pcTextureCU->getVSPIndex(uiPartIdxCenter)!=0); 
     3812          for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_0); i++)
     3813          {
     3814            if (getSlice()->getRefPOC(REF_PIC_LIST_0, i) == getSlice()->getPOC())
     3815            {
     3816              pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,i);
     3817              break;
     3818            }
     3819          }
     3820        }
     3821#endif
    37823822      }
    37833823      if ( getSlice()->isInterB() )
     
    37923832          clipMv(cMvPred);
    37933833          pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
     3834#if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
     3835          if (pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0)
     3836          {
     3837            assert(pcTextureCU->getVSPIndex(uiPartIdxCenter)!=0); 
     3838            for (Int i=0; i<getSlice()->getNumRefIdx(REF_PIC_LIST_1); i++)
     3839            {
     3840              if (getSlice()->getRefPOC(REF_PIC_LIST_1, i) == getSlice()->getPOC())
     3841              {
     3842                pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,i);
     3843                break;
     3844              }
     3845            }
     3846          }
     3847#endif
    37943848        }
    37953849      }
    37963850#if MERL_VSP_C0152
     3851#if !MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
    37973852      xInheritVspMode( pcTextureCU, uiPartIdxCenter, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ;
    37983853#endif
    3799       if ( mrgCandIdx == iCount )
    3800       {
    3801         return;
    3802       }
    3803       iCount ++;
     3854#endif
     3855#if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
     3856      if (!((pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && !getSlice()->isInterB())
     3857        || (pcMvFieldNeighbours[iCount<<1].getRefIdx()<0 && pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx()<0 && getSlice()->isInterB())))
     3858      {
     3859#endif
     3860        if ( mrgCandIdx == iCount )
     3861        {
     3862          return;
     3863        }
     3864        iCount ++;
     3865#if MTK_LGE_VSP_DEPTH_OFF_D0105_D0139
     3866      }
     3867      else
     3868      {
     3869        assert(0);
     3870      }
     3871#endif
    38043872    }
    38053873  }
     
    50435111    Int depthEndPosX   = Clip3(0,   iPictureWidth - 1,  iBlkX + iBlkWidth - 1 + (mv->getHor()>>2));
    50445112    Int depthEndPosY   = Clip3(0,   iPictureHeight - 1,  iBlkY + iBlkHeight - 1 + (mv->getVer()>>2));
     5113#if !MTK_DEPTH_TO_DISP_D0138
    50455114    Int iCenterX = (depthStartPosX + depthEndPosX) >> 1;
    50465115    Int iCenterY = (depthStartPosY + depthEndPosY) >> 1;
     5116#endif
    50475117
    50485118    Pel *depthTL  = pcBaseViewDepthPicYuv->getLumaAddr();
     
    50525122    aiDepth[2] = depthTL[ (depthStartPosY) * depStride + depthEndPosX   ];      // Right Top
    50535123    aiDepth[3] = depthTL[ (depthEndPosY)   * depStride + depthEndPosX   ];      // Right Bottom
     5124#if MTK_DEPTH_TO_DISP_D0138
     5125    for (Int i = 0; i < 4; i++)
     5126#else
    50545127    aiDepth[4] = depthTL[ (iCenterY)       * depStride + iCenterX       ];      // Center
    50555128    for (Int i = 0; i < 5; i++)
     5129#endif
    50565130    {
    50575131      if (maxDepthVal < aiDepth[i])
Note: See TracChangeset for help on using the changeset viewer.