Changeset 1111 in 3DVCSoftware


Ignore:
Timestamp:
7 Nov 2014, 14:12:21 (9 years ago)
Author:
tech
Message:

MV-HEVC related fix for derivation of number of views (H_MV_FIX_NUM_VIEWS).
Initial code for J0107 item 5 (not enabled yet). (HHI_VIEW_ID_LIST_I5_J0107)

Location:
branches/HTM-12.2-dev2-HHI/source
Files:
5 edited

Legend:

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

    r1106 r1111  
    13741374  }
    13751375
     1376#if H_MV_FIX_NUM_VIEWS
     1377  vps.initNumViews();
     1378#endif
    13761379  Int maxViewId = xGetMax( m_viewId );
    13771380
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.cpp

    r1110 r1111  
    18791879  m_vpsBaseLayerAvailableFlag = true;
    18801880
     1881#if  H_MV_FIX_NUM_VIEWS
     1882  m_numViews = 0;
     1883#endif
    18811884
    18821885#endif
     
    19241927  m_vpsNonVuiExtensionLength = 0;
    19251928  m_splittingFlag    = false;
     1929
    19261930 
    19271931  for( Int i = 0; i < MAX_NUM_SCALABILITY_TYPES; i++ )
     
    21992203
    22002204
     2205#if H_MV_FIX_NUM_VIEWS
     2206Void     TComVPS::initNumViews( )
     2207{
     2208  Int m_numViews = 1;
     2209#if HHI_VIEW_ID_LIST_I5_J0107
     2210#if H_3D
     2211  AOF( m_viewOIdxList.size() == 0 );
     2212  m_viewOIdxList.push_back( 0 );       
     2213#endif
     2214#endif
     2215
     2216  for( Int i = 0; i <=  getMaxLayersMinus1(); i++ )
     2217  {
     2218    Int lId = getLayerIdInNuh( i );
     2219    if( i > 0 )
     2220    {
     2221      Bool newViewFlag = true;
     2222      for( Int j = 0; j < i; j++ )
     2223      {
     2224        if( getViewOrderIdx( lId )  ==  getViewOrderIdx( getLayerIdInNuh( j ) )  )
     2225        {
     2226          newViewFlag = false;
     2227        }
     2228      }
     2229      if( newViewFlag )
     2230      {
     2231        m_numViews++;
     2232#if HHI_VIEW_ID_LIST_I5_J0107
     2233#if H_3D
     2234        m_viewOIdxList.push_back( getViewOrderIdx( lId ) );       
     2235#endif
     2236#endif
     2237      }
     2238    }
     2239  }
     2240}
     2241#endif
     2242
     2243
    22012244Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType )
    22022245{
     
    23572400}
    23582401
     2402#if !H_MV_FIX_NUM_VIEWS
    23592403Int TComVPS::getNumViews()
    23602404{
     
    23682412    }   
    23692413  }
    2370 
    23712414  return numViews;
    23722415}
     2416#endif
     2417
    23732418
    23742419Void TComVPS::deriveLayerSetLayerIdList()
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.h

    r1110 r1111  
    884884  Int         m_dependencyFlag           [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    885885
     886#if H_MV_FIX_NUM_VIEWS
     887  Int         m_numViews;
     888#endif
    886889  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    887890  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     
    949952  Int         ***m_aaaiCodedScale ;
    950953  Int         ***m_aaaiCodedOffset;
     954
     955#if H_MV_FIX_NUM_VIEWS
     956#if HHI_VIEW_ID_LIST_I5_J0107
     957  std::vector<Int>  m_viewOIdxList;
     958#endif
     959#endif
     960
    951961#endif
    952962#if !HHI_TOOL_PARAMETERS_I2_J0107
     
    11861196  Int     getAuxId        ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID  ); }   
    11871197  Int     getDependencyId ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID  ); }   
     1198#if H_MV_FIX_NUM_VIEWS
     1199  Int     getNumViews()                                                    { return m_numViews; }
     1200  Void    initNumViews();
     1201#if HHI_VIEW_ID_LIST_I5_J0107
     1202  Int     getViewOIdxList( Int i )                                         { return m_viewOIdxList[i]; }
     1203#endif
     1204#else
    11881205  Int     getNumViews();
     1206#endif
    11891207
    11901208  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TypeDef.h

    r1110 r1111  
    298298#define HHI_TOOL_PARAMETERS_I2_J0107           1
    299299#define HHI_VPS_3D_EXTENSION_I3_J0107          1
     300#define HHI_VIEW_ID_LIST_I5_J0107              0
    300301#endif
    301302#define H_MV_FIX_REF_LAYER_PIC_FLAG            1
     303#define H_MV_FIX_NUM_VIEWS                     1
    302304#define H_3D_OUTPUT_ACTIVE_TOOLS               0
    303305
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1110 r1111  
    13301330  }
    13311331
     1332#if H_MV_FIX_NUM_VIEWS
     1333  pcVPS->initNumViews();
     1334#endif
     1335
    13321336  READ_CODE( 4, uiCode, "view_id_len" ); pcVPS->setViewIdLen( uiCode );
    13331337
     
    20222026
    20232027  READ_UVLC( uiCamParPrecision, "cp_precision" );
     2028#if HHI_VIEW_ID_LIST_I5_J0107
     2029  for (Int n = 1; n < pcVPS->getNumViews(); n++)
     2030  {
     2031    Int viewIndex = pcVPS->getViewOIdxList( n );
     2032#else
    20242033  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    20252034  {
     2035#endif
    20262036    pcVPS->setCamParPresent         ( viewIndex, false );
    20272037    pcVPS->setHasCamParInSliceHeader( viewIndex, false );
     
    20322042      if ( !bCamParSlice )
    20332043      {
    2034         for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )
    2035         {
     2044#if HHI_VIEW_ID_LIST_I5_J0107
     2045        for( UInt m = 0; m < n; n++ )
     2046        {
     2047          Int uiBaseIndex = pcVPS->getViewOIdxList ( m );
    20362048          Int iCode;
    20372049          READ_SVLC( iCode, "vps_cp_scale" );                m_aaiTempScale  [ uiBaseIndex ][ viewIndex ]   = iCode;
     
    20422054      }
    20432055      pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );
     2056#else
     2057        for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )
     2058        {
     2059          Int iCode;
     2060          READ_SVLC( iCode, "vps_cp_scale" );                m_aaiTempScale  [ uiBaseIndex ][ viewIndex ]   = iCode;
     2061          READ_SVLC( iCode, "vps_cp_off" );                  m_aaiTempOffset [ uiBaseIndex ][ viewIndex ]   = iCode;
     2062          READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); m_aaiTempScale  [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];
     2063          READ_SVLC( iCode, "vps_cp_inv_off_plus_off" );     m_aaiTempOffset [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];
     2064        }
     2065      }
     2066      pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );
     2067#endif
    20442068    }
    20452069  }
Note: See TracChangeset for help on using the changeset viewer.