Ignore:
Timestamp:
6 Nov 2014, 20:29:09 (10 years ago)
Author:
tech
Message:
  • HHI_TOOL_PARAMETERS_I2_J0107: Tool parameters moved to SPS and combined with dependency flags
  • Related update of cfg files.
Location:
branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncCfg.cpp

    r1104 r1106  
    377377  ("DepthFlag",             m_depthFlag          , std::vector<Int>(1,0), "Depth Flag")
    378378#if H_3D_DIM
     379#if !HHI_TOOL_PARAMETERS_I2_J0107
    379380  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
    380381  ("IVP",                   m_useIVP,           true,  "intra-view prediction")
    381382  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
     383#endif
    382384  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
    383385#endif
    384386#if H_3D
     387#if !HHI_TOOL_PARAMETERS_I2_J0107
    385388  ("SingleDepthMode",    m_useSingleDepthMode, true, "Single depth mode")                         
     389#endif
    386390#endif
    387391#endif
     
    534538  ("DeblockingFilterMetric",         m_DeblockingFilterMetric,         false )
    535539
     540#if !HHI_TOOL_PARAMETERS_I2_J0107
    536541#if H_3D_ARP
    537542  ("AdvMultiviewResPred",      m_uiUseAdvResPred,           (UInt)1, "Usage of Advanced Residual Prediction" )
     
    541546  ("SubPUMPILog2Size", m_iSubPUMPILog2Size, (Int)3, "Sub-PU MPI size index: 2^n")
    542547#endif
     548#endif
    543549#if H_3D_IC
    544550  ("IlluCompEnable",           m_abUseIC, true, "Enable illumination compensation")
    545551  ("IlluCompLowLatencyEnc",    m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding")
    546552#endif
     553#if !HHI_TOOL_PARAMETERS_I2_J0107
    547554#if H_3D_INTER_SDC
    548555  ("InterSDC",                 m_bDepthInterSDCFlag,        true, "Enable depth inter SDC")
     
    553560#if H_3D_IV_MERGE
    554561  ("MPI",                      m_bMPIFlag,        true, "Enable MPI")
     562#endif
    555563#endif
    556564  // Coding tools
     
    793801
    794802#endif //HHI_VSO
     803#if HHI_TOOL_PARAMETERS_I2_J0107
     804  ("QTL",                             m_bUseQTL                 , true          , "Use depth quad tree limitation (encoder only)" )
     805#else
    795806#if H_3D_QTLPC
    796807  ("LimQtPredFlag",                   m_bLimQtPredFlag          , true          , "Use Predictive Coding with QTL" )
     
    808819#if H_3D
    809820  ("IvMvScaling",                     m_ivMvScalingFlag      ,  true            , "inter view motion vector scaling" )   
     821#endif
     822#endif
     823
     824#if HHI_TOOL_PARAMETERS_I2_J0107
     825  ("IvMvPredFlag"          , m_ivMvPredFlag          , std::vector< Bool >(2,true)                    , "Inter-view motion prediction"              )
     826  ("IvMvScalingFlag"       , m_ivMvScalingFlag       , std::vector< Bool >(2,true)                    , "Inter-view motion vector scaling"          )
     827  ("Log2SubPbSizeMinus3"   , m_log2SubPbSizeMinus3   , 0                                              , "Log2 minus 3 of sub Pb size"               )
     828  ("IvResPredFlag"         , m_ivResPredFlag         , true                                           , "Inter-view residual prediction"            )
     829  ("DepthRefinementFlag"   , m_depthRefinementFlag   , true                                           , "Depth to refine disparity"                 )
     830  ("ViewSynthesisPredFlag" , m_viewSynthesisPredFlag , true                                           , "View synthesis prediction"                 )
     831  ("DepthBasedBlkPartFlag" , m_depthBasedBlkPartFlag , true                                           , "Depth base block partitioning"             )
     832  ("MpiFlag"               , m_mpiFlag               , true                                           , "Motion inheritance from texture to depth"  )
     833  ("Log2MpiSubPbSizeMinus3", m_log2MpiSubPbSizeMinus3, 0                                              , "Log2 minus 3 of sub Pb size for MPI"       )
     834  ("IntraContourFlag"      , m_intraContourFlag      , true                                           , "Intra contour mode"                        )
     835  ("IntraWedgeFlag"        , m_intraWedgeFlag        , true                                           , "Intra wedge mode and segmental depth DCs"  )
     836  ("IntraSdcFlag"          , m_intraSdcFlag          , true                                           , "Intra depth DCs"                           )
     837  ("QtPredFlag"            , m_qtPredFlag            , true                                           , "Quad tree prediction from texture to depth")
     838  ("InterSdcFlag"          , m_interSdcFlag          , true                                           , "Inter depth DCs"                           )
     839  ("IntraSingleFlag"       , m_intraSingleFlag       , true                                           , "Intra single mode"                         )
    810840#endif
    811841#endif //H_3D
     
    16501680
    16511681#if H_3D_ARP
     1682#if !HHI_TOOL_PARAMETERS_I2_J0107
    16521683  xConfirmPara( ( 0 != m_uiUseAdvResPred ) &&  ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." );
    16531684#endif
     1685#endif
    16541686#if H_3D_SPIVMP
     1687#if HHI_TOOL_PARAMETERS_I2_J0107
     1688  xConfirmPara( m_log2SubPbSizeMinus3 < 0,                                        "Log2SubPbSizeMinus3 must be equal to 0 or greater.");
     1689  xConfirmPara( m_log2SubPbSizeMinus3 > 3,                                        "Log2SubPbSizeMinus3 must be equal to 3 or smaller.");
     1690  xConfirmPara( (1<< ( m_log2SubPbSizeMinus3 + 3) ) > m_uiMaxCUWidth,              "Log2SubPbSizeMinus3 must be  equal to log2(maxCUSize)-3 or smaller.");
     1691 
     1692  xConfirmPara( m_log2MpiSubPbSizeMinus3 < 0,                                        "Log2MpiSubPbSizeMinus3 must be equal to 0 or greater.");
     1693  xConfirmPara( m_log2MpiSubPbSizeMinus3 > 3,                                        "Log2MpiSubPbSizeMinus3 must be equal to 3 or smaller.");
     1694  xConfirmPara( (1<< (m_log2MpiSubPbSizeMinus3 + 3)) > m_uiMaxCUWidth,               "Log2MpiSubPbSizeMinus3 must be equal to log2(maxCUSize)-3 or smaller.");
     1695#else
    16551696  xConfirmPara( m_iSubPULog2Size < 3,                                        "SubPULog2Size must be 3 or greater.");
    16561697  xConfirmPara( m_iSubPULog2Size > 6,                                        "SubPULog2Size must be 6 or smaller.");
     
    16601701  xConfirmPara( m_iSubPUMPILog2Size > 6,                                        "SubPUMPILog2Size must be 6 or smaller.");
    16611702  xConfirmPara( ( 1 << m_iSubPUMPILog2Size ) > m_uiMaxCUWidth,                  "SubPUMPILog2Size must be log2(maxCUSize) or smaller.");
     1703#endif
    16621704#endif
    16631705#if ADAPTIVE_QP_SELECTION
     
    26062648  printf("WVSO:%d ", m_bUseWVSO ); 
    26072649#endif
     2650
     2651#if HHI_TOOL_PARAMETERS_I2_J0107
     2652  printf( "QTL:%d "                  , m_bUseQTL);
     2653  printf( "IlluCompEnable:%d "       , m_abUseIC);
     2654  printf( "IlluCompLowLatencyEnc:%d ",  m_bUseLowLatencyICEnc);
     2655  printf( "DLT:%d ", m_useDLT );
     2656
     2657
     2658  printf( "IvMvPred:%d %d "    , m_ivMvPredFlag[0], m_ivMvPredFlag[1] );
     2659  printf( "IvMvScaling:%d %d "    , m_ivMvScalingFlag[0], m_ivMvScalingFlag[1] );
     2660
     2661  printf( "Log2SubPbSizeMinus3:%d "    , m_log2SubPbSizeMinus3            );
     2662  printf( "IvResPred:%d "              , m_ivResPredFlag          ? 1 : 0 );
     2663  printf( "DepthRefinement:%d "        , m_depthRefinementFlag    ? 1 : 0 );
     2664  printf( "ViewSynthesisPred:%d "      , m_viewSynthesisPredFlag  ? 1 : 0 );
     2665  printf( "DepthBasedBlkPart:%d "      , m_depthBasedBlkPartFlag  ? 1 : 0 );
     2666  printf( "Mpi:%d "                    , m_mpiFlag                ? 1 : 0 );
     2667  printf( "Log2MpiSubPbSizeMinus3:%d " , m_log2MpiSubPbSizeMinus3         );
     2668  printf( "IntraContour:%d "           , m_intraContourFlag       ? 1 : 0 );
     2669  printf( "IntraWedge:%d "             , m_intraWedgeFlag         ? 1 : 0 );
     2670  printf( "IntraSdc:%d "               , m_intraSdcFlag           ? 1 : 0 );
     2671  printf( "QtPred:%d "                 , m_qtPredFlag             ? 1 : 0 );
     2672  printf( "InterSdc:%d "               , m_interSdcFlag           ? 1 : 0 );
     2673  printf( "IntraSingle:%d "            , m_intraSingleFlag        ? 1 : 0 );
     2674
     2675#else
    26082676#if H_3D_QTLPC
    26092677  printf("LimQtPredFlag:%d ", m_bLimQtPredFlag ? 1 : 0);
    26102678  printf("QTL:%d ", m_bUseQTL);
    26112679#endif
    2612 #if H_3D_IV_MERGE
     2680#if H_3D_IV_MERGE 
    26132681  printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0);
    26142682#if H_3D_SPIVMP
     
    26512719  printf( "MPI:%d ", m_bMPIFlag ? 1 : 0 );
    26522720#endif
     2721#endif
     2722
    26532723  printf("\n\n"); 
    26542724
  • TabularUnified branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncCfg.h

    r1084 r1106  
    132132  Bool m_higherLayerIrapSkipFlag;
    133133
    134 
     134#if !HHI_TOOL_PARAMETERS_I2_J0107
    135135#if H_3D_IV_MERGE
    136136  vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction
     137
    137138#if H_3D_SPIVMP
    138139  Int                    m_iSubPULog2Size;                   
     
    147148  UInt                   m_uiARPStepNum;
    148149#endif
     150#endif
     151
    149152#if H_3D_IC
    150153  Bool   m_abUseIC;
    151154  Bool   m_bUseLowLatencyICEnc;
    152155#endif
     156
     157#if !HHI_TOOL_PARAMETERS_I2_J0107
    153158#if H_3D_NBDV_REF
    154159  Bool m_depthRefinementFlag; 
     
    159164#if H_3D
    160165  Bool m_ivMvScalingFlag;
     166#endif
    161167#endif
    162168#endif
     
    486492#endif
    487493#if H_3D_DIM
     494#if !HHI_TOOL_PARAMETERS_I2_J0107
    488495  Bool      m_useDMM;                                        ///< flag for using DMM
    489496  Bool      m_useIVP;
    490497  Bool      m_useSDC;                                        ///< flag for using SDC
     498#endif
    491499  Bool      m_useDLT;                                        ///< flag for using DLT
    492500#endif
     501#if !HHI_TOOL_PARAMETERS_I2_J0107
    493502#if H_3D_SINGLE_DEPTH
    494503  Bool     m_useSingleDepthMode;                          ///< flag for using single depth mode
    495504#endif
     505#endif
    496506#if H_3D_QTLPC
    497507  Bool      m_bUseQTL;                                        ///< flag for using depth QuadTree Limitation
    498508#endif
     509#if !HHI_TOOL_PARAMETERS_I2_J0107
    499510#if H_3D_INTER_SDC
    500511  Bool m_bDepthInterSDCFlag;                                ///< flag for inter SDC of depth map coding
     
    506517  Bool m_bMPIFlag;                                           ///< flag for MPI of depth map coding
    507518#endif
     519#endif
     520
     521#if HHI_TOOL_PARAMETERS_I2_J0107
     522  std::vector< Bool >    m_ivMvPredFlag;
     523  std::vector< Bool >    m_ivMvScalingFlag;
     524  Int                    m_log2SubPbSizeMinus3;
     525  Bool                   m_ivResPredFlag;
     526  Bool                   m_depthRefinementFlag;
     527  Bool                   m_viewSynthesisPredFlag;
     528  Bool                   m_depthBasedBlkPartFlag;
     529  Bool                   m_mpiFlag;
     530  Int                    m_log2MpiSubPbSizeMinus3;
     531  Bool                   m_intraContourFlag;
     532  Bool                   m_intraWedgeFlag;
     533  Bool                   m_intraSdcFlag;
     534  Bool                   m_qtPredFlag;
     535  Bool                   m_interSdcFlag;
     536  Bool                   m_intraSingleFlag;
     537#endif
     538
    508539#endif
    509540  // internal member functions
  • TabularUnified branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncTop.cpp

    r1104 r1106  
    140140  xSetVPSVUI               ( vps );
    141141#if H_3D
     142#if !HHI_TOOL_PARAMETERS_I2_J0107
    142143  xSetVPSExtension2        ( vps );
     144#endif
    143145  m_ivPicLists.setVPS      ( &vps );
    144146  xDeriveDltArray          ( vps, dlt );
     
    173175    vps.printPTL();
    174176  }
     177
     178#if HHI_TOOL_PARAMETERS_I2_J0107
     179#if H_3D
     180  // Set 3d tool parameters
     181
     182  for (Int d = 0; d < 2; d++)
     183  { 
     184    m_sps3dExtension.setIvMvPredFlag          ( d, m_ivMvPredFlag[d]       );
     185    m_sps3dExtension.setIvMvScalingFlag       ( d, m_ivMvScalingFlag[d]    );
     186    if (d == 0 )
     187    {   
     188      m_sps3dExtension.setLog2SubPbSizeMinus3   ( d, m_log2SubPbSizeMinus3   );
     189      m_sps3dExtension.setIvResPredFlag         ( d, m_ivResPredFlag         );
     190      m_sps3dExtension.setDepthRefinementFlag   ( d, m_depthRefinementFlag   );
     191      m_sps3dExtension.setViewSynthesisPredFlag ( d, m_viewSynthesisPredFlag );
     192      m_sps3dExtension.setDepthBasedBlkPartFlag ( d, m_depthBasedBlkPartFlag );
     193    }
     194    else
     195    {   
     196      m_sps3dExtension.setMpiFlag               ( d, m_mpiFlag               );
     197      m_sps3dExtension.setLog2MpiSubPbSizeMinus3( d, m_log2MpiSubPbSizeMinus3);
     198      m_sps3dExtension.setIntraContourFlag      ( d, m_intraContourFlag      );
     199      m_sps3dExtension.setIntraSdcWedgeFlag     ( d, m_intraSdcFlag || m_intraWedgeFlag     );
     200      m_sps3dExtension.setQtPredFlag            ( d, m_qtPredFlag            );
     201      m_sps3dExtension.setInterSdcFlag          ( d, m_interSdcFlag          );
     202      m_sps3dExtension.setIntraSingleFlag       ( d, m_intraSingleFlag       ); 
     203    }
     204  }
     205#endif
     206#endif
    175207
    176208  for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
     
    216248    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    217249#endif // H_3D_VSO
     250#if !HHI_TOOL_PARAMETERS_I2_J0107
    218251#if H_3D_SPIVMP
    219252    m_cTEncTop.setSubPULog2Size                 (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size   );
    220253    m_cTEncTop.setSubPUMPILog2Size              ( !isDepth ? 0 : m_iSubPUMPILog2Size   );
    221254#endif
     255#endif
    222256#if H_3D_IC
    223257    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC );
    224258    m_cTEncTop.setUseICLowLatencyEnc           ( m_bUseLowLatencyICEnc );
    225259#endif
    226   //========== Depth intra modes ==========
     260
     261   
     262#if HHI_TOOL_PARAMETERS_I2_J0107
     263    m_cTEncTop.setUseDMM                       ( isDepth ? m_intraWedgeFlag   : false );
     264    m_cTEncTop.setUseSDC                       ( isDepth ? m_intraSdcFlag     : false );
     265    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT   : false );
     266    m_cTEncTop.setUseQTL                       ( isDepth ? m_bUseQTL  : false );
     267#else
     268//========== Depth intra modes ==========
    227269#if H_3D_DIM
    228270    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
     271#if !HHI_TOOL_PARAMETERS_I2_J0107
    229272#if H_3D_FCO
    230273    m_cTEncTop.setUseIVP                       ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_useIVP               : false );
     
    232275    m_cTEncTop.setUseIVP                       ( isDepth ? m_useIVP               : false );
    233276#endif
     277#endif
    234278    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
     279#endif
     280
    235281    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
    236 #endif
     282
    237283#if H_3D_SINGLE_DEPTH
    238284    m_cTEncTop.setUseSingleDepthMode           ( isDepth ? m_useSingleDepthMode   : false );
     
    254300    m_cTEncTop.setUseMPI                       ( isDepth ? m_bMPIFlag    : false );
    255301#endif
     302#endif
     303#endif
     304
     305
     306#if HHI_TOOL_PARAMETERS_I2_J0107
     307  m_cTEncTop.setSps3dExtension                 ( m_sps3dExtension );
    256308#endif
    257309#endif // H_3D
     
    14361488        else
    14371489        {       
     1490#if HHI_TOOL_PARAMETERS_I2_J0107
     1491          if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) )
     1492#else
    14381493          if( m_depthFlag[ curLayerIdInVps ] && ( m_bMPIFlag || m_bLimQtPredFlag || m_useIVP  ) )
     1494#endif
    14391495          {         
    14401496            Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false );
     
    14441500            }
    14451501          }
    1446 
     1502#if HHI_TOOL_PARAMETERS_I2_J0107
     1503          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_depthBasedBlkPartFlag ) )
     1504#else
    14471505          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_bUseDBBP) )
     1506#endif
    14481507          { 
    14491508            Int maxPresentTid =-1;
     
    21482207
    21492208#if H_3D
     2209#if HHI_TOOL_PARAMETERS_I2_J0107
     2210#else
    21502211Void TAppEncTop::xSetVPSExtension2( TComVPS& vps )
    21512212{
     
    22302291  } 
    22312292}
     2293#endif
    22322294
    22332295Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt )
  • TabularUnified branches/HTM-12.2-dev2-HHI/source/App/TAppEncoder/TAppEncTop.h

    r1084 r1106  
    9292#if H_3D
    9393  TComDLT                    m_dlt;                         ///< dlt
     94#if HHI_TOOL_PARAMETERS_I2_J0107
     95  TComSps3dExtension         m_sps3dExtension;              ///< Currently all layers share the same sps 3D Extension 
     96#endif
    9497#endif
    9598
     
    146149#endif
    147150#if H_3D
     151#if !HHI_TOOL_PARAMETERS_I2_J0107
    148152  Void xSetVPSExtension2( TComVPS& vps );
     153#endif
    149154  Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt );
    150155#endif
Note: See TracChangeset for help on using the changeset viewer.