Ignore:
Timestamp:
13 Aug 2015, 17:38:13 (9 years ago)
Author:
tech
Message:

Merged 14.1-update-dev1@1312.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibRenderer/TRenInterpFilter.h

    r1179 r1313  
    4444#include "TLibCommon/CommonDef.h"
    4545#include "assert.h"
    46 #if H_3D
     46#if NH_3D
    4747
    4848// ====================================================================================================================
     
    6060
    6161/// interpolation filter class
     62template<UInt bitDepth>
    6263class TRenInterpFilter
    6364{
     
    104105   __inline Int xCTI_Filter_VP04_C_OCT3( Pel* pSrc, Int iStride );
    105106   __inline Int xCTI_Filter_VI04_C_OCT3( Int* pSrc, Int iStride );
     107private:
     108  __inline Int xClipY( Pel x ) { return std::min<Pel>(Pel((1 << bitDepth)-1), std::max<Pel>( Pel(0), x)); }
     109  __inline Int xClipC( Pel x ) { return std::min<Pel>(Pel((1 << bitDepth)-1), std::max<Pel>( Pel(0), x)); }
    106110
    107111};
     
    111115// DCTIF filters
    112116// ------------------------------------------------------------------------------------------------
    113 
    114 __inline Void TRenInterpFilter::xCTI_FilterHalfHor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    115 {
    116   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    117 
     117template<UInt bitDepth>
     118__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterHalfHor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     119{
    118120  Pel*  piDst    = rpiDst;
    119121  Int   iSum;
     
    146148            -    iTmp0 -  iTmp2;
    147149
    148       piDst   [x * iDstStep] = ClipY( (iSum +  32) >>  6 );
     150      piDst   [x * iDstStep] = xClipY( (iSum +  32) >>  6 );
    149151      piSrcTmp += iSrcStep;
    150152    }
     
    155157}
    156158
    157 __inline Void TRenInterpFilter::xCTI_FilterHalfHor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    158 {
    159   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    160 
     159template<UInt bitDepth>
     160__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterHalfHor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     161{
    161162  Pel*  piDst    = rpiDst;
    162163  Int   iSum;
     
    189190            -    iTmp0 -  iTmp2;
    190191     
    191       piDst   [x * iDstStep] = ClipY( (iSum +  2048) >>  12 );
     192      piDst   [x * iDstStep] = xClipY( (iSum +  2048) >>  12 );
    192193      piSrcTmp += iSrcStep;
    193194    }
     
    198199}
    199200
    200 __inline Void TRenInterpFilter::xCTI_FilterQuarter0Hor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    201 {
    202   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
     201template<UInt bitDepth>
     202__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter0Hor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     203{
    203204  Pel*  piDst    = rpiDst;
    204205  Int   iSum;
     
    229230             + (   piSrcTmp[iSrcStep4]           << 4 );
    230231     
    231       piDst   [x * iDstStep] = ClipY(( (iSum +  32) >>  6 )+ piSrcTmp[iSrcStep3]);
     232      piDst   [x * iDstStep] = xClipY(( (iSum +  32) >>  6 )+ piSrcTmp[iSrcStep3]);
    232233      piSrcTmp += iSrcStep;
    233234    }
     
    238239}
    239240
    240 __inline Void TRenInterpFilter::xCTI_FilterQuarter0Hor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    241 {
    242   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    243 
     241template<UInt bitDepth>
     242__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter0Hor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     243{
    244244  Pel*  piDst    = rpiDst;
    245245  Int   iSum;
     
    271271            + (   piSrcTmp[iSrcStep3]           << 6 );
    272272     
    273       piDst   [x * iDstStep] = ClipY( (iSum +  2048) >>  12 );
     273      piDst   [x * iDstStep] = xClipY( (iSum +  2048) >>  12 );
    274274      piSrcTmp += iSrcStep;
    275275    }
     
    280280}
    281281
    282 __inline Void TRenInterpFilter::xCTI_FilterQuarter1Hor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    283 {
    284   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
     282template<UInt bitDepth>
     283__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter1Hor(Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     284{
    285285  Pel*  piDst    = rpiDst;
    286286  Int   iSum;
     
    310310            + (   piSrcTmp[iSrcStep3]           << 4 );
    311311     
    312       piDst   [x * iDstStep] = ClipY( ((iSum +  32) >>  6) + piSrcTmp[iSrcStep4] );
     312      piDst   [x * iDstStep] = xClipY( ((iSum +  32) >>  6) + piSrcTmp[iSrcStep4] );
    313313      piSrcTmp += iSrcStep;
    314314    }
     
    319319}
    320320
    321 __inline Void TRenInterpFilter::xCTI_FilterQuarter1Hor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    322 {
    323   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    324 
     321template<UInt bitDepth>
     322__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter1Hor(Int* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     323{
    325324  Pel*  piDst    = rpiDst;
    326325  Int   iSum;
     
    351350            + (   piSrcTmp[iSrcStep4]           << 6 );
    352351     
    353       piDst   [x * iDstStep] = ClipY( (iSum +  2048) >>  12 );
     352      piDst   [x * iDstStep] = xClipY( (iSum +  2048) >>  12 );
    354353      piSrcTmp += iSrcStep;
    355354    }
     
    360359}
    361360
    362 __inline Void TRenInterpFilter::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst, Int iDstStridePel, Pel*& rpiDstPel )
    363 {
    364   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
     361template<UInt bitDepth>
     362__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst, Int iDstStridePel, Pel*& rpiDstPel )
     363{
    365364  Int*  piDst = rpiDst;
    366365  Pel*  piDstPel = rpiDstPel;
     
    394393     
    395394      piDst[x * iDstStep]    = iSum;
    396       piDstPel[x * iDstStep] = ClipY( (iSum +  32) >>  6 );
     395      piDstPel[x * iDstStep] = xClipY( (iSum +  32) >>  6 );
    397396      piSrcTmp += iSrcStep;
    398397    }
     
    404403}
    405404
    406 __inline Void TRenInterpFilter::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
     405template<UInt bitDepth>
     406__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
    407407{
    408408  Int*  piDst = rpiDst;
     
    444444}
    445445
    446 __inline Void TRenInterpFilter::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    447 {
    448   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
     446template<UInt bitDepth>
     447__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterHalfVer (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     448{
    449449  Pel*  piDst = rpiDst;
    450450  Int   iSum;
     
    477477            -    iTmp0 -  iTmp2;       
    478478     
    479       piDst[x * iDstStep] = ClipY( (iSum +  32) >>  6 );
     479      piDst[x * iDstStep] = xClipY( (iSum +  32) >>  6 );
    480480      piSrcTmp += iSrcStep;
    481481    }
     
    486486}
    487487
    488 __inline Void TRenInterpFilter::xCTI_FilterQuarter0Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
     488template<UInt bitDepth>
     489__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter0Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
    489490{
    490491  Int*  piDst = rpiDst;
     
    525526}
    526527
    527 __inline Void TRenInterpFilter::xCTI_FilterQuarter0Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    528 {
    529   assert( g_bitDepthC == g_bitDepthY );  // ToDo: Update renderer to work with different luma/chroma bit depth
     528template<UInt bitDepth>
     529__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter0Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     530{
    530531  Pel*  piDst = rpiDst;
    531532  Int   iSum;
     
    556557            + (   piSrcTmp[iSrcStride4]           << 4 );
    557558     
    558       piDst[x * iDstStep] = ClipY( ((iSum +  32) >>  6) + piSrcTmp[iSrcStride3] );
     559      piDst[x * iDstStep] = xClipY( ((iSum +  32) >>  6) + piSrcTmp[iSrcStride3] );
    559560      piSrcTmp += iSrcStep;
    560561    }
     
    565566}
    566567
    567 __inline Void TRenInterpFilter::xCTI_FilterQuarter1Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
     568template<UInt bitDepth>
     569__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter1Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Int*& rpiDst)
    568570{
    569571  Int*  piDst = rpiDst;
     
    604606}
    605607
    606 __inline Void TRenInterpFilter::xCTI_FilterQuarter1Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
    607 {
    608   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    609 
     608template<UInt bitDepth>
     609__inline Void TRenInterpFilter<bitDepth>::xCTI_FilterQuarter1Ver (Pel* piSrc, Int iSrcStride, Int iSrcStep, Int iWidth, Int iHeight, Int iDstStride, Int iDstStep, Pel*& rpiDst)
     610{
    610611  Pel*  piDst = rpiDst;
    611612  Int   iSum;
     
    635636            + (   piSrcTmp[iSrcStride3]           << 4 );
    636637           
    637       piDst[x * iDstStep] = ClipY( ((iSum +  32) >>  6) +  piSrcTmp[iSrcStride4] );
     638      piDst[x * iDstStep] = xClipY( ((iSum +  32) >>  6) +  piSrcTmp[iSrcStride4] );
    638639      piSrcTmp += iSrcStep;
    639640    }
     
    647648// DCTIF filters for Chroma
    648649// ------------------------------------------------------------------------------------------------
    649 __inline Void TRenInterpFilter::xCTI_Filter2DVerC (Pel* piSrc, Int iSrcStride,  Int iWidth, Int iHeight, Int iDstStride,  Int*& rpiDst, Int iMV)
     650template<UInt bitDepth>
     651__inline Void TRenInterpFilter<bitDepth>::xCTI_Filter2DVerC (Pel* piSrc, Int iSrcStride,  Int iWidth, Int iHeight, Int iDstStride,  Int*& rpiDst, Int iMV)
    650652{
    651653  Int*  piDst = rpiDst;
     
    774776}
    775777
    776 __inline Void TRenInterpFilter::xCTI_Filter2DHorC(Int* piSrc, Int iSrcStride,  Int iWidth, Int iHeight, Int iDstStride,  Pel*& rpiDst, Int iMV)
    777 {
    778   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
     778template<UInt bitDepth>
     779__inline Void TRenInterpFilter<bitDepth>::xCTI_Filter2DHorC(Int* piSrc, Int iSrcStride,  Int iWidth, Int iHeight, Int iDstStride,  Pel*& rpiDst, Int iMV)
     780{
    779781  Pel*  piDst    = rpiDst;
    780782  Int   iSum;
     
    791793        {
    792794          iSum         = xCTI_Filter_VI04_C_OCT0( piSrcTmp, 1 );
    793           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     795          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    794796          piSrcTmp++;
    795797        }
     
    807809        {
    808810          iSum         = xCTI_Filter_VI04_C_QUA0( piSrcTmp, 1 );
    809           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     811          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    810812          piSrcTmp++;
    811813        }
     
    823825        {
    824826          iSum         = xCTI_Filter_VI04_C_QUA1( piSrcTmp, 1 );
    825           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     827          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    826828          piSrcTmp++;
    827829        }
     
    839841        {
    840842          iSum         = xCTI_Filter_VI04_C_OCT1( piSrcTmp, 1 );
    841           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     843          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    842844          piSrcTmp++;
    843845        }
     
    855857        {
    856858          iSum         = xCTI_Filter_VI04_C_OCT2( piSrcTmp, 1 );
    857           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     859          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    858860          piSrcTmp++;
    859861        }
     
    871873        {
    872874          iSum         = xCTI_Filter_VI04_C_OCT3( piSrcTmp, 1 );
    873           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     875          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    874876          piSrcTmp++;
    875877        }
     
    887889        {
    888890          iSum      = xCTI_Filter_VIS04_C_HAL( piSrcTmp, 1 );
    889           piDst   [x ] = ClipC ((iSum +  2048) >>  12 );
     891          piDst   [x ] = xClipC ((iSum +  2048) >>  12 );
    890892          piSrcTmp++;
    891893        }
     
    902904}
    903905
    904 __inline Void TRenInterpFilter::xCTI_Filter1DVerC (Pel* piSrc, Int iSrcStride, Int iWidth, Int iHeight, Int iDstStride,  Pel*& rpiDst, Int iMV)
    905 {
    906   assert( g_bitDepthC == g_bitDepthY);  // ToDo: Update renderer to work with different luma/chroma bit depth
    907 
     906template<UInt bitDepth>
     907__inline Void TRenInterpFilter<bitDepth>::xCTI_Filter1DVerC (Pel* piSrc, Int iSrcStride, Int iWidth, Int iHeight, Int iDstStride,  Pel*& rpiDst, Int iMV)
     908{
    908909  Pel*  piDst = rpiDst;
    909910  Int   iSum;
     
    920921        {
    921922          iSum      = xCTI_Filter_VP04_C_OCT0( piSrcTmp,  iSrcStride );
    922           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     923          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    923924          piSrcTmp++;
    924925        }
     
    936937        {
    937938          iSum      = xCTI_Filter_VP04_C_QUA0( piSrcTmp,  iSrcStride );
    938           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     939          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    939940          piSrcTmp++;
    940941        }
     
    952953        {
    953954          iSum      = xCTI_Filter_VP04_C_QUA1( piSrcTmp,  iSrcStride );
    954           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     955          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    955956          piSrcTmp++;
    956957        }
     
    968969        {
    969970          iSum      = xCTI_Filter_VP04_C_OCT1( piSrcTmp,  iSrcStride );
    970           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     971          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    971972          piSrcTmp++;
    972973        }
     
    984985        {
    985986          iSum      = xCTI_Filter_VP04_C_OCT2( piSrcTmp,  iSrcStride );
    986           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     987          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    987988          piSrcTmp++;
    988989        }
     
    10001001        {
    10011002          iSum      = xCTI_Filter_VP04_C_OCT3( piSrcTmp,  iSrcStride );
    1002           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1003          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10031004          piSrcTmp++;
    10041005        }
     
    10161017        {
    10171018          iSum      = xCTI_Filter_VPS04_C_HAL( piSrcTmp, iSrcStride );
    1018           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1019          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10191020          piSrcTmp++;
    10201021        }
     
    10301031}
    10311032
    1032 __inline Void TRenInterpFilter::xCTI_Filter1DHorC(Pel* piSrc, Int iSrcStride, Int iWidth, Int iHeight, Int iDstStride, Pel*& rpiDst, Int iMV)
     1033template<UInt bitDepth>
     1034__inline Void TRenInterpFilter<bitDepth>::xCTI_Filter1DHorC(Pel* piSrc, Int iSrcStride, Int iWidth, Int iHeight, Int iDstStride, Pel*& rpiDst, Int iMV)
    10331035{
    10341036  Pel*  piDst    = rpiDst;
     
    10461048        {
    10471049          iSum         = xCTI_Filter_VP04_C_OCT0( piSrcTmp,  1 );
    1048           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1050          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10491051          piSrcTmp++;
    10501052        }
     
    10621064        {
    10631065          iSum         = xCTI_Filter_VP04_C_QUA0( piSrcTmp,  1 );
    1064           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1066          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10651067          piSrcTmp++;
    10661068        }
     
    10781080        {
    10791081          iSum         = xCTI_Filter_VP04_C_QUA1( piSrcTmp,  1 );
    1080           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1082          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10811083          piSrcTmp++;
    10821084        }
     
    10941096        {
    10951097          iSum         = xCTI_Filter_VP04_C_OCT1( piSrcTmp,  1 );
    1096           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1098          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    10971099          piSrcTmp++;
    10981100        }
     
    11101112        {
    11111113          iSum         = xCTI_Filter_VP04_C_OCT2( piSrcTmp,  1 );
    1112           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1114          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    11131115          piSrcTmp++;
    11141116        }
     
    11261128        {
    11271129          iSum         = xCTI_Filter_VP04_C_OCT3( piSrcTmp,  1 );
    1128           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1130          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    11291131          piSrcTmp++;
    11301132        }
     
    11421144        {
    11431145          iSum         = xCTI_Filter_VPS04_C_HAL( piSrcTmp,  1 );
    1144           piDst[x ] = ClipC ((iSum +  32) >>  6 );
     1146          piDst[x ] = xClipC ((iSum +  32) >>  6 );
    11451147          piSrcTmp++;
    11461148        }
     
    11561158}
    11571159
    1158 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_OCT0( Pel* pSrc,  Int iStride )
     1160template<UInt bitDepth>
     1161__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_OCT0( Pel* pSrc,  Int iStride )
    11591162{// {  -3,  60,   8,   -1,} // 1/8
    11601163  Int iSum, iIdx = 0;
     
    11681171  return iSum;
    11691172}
    1170 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_OCT0( Int* pSrc, Int iStride )
     1173template<UInt bitDepth>
     1174__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_OCT0( Int* pSrc, Int iStride )
    11711175{ // {  -3,  60,   8,   -1,} //1/8
    11721176  Int iSum, iIdx = 0;
     
    11801184  return iSum;
    11811185}
    1182 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_QUA0( Pel* pSrc,  Int iStride )
     1186template<UInt bitDepth>
     1187__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_QUA0( Pel* pSrc,  Int iStride )
    11831188{// {  -4,  54,  16,   -2,} // 1/4
    11841189  Int iSum, iIdx = 0;
     
    11921197  return iSum;
    11931198}
    1194 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_QUA0( Int* pSrc, Int iStride )
     1199
     1200template<UInt bitDepth>
     1201__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_QUA0( Int* pSrc, Int iStride )
    11951202{ // {  -4,  54,  16,   -2,} //1/4
    11961203  Int iSum, iIdx = 0;
     
    12041211  return iSum;
    12051212}
    1206 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_QUA1( Pel* pSrc,  Int iStride )
     1213template<UInt bitDepth>
     1214__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_QUA1( Pel* pSrc,  Int iStride )
    12071215{// {  -2,  16,  54,   -4,}// 3/4
    12081216  Int iSum, iIdx = 0;
     
    12161224  return iSum;
    12171225}
    1218 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_QUA1( Int* pSrc, Int iStride )
     1226
     1227template<UInt bitDepth>
     1228__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_QUA1( Int* pSrc, Int iStride )
    12191229{// {  -2,  16,  54,   -4,}// 3/4
    12201230  Int iSum, iIdx = 0;
     
    12281238  return iSum;
    12291239}
    1230 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_OCT1( Pel* pSrc,  Int iStride )
     1240
     1241template<UInt bitDepth>
     1242__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_OCT1( Pel* pSrc,  Int iStride )
    12311243{// {  -5,  46,  27,   -4,} // 3/8
    12321244  Int iSum, iIdx = 0;
     
    12411253  return iSum;
    12421254}
    1243 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_OCT1( Int* pSrc, Int iStride )
     1255
     1256template<UInt bitDepth>
     1257__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_OCT1( Int* pSrc, Int iStride )
    12441258{ // {  -5,  46,  27,   -4,} //3/8
    12451259  Int iSum, iIdx = 0;
     
    12541268  return iSum;
    12551269}
    1256 __inline Int TRenInterpFilter::xCTI_Filter_VPS04_C_HAL( Pel* pSrc, Int iStride )
     1270
     1271template<UInt bitDepth>
     1272__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VPS04_C_HAL( Pel* pSrc, Int iStride )
    12571273{
    12581274  // {  -4,  36,  36,   -4,}, // 1/2
     
    12651281  return iSum;
    12661282}
    1267 __inline Int TRenInterpFilter::xCTI_Filter_VIS04_C_HAL( Int* pSrc, Int iStride )
     1283
     1284template<UInt bitDepth>
     1285__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VIS04_C_HAL( Int* pSrc, Int iStride )
    12681286{
    12691287  // {  -4,  36,  36,   -4,}, //1/2
     
    12761294  return iSum;
    12771295}
    1278 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_OCT2( Pel* pSrc,  Int iStride )
     1296
     1297template<UInt bitDepth>
     1298__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_OCT2( Pel* pSrc,  Int iStride )
    12791299{// {  -4,  27,  46,   -5,}, // 5/8
    12801300  Int iSum, iIdx = 0;
     
    12891309  return iSum;
    12901310}
    1291 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_OCT2( Int* pSrc, Int iStride )
     1311
     1312template<UInt bitDepth>
     1313__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_OCT2( Int* pSrc, Int iStride )
    12921314{ // {  -4,  27,  46,   -5,}, // 5/8
    12931315  Int iSum, iIdx = 0;
     
    13021324  return iSum;
    13031325}
    1304 __inline Int TRenInterpFilter::xCTI_Filter_VP04_C_OCT3( Pel* pSrc,  Int iStride )
     1326
     1327template<UInt bitDepth>
     1328__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VP04_C_OCT3( Pel* pSrc,  Int iStride )
    13051329{// {  -1,   8,  60,   -3,} // 7/8
    13061330  Int iSum, iIdx = 0;
     
    13141338  return iSum;
    13151339}
    1316 __inline Int TRenInterpFilter::xCTI_Filter_VI04_C_OCT3( Int* pSrc, Int iStride )
     1340
     1341template<UInt bitDepth>
     1342__inline Int TRenInterpFilter<bitDepth>::xCTI_Filter_VI04_C_OCT3( Int* pSrc, Int iStride )
    13171343{ // {  -1,   8,  60,   -3,} // 7/8
    13181344  Int iSum, iIdx = 0;
     
    13261352  return iSum;
    13271353}
    1328 #endif // H_3D
     1354
     1355#endif // NH_3D
    13291356#endif // __TRENINTERP__
Note: See TracChangeset for help on using the changeset viewer.