[x265] [PATCH 1 of 2] primitves: 8 bit : PredIntraAng16x16 function table implementation

mandar at multicorewareinc.com mandar at multicorewareinc.com
Fri Jun 28 14:32:22 CEST 2013


# HG changeset patch
# User Mandar Gurav
# Date 1372400682 25200
# Node ID 124a8b402cd671dfd76bfebcdd0ebad8136b0da1
# Parent  5b42d1c900b42f0e95793825b1e242af29e83180
primitves: 8 bit : PredIntraAng16x16 function table implementation

diff -r 5b42d1c900b4 -r 124a8b402cd6 source/common/vec/intrapred.inc
--- a/source/common/vec/intrapred.inc	Wed Jun 26 17:35:15 2013 -0500
+++ b/source/common/vec/intrapred.inc	Thu Jun 27 23:24:42 2013 -0700
@@ -1597,6 +1597,7 @@
 #endif /* if (!HIGH_BIT_DEPTH) && (INSTRSET >= 5) */
 }
 
+//4x4
 #if HIGH_BIT_DEPTH
 void xPredIntraAng4x4(int bitDepth, pixel* pDst, int dstStride, int width, int dirMode, pixel *refLeft, pixel *refAbove)
 {
@@ -2363,6 +2364,7 @@
 
 #endif /* if HIGH_BIT_DEPTH */
 
+//8x8
 #if HIGH_BIT_DEPTH
 #else
 #define PREDANG_CALCROW_VER(X) { \
@@ -2968,13 +2970,129 @@
         BLND2_4(R4, R8); \
 }
 
