Ignore:
Timestamp:
11 May 2012, 21:20:17 (12 years ago)
Author:
hschwarz
Message:

updated trunk (move to HM6.1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncBinCoderCABAC.h

    r5 r56  
    22 * License, included below. This software may be subject to other third party
    33 * and contributor rights, including patent rights, and no such rights are
    4  * granted under this license.
     4 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2011, ISO/IEC
     6 * Copyright (c) 2010-2012, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    1515 *    this list of conditions and the following disclaimer in the documentation
    1616 *    and/or other materials provided with the distribution.
    17  *  * Neither the name of the ISO/IEC nor the names of its contributors may
     17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
    1818 *    be used to endorse or promote products derived from this software without
    1919 *    specific prior written permission.
     
    3232 */
    3333
    34 
    35 
    3634/** \file     TEncBinCoderCABAC.h
    3735    \brief    binary entropy encoder of CABAC
     
    4139#define __TENC_BIN_CODER_CABAC__
    4240
    43 #include "../TLibCommon/TComCABACTables.h"
     41#include "TLibCommon/TComCABACTables.h"
    4442#include "TEncBinCoder.h"
    4543
     44//! \ingroup TLibEncoder
     45//! \{
    4646
    4747class TEncBinCABAC : public TEncBinIf
     
    5757  Void  finish            ();
    5858  Void  copyState         ( TEncBinIf* pcTEncBinIf );
     59#if OL_FLUSH
     60  Void  flush            ();
     61#endif
     62
     63  Void  resetBac          ();
     64#if BURST_IPCM
     65  Void  encodeNumSubseqIPCM( Int numSubseqIPCM );
     66#endif
     67  Void  encodePCMAlignBits();
     68  Void  xWritePCMCode     ( UInt uiCode, UInt uiLength );
    5969 
     70  Void encodeFlush(Bool bEnd);  //!< flush bits when CABAC termination
     71
    6072  Void  resetBits         ();
    6173  UInt  getNumWrittenBits ();
    6274 
    63   Void  encodeBin         ( UInt  uiBin,  ContextModel& rcCtxModel );
    64   Void  encodeBinEP       ( UInt  uiBin                            );
    65   Void  encodeBinTrm      ( UInt  uiBin                            );
     75  Void  encodeBin         ( UInt  binValue,  ContextModel& rcCtxModel );
     76  Void  encodeBinEP       ( UInt  binValue                            );
     77  Void  encodeBinsEP      ( UInt  binValues, Int numBins              );
     78  Void  encodeBinTrm      ( UInt  binValue                            );
    6679 
    6780  TEncBinCABAC* getTEncBinCABAC()  { return this; }
    6881 
    69   Void  setBinsCoded              ( UInt uiVal )  { m_uiBinsCoded = uiVal;          }
    70   UInt  getBinsCoded              ()              { return m_uiBinsCoded;           }
    71   Void  setBinCountingEnableFlag  ( Bool bFlag )  { m_bBinCountingEnabled = bFlag;  }
    72   Bool  getBinCountingEnableFlag  ()              { return m_bBinCountingEnabled;   }
     82  Void  setBinsCoded              ( UInt uiVal )  { m_uiBinsCoded = uiVal;               }
     83  UInt  getBinsCoded              ()              { return m_uiBinsCoded;                }
     84  Void  setBinCountingEnableFlag  ( Bool bFlag )  { m_binCountIncrement = bFlag ? 1 : 0; }
     85  Bool  getBinCountingEnableFlag  ()              { return m_binCountIncrement != 0;     }
     86 
     87#if FAST_BIT_EST
    7388protected:
    74   Void  xWriteBit               ( UInt uiBit );
    75   Void  xWriteBitAndBitsToFollow( UInt uiBit );
     89#else
     90private:
     91#endif
     92  Void testAndWriteOut();
     93  Void writeOut();
    7694 
    77 private:
    7895  TComBitIf*          m_pcTComBitIf;
    7996  UInt                m_uiLow;
    8097  UInt                m_uiRange;
    81   UInt                m_uiBitsToFollow;
    82   UInt                m_uiByte;
    83   UInt                m_uiBitsLeft;
     98  UInt                m_bufferedByte;
     99  Int                 m_numBufferedBytes;
     100  Int                 m_bitsLeft;
    84101  UInt                m_uiBinsCoded;
    85   Bool                m_bBinCountingEnabled;
     102  Int                 m_binCountIncrement;
     103#if FAST_BIT_EST
     104  UInt64 m_fracBits;
     105#endif
    86106};
    87107
     108//! \}
    88109
    89110#endif
Note: See TracChangeset for help on using the changeset viewer.