Changeset 667 in 3DVCSoftware for branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibDecoder
- Timestamp:
- 4 Nov 2013, 16:32:06 (11 years ago)
- Location:
- branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibDecoder
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecSbac.cpp
r655 r667 408 408 } 409 409 410 #if QC_DIM_DELTADC_UNIFY_F0132 411 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt uiNumSeg ) 412 { 413 UInt absValDeltaDC = 0; 414 xReadExGolombLevel( absValDeltaDC, m_cDdcDataSCModel.get(0, 0, 0) ); 415 rValDeltaDC = (Pel)absValDeltaDC + ( uiNumSeg > 1 ? 0 : 1 ); 416 417 if( rValDeltaDC != 0 ) 418 { 419 UInt uiSign; 420 m_pcTDecBinIf->decodeBinEP( uiSign ); 421 if ( uiSign ) 422 { 423 rValDeltaDC = -rValDeltaDC; 424 } 425 } 426 } 427 #else 410 428 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt dimType ) 411 429 { … … 424 442 } 425 443 } 444 #endif 445 426 446 #if H_3D_DIM_DMM 427 447 Void TDecSbac::xParseDmm1WedgeIdx( UInt& ruiTabIdx, Int iNumBit ) … … 1157 1177 } 1158 1178 1159 #if H_3D_DIM_SDC 1179 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1160 1180 if( pcCU->getSDCFlag(absPartIdx) ) 1161 1181 { … … 1173 1193 { 1174 1194 #endif 1195 #if QC_DIM_DELTADC_UNIFY_F0132 1196 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1197 #else 1175 1198 if( dimType < DIM_NUM_TYPE ) 1199 #endif 1176 1200 { 1177 1201 UInt symbol; 1202 #if QC_DIM_DELTADC_UNIFY_F0132 1203 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1204 1205 if( pcCU->getSDCFlag( absPartIdx ) ) 1206 { 1207 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1208 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1209 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1210 } 1211 1212 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1213 1214 if( symbol ) 1215 { 1216 if( !pcCU->getSDCFlag( absPartIdx ) ) 1217 { 1218 dir += symbol; 1219 } 1220 } 1221 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1222 { 1223 Pel valDeltaDC = 0; 1224 if( symbol ) 1225 { 1226 xParseDimDeltaDC( valDeltaDC, uiNumSegments ); 1227 } 1228 1229 if( pcCU->getSDCFlag( absPartIdx ) ) 1230 { 1231 pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx ); 1232 } 1233 else 1234 { 1235 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1236 } 1237 } 1238 #else 1178 1239 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 1179 1240 if( symbol ) … … 1187 1248 } 1188 1249 } 1189 } 1190 #if H_3D_DIM_SDC 1250 #endif 1251 } 1252 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1191 1253 } 1192 1254 #endif -
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibDecoder/TDecSbac.h
r655 r667 99 99 #if H_3D_DIM 100 100 Void xReadExGolombLevel ( UInt& ruiSymbol, ContextModel& rcSCModel ); 101 #if QC_DIM_DELTADC_UNIFY_F0132 102 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt uiNumSeg ); 103 #else 101 104 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt dimType ); 105 #endif 102 106 #if H_3D_DIM_DMM 103 107 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit );
Note: See TracChangeset for help on using the changeset viewer.