예제 #1
0
        public void TestGolomb()
        {
            var data = new Datastream();

            for (var i = 0U; i < 1000; ++i)
            {
                data.Add(i);
            }
            var last = UInt32.MaxValue;

            for (var m = 1U; m < 1000; ++m)
            {
                var g = new GolombCodec();
                g.Options  &= ~GolombCodec.OptionFlags.Optimize;
                g.Parameter = m;
                var bs  = g.CompressToStream(data, Header.HeaderFlags.None);
                var len = bs.Length;
                var dir = len < last ? -1 : len == last ? 0 : 1;
                WriteLine($"{m,3}: {bs.Length} {dir}");
                last = len;
            }
        }