Changeset 532 in 3DVCSoftware for branches/HTM-DEV-0.3-dev2


Ignore:
Timestamp:
12 Jul 2013, 17:57:35 (11 years ago)
Author:
tech
Message:
  • Fixed cfg files.
  • Fixed several memory leaks.
  • Fixed encoder/decoder mismatch and aligned order of vps syntax elements with draft text.
  • Added missing iv_mv_scaling flag.
Location:
branches/HTM-DEV-0.3-dev2
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r531 r532  
    173173IvMvPred                            : 1                # Inter-view motion prediction
    174174AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    175 IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )
    176 ViewSynthesisPred                   : 0                # View synthesis prediction
     175IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )   (v/d)
     176ViewSynthesisPred                   : 1                # View synthesis prediction
    177177DepthRefinement                     : 1                # Dispary refined by depth DoNBDV
     178IvMvScaling                         : 1                # Interview motion vector scaling
    178179
    179180#========== depth coding tools ==========
  • branches/HTM-DEV-0.3-dev2/cfg/3D-HEVC/baseCfg_2view.cfg

    r517 r532  
    22# (m) specification per layer/dimension/layerset possible
    33# (c) cyclic repetition of values, if not given for all layers/dimensions/layersets. (e.g. 5 layers and 1 2 3 -> 1 2 3 1 2  )
     4# (v/d) two values possible first for depth layer, second for texture layers
    45
    56#======== File I/O =====================
     
    152153IvMvPred                            : 1                # Inter-view motion prediction
    153154AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    154 IlluCompEnable                      : 1 0              # Enable Illumination compensation ( 0: off, 1: on )
    155 ViewSynthesisPred                   : 0                # View synthesis prediction
    156 DepthRefinement                     : 0                # Dispary refined by depth DoNBDV
     155IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on ) (v/d)
     156ViewSynthesisPred                   : 1                # View synthesis prediction
     157DepthRefinement                     : 1                # Dispary refined by depth DoNBDV
     158IvMvScaling                         : 1                # Interview motion vector scaling
    157159
    158160### DO NOT ADD ANYTHING BELOW THIS LINE ###
  • branches/HTM-DEV-0.3-dev2/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r531 r532  
    196196IvMvPred                            : 1                # Inter-view motion prediction
    197197AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    198 IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )
    199 ViewSynthesisPred                   : 0                # View synthesis prediction
     198IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
     199ViewSynthesisPred                   : 1                # View synthesis prediction
    200200DepthRefinement                     : 1                # Dispary refined by depth DoNBDV
     201IvMvScaling                         : 1                # Interview motion vector scaling
     202
    201203
    202204
  • branches/HTM-DEV-0.3-dev2/cfg/3D-HEVC/baseCfg_3view.cfg

    r517 r532  
    162162IvMvPred                            : 1                # Inter-view motion prediction
    163163AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    164 IlluCompEnable                      : 1 0              # Enable Illumination compensation ( 0: off, 1: on )
     164IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )   (v/d)
    165165ViewSynthesisPred                   : 0                # View synthesis prediction
    166166DepthRefinement                     : 0                # Dispary refined by depth DoNBDV
  • branches/HTM-DEV-0.3-dev2/cfg/3D-HEVC/fullCfg.cfg

    r531 r532  
    200200
    201201#========== multiview coding tools ==========
    202 IvMvPred           : 1                                 # Inter-view motion prediction
    203 ViewSynthesisPred  : 1                                 # View synthesis prediction
    204 DepthRefinement    : 1                                 # Dispary refined by depth DoNBDV
     202IvMvPred                            : 1                # Inter-view motion prediction
     203AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     204IlluCompEnable                      : 1 1              # Enable Illumination compensation ( 0: off, 1: on ) (v/d)
     205ViewSynthesisPred                   : 1                # View synthesis prediction
     206DepthRefinement                     : 1                # Dispary refined by depth DoNBDV
     207IvMvScaling                         : 1                # Interview motion vector scaling
    205208
    206209#========== depth coding tools ==========
    207 VSO                       : 1                                      # use of view synthesis optimization for depth coding
     210VSO                       : 1                          # use of view synthesis optimization for depth coding
    208211DMM                                : 1
    209212RBC                                : 1
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.cpp

    r531 r532  
    730730#endif //HHI_VSO
    731731#if H_3D_IV_MERGE
    732   ("IvMvPred",                        m_ivMvPredFlag,           false           , "inter view motion prediction " ) 
     732  ("IvMvPred",                        m_ivMvPredFlag,           true            , "inter view motion prediction " ) 
    733733#endif
    734734#if H_3D_NBDV_REF
    735   ("DepthRefinement",                 m_depthRefinementFlag,    false           , "depth refinement by DoNBDV" ) 
     735  ("DepthRefinement",                 m_depthRefinementFlag,    true           , "depth refinement by DoNBDV" ) 
    736736#endif
    737737#if H_3D_VSP
    738   ("ViewSynthesisPred",               m_viewSynthesisPredFlag,  false           , "view synthesis prediction " ) 
     738  ("ViewSynthesisPred",               m_viewSynthesisPredFlag,  true           , "view synthesis prediction " ) 
     739#endif
     740#if H_3D_TMVP
     741  ("IvMvScaling",                     m_ivMvScalingFlag      ,  true            , "inter view motion vector scaling" )   
    739742#endif
    740743#endif //H_3D
     
    988991
    989992  xResizeVector( m_bLoopFilterDisable );
    990   xResizeVector( m_bUseSAO );  
     993  xResizeVector( m_bUseSAO );
    991994
    992995#else
     
    23222325  printf("ViewSynthesisPred:%d ", m_viewSynthesisPredFlag );
    23232326#endif
     2327#if H_3D_TMVP
     2328  printf("IvMvScaling:%d ", m_ivMvScalingFlag ? 1 : 0  );
     2329#endif
    23242330#if H_3D_DIM
    23252331  printf("DMM:%d ", m_useDMM );
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.h

    r531 r532  
    101101#if H_3D_VSP
    102102  Bool m_viewSynthesisPredFlag;
     103#endif
     104#if H_3D_TMVP
     105  Bool m_ivMvScalingFlag;
    103106#endif
    104107#endif
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.cpp

    r531 r532  
    120120  xSetDirectDependencyFlags( vps );
    121121#if H_3D
    122 #if H_3D_DIM
    123   for( Int layer = 0; layer < m_numberOfLayers; layer++ )
    124   {
    125     vps.setVpsDepthModesFlag( layer, ((vps.getDepthId( layer ) != 0) && (m_useDMM || m_useRBC || m_useSDC || m_useDLT)) ? true : false );
    126 #if H_3D_DIM_DLT
    127     vps.setUseDLTFlag( layer , ((vps.getDepthId( layer ) != 0) && m_useDLT) ? true : false );
    128     if( vps.getUseDLTFlag( layer ) )
    129     {
    130       xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod, 24), &vps);
    131     }
    132 #endif
    133   }
    134 #endif
    135122  vps.initViewIndex();
    136123#if H_3D_GEN
     
    138125#endif
    139126  m_ivPicLists.setVPS      ( &vps );
    140 #if H_3D_ARP
    141   for(Int i = 0; i < m_numberOfLayers; i++)
    142   {
    143     Bool isDepth = vps.getDepthId( i );
    144     vps.setUseAdvRP        ( i, ( isDepth || 0==i ) ? 0 : m_uiUseAdvResPred );
    145     vps.setARPStepNum      ( i, ( isDepth || 0==i ) ? 1 : H_3D_ARP_WFNR     );
    146   }
    147 #endif 
    148127#endif
    149128
     
    10551034 
    10561035  depthVideoFile->close();
     1036  delete depthVideoFile;
    10571037 
    10581038  pcDepthPicYuvOrg->destroy();
     
    11521132  for ( Int layer = 0; layer < vps.getMaxLayers(); layer++ )
    11531133  {
    1154     if ( layer != 0 )
    1155     {   
    1156       if( ( vps.getDepthId( layer ) == 0 ) )
    1157       {
     1134    Bool isDepth      = ( vps.getDepthId( layer ) == 1 ) ;
     1135    Bool isLayerZero  = ( layer == 0 );
     1136
     1137#if H_3D_ARP
     1138    vps.setUseAdvRP        ( layer, ( isDepth || isLayerZero ) ? 0 : m_uiUseAdvResPred );
     1139    vps.setARPStepNum      ( layer, ( isDepth || isLayerZero ) ? 1 : H_3D_ARP_WFNR     );
     1140#endif 
     1141
     1142#if H_3D_DIM
     1143    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useRBC || m_useSDC || m_useDLT ) );
     1144#if H_3D_DIM_DLT
     1145    vps.setUseDLTFlag( layer , isDepth && m_useDLT );
     1146    if( vps.getUseDLTFlag( layer ) )
     1147    {
     1148      xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod, 24), &vps);
     1149    }
     1150#endif
     1151#endif
     1152
    11581153#if H_3D_IV_MERGE
    1159         vps.setIvMvPredFlag       ( layer, m_ivMvPredFlag );
     1154    vps.setIvMvPredFlag         ( layer, !isLayerZero && !isDepth && m_ivMvPredFlag );
    11601155#endif
    11611156#if H_3D_NBDV_REF
    1162         vps.setDepthRefinementFlag( layer, m_depthRefinementFlag );         
     1157    vps.setDepthRefinementFlag  ( layer, !isLayerZero && !isDepth && m_depthRefinementFlag );         
    11631158#endif
    11641159#if H_3D_VSP
    1165         vps.setViewSynthesisPredFlag( layer, m_viewSynthesisPredFlag );         
    1166 #endif
    1167       }
    1168     }
    1169   }
     1160    vps.setViewSynthesisPredFlag( layer, !isLayerZero && !isDepth && m_viewSynthesisPredFlag );         
     1161#endif     
     1162  } 
     1163#if H_3D_TMVP
     1164  vps.setIvMvScalingFlag( m_ivMvScalingFlag );   
     1165#endif
    11701166}
    11711167#endif
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComDataCU.cpp

    r531 r532  
    43814381  {
    43824382#if H_3D_TMVP
    4383      Int iCurrViewId    = m_pcSlice->getViewIndex ();
    4384      Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex ();
    4385      Int iColViewId     = pColCU->getSlice()->getViewIndex();
    4386      Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
    4387      iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    4388      if ( iScale != 4096 )
    4389      {
    4390         rcMv = cColMv.scaleMv( iScale );
    4391      }
    4392      else
    4393      {
     4383    Int iCurrViewId    = m_pcSlice->getViewIndex ();
     4384    Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex ();
     4385    Int iColViewId     = pColCU->getSlice()->getViewIndex();
     4386    Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
     4387    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
     4388    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )
     4389    {
     4390      rcMv = cColMv.scaleMv( iScale );
     4391    }
     4392    else
     4393    {
    43944394#endif
    43954395       rcMv = cColMv;
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComPrediction.cpp

    r531 r532  
    21042104UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx )
    21052105{
    2106   TComPic*      pcPicTex = pcCU->getSlice()->getPicLists()->getPic( pcCU->getSlice()->getViewIndex(), false, pcCU->getSlice()->getPOC() );
     2106  TComPic*      pcPicTex = pcCU->getSlice()->getTexturePic();
    21072107  assert( pcPicTex != NULL );
    21082108  TComDataCU*   pcColTexCU = pcPicTex->getCU(pcCU->getAddr());
     
    21472147Void TComPrediction::xCopyTextureLumaBlock( TComDataCU* pcCU, UInt uiAbsPartIdx, Pel* piDestBlockY, UInt uiWidth, UInt uiHeight )
    21482148{
    2149   TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getPicLists()->getPic( pcCU->getSlice()->getViewIndex(), false, pcCU->getSlice()->getPOC() )->getPicYuvRec();
     2149  TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getTexturePic()->getPicYuvRec();
    21502150  assert( pcPicYuvRef != NULL );
    21512151  Int         iRefStride = pcPicYuvRef->getStride();
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.cpp

    r531 r532  
    7373, m_pcPPS                         ( NULL )
    7474, m_pcPic                         ( NULL )
    75 #if H_3D
    76 , m_picLists                      ( NULL )
    77 #endif
    7875, m_colFromL0Flag                 ( 1 )
    7976, m_colRefIdx                     ( 0 )
     
    973970
    974971  m_pcPic                = pSrc->m_pcPic;
    975 #if H_3D
    976   m_picLists             = pSrc->m_picLists;
    977 #endif
    978972  m_colFromL0Flag        = pSrc->m_colFromL0Flag;
    979973  m_colRefIdx            = pSrc->m_colRefIdx;
     
    15661560    }
    15671561#endif
     1562    m_ivMvScalingFlag = true;
    15681563#endif
    15691564
     
    15841579  }
    15851580#if H_3D_GEN
    1586   for( Int i = 0; i < MAX_NUM_LAYERS; i++ )  {
     1581  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     1582  {
    15871583#if H_3D_IV_MERGE
    15881584    m_ivMvPredFlag         [ i ] = false;
     
    15941590    m_depthRefinementFlag  [ i ] = false;
    15951591#endif
    1596   }
     1592  } 
    15971593#endif
    15981594#endif
     
    16041600  if( m_hrdOpSetIdx      != NULL )     delete[] m_hrdOpSetIdx;
    16051601  if( m_cprmsPresentFlag != NULL )     delete[] m_cprmsPresentFlag;
     1602#if H_3D_DIM_DLT
     1603  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     1604  {
     1605    if ( m_iDepthValue2Idx[i] != 0 )
     1606    {
     1607       xFree( m_iDepthValue2Idx[i] );
     1608       m_iDepthValue2Idx[i] = 0;
     1609    }
     1610
     1611    if ( m_iIdx2DepthValue[i] != 0 )
     1612    {
     1613      xFree( m_iIdx2DepthValue[i] );
     1614      m_iIdx2DepthValue[i] = 0;
     1615
     1616    }
     1617  }
     1618#endif
    16061619}
    16071620
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TComSlice.h

    r531 r532  
    546546  Int*        m_iIdx2DepthValue          [MAX_NUM_LAYERS   ];
    547547#endif
     548#if H_3D_TMVP
     549  Bool        m_ivMvScalingFlag;
     550#endif
    548551
    549552#endif
     
    696699#endif
    697700
    698 #endif
    699 
     701#if H_3D_TMVP
     702  Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
     703  Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
     704#endif
     705#endif
    700706
    701707  Void    setVpsProfilePresentFlag( Int layerSet, Bool val )               { m_vpsProfilePresentFlag[layerSet] = val;  }
     
    14781484  TComPPS*    m_pcPPS;
    14791485  TComPic*    m_pcPic;
    1480 #if H_3D
    1481   TComPicLists* m_picLists;
    1482 #endif
    14831486#if ADAPTIVE_QP_SELECTION
    14841487  TComTrQuant* m_pcTrQuant;
     
    16161619  Int       getNumRefIdx        ( RefPicList e )                { return  m_aiNumRefIdx[e];             }
    16171620  TComPic*  getPic              ()                              { return  m_pcPic;                      }
    1618 #if H_3D
    1619   TComPicLists* getPicLists     ()                              { return m_picLists; }
    1620 #endif
    16211621  TComPic*  getRefPic           ( RefPicList e, Int iRefIdx)    { return  m_apcRefPicList[e][iRefIdx];  }
    16221622  Int       getRefPOC           ( RefPicList e, Int iRefIdx)    { return  m_aiRefPOCList[e][iRefIdx];   }
     
    16931693  Void      setNumRefIdx        ( RefPicList e, Int i )         { m_aiNumRefIdx[e]    = i;      }
    16941694  Void      setPic              ( TComPic* p )                  { m_pcPic             = p;      }
    1695 #if H_3D
    1696   Void      setPicLists         ( TComPicLists* p )             { m_picLists          = p;      }
    1697 #endif
    16981695  Void      setDepth            ( Int iDepth )                  { m_iDepth            = iDepth; }
    16991696 
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibCommon/TypeDef.h

    r531 r532  
    7171#if H_MV
    7272#define H_MV_FIX1071                      1  //< Fix on Fix1071, same as in HTM 11
    73 #define H_MV_ENC_DEC_TRAC                 0  //< CU/PU level tracking
     73#define H_MV_FIX_VPS_POINTER              1  //< Changed m_vps in TEncCfg to pointer to avoid mismatches between layers and avoid erroneous shallow copy.
     74#define H_MV_ENC_DEC_TRAC                 1  //< CU/PU level tracking
    7475#endif
    7576
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r531 r532  
    981981      for( Int i = 0; i <= pcVPS->getMaxLayers() - 1; i++ )
    982982      {
    983         if( pcVPS->getDepthId( i ) )
    984         {
    985           READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    986          
     983
     984#if H_3D_ARP
     985        pcVPS->setUseAdvRP  ( i, 0 );
     986        pcVPS->setARPStepNum( i, 1 );
     987#endif 
     988        if ( i != 0 )
     989        {
     990          if( !( pcVPS->getDepthId( i ) == 1 ) )
     991          {
     992#if H_3D_IV_MERGE
     993                READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
     994#endif
     995#if H_3D_ARP
     996                READ_FLAG( uiCode, "iv_res_pred_flag[i]"  );  pcVPS->setUseAdvRP  ( i, uiCode ); pcVPS->setARPStepNum( i, uiCode ? H_3D_ARP_WFNR : 1 );
     997
     998#endif
     999#if H_3D_NBDV_REF
     1000                READ_FLAG( uiCode, "depth_refinement_flag[i]");    pcVPS->setDepthRefinementFlag  ( i, uiCode == 1 ? true : false );
     1001#endif
     1002#if H_3D_VSP
     1003                READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( i, uiCode == 1 ? true : false );
     1004#endif
     1005          }
     1006          else
     1007          {
     1008
     1009            READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
     1010            //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false );
    9871011#if H_3D_DIM_DLT
    988           if( pcVPS->getVpsDepthModesFlag( i ) )
    989           {
    990             READ_FLAG( uiCode, "use_dlt_flag[i]" );
    991             pcVPS->setUseDLTFlag( i, uiCode == 1 ? true : false );
     1012            if( pcVPS->getVpsDepthModesFlag( i ) )
     1013            {
     1014              READ_FLAG( uiCode, "dlt_flag[i]" );                       pcVPS->setUseDLTFlag( i, uiCode == 1 ? true : false );
     1015            }
    9921016            if( pcVPS->getUseDLTFlag( i ) )
    9931017            {
     
    9951019              UInt uiNumDepthValues;
    9961020              // parse number of values in DLT
    997               READ_UVLC(uiNumDepthValues, "num_dlt_depth_values[i]");
    998              
     1021              READ_UVLC(uiNumDepthValues, "num_depth_values_in_dlt[i]");
     1022
    9991023              // parse actual DLT values
    10001024              Int* aiIdx2DepthValue = (Int*) calloc(uiNumDepthValues, sizeof(Int));
     
    10041028                aiIdx2DepthValue[d] = (Int)uiCode;
    10051029              }
    1006              
     1030
    10071031              pcVPS->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    1008              
     1032
    10091033              // clean memory
    10101034              free(aiIdx2DepthValue);
    10111035            }
     1036#endif
    10121037          }
    1013 #endif
    1014         }
    1015       }
    1016 
    1017 #if H_3D_GEN
    1018       for( Int layer = 0; layer <= pcVPS->getMaxLayers() - 1; layer++ )
    1019       {
    1020 #if H_3D_ARP
    1021         pcVPS->setUseAdvRP  ( layer, 0 );
    1022         pcVPS->setARPStepNum( layer, 1 );
    1023 #endif 
    1024         if (layer != 0)
    1025         {
    1026           if ( !( pcVPS->getDepthId( layer ) == 1 ) )
    1027           {
    1028 #if H_3D_IV_MERGE
    1029             READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( layer, uiCode == 1 ? true : false );
    1030 #endif
    1031 #if H_3D_ARP
    1032             READ_FLAG( uiCode, "advanced_residual_pred_flag"  );  pcVPS->setUseAdvRP  ( layer, uiCode ); pcVPS->setARPStepNum( layer, uiCode ? H_3D_ARP_WFNR : 1 );
    1033 
    1034 #endif
    1035 #if H_3D_NBDV_REF
    1036             READ_FLAG( uiCode, "depth_refinement_flag[i]");    pcVPS->setDepthRefinementFlag  ( layer, uiCode == 1 ? true : false );
    1037 #endif
    1038 #if H_3D_VSP
    1039             READ_FLAG( uiCode, "view_synthesis_pred_flag[i]"); pcVPS->setViewSynthesisPredFlag( layer, uiCode == 1 ? true : false );
    1040 #endif
    1041           }         
    1042         }       
    1043       }
    1044 #endif
     1038        }
     1039      }
     1040      READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false );
    10451041#else
    10461042      while ( xMoreRbspData() )
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibDecoder/TDecTop.cpp

    r531 r532  
    917917
    918918#endif
    919 #if H_3D
    920     pcSlice->setPicLists( m_ivPicLists );
    921 #endif
    922919
    923920#if H_3D_GEN
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncCavlc.cpp

    r531 r532  
    762762#endif
    763763#if H_3D_ARP
    764         WRITE_FLAG( pcVPS->getUseAdvRP             ( i ) ? 1 : 0,  "advanced_residual_pred_flag"  );
     764        WRITE_FLAG( pcVPS->getUseAdvRP             ( i ) ? 1 : 0,  "iv_res_pred_flag[i]"  );
    765765#endif
    766766#if H_3D_NBDV_REF
     
    771771#endif
    772772      }         
    773     }       
    774     if( pcVPS->getDepthId( i ) )
    775     {
    776       WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ),          "vps_depth_modes_flag[i]" );
    777      
     773      else
     774      {
     775        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
     776        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
    778777#if H_3D_DIM_DLT
    779       if( pcVPS->getVpsDepthModesFlag( i ) )
    780       {
    781         WRITE_FLAG( pcVPS->getUseDLTFlag( i ) ? 1 : 0, "use_dlt_flag[i]" );
     778        if( pcVPS->getVpsDepthModesFlag( i ) )
     779        {
     780          WRITE_FLAG( pcVPS->getUseDLTFlag( i ) ? 1 : 0, "dlt_flag[i]" );
     781        }
    782782        if( pcVPS->getUseDLTFlag( i ) )
    783783        {
    784784          // code mapping
    785           WRITE_UVLC(pcVPS->getNumDepthValues(i), "num_dlt_depth_values[i]");
     785          WRITE_UVLC(pcVPS->getNumDepthValues(i), "num_depth_values_in_dlt[i]");
    786786          for(Int d=0; d<pcVPS->getNumDepthValues(i); d++)
    787787          {
    788788            WRITE_UVLC( pcVPS->idx2DepthValue(i, d), "dlt_depth_value[i][d]" );
    789789          }
    790         }
    791       }
    792 #endif
    793     }
    794 
    795   } 
     790        }       
     791#endif
     792      }
     793    } 
     794  }
     795#if H_3D_TMVP
     796  WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
     797#endif
    796798#else
    797799  WRITE_FLAG( 0,                                             "vps_extension2_flag" );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncCfg.h

    r531 r532  
    322322  Bool      m_TransquantBypassEnableFlag;                     ///< transquant_bypass_enable_flag setting in PPS.
    323323  Bool      m_CUTransquantBypassFlagValue;                    ///< if transquant_bypass_enable_flag, the fixed value to use for the per-CU cu_transquant_bypass_flag.
     324#if H_MV_FIX_VPS_POINTER
     325  TComVPS*  m_cVPS;                                           ///< pointer to VPS, same for all layers
     326#else
    324327  TComVPS                    m_cVPS;
     328#endif
    325329  Bool      m_recalculateQPAccordingToLambda;                 ///< recalculate QP value according to the lambda value
    326330  Int       m_activeParameterSetsSEIEnabled;                  ///< enable active parameter set SEI message
     
    833837  Bool      getCUTransquantBypassFlagValue()          { return m_CUTransquantBypassFlagValue; }
    834838  Void      setCUTransquantBypassFlagValue(Bool flag) { m_CUTransquantBypassFlagValue = flag; }
     839#if H_MV_FIX_VPS_POINTER
     840  Void      setVPS           ( TComVPS *p ) { m_cVPS = p;    }
     841  TComVPS*  getVPS           ()             { return m_cVPS; }
     842#else
    835843  Void setVPS(TComVPS *p) { m_cVPS = *p; }
    836844  TComVPS *getVPS() { return &m_cVPS; }
     845#endif
    837846  Void      setUseRecalculateQPAccordingToLambda ( Bool b ) { m_recalculateQPAccordingToLambda = b;    }
    838847  Bool      getUseRecalculateQPAccordingToLambda ()         { return m_recalculateQPAccordingToLambda; }
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncGOP.cpp

    r531 r532  
    706706#if H_3D
    707707    pcSlice->setIvPicLists( m_ivPicLists );         
    708 #if H_3D
    709     pcSlice->setPicLists( m_ivPicLists );
    710 #endif
    711708#if H_3D_IV_MERGE   
    712709    assert( !m_pcEncTop->getIsDepth() || ( pcSlice->getTexturePic() != 0 ) );
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncSearch.cpp

    r531 r532  
    72777277  Pel refDC1 = 0; Pel refDC2 = 0;
    72787278
    7279   TComPic*      pcPicTex = pcCU->getSlice()->getPicLists()->getPic( pcCU->getSlice()->getViewIndex(), false, pcCU->getSlice()->getPOC() );
     7279  TComPic*      pcPicTex = pcCU->getSlice()->getTexturePic();
    72807280  assert( pcPicTex != NULL );
    72817281  TComDataCU* pcColTexCU = pcPicTex->getCU(pcCU->getAddr());
  • branches/HTM-DEV-0.3-dev2/source/Lib/TLibEncoder/TEncTop.cpp

    r521 r532  
    290290 
    291291  /* set the VPS profile information */
     292#if H_MV_FIX_VPS_POINTER
     293  // This seems to be incorrect, but irrelevant for the MV-HEVC
     294  *(m_cVPS->getPTL()) = *m_cSPS.getPTL();
     295#if L0043_TIMING_INFO
     296  m_cVPS->getTimingInfo()->setTimingInfoPresentFlag       ( false );
     297#endif
     298#else
    292299  *m_cVPS.getPTL() = *m_cSPS.getPTL();
     300
    293301#if L0043_TIMING_INFO
    294302  m_cVPS.getTimingInfo()->setTimingInfoPresentFlag       ( false );
     303#endif
    295304#endif
    296305  // initialize PPS
     
    668677{
    669678#if H_MV
     679#if H_MV_FIX_VPS_POINTER
     680  if( getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) > 0 )
     681#else
    670682  if( m_cVPS.getNumDirectRefLayers( getLayerIdInVps() ) > 0 )
     683#endif
    671684  {
    672685    m_cPPS.setListsModificationPresentFlag( true );
Note: See TracChangeset for help on using the changeset viewer.