123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using System;
- using System.Text;
- namespace SharpCompress.Compressors.PPMd.H
- {
- internal class See2Context
- {
- public virtual int Mean
- {
- get
- {
- int retVal = Utility.URShift(_summ, _shift);
- _summ -= retVal;
- return retVal + ((retVal == 0) ? 1 : 0);
- }
- }
- public virtual int Count { get => _count; set => _count = value & 0xff; }
- public virtual int Shift { get => _shift; set => _shift = value & 0xff; }
- public virtual int Summ { get => _summ; set => _summ = value & 0xffff; }
- public const int SIZE = 4;
- // ushort Summ;
- private int _summ;
- // byte Shift;
- private int _shift;
- // byte Count;
- private int _count;
- public void Initialize(int initVal)
- {
- _shift = (ModelPpm.PERIOD_BITS - 4) & 0xff;
- _summ = (initVal << _shift) & 0xffff;
- _count = 4;
- }
- public virtual void Update()
- {
- if (_shift < ModelPpm.PERIOD_BITS && --_count == 0)
- {
- _summ += _summ;
- _count = (3 << _shift++);
- }
- _summ &= 0xffff;
- _count &= 0xff;
- _shift &= 0xff;
- }
- public virtual void IncSumm(int dSumm)
- {
- Summ = Summ + dSumm;
- }
- public override String ToString()
- {
- StringBuilder buffer = new StringBuilder();
- buffer.Append("SEE2Context[");
- buffer.Append("\n size=");
- buffer.Append(SIZE);
- buffer.Append("\n summ=");
- buffer.Append(_summ);
- buffer.Append("\n shift=");
- buffer.Append(_shift);
- buffer.Append("\n count=");
- buffer.Append(_count);
- buffer.Append("\n]");
- return buffer.ToString();
- }
- }
- }
|