Changeset 1118 in 3DVCSoftware


Ignore:
Timestamp:
8 Nov 2014, 21:07:36 (9 years ago)
Author:
tech
Message:

Merged 12.2-dev1-Hisilicon@1116.

Location:
branches/HTM-12.2-dev0/source
Files:
16 edited

Legend:

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

    r1111 r1118  
    22852285    vps.setInterSDCFlag( layer, !isLayerZero && isDepth && m_bDepthInterSDCFlag );
    22862286#endif
     2287#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     2288    vps.setSingleDepthModeFlag( layer, !isLayerZero && isDepth && m_useSingleDepthMode );         
     2289#endif
    22872290#if H_3D_IV_MERGE
    22882291#if H_3D_FCO
  • branches/HTM-12.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r1106 r1118  
    62666266    }
    62676267    break;
     6268#if !SINGLE_DEPTH_SIMP_J0115
    62686269  case 2: // Above
    62696270    if(yP != 0)
     
    62876288    }
    62886289    break;
     6290#endif
    62896291  default:
    62906292      break;
     
    69056907
    69066908  iNumSPInOneLine = iPUWidth/iSubPUSize;
     6909#if !HS_SP_SIMP_J0066
    69076910  iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine;
     6911#endif
    69086912  Int iNumSPInOneColumn = iPUHeight/iSubPUSize;
     6913#if !HS_SP_SIMP_J0066
    69096914  iNumSPInOneColumn = iNumSPInOneColumn < 1 ? 1: iNumSPInOneColumn;
     6915#else
     6916  iNumSPInOneLine = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneLine;
     6917  iNumSPInOneColumn = (iPUHeight % iSubPUSize != 0  || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneColumn;
     6918#endif
    69106919  iNumSP = iNumSPInOneLine * iNumSPInOneColumn;
    69116920
  • branches/HTM-12.2-dev0/source/Lib/TLibCommon/TComRom.cpp

    r1084 r1118  
    362362const UChar g_dmm1TabIdxBits[6] =
    363363{ //2x2   4x4   8x8 16x16 32x32 64x64
     364#if MTK_DMM_SIM_J0035
     365     0,    7,   10,   9,    9,   13 };
     366#else
    364367     0,    7,   10,   11,   11,   13 };
     368#endif
    365369
    366370const UChar g_dmm3IntraTabIdxBits[6] =
     
    763767    }
    764768
     769#if MTK_DMM_SIM_J0035
     770    for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1))
     771    {
     772      for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) )
     773      {
     774        cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) );
     775        addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList );
     776      }
     777    }
     778#else
    765779    for( Int iK = 0; iK < uiBlockSize; iK++ )
    766780    {
     
    771785      }
    772786    }
     787#endif
    773788  }
    774789
  • branches/HTM-12.2-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r1112 r1118  
    19721972    m_ivMvScalingFlag[i] = true;
    19731973    m_bIVPFlag [i]      = false;
     1974#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1975    m_singleDepthModeFlag[ i ] = false;
     1976#endif
    19741977#endif
    19751978#endif
     
    30813084      i++;
    30823085    }
     3086#if SHARP_DLT_SIMP_J0029
     3087    iIdxUp = bFound ?  iIdxDown + 1 : iNumDepthValues-1;
     3088#else
    30833089    // iterate over indices to find upper closest depth
    30843090    i = iNumDepthValues-2;
     
    30973103    // assert monotony
    30983104    assert(iIdxDown<=iIdxUp);
     3105#endif
    30993106
    31003107    // assign closer depth value/idx
  • branches/HTM-12.2-dev0/source/Lib/TLibCommon/TComSlice.h

    r1113 r1118  
    970970  Bool        m_bMPIFlag[MAX_NUM_LAYERS   ];
    971971#endif
     972#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     973  Bool        m_singleDepthModeFlag    [ MAX_NUM_LAYERS ];
     974#endif
    972975#endif
    973976
     
    14001403  Bool    getMPIFlag      ( Int layerIdInVps )           { return m_bMPIFlag[layerIdInVps]; }
    14011404  Void    setMPIFlag      ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; }
     1405#endif
     1406#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1407  Void    setSingleDepthModeFlag  ( Int layerIdInVps, Bool val )  { m_singleDepthModeFlag[ layerIdInVps ] = val; }
     1408  Bool    getSingleDepthModeFlag  ( Int layerIdInVps )            { return m_singleDepthModeFlag[ layerIdInVps ]; };
    14021409#endif
    14031410#endif 
     
    26042611  TComPic*  getTexturePic       ()                              { return  m_ivPicsCurrPoc[0][ m_viewIndex ]; }
    26052612#endif
     2613#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    26062614#if H_3D_SINGLE_DEPTH
    26072615  Void      setApplySingleDepthMode( Bool b )                                { m_bApplySingleDepthMode = b; }
    26082616  Bool      getApplySingleDepthMode()                                        { return m_bApplySingleDepthMode; }
     2617#endif
    26092618#endif
    26102619#if H_3D_IC
  • branches/HTM-12.2-dev0/source/Lib/TLibCommon/TypeDef.h

    r1111 r1118  
    182182                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
    183183
     184#define MTK_MRG_LIST_SIZE_CLEANUP_J0059   1   // Include VSP for deriving merge candidate list size, JCT3V-J0059
    184185
    185186
     
    235236
    236237#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
    237 
     238#define MTK_SINGLE_DEPTH_VPS_FLAG_J0060   1   // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060
     239
     240#define MTK_J0033                         1
     241#define SHARP_DLT_SIMP_J0029              1   // DLT(DepthValue2Idx[]) table derivation cleanup
    238242
    239243#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    277281#define H_3D_FAST_DEPTH_INTRA             1   // Fast DMM and RBC Mode Selection
    278282                                              // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX
     283#define MTK_DMM_SIM_J0035                 1
    279284#endif
    280285
     
    307312#if H_3D_SINGLE_DEPTH
    308313#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
     314#define SINGLE_DEPTH_SIMP_J0115           1
    309315#endif
    310316
     
    379385#if H_3D
    380386#define PPS_FIX_DEPTH                           1
     387#endif
     388
     389
     390#if H_3D_SPIVMP
     391#define HS_SP_SIMP_J0066                        1
    381392#endif
    382393
  • branches/HTM-12.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1111 r1118  
    20162016            READ_FLAG( uiCode, "depth_inter_SDC_flag" );              pcVPS->setInterSDCFlag( i, uiCode ? true : false );
    20172017#endif
     2018#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     2019        READ_FLAG( uiCode, "single_depth_mode_flag[i]"); pcVPS->setSingleDepthModeFlag( i, uiCode == 1 ? true : false );       
     2020#endif
    20182021      }
    20192022    }
     
    27262729    }
    27272730#endif
     2731#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    27282732#if H_3D_SINGLE_DEPTH
    27292733    if(rpcSlice->getIsDepth())
     
    27332737      rpcSlice->setApplySingleDepthMode(uiCodeTmp);
    27342738    }
     2739#endif
    27352740#endif
    27362741    if (!rpcSlice->isIntra())
     
    27502755      {
    27512756        Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
     2757#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     2758        Bool vspFlag = rpcSlice->getVPS()->getViewSynthesisPredFlag( rpcSlice->getLayerIdInVps() ) ;
     2759        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag || vspFlag? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     2760#else
    27522761        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
    2753       }
    2754 #endif
     2762#endif
     2763      }
    27552764
    27562765#else
  • branches/HTM-12.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r1106 r1118  
    744744  //construction of depth candidates
    745745  Pel testDepth;
     746#if SINGLE_DEPTH_SIMP_J0115
     747  Pel DepthNeighbours[2];
     748#else
    746749  Pel DepthNeighbours[5];
     750#endif
    747751  Int index =0;
     752#if SINGLE_DEPTH_SIMP_J0115
     753  for( Int i = 0; (i < 2) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     754#else
    748755  for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     756#endif
    749757  {
    750758    if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i))
     
    754762    DepthNeighbours[index]=testDepth;
    755763    index++;
     764#if !SINGLE_DEPTH_SIMP_J0115
    756765    for(Int j=0;j<index-1;j++)
    757766    {
     
    762771     }
    763772    }
     773#endif
    764774  }
    765775
  • branches/HTM-12.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1106 r1118  
    5959    return;
    6060  }
     61#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     62  if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps()))
     63  {
     64     return;
     65  }
     66#else
    6167  if(!pcCU->getSlice()->getApplySingleDepthMode())
    6268  {
    6369     return;
    6470  }
     71#endif
    6572  m_pcEntropyDecoderIf->parseSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );
    6673}
  • branches/HTM-12.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp

    r1107 r1118  
    11101110      UInt uiTabIdx = 0;
    11111111      xParseDmm1WedgeIdx( uiTabIdx, g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
     1112
     1113#if MTK_J0033
     1114      assert( uiTabIdx < g_dmmWedgeLists[ g_aucConvertToBit[ pcCU->getDMM1BasePatternWidth( pcCU->getWidth( absPartIdx ) )]].size());
     1115#endif
     1116
    11121117      pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth );
    11131118    } break;
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1110 r1118  
    16791679        WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" );
    16801680#endif
     1681#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1682        WRITE_FLAG( pcVPS->getSingleDepthModeFlag( i ) ? 1 : 0, "single_depth_mode_flag" );
     1683#endif
    16811684      }
    16821685    } 
     
    21352138    }
    21362139#endif
     2140#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    21372141#if H_3D_SINGLE_DEPTH
    21382142    if(pcSlice->getIsDepth())
     
    21402144      WRITE_FLAG( pcSlice->getApplySingleDepthMode() ? 1 : 0, "slice_enable_single_depth_mode" );
    21412145    }
     2146#endif
    21422147#endif
    21432148#if H_3D_IV_MERGE
     
    21612166      {
    21622167        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     2168#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     2169        Bool vspFlag = pcSlice->getVPS()->getViewSynthesisPredFlag( pcSlice->getLayerIdInVps() ) ;
     2170        WRITE_UVLC( ( ivMvPredFlag || vspFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     2171#else
    21632172        WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
    2164       }
    2165 #endif
     2173#endif
     2174      }
    21662175#else
    21672176      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r1107 r1118  
    739739#if H_3D_SINGLE_DEPTH
    740740    rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
     741#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     742    if(rpcBestCU->getSlice()->getVPS()->getSingleDepthModeFlag(rpcBestCU->getSlice()->getLayerIdInVps()))
     743#else
    741744    if(rpcBestCU->getSlice()->getApplySingleDepthMode())
     745#endif
    742746    {
    743747      xCheckRDCostSingleDepth( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1106 r1118  
    134134    return;
    135135  }
     136#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     137  if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps()))
     138  {
     139     return;
     140  }
     141#else
    136142  if(!pcCU->getSlice()->getApplySingleDepthMode())
    137143  {
    138144     return;
    139145  }
    140  
     146#endif
    141147  if( bRD )
    142148  {
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp

    r1106 r1118  
    957957    pcSlice->setRefPicList ( rcListPic );
    958958#endif
     959#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    959960#if H_3D_SINGLE_DEPTH
    960961#if HHI_TOOL_PARAMETERS_I2_J0107
     
    972973    pcSlice->setApplySingleDepthMode(enableSingleDepthMode);
    973974#endif
    974 #endif   
     975#endif   
     976#endif
    975977#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
    976978    pcSlice->setDefaultRefView();
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r1106 r1118  
    28812881  Int index=0;
    28822882  Pel testDepth;
     2883#if SINGLE_DEPTH_SIMP_J0115
     2884  Pel DepthNeighbours[2];
     2885#else
    28832886  Pel DepthNeighbours[5];
     2887#endif
    28842888  //construction of depth candidates
     2889#if SINGLE_DEPTH_SIMP_J0115
     2890  for( Int i = 0; (i < 2)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     2891#else
    28852892  for( Int i = 0; (i < 5)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     2893#endif
    28862894  {
    28872895    if(!pcCU->getNeighDepth (0, 0, &testDepth, i))
     
    28912899    DepthNeighbours[index]=testDepth;
    28922900    index++;
     2901#if !SINGLE_DEPTH_SIMP_J0115
    28932902    for(Int j=0;j<index-1;j++)
    28942903    {
     
    28992908      }
    29002909    }
     2910#endif
    29012911  }
    29022912
  • branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp

    r1106 r1118  
    622622  else
    623623  {
     624#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     625    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() )  || rpcSlice->getVPS()->getViewSynthesisPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     626#else
    624627    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
    625   }
    626 #endif
     628#endif
     629  }
    627630#else
    628631  rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
Note: See TracChangeset for help on using the changeset viewer.