Changeset 667 in 3DVCSoftware for branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder
- Timestamp:
- 4 Nov 2013, 16:32:06 (11 years ago)
- Location:
- branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSbac.cpp
r655 r667 518 518 } 519 519 520 #if QC_DIM_DELTADC_UNIFY_F0132 521 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt uiNumSeg ) 522 { 523 xWriteExGolombLevel( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ), m_cDdcDataSCModel.get(0, 0, 0) ); 524 if( valDeltaDC != 0 ) 525 { 526 UInt uiSign = valDeltaDC > 0 ? 0 : 1; 527 m_pcBinIf->encodeBinEP( uiSign ); 528 } 529 } 530 #else 520 531 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt dimType ) 521 532 { … … 527 538 } 528 539 } 540 #endif 529 541 530 542 #if H_3D_DIM_DMM … … 1225 1237 } 1226 1238 1227 #if H_3D_DIM_SDC 1239 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1228 1240 if( pcCU->getSDCFlag( absPartIdx ) ) 1229 1241 { … … 1238 1250 { 1239 1251 #endif 1252 #if QC_DIM_DELTADC_UNIFY_F0132 1253 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1254 #else 1240 1255 if( dimType < DIM_NUM_TYPE ) 1241 { 1256 #endif 1257 { 1258 #if QC_DIM_DELTADC_UNIFY_F0132 1259 UInt dimDeltaDC; 1260 Pel deltaDC; 1261 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1262 if( pcCU->getSDCFlag( absPartIdx ) ) 1263 { 1264 if( uiNumSegments==1 ) 1265 { 1266 dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0; 1267 } 1268 else 1269 { 1270 dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0; 1271 } 1272 } 1273 else 1274 { 1275 dimDeltaDC = isDimDeltaDC( dir ); 1276 } 1277 1278 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1279 1280 if( dimDeltaDC ) 1281 { 1282 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1283 { 1284 deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx ); 1285 xCodeDimDeltaDC( deltaDC, uiNumSegments ); 1286 } 1287 } 1288 #else 1242 1289 UInt dimDeltaDC = isDimDeltaDC( dir ); 1243 1290 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); … … 1249 1296 } 1250 1297 } 1251 } 1252 #if H_3D_DIM_SDC 1298 #endif 1299 } 1300 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1253 1301 } 1254 1302 #endif -
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSbac.h
r655 r667 118 118 #if H_3D_DIM 119 119 Void xWriteExGolombLevel ( UInt uiSymbol, ContextModel& rcSCModel ); 120 #if QC_DIM_DELTADC_UNIFY_F0132 121 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt uiNumSeg ); 122 #else 120 123 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt dimType ); 124 #endif 121 125 #if H_3D_DIM_DMM 122 126 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); -
branches/HTM-8.2-dev3-Qualcomm/source/Lib/TLibEncoder/TEncSearch.cpp
r655 r667 2928 2928 { 2929 2929 Pel deltaDC1 = 0; Pel deltaDC2 = 0; 2930 #if QC_DIM_DELTADC_UNIFY_F0132 2931 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2932 #else 2930 2933 xSearchRbcDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2934 #endif 2931 2935 pcCU->setDimDeltaDC( RBC_IDX, 0, uiPartOffset, deltaDC1 ); 2932 2936 pcCU->setDimDeltaDC( RBC_IDX, 1, uiPartOffset, deltaDC2 );
Note: See TracChangeset for help on using the changeset viewer.