-void xPredIntraAng16x16(int bitDepth, pixel* pDst, int dstStride, int width, int dirMode, pixel *refLeft, pixel *refAbove, bool bFilter = true)
+void PredIntraAng16_32(pixel* pDst, int dstStride, pixel *refMain, pixel * /*refSide*/, int /*dirMode*/)
+{    
+    Vec8s tmp;
+    __m128i itmp;
+    refMain += 2;
+
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)refMain++);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+}
+
+void PredIntraAng16_m_32(pixel* pDst, int dstStride, pixel *refMain, pixel *refSide, int /*dirMode*/)
 {
-    int k;
-    int blkSize        = width;
-
-    // Map the mode index to main prediction direction and angle
-    assert(dirMode > 1); //no planar and dc
+    Vec16uc v_refSide;
+    v_refSide.load(refSide);
+    v_refSide = permute16uc<15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0>(v_refSide);
+    pixel refMain0 = refMain[0];
+
+    v_refSide.store(refMain - 15);
+    refMain[0] = refMain0;
+
+    Vec16uc tmp;
+    __m128i itmp;
+    //        tmp.load(refMain);        //-1,0,1,2
+    //        tmp.store(pDst);
+
+    itmp = _mm_loadu_si128((__m128i const*)refMain);
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+    itmp = _mm_loadu_si128((__m128i const*)--refMain);
+    pDst += dstStride;
+    _mm_storeu_si128((__m128i*)pDst, itmp);
+}
+
+void PredIntraAng16_26(pixel* pDst, int dstStride, pixel *refMain, pixel * /*refSide*/, int dirMode)
+{
     bool modeHor       = (dirMode < 18);
     bool modeVer       = !modeHor;
     int intraPredAngle = modeVer ? (int)dirMode - VER_IDX : modeHor ? -((int)dirMode - HOR_IDX) : 0;
@@ -2984,10 +3102,113 @@
 
     // Set bitshifts and scale the angle parameter to block size
     int angTable[9]    = { 0,    2,    5,   9,  13,  17,  21,  26,  32 };
-    int invAngTable[9] = { 0, 4096, 1638, 910, 630, 482, 390, 315, 256 }; // (256 * 32) / Angle
-    int invAngle       = invAngTable[absAng];
     absAng             = angTable[absAng];
     intraPredAngle     = signAng * absAng;
+    if (modeHor)
+    {
+        Vec8s row11L, row12L, row11H, row12H;
+        Vec8s v_deltaFract, v_deltaPos, thirty2(32), thirty1(31), v_ipAngle;
+        Vec16uc tmp;
+        Vec16uc R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16;
+        Vec16uc tmp1, tmp2;
+        v_deltaPos = 0;
+        v_ipAngle = intraPredAngle;
+        __m128i itmp, itmp1, itmp2, it1, it2, it3, i16;
+        //            MB16;
+        CALC_BLND_8ROWS(R1, R2, R3, R4, R5, R6, R7, R8, 0)
+            CALC_BLND_8ROWS(R9, R10, R11, R12, R13, R14, R15, R16, 8)
+            BLND2_2(R1, R9)
+            BLND2_2(R5, R13)
+            BLND2_2(R3, R11)
+            BLND2_2(R7, R15)
+            BLND2_2(R2, R10)
+            BLND2_2(R6, R14)
+            BLND2_2(R4, R12)
+            BLND2_2(R8, R16)
+    }
+    else
+    {
+        Vec8s row11L, row12L, row11H, row12H;
+        Vec8s v_deltaFract, v_deltaPos, thirty2(32), thirty1(31), v_ipAngle;
+        Vec16uc tmp;
+        Vec8s tmp1, tmp2;
+        v_deltaPos = 0;
+        v_ipAngle = intraPredAngle;
+        __m128i itmp, it1, it2, it3, i16;
+
+        PREDANG_CALCROW_VER(0);
+        PREDANG_CALCROW_VER(1);
+        PREDANG_CALCROW_VER(2);
+        PREDANG_CALCROW_VER(3);
+        PREDANG_CALCROW_VER(4);
+        PREDANG_CALCROW_VER(5);
+        PREDANG_CALCROW_VER(6);
+        PREDANG_CALCROW_VER(7);
+        PREDANG_CALCROW_VER(8);
+        PREDANG_CALCROW_VER(9);
+        PREDANG_CALCROW_VER(10);
+        PREDANG_CALCROW_VER(11);
+        PREDANG_CALCROW_VER(12);
+        PREDANG_CALCROW_VER(13);
+        PREDANG_CALCROW_VER(14);
+        PREDANG_CALCROW_VER(15);
+    }
+}
+
+typedef void (*PredIntraAng16x16_table)(pixel* pDst, int dstStride, pixel *refMain, pixel *refSide, int dirMode);
+PredIntraAng16x16_table PredIntraAng16[] = {
+    /* 
+    PredIntraAng16_0 is replaced with PredIntraAng16_26. For PredIntraAng8_0 we are going through default path in the xPredIntraAng8x8 because we cannot afford to pass large number arguments for this function. 
+    Path for PredIntraAng16_26, PredIntraAng16_m_26, PredIntraAng16_21, PredIntraAng16_m_21, PredIntraAng16_17, PredIntraAng16_m_17, PredIntraAng16_13, PredIntraAng16_m_13, PredIntraAng16_9, PredIntraAng16_m_9, PredIntraAng16_5, PredIntraAng16_m_5, PredIntraAng16_2, PredIntraAng16_m_2 is same as PredIntraAng16_26.
+    */
+    PredIntraAng16_32,
+    PredIntraAng16_26,
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_21" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_17" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_13" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_9" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_5" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_2" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_0" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_2" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_5" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_9" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_13" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_17" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_21" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_26" here.
+    PredIntraAng16_m_32,      
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_26" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_21" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_17" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_13" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_9" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_5" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_m_2" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_0" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_2" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_5" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_9" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_13" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_17" here.
+    PredIntraAng16_26,      //Intentionally wrong! It should be "PredIntraAng16_21" here.
+    PredIntraAng16_26,
+    PredIntraAng16_32
+};
+
+void xPredIntraAng16x16(int bitDepth, pixel* pDst, int dstStride, int width, int dirMode, pixel *refLeft, pixel *refAbove, bool bFilter = true)
+{
+    int k;
+    int blkSize        = width;
+
+    // Map the mode index to main prediction direction and angle
+    assert(dirMode > 1); //no planar and dc
+    static const int mode_to_angle_table[] = {32, 26, 21, 17, 13, 9, 5, 2, 0, -2, -5, -9, -13, -17, -21, -26, -32, -26, -21, -17, -13, -9, -5, -2, 0, 2, 5, 9, 13, 17, 21, 26, 32};
+    static const int mode_to_invAng_table[] = {256, 315, 390, 482, 630, 910, 1638, 4096, 0, 4096, 1638, 910, 630, 482, 390, 315, 256, 315, 390, 482, 630, 910, 1638, 4096, 0, 4096, 1638, 910, 630, 482, 390, 315, 256};
+    int intraPredAngle = mode_to_angle_table[dirMode-2];
+    int invAngle       = mode_to_invAng_table[dirMode-2];
+    bool modeHor       = (dirMode < 18);
+    bool modeVer       = !modeHor;
 
     // Do angular predictions
 
@@ -3161,195 +3382,9 @@
             }
         }
     }
