Beispiel #1
0
        /// <summary>
        /// Will calculate everything and make it ready for writing
        /// </summary>
        public void Finish()
        {
            if (Values.Count == 0)
            {
                return;
            }

            Metadata = BlockyMetadata.FromData(Values);
            Metadata.MaxNeededBitsNeededBitsNumber = Utility.GetNeededBits(Metadata.MaxNeededBitsNumber);

            _blockfinding = new Blockfinding.Blockfinding(Values, Metadata);
            Blocks        = _blockfinding.FindAllBlocks();

            PostCompressionOptimisation();     //Todo: make optional

            Write();
        }
Beispiel #2
0
 public Block(int index, short exponent, byte nb, bool isSignNegative, long biggestNumber, Blockfinding.Blockfinding context, Blockfinding.Blockfinding.Methods method, bool hasPattern)
 {
     Index            = index;
     HasExponent      = exponent != 0;
     HasPattern       = hasPattern;
     Pattern          = PatternType.Same;
     Method           = context.GetInitializedMethod(method);
     Exponent         = exponent;
     NeededBits       = nb;
     AbsoluteSign     = true;
     IsSignNegative   = isSignNegative;
     BiggestNumber    = biggestNumber;
     OverrideGlobalNb = false;
     Length           = 0;
 }