Changeset 583 in 3DVCSoftware for branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.cpp
- Timestamp:
- 17 Aug 2013, 15:12:24 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-2.0-dev3-SCU-Hisilicon/source/Lib/TLibCommon/TComRdCost.cpp
r582 r583 486 486 #if SCU_HS_FAST_DEPTH_INTRA_E0238 487 487 488 UInt TComRdCost::calcVAR (Pel* pi0, Int uiWidth, Int uiHeight, Int cuDepth)488 UInt TComRdCost::calcVAR (Pel* pi0, Int width, Int height, Int stride, Int cuDepth) 489 489 { 490 Int x, y;491 490 Int temp = 0; 492 491 493 for (x = 0; x < uiHeight; x++) 494 { 495 for (y = 0; y < uiWidth; y++) 496 { 497 temp += pi0[x*uiHeight+y]; 498 } 499 } 492 for (Int y = 0; y < height; y++) 493 { 494 for (Int x = 0; x < width; x++) 495 { 496 temp += pi0[ y * stride + x ]; 497 } 498 } 499 500 500 Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2; 501 if (uiWidth == 4) 502 { 503 cuDepth = cuMaxLog2Size-2; 504 } 505 506 temp = temp >> (cuMaxLog2Size-cuDepth)*2; 507 508 UInt uiSum = 0; 509 for (x = 0; x < uiHeight; x++) 510 { 511 for (y = 0; y < uiWidth; y++) 512 { 513 uiSum += (pi0[x*uiHeight+y]-temp)*(pi0[x*uiHeight+y]-temp); 514 } 515 } 516 return (uiSum >> (cuMaxLog2Size-cuDepth)*2); 501 502 if ( width == 4 ) // GT: What is the rational behind this? 503 { 504 cuDepth = cuMaxLog2Size - 2; 505 } 506 507 temp = temp >> (cuMaxLog2Size-cuDepth) * 2; 508 509 UInt sum = 0; 510 for (Int y = 0; y < height; y++) 511 { 512 for (Int x = 0; x < width; x++) 513 { 514 sum += (pi0[ y * stride + x ] - temp ) * (pi0[ y * stride + x ] - temp ); 515 } 516 } 517 return (sum >> (cuMaxLog2Size-cuDepth)*2); 517 518 518 519 }
Note: See TracChangeset for help on using the changeset viewer.