Index: source/Lib/TLibCommon/CommonDef.h
===================================================================
--- source/Lib/TLibCommon/CommonDef.h	(revision 435)
+++ source/Lib/TLibCommon/CommonDef.h	(working copy)
@@ -218,10 +218,11 @@
 static const Int  LM_SYMBOL_NUM = (2 + JVET_E0077_MMLM + LM_FILTER_NUM);
 #endif
 
+static const Int ZERO_OUT_TH =                                    32;  ///< threshold of zeor-out transform
 
 #if COM16_C806_T64
 #if JVET_C0024_QTBT
-static const Int MLS_GRP_NUM =                                    1024; ///< Max number of coefficient groups, max(16, 256)
+static const Int MLS_GRP_NUM =                                   1024; ///< Max number of coefficient groups, max(16, 256)
 #else
 static const Int MLS_GRP_NUM =                                    256; ///< Max number of coefficient groups, max(16, 256)
 #endif
@@ -238,10 +239,7 @@
 
 #if JVET_C0046_ZO_ASSERT
 static const Int TH_LOG2TBAREASIZE =                               10; ///< Threshold for zeroing out
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-static const Int JVET_C0046_ZERO_OUT_TH =                          32;
 #endif
-#endif
 
 #if ADAPTIVE_QP_SELECTION
 static const Int ARL_C_PRECISION =                                  7; ///< G382: 7-bit arithmetic precision
@@ -474,10 +472,6 @@
 static const Double PBINTRA_RATIO     =                             1.1;
 #endif
 
-#if JVET_C0024_ZERO_OUT_FIX
-static const Int    JVET_C0024_ZERO_OUT_TH =                        32;
-#endif
-
 //QTBT high level parameters
 //for I slice luma CTB configuration para.
 static const Int    MAX_BT_DEPTH  =                                 4;      ///<  <=7
Index: source/Lib/TLibCommon/TComTrQuant.cpp
===================================================================
--- source/Lib/TLibCommon/TComTrQuant.cpp	(revision 435)
+++ source/Lib/TLibCommon/TComTrQuant.cpp	(working copy)
@@ -2162,15 +2162,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT2_B64(TCoeff *src, TCoeff *dst, Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                          , Int use
 #endif
                          )
-#else
-void fastForwardDCT2_B64(TCoeff *src, TCoeff *dst, Int shift, Int line, Int zo, Int use)
-#endif
 {
   Int rnd_factor = 1<<(shift-1);
   const Int uiTrSize = 64;
@@ -2189,12 +2185,8 @@
   Int EEEEE[2],EEEEO[2];
   TCoeff *tmp = dst;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   Bool zo = iSkipLine2 >= 32;
   for (j=0; j<line-iSkipLine; j++)
-#else
-  for (j=0; j<(line>>(2==zo?1:0)); j++)
-#endif
   {    
     /* E and O*/
     for (k=0;k<32;k++)
@@ -2265,7 +2257,6 @@
     dst ++;
   }
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   if( iSkipLine )
@@ -2282,18 +2273,6 @@
     dst = tmp + line*cutoff;
     memset( dst, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if( zo==2 )
-  {
-    for (j=0; j<uiTrSize/2; j++)
-    {
-      memset( dst, 0, sizeof(TCoeff)*uiTrSize/2 );
-      dst += uiTrSize;
-    }
-  }
-  dst = tmp + uiTrSize*uiTrSize/2;
-  memset( dst, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-#endif
 }
 
 
@@ -2303,15 +2282,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT2_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2,  
 #if JVET_D0077_TRANSFORM_OPT
                          Int use,
 #endif
                          const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   Int rnd_factor = 1<<(shift-1);
   const Int uiTrSize = 64;
@@ -2328,12 +2303,8 @@
   Int EEE[8],EEO[8];
   Int EEEE[4],EEEO[4];
   Int EEEEE[2],EEEEO[2];
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   Bool zo = iSkipLine2 >= 32;
   for (j=0; j<line-iSkipLine; j++)
-#else
-  for (j=0; j<(line>>(2==zo?1:0)); j++)
-#endif
   {    
     /* Utilizing symmetry properties to the maximum to minimize the number of multiplications */
     for (k=0;k<32;k++)
@@ -2400,23 +2371,17 @@
     coeff ++;
     block += uiTrSize;
   }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
-#endif
 }
 
 
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT2_B128(TCoeff *src, TCoeff *dst, Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                           , Int use
 #endif
                           )
-#else
-void fastForwardDCT2_B128(TCoeff *src, TCoeff *dst, Int shift, Int line, Int zo, Int use)
-#endif
 {
   Int j,k;
   Int E[64],O[64];
@@ -2428,12 +2393,8 @@
   Int add = 1<<(shift-1);
   const TMatrixCoeff (*iT)[128] = g_aiTr128[DCT2];
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   TCoeff* tmp = dst;
   for (j=0; j<line-iSkipLine; j++)
-#else
-  for (j=0; j<line; j++)
-#endif
   {    
     /* E and O*/
     for (k=0;k< 64;k++)
@@ -2648,7 +2609,6 @@
     src += 128;
     dst ++;
   }
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const UInt uiTrSize = 128;
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
@@ -2666,17 +2626,12 @@
     dst = tmp + line*cutoff;
     memset( dst, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#endif
 }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT2_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2,  
 #if JVET_D0077_TRANSFORM_OPT 
                           Int use,
 #endif
                           const TCoeff outputMinimum, const TCoeff outputMaximum)
-#else
-void fastInverseDCT2_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)
-#endif
 {
   Int j,k;
   Int E[64],O[64];
@@ -2688,18 +2643,13 @@
   Int add = 1<<(shift-1);
   const TMatrixCoeff (*iT)[128] = g_aiTr128[DCT2];
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   Bool c1 = iSkipLine2 >= 96 ;
   Bool c2 = iSkipLine2 >= 64 ;
   Bool c3 = iSkipLine2 >= 32 ;
 
   for (j=0; j<line - iSkipLine; j++)
-#else
-  for (j=0; j<line; j++)
-#endif
   {    
     /* Utilizing symmetry properties to the maximum to minimize the number of multiplications */
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
     if (c1)
     {
       for (k=0;k<64;k++) //+2
@@ -2882,7 +2832,6 @@
     }
     else
     {
-#endif
       for (k=0;k<64;k++) //+2
       {
         O[k] = iT[ 1][k]*coeff[ line  ] 
@@ -2988,10 +2937,7 @@
         + iT[126][k]*coeff[ 126*line ] 
         ;
       }
-
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
     }
-#endif
 
     for (k=0;k<16;k++) //+8
     {
@@ -3086,9 +3032,7 @@
     coeff ++;
     block += 128;
   }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   memset(block, 0, 128*iSkipLine*sizeof(TCoeff));
-#endif
 }
 #endif
 // Fast DST Algorithm. Full matrix multiplication for DST and Fast DST algorithm 
@@ -3615,15 +3559,11 @@
 
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDST7_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                          , Int use
 #endif
                          )  // input block, output coeff
