Changeset 601 in SHVCSoftware for branches/SHM-5.0-dev/source/Lib/TLibEncoder


Ignore:
Timestamp:
6 Feb 2014, 06:02:59 (11 years ago)
Author:
seregin
Message:

remove global array for SaoMaxOffsetQVal

Location:
branches/SHM-5.0-dev/source/Lib/TLibEncoder
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncCavlc.h

    r593 r601  
    100100 
    101101  Void codeMVPIdx ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList );
     102#if SVC_EXTENSION
     103  Void codeSAOBlkParam(SAOBlkParam& saoBlkParam, UInt* saoMaxOffsetQVal, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail, Bool onlyEstMergeInfo = false){printf("only supported in CABAC"); assert(0); exit(-1);}
     104#else
    102105  Void codeSAOBlkParam(SAOBlkParam& saoBlkParam, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail, Bool onlyEstMergeInfo = false){printf("only supported in CABAC"); assert(0); exit(-1);}
     106#endif
    103107  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    104108  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncEntropy.h

    r593 r601  
    105105  virtual Void codeCoeffNxN      ( TComDataCU* pcCU, TCoeff* pcCoef, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt uiDepth, TextType eTType ) = 0;
    106106  virtual Void codeTransformSkipFlags ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt width, UInt height, TextType eTType ) = 0;
     107#if SVC_EXTENSION
     108  virtual Void codeSAOBlkParam(SAOBlkParam& saoBlkParam, UInt* saoMaxOffsetQVal, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail, Bool onlyEstMergeInfo = false)    =0;
     109#else
    107110  virtual Void codeSAOBlkParam(SAOBlkParam& saoBlkParam, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail, Bool onlyEstMergeInfo = false)    =0;
     111#endif
    108112  virtual Void estBit               (estBitsSbacStruct* pcEstBitsSbac, Int width, Int height, TextType eTType) = 0;
    109113 
     
    184188 
    185189  Void estimateBit             ( estBitsSbacStruct* pcEstBitsSbac, Int width, Int height, TextType eTType);
     190#if SVC_EXTENSION
     191  Void encodeSAOBlkParam(SAOBlkParam& saoBlkParam, UInt* saoMaxOffsetQVal, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail){m_pcEntropyCoderIf->codeSAOBlkParam(saoBlkParam, saoMaxOffsetQVal, sliceEnabled, leftMergeAvail, aboveMergeAvail, false);}
     192#else
    186193  Void encodeSAOBlkParam(SAOBlkParam& saoBlkParam, Bool* sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail){m_pcEntropyCoderIf->codeSAOBlkParam(saoBlkParam, sliceEnabled, leftMergeAvail, aboveMergeAvail, false);}
     194#endif
    187195  static Int countNonZeroCoeffs( TCoeff* pcCoef, UInt uiSize );
    188196
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp

    r593 r601  
    463463  Int bitDepth = (compIdx== SAO_Y) ? g_bitDepthY : g_bitDepthC;
    464464  Int shift = 2 * DISTORTION_PRECISION_ADJUSTMENT(bitDepth-8);
     465#if SVC_EXTENSION
     466  Int offsetTh = getSaoMaxOffsetQVal()[compIdx];  //inclusive
     467#else
    465468  Int offsetTh = g_saoMaxOffsetQVal[compIdx];  //inclusive
     469#endif
    466470
    467471  ::memset(quantOffsets, 0, sizeof(Int)*MAX_NUM_SAO_CLASSES);
     
    582586  modeParam[SAO_Y ].modeIdc = SAO_MODE_OFF;
    583587  m_pcRDGoOnSbacCoder->load(cabacCoderRDO[inCabacLabel]);
     588#if SVC_EXTENSION
     589  m_pcRDGoOnSbacCoder->codeSAOBlkParam(modeParam, getSaoMaxOffsetQVal(), sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), true);
     590#else
    584591  m_pcRDGoOnSbacCoder->codeSAOBlkParam(modeParam, sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), true);
     592#endif
    585593  m_pcRDGoOnSbacCoder->store(cabacCoderRDO[SAO_CABACSTATE_BLK_MID]);
    586594
     
    590598  modeParam[compIdx].modeIdc = SAO_MODE_OFF;
    591599  m_pcRDGoOnSbacCoder->resetBits();
     600#if SVC_EXTENSION
     601  m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, modeParam[compIdx], sliceEnabled[compIdx], getSaoMaxOffsetQVal());
     602#else
    592603  m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, modeParam[compIdx], sliceEnabled[compIdx]);
     604#endif
    593605  modeDist[compIdx] = 0;
    594606  minCost= m_lambda[compIdx]*((Double)m_pcRDGoOnSbacCoder->getNumberOfWrittenBits());
     
    613625      m_pcRDGoOnSbacCoder->load(cabacCoderRDO[SAO_CABACSTATE_BLK_MID]);
    614626      m_pcRDGoOnSbacCoder->resetBits();
     627#if SVC_EXTENSION
     628      m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, testOffset[compIdx], sliceEnabled[compIdx], getSaoMaxOffsetQVal());
     629#else
    615630      m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, testOffset[compIdx], sliceEnabled[compIdx]);
     631#endif
    616632      rate = m_pcRDGoOnSbacCoder->getNumberOfWrittenBits();
    617633      cost = (Double)dist[compIdx] + m_lambda[compIdx]*((Double)rate);
     
    638654    modeDist [component] = 0;
    639655
     656#if SVC_EXTENSION
     657    m_pcRDGoOnSbacCoder->codeSAOOffsetParam(component, modeParam[component], sliceEnabled[component], getSaoMaxOffsetQVal());
     658#else
    640659    m_pcRDGoOnSbacCoder->codeSAOOffsetParam(component, modeParam[component], sliceEnabled[component]);
     660#endif
    641661
    642662    const UInt currentWrittenBits = m_pcRDGoOnSbacCoder->getNumberOfWrittenBits();
     
    672692      dist[compIdx]= getDistortion(ctu, compIdx, typeIdc, testOffset[compIdx].typeAuxInfo, invQuantOffset, blkStats[ctu][compIdx][typeIdc]);
    673693
     694#if SVC_EXTENSION
     695      m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, testOffset[compIdx], sliceEnabled[compIdx], getSaoMaxOffsetQVal());
     696#else
    674697      m_pcRDGoOnSbacCoder->codeSAOOffsetParam(compIdx, testOffset[compIdx], sliceEnabled[compIdx]);
     698#endif
    675699
    676700      const UInt currentWrittenBits = m_pcRDGoOnSbacCoder->getNumberOfWrittenBits();
     
    699723  m_pcRDGoOnSbacCoder->load(cabacCoderRDO[inCabacLabel]);
    700724  m_pcRDGoOnSbacCoder->resetBits();
     725#if SVC_EXTENSION
     726  m_pcRDGoOnSbacCoder->codeSAOBlkParam(modeParam, getSaoMaxOffsetQVal(), sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), false);
     727#else
    701728  m_pcRDGoOnSbacCoder->codeSAOBlkParam(modeParam, sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), false);
     729#endif
    702730  modeNormCost += (Double)m_pcRDGoOnSbacCoder->getNumberOfWrittenBits();
    703731
     
    742770    m_pcRDGoOnSbacCoder->load(cabacCoderRDO[inCabacLabel]);
    743771    m_pcRDGoOnSbacCoder->resetBits();
     772#if SVC_EXTENSION
     773    m_pcRDGoOnSbacCoder->codeSAOBlkParam(testBlkParam, getSaoMaxOffsetQVal(), sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), false);
     774#else
    744775    m_pcRDGoOnSbacCoder->codeSAOBlkParam(testBlkParam, sliceEnabled, (mergeList[SAO_MERGE_LEFT]!= NULL), (mergeList[SAO_MERGE_ABOVE]!= NULL), false);
     776#endif
    745777    Int rate = m_pcRDGoOnSbacCoder->getNumberOfWrittenBits();
    746778
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncSbac.cpp

    r593 r601  
    15921592}
    15931593
     1594#if SVC_EXTENSION
     1595Void TEncSbac::codeSAOOffsetParam(Int compIdx, SAOOffset& ctbParam, Bool sliceEnabled, UInt* saoMaxOffsetQVal)
     1596#else
    15941597Void TEncSbac::codeSAOOffsetParam(Int compIdx, SAOOffset& ctbParam, Bool sliceEnabled)
     1598#endif
    15951599{
    15961600  UInt uiSymbol;
     
    16391643    for(Int i=0; i< 4; i++)
    16401644    {
     1645#if SVC_EXTENSION
     1646      codeSaoMaxUvlc((offset[i]<0)?(-offset[i]):(offset[i]),  saoMaxOffsetQVal[compIdx] ); //sao_offset_abs
     1647#else
    16411648      codeSaoMaxUvlc((offset[i]<0)?(-offset[i]):(offset[i]),  g_saoMaxOffsetQVal[compIdx] ); //sao_offset_abs
     1649#endif
    16421650    }
    16431651
     
    16691677
    16701678Void TEncSbac::codeSAOBlkParam(SAOBlkParam& saoBlkParam
     1679#if SVC_EXTENSION
     1680                              , UInt* saoMaxOffsetQVal
     1681#endif
    16711682                              , Bool* sliceEnabled
    16721683                              , Bool leftMergeAvail
     
    17001711    for(Int compIdx=0; compIdx < NUM_SAO_COMPONENTS; compIdx++)
    17011712    {
     1713#if SVC_EXTENSION
     1714      codeSAOOffsetParam(compIdx, saoBlkParam[compIdx], sliceEnabled[compIdx], saoMaxOffsetQVal);
     1715#else
    17021716      codeSAOOffsetParam(compIdx, saoBlkParam[compIdx], sliceEnabled[compIdx]);
     1717#endif
    17031718    }
    17041719  }
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncSbac.h

    r593 r601  
    104104  Void  codeScalingList      ( TComScalingList* /*scalingList*/     ){ assert (0);  return;};
    105105
     106#if SVC_EXTENSION
     107  Void codeSAOOffsetParam(Int compIdx, SAOOffset& ctbParam, Bool sliceEnabled, UInt* saoMaxOffsetQVal);
     108  Void codeSAOBlkParam(SAOBlkParam& saoBlkParam
     109                    , UInt* saoMaxOffsetQVal
     110                    , Bool* sliceEnabled
     111                    , Bool leftMergeAvail
     112                    , Bool aboveMergeAvail
     113                    , Bool onlyEstMergeInfo = false
     114                    );
     115#else
    106116  Void codeSAOOffsetParam(Int compIdx, SAOOffset& ctbParam, Bool sliceEnabled);
    107117  Void codeSAOBlkParam(SAOBlkParam& saoBlkParam
     
    111121                    , Bool onlyEstMergeInfo = false
    112122                    );
     123#endif 
    113124
    114125private:
  • branches/SHM-5.0-dev/source/Lib/TLibEncoder/TEncSlice.cpp

    r593 r601  
    13561356        }
    13571357
     1358#if SVC_EXTENSION
     1359        m_pcEntropyCoder->encodeSAOBlkParam(saoblkParam, m_ppcTEncTop[pcSlice->getLayerId()]->getSAO()->getSaoMaxOffsetQVal(), sliceEnabled, leftMergeAvail, aboveMergeAvail);
     1360#else
    13581361        m_pcEntropyCoder->encodeSAOBlkParam(saoblkParam,sliceEnabled, leftMergeAvail, aboveMergeAvail);
     1362#endif
    13591363      }
    13601364    }
Note: See TracChangeset for help on using the changeset viewer.