[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