-#else
-void fastForwardDST7_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -3632,7 +3572,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -3667,61 +3606,6 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DST7][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DST7][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
 #ifdef __GNUC__
@@ -3730,15 +3614,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDST7_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                          Int use,
 #endif
                          const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDST7_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -3767,17 +3647,11 @@
     memset(block, 0, (iSkipLine<<6)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 32;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -3794,11 +3668,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -3814,21 +3684,15 @@
     }
   }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDST7_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                           , Int use
 #endif
                           )  // input block, output coeff
-#else
-void fastForwardDST7_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -3837,7 +3701,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -3872,61 +3735,6 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DST7][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DST7][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
 #ifdef __GNUC__
@@ -3935,15 +3743,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDST7_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                           Int use,
 #endif
                           const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDST7_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -3973,17 +3777,11 @@
     memset(block, 0, (iSkipLine<<7)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 64;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4000,11 +3798,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4019,10 +3813,8 @@
       coeff++;
     }
   }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 #endif
 
@@ -4539,15 +4331,11 @@
 }
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT8_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                          , Int use
 #endif
                          )  // input block, output coeff
-#else
-void fastForwardDCT8_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -4556,7 +4344,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -4591,61 +4378,6 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DCT8][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DCT8][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
 #ifdef __GNUC__
@@ -4654,15 +4386,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT8_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                          Int use,
 #endif
                          const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDCT8_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -4692,17 +4420,11 @@
     memset(block, 0, (iSkipLine<<6)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 32;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4719,11 +4441,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4738,21 +4456,15 @@
       coeff++;
     }
   }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT8_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                           , Int use
 #endif
                           )  // input block, output coeff
-#else
-void fastForwardDCT8_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -4761,7 +4473,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -4796,61 +4507,6 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DCT8][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DCT8][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
 #ifdef __GNUC__
@@ -4859,15 +4515,11 @@
 __attribute__((optimize("no-tree-vrp")))
 #endif
 #endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT8_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                           Int use,
 #endif
                           const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDCT8_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -4897,17 +4549,11 @@
     memset(block, 0, (iSkipLine<<7)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 64;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4924,11 +4570,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -4944,10 +4586,8 @@
     }
   }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 #endif
 
@@ -5383,15 +5023,11 @@
 }
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT5_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                          , Int use
 #endif
                          )  // input block, output coeff
-#else
-void fastForwardDCT5_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -5400,7 +5036,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -5435,72 +5070,13 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DCT5][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DCT5][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT5_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                          Int use,
 #endif
                          const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDCT5_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -5530,17 +5106,11 @@
     memset(block, 0, (iSkipLine<<6)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 32;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -5557,11 +5127,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -5577,21 +5143,15 @@
     }
   }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDCT5_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                           , Int use
 #endif
                           )  // input block, output coeff
-#else
-void fastForwardDCT5_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -5600,7 +5160,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -5635,72 +5194,13 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DCT5][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DCT5][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDCT5_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                           Int use,
 #endif
                           const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDCT5_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -5730,17 +5230,11 @@
     memset(block, 0, (iSkipLine<<7)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 64;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -5757,11 +5251,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -5777,10 +5267,8 @@
     }
   }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 #endif
 
@@ -6194,15 +5682,11 @@
 #endif
 }
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDST1_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                          , Int use
 #endif
                          )  // input block, output coeff
