Changeset 1176 in SHVCSoftware
- Timestamp:
- 8 Jul 2015, 02:33:56 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1173 r1176 2023 2023 } 2024 2024 } 2025 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 2025 2026 2026 m_tilesNotInUseFlag = true; 2027 m_wppNotInUseFlag = true; 2027 2028 ::memset(m_tilesInUseFlag, 0, sizeof(m_tilesInUseFlag)); 2028 2029 ::memset(m_loopFilterNotAcrossTilesFlag, 0, sizeof(m_loopFilterNotAcrossTilesFlag)); 2029 #endif2030 2030 ::memset(m_tileBoundariesAlignedFlag, 0, sizeof(m_tileBoundariesAlignedFlag)); 2031 #if VPS_VUI_WPP_NOT_IN_USE__FLAG2032 m_wppNotInUseFlag = true;2033 2031 ::memset(m_wppInUseFlag, 0, sizeof(m_wppInUseFlag)); 2034 #endif2035 2032 2036 2033 m_ilpRestrictedRefLayersFlag = false; … … 3151 3148 } 3152 3149 #endif 3153 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 3150 3154 3151 Void TComVPS::setTilesNotInUseFlag(Bool x) 3155 3152 { 3156 3153 m_tilesNotInUseFlag = x; 3157 if (m_tilesNotInUseFlag) 3158 { 3159 for (int i = 0; i < getMaxLayers(); i++) 3154 3155 if( m_tilesNotInUseFlag ) 3156 { 3157 for( Int i = 0; i < getMaxLayers(); i++ ) 3160 3158 { 3161 3159 m_tilesInUseFlag[i] = m_loopFilterNotAcrossTilesFlag[i] = m_tilesNotInUseFlag; 3162 3160 } 3163 } 3164 3165 if (m_tilesNotInUseFlag) 3166 { 3167 for (int i = 1; i < getMaxLayers(); i++) 3168 { 3169 for(int j = 0; j < getNumDirectRefLayers(getLayerIdInNuh(i)); j++) 3161 3162 for( Int i = 1; i < getMaxLayers(); i++ ) 3163 { 3164 for( Int j = 0; j < getNumDirectRefLayers(getLayerIdInNuh(i)); j++) 3170 3165 { 3171 3166 setTileBoundariesAlignedFlag(i, j, m_tilesNotInUseFlag); … … 3174 3169 } 3175 3170 } 3176 #endif 3177 3178 #if VPS_VUI_WPP_NOT_IN_USE__FLAG 3171 3179 3172 Void TComVPS::setWppNotInUseFlag(Bool x) 3180 3173 { 3181 3174 m_wppNotInUseFlag = x; 3182 if (m_wppNotInUseFlag) 3183 { 3184 for (int i = 0; i < getMaxLayers(); i++) 3175 3176 if( m_wppNotInUseFlag ) 3177 { 3178 for( Int i = 0; i < getMaxLayers(); i++ ) 3185 3179 { 3186 3180 m_wppInUseFlag[i] = m_wppNotInUseFlag; … … 3188 3182 } 3189 3183 } 3190 #endif3191 3184 3192 3185 Void TComVPS::setRefLayersFlags(Int currLayerId) -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.h
r1174 r1176 658 658 Bool m_singleLayerForNonIrapFlag; 659 659 Bool m_higherLayerIrapSkipFlag; 660 #if VPS_VUI_TILES_NOT_IN_USE__FLAG661 660 Bool m_tilesNotInUseFlag; 662 661 Bool m_tilesInUseFlag[MAX_VPS_LAYER_IDX_PLUS1]; 663 662 Bool m_loopFilterNotAcrossTilesFlag[MAX_VPS_LAYER_IDX_PLUS1]; 664 #endif665 663 Bool m_tileBoundariesAlignedFlag[MAX_VPS_LAYER_IDX_PLUS1][MAX_VPS_LAYER_IDX_PLUS1]; 666 #if VPS_VUI_WPP_NOT_IN_USE__FLAG667 664 Bool m_wppNotInUseFlag; 668 665 Bool m_wppInUseFlag[MAX_VPS_LAYER_IDX_PLUS1]; 669 #endif670 666 671 667 Bool m_ilpRestrictedRefLayersFlag; … … 1018 1014 Bool getHigherLayerIrapSkipFlag() { return m_higherLayerIrapSkipFlag; } 1019 1015 Void setHigherLayerIrapSkipFlag(Bool x) { m_higherLayerIrapSkipFlag = x; } 1020 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 1021 Bool getTilesNotInUseFlag() { return m_tilesNotInUseFlag; }1016 1017 Bool getTilesNotInUseFlag() { return m_tilesNotInUseFlag; } 1022 1018 Void setTilesNotInUseFlag(Bool x); 1023 Bool getTilesInUseFlag(Int currLayerId) { return m_tilesInUseFlag[currLayerId]; } 1024 Void setTilesInUseFlag(Int currLayerId, Bool x) { m_tilesInUseFlag[currLayerId] = x; } 1025 Bool getLoopFilterNotAcrossTilesFlag(Int currLayerId) { return m_loopFilterNotAcrossTilesFlag[currLayerId]; } 1026 Void setLoopFilterNotAcrossTilesFlag(Int currLayerId, Bool x) { m_loopFilterNotAcrossTilesFlag[currLayerId] = x; } 1027 #endif 1019 Bool getTilesInUseFlag(Int currLayerId) { return m_tilesInUseFlag[currLayerId]; } 1020 Void setTilesInUseFlag(Int currLayerId, Bool x) { m_tilesInUseFlag[currLayerId] = x; } 1021 Bool getLoopFilterNotAcrossTilesFlag(Int currLayerId) { return m_loopFilterNotAcrossTilesFlag[currLayerId]; } 1022 Void setLoopFilterNotAcrossTilesFlag(Int currLayerId, Bool x) { m_loopFilterNotAcrossTilesFlag[currLayerId] = x; } 1028 1023 Bool getTileBoundariesAlignedFlag(Int currLayerId, Int refLayerId) { return m_tileBoundariesAlignedFlag[currLayerId][refLayerId]; } 1029 1024 Void setTileBoundariesAlignedFlag(Int currLayerId, Int refLayerId, Bool x) { m_tileBoundariesAlignedFlag[currLayerId][refLayerId] = x; } 1030 #if VPS_VUI_WPP_NOT_IN_USE__FLAG 1031 Bool getWppNotInUseFlag() { return m_wppNotInUseFlag; } 1025 Bool getWppNotInUseFlag() { return m_wppNotInUseFlag; } 1032 1026 Void setWppNotInUseFlag(Bool x); 1033 Bool getWppInUseFlag(Int currLayerId) { return m_wppInUseFlag[currLayerId]; } 1034 Void setWppInUseFlag(Int currLayerId, Bool x) { m_wppInUseFlag[currLayerId] = x; } 1035 #endif 1027 Bool getWppInUseFlag(Int currLayerId) { return m_wppInUseFlag[currLayerId]; } 1028 Void setWppInUseFlag(Int currLayerId, Bool x) { m_wppInUseFlag[currLayerId] = x; } 1036 1029 1037 1030 Bool getIlpRestrictedRefLayersFlag ( ) { return m_ilpRestrictedRefLayersFlag;} -
branches/SHM-dev/source/Lib/TLibCommon/TypeDef.h
r1175 r1176 107 107 #define P0297_VPS_POC_LSB_ALIGNED_FLAG 1 ///< JCTVC-P0297: vps_poc_lsb_aligned_flag for cross-layer POC anchor picture derivation 108 108 109 #define VPS_VUI_TILES_NOT_IN_USE__FLAG 1 ///< JCTVC-O0226: VPS VUI flag to indicate tile not in use110 #define VPS_VUI_WPP_NOT_IN_USE__FLAG 1 ///< JCTVC-O0226: VPS VUI flag to indicate tile not in use111 112 109 #define AVC_BASE 1 ///< YUV BL reading for AVC base SVC 113 110 -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1173 r1176 3476 3476 } 3477 3477 3478 #if VPS_VUI_TILES_NOT_IN_USE__FLAG3479 UInt layerIdx;3480 3478 READ_FLAG( uiCode, "tiles_not_in_use_flag" ); vps->setTilesNotInUseFlag(uiCode == 1); 3481 if (!uiCode) 3479 3480 if( !uiCode ) 3482 3481 { 3483 3482 for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getMaxLayers(); i++ ) 3484 3483 { 3485 3484 READ_FLAG( uiCode, "tiles_in_use_flag[ i ]" ); vps->setTilesInUseFlag(i, (uiCode == 1)); 3486 if (uiCode) 3485 3486 if( uiCode ) 3487 3487 { 3488 3488 READ_FLAG( uiCode, "loop_filter_not_across_tiles_flag[ i ]" ); vps->setLoopFilterNotAcrossTilesFlag(i, (uiCode == 1)); … … 3493 3493 } 3494 3494 } 3495 #endif 3496 3497 for( i = vps->getBaseLayerInternalFlag() ? 1 : 2; i < vps->getMaxLayers(); i++ )3498 {3499 for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++)3500 {3501 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 3502 layerIdx = vps->getLayerIdxInVps(vps->getRefLayerId(vps->getLayerIdInNuh(i), j));3503 if (vps->getTilesInUseFlag(i) && vps->getTilesInUseFlag(layerIdx)){3495 3496 for( i = vps->getBaseLayerInternalFlag() ? 1 : 2; i < vps->getMaxLayers(); i++ ) 3497 { 3498 for( j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++ ) 3499 { 3500 UInt layerIdx = vps->getLayerIdxInVps(vps->getRefLayerId(vps->getLayerIdInNuh(i), j)); 3501 3502 if( vps->getTilesInUseFlag(i) && vps->getTilesInUseFlag(layerIdx) ) 3503 { 3504 3504 READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1)); 3505 3505 } 3506 #else 3507 READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1)); 3508 #endif 3509 } 3510 } 3511 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 3512 } 3513 #endif 3514 #if VPS_VUI_WPP_NOT_IN_USE__FLAG 3506 } 3507 } 3508 } 3509 3515 3510 READ_FLAG( uiCode, "wpp_not_in_use_flag" ); vps->setWppNotInUseFlag(uiCode == 1); 3516 if (!uiCode)3517 { 3518 for (i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getMaxLayers(); i++)3511 if( !uiCode ) 3512 { 3513 for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getMaxLayers(); i++ ) 3519 3514 { 3520 3515 READ_FLAG( uiCode, "wpp_in_use_flag[ i ]" ); vps->setWppInUseFlag(i, (uiCode == 1)); 3521 3516 } 3522 3517 } 3523 #endif3524 3518 3525 3519 READ_FLAG(uiCode, "single_layer_for_non_irap_flag" ); vps->setSingleLayerForNonIrapFlag(uiCode == 1 ? true : false); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r1172 r1176 2436 2436 } 2437 2437 2438 #if VPS_VUI_TILES_NOT_IN_USE__FLAG2439 UInt layerIdx;2440 2438 WRITE_FLAG( vps->getTilesNotInUseFlag() ? 1 : 0 , "tiles_not_in_use_flag" ); 2441 if (!vps->getTilesNotInUseFlag()) 2439 2440 if( !vps->getTilesNotInUseFlag() ) 2442 2441 { 2443 2442 for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getMaxLayers(); i++ ) 2444 2443 { 2445 2444 WRITE_FLAG( vps->getTilesInUseFlag(i) ? 1 : 0 , "tiles_in_use_flag[ i ]" ); 2446 if (vps->getTilesInUseFlag(i)) 2445 2446 if( vps->getTilesInUseFlag(i) ) 2447 2447 { 2448 2448 WRITE_FLAG( vps->getLoopFilterNotAcrossTilesFlag(i) ? 1 : 0 , "loop_filter_not_across_tiles_flag[ i ]" ); 2449 2449 } 2450 2450 } 2451 #endif2452 2451 2453 2452 for( i = vps->getBaseLayerInternalFlag() ? 1 : 2; i < vps->getMaxLayers(); i++ ) … … 2455 2454 for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++) 2456 2455 { 2457 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 2458 layerIdx = vps->getLayerIdxInVps(vps->getRefLayerId(vps->getLayerIdInNuh(i), j)); 2459 if (vps->getTilesInUseFlag(i) && vps->getTilesInUseFlag(layerIdx)) { 2456 UInt layerIdx = vps->getLayerIdxInVps(vps->getRefLayerId(vps->getLayerIdInNuh(i), j)); 2457 2458 if( vps->getTilesInUseFlag(i) && vps->getTilesInUseFlag(layerIdx) ) 2459 { 2460 2460 WRITE_FLAG( vps->getTileBoundariesAlignedFlag(i,j) ? 1 : 0 , "tile_boundaries_aligned_flag[i][j]" ); 2461 2461 } 2462 #else2463 WRITE_FLAG( vps->getTileBoundariesAlignedFlag(i,j) ? 1 : 0 , "tile_boundaries_aligned_flag[i][j]" );2464 #endif2465 2462 } 2466 2463 } 2467 #if VPS_VUI_TILES_NOT_IN_USE__FLAG 2468 } 2469 #endif 2470 #if VPS_VUI_WPP_NOT_IN_USE__FLAG 2464 } 2465 2471 2466 WRITE_FLAG( vps->getWppNotInUseFlag() ? 1 : 0 , "wpp_not_in_use_flag" ); 2472 if (!vps->getWppNotInUseFlag()) 2467 2468 if( !vps->getWppNotInUseFlag() ) 2473 2469 { 2474 2470 for( i = vps->getBaseLayerInternalFlag() ? 0 : 1; i < vps->getMaxLayers(); i++ ) … … 2477 2473 } 2478 2474 } 2479 #endif2480 2475 2481 2476 WRITE_FLAG(vps->getSingleLayerForNonIrapFlag(), "single_layer_for_non_irap_flag" );
Note: See TracChangeset for help on using the changeset viewer.