Changeset 1075 in 3DVCSoftware
- Timestamp:
- 21 Oct 2014, 21:09:26 (10 years ago)
- Location:
- branches/HTM-12.1-dev0/source/Lib
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r1074 r1075 103 103 , m_temporalLayerNonReferenceFlag ( false ) 104 104 , m_enableTMVPFlag ( true ) 105 #if I0044_SLICE_TMVP105 #if H_MV 106 106 , m_availableForTMVPRefFlag ( true ) 107 #endif108 #if H_MV109 107 , m_refPicSetInterLayer0 ( NULL ) 110 108 , m_refPicSetInterLayer1 ( NULL ) … … 724 722 725 723 assert( rpsCurrList[li][ orgIdx ] != NULL ); 726 #if DISCARDABLE_PIC_RPS727 724 assert( rpsCurrList[li][ orgIdx ]->getSlice(0)->getDiscardableFlag() == 0 ); // Inter-layer RPS shall not contain picture with discardable_flag = 1. 728 #endif729 725 m_apcRefPicList [li][rIdx] = rpsCurrList [li][ orgIdx ]; 730 726 m_bIsUsedAsLongTerm[li][rIdx] = usedAsLongTerm [li][ orgIdx ] ; -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComSlice.h
r1074 r1075 1206 1206 Void setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val ) { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ] = val; } 1207 1207 Int getLayerSetIdxForOlsMinus1( Int outLayerSetIdx ) { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; } 1208 #if VPS_MISC_UPDATES1209 1208 Int getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx ) { return gCeilLog2( getNumLayerSets() ); } 1210 #endif1211 1209 1212 1210 Void setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag ) { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; } … … 2488 2486 2489 2487 Bool m_enableTMVPFlag; 2490 #if I0044_SLICE_TMVP2488 #if H_MV 2491 2489 Bool m_availableForTMVPRefFlag; 2492 2490 #endif … … 2828 2826 Void setEnableTMVPFlag ( Bool b ) { m_enableTMVPFlag = b; } 2829 2827 Bool getEnableTMVPFlag () { return m_enableTMVPFlag;} 2830 #if I0044_SLICE_TMVP2828 #if H_MV 2831 2829 Void setAvailableForTMVPRefFlag ( Bool b ) { m_availableForTMVPRefFlag = b; } 2832 2830 Bool getAvailableForTMVPRefFlag () { return m_availableForTMVPRefFlag;} -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TypeDef.h
r1074 r1075 368 368 // TBD: Check if integration is necessary. 369 369 370 371 372 //Added by Qualcomm for HLS373 #define DISCARDABLE_PIC_RPS 1 ///< JCT3V-G0131: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1374 #define VPS_MISC_UPDATES 1 ///< Misc updates:JCT3V-0240,375 #define NON_REF_NAL_TYPE_DISCARDABLE 1 ///< JCT3V-G0031: If discardable picture is a non-IRAP, it must be a non-referenced sub-layer picture376 #define INFERENCE_POC_MSB_VAL_PRESENT 1 ///< JCT3V-H0042: poc_msb_val_present_flag shall be equal to 0 when slice_header_extension_length is (inferred to be ) equal to 0377 #define INFERENCE_POC_RESET_INFO_PRESENT 1 ///< JCT3V-H0042: Infer the value of poc_reset_info_present_flag to be equal to 0 when no pps extension / pps extension for multilayer.378 #define I0044_SLICE_TMVP 1 ///< JCT3V-I0044: Regarding slice_temporal_mvp_enabled_flag379 #define I0045_BR_PR_ADD_LAYER_SET 1 ///< JCT3V-I0045: Signalling of bit-rate and picture rate for additional layer set380 #define I0045_VPS_VUI_VST_PARAMS 1 ///< JCT3V-I0045: Related to signalling of VST parameters of the base layer.381 382 383 370 #define H_MV_HLS10_GEN 0 // General changes (not tested) 384 371 … … 429 416 //#define H_MV_HLS_7_SEI_P0133_28 0 // (SEI/P0133/Recovery point SEI) #28 Decision: Adopt change to recover point semantics only (-v3) 430 417 //#define H_MV_HLS_7_SEI_P0123_25 0 // (SEI/P0123/Alpha channel info) #25 Add alpha channel information SEI message Decision: Adopt. Constrain the bit depth indicated to be equal to the coded bit depth of the aux picture. 431 432 // Auxiliary picture related433 //#define H_MV_HLS_8_AUX_NODOC_40 0 // #40 (AUX /NODOC/primary pic) Clarify that an auxiliary picture can be associated with more than one primary picture. Consider if the language associating an alpha auxiliary picture with a primary picture in the semantics of dimension_id[ ][ ] near the AuxId derivation could be moved to the alpha SEI message.434 //#define H_MV_HLS_8_AUX_Q0081_2 0 // #2 (AUX /Q0081/primary) Decision: Remove the constraint that an alpha picture must be accompanied by a primary picture.435 //#define H_MV_HLS_8_AUX_Q0078_44 0 // #44 (AUX /Q0078/concepts Auxiliary picture concepts:436 //#define H_MV_HLS_8_AUX_Q0078_39 0 // #39 (AUX /Q0078/conformance): mechanism for signaling a profile/tier/level conformance point for auxiliary pictures437 438 // Profiles439 //#define H_MV_HLS_8_PRO_NODOC_50 0 // #50 (PROF /NODOC/Monochrome) Add Monochrome 8-bit profile440 //#define H_MV_HLS_8_PRO_NODOC_31 0 // #31 (PROF /NODOC/Profile constraint) Add a profile constraint to the Scalable Main, Scalable Main 10, and Stereo Main profiles against allowing layers with duplicate values of DependencyId (or ViewOrderIdx) when AuxId equal to 0.441 //#define H_MV_HLS_8_PRO_H0126_45 0 // #45 (PROF /H0126/Stereo main) Phrasing used in specifying the Stereo Main profile.442 //#define H_MV_HLS_8_PRO_Q0160_33 0 // #33 (PROF /Q0160/alt_output_flag) v2: Add constraint to stereo main profile that it must contain exactly two texture views, and add a note to state that the constraint implies a restriction that alt_output_flag equal to 0.443 418 444 419 // DPB -
branches/HTM-12.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1074 r1075 1480 1480 if( i >= pcVPS->getNumLayerSets( ) ) 1481 1481 { 1482 #if !VPS_MISC_UPDATES1483 READ_UVLC( uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );1484 #else1485 1482 READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode ); 1486 #endif1487 1483 } 1488 1484 … … 1738 1734 } 1739 1735 1740 #if I0045_VPS_VUI_VST_PARAMS1741 1736 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 ) 1742 1737 { … … 1760 1755 } 1761 1756 } 1762 #else 1763 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 ) 1764 { 1765 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1766 { 1767 READ_CODE( 4, uiCode, "vps_video_signal_info_idx" ); pcVPSVUI->setVpsVideoSignalInfoIdx( i, uiCode ); 1768 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() ); 1769 } 1770 } 1771 else 1772 { 1773 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1774 { 1775 pcVPSVUI->setVpsVideoSignalInfoIdx( i, pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ); 1776 } 1777 } 1778 #endif 1757 1779 1758 READ_FLAG( uiCode, "tiles_not_in_use_flag" ); pcVPSVUI->setTilesNotInUseFlag( uiCode == 1 ); 1780 1759 if( !pcVPSVUI->getTilesNotInUseFlag() ) … … 1851 1830 if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) ) 1852 1831 { 1853 #if VPS_MISC_UPDATES1854 1832 assert(pcVPS->getTimingInfo()->getTimingInfoPresentFlag() == 1); 1855 #endif1856 1833 parseVpsVuiBspHrdParameters( pcVPS ); 1857 1834 } … … 2297 2274 esb++; 2298 2275 READ_FLAG( uiCode, "discardable_flag" ); rpcSlice->setDiscardableFlag( uiCode == 1 ); 2299 #if NON_REF_NAL_TYPE_DISCARDABLE2300 2276 if ( uiCode == 1 ) 2301 2277 { … … 2306 2282 rpcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R); 2307 2283 } 2308 #endif2309 2284 } 2310 2285 … … 2594 2569 if (rpcSlice->getSPS()->getTMVPFlagsPresent()) 2595 2570 { 2596 #if I0044_SLICE_TMVP2571 #if H_MV 2597 2572 READ_FLAG( uiCode, "slice_temporal_mvp_enabled_flag" ); 2598 2573 #else … … 3034 3009 #endif 3035 3010 } 3036 #if INFERENCE_POC_MSB_VAL_PRESENT3037 3011 else 3038 3012 { … … 3040 3014 rpcSlice->setPocMsbValPresentFlag( false ); 3041 3015 } 3042 #endif3043 3044 3045 3016 m_pcBitstream->readByteAlignment(); 3046 3017 -
branches/HTM-12.1-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r1074 r1075 944 944 xResetPocInPicBuffer(); 945 945 } 946 #endif 947 948 #if I0044_SLICE_TMVP 949 if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 ) 946 947 if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 ) 950 948 { 951 949 //update all pics in the DPB such that they cannot be used for TMPV ref … … 1193 1191 #endif 1194 1192 // For generalized B 1195 #if I0044_SLICE_TMVP1193 #if H_MV 1196 1194 if( m_layerId > 0 && !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() ) 1197 1195 { -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r1074 r1075 1254 1254 if( i >= pcVPS->getNumLayerSets( ) ) 1255 1255 { 1256 #if !VPS_MISC_UPDATES1257 WRITE_UVLC( pcVPS->getLayerSetIdxForOlsMinus1( i ), "layer_set_idx_for_ols_minus1[i]" );1258 #else1259 1256 WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) , "layer_set_idx_for_ols_minus1[i]" ); 1260 #endif1261 1257 } 1262 1258 … … 1580 1576 if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 ) 1581 1577 { 1582 #if I0045_VPS_VUI_VST_PARAMS1583 1578 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1584 1579 { 1585 1580 WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" ); 1586 1581 } 1587 #else1588 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1589 {1590 WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );1591 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );1592 }1593 }1594 else1595 {1596 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )1597 {1598 assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) == ( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ) );1599 }1600 #endif1601 1582 } 1602 1583 WRITE_FLAG( pcVPSVUI->getTilesNotInUseFlag( ) ? 1 : 0 , "tiles_not_in_use_flag" ); … … 1921 1902 esb++; 1922 1903 WRITE_FLAG( pcSlice->getDiscardableFlag( ) ? 1 : 0 , "discardable_flag" ); 1923 #if NON_REF_NAL_TYPE_DISCARDABLE1924 1904 if (pcSlice->getDiscardableFlag( )) 1925 1905 { … … 1930 1910 pcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R); 1931 1911 } 1932 #endif1933 1912 } 1934 1913 … … 2091 2070 if (pcSlice->getSPS()->getTMVPFlagsPresent()) 2092 2071 { 2093 #if I0044_SLICE_TMVP2072 #if H_MV 2094 2073 WRITE_FLAG( pcSlice->getEnableTMVPFlag() ? 1 : 0, "slice_temporal_mvp_enabled_flag" ); 2095 2074 #else
Note: See TracChangeset for help on using the changeset viewer.