-#else
-void fastForwardDST1_B64(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -6211,7 +5695,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -6246,72 +5729,13 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DST1][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr64[DST1][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDST1_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                          Int use,
 #endif
                          const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDST1_B64(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -6341,17 +5765,11 @@
     memset(block, 0, (iSkipLine<<6)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 32;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -6368,11 +5786,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -6388,21 +5802,15 @@
     }
   }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastForwardDST1_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2
 #if JVET_D0077_TRANSFORM_OPT
                           , Int use
 #endif
                           )  // input block, output coeff
-#else
-void fastForwardDST1_B128(TCoeff *block, TCoeff *coeff,Int shift, Int line, Int zo, Int use)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -6411,7 +5819,6 @@
   const TMatrixCoeff *iT;
   TCoeff *pCoef;
 
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
   const Int  reducedLine = line - iSkipLine;
   const Int  cutoff = uiTrSize - iSkipLine2;
   for (i=0; i<reducedLine; i++)
@@ -6446,72 +5853,13 @@
     pCoef = coeff + line*cutoff;
     memset( pCoef, 0, sizeof(TCoeff)*line*iSkipLine2 );
   }
-#else
-  if ( zo )
-  {
-    TCoeff *tmp = coeff;
-    for (i=0; i<(line>>(zo-1)); i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DST1][0];
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        iT += uiTrSize;
-        pCoef += line;
-      }
-      block+=uiTrSize;
-    }
-
-    coeff += (line>>(zo-1));
-    if( zo==2 )
-    {
-      for (j=0; j<uiTrSize/2; j++)
-      {
-        memset( coeff, 0, sizeof(TCoeff)*uiTrSize/2 );
-        coeff += uiTrSize;
-      }
-    }
-    coeff = tmp + uiTrSize*uiTrSize/2;
-    memset( coeff, 0, sizeof(TCoeff)*uiTrSize*uiTrSize/2 );
-  }
-  else
-  {
-    for (i=0; i<line; i++)
-    {
-      pCoef = coeff;
-      iT = g_aiTr128[DST1][0];
-      for (j=0; j<uiTrSize; j++)
-      {
-        iSum = 0;
-        for (k=0; k<uiTrSize; k++)
-        {
-          iSum += block[k]*iT[k];
-        }
-        pCoef[i] = (iSum + rnd_factor)>>shift;
-        pCoef += line;
-        iT += uiTrSize;
-      }
-      block += uiTrSize;
-    }
-  }
-#endif
 }
 
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 void fastInverseDST1_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, 
 #if JVET_D0077_TRANSFORM_OPT
                           Int use,
 #endif
                           const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#else
-void fastInverseDST1_B128(TCoeff *coeff, TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum)  // input block, output coeff
-#endif
 {
   Int i, j, k, iSum;
   Int rnd_factor = 1<<(shift-1);
@@ -6541,17 +5889,11 @@
     memset(block, 0, (iSkipLine<<7)*sizeof(TCoeff));
   }
 #else
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   Bool zo = iSkipLine2 >= 64;
-#endif
 
   if ( zo )
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<(line>>(zo-1)); i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -6568,11 +5910,7 @@
   }
   else
   {
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
     for (i=0; i<line-iSkipLine; i++)
-#else
-    for (i=0; i<line; i++)
-#endif
     {
       for (j=0; j<uiTrSize; j++)
       {
@@ -6587,10 +5925,8 @@
       coeff++;
     }
   }
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
   memset(block, 0, uiTrSize*iSkipLine*sizeof(TCoeff));
 #endif
-#endif
 }
 #endif
 
@@ -6617,18 +5953,9 @@
   const Int shift_2nd        = (g_aucConvertToBit[iHeight] + MIN_CU_LOG2) + TRANSFORM_MATRIX_SHIFT + COM16_C806_TRANS_PREC;
   const UInt nLog2WidthMinus1 = g_aucConvertToBit[iWidth] + MIN_CU_LOG2 - 1;  //nLog2WidthMinus1, since transform start from 2-point
   const UInt nLog2HeightMinus1 = g_aucConvertToBit[iHeight] + MIN_CU_LOG2 - 1;  //nLog2HeightMinus1, since transform start from 2-point
-#if JVET_C0024_ZERO_OUT_FIX
-  Int iSkipWidth = (iWidth > JVET_C0024_ZERO_OUT_TH ? iWidth-JVET_C0024_ZERO_OUT_TH : 0);
-  Int iSkipHeight = (iHeight > JVET_C0024_ZERO_OUT_TH ? iHeight-JVET_C0024_ZERO_OUT_TH : 0);
+  Int iSkipWidth = (iWidth > ZERO_OUT_TH ? iWidth-ZERO_OUT_TH : 0);
+  Int iSkipHeight = (iHeight > ZERO_OUT_TH ? iHeight-ZERO_OUT_TH : 0);
 #else
-#if JVET_D0077_TRANSFORM_OPT
-  Int iSkipWidth = 0;
-  Int iSkipHeight = 0;
-#else
-  const Bool bZeroOut        = 0;
-#endif
-#endif
-#else
   const Int shift_1st        = ((g_aucConvertToBit[iWidth] + 2) +  bitDepth + TRANSFORM_MATRIX_SHIFT) - maxLog2TrDynamicRange + COM16_C806_TRANS_PREC;
   const Int shift_2nd        = (g_aucConvertToBit[iHeight] + 2) + TRANSFORM_MATRIX_SHIFT + COM16_C806_TRANS_PREC;
   const UInt nLog2SizeMinus2 = g_aucConvertToBit[iWidth];
