Ticket #590: SAO_CODE_CLEAN_UP.patch

File SAO_CODE_CLEAN_UP.patch, 21.8 KB (added by dionismkim, 10 years ago)
  • build/vc9/TLibCommon_vc9.vcproj

     
    11<?xml version="1.0" encoding="Windows-1252"?>
    22<VisualStudioProject
    33        ProjectType="Visual C++"
    4         Version="9,00"
     4        Version="9.00"
    55        Name="TLibCommon"
    66        ProjectGUID="{78018D78-F890-47E3-A0B7-09D273F0B11D}"
    77        RootNamespace="TLibCommon"
     
    8181                        />
    8282                </Configuration>
    8383                <Configuration
    84                         Name="Debug|x64"
     84                        Name="Release|Win32"
    8585                        OutputDirectory="$(SolutionDir)\vc9\$(PlatformName)\$(ConfigurationName)\$(RootNamespace)"
    8686                        IntermediateDirectory="$(SolutionDir)\vc9\$(PlatformName)\$(ConfigurationName)\$(RootNamespace)"
    8787                        ConfigurationType="4"
    8888                        CharacterSet="2"
     89                        WholeProgramOptimization="1"
    8990                        >
    9091                        <Tool
    9192                                Name="VCPreBuildEventTool"
     
    101102                        />
    102103                        <Tool
    103104                                Name="VCMIDLTool"
    104                                 TargetEnvironment="3"
    105105                        />
    106106                        <Tool
    107107                                Name="VCCLCompilerTool"
    108                                 Optimization="0"
     108                                Optimization="2"
     109                                InlineFunctionExpansion="2"
     110                                EnableIntrinsicFunctions="false"
     111                                FavorSizeOrSpeed="1"
    109112                                AdditionalIncludeDirectories="$(SolutionDir)\..\source\Lib\;$(SolutionDir)\..\compat\msvc"
    110                                 PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
    111                                 MinimalRebuild="true"
    112                                 BasicRuntimeChecks="3"
    113                                 RuntimeLibrary="1"
     113                                PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_WARNINGS"
     114                                StringPooling="true"
     115                                RuntimeLibrary="0"
     116                                EnableFunctionLevelLinking="true"
    114117                                WarningLevel="3"
    115118                                DebugInformationFormat="3"
    116119                        />
     
    143146                        />
    144147                </Configuration>
    145148                <Configuration
    146                         Name="Release|Win32"
     149                        Name="Debug|x64"
    147150                        OutputDirectory="$(SolutionDir)\vc9\$(PlatformName)\$(ConfigurationName)\$(RootNamespace)"
    148151                        IntermediateDirectory="$(SolutionDir)\vc9\$(PlatformName)\$(ConfigurationName)\$(RootNamespace)"
    149152                        ConfigurationType="4"
    150153                        CharacterSet="2"
    151                         WholeProgramOptimization="1"
    152154                        >
    153155                        <Tool
    154156                                Name="VCPreBuildEventTool"
     
    164166                        />
    165167                        <Tool
    166168                                Name="VCMIDLTool"
     169                                TargetEnvironment="3"
    167170                        />
    168171                        <Tool
    169172                                Name="VCCLCompilerTool"
    170                                 Optimization="2"
    171                                 InlineFunctionExpansion="2"
    172                                 EnableIntrinsicFunctions="false"
    173                                 FavorSizeOrSpeed="1"
     173                                Optimization="0"
    174174                                AdditionalIncludeDirectories="$(SolutionDir)\..\source\Lib\;$(SolutionDir)\..\compat\msvc"
    175                                 PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_WARNINGS"
    176                                 StringPooling="true"
    177                                 RuntimeLibrary="0"
    178                                 EnableFunctionLevelLinking="true"
     175                                PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS"
     176                                MinimalRebuild="true"
     177                                BasicRuntimeChecks="3"
     178                                RuntimeLibrary="1"
    179179                                WarningLevel="3"
    180180                                DebugInformationFormat="3"
    181181                        />
  • source/Lib/TLibCommon/ContextTables.h

     
    102102#define NUM_ALF_UVLC_CTX              2       ///< number of context models for ALF UVLC (filter length)
    103103#define NUM_ALF_SVLC_CTX              3       ///< number of context models for ALF SVLC (filter coeff.)
    104104
    105 #define NUM_SAO_FLAG_CTX              1       ///< number of context models for SAO flag
     105#if !SAO_CODE_CLEAN_UP
     106        #define NUM_SAO_FLAG_CTX              1       ///< number of context models for SAO flag
     107#endif
    106108#define NUM_SAO_UVLC_CTX              2       ///< number of context models for SAO UVLC
    107109#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    108110#define NUM_SAO_SVLC_CTX              3       ///< number of context models for SAO SVLC
    109111#endif
    110 #define NUM_SAO_RUN_CTX               3       ///< number of context models for AO SVLC (filter coeff.)
     112#if !SAO_CODE_CLEAN_UP
     113        #define NUM_SAO_RUN_CTX               3       ///< number of context models for AO SVLC (filter coeff.)
     114#endif
    111115#define NUM_SAO_MERGE_LEFT_FLAG_CTX   3       ///< number of context models for AO SVLC (filter coeff.)
    112116#define NUM_SAO_MERGE_UP_FLAG_CTX     1       ///< number of context models for AO SVLC (filter coeff.)
    113117#define NUM_SAO_TYPE_IDX_CTX          2       ///< number of context models for AO SVLC (filter coeff.)
     
    549553  { 141,  154,  159, },
    550554#endif
    551555};
    552 
     556#if !SAO_CODE_CLEAN_UP
    553557static const UChar
    554558INIT_SAO_FLAG[3][NUM_SAO_FLAG_CTX] = 
    555559{
     
    563567  { 153, },
    564568#endif
    565569};
    566 
     570#endif
    567571static const UChar
    568572INIT_SAO_UVLC[3][NUM_SAO_UVLC_CTX] = 
    569573{
  • source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp

     
    13761376{
    13771377  saoUnit->partIdx       = 0;
    13781378  saoUnit->partIdxTmp    = 0;
     1379#if !SAO_CODE_CLEAN_UP
    13791380  saoUnit->run           = 0;
    13801381  saoUnit->runDiff       = 0;
     1382#endif
    13811383  saoUnit->mergeLeftFlag = 0;
    13821384  saoUnit->mergeUpFlag   = 0;
    13831385  saoUnit->typeIdx       = -1;
  • source/Lib/TLibCommon/TypeDef.h

     
    116116#endif
    117117
    118118#define SAO_RDO_FIX                      1  ///< I0563: SAO RDO bug-fix
     119        #if SAO_OFFSET_MAG_SIGN_SPLIT && SAO_OFFSET_MAG_SIGN_SPLIT && SAO_REMOVE_APS && SAO_TRUNCATED_U
     120                #define SAO_CODE_CLEAN_UP                1 /// redundant code removal
     121        #endif
    119122
    120123#define MAX_NUM_SPS                32
    121124#define MAX_NUM_PPS                256
     
    334337  Int        typeIdx;
    335338  Int        bandPosition;
    336339  Int        offset[4];
     340#if !SAO_CODE_CLEAN_UP
    337341  Int        runDiff;
    338342  Int        run;
     343#endif
    339344  Int        partIdx;
    340345  Int        partIdxTmp;
    341346  Int        length;
  • source/Lib/TLibDecoder/TDecCAVLC.cpp

     
    389389    }
    390390  }
    391391}
     392#if !SAO_CODE_CLEAN_UP
    392393/** parse SAO offset
    393394 * \param saoLcuParam SAO LCU parameters
    394395 */
     
    429430    saoLcuParam->length = 0;
    430431  }
    431432}
    432 
     433#endif
    433434#if !SAO_REMOVE_APS
    434435/** parse SAO unit
    435436 * \param rx x-axis location
  • source/Lib/TLibDecoder/TDecCAVLC.h

     
    148148#if !SAO_REMOVE_APS
    149149  Void  xParseSaoParam       ( SAOParam* pSaoParam );
    150150#endif
     151#if !SAO_CODE_CLEAN_UP
    151152  Void  xParseSaoOffset      (SaoLcuParam* saoLcuParam);
     153#endif
    152154#if !SAO_REMOVE_APS
    153155  Void  xParseSaoUnit        (Int rx, Int ry, Int compIdx, SAOParam* saoParam, Bool& repeatedRow );
    154156#endif
  • source/Lib/TLibDecoder/TDecSbac.cpp

     
    7676, m_cALFUvlcSCModel           ( 1,             1,               NUM_ALF_UVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    7777, m_cALFSvlcSCModel           ( 1,             1,               NUM_ALF_SVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    7878, m_cCUAMPSCModel             ( 1,             1,               NUM_CU_AMP_CTX                , m_contextModels + m_numContextModels, m_numContextModels)
     79#if !SAO_CODE_CLEAN_UP
    7980, m_cSaoFlagSCModel           ( 1,             1,               NUM_SAO_FLAG_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
     81#endif
    8082, m_cSaoUvlcSCModel           ( 1,             1,               NUM_SAO_UVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    8183#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    8284, m_cSaoSvlcSCModel           ( 1,             1,               NUM_SAO_SVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
     
    146148  m_cALFFlagSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_ALF_FLAG );
    147149  m_cALFUvlcSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_ALF_UVLC );
    148150  m_cALFSvlcSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_ALF_SVLC );
     151#if !SAO_CODE_CLEAN_UP
    149152  m_cSaoFlagSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_SAO_FLAG );
     153#endif
    150154  m_cSaoUvlcSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_SAO_UVLC );
    151155#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    152156  m_cSaoSvlcSCModel.initBuffer           ( sliceType, qp, (UChar*)INIT_SAO_SVLC );
     
    214218  m_cALFFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_FLAG );
    215219  m_cALFUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_UVLC );
    216220  m_cALFSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_SVLC );
     221#if !SAO_CODE_CLEAN_UP
    217222  m_cSaoFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_FLAG );
     223#endif
    218224  m_cSaoUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_UVLC );
    219225#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    220226  m_cSaoSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_SVLC );
     
    15871593  val = i;
    15881594}
    15891595#endif
    1590 
     1596#if !SAO_CODE_CLEAN_UP
    15911597Void TDecSbac::parseSaoUvlc (UInt& ruiVal)
    15921598{
    15931599  UInt uiCode;
     
    16131619
    16141620  ruiVal = i;
    16151621}
     1622#endif
    16161623#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    16171624Void TDecSbac::parseSaoSvlc (Int&  riVal)
    16181625{
  • source/Lib/TLibDecoder/TDecSbac.h

     
    9393#if SAO_TRUNCATED_U
    9494  Void  parseSaoMaxUvlc           ( UInt& val, UInt maxSymbol );
    9595#endif
     96#if !SAO_CODE_CLEAN_UP
    9697  Void  parseSaoUvlc              ( UInt& ruiVal           );
     98#endif
    9799#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    98100  Void  parseSaoSvlc              ( Int&  riVal            );
    99101#endif
     
    204206  ContextModel3DBuffer m_cALFUvlcSCModel;
    205207  ContextModel3DBuffer m_cALFSvlcSCModel;
    206208  ContextModel3DBuffer m_cCUAMPSCModel;
     209#if !SAO_CODE_CLEAN_UP
    207210  ContextModel3DBuffer m_cSaoFlagSCModel;
     211#endif
    208212  ContextModel3DBuffer m_cSaoUvlcSCModel;
    209213#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    210214  ContextModel3DBuffer m_cSaoSvlcSCModel;
  • source/Lib/TLibEncoder/TEncCavlc.cpp

     
    12191219}
    12201220#endif
    12211221
    1222 
     1222#if !SAO_CODE_CLEAN_UP
    12231223Void TEncCavlc::codeSaoFlag( UInt uiCode )
    12241224{
    12251225  xWriteFlag( uiCode );
     
    12291229{
    12301230    xWriteUvlc( uiCode );
    12311231}
     1232#endif
    12321233#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    12331234Void TEncCavlc::codeSaoSvlc( Int iCode )
    12341235{
    12351236    xWriteSvlc( iCode );
    12361237}
    12371238#endif
     1239#if !SAO_CODE_CLEAN_UP
    12381240/** Code SAO run.
    12391241 * \param uiCode
    12401242 * \param maxValue
     
    12581260  }
    12591261  WRITE_CODE( uiCode, uiLength, "sao_run_diff");
    12601262}
     1263#endif
    12611264
    12621265Void TEncCavlc::estBit( estBitsSbacStruct* pcEstBitsCabac, Int width, Int height, TextType eTType )
    12631266{
  • source/Lib/TLibEncoder/TEncCavlc.h

     
    136136  Void codeAPSAlflag(UInt uiCode);
    137137  Void codeAlfFixedLengthIdx( UInt idx, UInt numFilterSetsInBuffer);
    138138#endif
     139#if !SAO_CODE_CLEAN_UP
    139140  Void codeSaoFlag       ( UInt uiCode );
    140141  Void codeSaoUvlc       ( UInt uiCode );
     142#endif
    141143#if SAO_OFFSET_MAG_SIGN_SPLIT
    142144  Void codeSAOSign       ( UInt code   ) { printf("Not supported\n"); assert (0); }
    143145#endif
     
    147149#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    148150  Void codeSaoSvlc       ( Int   iCode );
    149151#endif
     152#if SAO_CODE_CLEAN_UP
     153  Void codeSaoMergeLeft  ( UInt uiCode, UInt compIdx ){printf("Not supported\n"); assert (0);}
     154  Void codeSaoMergeUp    ( UInt uiCode ){printf("Not supported\n"); assert (0);}
     155  Void codeSaoTypeIdx    ( UInt uiCode ){printf("Not supported\n"); assert (0);}
     156  Void codeSaoUflc       ( UInt uiCode ){ assert(uiCode < 32); printf("Not supported\n"); assert (0);}
     157#else
    150158  Void codeSaoRun        ( UInt uiCode, UInt maxValue  );
    151159  Void codeSaoMergeLeft  ( UInt uiCode, UInt compIdx ){;}
    152160  Void codeSaoMergeUp    ( UInt uiCode ){;}
    153161  Void codeSaoTypeIdx    ( UInt uiCode ){ xWriteUvlc(uiCode   );}
    154162  Void codeSaoUflc       ( UInt uiCode ){ assert(uiCode < 32); xWriteCode(uiCode, 5);}
     163#endif
    155164
    156165  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    157166  Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx );
  • source/Lib/TLibEncoder/TEncEntropy.h

     
    144144#if !AHG6_ALF_OPTION2
    145145  virtual Void codeAlfCtrlFlag      ( UInt uiSymbol ) = 0;
    146146#endif
     147#if !SAO_CODE_CLEAN_UP
    147148  virtual Void codeSaoFlag          ( UInt uiCode ) = 0;
    148149  virtual Void codeSaoUvlc          ( UInt uiCode ) = 0;
     150#endif
    149151#if SAO_OFFSET_MAG_SIGN_SPLIT
    150152  virtual Void codeSAOSign          ( UInt code   ) = 0;
    151153#endif
     
    155157#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    156158  virtual Void codeSaoSvlc          ( Int   iCode ) = 0;
    157159#endif
     160#if !SAO_CODE_CLEAN_UP
    158161  virtual Void codeSaoRun          ( UInt   uiCode, UInt uiMaxValue  ) = 0;
     162#endif
    159163  virtual Void codeSaoMergeLeft    ( UInt   uiCode, UInt uiCompIdx  ) = 0;
    160164  virtual Void codeSaoMergeUp      ( UInt   uiCode) = 0;
    161165  virtual Void codeSaoTypeIdx      ( UInt   uiCode) = 0;
  • source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp

     
    15051505  else
    15061506  {
    15071507    Int i,j, addr, addrUp, addrLeft,  idx, idxUp, idxLeft,  idxCount;
    1508     Int run;
     1508#if !SAO_CODE_CLEAN_UP
     1509        Int run;
    15091510    Int runPartBeginAddr=0;
    15101511    Int runPart;
    15111512    Int runPartPrevious;
     1513#endif
    15121514
    15131515    oneUnitFlag = 0;
    15141516
     
    15181520
    15191521    for (j=0;j<m_iNumCuInHeight;j++)
    15201522    {
    1521       run = 0;
     1523#if !SAO_CODE_CLEAN_UP
     1524          run = 0;
    15221525      runPartPrevious = -1;
     1526#endif
    15231527      for (i=0;i<m_iNumCuInWidth;i++)
    15241528      {
    15251529        addr     = i + j*m_iNumCuInWidth;
     
    15551559        {
    15561560          checkMerge(&saoLcuParam[addr], &saoLcuParam[addrLeft], 0);
    15571561        }
    1558         runPart = saoLcuParam[addr].partIdx;
     1562#if !SAO_CODE_CLEAN_UP
     1563                runPart = saoLcuParam[addr].partIdx;
    15591564        if (runPart == runPartPrevious)
    15601565        {
    15611566          run ++;
     
    15691574          saoLcuParam[addr].run = run;
    15701575        }
    15711576        runPartPrevious = runPart;
     1577#endif
    15721578      }
    15731579    }
    1574 
     1580#if !SAO_CODE_CLEAN_UP
    15751581    for (j=0;j<m_iNumCuInHeight;j++)
    15761582    {
    15771583      for (i=0;i<m_iNumCuInWidth;i++)
     
    15971603        }
    15981604      }
    15991605    }
     1606#endif
    16001607  }
    16011608}
    16021609/** rate distortion optimization of all SAO units
     
    16611668        }
    16621669        saoParam->saoLcuParam[compIdx][addr].typeIdx       =  -1;
    16631670        saoParam->saoLcuParam[compIdx][addr].mergeUpFlag   = 0;
    1664         saoParam->saoLcuParam[compIdx][addr].run           = 0;
     1671#if !SAO_CODE_CLEAN_UP
     1672                saoParam->saoLcuParam[compIdx][addr].run           = 0;
    16651673        saoParam->saoLcuParam[compIdx][addr].runDiff       = 0;
     1674#endif
    16661675        saoParam->saoLcuParam[compIdx][addr].mergeLeftFlag = 0;
    16671676        saoParam->saoLcuParam[compIdx][addr].bandPosition  = 0;
    16681677        lambdaComp = compIdx==0 ? lambda : lambdaChroma;
     
    18191828  Int classIdx;
    18201829  Int shift = g_uiBitIncrement << 1;
    18211830  //   Double dAreaWeight =  0;
     1831#if !SAO_CODE_CLEAN_UP
    18221832  Double complexityCost = 0;
     1833#endif
    18231834  SaoLcuParam*  saoLcuParam = NULL;   
    18241835  SaoLcuParam*  saoLcuParamNeighbor = NULL;
    18251836  Int   merge_iOffset [33];
     
    18341845  saoLcuParam = &(saoParam->saoLcuParam[yCbCr][addr]);
    18351846  saoLcuParam->mergeUpFlag   = 0;
    18361847  saoLcuParam->mergeLeftFlag = 0;
     1848#if !SAO_CODE_CLEAN_UP
    18371849  saoLcuParam->run    = 0;
    18381850  saoLcuParam->runDiff= 0;
     1851#endif
    18391852
    18401853
    18411854  m_iTypePartBest[yCbCr] = -1;
     
    18441857#else
    18451858  m_dCostPartBest[yCbCr] = 0;
    18461859#endif
     1860#if !SAO_CODE_CLEAN_UP
    18471861  m_iDistOrg[yCbCr] = 0;
     1862#endif
    18481863
    18491864  Double  bestRDCostTableBo = MAX_DOUBLE;
    18501865  Int     bestClassTableBo    = 0;
     
    19942009
    19952010        if(merge_dCost < m_dCostPartBest[yCbCr])
    19962011        {
    1997           m_iDistOrg [yCbCr] = (Int64)complexityCost;
     2012#if !SAO_CODE_CLEAN_UP
     2013                        m_iDistOrg [yCbCr] = (Int64)complexityCost;
     2014#endif
    19982015          m_dCostPartBest[yCbCr] = merge_dCost;
    19992016          m_iTypePartBest[yCbCr] = typeIdx;
    20002017          if (typeIdx>=0)
  • source/Lib/TLibEncoder/TEncSbac.cpp

     
    8888, m_cALFUvlcSCModel           ( 1,             1,               NUM_ALF_UVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    8989, m_cALFSvlcSCModel           ( 1,             1,               NUM_ALF_SVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    9090, m_cCUAMPSCModel             ( 1,             1,               NUM_CU_AMP_CTX                , m_contextModels + m_numContextModels, m_numContextModels)
     91#if !SAO_CODE_CLEAN_UP
    9192, m_cSaoFlagSCModel           ( 1,             1,               NUM_SAO_FLAG_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
     93#endif
    9294, m_cSaoUvlcSCModel           ( 1,             1,               NUM_SAO_UVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    9395#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    9496, m_cSaoSvlcSCModel           ( 1,             1,               NUM_SAO_SVLC_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
     
    151153  m_cALFUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_UVLC );
    152154  m_cALFSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_SVLC );
    153155  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
     156#if !SAO_CODE_CLEAN_UP
    154157  m_cSaoFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_FLAG );
     158#endif
    155159  m_cSaoUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_UVLC );
    156160#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    157161  m_cSaoSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_SVLC );
     
    216220      curCost += m_cALFUvlcSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_ALF_UVLC );
    217221      curCost += m_cALFSvlcSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_ALF_SVLC );
    218222      curCost += m_cCUTransSubdivFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
    219       curCost += m_cSaoFlagSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_SAO_FLAG );
     223#if !SAO_CODE_CLEAN_UP
     224          curCost += m_cSaoFlagSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_SAO_FLAG );
     225#endif
    220226      curCost += m_cSaoUvlcSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_SAO_UVLC );
    221227#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    222228      curCost += m_cSaoSvlcSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_SAO_SVLC );
     
    276282  m_cALFUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_UVLC );
    277283  m_cALFSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_ALF_SVLC );
    278284  m_cCUTransSubdivFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_TRANS_SUBDIV_FLAG );
     285#if !SAO_CODE_CLEAN_UP
    279286  m_cSaoFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_FLAG );
     287#endif
    280288  m_cSaoUvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_UVLC );
    281289#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    282290  m_cSaoSvlcSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_SAO_SVLC );
     
    17171725  m_pcBinIf->encodeBinEP( code );
    17181726}
    17191727#endif
    1720 
     1728#if !SAO_CODE_CLEAN_UP
    17211729Void TEncSbac::codeSaoFlag       ( UInt uiCode )
    17221730{
    17231731  UInt uiSymbol = ( ( uiCode == 0 ) ? 0 : 1 );
     
    17421750    m_pcBinIf->encodeBin( 0, m_cSaoUvlcSCModel.get( 0, 0, 1 ) );
    17431751  }
    17441752}
     1753#endif
    17451754#if SAO_TRUNCATED_U
    17461755Void TEncSbac::codeSaoMaxUvlc    ( UInt code, UInt maxSymbol )
    17471756{
  • source/Lib/TLibEncoder/TEncSbac.h

     
    119119  Void codeAlfCtrlFlag       ( UInt uiSymbol );
    120120#endif
    121121  Void  codeApsExtensionFlag () { assert (0); return; };
     122#if !SAO_CODE_CLEAN_UP
    122123  Void  codeSaoFlag       ( UInt uiCode );
    123124  Void  codeSaoUvlc       ( UInt uiCode );
     125#endif
    124126#if SAO_TRUNCATED_U
    125127  Void  codeSaoMaxUvlc    ( UInt code, UInt maxSymbol );
    126128#endif
    127129#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    128130  Void  codeSaoSvlc       ( Int  uiCode );
    129131#endif
     132#if !SAO_CODE_CLEAN_UP
    130133  Void  codeSaoRun        ( UInt  uiCode, UInt uiMaxValue  ) {;}
     134#endif
    131135  Void  codeSaoMergeLeft  ( UInt  uiCode, UInt uiCompIdx );
    132136  Void  codeSaoMergeUp    ( UInt  uiCode);
    133137  Void  codeSaoTypeIdx    ( UInt  uiCode);
     
    265269  ContextModel3DBuffer m_cALFUvlcSCModel;
    266270  ContextModel3DBuffer m_cALFSvlcSCModel;
    267271  ContextModel3DBuffer m_cCUAMPSCModel;
     272#if !SAO_CODE_CLEAN_UP
    268273  ContextModel3DBuffer m_cSaoFlagSCModel;
     274#endif
    269275  ContextModel3DBuffer m_cSaoUvlcSCModel;
    270276#if !(SAO_OFFSET_MAG_SIGN_SPLIT && SAO_RDO_FIX)
    271277  ContextModel3DBuffer m_cSaoSvlcSCModel;