Changeset 518 in 3DVCSoftware for branches


Ignore:
Timestamp:
3 Jul 2013, 21:39:14 (11 years ago)
Author:
mitsubishi-htm
Message:

-Intermediate version. Fixing xAddVspCand.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp

    r515 r518  
    26862686  Int  iRefListIdX = 0;
    26872687  Int  iRefListIdY = 0;
     2688  Int  i;
    26882689
    26892690  for( iRefListIdX = 0; iRefListIdX < 2 && !refViewAvailFlag; iRefListIdX++ )
    26902691  {
    26912692    RefPicList eRefPicList = RefPicList( iRefListIdX );
    2692     for (Int i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++)
     2693    for ( i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++ )
    26932694    {
    26942695      Int viewIdxRefInList = m_pcSlice->getRefPic(eRefPicList, i)->getViewIndex();
    26952696      if (refViewIdx == viewIdxRefInList)
    26962697      {
    2697         Int iRefIdxList0 = getSlice()->getRefPic(REF_PIC_LIST_0, 0)->getPOC() == getSlice()->getPOC() ?
    2698                            0 : getSlice()->getAlterRefIdx(REF_PIC_LIST_0);
    2699 
    27002698        refViewAvailFlag = true;
    2701         predFlag[0] = 1; // iRefListIdX
     2699        predFlag[iRefListIdX] = 1;
    27022700        iRefListIdY = 1 - iRefListIdX;
    2703         pcMvFieldNeighbours[iCount<<1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList0 );
    2704         // pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i ); // Buggy code
     2701        pcMvFieldNeighbours[(iCount<<1)+iRefListIdX].setMvField( pDInfo->m_acDoNBDV, i );
    27052702      }
    27062703    }
     
    27112708    RefPicList eRefPicList = RefPicList( iRefListIdY );
    27122709    refViewAvailFlag = false;
    2713     for (Int i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++)
    2714     {
    2715       Int viewIdxRefInList = m_pcSlice->getRefPic(eRefPicList, i)->getViewIndex();
    2716       if (refViewIdx != viewIdxRefInList)
    2717       {
    2718         Int iRefIdxList1 = getSlice()->getRefPic(REF_PIC_LIST_1, 0)->getPOC() == getSlice()->getPOC() ?
    2719                            0 : getSlice()->getAlterRefIdx(REF_PIC_LIST_1);
    2720 
    2721         refViewAvailFlag = true;
    2722         predFlag[1] = 1; // iRefListIdY
    2723         pcMvFieldNeighbours[(iCount<<1)+1].setMvField( pDInfo->m_acDoNBDV, iRefIdxList1 );
    2724         //pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i );  // Buggy code
     2710    for ( i = 0; i < m_pcSlice->getNumRefIdx(eRefPicList) && !refViewAvailFlag; i++ )
     2711    {
     2712      TComPic* refPic = m_pcSlice->getRefPic(eRefPicList, i);
     2713      if ( refPic->getPOC() == m_pcSlice->getPOC() ) // is inter-view reference
     2714      {
     2715        Int viewIdxRefInList = refPic->getViewIndex();
     2716        if (refViewIdx != viewIdxRefInList)
     2717        {
     2718          refViewAvailFlag = true;
     2719          predFlag[iRefListIdY] = 1;
     2720          pcMvFieldNeighbours[(iCount<<1)+iRefListIdY].setMvField( pDInfo->m_acDoNBDV, i );
     2721        }
    27252722      }
    27262723    }
Note: See TracChangeset for help on using the changeset viewer.