-    else if (intraPredAngle == -32)
-    {
-        Vec16uc v_refSide;
-        v_refSide.load(refSide);
-        v_refSide = permute16uc<15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0>(v_refSide);
-        pixel refMain0 = refMain[0];
-
-        v_refSide.store(refMain - 15);
-        refMain[0] = refMain0;
-
-        Vec16uc tmp;
-        __m128i itmp;
-//        tmp.load(refMain);        //-1,0,1,2
-//        tmp.store(pDst);
-
-        itmp = _mm_loadu_si128((__m128i const*)refMain);
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)--refMain);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-
-/*
-        tmp.load(--refMain);
-        pDst += dstStride;
-        tmp.store(pDst);
-        ... 14 times more
-*/
-        return;
-    }
-    else if (intraPredAngle == 32)
-    {
-        Vec8s tmp;
-        __m128i itmp;
-        refMain += 2;
-
-//        tmp.load(refMain++);
-//        tmp.store(pDst);
-
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-
-/*
-        tmp.load(refMain++);
-        pDst += dstStride;
-        tmp.store(pDst);
-        ... 14 times more
-*/
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-        itmp = _mm_loadu_si128((__m128i const*)refMain++);
-        pDst += dstStride;
-        _mm_storeu_si128((__m128i*)pDst, itmp);
-
-        return;
-    }
     else
     {
-        if (modeHor)
-        {
-            Vec8s row11L, row12L, row11H, row12H;
-            Vec8s v_deltaFract, v_deltaPos, thirty2(32), thirty1(31), v_ipAngle;
-            Vec16uc tmp;
-            Vec16uc R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16;
-            Vec16uc tmp1, tmp2;
-            v_deltaPos = 0;
-            v_ipAngle = intraPredAngle;
-            __m128i itmp, itmp1, itmp2, it1, it2, it3, i16;
-//            MB16;
-            CALC_BLND_8ROWS(R1, R2, R3, R4, R5, R6, R7, R8, 0)
-            CALC_BLND_8ROWS(R9, R10, R11, R12, R13, R14, R15, R16, 8)
-            BLND2_2(R1, R9)
-            BLND2_2(R5, R13)
-            BLND2_2(R3, R11)
-            BLND2_2(R7, R15)
-            BLND2_2(R2, R10)
-            BLND2_2(R6, R14)
-            BLND2_2(R4, R12)
-            BLND2_2(R8, R16)
-        }
-        else
-        {
-            Vec8s row11L, row12L, row11H, row12H;
-            Vec8s v_deltaFract, v_deltaPos, thirty2(32), thirty1(31), v_ipAngle;
-            Vec16uc tmp;
-            Vec8s tmp1, tmp2;
-            v_deltaPos = 0;
-            v_ipAngle = intraPredAngle;
-            __m128i itmp, it1, it2, it3, i16;
-
-            PREDANG_CALCROW_VER(0);
-            PREDANG_CALCROW_VER(1);
-            PREDANG_CALCROW_VER(2);
-            PREDANG_CALCROW_VER(3);
-            PREDANG_CALCROW_VER(4);
-            PREDANG_CALCROW_VER(5);
-            PREDANG_CALCROW_VER(6);
-            PREDANG_CALCROW_VER(7);
-            PREDANG_CALCROW_VER(8);
-            PREDANG_CALCROW_VER(9);
-            PREDANG_CALCROW_VER(10);
-            PREDANG_CALCROW_VER(11);
-            PREDANG_CALCROW_VER(12);
-            PREDANG_CALCROW_VER(13);
-            PREDANG_CALCROW_VER(14);
-            PREDANG_CALCROW_VER(15);
-        }
+        PredIntraAng16[dirMode-2](pDst, dstStride, refMain, refSide, dirMode);        
     }
 }
 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xhevc_27June-1.patch
Type: text/x-patch
Size: 19663 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20130628/0a54aaf0/attachment-0001.bin>


More information about the x265-devel mailing list