Changeset 1315 in SHVCSoftware
- Timestamp:
- 21 Jul 2015, 01:44:40 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/ContextTables.h
r1259 r1315 58 58 #define NUM_PRED_MODE_CTX 1 ///< number of context models for prediction mode 59 59 60 #define NUM_ ADI_CTX1 ///< number of context models for intra prediction60 #define NUM_INTRA_PREDICT_CTX 1 ///< number of context models for intra prediction 61 61 62 62 #define NUM_CHROMA_PRED_CTX 2 ///< number of context models for intra prediction (chroma) … … 227 227 228 228 static const UChar 229 INIT_INTRA_PRED_MODE[NUMBER_OF_SLICE_TYPES][NUM_ ADI_CTX] =229 INIT_INTRA_PRED_MODE[NUMBER_OF_SLICE_TYPES][NUM_INTRA_PREDICT_CTX] = 230 230 { 231 231 { 183, }, -
branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.cpp
r1312 r1315 1149 1149 } 1150 1150 1151 TComDataCU* TComDataCU::getPUAboveRight( UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, Bool bEnforceSliceRestriction ) 1152 { 1153 UInt uiAbsPartIdxRT = g_auiZscanToRaster[uiCurrPartUnitIdx]; 1154 UInt uiAbsZorderCUIdx = g_auiZscanToRaster[ m_absZIdxInCtu ] + m_puhWidth[0] / m_pcPic->getMinCUWidth() - 1; 1155 const UInt numPartInCtuWidth = m_pcPic->getNumPartInCtuWidth(); 1156 1157 #if SVC_EXTENSION 1158 if( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getPicWidthInLumaSamples() ) 1159 #else 1160 if( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxRT] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) 1161 #endif 1162 { 1163 uiARPartUnitIdx = MAX_UINT; 1164 return NULL; 1165 } 1166 1167 if ( RasterAddress::lessThanCol( uiAbsPartIdxRT, numPartInCtuWidth - 1, numPartInCtuWidth ) ) 1168 { 1169 if ( !RasterAddress::isZeroRow( uiAbsPartIdxRT, numPartInCtuWidth ) ) 1170 { 1171 if ( uiCurrPartUnitIdx > g_auiRasterToZscan[ uiAbsPartIdxRT - numPartInCtuWidth + 1 ] ) 1172 { 1173 uiARPartUnitIdx = g_auiRasterToZscan[ uiAbsPartIdxRT - numPartInCtuWidth + 1 ]; 1174 if ( RasterAddress::isEqualRowOrCol( uiAbsPartIdxRT, uiAbsZorderCUIdx, numPartInCtuWidth ) ) 1175 { 1176 return m_pcPic->getCtu( getCtuRsAddr() ); 1177 } 1178 else 1179 { 1180 uiARPartUnitIdx -= m_absZIdxInCtu; 1181 return this; 1182 } 1183 } 1184 uiARPartUnitIdx = MAX_UINT; 1185 return NULL; 1186 } 1187 uiARPartUnitIdx = g_auiRasterToZscan[ uiAbsPartIdxRT + m_pcPic->getNumPartitionsInCtu() - numPartInCtuWidth + 1 ]; 1188 1189 if ( bEnforceSliceRestriction && !CUIsFromSameSliceAndTile(m_pCtuAbove) ) 1190 { 1191 return NULL; 1192 } 1193 return m_pCtuAbove; 1194 } 1195 1196 if ( !RasterAddress::isZeroRow( uiAbsPartIdxRT, numPartInCtuWidth ) ) 1197 { 1198 uiARPartUnitIdx = MAX_UINT; 1199 return NULL; 1200 } 1201 1202 uiARPartUnitIdx = g_auiRasterToZscan[ m_pcPic->getNumPartitionsInCtu() - numPartInCtuWidth ]; 1203 1204 if ( bEnforceSliceRestriction && !CUIsFromSameSliceAndTile(m_pCtuAboveRight) ) 1205 { 1206 return NULL; 1207 } 1208 return m_pCtuAboveRight; 1209 } 1210 1211 TComDataCU* TComDataCU::getPUBelowLeft( UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, Bool bEnforceSliceRestriction ) 1212 { 1213 UInt uiAbsPartIdxLB = g_auiZscanToRaster[uiCurrPartUnitIdx]; 1214 const UInt numPartInCtuWidth = m_pcPic->getNumPartInCtuWidth(); 1215 UInt uiAbsZorderCUIdxLB = g_auiZscanToRaster[ m_absZIdxInCtu ] + (m_puhHeight[0] / m_pcPic->getMinCUHeight() - 1)*numPartInCtuWidth; 1216 1217 #if SVC_EXTENSION 1218 if( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getPicHeightInLumaSamples() ) 1219 #else 1220 if( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxLB] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 1221 #endif 1222 { 1223 uiBLPartUnitIdx = MAX_UINT; 1224 return NULL; 1225 } 1226 1227 if ( RasterAddress::lessThanRow( uiAbsPartIdxLB, m_pcPic->getNumPartInCtuHeight() - 1, numPartInCtuWidth ) ) 1228 { 1229 if ( !RasterAddress::isZeroCol( uiAbsPartIdxLB, numPartInCtuWidth ) ) 1230 { 1231 if ( uiCurrPartUnitIdx > g_auiRasterToZscan[ uiAbsPartIdxLB + numPartInCtuWidth - 1 ] ) 1232 { 1233 uiBLPartUnitIdx = g_auiRasterToZscan[ uiAbsPartIdxLB + numPartInCtuWidth - 1 ]; 1234 if ( RasterAddress::isEqualRowOrCol( uiAbsPartIdxLB, uiAbsZorderCUIdxLB, numPartInCtuWidth ) ) 1235 { 1236 return m_pcPic->getCtu( getCtuRsAddr() ); 1237 } 1238 else 1239 { 1240 uiBLPartUnitIdx -= m_absZIdxInCtu; 1241 return this; 1242 } 1243 } 1244 uiBLPartUnitIdx = MAX_UINT; 1245 return NULL; 1246 } 1247 uiBLPartUnitIdx = g_auiRasterToZscan[ uiAbsPartIdxLB + numPartInCtuWidth*2 - 1 ]; 1248 if ( bEnforceSliceRestriction && !CUIsFromSameSliceAndTile(m_pCtuLeft) ) 1249 { 1250 return NULL; 1251 } 1252 return m_pCtuLeft; 1253 } 1254 1255 uiBLPartUnitIdx = MAX_UINT; 1256 return NULL; 1257 } 1258 1259 TComDataCU* TComDataCU::getPUBelowLeftAdi(UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset, Bool bEnforceSliceRestriction) 1151 TComDataCU* TComDataCU::getPUBelowLeft(UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset, Bool bEnforceSliceRestriction) 1260 1152 { 1261 1153 UInt uiAbsPartIdxLB = g_auiZscanToRaster[uiCurrPartUnitIdx]; … … 1305 1197 } 1306 1198 1307 TComDataCU* TComDataCU::getPUAboveRight Adi(UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset, Bool bEnforceSliceRestriction)1199 TComDataCU* TComDataCU::getPUAboveRight(UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset, Bool bEnforceSliceRestriction) 1308 1200 { 1309 1201 UInt uiAbsPartIdxRT = g_auiZscanToRaster[uiCurrPartUnitIdx]; … … 2281 2173 break; 2282 2174 } 2283 }2284 2285 Void TComDataCU::deriveLeftRightTopIdxAdi ( UInt& ruiPartIdxLT, UInt& ruiPartIdxRT, UInt uiPartOffset, UInt uiPartDepth )2286 {2287 UInt uiNumPartInWidth = (m_puhWidth[0]/m_pcPic->getMinCUWidth())>>uiPartDepth;2288 ruiPartIdxLT = m_absZIdxInCtu + uiPartOffset;2289 ruiPartIdxRT = g_auiRasterToZscan[ g_auiZscanToRaster[ ruiPartIdxLT ] + uiNumPartInWidth - 1 ];2290 }2291 2292 Void TComDataCU::deriveLeftBottomIdxAdi( UInt& ruiPartIdxLB, UInt uiPartOffset, UInt uiPartDepth )2293 {2294 UInt uiAbsIdx;2295 UInt uiMinCuWidth, uiWidthInMinCus;2296 2297 uiMinCuWidth = getPic()->getMinCUWidth();2298 uiWidthInMinCus = (getWidth(0)/uiMinCuWidth)>>uiPartDepth;2299 uiAbsIdx = getZorderIdxInCtu()+uiPartOffset+(m_uiNumPartition>>(uiPartDepth<<1))-1;2300 uiAbsIdx = g_auiZscanToRaster[uiAbsIdx]-(uiWidthInMinCus-1);2301 ruiPartIdxLB = g_auiRasterToZscan[uiAbsIdx];2302 2175 } 2303 2176 -
branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.h
r1312 r1315 414 414 Bool bEnforceTileRestriction=true ); 415 415 TComDataCU* getPUAboveLeft ( UInt& uiALPartUnitIdx, UInt uiCurrPartUnitIdx, Bool bEnforceSliceRestriction=true ); 416 TComDataCU* getPUAboveRight ( UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, Bool bEnforceSliceRestriction=true );417 TComDataCU* getPUBelowLeft ( UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, Bool bEnforceSliceRestriction=true );418 416 419 417 TComDataCU* getQpMinCuLeft ( UInt& uiLPartUnitIdx , UInt uiCurrAbsIdxInCtu ); … … 421 419 Char getRefQP ( UInt uiCurrAbsIdxInCtu ); 422 420 423 TComDataCU* getPUAboveRightAdi ( UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset = 1, Bool bEnforceSliceRestriction=true ); 424 TComDataCU* getPUBelowLeftAdi ( UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset = 1, Bool bEnforceSliceRestriction=true ); 421 /// returns CU and part index of the PU above the top row of the current uiCurrPartUnitIdx of the CU, at a horizontal offset (to the right) of uiPartUnitOffset (in parts) 422 TComDataCU* getPUAboveRight ( UInt& uiARPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset = 1, Bool bEnforceSliceRestriction=true ); 423 /// returns CU and part index of the PU left of the lefthand column of the current uiCurrPartUnitIdx of the CU, at a vertical offset (below) of uiPartUnitOffset (in parts) 424 TComDataCU* getPUBelowLeft ( UInt& uiBLPartUnitIdx, UInt uiCurrPartUnitIdx, UInt uiPartUnitOffset = 1, Bool bEnforceSliceRestriction=true ); 425 425 426 426 Void deriveLeftRightTopIdx ( UInt uiPartIdx, UInt& ruiPartIdxLT, UInt& ruiPartIdxRT ); 427 427 Void deriveLeftBottomIdx ( UInt uiPartIdx, UInt& ruiPartIdxLB ); 428 429 Void deriveLeftRightTopIdxAdi ( UInt& ruiPartIdxLT, UInt& ruiPartIdxRT, UInt uiPartOffset, UInt uiPartDepth );430 Void deriveLeftBottomIdxAdi ( UInt& ruiPartIdxLB, UInt uiPartOffset, UInt uiPartDepth ); // NOTE: Unused function.431 428 432 429 Bool hasEqualMotion ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx ); -
branches/SHM-dev/source/Lib/TLibCommon/TComPattern.cpp
r1307 r1315 54 54 #endif 55 55 const Pel* piRoiOrigin, 56 Pel* pi AdiTemp,56 Pel* piIntraTemp, 57 57 const Bool* bNeighborFlags, 58 58 const Int iNumIntraNeighbor, … … 113 113 114 114 // TODO: move this function to TComPrediction.cpp. 115 Void TComPrediction::init AdiPatternChType( TComTU &rTu, Bool& bAbove, Bool& bLeft, const ComponentID compID, const Bool bFilterRefSamples DEBUG_STRING_FN_DECLARE(sDebug))115 Void TComPrediction::initIntraPatternChType( TComTU &rTu, Bool& bAbove, Bool& bLeft, const ComponentID compID, const Bool bFilterRefSamples DEBUG_STRING_FN_DECLARE(sDebug)) 116 116 { 117 117 const ChannelType chType = toChannelType(compID); … … 169 169 170 170 { 171 Pel *pi AdiTemp = m_piYuvExt[compID][PRED_BUF_UNFILTERED];171 Pel *piIntraTemp = m_piYuvExt[compID][PRED_BUF_UNFILTERED]; 172 172 Pel *piRoiOrigin = pcCU->getPic()->getPicYuvRec()->getAddr(compID, pcCU->getCtuRsAddr(), pcCU->getZorderIdxInCtu()+uiZorderIdxInPart); 173 173 #if O0043_BEST_EFFORT_DECODING … … 177 177 fillReferenceSamples (bitDepthForChannel, 178 178 #endif 179 piRoiOrigin, pi AdiTemp, bNeighborFlags, iNumIntraNeighbor, iUnitWidth, iUnitHeight, iAboveUnits, iLeftUnits,179 piRoiOrigin, piIntraTemp, bNeighborFlags, iNumIntraNeighbor, iUnitWidth, iUnitHeight, iAboveUnits, iLeftUnits, 180 180 uiROIWidth, uiROIHeight, iPicStride); 181 181 … … 192 192 if (x==0 || y==0) 193 193 { 194 ss << pi AdiTemp[y*uiROIWidth + x] << ", ";194 ss << piIntraTemp[y*uiROIWidth + x] << ", "; 195 195 // if (x%16==15) ss << "\nPart size: ~ "; 196 196 } … … 206 206 207 207 Int stride = uiROIWidth; 208 const Pel *piSrcPtr = pi AdiTemp+ (stride * uiTuHeight2); // bottom left208 const Pel *piSrcPtr = piIntraTemp + (stride * uiTuHeight2); // bottom left 209 209 Pel *piDestPtr = m_piYuvExt[compID][PRED_BUF_FILTERED] + (stride * uiTuHeight2); // bottom left 210 210 … … 213 213 Bool useStrongIntraSmoothing = isLuma(chType) && sps.getUseStrongIntraSmoothing(); 214 214 215 const Pel bottomLeft = pi AdiTemp[stride * uiTuHeight2];216 const Pel topLeft = pi AdiTemp[0];217 const Pel topRight = pi AdiTemp[uiTuWidth2];215 const Pel bottomLeft = piIntraTemp[stride * uiTuHeight2]; 216 const Pel topLeft = piIntraTemp[0]; 217 const Pel topRight = piIntraTemp[uiTuWidth2]; 218 218 219 219 if (useStrongIntraSmoothing) … … 224 224 const Int threshold = 1 << (bitDepthForChannel - 5); 225 225 #endif 226 const Bool bilinearLeft = abs((bottomLeft + topLeft ) - (2 * pi AdiTemp[stride * uiTuHeight])) < threshold; //difference between the227 const Bool bilinearAbove = abs((topLeft + topRight) - (2 * pi AdiTemp[ uiTuWidth ])) < threshold; //ends and the middle226 const Bool bilinearLeft = abs((bottomLeft + topLeft ) - (2 * piIntraTemp[stride * uiTuHeight])) < threshold; //difference between the 227 const Bool bilinearAbove = abs((topLeft + topRight) - (2 * piIntraTemp[ uiTuWidth ])) < threshold; //ends and the middle 228 228 if ((uiTuWidth < 32) || (!bilinearLeft) || (!bilinearAbove)) 229 229 { … … 332 332 #endif 333 333 const Pel* piRoiOrigin, 334 Pel* pi AdiTemp,334 Pel* piIntraTemp, 335 335 const Bool* bNeighborFlags, 336 336 const Int iNumIntraNeighbor, … … 353 353 for (i=0; i<uiWidth; i++) 354 354 { 355 pi AdiTemp[i] = iDCValue;355 piIntraTemp[i] = iDCValue; 356 356 } 357 357 for (i=1; i<uiHeight; i++) 358 358 { 359 pi AdiTemp[i*uiWidth] = iDCValue;359 piIntraTemp[i*uiWidth] = iDCValue; 360 360 } 361 361 } … … 368 368 { 369 369 #if O0043_BEST_EFFORT_DECODING 370 pi AdiTemp[i] = piRoiTemp[i] << bitDepthDelta;370 piIntraTemp[i] = piRoiTemp[i] << bitDepthDelta; 371 371 #else 372 pi AdiTemp[i] = piRoiTemp[i];372 piIntraTemp[i] = piRoiTemp[i]; 373 373 #endif 374 374 } … … 380 380 { 381 381 #if O0043_BEST_EFFORT_DECODING 382 pi AdiTemp[i*uiWidth] = (*(piRoiTemp)) << bitDepthDelta;382 piIntraTemp[i*uiWidth] = (*(piRoiTemp)) << bitDepthDelta; 383 383 #else 384 pi AdiTemp[i*uiWidth] = *(piRoiTemp);384 piIntraTemp[i*uiWidth] = *(piRoiTemp); 385 385 #endif 386 386 piRoiTemp += iPicStride; … … 391 391 // all above units have "unitWidth" samples each, all left/below-left units have "unitHeight" samples each 392 392 const Int iTotalSamples = (iLeftUnits * unitHeight) + ((iAboveUnits + 1) * unitWidth); 393 Pel pi AdiLine[5 * MAX_CU_SIZE];394 Pel *pi AdiLineTemp;393 Pel piIntraLine[5 * MAX_CU_SIZE]; 394 Pel *piIntraLineTemp; 395 395 const Bool *pbNeighborFlags; 396 396 … … 399 399 for (i=0; i<iTotalSamples; i++) 400 400 { 401 pi AdiLine[i] = iDCValue;401 piIntraLine[i] = iDCValue; 402 402 } 403 403 404 404 // Fill top-left sample 405 405 piRoiTemp = piRoiOrigin - iPicStride - 1; 406 pi AdiLineTemp = piAdiLine + (iLeftUnits * unitHeight);406 piIntraLineTemp = piIntraLine + (iLeftUnits * unitHeight); 407 407 pbNeighborFlags = bNeighborFlags + iLeftUnits; 408 408 if (*pbNeighborFlags) … … 415 415 for (i=0; i<unitWidth; i++) 416 416 { 417 pi AdiLineTemp[i] = topLeftVal;417 piIntraLineTemp[i] = topLeftVal; 418 418 } 419 419 } … … 421 421 // Fill left & below-left samples (downwards) 422 422 piRoiTemp += iPicStride; 423 pi AdiLineTemp--;423 piIntraLineTemp--; 424 424 pbNeighborFlags--; 425 425 … … 431 431 { 432 432 #if O0043_BEST_EFFORT_DECODING 433 pi AdiLineTemp[-i] = piRoiTemp[i*iPicStride] << bitDepthDelta;433 piIntraLineTemp[-i] = piRoiTemp[i*iPicStride] << bitDepthDelta; 434 434 #else 435 pi AdiLineTemp[-i] = piRoiTemp[i*iPicStride];435 piIntraLineTemp[-i] = piRoiTemp[i*iPicStride]; 436 436 #endif 437 437 } 438 438 } 439 439 piRoiTemp += unitHeight*iPicStride; 440 pi AdiLineTemp -= unitHeight;440 piIntraLineTemp -= unitHeight; 441 441 pbNeighborFlags--; 442 442 } … … 445 445 piRoiTemp = piRoiOrigin - iPicStride; 446 446 // offset line buffer by iNumUints2*unitHeight (for left/below-left) + unitWidth (for above-left) 447 pi AdiLineTemp = piAdiLine + (iLeftUnits * unitHeight) + unitWidth;447 piIntraLineTemp = piIntraLine + (iLeftUnits * unitHeight) + unitWidth; 448 448 pbNeighborFlags = bNeighborFlags + iLeftUnits + 1; 449 449 for (j=0; j<iAboveUnits; j++) … … 454 454 { 455 455 #if O0043_BEST_EFFORT_DECODING 456 pi AdiLineTemp[i] = piRoiTemp[i] << bitDepthDelta;456 piIntraLineTemp[i] = piRoiTemp[i] << bitDepthDelta; 457 457 #else 458 pi AdiLineTemp[i] = piRoiTemp[i];458 piIntraLineTemp[i] = piRoiTemp[i]; 459 459 #endif 460 460 } 461 461 } 462 462 piRoiTemp += unitWidth; 463 pi AdiLineTemp += unitWidth;463 piIntraLineTemp += unitWidth; 464 464 pbNeighborFlags++; 465 465 } … … 467 467 // Pad reference samples when necessary 468 468 Int iCurrJnit = 0; 469 Pel *pi AdiLineCur = piAdiLine;470 const UInt pi AdiLineTopRowOffset = iLeftUnits * (unitHeight - unitWidth);469 Pel *piIntraLineCur = piIntraLine; 470 const UInt piIntraLineTopRowOffset = iLeftUnits * (unitHeight - unitWidth); 471 471 472 472 if (!bNeighborFlags[0]) … … 479 479 iNext++; 480 480 } 481 Pel *pi AdiLineNext = piAdiLine + ((iNext < iLeftUnits) ? (iNext * unitHeight) : (piAdiLineTopRowOffset + (iNext * unitWidth)));482 const Pel refSample = *pi AdiLineNext;481 Pel *piIntraLineNext = piIntraLine + ((iNext < iLeftUnits) ? (iNext * unitHeight) : (piIntraLineTopRowOffset + (iNext * unitWidth))); 482 const Pel refSample = *piIntraLineNext; 483 483 // Pad unavailable samples with new value 484 484 Int iNextOrTop = std::min<Int>(iNext, iLeftUnits); … … 488 488 for (i=0; i<unitHeight; i++) 489 489 { 490 pi AdiLineCur[i] = refSample;490 piIntraLineCur[i] = refSample; 491 491 } 492 pi AdiLineCur += unitHeight;492 piIntraLineCur += unitHeight; 493 493 iCurrJnit++; 494 494 } … … 498 498 for (i=0; i<unitWidth; i++) 499 499 { 500 pi AdiLineCur[i] = refSample;500 piIntraLineCur[i] = refSample; 501 501 } 502 pi AdiLineCur += unitWidth;502 piIntraLineCur += unitWidth; 503 503 iCurrJnit++; 504 504 } … … 513 513 { 514 514 const Int numSamplesInCurrUnit = (iCurrJnit >= iLeftUnits) ? unitWidth : unitHeight; 515 const Pel refSample = *(pi AdiLineCur-1);515 const Pel refSample = *(piIntraLineCur-1); 516 516 for (i=0; i<numSamplesInCurrUnit; i++) 517 517 { 518 pi AdiLineCur[i] = refSample;518 piIntraLineCur[i] = refSample; 519 519 } 520 pi AdiLineCur += numSamplesInCurrUnit;520 piIntraLineCur += numSamplesInCurrUnit; 521 521 iCurrJnit++; 522 522 } … … 524 524 else 525 525 { 526 pi AdiLineCur += (iCurrJnit >= iLeftUnits) ? unitWidth : unitHeight;526 piIntraLineCur += (iCurrJnit >= iLeftUnits) ? unitWidth : unitHeight; 527 527 iCurrJnit++; 528 528 } … … 531 531 // Copy processed samples 532 532 533 pi AdiLineTemp = piAdiLine + uiHeight + unitWidth - 2;533 piIntraLineTemp = piIntraLine + uiHeight + unitWidth - 2; 534 534 // top left, top and top right samples 535 535 for (i=0; i<uiWidth; i++) 536 536 { 537 pi AdiTemp[i] = piAdiLineTemp[i];538 } 539 540 pi AdiLineTemp = piAdiLine + uiHeight - 1;537 piIntraTemp[i] = piIntraLineTemp[i]; 538 } 539 540 piIntraLineTemp = piIntraLine + uiHeight - 1; 541 541 for (i=1; i<uiHeight; i++) 542 542 { 543 pi AdiTemp[i*uiWidth] = piAdiLineTemp[-i];543 piIntraTemp[i*uiWidth] = piIntraLineTemp[-i]; 544 544 } 545 545 } … … 681 681 { 682 682 UInt uiPartAboveRight; 683 TComDataCU* pcCUAboveRight = pcCU->getPUAboveRight Adi( uiPartAboveRight, uiPartIdxRT, uiOffset );683 TComDataCU* pcCUAboveRight = pcCU->getPUAboveRight( uiPartAboveRight, uiPartIdxRT, uiOffset ); 684 684 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 685 685 { … … 721 721 { 722 722 UInt uiPartBelowLeft; 723 TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeft Adi( uiPartBelowLeft, uiPartIdxLB, uiOffset );723 TComDataCU* pcCUBelowLeft = pcCU->getPUBelowLeft( uiPartBelowLeft, uiPartIdxLB, uiOffset ); 724 724 if(pcCU->getSlice()->getPPS()->getConstrainedIntraPred()) 725 725 { -
branches/SHM-dev/source/Lib/TLibCommon/TComPrediction.h
r1307 r1315 132 132 133 133 // This function is actually still in TComPattern.cpp 134 /// set parameters from CU data for accessing ADIdata135 Void init AdiPatternChType ( TComTU &rTu,134 /// set parameters from CU data for accessing intra data 135 Void initIntraPatternChType ( TComTU &rTu, 136 136 Bool& bAbove, 137 137 Bool& bLeft, -
branches/SHM-dev/source/Lib/TLibCommon/TComRom.cpp
r1292 r1315 507 507 508 508 // ==================================================================================================================== 509 // ADI509 // Intra prediction 510 510 // ==================================================================================================================== 511 511 -
branches/SHM-dev/source/Lib/TLibCommon/TComRom.h
r1292 r1315 139 139 140 140 // ==================================================================================================================== 141 // ADItable141 // Intra prediction table 142 142 // ==================================================================================================================== 143 143 -
branches/SHM-dev/source/Lib/TLibCommon/TComYuv.cpp
r1313 r1315 230 230 Void TComYuv::copyPartToPartComponent ( const ComponentID compID, TComYuv* pcYuvDst, const UInt uiPartIdx, const UInt iWidthComponent, const UInt iHeightComponent ) const 231 231 { 232 const Pel* pSrc = getAddr(compID );232 const Pel* pSrc = getAddr(compID, uiPartIdx); 233 233 Pel* pDst = pcYuvDst->getAddr(compID, uiPartIdx); 234 234 if( pSrc == pDst ) -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCu.cpp
r1307 r1315 583 583 584 584 DEBUG_STRING_NEW(sTemp) 585 m_pcPrediction->init AdiPatternChType( rTu, bAboveAvail, bLeftAvail, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sTemp) );585 m_pcPrediction->initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sTemp) ); 586 586 587 587 -
branches/SHM-dev/source/Lib/TLibDecoder/TDecSbac.cpp
r1305 r1315 71 71 , m_cCUPartSizeSCModel ( 1, 1, NUM_PART_SIZE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 72 72 , m_cCUPredModeSCModel ( 1, 1, NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 73 , m_cCUIntraPredSCModel ( 1, 1, NUM_ ADI_CTX, m_contextModels + m_numContextModels, m_numContextModels)73 , m_cCUIntraPredSCModel ( 1, 1, NUM_INTRA_PREDICT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 74 74 , m_cCUChromaPredSCModel ( 1, 1, NUM_CHROMA_PRED_CTX , m_contextModels + m_numContextModels, m_numContextModels) 75 75 , m_cCUDeltaQpSCModel ( 1, 1, NUM_DELTA_QP_CTX , m_contextModels + m_numContextModels, m_numContextModels) -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSbac.cpp
r1307 r1315 66 66 , m_cCUPartSizeSCModel ( 1, 1, NUM_PART_SIZE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 67 67 , m_cCUPredModeSCModel ( 1, 1, NUM_PRED_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 68 , m_cCUIntraPredSCModel ( 1, 1, NUM_ ADI_CTX, m_contextModels + m_numContextModels, m_numContextModels)68 , m_cCUIntraPredSCModel ( 1, 1, NUM_INTRA_PREDICT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 69 69 , m_cCUChromaPredSCModel ( 1, 1, NUM_CHROMA_PRED_CTX , m_contextModels + m_numContextModels, m_numContextModels) 70 70 , m_cCUDeltaQpSCModel ( 1, 1, NUM_DELTA_QP_CTX , m_contextModels + m_numContextModels, m_numContextModels) -
branches/SHM-dev/source/Lib/TLibEncoder/TEncSearch.cpp
r1313 r1315 1175 1175 const Bool bUseFilteredPredictions=TComPrediction::filteringIntraReferenceSamples(compID, uiChFinalMode, uiWidth, uiHeight, chFmt, sps.getDisableIntraReferenceSmoothing()); 1176 1176 1177 init AdiPatternChType( rTu, bAboveAvail, bLeftAvail, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sDebug) );1177 initIntraPatternChType( rTu, bAboveAvail, bLeftAvail, compID, bUseFilteredPredictions DEBUG_STRING_PASS_INTO(sDebug) ); 1178 1178 1179 1179 //===== get prediction signal ===== … … 2260 2260 if (tuRecurseWithPU.ProcessComponentSection(COMPONENT_Y)) 2261 2261 { 2262 init AdiPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) );2262 initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, true DEBUG_STRING_PASS_INTO(sTemp2) ); 2263 2263 } 2264 2264 … … 3976 3976 else //non ILR reference pic 3977 3977 #endif 3978 xPatternSearchFracDIF( bIsLosslessCoded, pcPatternKey, piRefY, iRefStride, &rcMv, cMvHalf, cMvQter, ruiCost ); 3978 xPatternSearchFracDIF( bIsLosslessCoded, pcPatternKey, piRefY, iRefStride, &rcMv, cMvHalf, cMvQter, ruiCost ); 3979 3979 3980 3980 m_pcRdCost->setCostScale( 0 );
Note: See TracChangeset for help on using the changeset viewer.