Changeset 758 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecTop.cpp
- Timestamp:
- 3 Jan 2014, 17:43:40 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r738 r758 228 228 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, uiViewIndex ); 229 229 m_aiViewId[ uiViewIndex ] = pcSlice->getViewId(); 230 #if CAM_HLS_F0136_F0045_F0082 231 if( uiViewIndex == 1 ) 232 { 233 m_uiCamParsCodedPrecision = pcSlice->getVPS()->getCamParPrecision (); 234 m_bCamParsVaryOverTime = pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ); 235 } 236 else if( uiViewIndex > 1 ) 237 { 238 AOF( m_uiCamParsCodedPrecision == pcSlice->getVPS()->getCamParPrecision () ); 239 AOF( m_bCamParsVaryOverTime == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) ); 240 } 241 #else 230 242 if( uiViewIndex == 1 ) 231 243 { … … 238 250 AOF( m_bCamParsVaryOverTime == pcSlice->getSPS()->hasCamParInSliceHeader () ); 239 251 } 252 #endif 240 253 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ ) 241 254 { … … 251 264 else 252 265 { 266 #if CAM_HLS_F0136_F0045_F0082 267 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedScale (uiViewIndex) [ uiBaseIndex ]; 268 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getVPS()->getCodedOffset (uiViewIndex) [ uiBaseIndex ]; 269 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ]; 270 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ]; 271 #else 253 272 m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedScale () [ uiBaseIndex ]; 254 273 m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ] = pcSlice->getSPS()->getCodedOffset () [ uiBaseIndex ]; 255 274 m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedScale () [ uiBaseIndex ]; 256 275 m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ] = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseIndex ]; 276 #endif 257 277 xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); 258 278 xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); … … 286 306 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) 287 307 { 308 #if !CAM_HLS_F0136_F0045_F0082 288 309 UInt uiViewIndex = pcSlice->getViewIndex(); 289 310 290 311 pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset ); 291 312 #endif 292 313 if( m_bCamParsVaryOverTime ) 293 314 { … … 1109 1130 if( pcSlice->getIsDepth() ) 1110 1131 { 1132 #if !CAM_HLS_F0136_F0045_F0082 1111 1133 pcSlice->getSPS()->setHasCamParInSliceHeader( false ); 1134 #endif 1112 1135 } 1113 1136 #endif … … 1151 1174 pps->setLayerId( getLayerId() ); 1152 1175 #endif 1176 #if DLT_DIFF_CODING_IN_PPS 1177 // Assuming that all PPS indirectly refer to the same VPS via different SPS 1178 // There is no parsing dependency in decoding DLT in PPS. 1179 // The VPS information passed to decodePPS() is used to arrange the decoded DLT tables to their corresponding layers. 1180 // This is equivalent to the process of 1181 // Step 1) decoding DLT tables based on the number of depth layers, and 1182 // Step 2) mapping DLT tables to the depth layers 1183 // as descripted in the 3D-HEVC WD. 1184 TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); 1185 m_cEntropyDecoder.decodePPS( pps, vps ); 1186 #else 1153 1187 m_cEntropyDecoder.decodePPS( pps ); 1188 #endif 1154 1189 m_parameterSetManagerDecoder.storePrefetchedPPS( pps ); 1155 1190 }
Note: See TracChangeset for help on using the changeset viewer.