예제 #1
0
 public void Init()
 {
     m_Choice.Init();
     for (uint posState = 0; posState < m_NumPosStates; posState++)
     {
         m_LowCoder[posState].Init();
         m_MidCoder[posState].Init();
     }
     m_Choice2.Init();
     m_HighCoder.Init();
 }
예제 #2
0
        void Init(System.IO.Stream inStream, System.IO.Stream outStream)
        {
            m_RangeDecoder.Init(inStream);
            m_OutWindow.Init(outStream, _solid);

            uint i;

            for (i = 0; i < LzmaBase.kNumStates; i++)
            {
                for (uint j = 0; j <= m_PosStateMask; j++)
                {
                    uint index = (i << LzmaBase.kNumPosStatesBitsMax) + j;
                    m_IsMatchDecoders[index].Init();
                    m_IsRep0LongDecoders[index].Init();
                }
                m_IsRepDecoders[i].Init();
                m_IsRepG0Decoders[i].Init();
                m_IsRepG1Decoders[i].Init();
                m_IsRepG2Decoders[i].Init();
            }

            m_LiteralDecoder.Init();
            for (i = 0; i < LzmaBase.kNumLenToPosStates; i++)
            {
                m_PosSlotDecoder[i].Init();
            }
            // m_PosSpecDecoder.Init();
            for (i = 0; i < LzmaBase.kNumFullDistances - LzmaBase.kEndPosModelIndex; i++)
            {
                m_PosDecoders[i].Init();
            }

            m_LenDecoder.Init();
            m_RepLenDecoder.Init();
            m_PosAlignDecoder.Init();
        }