@@ -6657,7 +5984,6 @@
   }
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 #if JVET_D0077_TRANSFORM_OPT
   fastFwdTrans[nTrIdxHor][nLog2WidthMinus1]( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 1 );
   fastFwdTrans[nTrIdxVer][nLog2HeightMinus1]( tmp, coeff, shift_2nd,  iWidth, iSkipWidth, iSkipHeight, 1 );
@@ -6681,10 +6007,6 @@
   }
 #endif
 #else
-  fastFwdTrans[nTrIdxHor][nLog2WidthMinus1]( block, tmp, shift_1st, iHeight, bZeroOut?1:0, 1 );
-  fastFwdTrans[nTrIdxVer][nLog2HeightMinus1]( tmp, coeff, shift_2nd,  iWidth, bZeroOut?2:0, 1 );
-#endif
-#else
   fastFwdTrans[nTrIdxHor][nLog2SizeMinus2]( block, tmp, shift_1st, iHeight, bZeroOut?1:0, 1 );
   fastFwdTrans[nTrIdxVer][nLog2SizeMinus2]( tmp, coeff, shift_2nd,  iWidth, bZeroOut?2:0, 1 );
 #endif
@@ -6746,14 +6068,8 @@
   assert(shift_2nd >= 0);
 
   TCoeff tmp[ MAX_TU_SIZE * MAX_TU_SIZE ];
