Kwc use what I called “Gear Encoding” to encode a list with dictionary IDs.
Gear encoding is only useful by value ranges who go slowly up and can be mixed with lower values from the range till then.
For example values:
2,1,4,3,1,3,3,6,1,9,5,11,4,7,15,9,5,13,11,4,17,18, 6,21,24,8,17,27,4,12,28,19,5,31
I wrote a test application GearEnc what accept for encoding four types of inputs:
1.text (x,y,z) - for example the range above one row with comma separated values.
2.Int8 - binary file with 8 bit integers
3.Int16 - binary file with 16 bit integers
4.Int32 - binary file with 32 bit integers
The output is a gear encoded binary file from the values found in the input
For decoding it's the opposite, it need a binary gear encoded file as input and one of the four types Text, Int8, Int16, Int32 can be select as output.
The text input is handy to test manual typed values in a text editor, but is slower then binary input by a very big range of values.
GearEnc download link:
http://www.metacompressor.com/download/gearenc.zip
Two files what can be used as input:
Example text file with 2211 values:
http://www.metacompressor.com/download/values.zip
The same 2211 values but as Int16 binary file:
http://www.metacompressor.com/download/values2.zip
It's also written in Visual Basic 2008 and Microsoft Framework 3.5 is needed to run this application. This time only Window 32/64bit GUI.
I'm curious at what data this encoding can be useful and how it compare against other encodings.
It must be possible to write a version what is also effective at value ranges who also go down after a while and again up after a while etc.