Changeset 690 in 3DVCSoftware


Ignore:
Timestamp:
13 Nov 2013, 02:24:21 (10 years ago)
Author:
lg
Message:

Integration of "Removal of redundancy on VSP, ARP and IC"
FJCT3V-F0104
MACRO "LGE_SHARP_VSP_INHERIT_F0104"

By Taesup Kim (taesup.kim@…)

Location:
branches/HTM-8.2-dev2-LG
Files:
3 added
6 edited

Legend:

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

    r683 r690  
    35263526  Bool bDepthIPMCAvai = false;
    35273527#endif
     3528
     3529#if LGE_SHARP_VSP_INHERIT_F0104
     3530#if H_3D_IC
     3531  Bool bICFlag = getICFlag(uiAbsPartIdx);
     3532#endif
     3533#if H_3D_ARP
     3534  Bool bARPFlag = getARPW(uiAbsPartIdx)>0 ? true : false;
     3535#endif
     3536#endif
     3537
    35283538#if H_3D_IV_MERGE
    35293539 
     
    37473757#endif
    37483758#if H_3D_VSP
    3749       if (pcCULeft->getVSPFlag(uiLeftPartIdx) == 1)
     3759      if (pcCULeft->getVSPFlag(uiLeftPartIdx) == 1
     3760#if LGE_SHARP_VSP_INHERIT_F0104
     3761#if H_3D_IC
     3762          && !bICFlag
     3763#endif
     3764#if H_3D_ARP
     3765          && !bARPFlag
     3766#endif
     3767#endif
     3768          )
    37503769      {
    37513770        vspFlag[iCount] = 1;
     
    38353854#if H_3D_VSP
    38363855#if MTK_VSP_SIMPLIFICATION_F0111
    3837       if ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1) )
     3856      if ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1)
     3857#if LGE_SHARP_VSP_INHERIT_F0104
     3858#if H_3D_IC
     3859          && !bICFlag
     3860#endif
     3861#if H_3D_ARP
     3862          && !bARPFlag
     3863#endif
     3864#endif
     3865          )
    38383866#else
    3839       if (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1)
     3867      if (pcCUAbove->getVSPFlag(uiAbovePartIdx) == 1
     3868#if LGE_SHARP_VSP_INHERIT_F0104
     3869#if H_3D_IC
     3870          && !bICFlag
     3871#endif
     3872#if H_3D_ARP
     3873          && !bARPFlag
     3874#endif
     3875#endif
     3876          )
    38403877#endif
    38413878      {
     
    38973934#if H_3D_VSP
    38983935#if MTK_VSP_SIMPLIFICATION_F0111
    3899     if ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) == 1) )
     3936    if ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) == 1)
     3937#if LGE_SHARP_VSP_INHERIT_F0104
     3938#if H_3D_IC
     3939        && !bICFlag
     3940#endif
     3941#if H_3D_ARP
     3942        && !bARPFlag
     3943#endif
     3944#endif
     3945        )
    39003946#else
    3901     if (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) == 1)
     3947    if (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) == 1
     3948#if LGE_SHARP_VSP_INHERIT_F0104
     3949#if H_3D_IC
     3950        && !bICFlag
     3951#endif
     3952#if H_3D_ARP
     3953        && !bARPFlag
     3954#endif
     3955#endif
     3956        )
    39023957#endif
    39033958    {
     
    39834038  /////////////////////////////////////////////////
    39844039
    3985   if ( xAddVspCand( mrgCandIdx, &cDisInfo, iCount, abCandIsInter, pcMvFieldNeighbours, puhInterDirNeighbours, vspFlag ) )
     4040  if (
     4041#if LGE_SHARP_VSP_INHERIT_F0104
     4042#if H_3D_IC
     4043      !bICFlag &&
     4044#endif
     4045#if H_3D_ARP
     4046      !bARPFlag &&
     4047#endif
     4048#endif
     4049      xAddVspCand( mrgCandIdx, &cDisInfo, iCount, abCandIsInter, pcMvFieldNeighbours, puhInterDirNeighbours, vspFlag ) )
    39864050  {
    39874051    return;
     
    40234087#endif
    40244088#if H_3D_VSP
    4025     if (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) == 1)
     4089    if (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) == 1
     4090#if LGE_SHARP_VSP_INHERIT_F0104
     4091#if H_3D_IC
     4092        && !bICFlag
     4093#endif
     4094#if H_3D_ARP
     4095        && !bARPFlag
     4096#endif
     4097#endif
     4098        )
    40264099    {
    40274100      vspFlag[iCount] = 1;
     
    40754148#if H_3D_VSP
    40764149#if MTK_VSP_SIMPLIFICATION_F0111
    4077       if ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) == 1) )
     4150      if ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) == 1)
     4151#if LGE_SHARP_VSP_INHERIT_F0104
     4152#if H_3D_IC
     4153          && !bICFlag
     4154#endif
     4155#if H_3D_ARP
     4156          && !bARPFlag
     4157#endif
     4158#endif
     4159          )
    40784160#else
    4079       if (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) == 1)
     4161      if (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) == 1
     4162#if LGE_SHARP_VSP_INHERIT_F0104
     4163#if H_3D_IC
     4164          && !bICFlag
     4165#endif
     4166#if H_3D_ARP
     4167          && !bARPFlag
     4168#endif
     4169#endif
     4170          )
    40804171#endif
    40814172      {
  • branches/HTM-8.2-dev2-LG/source/Lib/TLibCommon/TypeDef.h

    r683 r690  
    233233#endif
    234234#define MTK_VSP_SIMPLIFICATION_F0111      1   // 1. Inherited VSP also use NBDV of current CU, 2. VSP cannot be inherited from above LCU rowss
     235#define LGE_SHARP_VSP_INHERIT_F0104       1
    235236#endif
    236237
  • branches/HTM-8.2-dev2-LG/source/Lib/TLibDecoder/TDecCu.cpp

    r669 r690  
    390390    UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx);
    391391
     392#if LGE_SHARP_VSP_INHERIT_F0104
     393#if H_3D_IC
     394    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     395#endif
     396#if H_3D_ARP
     397    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
     398#endif
     399#endif
     400
    392401#if H_3D_VSP
    393402    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     
    435444      }
    436445    }
     446#if !LGE_SHARP_VSP_INHERIT_F0104
    437447#if H_3D_IC
    438448    m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     
    441451    m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
    442452#endif
     453#endif
     454
    443455    xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
    444456#if QC_DEPTH_IV_MRG_F0125
     
    470482  // prediction mode ( Intra : direction mode, Inter : Mv, reference idx )
    471483  m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]);
     484#if !LGE_SHARP_VSP_INHERIT_F0104
    472485#if H_3D_IC
    473486  m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     
    476489  m_pcEntropyDecoder->decodeARPW    ( pcCU , uiAbsPartIdx , uiDepth ); 
    477490#endif 
     491#endif
    478492#if H_3D_INTER_SDC
    479493  m_pcEntropyDecoder->decodeInterSDCFlag( pcCU, uiAbsPartIdx, uiDepth );
  • branches/HTM-8.2-dev2-LG/source/Lib/TLibDecoder/TDecEntropy.cpp

    r655 r690  
    235235      decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth );
    236236      UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx);
     237#if LGE_SHARP_VSP_INHERIT_F0104
     238#if H_3D_IC
     239      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     240#endif
     241#if H_3D_ARP
     242      decodeARPW  ( pcCU, uiAbsPartIdx, uiDepth );
     243#endif
     244#endif
    237245      if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 )
    238246      {
     
    301309        }
    302310      }
     311#if LGE_SHARP_VSP_INHERIT_F0104
     312#if H_3D_IC
     313      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
     314#endif
     315#if H_3D_ARP
     316      decodeARPW  ( pcCU, uiAbsPartIdx, uiDepth );
     317#endif
     318#endif
    303319    }
    304320#if H_3D_VSP
  • branches/HTM-8.2-dev2-LG/source/Lib/TLibEncoder/TEncCu.cpp

    r669 r690  
    17751775#endif
    17761776
     1777#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1778  DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0);
     1779#else
    17771780  rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    17781781  rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1782#endif
    17791783
    17801784#if H_3D_VSP
     1785#if !(H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104)
    17811786  Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    17821787  memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    17831788  InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1784   rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand );
     1789  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1790#endif
    17851791#else
    17861792  rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );
     
    17921798  Int mergeCandBuffer[MRG_MAX_NUM_CANDS];
    17931799#endif
     1800#if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104
     1801for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )
     1802#else
    17941803for( UInt ui = 0; ui < numValidMergeCand; ++ui )
     1804#endif
    17951805  {
    17961806    mergeCandBuffer[ui] = 0;
     
    18171827  for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- )
    18181828  {
    1819     memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) );
     1829    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
     1830#if LGE_SHARP_VSP_INHERIT_F0104
     1831    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     1832    rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1833    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
     1834#if H_3D_IC
     1835    rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
     1836#endif
     1837    rpcTempCU->getDvInfo(0) = cOrigDisInfo;
     1838    rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0, uhDepth );
     1839    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     1840    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     1841    InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
     1842    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
     1843#endif
    18201844#endif
    18211845  for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual )
     
    18551879          rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    18561880          rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1857 
    18581881#if H_3D_ARP
    18591882          if( nARPW )
     
    18711894            if( !bSignalflag[0] && !bSignalflag[1] )
    18721895            {
     1896#if LGE_SHARP_VSP_INHERIT_F0104
     1897              continue;
     1898#else
    18731899              rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth );
     1900#endif
    18741901            }
    18751902          }
Note: See TracChangeset for help on using the changeset viewer.