[x265-commits] [x265] weightp: implicit cast warning on vc10-x86.
Deepthi Nandakumar
deepthi at multicorewareinc.com
Mon Mar 3 02:32:16 CET 2014
details: http://hg.videolan.org/x265/rev/4f2cbc5a981a
branches:
changeset: 6337:4f2cbc5a981a
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Sun Mar 02 08:19:49 2014 +0530
description:
weightp: implicit cast warning on vc10-x86.
Is lambda intended to be int?
Subject: [x265] copy m_origYuv[depth] from m_origYuv[0]
details: http://hg.videolan.org/x265/rev/ac6edd2ffb65
branches:
changeset: 6338:ac6edd2ffb65
user: Satoshi Nakagawa <nakagawa424 at oki.com>
date: Fri Feb 28 18:36:34 2014 +0900
description:
copy m_origYuv[depth] from m_origYuv[0]
Subject: [x265] cli: replace --cpuid with --[no-]asm arguments
details: http://hg.videolan.org/x265/rev/26bd96a193d4
branches:
changeset: 6339:26bd96a193d4
user: Steve Borho <steve at borho.org>
date: Sat Mar 01 16:21:45 2014 -0600
description:
cli: replace --cpuid with --[no-]asm arguments
The vector class library is long gone, so it is past-due to adopt x264's
logic for specifying CPU architectures, or disabling ASM altogether.
Subject: [x265] param: fix handling of --no-scenecut within x265_param_parse(), add --no-b-adapt
details: http://hg.videolan.org/x265/rev/fcbe9a361b5a
branches:
changeset: 6340:fcbe9a361b5a
user: Steve Borho <steve at borho.org>
date: Sat Mar 01 16:29:32 2014 -0600
description:
param: fix handling of --no-scenecut within x265_param_parse(), add --no-b-adapt
Subject: [x265] primitves: update CPU name print logic from x264
details: http://hg.videolan.org/x265/rev/93ba16e4f140
branches:
changeset: 6341:93ba16e4f140
user: Steve Borho <steve at borho.org>
date: Sat Mar 01 16:22:17 2014 -0600
description:
primitves: update CPU name print logic from x264
Subject: [x265] testbench: improve CLI help and error handling, use parseCpuName
details: http://hg.videolan.org/x265/rev/46a799d747ae
branches:
changeset: 6342:46a799d747ae
user: Steve Borho <steve at borho.org>
date: Sat Mar 01 16:23:19 2014 -0600
description:
testbench: improve CLI help and error handling, use parseCpuName
Subject: [x265] api: add a fastdecode tune option, improve tune and preset CLI help
details: http://hg.videolan.org/x265/rev/dc82d1805136
branches:
changeset: 6343:dc82d1805136
user: Steve Borho <steve at borho.org>
date: Sat Mar 01 17:40:00 2014 -0600
description:
api: add a fastdecode tune option, improve tune and preset CLI help
To match x264's tune names, removed "-" from zerolatency in x265.h but allowed
either string to match internally. Same with fast-decode.
Subject: [x265] param: MSVC build fixes
details: http://hg.videolan.org/x265/rev/fad6fba7cf2c
branches:
changeset: 6344:fad6fba7cf2c
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 00:34:27 2014 -0600
description:
param: MSVC build fixes
Subject: [x265] testbench: use CHECKED_MALLOC to cleanup init functions
details: http://hg.videolan.org/x265/rev/d5269597c860
branches:
changeset: 6345:d5269597c860
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 01:10:47 2014 -0600
description:
testbench: use CHECKED_MALLOC to cleanup init functions
Subject: [x265] used checked malloc in TComYuv and TEncSearch, cleanly catch malloc failure
details: http://hg.videolan.org/x265/rev/f6ae34250453
branches:
changeset: 6346:f6ae34250453
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 16:10:14 2014 -0600
description:
used checked malloc in TComYuv and TEncSearch, cleanly catch malloc failure
Subject: [x265] TComYuv: switch from Pel to pixel type
details: http://hg.videolan.org/x265/rev/47a0575aad04
branches:
changeset: 6347:47a0575aad04
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 16:14:06 2014 -0600
description:
TComYuv: switch from Pel to pixel type
Subject: [x265] TComPattern: remove hungarian prefixes
details: http://hg.videolan.org/x265/rev/5a7c6e8536ac
branches:
changeset: 6348:5a7c6e8536ac
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 16:50:06 2014 -0600
description:
TComPattern: remove hungarian prefixes
Subject: [x265] param: ignore assignments within conditionals in param.cpp
details: http://hg.videolan.org/x265/rev/54e2dcf770c4
branches:
changeset: 6349:54e2dcf770c4
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 17:26:40 2014 -0600
description:
param: ignore assignments within conditionals in param.cpp
Subject: [x265] rename TShortYUV.* to shortyuv.*
details: http://hg.videolan.org/x265/rev/5f2d25407800
branches:
changeset: 6350:5f2d25407800
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 17:29:06 2014 -0600
description:
rename TShortYUV.* to shortyuv.*
Subject: [x265] use checked malloc in TShortYuv::create and TEncCu::create
details: http://hg.videolan.org/x265/rev/a9bbdfaf2a59
branches:
changeset: 6351:a9bbdfaf2a59
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 17:42:47 2014 -0600
description:
use checked malloc in TShortYuv::create and TEncCu::create
And replace unsigned int with uint32_t in TShortYuv.cpp
Subject: [x265] rename TShortYuv to ShortYuv
details: http://hg.videolan.org/x265/rev/0352ee7f3c5a
branches:
changeset: 6352:0352ee7f3c5a
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 17:46:35 2014 -0600
description:
rename TShortYuv to ShortYuv
Subject: [x265] shortyuv: combine add/subtract methods together
details: http://hg.videolan.org/x265/rev/ab05e3d951e1
branches:
changeset: 6353:ab05e3d951e1
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 18:02:19 2014 -0600
description:
shortyuv: combine add/subtract methods together
Subject: [x265] shortyuv: use optimized primitives where available
details: http://hg.videolan.org/x265/rev/288a83d7e289
branches:
changeset: 6354:288a83d7e289
user: Steve Borho <steve at borho.org>
date: Sun Mar 02 18:57:46 2014 -0600
description:
shortyuv: use optimized primitives where available
diffstat:
source/Lib/TLibCommon/TComPattern.cpp | 276 ++++++++++----------
source/Lib/TLibCommon/TComPattern.h | 19 +-
source/Lib/TLibCommon/TComPicYuv.h | 2 +-
source/Lib/TLibCommon/TComPrediction.cpp | 8 +-
source/Lib/TLibCommon/TComPrediction.h | 10 +-
source/Lib/TLibCommon/TComWeightPrediction.cpp | 8 +-
source/Lib/TLibCommon/TComWeightPrediction.h | 8 +-
source/Lib/TLibCommon/TComYuv.cpp | 151 +++++-----
source/Lib/TLibCommon/TComYuv.h | 47 +-
source/Lib/TLibEncoder/TEncCu.cpp | 67 +++-
source/Lib/TLibEncoder/TEncCu.h | 10 +-
source/Lib/TLibEncoder/TEncSearch.cpp | 72 ++--
source/Lib/TLibEncoder/TEncSearch.h | 32 +-
source/common/CMakeLists.txt | 2 +-
source/common/TShortYUV.cpp | 320 -------------------------
source/common/TShortYUV.h | 120 ---------
source/common/common.h | 1 -
source/common/param.cpp | 104 +++++++-
source/common/param.h | 2 +
source/common/primitives.cpp | 21 +-
source/common/shortyuv.cpp | 282 ++++++++++++++++++++++
source/common/shortyuv.h | 112 ++++++++
source/encoder/compress.cpp | 14 +-
source/encoder/cturow.cpp | 15 +-
source/encoder/cturow.h | 2 +-
source/encoder/encoder.cpp | 6 +-
source/encoder/frameencoder.cpp | 13 +-
source/encoder/frameencoder.h | 2 +-
source/encoder/weightPrediction.cpp | 2 +-
source/test/intrapredharness.cpp | 36 +-
source/test/ipfilterharness.cpp | 37 +-
source/test/mbdstharness.cpp | 58 ++--
source/test/pixelharness.cpp | 56 +--
source/test/testbench.cpp | 47 +++-
source/x265.cpp | 27 +-
source/x265.h | 2 +-
36 files changed, 1039 insertions(+), 952 deletions(-)
diffs (truncated from 3413 to 300 lines):
diff -r 000f86d72337 -r 288a83d7e289 source/Lib/TLibCommon/TComPattern.cpp
--- a/source/Lib/TLibCommon/TComPattern.cpp Fri Feb 28 12:17:17 2014 +0530
+++ b/source/Lib/TLibCommon/TComPattern.cpp Sun Mar 02 18:57:46 2014 -0600
@@ -48,11 +48,11 @@ using namespace x265;
// Public member functions (TComPattern)
// ====================================================================================================================
-void TComPattern::initAdiPattern(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, Pel* adiBuf,
+void TComPattern::initAdiPattern(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, pixel* adiBuf,
int strideOrig, int heightOrig)
{
- Pel* roiOrigin;
- Pel* adiTemp;
+ pixel* roiOrigin;
+ pixel* adiTemp;
uint32_t cuWidth = cu->getWidth(0) >> partDepth;
uint32_t cuHeight = cu->getHeight(0) >> partDepth;
uint32_t cuWidth2 = cuWidth << 1;
@@ -100,10 +100,10 @@ void TComPattern::initAdiPattern(TComDat
int bufSize = cuHeight2 + cuWidth2 + 1;
uint32_t wh = ADI_BUF_STRIDE * height; // number of elements in one buffer
- Pel* filteredBuf1 = adiBuf + wh; // 1. filter buffer
- Pel* filteredBuf2 = filteredBuf1 + wh; // 2. filter buffer
- Pel* filterBuf = filteredBuf2 + wh; // buffer for 2. filtering (sequential)
- Pel* filterBufN = filterBuf + bufSize; // buffer for 1. filtering (sequential)
+ pixel* filteredBuf1 = adiBuf + wh; // 1. filter buffer
+ pixel* filteredBuf2 = filteredBuf1 + wh; // 2. filter buffer
+ pixel* filterBuf = filteredBuf2 + wh; // buffer for 2. filtering (sequential)
+ pixel* filterBufN = filterBuf + bufSize; // buffer for 1. filtering (sequential)
int l = 0;
// left border from bottom to top
@@ -179,8 +179,8 @@ void TComPattern::initAdiPattern(TComDat
}
// Overloaded initialization of ADI buffers to support buffered references for xpredIntraAngBufRef
-void TComPattern::initAdiPattern(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, Pel* adiBuf, int strideOrig, int heightOrig,
- Pel* refAbove, Pel* refLeft, Pel* refAboveFlt, Pel* refLeftFlt)
+void TComPattern::initAdiPattern(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, pixel* adiBuf, int strideOrig, int heightOrig,
+ pixel* refAbove, pixel* refLeft, pixel* refAboveFlt, pixel* refLeftFlt)
{
initAdiPattern(cu, zOrderIdxInPart, partDepth, adiBuf, strideOrig, heightOrig);
uint32_t cuWidth = cu->getWidth(0) >> partDepth;
@@ -194,8 +194,8 @@ void TComPattern::initAdiPattern(TComDat
refLeftFlt += cuWidth - 1;
// ADI_BUF_STRIDE * (2 * height + 1);
- memcpy(refAbove, adiBuf, (cuWidth2 + 1) * sizeof(Pel));
- memcpy(refAboveFlt, adiBuf + ADI_BUF_STRIDE * (2 * cuHeight + 1), (cuWidth2 + 1) * sizeof(Pel));
+ memcpy(refAbove, adiBuf, (cuWidth2 + 1) * sizeof(pixel));
+ memcpy(refAboveFlt, adiBuf + ADI_BUF_STRIDE * (2 * cuHeight + 1), (cuWidth2 + 1) * sizeof(pixel));
for (int k = 0; k < cuHeight2 + 1; k++)
{
@@ -204,10 +204,10 @@ void TComPattern::initAdiPattern(TComDat
}
}
-void TComPattern::initAdiPatternChroma(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, Pel* adiBuf, int strideOrig, int heightOrig, int chromaId)
+void TComPattern::initAdiPatternChroma(TComDataCU* cu, uint32_t zOrderIdxInPart, uint32_t partDepth, pixel* adiBuf, int strideOrig, int heightOrig, int chromaId)
{
- Pel* roiOrigin;
- Pel* adiTemp;
+ pixel* roiOrigin;
+ pixel* adiTemp;
uint32_t cuWidth = cu->getWidth(0) >> partDepth;
uint32_t cuHeight = cu->getHeight(0) >> partDepth;
uint32_t width;
@@ -252,163 +252,163 @@ void TComPattern::initAdiPatternChroma(T
cuWidth, cuHeight, width, height, picStride);
}
-void TComPattern::fillReferenceSamples(Pel* roiOrigin, Pel* adiTemp, bool* bNeighborFlags, int numIntraNeighbor, int unitSize, int numUnitsInCU, int totalUnits, uint32_t cuWidth, uint32_t cuHeight, uint32_t width, uint32_t height, int picStride)
+void TComPattern::fillReferenceSamples(pixel* roiOrigin, pixel* adiTemp, bool* bNeighborFlags, int numIntraNeighbor, int unitSize, int numUnitsInCU, int totalUnits, uint32_t cuWidth, uint32_t cuHeight, uint32_t width, uint32_t height, int picStride)
{
- Pel* piRoiTemp;
- int i, j;
- int iDCValue = 1 << (X265_DEPTH - 1);
+ pixel* roiTemp;
+ int i, j;
+ int dcValue = 1 << (X265_DEPTH - 1);
if (numIntraNeighbor == 0)
{
// Fill border with DC value
for (i = 0; i < width; i++)
{
- adiTemp[i] = iDCValue;
+ adiTemp[i] = dcValue;
}
for (i = 1; i < height; i++)
{
- adiTemp[i * ADI_BUF_STRIDE] = iDCValue;
+ adiTemp[i * ADI_BUF_STRIDE] = dcValue;
}
}
else if (numIntraNeighbor == totalUnits)
{
// Fill top-left border with rec. samples
- piRoiTemp = roiOrigin - picStride - 1;
- adiTemp[0] = piRoiTemp[0];
+ roiTemp = roiOrigin - picStride - 1;
+ adiTemp[0] = roiTemp[0];
// Fill left border with rec. samples
// Fill below left border with rec. samples
- piRoiTemp = roiOrigin - 1;
+ roiTemp = roiOrigin - 1;
for (i = 0; i < 2 * cuHeight; i++)
{
- adiTemp[(1 + i) * ADI_BUF_STRIDE] = piRoiTemp[0];
- piRoiTemp += picStride;
+ adiTemp[(1 + i) * ADI_BUF_STRIDE] = roiTemp[0];
+ roiTemp += picStride;
}
// Fill top border with rec. samples
// Fill top right border with rec. samples
- piRoiTemp = roiOrigin - picStride;
- memcpy(&adiTemp[1], piRoiTemp, 2 * cuWidth * sizeof(*adiTemp));
+ roiTemp = roiOrigin - picStride;
+ memcpy(&adiTemp[1], roiTemp, 2 * cuWidth * sizeof(*adiTemp));
}
else // reference samples are partially available
{
- int iNumUnits2 = numUnitsInCU << 1;
- int iTotalSamples = totalUnits * unitSize;
- Pel piAdiLine[5 * MAX_CU_SIZE];
- Pel *piAdiLineTemp;
- bool *pbNeighborFlags;
- int iNext, iCurr;
- Pel piRef = 0;
+ int numUnits2 = numUnitsInCU << 1;
+ int totalSamples = totalUnits * unitSize;
+ pixel adiLine[5 * MAX_CU_SIZE];
+ pixel* adiLineTemp;
+ bool* neighborFlagPtr;
+ int next, curr;
+ pixel iRef = 0;
// Initialize
- for (i = 0; i < iTotalSamples; i++)
+ for (i = 0; i < totalSamples; i++)
{
- piAdiLine[i] = iDCValue;
+ adiLine[i] = dcValue;
}
// Fill top-left sample
- piRoiTemp = roiOrigin - picStride - 1;
- piAdiLineTemp = piAdiLine + (iNumUnits2 * unitSize);
- pbNeighborFlags = bNeighborFlags + iNumUnits2;
- if (*pbNeighborFlags)
+ roiTemp = roiOrigin - picStride - 1;
+ adiLineTemp = adiLine + (numUnits2 * unitSize);
+ neighborFlagPtr = bNeighborFlags + numUnits2;
+ if (*neighborFlagPtr)
{
- piAdiLineTemp[0] = piRoiTemp[0];
+ adiLineTemp[0] = roiTemp[0];
for (i = 1; i < unitSize; i++)
{
- piAdiLineTemp[i] = piAdiLineTemp[0];
+ adiLineTemp[i] = adiLineTemp[0];
}
}
// Fill left & below-left samples
- piRoiTemp += picStride;
- piAdiLineTemp--;
- pbNeighborFlags--;
- for (j = 0; j < iNumUnits2; j++)
+ roiTemp += picStride;
+ adiLineTemp--;
+ neighborFlagPtr--;
+ for (j = 0; j < numUnits2; j++)
{
- if (*pbNeighborFlags)
+ if (*neighborFlagPtr)
{
for (i = 0; i < unitSize; i++)
{
- piAdiLineTemp[-i] = piRoiTemp[i * picStride];
+ adiLineTemp[-i] = roiTemp[i * picStride];
}
}
- piRoiTemp += unitSize * picStride;
- piAdiLineTemp -= unitSize;
- pbNeighborFlags--;
+ roiTemp += unitSize * picStride;
+ adiLineTemp -= unitSize;
+ neighborFlagPtr--;
}
// Fill above & above-right samples
- piRoiTemp = roiOrigin - picStride;
- piAdiLineTemp = piAdiLine + ((iNumUnits2 + 1) * unitSize);
- pbNeighborFlags = bNeighborFlags + iNumUnits2 + 1;
- for (j = 0; j < iNumUnits2; j++)
+ roiTemp = roiOrigin - picStride;
+ adiLineTemp = adiLine + ((numUnits2 + 1) * unitSize);
+ neighborFlagPtr = bNeighborFlags + numUnits2 + 1;
+ for (j = 0; j < numUnits2; j++)
{
- if (*pbNeighborFlags)
+ if (*neighborFlagPtr)
{
- memcpy(piAdiLineTemp, piRoiTemp, unitSize * sizeof(*adiTemp));
+ memcpy(adiLineTemp, roiTemp, unitSize * sizeof(*adiTemp));
}
- piRoiTemp += unitSize;
- piAdiLineTemp += unitSize;
- pbNeighborFlags++;
+ roiTemp += unitSize;
+ adiLineTemp += unitSize;
+ neighborFlagPtr++;
}
// Pad reference samples when necessary
- iCurr = 0;
- iNext = 1;
- piAdiLineTemp = piAdiLine;
- while (iCurr < totalUnits)
+ curr = 0;
+ next = 1;
+ adiLineTemp = adiLine;
+ while (curr < totalUnits)
{
- if (!bNeighborFlags[iCurr])
+ if (!bNeighborFlags[curr])
{
- if (iCurr == 0)
+ if (curr == 0)
{
- while (iNext < totalUnits && !bNeighborFlags[iNext])
+ while (next < totalUnits && !bNeighborFlags[next])
{
- iNext++;
+ next++;
}
- piRef = piAdiLine[iNext * unitSize];
+ iRef = adiLine[next * unitSize];
// Pad unavailable samples with new value
- while (iCurr < iNext)
+ while (curr < next)
{
for (i = 0; i < unitSize; i++)
{
- piAdiLineTemp[i] = piRef;
+ adiLineTemp[i] = iRef;
}
- piAdiLineTemp += unitSize;
- iCurr++;
+ adiLineTemp += unitSize;
+ curr++;
}
}
else
{
- piRef = piAdiLine[iCurr * unitSize - 1];
+ iRef = adiLine[curr * unitSize - 1];
for (i = 0; i < unitSize; i++)
{
- piAdiLineTemp[i] = piRef;
+ adiLineTemp[i] = iRef;
}
- piAdiLineTemp += unitSize;
- iCurr++;
+ adiLineTemp += unitSize;
+ curr++;
}
}
else
{
- piAdiLineTemp += unitSize;
- iCurr++;
+ adiLineTemp += unitSize;
+ curr++;
}
}
// Copy processed samples
- piAdiLineTemp = piAdiLine + height + unitSize - 2;
- memcpy(adiTemp, piAdiLineTemp, width * sizeof(*adiTemp));
+ adiLineTemp = adiLine + height + unitSize - 2;
+ memcpy(adiTemp, adiLineTemp, width * sizeof(*adiTemp));
- piAdiLineTemp = piAdiLine + height - 1;
+ adiLineTemp = adiLine + height - 1;
for (i = 1; i < height; i++)
{
- adiTemp[i * ADI_BUF_STRIDE] = piAdiLineTemp[-i];
+ adiTemp[i * ADI_BUF_STRIDE] = adiLineTemp[-i];
}
More information about the x265-commits
mailing list