Changeset 712 in 3DVCSoftware for branches/HTM-8.2-dev0/source/Lib/TLibDecoder
- Timestamp:
- 21 Nov 2013, 13:28:24 (11 years ago)
- Location:
- branches/HTM-8.2-dev0/source/Lib/TLibDecoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r696 r712 1803 1803 } 1804 1804 #if H_3D_IC 1805 #if SEC_ONLY_TEXTURE_IC_F0151 1806 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth()) 1807 #else 1805 1808 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) ) 1809 #endif 1806 1810 { 1807 1811 UInt uiCodeTmp = 0; -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r708 r712 741 741 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 742 742 { 743 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 744 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 745 { 746 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 747 } 748 else 749 { 743 750 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 751 } 752 #else 753 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 754 #endif 744 755 pRecIPred[ uiX ] = pReco[ uiX ]; 745 756 } -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r708 r712 111 111 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 112 112 113 #if SEC_ONLY_TEXTURE_IC_F0151 114 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 115 #else 113 116 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) ) 117 #endif 114 118 { 115 119 return; -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r655 r712 89 89 #if H_3D_DIM_DMM 90 90 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 91 #if !SEC_DMM3_RBC_F0147 91 92 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 93 #endif 92 94 #endif 93 95 #if H_3D_DIM_RBC … … 176 178 #if H_3D_DIM_DMM 177 179 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 180 #if !SEC_DMM3_RBC_F0147 178 181 m_cDmm3DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM3_DATA ); 182 #endif 179 183 #endif 180 184 #if H_3D_DIM_RBC … … 249 253 #if H_3D_DIM_DMM 250 254 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 255 #if !SEC_DMM3_RBC_F0147 251 256 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 257 #endif 252 258 #endif 253 259 #if H_3D_DIM_RBC … … 408 414 } 409 415 416 #if QC_DIM_DELTADC_UNIFY_F0132 417 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt uiNumSeg ) 418 { 419 UInt absValDeltaDC = 0; 420 xReadExGolombLevel( absValDeltaDC, m_cDdcDataSCModel.get(0, 0, 0) ); 421 rValDeltaDC = (Pel)absValDeltaDC + ( uiNumSeg > 1 ? 0 : 1 ); 422 423 if( rValDeltaDC != 0 ) 424 { 425 UInt uiSign; 426 m_pcTDecBinIf->decodeBinEP( uiSign ); 427 if ( uiSign ) 428 { 429 rValDeltaDC = -rValDeltaDC; 430 } 431 } 432 } 433 #else 410 434 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt dimType ) 411 435 { … … 424 448 } 425 449 } 450 #endif 451 426 452 #if H_3D_DIM_DMM 427 453 Void TDecSbac::xParseDmm1WedgeIdx( UInt& ruiTabIdx, Int iNumBit ) … … 435 461 ruiTabIdx = uiIdx; 436 462 } 437 463 #if !SEC_DMM3_RBC_F0147 438 464 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 439 465 { … … 446 472 ruiIntraIdx = uiIdx; 447 473 } 474 #endif 448 475 #endif 449 476 #if H_3D_DIM_RBC … … 1140 1167 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1141 1168 } break; 1169 #if !SEC_DMM3_RBC_F0147 1142 1170 case( DMM3_IDX ): 1143 1171 { … … 1146 1174 pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth ); 1147 1175 } break; 1176 #endif 1148 1177 case( DMM4_IDX ): break; 1149 1178 #endif … … 1157 1186 } 1158 1187 1159 #if H_3D_DIM_SDC 1188 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1160 1189 if( pcCU->getSDCFlag(absPartIdx) ) 1161 1190 { … … 1173 1202 { 1174 1203 #endif 1204 #if QC_DIM_DELTADC_UNIFY_F0132 1205 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1206 #else 1175 1207 if( dimType < DIM_NUM_TYPE ) 1208 #endif 1176 1209 { 1177 1210 UInt symbol; 1211 #if QC_DIM_DELTADC_UNIFY_F0132 1212 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1213 1214 if( pcCU->getSDCFlag( absPartIdx ) ) 1215 { 1216 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1217 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1218 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1219 } 1220 1221 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1222 1223 if( symbol ) 1224 { 1225 if( !pcCU->getSDCFlag( absPartIdx ) ) 1226 { 1227 dir += symbol; 1228 } 1229 } 1230 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1231 { 1232 Pel valDeltaDC = 0; 1233 if( symbol ) 1234 { 1235 xParseDimDeltaDC( valDeltaDC, uiNumSegments ); 1236 } 1237 1238 if( pcCU->getSDCFlag( absPartIdx ) ) 1239 { 1240 pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx ); 1241 } 1242 else 1243 { 1244 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1245 } 1246 } 1247 #else 1178 1248 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 1179 1249 if( symbol ) … … 1187 1257 } 1188 1258 } 1189 } 1190 #if H_3D_DIM_SDC 1259 #endif 1260 } 1261 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1191 1262 } 1192 1263 #endif … … 1218 1289 else if( puIdx == 0 ) 1219 1290 { 1291 #if SEC_DMM3_RBC_F0147 1292 while( binNum < 1 && symbol ) 1293 #else 1220 1294 while( binNum < 3 && symbol ) 1295 #endif 1221 1296 { 1222 1297 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); … … 1225 1300 binNum++; 1226 1301 } 1302 #if SEC_DMM3_RBC_F0147 1303 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1304 else if( modeCode == 1 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1305 #else 1227 1306 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1228 1307 else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1229 1308 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1230 1309 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1310 #endif 1231 1311 } 1232 1312 else 1233 1313 { 1314 #if SEC_DMM3_RBC_F0147 1315 while( binNum < 4 && symbol ) 1316 { 1317 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); 1318 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1319 modeCode = (modeCode<<1) + symbol; 1320 binNum++; 1321 } 1322 if ( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1323 else if ( modeCode == 2 ) { dir = 5; sdcFlag = 0;} 1324 else if ( modeCode == 6 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1325 else if ( modeCode == 14 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1326 else if ( modeCode == 15 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1327 #else 1234 1328 UInt maxBinNum = 0; 1235 1329 m_pcTDecBinIf->decodeBinEP(symbol); … … 1263 1357 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1264 1358 } 1359 #endif 1265 1360 } 1266 1361 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); -
branches/HTM-8.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r655 r712 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 ); 108 #if !SEC_DMM3_RBC_F0147 104 109 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit ); 110 #endif 105 111 #endif 106 112 #if H_3D_DIM_RBC … … 213 219 #if H_3D_DIM_DMM 214 220 ContextModel3DBuffer m_cDmm1DataSCModel; 221 #if !SEC_DMM3_RBC_F0147 215 222 ContextModel3DBuffer m_cDmm3DataSCModel; 223 #endif 216 224 #endif 217 225 #if H_3D_DIM_RBC
Note: See TracChangeset for help on using the changeset viewer.