Changeset 1094 in 3DVCSoftware


Ignore:
Timestamp:
3 Nov 2014, 01:32:52 (9 years ago)
Author:
lg
Message:

Integration of JCT3V-J0042. The MACRO is "LGE_DDD_REMOVAL_J0042_J0030."
Integration of JCT3V-J0046. The MACRO is "LGE_DEFAULT_DV_J0046."
Integration of JCT3V-J0050. The MACRO is "LGE_CHROMA_IC_J0050_J0034."
Integration of JCT3V-J0041. The MACRO is "LGE_SIMP_DISP_AVAIL_J0041."

By Sunmi Yoo (sunmi.yoo@…) and Junghak Nam (junghak.nam@…)

Location:
branches/HTM-12.2-dev2-LGE
Files:
8 added
15 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-LGE/source/App/TAppEncoder/TAppEncTop.cpp

    r1084 r1094  
    885885#endif
    886886
     887#if !LGE_DDD_REMOVAL_J0042_J0030
    887888#if H_3D_DDD
    888889          m_acTEncTopList[ layer ]->getSliceEncoder()->setDDDPar( m_cCameraData.getCodedScale()[0][ m_acTEncTopList[layer]->getViewIndex() ],
    889890              m_cCameraData.getCodedOffset()[0][ m_acTEncTopList[layer]->getViewIndex() ],
    890891              m_cCameraData.getCamParsCodedPrecision() );
     892#endif
    891893#endif
    892894        Int   iNumEncoded = 0;
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TComDataCU.cpp

    r1084 r1094  
    154154#endif
    155155
     156#if !LGE_DDD_REMOVAL_J0042_J0030
    156157#if H_3D_DDD
    157158  m_pucDisparityDerivedDepth = NULL;
    158159  m_pbUseDDD = NULL;
     160#endif
    159161#endif
    160162}
     
    298300  // create pattern memory
    299301  m_pcPattern            = (TComPattern*)xMalloc(TComPattern, 1);
    300  
     302
     303#if !LGE_DDD_REMOVAL_J0042_J0030
    301304#if H_3D_DDD
    302305  m_pucDisparityDerivedDepth         = (UChar*  )xMalloc( UChar,  uiNumPartition);
    303306  m_pbUseDDD                         = (Bool*  ) xMalloc( Bool,   uiNumPartition);
    304307#endif
     308#endif
    305309
    306310  // create motion vector fields
     
    386390#endif
    387391
     392#if !LGE_DDD_REMOVAL_J0042_J0030
    388393#if H_3D_DDD
    389394    if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth);          m_pucDisparityDerivedDepth        = NULL; }
    390395    if ( m_pbUseDDD                 ) { xFree(m_pbUseDDD);                          m_pbUseDDD                        = NULL; }
     396#endif
    391397#endif
    392398
     
    518524#endif
    519525
     526#if !LGE_DDD_REMOVAL_J0042_J0030
    520527#if H_3D_DDD
    521528    m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui];
    522529    m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui];
    523530#endif
    524 
     531#endif
    525532    m_puhWidth  [ui] = pcFrom->getWidth(ui);
    526533    m_puhHeight [ui] = pcFrom->getHeight(ui);
     
    604611#endif
    605612
     613#if !LGE_DDD_REMOVAL_J0042_J0030
    606614#if H_3D_DDD
    607615    memset( m_pucDisparityDerivedDepth        + firstElement, 0,           numElements * sizeof( *m_pucDisparityDerivedDepth ) );
    608616    memset( m_pbUseDDD                        + firstElement, 0,           numElements * sizeof( *m_pbUseDDD ) );
     617#endif
    609618#endif
    610619
     
    784793#endif
    785794
     795#if !LGE_DDD_REMOVAL_J0042_J0030
    786796#if H_3D_DDD
    787797      m_pucDisparityDerivedDepth[ui] = 0;
    788798      m_pbUseDDD[ui] = 0;
     799#endif
    789800#endif
    790801
     
    893904#endif
    894905
     906#if !LGE_DDD_REMOVAL_J0042_J0030
    895907#if H_3D_DDD
    896908  memset( m_pucDisparityDerivedDepth,         0, iSizeInUchar );
    897909  memset( m_pbUseDDD,                         0, iSizeInBool );
     910#endif
    898911#endif
    899912
     
    9901003#endif
    9911004
     1005#if !LGE_DDD_REMOVAL_J0042_J0030
    9921006#if H_3D_DDD
    9931007      m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui];
    9941008      m_pbUseDDD[ui]                 = pcCU->m_pbUseDDD[uiPartOffset+ui];
     1009#endif
    9951010#endif
    9961011
     
    11391154#endif
    11401155
     1156#if !LGE_DDD_REMOVAL_J0042_J0030
    11411157#if H_3D_DDD
    11421158  m_pucDisparityDerivedDepth          = pcCU->getDDDepth()        + uiPart;
    11431159  m_pbUseDDD                          = pcCU->getUseDDD()         + uiPart;
     1160#endif
    11441161#endif
    11451162
     
    12921309#endif
    12931310
     1311#if !LGE_DDD_REMOVAL_J0042_J0030
    12941312#if H_3D_DDD
    12951313  m_pucDisparityDerivedDepth         = pcCU->getDDDepth()              + uiAbsPartIdx;
    12961314  m_pbUseDDD                         = pcCU->getUseDDD()              + uiAbsPartIdx;
     1315#endif
    12971316#endif
    12981317   
     
    13601379  memcpy( m_puhCbf[1] + uiOffset, pcCU->getCbf(TEXT_CHROMA_U), iSizeInUchar );
    13611380  memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar );
    1362  
     1381
     1382#if !LGE_DDD_REMOVAL_J0042_J0030
    13631383#if H_3D_DDD
    13641384  memcpy( m_pucDisparityDerivedDepth          + uiOffset, pcCU->getDDDepth(),         iSizeInUchar );
    13651385  memcpy( m_pbUseDDD                          + uiOffset, pcCU->getUseDDD(),          iSizeInBool );
     1386#endif
    13661387#endif
    13671388
     
    14641485#endif
    14651486
     1487#if !LGE_DDD_REMOVAL_J0042_J0030
    14661488#if H_3D_DDD
    14671489  memcpy( rpcCU->getDDDepth()          + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth,         iSizeInUchar  );
    14681490  memcpy( rpcCU->getUseDDD()           + m_uiAbsIdxInLCU, m_pbUseDDD,                         iSizeInBool  );
     1491#endif
    14691492#endif
    14701493
     
    16001623  memcpy( rpcCU->getCbf(TEXT_CHROMA_U) + uiPartOffset, m_puhCbf[1], iSizeInUchar );
    16011624  memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar );
    1602  
     1625
     1626#if !LGE_DDD_REMOVAL_J0042_J0030
    16031627#if H_3D_DDD
    16041628  memcpy( rpcCU->getDDDepth()          + uiPartOffset, m_pucDisparityDerivedDepth,         iSizeInUchar );
    16051629  memcpy( rpcCU->getUseDDD()           + uiPartOffset, m_pbUseDDD,                         iSizeInBool );
     1630#endif
    16061631#endif
    16071632
     
    16711696}
    16721697
     1698#if !LGE_DDD_REMOVAL_J0042_J0030
    16731699#if H_3D_DDD
    16741700Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
     
    16871713}
    16881714
     1715#endif
    16891716#endif
    16901717
     
    38773904  UChar tmpDir;
    38783905
     3906#if !LGE_DDD_REMOVAL_J0042_J0030
    38793907#if H_3D_DDD
    38803908  m_iUseDDDCandIdx = -1;
     3909#endif
    38813910#endif
    38823911
     
    42764305    }
    42774306  }
     4307#if !LGE_DDD_REMOVAL_J0042_J0030
    42784308#if H_3D_DDD
    42794309  if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0  && bMPIFlag )
     
    43594389    }
    43604390  }
     4391#endif
    43614392#endif
    43624393  /////////////////////////////////////////////////////////////////
     
    45544585#endif
    45554586
     4587#if !LGE_DDD_REMOVAL_J0042_J0030
    45564588#if H_3D_DDD
    45574589  // early termination
     
    45604592      return;
    45614593  }
     4594#endif
    45624595#endif
    45634596
     
    60766109
    60776110  TComMv cMv;
     6111#if LGE_DEFAULT_DV_J0046
     6112  if ( getSlice()->getDefaultRefViewIdxAvailableFlag() )
     6113  {
     6114      Int iViewIdx = getSlice()->getDefaultRefViewIdx();
     6115      pDisp->m_aVIdxCan = iViewIdx;
     6116      Int iDisp     = getSlice()->getDepthToDisparityB( iViewIdx )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];
     6117
     6118      cMv.setHor(iDisp);
     6119      cMv.setVer(0);
     6120      pDisp->m_acNBDV = cMv;
     6121      pDisp->m_aVIdxCan = iViewIdx;
     6122
     6123      return true;
     6124  }
     6125  return false;
     6126#else
    60786127#if MTK_I0093
    60796128  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
     
    60876136
    60886137  return true;
     6138#endif
    60896139}
    60906140#endif
     
    63386388  pDInfo->m_acNBDV = defaultDV;
    63396389
     6390#if LGE_DEFAULT_DV_J0046
     6391  if (getSlice()->getDefaultRefViewIdxAvailableFlag())
     6392  {
     6393      pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx();
     6394
     6395#if H_3D_NBDV_REF
     6396          TComPic* picDepth = NULL;
     6397#if H_3D_FCO_VSP_DONBDV_E0163
     6398          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     6399      if ( picDepth->getPicYuvRec() != NULL ) 
     6400      {
     6401          defaultDV.setZero();
     6402      }
     6403      else // Go back with virtual depth
     6404      {
     6405          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6406      }
     6407
     6408      assert(picDepth != NULL);
     6409#else
     6410          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6411#endif
     6412      if (picDepth && bDepthRefine)
     6413      {
     6414          estimateDVFromDM(getSlice()->getDefaultRefViewIdx(), uiPartIdx, picDepth, uiPartAddr, &defaultDV ); // from base view
     6415      }
     6416      pDInfo->m_acDoNBDV = defaultDV;
     6417#endif
     6418#if LGE_SIMP_DISP_AVAIL_J0041
     6419      return true;
     6420#endif
     6421  }
     6422#else
    63406423  Int valid = 0;
    63416424  Int viewIndex = 0;
     
    63896472    pDInfo->m_acDoNBDV = defaultDV;
    63906473#endif
    6391   }
     6474#if LGE_SIMP_DISP_AVAIL_J0041
     6475    return true;
     6476#endif
     6477  }
     6478#endif
    63926479  return false;
    63936480}
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TComDataCU.h

    r1084 r1094  
    227227  DisInfo       m_cDefaultDisInfo;    ///< Default disparity information for initializing
    228228#endif
    229 
     229#if !LGE_DDD_REMOVAL_J0042_J0030
    230230#if H_3D_DDD
    231231  UChar*        m_pucDisparityDerivedDepth;
     
    234234  UChar         m_ucDDTmpDepth;
    235235#endif
    236 
     236#endif
    237237#if H_3D_IV_MERGE
    238238  TComMotionCand  m_mergCands[MRG_IVSHIFT+1];
     
    743743  UInt          getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra);
    744744
     745#if !LGE_DDD_REMOVAL_J0042_J0030
    745746#if H_3D_DDD
    746747  UChar*       getDDDepth        ()                        { return m_pucDisparityDerivedDepth;        }
     
    759760  Int          getUseDDDCandIdx(){ return m_iUseDDDCandIdx;}
    760761
     762#endif
    761763#endif
    762764
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TComPrediction.cpp

    r1084 r1094  
    11581158  pcCU->clipMv(cMv);
    11591159
     1160#if !LGE_DDD_REMOVAL_J0042_J0030
    11601161#if H_3D_DDD
    11611162  if( pcCU->getUseDDD( uiPartAddr ) )
     
    11931194      //return;
    11941195  } else
     1196#endif
    11951197#endif
    11961198#if H_3D_ARP
     
    19491951    Int a, b, i, j;
    19501952    const Int iShift = IC_CONST_SHIFT;
     1953
    19511954    xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb
    19521955    for ( i = 0; i < cxHeight; i++ )
     
    21872190      x += pRef[j];
    21882191      y += pRec[j];
    2189       xx += (pRef[j] * pRef[j])>>precShift;
    2190       xy += (pRef[j] * pRec[j])>>precShift;
     2192#if LGE_CHROMA_IC_J0050_J0034
     2193      if ( eType == TEXT_LUMA )
     2194      {
     2195#endif
     2196        xx += (pRef[j] * pRef[j])>>precShift;
     2197        xy += (pRef[j] * pRec[j])>>precShift;
     2198#if LGE_CHROMA_IC_J0050_J0034
     2199      }
     2200#endif
    21912201    }
    21922202    iCountShift += g_aucConvertToBit[ uiWidth ] + 1;
     
    22172227      x += pRef[0];
    22182228      y += pRec[0];
    2219 
    2220       xx += (pRef[0] * pRef[0])>>precShift;
    2221       xy += (pRef[0] * pRec[0])>>precShift;
    2222 
     2229#if LGE_CHROMA_IC_J0050_J0034
     2230      if ( eType == TEXT_LUMA )
     2231      {
     2232#endif
     2233        xx += (pRef[0] * pRef[0])>>precShift;
     2234        xy += (pRef[0] * pRec[0])>>precShift;
     2235#if LGE_CHROMA_IC_J0050_J0034
     2236      }
     2237#endif     
    22232238      pRef += iRefStride*2;
    22242239      pRec += iRecStride*2;
     
    22342249  }
    22352250
     2251#if LGE_CHROMA_IC_J0050_J0034
     2252  if (  eType != TEXT_LUMA )
     2253  {
     2254    a = 32;
     2255    b = (  y - x + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
     2256  }
     2257  else
     2258  {
     2259#endif
    22362260  xy += xx >> IC_REG_COST_SHIFT;
    22372261  xx += xx >> IC_REG_COST_SHIFT;
     
    22752299    }
    22762300  }   
     2301#if LGE_CHROMA_IC_J0050_J0034
     2302  }
     2303#endif
    22772304}
    22782305#endif
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TComSlice.cpp

    r1084 r1094  
    178178    m_interLayerPredLayerIdc[ i ] = -1;
    179179  }
     180#endif
     181#if LGE_DEFAULT_DV_J0046
     182  m_iDefaultRefViewIdx = -1;
     183  m_bDefaultRefViewIdxAvailableFlag = false;
    180184#endif
    181185}
     
    38833887#endif
    38843888
     3889#if !LGE_DDD_REMOVAL_J0042_J0030
    38853890#if H_3D_DDD
    38863891#if H_3D_FCO
     
    38963901  } 
    38973902#endif
     3903#endif
    38983904
    38993905  if( !setupLUT )
     
    39443950      m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div;
    39453951    }
    3946 
     3952#if !LGE_DDD_REMOVAL_J0042_J0030
    39473953#if H_3D_DDD
    39483954    initializeDDDPara( vps->getCamParPrecision(), codScale[ i ], codOffset[ i ], i );
    39493955#endif
    3950   }
    3951 }
    3952 #endif
    3953 #endif
    3954 
     3956#endif
     3957  }
     3958}
     3959#endif
     3960#endif
     3961
     3962#if !LGE_DDD_REMOVAL_J0042_J0030
    39553963#if H_3D_DDD
    39563964Void TComSlice::initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx )
     
    40154023
    40164024#endif
     4025#endif
    40174026
    40184027#if H_MV
     
    40484057#endif
    40494058
     4059#if !LGE_DDD_REMOVAL_J0042_J0030
    40504060#if H_3D_DBBP
    40514061Int TComSlice::getDepthFromDV( Int iDV, Int iBaseViewIdx )
     
    40534063  return ClipY(( iDV * m_aiDDDInvScale[ iBaseViewIdx ] + m_aiDDDInvOffset[ iBaseViewIdx ] ) >> m_aiDDDShift[ iBaseViewIdx ]);
    40544064}
     4065#endif
    40554066#endif
    40564067
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TComSlice.h

    r1084 r1094  
    23422342#endif
    23432343#endif
    2344 
     2344#if !LGE_DDD_REMOVAL_J0042_J0030
    23452345#if H_3D_DDD
    23462346  Int          m_aiDDDInvScale [MAX_NUM_LAYERS];
     
    23482348  UInt         m_aiDDDShift    [MAX_NUM_LAYERS];
    23492349#endif
     2350#endif
    23502351#if H_3D_SINGLE_DEPTH
    23512352  Bool      m_bApplySingleDepthMode;
     
    23542355  Int *m_aICEnableCandidate;
    23552356  Int *m_aICEnableNum;
     2357#endif
     2358#if LGE_DEFAULT_DV_J0046
     2359  Int       m_iDefaultRefViewIdx;
     2360  Bool      m_bDefaultRefViewIdxAvailableFlag;
    23562361#endif
    23572362public:
     
    27622767  Bool inferPocMsbValPresentFlag(); 
    27632768#endif
     2769#if !LGE_DDD_REMOVAL_J0042_J0030
    27642770#if H_3D_DDD
    27652771  Void initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx );
    27662772  Int  getDepthFromDV( Int iDV, Int iBaseViewIdx );
     2773#endif
     2774#endif
     2775#if LGE_DEFAULT_DV_J0046
     2776  Int  getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; }
     2777  Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; }
     2778
     2779  Bool getDefaultRefViewIdxAvailableFlag() { return m_bDefaultRefViewIdxAvailableFlag; }
     2780  Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; }
    27672781#endif
    27682782
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibCommon/TypeDef.h

    r1084 r1094  
    103103                                              // MTK_NBDV_TN_FIX_E0172     fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172
    104104                                              // MTK_TEXTURE_MRGCAND_BUGFIX_E0182  Bug fix for TEXTURE MERGING CANDIDATE     , JCT3V-E0182
     105#define LGE_SIMP_DISP_AVAIL_J0041    1   // Use 2 status for disparity availability - DISP_AVAILABLE and DISP_NONE
    105106
    106107#define H_3D_ARP                          1   // Advanced residual prediction (ARP), JCT3V-D0177
     
    256257
    257258#define H_3D_DDD                          1   // Disparity derived depth coding
     259#define LGE_DDD_REMOVAL_J0042_J0030    1   // DDD removal
    258260
    259261#define H_3D_FCO                          0   // Flexible coding order for 3D
     
    307309#define DVFROM_ABOVE                      1
    308310#define IDV_CANDS                         2
     311#define LGE_DEFAULT_DV_J0046              1
    309312#endif
    310313
     
    342345#define IC_SHIFT_DIFF                     12
    343346#define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
     347#define LGE_CHROMA_IC_J0050_J0034         1
    344348#endif
    345349
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibDecoder/TDecCu.cpp

    r1084 r1094  
    291291  DTRACE_CU_S("=========== coding_unit ===========\n")
    292292#endif
    293 
    294 
     293#if !LGE_DDD_REMOVAL_J0042_J0030
    295294#if H_3D_DDD
    296295      pcCU->setUseDDD( false, uiAbsPartIdx, uiDepth );
     296#endif
    297297#endif
    298298
     
    452452#endif
    453453    pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    454 
     454#if !LGE_DDD_REMOVAL_J0042_J0030
    455455#if H_3D_DDD
    456456    if( uiMergeIndex == m_ppcCU[uiDepth]->getUseDDDCandIdx() )
     
    460460        pcCU->setDDDepthSubParts( m_ppcCU[uiDepth]->getDDTmpDepth(),uiAbsPartIdx, 0, uiDepth );
    461461    }
     462#endif
    462463#endif
    463464
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1084 r1094  
    337337      }
    338338      pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    339 
     339#if !LGE_DDD_REMOVAL_J0042_J0030
    340340#if H_3D_DDD
    341341      if( uiMergeIndex == pcSubCU->getUseDDDCandIdx() )
     
    349349          pcCU->setUseDDD( false, uiSubPartIdx, uiPartIdx, uiDepth );
    350350      }
     351#endif
    351352#endif
    352353
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibDecoder/TDecSlice.cpp

    r976 r1094  
    280280      iNumSubstreamsPerTile = 1;
    281281    }
     282#if LGE_DEFAULT_DV_J0046
     283    pcSlice->setDefaultRefViewIdx( -1 );
     284    pcSlice->setDefaultRefViewIdxAvailableFlag( false );
     285
     286    Int valid = 0;
     287    Int viewIndex = 0;
     288    for( UInt uiBId = 0; uiBId < pcSlice->getViewIndex() && valid==0; uiBId++ )
     289    {
     290        UInt        uiBaseId    = uiBId;
     291        TComPic*    pcBasePic   = pcSlice->getIvPic( false, uiBaseId );
     292        for( Int iRefListId = 0; ( iRefListId < (pcSlice->isInterB()? 2:1) ) && !pcSlice->isIntra() && valid==0; iRefListId++ )
     293        {
     294            RefPicList  eRefPicListTest = RefPicList( iRefListId );
     295            Int         iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;
     296            for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )
     297            {
     298                if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()
     299                    && pcBasePic->getViewIndex() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex())
     300                {
     301                    valid=1;
     302                    viewIndex = uiBaseId;
     303                    break;
     304                }
     305            }
     306        }
     307    }
     308    if( valid )
     309    {
     310        pcSlice->setDefaultRefViewIdx( viewIndex );
     311        pcSlice->setDefaultRefViewIdxAvailableFlag( true );   
     312    }
     313#endif
    282314
    283315    if ( (iCUAddr == rpcPic->getPicSym()->getTComTile(rpcPic->getPicSym()->getTileIdxMap(iCUAddr))->getFirstCUAddr()) && // 1st in tile.
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibDecoder/TDecTop.h

    r976 r1094  
    8383#endif
    8484
     85#if !LGE_DDD_REMOVAL_J0042_J0030
    8586#if H_3D_DDD
    8687  Int getCodedScale( Int iBaseView, Int iCureView){ return m_aaiCodedScale[ iBaseView ][ iCureView ];}
    8788  Int getCodedOffset( Int iBaseView, Int iCureView){ return m_aaiCodedOffset[ iBaseView ][ iCureView ];}
    8889  UInt getCamParsCodedPrecision(){ return m_vps->getCamParPrecision(); }
     90#endif
    8991#endif
    9092
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibEncoder/TEncCu.cpp

    r1084 r1094  
    18691869
    18701870#endif
    1871 
     1871#if !LGE_DDD_REMOVAL_J0042_J0030
    18721872#if H_3D_DDD
    18731873    Int iDDDCand = rpcTempCU->getUseDDDCandIdx();
    18741874    UChar ucDDDepth = rpcTempCU->getDDTmpDepth();
    18751875    rpcTempCU->setUseDDD( false, 0, uhDepth );
     1876#endif
    18761877#endif
    18771878
     
    19081909          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
    19091910#endif
     1911#if !LGE_DDD_REMOVAL_J0042_J0030
    19101912#if H_3D_DDD
    19111913          if( rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewIndex() != 0 && iDDDCand == uiMergeCand )
     
    19181920              rpcTempCU->setUseDDD( false, 0, 0, uhDepth );
    19191921          }
     1922#endif
    19201923#endif
    19211924#if H_3D_SPIVMP
     
    22042207  rpcTempCU->setPartSizeSubParts  ( ePartSize,  0, uhDepth );
    22052208  rpcTempCU->setPredModeSubParts  ( MODE_INTER, 0, uhDepth );
     2209#if !LGE_DDD_REMOVAL_J0042_J0030
    22062210#if H_3D_DDD
    22072211  rpcTempCU->setUseDDD( false, 0, uhDepth );
     2212#endif
    22082213#endif
    22092214
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibEncoder/TEncSearch.cpp

    r1084 r1094  
    41434143      }
    41444144#endif
    4145 
     4145#if !LGE_DDD_REMOVAL_J0042_J0030
    41464146#if H_3D_DDD
    41474147      if( uiMergeCand == pcCU->getUseDDDCandIdx() )
     
    41544154        pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    41554155      }
     4156#endif
    41564157#endif
    41574158
     
    48414842        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    48424843#endif
     4844#if !LGE_DDD_REMOVAL_J0042_J0030
    48434845#if H_3D_DDD
    48444846        if( uiMRGIndex == pcCU->getUseDDDCandIdx() )
     
    48534855            pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    48544856        }
     4857#endif
    48554858#endif
    48564859#if H_3D_SPIVMP
     
    49304933        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    49314934#endif
     4935#if !LGE_DDD_REMOVAL_J0042_J0030
    49324936#if H_3D_DDD
    49334937        pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4938#endif
    49344939#endif
    49354940        // set ME result
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibEncoder/TEncSlice.cpp

    r976 r1094  
    10111011    }
    10121012  }
     1013#if LGE_DEFAULT_DV_J0046
     1014  pcSlice->setDefaultRefViewIdx( -1 );
     1015  pcSlice->setDefaultRefViewIdxAvailableFlag( false );
     1016
     1017  Int valid = 0;
     1018  Int viewIndex = 0;
     1019  for( UInt uiBId = 0; uiBId < pcSlice->getViewIndex() && valid==0; uiBId++ )
     1020  {
     1021      UInt        uiBaseId    = uiBId;
     1022      TComPic*    pcBasePic   = pcSlice->getIvPic( false, uiBaseId );
     1023      for( Int iRefListId = 0; ( iRefListId < (pcSlice->isInterB()? 2:1) ) && !pcSlice->isIntra() && valid==0; iRefListId++ )
     1024      {
     1025          RefPicList  eRefPicListTest = RefPicList( iRefListId );
     1026          Int         iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;
     1027          for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )
     1028          {
     1029              if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()
     1030                  && pcBasePic->getViewIndex() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex())
     1031              {
     1032                  valid=1;
     1033                  viewIndex = uiBaseId;
     1034                  break;
     1035              }
     1036          }
     1037      }
     1038  }
     1039  if( valid )
     1040  {
     1041      pcSlice->setDefaultRefViewIdx( viewIndex );
     1042      pcSlice->setDefaultRefViewIdxAvailableFlag( true );   
     1043  }
     1044#endif
     1045
    10131046  // for every CU in slice
    10141047#if H_3D
     
    11691202#endif
    11701203      }
    1171 
    11721204      // run CU encoder
    11731205      m_pcCuEncoder->compressCU( pcCU );
  • branches/HTM-12.2-dev2-LGE/source/Lib/TLibEncoder/TEncSlice.h

    r884 r1094  
    107107  UInt                    m_uiSliceIdx;
    108108  std::vector<TEncSbac*> CTXMem;
     109#if !LGE_DDD_REMOVAL_J0042_J0030
    109110#if H_3D_DDD
    110111  Int          m_iDDDScale;
    111112  Int          m_iDDDOffset;
    112113  UInt         m_uiDDDPrecision;
     114#endif
    113115#endif
    114116public:
     
    145147  Void      initCtxMem( UInt i );
    146148  Void      setCtxMem( TEncSbac* sb, Int b )   { CTXMem[b] = sb; }
    147 
     149#if !LGE_DDD_REMOVAL_J0042_J0030
    148150#if H_3D_DDD
    149151  Void setDDDPar( Int iScale, Int iOffset, UInt uiPrecision ){ m_iDDDScale = iScale; m_iDDDOffset = iOffset; m_uiDDDPrecision = uiPrecision; }
     152#endif
    150153#endif
    151154
Note: See TracChangeset for help on using the changeset viewer.