-#if JVET_C0024_ZERO_OUT_FIX
-  Int iSkipWidth = (iWidth > JVET_C0024_ZERO_OUT_TH ? iWidth-JVET_C0024_ZERO_OUT_TH : 0);
-  Int iSkipHeight = (iHeight > JVET_C0024_ZERO_OUT_TH ? iHeight-JVET_C0024_ZERO_OUT_TH : 0);
-#endif
-#if JVET_D0077_TRANSFORM_OPT && !JVET_C0024_ZERO_OUT_FIX
-  Int iSkipWidth = 0;
-  Int iSkipHeight = 0;
-#endif
+  Int iSkipWidth = (iWidth > ZERO_OUT_TH ? iWidth-ZERO_OUT_TH : 0);
+  Int iSkipHeight = (iHeight > ZERO_OUT_TH ? iHeight-ZERO_OUT_TH : 0);
   switch (iWidth)   
   {
 #if JVET_C0024_QTBT
@@ -6791,7 +6107,6 @@
 #endif
 #if COM16_C806_T64
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 #if JVET_D0077_TRANSFORM_OPT
     case 64:    fastForwardDCT2_B64( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
     case 128:   fastForwardDCT2_B128( block, tmp, shift_1st, iHeight, 0, iSkipWidth, 0 );  break;
@@ -6800,10 +6115,6 @@
     case 128:   fastForwardDCT2_B128( block, tmp, shift_1st, iHeight, 0, iSkipWidth );  break;
 #endif
 #else
-    case 64:    fastForwardDCT2_B64( block, tmp, shift_1st, iHeight, 0, 0 );  break;
-    case 128:   fastForwardDCT2_B128( block, tmp, shift_1st, iHeight, 0, 0 );  break;
-#endif
-#else
     case 64:    fastForwardDCT2_B64( block, tmp, shift_1st, iHeight, 1, 0 );  break;
 #endif
 #endif
@@ -6848,7 +6159,6 @@
 #endif
 #if COM16_C806_T64
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 #if JVET_D0077_TRANSFORM_OPT
     case 64:    fastForwardDCT2_B64( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
     case 128:   fastForwardDCT2_B128( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight, 0 );  break;
@@ -6857,10 +6167,6 @@
     case 128:   fastForwardDCT2_B128( tmp, coeff, shift_2nd, iWidth, iSkipWidth, iSkipHeight );  break;
 #endif
 #else
-    case 64:    fastForwardDCT2_B64( tmp, coeff, shift_2nd, iWidth, 0, 0 );  break;
-    case 128:   fastForwardDCT2_B128( tmp, coeff, shift_2nd, iWidth, 0, 0 );  break;
-#endif
-#else
     case 64:    fastForwardDCT2_B64( tmp, coeff, shift_2nd, iWidth, 2, 0 );  break;
 #endif
 #endif
@@ -6896,9 +6202,6 @@
 #if JVET_C0024_QTBT
   const UInt nLog2WidthMinus1 = g_aucConvertToBit[iWidth] + MIN_CU_LOG2 - 1;  //nLog2WidthMinus1, since transform start from 2-point
   const UInt nLog2HeightMinus1 = g_aucConvertToBit[iHeight] + MIN_CU_LOG2 - 1;  //nLog2HeightMinus1, since transform start from 2-point
-#if !JVET_C0024_ITSKIP && !JVET_C0024_ZERO_OUT_FIX && !JVET_D0077_TRANSFORM_OPT
-  const Bool bZeroOut        = 0;
-#endif
 #else
   const UInt nLog2SizeMinus2 = g_aucConvertToBit[iWidth];
   const Bool bZeroOut        = ( ucMode == INTER_MODE_IDX
@@ -6925,23 +6228,20 @@
   }
 
 #if JVET_C0024_QTBT
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
-#if JVET_C0024_ZERO_OUT_FIX
 #if JVET_C0024_ITSKIP
   // uiSkipWidth and uiSkipHeight (initilized as 0) may not be set at encoder side, need to be calculated  
-  if( iWidth > JVET_C0024_ZERO_OUT_TH && uiSkipWidth == 0 )
+  if( iWidth > ZERO_OUT_TH && uiSkipWidth == 0 )
   {
-    uiSkipWidth = iWidth - JVET_C0024_ZERO_OUT_TH;
+    uiSkipWidth = iWidth - ZERO_OUT_TH;
   }
-  if( iHeight > JVET_C0024_ZERO_OUT_TH && uiSkipHeight == 0 )
+  if( iHeight > ZERO_OUT_TH && uiSkipHeight == 0 )
   {
-    uiSkipHeight = iHeight - JVET_C0024_ZERO_OUT_TH;
+    uiSkipHeight = iHeight - ZERO_OUT_TH;
   }
 #else
-  UInt uiSkipWidth = (iWidth > JVET_C0024_ZERO_OUT_TH ? iWidth - JVET_C0024_ZERO_OUT_TH : 0);
-  UInt uiSkipHeight = (iHeight > JVET_C0024_ZERO_OUT_TH ? iHeight - JVET_C0024_ZERO_OUT_TH : 0);
+  UInt uiSkipWidth = (iWidth > ZERO_OUT_TH ? iWidth - ZERO_OUT_TH : 0);
+  UInt uiSkipHeight = (iHeight > ZERO_OUT_TH ? iHeight - ZERO_OUT_TH : 0);
 #endif
-#endif
 
 #if JVET_D0077_TRANSFORM_OPT
   fastInvTrans[nTrIdxVer][nLog2HeightMinus1]( coeff, tmp, shift_1st,  iWidth, uiSkipWidth, uiSkipHeight, 1, clipMinimum, clipMaximum );
@@ -6949,8 +6249,8 @@
 #else
   if (nLog2HeightMinus1 + 1 >= 6)
   {
-#if JVET_C0024_ITSKIP && (JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT)
-    assert( uiSkipHeight >= iHeight - JVET_C0024_ZERO_OUT_TH );
+#if JVET_C0024_ITSKIP && (ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT)
+    assert( uiSkipHeight >= iHeight - ZERO_OUT_TH );
 #endif
     fastInvTrans[nTrIdxVer][nLog2HeightMinus1]( coeff, tmp, shift_1st,  iWidth, uiSkipWidth, uiSkipHeight, clipMinimum, clipMaximum );
   }
@@ -6961,8 +6261,8 @@
 
   if (nLog2WidthMinus1 + 1>=6)
   {
-#if JVET_C0024_ITSKIP && (JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT)
-    assert( uiSkipWidth >= iWidth - JVET_C0024_ZERO_OUT_TH );
+#if JVET_C0024_ITSKIP && JVET_D0077_TRANSFORM_OPT
+    assert( uiSkipWidth >= iWidth - ZERO_OUT_TH );
 #endif
     fastInvTrans[nTrIdxHor][nLog2WidthMinus1]( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, clipMinimum, clipMaximum );
   }
@@ -6972,10 +6272,6 @@
   }
 #endif
 #else
-  fastInvTrans[nTrIdxVer][nLog2HeightMinus1]( coeff, tmp, shift_1st,  iWidth, bZeroOut?2:0, 1, clipMinimum, clipMaximum );
-  fastInvTrans[nTrIdxHor][nLog2WidthMinus1]( tmp, block, shift_2nd, iHeight, bZeroOut?1:0, 1, clipMinimum, clipMaximum );
-#endif
-#else
   fastInvTrans[nTrIdxVer][nLog2SizeMinus2]( coeff, tmp, shift_1st,  iWidth, bZeroOut?2:0, 1, clipMinimum, clipMaximum );
   fastInvTrans[nTrIdxHor][nLog2SizeMinus2]( tmp, block, shift_2nd, iHeight, bZeroOut?1:0, 1, clipMinimum, clipMaximum );
 #endif
@@ -7034,9 +6330,9 @@
   assert(shift_2nd >= 0);
 
   TCoeff tmp[MAX_TU_SIZE * MAX_TU_SIZE];
-#if (JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT) && !JVET_C0024_ITSKIP
-  UInt uiSkipWidth = (iWidth > JVET_C0024_ZERO_OUT_TH ? iWidth - JVET_C0024_ZERO_OUT_TH : 0);
-  UInt uiSkipHeight = (iHeight > JVET_C0024_ZERO_OUT_TH ? iHeight - JVET_C0024_ZERO_OUT_TH : 0);
+#if JVET_D0077_TRANSFORM_OPT && !JVET_C0024_ITSKIP
+  UInt uiSkipWidth = (iWidth > ZERO_OUT_TH ? iWidth - ZERO_OUT_TH : 0);
+  UInt uiSkipHeight = (iHeight > ZERO_OUT_TH ? iHeight - ZERO_OUT_TH : 0);
 #endif
 
   switch (iHeight)
@@ -7077,7 +6373,6 @@
 #endif
 #if COM16_C806_T64
 #if JVET_C0024_QTBT
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 #if JVET_D0077_TRANSFORM_OPT
     case 64: fastInverseDCT2_B64( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum); break;
     case 128: fastInverseDCT2_B128( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, 0, clipMinimum, clipMaximum); break;
@@ -7086,10 +6381,6 @@
     case 128: fastInverseDCT2_B128( coeff, tmp, shift_1st, iWidth, uiSkipWidth, uiSkipHeight, clipMinimum, clipMaximum); break;
 #endif
 #else
-    case 64: fastInverseDCT2_B64( coeff, tmp, shift_1st, iWidth, 0, 0, clipMinimum, clipMaximum); break;
-    case 128: fastInverseDCT2_B128( coeff, tmp, shift_1st, iWidth, 0, 0, clipMinimum, clipMaximum); break;
-#endif
-#else
     case 64: fastInverseDCT2_B64( coeff, tmp, shift_1st, iWidth, 2, 0, clipMinimum, clipMaximum); break;
 #endif
 #endif
@@ -7135,7 +6426,6 @@
 #endif
 #if COM16_C806_T64
 #if JVET_C0024_QTBT
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX || JVET_D0077_TRANSFORM_OPT
 #if JVET_D0077_TRANSFORM_OPT
     case 64: fastInverseDCT2_B64( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
     case 128: fastInverseDCT2_B128( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
@@ -7144,10 +6434,6 @@
     case 128: fastInverseDCT2_B128( tmp, block, shift_2nd, iHeight, 0, uiSkipWidth, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
 #endif
 #else
-    case 64: fastInverseDCT2_B64( tmp, block, shift_2nd, iHeight, 0, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
-    case 128: fastInverseDCT2_B128( tmp, block, shift_2nd, iHeight, 0, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
-#endif
-#else
     case 64: fastInverseDCT2_B64( tmp, block, shift_2nd, iHeight, 1, 0, std::numeric_limits<Pel>::min(), std::numeric_limits<Pel>::max()); break;
 #endif
 #endif
Index: source/Lib/TLibCommon/TComTrQuant.h
===================================================================
--- source/Lib/TLibCommon/TComTrQuant.h	(revision 435)
+++ source/Lib/TLibCommon/TComTrQuant.h	(working copy)
@@ -157,17 +157,9 @@
 #if JVET_C0024_QTBT
 void fastForwardDCT2_B2 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT2_B2 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#if JVET_C0024_ZERO_OUT_FIX 
 void fastForwardDCT2_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
-#else
-void fastForwardDCT2_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-#endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
 void fastInverseDCT2_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastInverseDCT2_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #endif
-#endif
 void fastForwardDCT2_B4 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT2_B4 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDCT2_B8 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
@@ -176,16 +168,8 @@
 void fastInverseDCT2_B16(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDCT2_B32(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT2_B32(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#if JVET_C0024_ZERO_OUT_FIX
 void fastForwardDCT2_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
-#else
-void fastForwardDCT2_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-#endif
-#if JVET_C0024_ITSKIP || JVET_C0024_ZERO_OUT_FIX
 void fastInverseDCT2_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastInverseDCT2_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#endif
 
 void fastForwardDST7_B4 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDST7_B4 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
@@ -197,18 +181,11 @@
 void fastForwardDST7_B32(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDST7_B32(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX
 void fastForwardDST7_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDST7_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDST7_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDST7_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastForwardDST7_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDST7_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDST7_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDST7_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #endif
-#endif
 
 void fastForwardDCT5_B4 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT5_B4 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
@@ -219,18 +196,11 @@
 void fastForwardDCT5_B32(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT5_B32(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX
 void fastForwardDCT5_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDCT5_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDCT5_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDCT5_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastForwardDCT5_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDCT5_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT5_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDCT5_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #endif
-#endif
 
 void fastForwardDCT8_B4 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT8_B4 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
@@ -241,18 +211,11 @@
 void fastForwardDCT8_B32(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDCT8_B32(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX
 void fastForwardDCT8_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDCT8_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDCT8_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDCT8_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastForwardDCT8_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDCT8_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDCT8_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDCT8_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #endif
-#endif
 
 void fastForwardDST1_B4 (TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDST1_B4 (TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
@@ -263,18 +226,11 @@
 void fastForwardDST1_B32(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
 void fastInverseDST1_B32(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #if JVET_C0024_QTBT
-#if JVET_C0024_ZERO_OUT_FIX
 void fastForwardDST1_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDST1_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
 void fastForwardDST1_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int iSkipLine, Int iSkipLine2);
 void fastInverseDST1_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int iSkipLine, Int iSkipLine2, const TCoeff outputMinimum, const TCoeff outputMaximum);
-#else
-void fastForwardDST1_B64(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDST1_B64(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
-void fastForwardDST1_B128(TCoeff *block,TCoeff *coeff,Int shift, Int line, Int zo, Int use);
-void fastInverseDST1_B128(TCoeff *coeff,TCoeff *block,Int shift, Int line, Int zo, Int use, const TCoeff outputMinimum, const TCoeff outputMaximum);
 #endif
-#endif
 
 typedef void FwdTrans (TCoeff *, TCoeff *, Int, Int, Int, Int);
 typedef void InvTrans (TCoeff *, TCoeff *, Int, Int, Int, Int, const TCoeff, const TCoeff);
Index: source/Lib/TLibCommon/TypeDef.h
===================================================================
--- source/Lib/TLibCommon/TypeDef.h	(revision 435)
+++ source/Lib/TLibCommon/TypeDef.h	(working copy)
@@ -94,7 +94,6 @@
 #define JVET_C0024_CTU_256                                0  ///< support CTU 256 for QTBT, force QT split for CU 256x256 
 #define JVET_C0024_ENCODER_OVERFLOW_FIX                   1  ///< fix the encoder overflow in the case of very high QP
 #define JVET_C0024_DELTA_QP_FIX                           1  ///< support delta QP signaling in QTBT
-#define JVET_C0024_ZERO_OUT_FIX                           1
 
 // for fast algorithms
 #define JVET_C0024_AMAX_BT                                1  ///< slice level adaptive maximum BT size (encoder only)
@@ -197,11 +196,8 @@
 #if JVET_C0046_ZO_ASSERT
 #define JVET_C0046_ZO_ASSERT_CODED_SBK_FLAG               1  ///< if (iCGX > TH1 || iCGY > TH1) and (no TS && no TQBypass), then coded_sbk_flag(iCGX, iCGY) shall be 0.
 #define JVET_C0046_ZO_ASSERT_LAST_COEF                    1  ///< if (posLastX>TH2 || posLastY>TH2) and (no TS && no TQBypass), then last coef (x,y) shall be in the low frequency domain.
-#if !JVET_C0024_QTBT
-#define JVET_C0046_ZO_ASSERT_FIX_TICKET24                 1  ///< fixed ticket#24
 #endif
 #endif
-#endif
 
 #if COM16_C806_EMT || COM16_C806_T64
 #define COM16_C806_TRANS_PREC                             2  ///< Integer transform matrix precision
Index: source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- source/Lib/TLibDecoder/TDecSbac.cpp	(revision 435)
+++ source/Lib/TLibDecoder/TDecSbac.cpp	(working copy)
@@ -2367,6 +2367,7 @@
 #endif
   const UInt         uiMaxNumCoeff     = uiWidth * uiHeight;
   const UInt         uiMaxNumCoeffM1   = uiMaxNumCoeff - 1;
+  const Int          log2CoeffGroupSize = 2 - ((uiWidth & 0x03) != 0 || (uiHeight & 0x03) != 0);
 
 
   const ChannelType  channelType       = toChannelType(compID);
@@ -2505,19 +2506,11 @@
   pcCoef[ uiBlkPosLast ] = 1;
 
 #if JVET_C0046_ZO_ASSERT && JVET_C0046_ZO_ASSERT_LAST_COEF
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-  if ( ((uiWidth > JVET_C0046_ZERO_OUT_TH) || (uiHeight > JVET_C0046_ZERO_OUT_TH)) &&
-#else
-  if ( ((uiWidth > JVET_C0024_ZERO_OUT_TH) || (uiHeight > JVET_C0024_ZERO_OUT_TH)) && 
-#endif
+  if ( ((uiWidth > ZERO_OUT_TH) || (uiHeight > ZERO_OUT_TH)) &&
        (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)))
   {
      // last coeff shall be in the low freqecy domain
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-     assert((uiPosLastX < JVET_C0046_ZERO_OUT_TH) && (uiPosLastY < JVET_C0046_ZERO_OUT_TH));
-#else
-     assert((uiPosLastX < JVET_C0024_ZERO_OUT_TH) && (uiPosLastY < JVET_C0024_ZERO_OUT_TH));
-#endif
+     assert((uiPosLastX < ZERO_OUT_TH) && (uiPosLastY < ZERO_OUT_TH));
   }
 #endif
 
@@ -2626,12 +2619,8 @@
     {
       uiSigCoeffGroupFlag[ iCGBlkPos ] = 1;
     }
-#if COM16_C806_T64 && (!JVET_C0024_QTBT || JVET_C0024_ZERO_OUT_FIX ) && !JVET_C0046_ZO_ASSERT
-#if JVET_C0024_ZERO_OUT_FIX
-    else if( iCGPosY>=(JVET_C0024_ZERO_OUT_TH>>2) || iCGPosX>=(JVET_C0024_ZERO_OUT_TH>>2) )
-#else
-    else if( uiWidth>=64 && ( iCGPosY>=(codingParameters.heightInGroups/2) || iCGPosX>=(codingParameters.widthInGroups/2) ) )
-#endif
+#if COM16_C806_T64 && !JVET_C0024_QTBT && !JVET_C0046_ZO_ASSERT
+    else if (iCGPosY >= (ZERO_OUT_TH >> log2CoeffGroupSize) || iCGPosX >= (ZERO_OUT_TH >> log2CoeffGroupSize))
     {
       uiSigCoeffGroupFlag[ iCGBlkPos ] = 0;
     }
@@ -2649,18 +2638,10 @@
     }
 
 #if JVET_C0046_ZO_ASSERT && JVET_C0046_ZO_ASSERT_CODED_SBK_FLAG
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-   if ( ((uiWidth > JVET_C0046_ZERO_OUT_TH) || (uiHeight > JVET_C0046_ZERO_OUT_TH)) &&
-#else
-   if ( ((uiWidth > JVET_C0024_ZERO_OUT_TH) || (uiHeight > JVET_C0024_ZERO_OUT_TH)) &&
-#endif
-       (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)) )
+   if ( ((uiWidth > ZERO_OUT_TH) || (uiHeight > ZERO_OUT_TH)) 
+     && (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)) )
    {
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-      if (iCGPosY >= (JVET_C0046_ZERO_OUT_TH>>2) || iCGPosX >= (JVET_C0046_ZERO_OUT_TH>>2))
-#else
-      if (iCGPosY >= (JVET_C0024_ZERO_OUT_TH>>2) || iCGPosX >= (JVET_C0024_ZERO_OUT_TH>>2))
-#endif
+     if (iCGPosY >= (ZERO_OUT_TH >> log2CoeffGroupSize) || iCGPosX >= (ZERO_OUT_TH >> log2CoeffGroupSize))
       {
          //coded_sbk_flag(iCGX,iCGY) shall be equal to 0
          assert(0 == uiSigCoeffGroupFlag[iCGBlkPos]);
Index: source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- source/Lib/TLibEncoder/TEncSbac.cpp	(revision 435)
+++ source/Lib/TLibEncoder/TEncSbac.cpp	(working copy)
@@ -2284,6 +2284,8 @@
   const Bool         alignCABACBeforeBypass = sps.getSpsRangeExtension().getCabacBypassAlignmentEnabledFlag();
   const Int          maxLog2TrDynamicRange  = sps.getMaxLog2TrDynamicRange(channelType);
 
+  const Int          log2CoeffGroupSize = 2 - ((uiWidth & 0x03) != 0 || (uiHeight & 0x03) != 0);
+
   Bool beValid;
 
   {
@@ -2456,19 +2458,11 @@
 
  
 #if JVET_C0046_ZO_ASSERT && JVET_C0046_ZO_ASSERT_LAST_COEF
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-  if ( ((uiWidth > JVET_C0046_ZERO_OUT_TH) || (uiHeight > JVET_C0046_ZERO_OUT_TH)) &&
-#else
-  if ( ((uiWidth > JVET_C0024_ZERO_OUT_TH) || (uiHeight > JVET_C0024_ZERO_OUT_TH)) &&
-#endif
-      (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)))
+  if ( ((uiWidth > ZERO_OUT_TH) || (uiHeight > ZERO_OUT_TH)) 
+    && (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)))
   {
      // last coeff shall be in the low freqecy domain
-#if JVET_C0046_ZO_ASSERT_FIX_TICKET24
-     assert((posLastX < JVET_C0046_ZERO_OUT_TH) && (posLastY < JVET_C0046_ZERO_OUT_TH));
-#else
-     assert((posLastX < JVET_C0024_ZERO_OUT_TH) && (posLastY < JVET_C0024_ZERO_OUT_TH));
-#endif
+     assert((posLastX < ZERO_OUT_TH) && (posLastY < ZERO_OUT_TH));
   }
 #endif
 
@@ -2564,25 +2558,18 @@
     {
       uiSigCoeffGroupFlag[ iCGBlkPos ] = 1;
     }
-#if COM16_C806_T64  && (!JVET_C0024_QTBT || JVET_C0024_ZERO_OUT_FIX ) && !JVET_C0046_ZO_ASSERT
-#if JVET_C0024_ZERO_OUT_FIX
-    else if( iCGPosY>=(JVET_C0024_ZERO_OUT_TH>>2) || iCGPosX>=(JVET_C0024_ZERO_OUT_TH>>2) )
-#else
-    else if( uiWidth>=64 && ( iCGPosY>=(codingParameters.heightInGroups/2) || iCGPosX>=(codingParameters.widthInGroups/2) ) )
-#endif
+#if COM16_C806_T64  && !JVET_C0024_QTBT && !JVET_C0046_ZO_ASSERT
+    else if( iCGPosY>=(ZERO_OUT_TH>>log2CoeffGroupSize) || iCGPosX>=(ZERO_OUT_TH>> log2CoeffGroupSize) )
     {
       assert( 0 == uiSigCoeffGroupFlag[ iCGBlkPos ] );
     }
 #endif
 #if JVET_C0046_ZO_ASSERT && JVET_C0046_ZO_ASSERT_CODED_SBK_FLAG
-    else if ( (uiLog2BlockWidth + uiLog2BlockHeight) > TH_LOG2TBAREASIZE && 
-              (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx) ))
+    else if ((iCGPosY >= (ZERO_OUT_TH >> log2CoeffGroupSize) || iCGPosX >= (ZERO_OUT_TH >> log2CoeffGroupSize))
+      && (!pcCU->getTransformSkip(compID) && !pcCU->getCUTransquantBypass(uiAbsPartIdx)))
     {
-        if ( iCGPosY >= (codingParameters.heightInGroups / 2) || iCGPosX >= (codingParameters.widthInGroups / 2) )
-        {
-            // coded_sbk_flag(iCGX,iCGY) shall be equal to 0
-            assert(0 == uiSigCoeffGroupFlag[iCGBlkPos]);
-        }
+      // coded_sbk_flag(iCGX,iCGY) shall be equal to 0
+      assert(0 == uiSigCoeffGroupFlag[iCGBlkPos]);
     }
 #endif
     else
