Changeset 493 in 3DVCSoftware for branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
- Timestamp:
- 24 Jun 2013, 21:36:38 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-0.3-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r492 r493 215 215 #endif 216 216 #if H_MV 217 in>>entry.m_num InterViewRefPics;218 for( Int i = 0; i < entry.m_num InterViewRefPics; i++ )219 { 220 in>>entry.m_inter ViewRefs[i];221 } 222 for( Int i = 0; i < entry.m_num InterViewRefPics; i++ )217 in>>entry.m_numActiveRefLayerPics; 218 for( Int i = 0; i < entry.m_numActiveRefLayerPics; i++ ) 219 { 220 in>>entry.m_interLayerPredLayerIdc[i]; 221 } 222 for( Int i = 0; i < entry.m_numActiveRefLayerPics; i++ ) 223 223 { 224 224 in>>entry.m_interViewRefPosL[0][i]; 225 225 } 226 for( Int i = 0; i < entry.m_num InterViewRefPics; i++ )226 for( Int i = 0; i < entry.m_numActiveRefLayerPics; i++ ) 227 227 { 228 228 in>>entry.m_interViewRefPosL[1][i]; 229 229 } 230 in>>entry.m_collocatedRefLayerIdx; 230 231 #endif 231 232 return in; … … 397 398 ("LayerIdsInSet_%d", m_layerIdsInSets , std::vector<Int>(1,0), MAX_VPS_OP_SETS_PLUS1 ,"LayerIds of Layer set") 398 399 ("DefaultOneTargetOutputLayerFlag", m_defaultOneTargetOutputLayerFlag, false , "Output highest layer of layer sets by default") 399 ("OutputLayerSetIdx", m_outputLayerSetIdx , std::vector<Int>( 1,0), "Indices of layer sets used as additional output layer sets")400 ("OutputLayerSetIdx", m_outputLayerSetIdx , std::vector<Int>(0,0), "Indices of layer sets used as additional output layer sets") 400 401 ("LayerIdsInAddOutputLayerSet_%d", m_layerIdsInAddOutputLayerSet , std::vector<Int>(1,0), MAX_VPS_ADD_OUTPUT_LAYER_SETS, "LayerIds of additional output layers") 401 402 ("ProfileLevelTierIdx", m_profileLevelTierIdx, std::vector<Int>(1,0), "Indices to profile level tier") 403 404 // Layer dependencies 405 ("DirectRefLayers_%d", m_directRefLayers , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers") 406 ("DependencyTypes_%d", m_dependencyTypes , std::vector<Int>(0,0), MAX_NUM_LAYERS, "Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion") 402 407 #endif 403 408 ("SourceWidth,-wdt", m_iSourceWidth, 0, "Source picture width") … … 1391 1396 } 1392 1397 xConfirmPara( m_profileLevelTierIdx.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" ); 1398 1399 // Layer Dependencies 1400 for (Int i = 0; i < m_numberOfLayers; i++ ) 1401 { 1402 xConfirmPara( (i == 0) && m_directRefLayers[0].size() != 0, "Layer 0 shall not have reference layers." ); 1403 xConfirmPara( m_directRefLayers[i].size() == m_dependencyTypes[ i ].size() != 0, "Each reference layer shall have a reference type" ); 1404 for (Int j = 0; j < m_directRefLayers[i].size(); j++) 1405 { 1406 xConfirmPara( m_directRefLayers[i][j] < 0 || m_directRefLayers[i][j] >= i , "Reference layer id shall be greater than or equal to 0 and less than dependent layer id"); 1407 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 2 , "Dependency type shall be greater than or equal to 0 and less than 3"); 1408 } 1409 } 1393 1410 #endif 1394 1411 xConfirmPara( m_iGOPSize < 1 , "GOP Size must be greater or equal to 1" ); … … 1544 1561 for( Int i = 0; i < MAX_GOP; i++ ) 1545 1562 { 1546 if( m_GOPListMvc[0][i].m_num InterViewRefPics != 0 )1563 if( m_GOPListMvc[0][i].m_numActiveRefLayerPics != 0 ) 1547 1564 { 1548 1565 printf( "\nError: Frame%d inter_layer refs not available in layer 0\n", i ); … … 1560 1577 for( Int i = 0; i < MAX_GOP+1; i++ ) 1561 1578 { 1562 for( Int j = 0; j < m_GOPListMvc[k][i].m_num InterViewRefPics; j++ )1579 for( Int j = 0; j < m_GOPListMvc[k][i].m_numActiveRefLayerPics; j++ ) 1563 1580 { 1564 Int i AbsViewId = m_GOPListMvc[k][i].m_interViewRefs[j] + k;1565 if( i AbsViewId < 0 || iAbsViewId >= k)1581 Int ilPredLayerIdc = m_directRefLayers[k][m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j]]; 1582 if( ilPredLayerIdc < 0 || ilPredLayerIdc >= m_directRefLayers[k].size() ) 1566 1583 { 1567 printf( "\nError: inter-layer ref pic %d is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interViewRefs[j], i, k );1584 printf( "\nError: inter-layer ref idc %d is not available for Frame%d_l%d\n", m_GOPListMvc[k][i].m_interLayerPredLayerIdc[j], i, k ); 1568 1585 bErrorIvpEnhV = true; 1569 1586 } … … 1615 1632 } 1616 1633 1617 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'I' && m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics != 0 )1634 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'I' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics != 0 ) 1618 1635 { 1619 1636 printf( "\nError: inter-layer prediction not possible for FrameI_l%d with slice type I, #IL_ref_pics must be 0\n", k ); … … 1621 1638 } 1622 1639 1623 if( m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive > m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics )1640 if( m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive > m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics ) 1624 1641 { 1625 m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive = m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics;1642 m_GOPListMvc[k][MAX_GOP].m_numRefPicsActive = m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics; 1626 1643 } 1627 1644 1628 1645 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'P' ) 1629 1646 { 1630 if( m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics < 1 )1647 if( m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 ) 1631 1648 { 1632 1649 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type P\n", k ); … … 1635 1652 else 1636 1653 { 1637 for( Int j = 0; j < m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics; j++ )1654 for( Int j = 0; j < m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics; j++ ) 1638 1655 { 1639 1656 if( m_GOPListMvc[k][MAX_GOP].m_interViewRefPosL[1][j] != -1 ) … … 1646 1663 } 1647 1664 1648 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'B' && m_GOPListMvc[k][MAX_GOP].m_num InterViewRefPics < 1 )1665 if( m_GOPListMvc[k][MAX_GOP].m_sliceType == 'B' && m_GOPListMvc[k][MAX_GOP].m_numActiveRefLayerPics < 1 ) 1649 1666 { 1650 1667 printf( "\nError: #IL_ref_pics must be at least one for FrameI_l%d with slice type B\n", k );
Note: See TracChangeset for help on using the changeset viewer.