Name | Modified | Size | Downloads / Week |
---|---|---|---|
LZW.cs | 2014-07-25 | 39.2 kB | |
README.txt | 2014-07-24 | 2.3 kB | |
Totals: 2 Items | 41.6 kB | 0 |
------------------------------------------------------------------------------- LZWStream - The LZW algorithm in C# ------------------------------------------------------------------------------- 1. INTRO 1.1 ABOUT Implementation of the LZW algorithm in C#, adhering to the built-in System.IO.Compression. The algorithm and code is much improved, compared to projects like SharpLZW. The LZW algorithm is for arbitrary lossless data compression and are noticeable for simplicity and low (compared to others) memory consumption. Making it interesting for eg. embedded use. There're many other LZW implementations out there. This one is focused on KISS and C#. This document is subject to change. 1.3 CREDITS The projected is created by me, Morten Kvistgaard, anno 2014. Original work is based on SharpLZW: https://sourceforge.net/projects/sharplzw And Mark Nelson: http://marknelson.us/2011/11/08/lzw-revisited/ 2. USAGE The library consists of a single C# file: LZW.cs - Include the file in your own project. - Compile. Be aware of the legal issues connected to the LZW algorithm. 3. TECHNICAL 3.1 ALLOCATIONS The algorithm will do a lot of allocations/frees due to the "ByteString" implementation. Though, no more than normal string manipulations and usage. 3.2 ADAPTIVE DICTIONARY DROP The algorithm could profit from a "drop dictionary" symbol. This is not implemented. This could let the encoder rebuild the dictionary whenever it's full, thereby readjusting to the new data layout and improve the compression. 4. TESTS The algorithm is tested with the Canterbury file collection. It hasn't been tested against any 3rd party implementations. 5. SUPPORT There's no support for the project at this time. That's reserved for our customers. If you write to me, I'm unlikely to answer. 6. REPORT ERRORS Yeh, there be errors alright. There always are. Try writing to me at mk@pch-engineering.dk. 7. CONTRIBUTE Really? You think it's missing something? It's not really meant as a huge glorified project you know, but if you really must, try contacting me at mk@pch-engineering.dk. 8. MISC Project web page is located at: https://sourceforge.net/projects/lzwstream/