Changeset 1386 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncRateCtrl.cpp


Ignore:
Timestamp:
13 Nov 2015, 16:29:39 (8 years ago)
Author:
tech
Message:

Merged 15.1-dev1@1381.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncRateCtrl.cpp

    r1313 r1386  
    16391639    m_encRCSeq->initLCUPara();
    16401640  }
     1641#if U0132_TARGET_BITS_SATURATION
     1642  m_CpbSaturationEnabled = false;
     1643  m_cpbSize              = targetBitrate;
     1644  m_cpbState             = (UInt)(m_cpbSize*0.5f);
     1645  m_bufferingRate        = (Int)(targetBitrate / frameRate);
     1646#endif
    16411647
    16421648#if KWU_RC_MADPRED_E0227
     
    16641670}
    16651671
     1672#if U0132_TARGET_BITS_SATURATION
     1673Int  TEncRateCtrl::updateCpbState(Int actualBits)
     1674{
     1675  Int cpbState = 1;
     1676
     1677  m_cpbState -= actualBits;
     1678  if (m_cpbState < 0)
     1679  {
     1680    cpbState = -1;
     1681  }
     1682
     1683  m_cpbState += m_bufferingRate;
     1684  if (m_cpbState > m_cpbSize)
     1685  {
     1686    cpbState = 0;
     1687  }
     1688
     1689  return cpbState;
     1690}
     1691
     1692Void TEncRateCtrl::initHrdParam(const TComHRD* pcHrd, Int iFrameRate, Double fInitialCpbFullness)
     1693{
     1694  m_CpbSaturationEnabled = true;
     1695  m_cpbSize = (pcHrd->getCpbSizeValueMinus1(0, 0, 0) + 1) << (4 + pcHrd->getCpbSizeScale());
     1696  m_cpbState = (UInt)(m_cpbSize*fInitialCpbFullness);
     1697  m_bufferingRate = (UInt)(((pcHrd->getBitRateValueMinus1(0, 0, 0) + 1) << (6 + pcHrd->getBitRateScale())) / iFrameRate);
     1698  printf("\nHRD - [Initial CPB state %6d] [CPB Size %6d] [Buffering Rate %6d]\n", m_cpbState, m_cpbSize, m_bufferingRate);
     1699}
     1700#endif
     1701
    16661702Void TEncRateCtrl::destroyRCGOP()
    16671703{
Note: See TracChangeset for help on using the changeset viewer.