Changeset 99 in 3DVCSoftware for branches/HTM-3.1-LG/source/Lib


Ignore:
Timestamp:
8 Aug 2012, 14:04:37 (12 years ago)
Author:
lg
Message:

Implemented the Simplification of disparity vector derivation (A0126) with macro: "LGE_DVMCP"

Location:
branches/HTM-3.1-LG/source/Lib/TLibCommon
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-3.1-LG/source/Lib/TLibCommon/TComDataCU.cpp

    r97 r99  
    34673467  TComMv  acPdmMv       [2];
    34683468  Int     aiPdmRefIdx   [2] = {-1, -1};
     3469
     3470#if LGE_DVMCP
     3471  acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = false;
     3472#endif
     3473
    34693474#if QC_MULTI_DIS_CAN
    34703475  DisInfo cDisInfo;
     
    34723477  if(!bNoPdmMerge)
    34733478  {
    3474 #if USE_DVMCP
     3479#if LGE_DVMCP
    34753480    getDisMvpCand2(uiPUIdx, uiAbsPartIdx, &cDisInfo, true );
    34763481#else
     
    35433548      pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    35443549    }
    3545 #if USE_DVMCP
     3550#if LGE_DVMCP
    35463551    pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    35473552    pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     
    36193624      pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    36203625    }
    3621 #if USE_DVMCP
     3626#if LGE_DVMCP
    36223627    pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    36233628    pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     
    36903695      pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    36913696    }
    3692 #if USE_DVMCP
     3697#if LGE_DVMCP
    36933698    pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    36943699    pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     
    37583763      pcCULeftBottom->getMvField( pcCULeftBottom, uiLeftBottomPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    37593764    }
    3760 #if USE_DVMCP
     3765#if LGE_DVMCP
    37613766    pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    37623767    pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     
    38353840        pcCUAboveLeft->getMvField( pcCUAboveLeft, uiAboveLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    38363841      }
    3837 #if USE_DVMCP
     3842#if LGE_DVMCP
    38383843      pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    38393844      pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     
    39553960        puhInterDirNeighbours[uiArrayAddr] = 1;
    39563961      }
    3957 #if USE_DVMCP
     3962#if LGE_DVMCP
    39583963      pcMvFieldNeighbours[uiArrayAddr<<1    ].getMv().m_bDvMcp = false;
    39593964      pcMvFieldNeighbours[(uiArrayAddr<<1)+1].getMv().m_bDvMcp = false;
     
    47544759}
    47554760
    4756 #if USE_DVMCP
     4761#if LGE_DVMCP
    47574762Void TComDataCU::getDisMvpCand2( UInt uiPartIdx, UInt uiPartAddr,DisInfo* pDInfo, Bool bMerge, RefPicList eRefPicList0, Int iRefIdx0 )
    47584763{
     
    48134818            bDvMcpIsFound = true;
    48144819          }
    4815 #if USE_DVMCP_MSG
    4816           //printf("skipped %d =%d, curCUAddr=%d, leftCUAddr=%d\n",DVFROM_LEFT, iList, getAddr(), pcTmpCU->getAddr() );
    4817           aiRefPOC     [iList][DVFROM_LEFT] = pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx);
    4818           if( aiRefPOC[iList][DVFROM_LEFT]<0 )
    4819           {
    4820             printf("error\n");
    4821           }
    4822           //aiRefPOC     [iList][DVFROM_LEFT] = pcTmpCU->getSlice()->getRefPOC( eRefPicList, );
    4823 #endif
    48244820        }
    48254821      }
     
    48604856            bDvMcpIsFound = true;
    48614857          }
    4862 #if USE_DVMCP_MSG
    4863           //printf("skipped %d =%d, curCUAddr=%d, leftCUAddr=%d\n",DVFROM_ABOVE, iList, getAddr(), pcTmpCU->getAddr() );
    4864           aiRefPOC     [iList][DVFROM_ABOVE] = pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx);
    4865           if( aiRefPOC[iList][DVFROM_ABOVE]<0 )
    4866           {
    4867             printf("error\n");
    4868           }
    4869 #endif
    48704858        }
    48714859      }
     
    49054893            bDvMcpIsFound = true;
    49064894          }
    4907 #if USE_DVMCP_MSG
    4908           //printf("skipped %d =%d, curCUAddr=%d, leftCUAddr=%d\n",DVFROM_ABOVERIGHT, iList, getAddr(), pcTmpCU->getAddr() );
    4909           aiRefPOC     [iList][DVFROM_ABOVERIGHT] = pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx);
    4910 #endif
    49114895        }
    49124896      }
     
    49464930            bDvMcpIsFound = true;
    49474931          }
    4948 #if USE_DVMCP_MSG
    4949           //printf("skipped %d =%d, curCUAddr=%d, leftCUAddr=%d\n",DVFROM_LEFTBELOW, iList, getAddr(), pcTmpCU->getAddr() );
    4950           aiRefPOC     [iList][DVFROM_LEFTBELOW] = pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx);
    4951 #endif
    49524932        }
    49534933      }
     
    49894969            bDvMcpIsFound = true;
    49904970          }
    4991 #if USE_DVMCP_MSG
    4992           aiRefPOC     [iList][DVFROM_ABOVELEFT] = pcTmpCU->getCUMvField(eRefPicList)->getRefIdx(uiIdx);
    4993           //printf("skipped %d =%d, curCUAddr=%d, leftCUAddr=%d\n",DVFROM_ABOVELEFT, iList, getAddr(), pcTmpCU->getAddr() );
    4994 #endif
    49954971        }
    49964972      }
     
    52115187  if(m_pcSlice->getSPS()->getViewId() && m_pcSlice->getSPS()->getMultiviewMvPredMode())
    52125188  {
    5213 #if USE_DVMCP
     5189#if LGE_DVMCP
    52145190    getDisMvpCand2(uiPartIdx, uiPartAddr, &cDisInfo, false, eRefPicList, iRefIdx );
    52155191#else
     
    56405616  {
    56415617    TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList)->getMv(uiIdx);
    5642 #if USE_DVMCP
     5618#if LGE_DVMCP
    56435619    cMvPred.m_bDvMcp = false;
    56445620#endif
     
    56775653    {
    56785654      TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx);
    5679 #if USE_DVMCP
     5655#if LGE_DVMCP
    56805656      cMvPred.m_bDvMcp = false;
    56815657#endif
     
    58205796    {
    58215797      TComMv cMvPred = pcTmpCU->getCUMvField(eRefPicList2nd)->getMv(uiIdx);
    5822 #if USE_DVMCP
     5798#if LGE_DVMCP
    58235799      cMvPred.m_bDvMcp = false;
    58245800#endif
     
    58505826      rcMv = cMvPred.scaleMv( iScale );
    58515827    }
    5852 #if USE_DVMCP
     5828#if LGE_DVMCP
    58535829    rcMv.m_bDvMcp = false;
    58545830#endif
     
    58775853      rcMv = cMvPred.scaleMv( iScale );
    58785854    }
    5879 #if USE_DVMCP
     5855#if LGE_DVMCP
    58805856    rcMv.m_bDvMcp = false;
    58815857#endif
     
    58905866Bool TComDataCU::xGetColDisMV( RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv , Int & iTargetViewIdx, Int & iStartViewIdx )
    58915867{
    5892 #if USE_DVMCP
     5868#if LGE_DVMCP
    58935869  Int  iDvMcpDispX[2] = {-1,};
    58945870  Bool bDvMcpFlag [2] = { false, };
     
    59095885    return false;
    59105886  }
    5911 #if USE_DVMCP
     5887#if LGE_DVMCP
    59125888  Bool bColIsSkipped = pColCU->isSkipped( uiAbsPartAddr );
    59135889#endif
     
    59295905    if ( iColViewIdx    == iColRefViewIdx ) // temporal vector
    59305906    {
    5931 #if USE_DVMCP
     5907#if LGE_DVMCP
    59325908      if( iColViewIdx >0 )
    59335909      {
     
    59475923    {
    59485924          rcMv = pColCU->getCUMvField(eColRefPicList)->getMv(uiAbsPartAddr);
    5949 #if USE_DVMCP
     5925#if LGE_DVMCP
    59505926    rcMv.m_bDvMcp = false;
    59515927#endif
     
    59565932  }
    59575933
    5958 #if USE_DVMCP
     5934#if LGE_DVMCP
    59595935  for( Int ilist=0 ; ilist<2 ; ilist++ )
    59605936  {
     
    70787054   PartSize m_peSaved =  getPartitionSize( 0 );
    70797055   m_pePartSize[0] =  SIZE_2Nx2N;
    7080 #if USE_DVMCP
     7056#if LGE_DVMCP
    70817057   getDisMvpCand2( 0, 0,  &cDisInfo, true );
    70827058#else
  • branches/HTM-3.1-LG/source/Lib/TLibCommon/TComDataCU.h

    r97 r99  
    525525  Int           getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo );
    526526  Void          getDisMvpCand        ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo );
    527 #if USE_DVMCP
     527#if LGE_DVMCP
    528528  Void          getDisMvpCand2( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo, Bool bMerge=false, RefPicList eRefPicList=REF_PIC_LIST_X, Int iRefIdx=-1 );
    529529#endif
  • branches/HTM-3.1-LG/source/Lib/TLibCommon/TComDepthMapGenerator.cpp

    r97 r99  
    726726              paiPdmRefIdx  [ uiBaseRefListId ] = iPdmRefIdx;
    727727              TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
     728#if LGE_DVMCP
     729              cMv.m_bDvMcp = true;
     730              cMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor();
     731#endif
    728732              pcCU->clipMv( cMv );
    729733              pacPdmMv      [ uiBaseRefListId ] = cMv;
     
    831835TComDepthMapGenerator::getDisCanPdmMvPred    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge )
    832836{
    833 #if USE_DVMCP
     837#if LGE_DVMCP
    834838  rcMv.m_bDvMcp = false;
    835839#endif
     
    895899      {
    896900        rcMv.set( cBaseMvField.getHor(), cBaseMvField.getVer() );
    897 #if USE_DVMCP
     901#if LGE_DVMCP
    898902        // save disparity vector when a merge candidate for IVMP is set as DV-MCP
    899903        if( bMerge )
  • branches/HTM-3.1-LG/source/Lib/TLibCommon/TComMv.h

    r97 r99  
    5757public:
    5858 
    59 #if USE_DVMCP
     59#if LGE_DVMCP
    6060  Bool  m_bDvMcp;       // is dv-mcp ?
    6161  Int   m_iDvMcpDispX;  // disparity for dv-mcp
     
    6969  m_iHor(0),
    7070  m_iVer(0)
    71 #if USE_DVMCP
     71#if LGE_DVMCP
    7272  , m_bDvMcp(false)
    7373  , m_iDvMcpDispX(0)
     
    7979  m_iHor(iHor),
    8080  m_iVer(iVer)
    81 #if USE_DVMCP
     81#if LGE_DVMCP
    8282  , m_bDvMcp(false)
    8383  , m_iDvMcpDispX(0)
  • branches/HTM-3.1-LG/source/Lib/TLibCommon/TypeDef.h

    r97 r99  
    6666#define MTK_INTERVIEW_MERGE_A0049         1 //  JCT2-A0049 second part
    6767
    68 #if QC_MULTI_DIS_CAN                    // JCT2-A0126
    69 #define USE_DVMCP         0
    70 
    71 #define DVFROM_LEFTBELOW  1
    72 #define DVFROM_LEFT       2
    73 #define DVFROM_ABOVERIGHT 3
    74 #define DVFROM_ABOVE      4
    75 #define DVFROM_ABOVELEFT  5
    76 #define DVFROM_COL        6
     68#define LGE_DVMCP                         1 //  JCT2-A0126     
     69#if LGE_DVMCP
     70#define DVFROM_LEFTBELOW                  1
     71#define DVFROM_LEFT                       2
     72#define DVFROM_ABOVERIGHT                 3
     73#define DVFROM_ABOVE                      4
     74#define DVFROM_ABOVELEFT                  5
     75#define DVFROM_COL                        6
    7776#endif
    7877
Note: See TracChangeset for help on using the changeset viewer.