RINGS V.01
Copyright ® 2007 by Nania Francesco Antonio (Italy).
All rights reserved
Max 16 MB of memory.
link:
http://www.winturtle.netsons.org/
Printable View
RINGS V.01
Copyright ® 2007 by Nania Francesco Antonio (Italy).
All rights reserved
Max 16 MB of memory.
link:
http://www.winturtle.netsons.org/
i tried create archive on vista but gave permissions denied error.
My test data have subfoldershttp://www.encode.su/images/smilies/sad.gif
Thanks Francesco! http://www.encode.su/images/smilies/grin.gif
Oke i tried with single file
e_sound.afs 370 MB (388,313,088 bytes)
compressed size
e_sound.afs 792 KB (812,009 bytes)
http://www.encode.su/images/smilies/shame.gif
new one
compressing...
Default
0_sound.afs 569624576 to 0_sound.rings 7049339 in 13.92 s. Speed: 39959KB/s.
very nice ratio http://www.encode.su/images/smilies/grin.gif
Intel Core 2 duo 6600 2GB/RAM
My test:
world95.txt 840567 in 0.30 s. Speed: 9859KB/s.
fp.log 1111553 in 0.33 s. Speed: 61383KB/s.
rafale.bmp 1333206 in 0.45 s. Speed: 8945KB/s.
ohs.doc 887924 in 0.28 s. Speed: 14485KB/s.
vcfiu.hlp 865938 in 0.31 s. Speed: 12900KB/s.
a10.jpg 819169 in 0.13 s. Speed: 6581KB/s.
flashmx.pdf 3863261 in 0.70 s. Speed: 6288KB/s.
acrord32.exe 1686718 in 0.44 s. Speed: 8650KB/s.
mso97.dll 2112343 in 0.53 s. Speed: 6956KB/s.
english.dic 949556 in 0.31 s. Speed: 12731KB/s.
total= 14.470.315
DSCN3974.jpg 1075235 in 0.13 s. Speed: 8704KB/s.
DSCN4465.JPG 671692 in 0.08 s. Speed: 8700KB/s.
DSCN5081.JPG 495724 in 0.06 s. Speed: 8138KB/s.
UCLC Lossless audio test 37.585.593 time 6.54 s.
My quick test with ENWIK8...
Test machine: AMD Sempron 2400+, Windows XP SP2
RINGS 0.1
enwik8 100000000 to enwik8.rings 35693969 in 55.41 s. Speed: 1762KB/s.
THOR 0.96a e5
FILES: 1
SIZE: 100000000 bytes
COMPRESSED: 35696032 bytes
RATIO: 35.70% 2.856 bpB
TIME: 19sec 719msec
SPEED: 4.84 MB/sec
THOR 0.96a e1
FILES: 1
SIZE: 100000000 bytes
COMPRESSED: 54915456 bytes
RATIO: 54.92% 4.393 bpB
TIME: 2sec 234msec
SPEED: 42.69 MB/sec
Hey! What algorithm do you use? I think a discussion like this would be interesting http://www.encode.su/images/smilies/lol.gif
Greets
My guess would be LZ77?
Ok, viewed from the speed side, but why "bit compressor"?
(hey, i won't accept an answer like a byte is a group of 8 bits http://www.encode.su/images/smilies/wink.gif )
The algorithm from me used uses my usual filter lzp that can already see the Hook! Nevertheless to try to save memory in to compress the bit have created a based system on I use him/it of HASH that allows me to find an optimal context in which to compress the single bit! be an arithmetic compressor as Hook, Winturtle, Paq etc.! I think that can improve at least I hope!
For toffer!
- Turtle is arithmetic compressor based to bytes context!
- With Rings have wanted to move the context in the combination of the bit separating him/it in 8 channels!
Sorry, i didn't understand the second sentence.
You mean that you select a context (which should provide a match) and encode a match as a single bit?
I intend to say that the single Byte that don't succeed in compressing with the preprocessor LZP instead of for instance compressing him/it in a formed context from the two Byteses precenti I compress him/it in a base to 8 based separate contexts on the sequence of the bit!
Example:
00100100_10001101_0101000100010100101011010
Normal context 2 bytes old
00100100_10001101_................................ ...................
Rings context 16 bits old in 8 channels:
for bit 0 - 01....
bit 1 - 00...
but 2 - 10...
..
..
for bit 7 -01
etc...
I still didn't understood properly.
Bit k of the first uncompressed byte is coded in a context built from the k-th bits of the previous bytes?
char* pos // current position
the numbers below name the bit indices
pos[-2]_____pos[-1]___pos[1] next byte
76543210_76543210__76543210
^b________^a________^ code msb first -> bit = pos[1]&0x80
code "bit" in a context built from "b" and "a": (pos[-2]&1)<<1|(pos[-1]&1) ...
I can't see how this would improve compression, since it lacks the "natural" relationship of the coded data, which is byte oriented (and modelling makes sense on byte boundaries, this can however be "emulated" using binary contexts aligend at byte boundaries, like a lot of contextmixers do).
Greets
Rings preudo code:
void Hash(int bit)
{
state[channel]=Hash -> y;
}
update probability ()
{
probability = context[position bit][state[channel]] [bit]
Hash(y);
}
You mean it uses LZP and codes literals using an order-2 model with arithmetic coding?
Ok, i think i got it now, context[<bit position:0..7>][<some hash>][<bit to be coded>]. channel ranges from 0 to 7, so you represent a byte as 8 (seperate?) bit channels?
If I'm wrong, i'll give up http://www.encode.su/images/smilies/sad.gif
For Matt and toffer:
Yes! use LZP preprocessor whit hash (max order 5) !
use order indefinited of bits stored to 16 bit (hash calculated)->state[channel] is short!
code:
unsigned short channel[8][65536][2];
unsigned short state[16];
guide:
1 channel and 1 bit state for jpeg, mpeg ect;
1 channel and 8 bits state for txt, bmp etc;
x channel and 8 bits state for wave,aiff;
Ok, now i got it! Thanks http://www.encode.su/images/smilies/lol.gif
RINGS V0.2
Copyright ® 2007 by Nania Francesco Antonio (Italy).
All rights reserved.
file compressor only for testing
Max 16 MB of Memory.
INSTRUCTIONS :
To compress rings c in out
To decompress rings d in
FILTER for:
-EXE
-BMP
-TIFF
-PGM
-WAVE
link:
http://www.winturtle.netsons.org/
Awesome! http://www.encode.su/images/smilies/cool.gif Thanks Francesco! http://www.encode.su/images/smilies/grin.gif
Will you also be adding more filters to HOOK?
Yes in the next release! Hi!
I look forward to the next release! http://www.encode.su/images/smilies/cool.gifQuote:
Originally Posted by Nania Francesco Antonio
Quick test...
RINGS v0.1:
A10.jpg > 819,169
AcroRd32.exe > 1,686,718
english.dic > 949,556
FlashMX.pdf > 3,863,261
FP.LOG > 1,111,553
MSO97.DLL > 2,112,343
ohs.doc > 887,924
rafale.bmp > 1,333,206
vcfiu.hlp > 865,938
world95.txt > 840,567
Total = 14,470,235 bytes
ENWIK8 > 35,693,969 bytes
RINGS v0.2:
A10.jpg > 819,169
AcroRd32.exe > 1,686,718
english.dic > 949,556
FlashMX.pdf > 3,863,261
FP.LOG > 1,111,553
MSO97.DLL > 2,112,343
ohs.doc > 887,924
rafale.bmp > 1,169,927
vcfiu.hlp > 865,938
world95.txt > 840,567
Total = 14,306,956 bytes
ENWIK8 > 35,693,969 bytes
Test results here also updated to include RINGS v0.2.
RINGS V0.2
Copyright ® 2007 by Nania Francesco Antonio (Italy). All rights reserved.
file compressor only for testing
Max 16 MB of Memory.
BETTER Compression!
link
http://www.winturtle.netsons.org/rings.zip
I naturally correct me RINGS version 0.3!
Merry XMAS ! Hi!
Thanks Francesco! http://www.encode.su/images/smilies/good.gif Merry XMAS!
RINGS 1.0 released
- Max 50 MB of memory!
- Pure Power!
- New FCM (Fast Context Mixing) engine!
Warning: Only for testing
Copyright ® 2007 by Nania Francesco Antonio (Italy). All rights reserved.
link:
http://www.winturtle.netsons.org/rings.zip
Sounds good, test of maximumcompression set was ok (also only ok http://www.encode.su/images/smilies/wink.gif). But I don?t know the speed of the others (ccm, lpaq...), this was very quick.
I will wait for your own testset. http://www.encode.su/images/smilies/up.gif
maximumcompression testset: 12.621.494 bytes
SFC 12.6 mb? 50 mb of RAM? Reminds me of CMM1... http://www.encode.su/images/smilies/wink.gif