Changeset 598 in 3DVCSoftware for branches/HTM-DEV-2.0-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
- Timestamp:
- 29 Aug 2013, 13:55:40 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-2.0-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r541 r598 100 100 #endif 101 101 #endif 102 #if LGE_INTER_SDC_E0156 103 , m_cInterSDCFlagSCModel ( 1, 1, NUM_INTER_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 104 , m_cInterSDCResidualSCModel ( 1, 1, NUM_INTER_SDC_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 105 , m_cInterSDCResidualSignFlagSCModel ( 1, 1, NUM_INTER_SDC_SIGN_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 106 #endif 102 107 { 103 108 assert( m_numContextModels <= MAX_NUM_CTX_MOD ); … … 182 187 m_cSDCResidualSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL ); 183 188 #endif 189 #endif 190 #if LGE_INTER_SDC_E0156 191 m_cInterSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_FLAG ); 192 m_cInterSDCResidualSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL ); 193 m_cInterSDCResidualSignFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_SIGN_FLAG ); 184 194 #endif 185 195 m_uiLastDQpNonZero = 0; … … 251 261 m_cSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL ); 252 262 #endif 263 #endif 264 #if LGE_INTER_SDC_E0156 265 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 266 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); 267 m_cInterSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_SIGN_FLAG ); 253 268 #endif 254 269 m_pcTDecBinIf->start(); … … 2237 2252 #endif 2238 2253 2254 #if LGE_INTER_SDC_E0156 2255 Void TDecSbac::parseInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2256 { 2257 UInt uiSymbol = 0; 2258 UInt uiCtxInterSDCFlag = pcCU->getCtxInterSDCFlag( uiAbsPartIdx ); 2259 2260 m_pcTDecBinIf->decodeBin( uiSymbol, m_cInterSDCFlagSCModel.get( 0, 0, uiCtxInterSDCFlag ) ); 2261 2262 if( uiSymbol ) 2263 { 2264 pcCU->setInterSDCFlagSubParts( true, uiAbsPartIdx, 0, uiDepth ); 2265 pcCU->setTrIdxSubParts( 0, uiAbsPartIdx, uiDepth ); 2266 pcCU->setCbfSubParts( 1, 1, 1, uiAbsPartIdx, uiDepth ); 2267 } 2268 else 2269 { 2270 pcCU->setInterSDCFlagSubParts( false, uiAbsPartIdx, 0, uiDepth); 2271 } 2272 } 2273 2274 Void TDecSbac::parseInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSegment ) 2275 { 2276 UInt uiAbsIdx = 0; 2277 UInt uiSign = 0; 2278 Int iIdx = 0; 2279 2280 xReadExGolombLevel( uiAbsIdx, m_cInterSDCResidualSCModel.get( 0, 0, 0 ) ); 2281 2282 uiAbsIdx++; 2283 m_pcTDecBinIf->decodeBin( uiSign, m_cInterSDCResidualSignFlagSCModel.get( 0, 0, 0 ) ); 2284 iIdx = (Int)( uiSign ? -1 : 1 ) * uiAbsIdx; 2285 2286 pcCU->setInterSDCSegmentDCOffset( iIdx, uiSegment, uiAbsPartIdx ); 2287 } 2288 #endif 2289 2239 2290 //! \}
Note: See TracChangeset for help on using the changeset viewer.