Changeset 625 in SHVCSoftware
- Timestamp:
- 10 Mar 2014, 22:19:42 (11 years ago)
- Location:
- branches/SHM-5.1-dev/source
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.1-dev/source/App/TAppDecoder/TAppDecTop.cpp
r619 r625 256 256 #if ALIGNED_BUMPING 257 257 Bool outputPicturesFlag = true; 258 #if NO_OUTPUT_OF_PRIOR_PICS 259 if( m_acTDecTop[nalu.m_layerId].getNoOutputOfPriorPicsFlags() ) 260 { 261 outputPicturesFlag = false; 262 } 263 #endif 258 264 259 265 if (nalu.m_nalUnitType == NAL_UNIT_EOS) // End of sequence … … 263 269 if( bNewPicture ) // New picture, slice header parsed but picture not decoded 264 270 { 271 #if NO_OUTPUT_OF_PRIOR_PICS 272 if( 273 #else 265 274 if ( bNewPOC && 275 #endif 266 276 ( nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_W_RADL 267 277 || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_N_LP … … 1041 1051 conf.getWindowBottomOffset()* yScal + defDisp.getWindowBottomOffset() ); 1042 1052 } 1043 1044 1053 // update POC of display order 1045 1054 pocLastDisplay = pic->getPOC(); -
branches/SHM-5.1-dev/source/Lib/TLibCommon/TComSlice.cpp
r624 r625 111 111 , m_bCrossLayerBLAFlag ( false ) 112 112 #endif 113 #if NO_OUTPUT_OF_PRIOR_PICS 114 , m_noOutputOfPriorPicsFlag ( false ) 115 , m_noRaslOutputFlag ( false ) 116 , m_handleCraAsBlaFlag ( false ) 117 #endif 113 118 #endif //SVC_EXTENSION 114 119 { … … 194 199 || getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA; 195 200 } 201 #if NO_OUTPUT_OF_PRIOR_PICS 202 Bool TComSlice::getBlaPicFlag () 203 { 204 return getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_N_LP 205 || getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_RADL 206 || getNalUnitType() == NAL_UNIT_CODED_SLICE_BLA_W_LP; 207 } 208 Bool TComSlice::getCraPicFlag () 209 { 210 return getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA; 211 } 212 #endif 196 213 197 214 /** -
branches/SHM-5.1-dev/source/Lib/TLibCommon/TComSlice.h
r624 r625 1952 1952 Bool m_bCrossLayerBLAFlag; 1953 1953 #endif 1954 #if NO_OUTPUT_OF_PRIOR_PICS 1955 Bool m_noOutputOfPriorPicsFlag; 1956 Bool m_noRaslOutputFlag; 1957 Bool m_handleCraAsBlaFlag; 1958 #endif 1954 1959 #endif //SVC_EXTENSION 1955 1960 … … 2038 2043 NalUnitType getNalUnitType () const { return m_eNalUnitType; } 2039 2044 Bool getRapPicFlag (); 2045 #if NO_OUTPUT_OF_PRIOR_PICS 2046 Bool getBlaPicFlag (); 2047 Bool getCraPicFlag (); 2048 #endif 2040 2049 Bool getIdrPicFlag () { return getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP; } 2041 2050 Bool isIRAP () const { return (getNalUnitType() >= 16) && (getNalUnitType() <= 23); } … … 2259 2268 2260 2269 Void setILRPic(TComPic **pcIlpPic); 2270 #if NO_OUTPUT_OF_PRIOR_PICS 2271 Void setNoOutputOfPriorPicsFlag(const Bool x) { m_noOutputOfPriorPicsFlag = x; } 2272 Bool getNoOutputOfPriorPicsFlag() { return m_noOutputOfPriorPicsFlag; } 2273 2274 Void setNoRaslOutputFlag ( const Bool val ) { m_noRaslOutputFlag = val; } 2275 Bool getNoRaslOutputFlag () { return m_noRaslOutputFlag; } 2276 2277 Void setHandleCraAsBlaFlag ( const Bool val ) { m_handleCraAsBlaFlag = val; } 2278 Bool getHandleCraAsBlaFlag () { return m_handleCraAsBlaFlag; } 2279 2280 #endif 2261 2281 2262 2282 #endif //SVC_EXTENSION -
branches/SHM-5.1-dev/source/Lib/TLibCommon/TypeDef.h
r624 r625 88 88 #define POC_RESET_FLAG 1 ///< JCTVC-N0244: POC reset flag for layer pictures. 89 89 #define POC_RESET_IDC 1 ///< JCTVC-P0041: Include poc_reset_idc and related derivation - eventually will replace POC_RESET_FLAG 90 #define NO_OUTPUT_OF_PRIOR_PICS 1 ///< Use no_output_of_prior_pics_flag 90 91 #define ALIGN_TSA_STSA_PICS 1 ///< JCTVC-N0084: Alignment of TSA and STSA pictures across AU. 91 92 #define REPN_FORMAT_IN_VPS 1 ///< JCTVC-N0092: Signal represenation format (spatial resolution, bit depth, colour format) in the VPS -
branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r624 r625 2049 2049 if( rpcSlice->getRapPicFlag()) 2050 2050 { 2051 #if !NO_OUTPUT_OF_PRIOR_PICS 2051 2052 READ_FLAG( uiCode, "no_output_of_prior_pics_flag" ); //ignored 2053 #else 2054 READ_FLAG( uiCode, "no_output_of_prior_pics_flag" ); rpcSlice->setNoOutputOfPriorPicsFlag( uiCode ? true : false ); 2055 #endif 2052 2056 } 2053 2057 READ_UVLC ( uiCode, "slice_pic_parameter_set_id" ); rpcSlice->setPPSId(uiCode); -
branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
r620 r625 803 803 TComPic*& pcPic = m_pcPic; 804 804 #if SVC_EXTENSION 805 #if !NO_OUTPUT_OF_PRIOR_PICS 805 806 #if NO_CLRAS_OUTPUT_FLAG 806 807 Bool bFirstSliceInSeq; 808 #endif 807 809 #endif 808 810 m_apcSlicePilot->setVPS( m_parameterSetManagerDecoder.getPrefetchedVPS(0) ); … … 858 860 m_apcSlicePilot->setAssociatedIRAPType(m_associatedIRAPType); 859 861 862 #if NO_OUTPUT_OF_PRIOR_PICS 863 // Infer the value of NoOutputOfPriorPicsFlag 864 if( m_apcSlicePilot->getRapPicFlag() ) 865 { 866 if ( m_apcSlicePilot->getBlaPicFlag() || m_apcSlicePilot->getIdrPicFlag() || 867 (m_apcSlicePilot->getCraPicFlag() && m_bFirstSliceInSequence) || 868 (m_apcSlicePilot->getCraPicFlag() && m_apcSlicePilot->getHandleCraAsBlaFlag())) 869 { 870 m_apcSlicePilot->setNoRaslOutputFlag( true ); 871 } 872 else 873 { 874 m_apcSlicePilot->setNoRaslOutputFlag( false ); 875 } 876 } 877 #endif 878 860 879 // Skip pictures due to random access 861 880 if (isRandomAccessSkipPicture(iSkipFrame, iPOCLastDisplay)) … … 879 898 #if SVC_EXTENSION 880 899 bNewPOC = (m_apcSlicePilot->getPOC()!= m_prevPOC); 900 901 #if NO_OUTPUT_OF_PRIOR_PICS 902 #if NO_CLRAS_OUTPUT_FLAG 903 if (m_layerId == 0 && m_apcSlicePilot->getRapPicFlag() ) 904 { 905 if (m_bFirstSliceInSequence) 906 { 907 setNoClrasOutputFlag(true); 908 } 909 else if ( m_apcSlicePilot->getBlaPicFlag() ) 910 { 911 setNoClrasOutputFlag(true); 912 } 913 #if O0149_CROSS_LAYER_BLA_FLAG 914 else if (m_apcSlicePilot->getIdrPicFlag() && m_apcSlicePilot->getCrossLayerBLAFlag()) 915 { 916 setNoClrasOutputFlag(true); 917 } 918 #endif 919 else 920 { 921 setNoClrasOutputFlag(false); 922 } 923 } 924 else 925 { 926 setNoClrasOutputFlag(false); 927 } 928 929 m_apcSlicePilot->decodingRefreshMarking(m_pocCRA, m_bRefreshPending, m_cListPic, getNoClrasOutputFlag()); 930 #endif 931 932 // Derive the value of NoOutputOfPriorPicsFlag 933 if( bNewPOC || m_layerId!=m_uiPrevLayerId ) // i.e. new coded picture 934 { 935 if( m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_apcSlicePilot->getNoRaslOutputFlag() ) 936 { 937 this->setNoOutputOfPriorPicsFlags( true ); 938 } 939 else if( m_apcSlicePilot->getRapPicFlag() && m_apcSlicePilot->getNoRaslOutputFlag() ) 940 { 941 this->setNoOutputOfPriorPicsFlags( m_apcSlicePilot->getNoOutputOfPriorPicsFlag() ); 942 } 943 else 944 { 945 if( this->m_ppcTDecTop[0]->getNoClrasOutputFlag() ) 946 { 947 this->setNoOutputOfPriorPicsFlags( true ); 948 } 949 } 950 } 951 #endif 952 881 953 #if ALIGNED_BUMPING 882 954 if (bNewPOC || m_layerId!=m_uiPrevLayerId) … … 938 1010 #endif 939 1011 } 1012 #if !NO_OUTPUT_OF_PRIOR_PICS 940 1013 #if NO_CLRAS_OUTPUT_FLAG 941 1014 bFirstSliceInSeq = m_bFirstSliceInSequence; 1015 #endif 942 1016 #endif 943 1017 m_bFirstSliceInSequence = false; … … 1102 1176 #endif 1103 1177 1178 #if !NO_OUTPUT_OF_PRIOR_PICS 1104 1179 #if NO_CLRAS_OUTPUT_FLAG 1105 1180 if (m_layerId == 0 && … … 1146 1221 m_apcSlicePilot->decodingRefreshMarking(m_pocCRA, m_bRefreshPending, m_cListPic, getNoClrasOutputFlag()); 1147 1222 #endif 1148 1223 #else 1224 if ( m_layerId == 0 && m_apcSlicePilot->getRapPicFlag() && getNoClrasOutputFlag() ) 1225 { 1226 for (UInt i = 0; i < m_apcSlicePilot->getVPS()->getMaxLayers(); i++) 1227 { 1228 m_ppcTDecTop[i]->setLayerInitializedFlag(false); 1229 m_ppcTDecTop[i]->setFirstPicInLayerDecodedFlag(false); 1230 } 1231 } 1232 #endif 1149 1233 // Buffer initialize for prediction. 1150 1234 m_cPrediction.initTempBuff(); -
branches/SHM-5.1-dev/source/Lib/TLibDecoder/TDecTop.h
r595 r625 239 239 fstream* getBLSyntaxFile() { return m_pBLSyntaxFile; } 240 240 #endif 241 241 #if NO_OUTPUT_OF_PRIOR_PICS 242 #if NO_CLRAS_OUTPUT_FLAG 243 Bool getNoOutputOfPriorPicsFlags() { return m_noOutputOfPriorPicsFlags;} 244 Void setNoOutputOfPriorPicsFlags(Bool x) { m_noOutputOfPriorPicsFlags = x; } 245 #endif 246 #endif 242 247 protected: 243 248 Void xGetNewPicBuffer (TComSlice* pcSlice, TComPic*& rpcPic); … … 266 271 Int getFirstPicInLayerDecodedFlag() { return m_firstPicInLayerDecodedFlag;} 267 272 Void setFirstPicInLayerDecodedFlag(Bool x) { m_firstPicInLayerDecodedFlag = x; } 273 #if !NO_OUTPUT_OF_PRIOR_PICS 268 274 Int getNoOutputOfPriorPicsFlags() { return m_noOutputOfPriorPicsFlags;} 269 275 Void setNoOutputOfPriorPicsFlags(Bool x) { m_noOutputOfPriorPicsFlags = x; } 270 276 #endif 277 #endif 271 278 };// END CLASS DEFINITION TDecTop 272 279 -
branches/SHM-5.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp
r624 r625 1567 1567 if ( pcSlice->getRapPicFlag() ) 1568 1568 { 1569 #if NO_OUTPUT_OF_PRIOR_PICS 1570 WRITE_FLAG( pcSlice->getNoOutputOfPriorPicsFlag(), "no_output_of_prior_pics_flag" ); 1571 #else 1569 1572 WRITE_FLAG( 0, "no_output_of_prior_pics_flag" ); 1573 #endif 1570 1574 } 1571 1575 WRITE_UVLC( pcSlice->getPPS()->getPPSId(), "slice_pic_parameter_set_id" );
Note: See TracChangeset for help on using the changeset viewer.