[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-dev] SF.net SVN: quarks:[1307] redSys



Revision: 1307
          http://quarks.svn.sourceforge.net/quarks/?rev=1307&view=rev
Author:   redFrik
Date:     2009-12-31 00:44:34 +0000 (Thu, 31 Dec 2009)

Log Message:
-----------
added RedLZSS

Modified Paths:
--------------
    redSys/RedSys.html
    redSys/redTools/RedBase64.html
    redSys/redTools/RedHuffman.html
    redSys/redTools/RedLZ77.html
    redSys/redTools/RedLZW.html
    redSys/redTools/RedLZW.sc
    redSys/redTools/RedRLE.html

Added Paths:
-----------
    redSys/redTools/RedLZSS.html
    redSys/redTools/RedLZSS.sc

Modified: redSys/RedSys.html
===================================================================
--- redSys/RedSys.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/RedSys.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,11 +9,11 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #843424}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #7a3827}
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001fe8}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0d32ac}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #1337a8}
 span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0d32ac}
+span.s2 {color: #1337a8}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
 span.s5 {text-decoration: underline ; color: #001fe8}
@@ -120,7 +120,7 @@
 <p class="p2"><br></p>
 <p class="p2"><br></p>
 <p class="p3">//--changes 091230:</p>
-<p class="p3">//added RedLZ77</p>
+<p class="p3">//added RedLZ77, RedLZSS</p>
 <p class="p3">//modified RedRLE to take arrays instead of strings</p>
 <p class="p3">//--changes 091229:</p>
 <p class="p3">//added RedRLE</p>

Modified: redSys/redTools/RedBase64.html
===================================================================
--- redSys/redTools/RedBase64.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedBase64.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,24 +9,23 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #653f2e}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0022f8}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4b4238; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #653f2e; min-height: 12.0px}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #604030}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4a4239; min-height: 12.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #604030; min-height: 12.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
-span.s5 {text-decoration: underline ; color: #001fe8}
-span.s6 {color: #214fdb}
-span.s7 {color: #0022f8}
-span.s8 {color: #1142e6}
-span.s9 {color: #0000bf}
-span.s10 {color: #606060}
+span.s5 {color: #2854d6}
+span.s6 {color: #0000ff}
+span.s7 {color: #1949e0}
+span.s8 {color: #0019ba}
+span.s9 {color: #606060}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -35,7 +34,7 @@
 <p class="p2"><br></p>
 <p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//en.wikipedia.org/wiki/Base64</span></p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s2">see also: <a href="RedLZ77.html"><span class="s5">RedLZ77</span></a> <a href="RedLZW.html"><span class="s5">RedLZW</span></a></span><span class="s6"> <a href="RedHuffman.html"><span class="s7">RedHuffman</span></a></span><span class="s8"> <a href="RedRLE.html"><span class="s7">RedRLE</span></a></span></p>
+<p class="p4"><span class="s2">see also: <a href="RedLZ77.html"><span class="s4">RedLZ77</span></a> <a href="RedLZSS.html">RedLZSS</a> <a href="RedLZW.html"><span class="s4">RedLZW</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span><span class="s7"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*encode(string)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*decode(string)</b></p>
@@ -44,18 +43,18 @@
 <p class="p6"><br></p>
 <p class="p7">//--</p>
 <p class="p8"><span class="s2">a= </span>"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."<span class="s2">;</span></p>
-<p class="p9">b= <span class="s9">RedBase64</span>.encode(a);</p>
-<p class="p9">c= <span class="s9">RedBase64</span>.decode(b);</p>
+<p class="p9">b= <span class="s8">RedBase64</span>.encode(a);</p>
+<p class="p9">c= <span class="s8">RedBase64</span>.decode(b);</p>
 <p class="p9">a==c</p>
 <p class="p10"><br></p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(a.keep(a.size-0));</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(a.keep(a.size-1));</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(a.keep(a.size-2));</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(a.keep(a.size-3));</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(a.keep(a.size-0));</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(a.keep(a.size-1));</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(a.keep(a.size-2));</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(a.keep(a.size-3));</p>
 <p class="p10"><br></p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(<span class="s10">"leasure."</span>);</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(<span class="s10">"easure."</span>);</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(<span class="s10">"asure."</span>);</p>
-<p class="p9"><span class="s9">RedBase64</span>.encode(<span class="s10">"sure."</span>);</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(<span class="s9">"leasure."</span>);</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(<span class="s9">"easure."</span>);</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(<span class="s9">"asure."</span>);</p>
+<p class="p9"><span class="s8">RedBase64</span>.encode(<span class="s9">"sure."</span>);</p>
 </body>
 </html>

Modified: redSys/redTools/RedHuffman.html
===================================================================
--- redSys/redTools/RedHuffman.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedHuffman.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,22 +9,22 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #574233}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #001fe8}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #47423b; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #544234; min-height: 12.0px}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #544234}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #46423b; min-height: 12.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #514235; min-height: 12.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13; min-height: 12.0px}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b; min-height: 12.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
-span.s5 {color: #1e49cd}
-span.s6 {color: #0030f2}
-span.s7 {color: #0019ba}
+span.s5 {color: #254ec8}
+span.s6 {color: #0000ff}
+span.s7 {color: #0024b5}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -34,7 +34,7 @@
 <p class="p1"><i>"to use fewer bits for more frequently occurring character"</i></p>
 <p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//www.cs.duke.edu/csed/poop/huff/info/</span></p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s4">RedBase64</span></a> <a href="RedLZ77.html"><span class="s4">RedLZ77</span></a> <a href="RedLZW.html"><span class="s4">RedLZW</span></a></span><span class="s5"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
+<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s4">RedBase64</span></a> <a href="RedLZ77.html"><span class="s4">RedLZ77</span></a> <a href="RedLZSS.html">RedLZSS</a> <a href="RedLZW.html"><span class="s4">RedLZW</span></a></span><span class="s5"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*encode(string)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>encodes a string with ascii characters into a string with binary numbers.</p>

Modified: redSys/redTools/RedLZ77.html
===================================================================
--- redSys/redTools/RedLZ77.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedLZ77.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,27 +9,26 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #6b3d2c}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #1949e0}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #653f2e}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #843424}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20; min-height: 12.0px}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b; min-height: 12.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #843424; min-height: 12.0px}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20; min-height: 12.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
-span.s5 {text-decoration: underline ; color: #1744d2}
-span.s6 {color: #4a67bc}
-span.s7 {color: #1949e0}
+span.s5 {color: #4e69b8}
+span.s6 {color: #0000ff}
+span.s7 {color: #4565c0}
 span.s8 {color: #4062c4}
-span.s9 {color: #3b5fc8}
-span.s10 {color: #062cb0}
-span.s11 {color: #902f20}
-span.s12 {color: #0024b5}
-span.s13 {color: #9d281b}
+span.s9 {color: #0d32ac}
+span.s10 {color: #843424}
+span.s11 {color: #062cb0}
+span.s12 {color: #902f20}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -39,7 +38,7 @@
 <p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//michael.dipperstein.com/lzss/</span></p>
 <p class="p3"><span class="s2">and </span><span class="s3">http:</span><span class="s4">//www.binaryessence.com/dct/en000138.htm</span></p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s5">RedBase64</span></a></span><span class="s6"> <a href="RedHuffman.html"><span class="s7">RedHuffman</span></a></span><span class="s8"> <a href="RedLZW.html"><span class="s7">RedLZW</span></a></span><span class="s9"> <a href="RedRLE.html"><span class="s7">RedRLE</span></a></span></p>
+<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s4">RedBase64</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span><span class="s7"> <a href="RedLZSS.html"><span class="s6">RedLZSS</span></a> <a href="RedLZW.html"><span class="s6">RedLZW</span></a></span><span class="s8"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*compress(string)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an array with distance, length, value...</p>
@@ -53,41 +52,41 @@
 <p class="p5"><br></p>
 <p class="p6">//--</p>
 <p class="p7"><span class="s2">a= </span>"AABCBBABC"<span class="s2">.ascii;</span></p>
-<p class="p8">b= <span class="s10">RedLZ77</span>.compress(a);</p>
-<p class="p8">c= <span class="s10">RedLZ77</span>.decompress(b);</p>
+<p class="p8">b= <span class="s9">RedLZ77</span>.compress(a);</p>
+<p class="p8">c= <span class="s9">RedLZ77</span>.decompress(b);</p>
 <p class="p8">a==c</p>
 <p class="p5"><br></p>
 <p class="p9"><br></p>
 <p class="p7"><span class="s2">a= </span>"abracadabra"<span class="s2">.ascii;</span></p>
-<p class="p8">b= <span class="s10">RedLZ77</span>.compress(a);</p>
-<p class="p8">c= <span class="s10">RedLZ77</span>.decompress(b);</p>
+<p class="p8">b= <span class="s9">RedLZ77</span>.compress(a);</p>
+<p class="p8">c= <span class="s9">RedLZ77</span>.decompress(b);</p>
 <p class="p8">a==c</p>
 <p class="p5"><br></p>
 <p class="p9"><br></p>
 <p class="p7"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">.ascii;</span></p>
 <p class="p8">a.size;</p>
-<p class="p8">b= <span class="s10">RedLZ77</span>.compress(a);</p>
-<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s11">//compressed 52%</span></p>
-<p class="p8">c= <span class="s10">RedLZ77</span>.decompress(b);</p>
+<p class="p8">b= <span class="s9">RedLZ77</span>.compress(a);</p>
+<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s10">//compressed 52%</span></p>
+<p class="p8">c= <span class="s9">RedLZ77</span>.decompress(b);</p>
 <p class="p8">c.size</p>
 <p class="p8">a==c</p>
 <p class="p5"><br></p>
 <p class="p9"><br></p>
 <p class="p7"><span class="s2">a= </span>"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."<span class="s2">.ascii;</span></p>
 <p class="p8">a.size;</p>
-<p class="p8">b= <span class="s10">RedLZ77</span>.compress(a);</p>
-<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s11">//117%</span></p>
-<p class="p8">c= <span class="s10">RedLZ77</span>.decompress(b);</p>
-<p class="p8">c.collect{<span class="s10">|x|</span> x.asAscii}.join;</p>
+<p class="p8">b= <span class="s9">RedLZ77</span>.compress(a);</p>
+<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s10">//117%</span></p>
+<p class="p8">c= <span class="s9">RedLZ77</span>.decompress(b);</p>
+<p class="p8">c.collect{<span class="s9">|x|</span> x.asAscii}.join;</p>
 <p class="p8">c.size</p>
 <p class="p8">a==c</p>
 <p class="p5"><br></p>
 <p class="p10"><br></p>
 <p class="p8">a= {[0, 0, 0, 0.1].choose}.dup(5000);</p>
 <p class="p8">a.size;</p>
-<p class="p8">b= <span class="s12">RedLZ77</span>.compress(a);</p>
-<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s13">//around 21%</span></p>
-<p class="p8">c= <span class="s12">RedLZ77</span>.decompress(b);</p>
+<p class="p8">b= <span class="s11">RedLZ77</span>.compress(a);</p>
+<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s12">//around 21%</span></p>
+<p class="p8">c= <span class="s11">RedLZ77</span>.decompress(b);</p>
 <p class="p8">c.size</p>
 <p class="p8">a==c</p>
 </body>

Added: redSys/redTools/RedLZSS.html
===================================================================
--- redSys/redTools/RedLZSS.html	                        (rev 0)
+++ redSys/redTools/RedLZSS.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd";>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<title></title>
+<meta name="Generator" content="Cocoa HTML Writer">
+<meta name="CocoaVersion" content="949.54">
+<style type="text/css">
+p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
+p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #9d281b}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0022f8}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b; min-height: 12.0px}
+p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #bf0000}
+p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+span.s1 {font: 18.0px Helvetica}
+span.s2 {color: #000000}
+span.s3 {text-decoration: underline ; color: #000000}
+span.s4 {text-decoration: underline}
+span.s5 {text-decoration: underline ; color: #001fe8}
+span.s6 {color: #5c70ac}
+span.s7 {color: #0022f8}
+span.s8 {color: #566db2}
+span.s9 {color: #526bb5}
+span.s10 {color: #0000bf}
+span.s11 {color: #bf0000}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>RedLZSS</b></span><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>lzss compression/decompression</b></p>
+<p class="p2"><br></p>
+<p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//michael.dipperstein.com/lzss/</span></p>
+<p class="p3"><span class="s2">and </span><span class="s3">http:</span><span class="s4">//en.wikipedia.org/wiki/Lempel-Ziv-Storer-Szymanski</span></p>
+<p class="p2"><br></p>
+<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s5">RedBase64</span></a></span><span class="s6"> <a href="RedHuffman.html"><span class="s7">RedHuffman</span></a></span><span class="s8"> <a href="RedLZ77.html"><span class="s7">RedLZ77</span></a> <a href="RedLZW.html"><span class="s7">RedLZW</span></a></span><span class="s9"> <a href="RedRLE.html"><span class="s7">RedRLE</span></a></span></p>
+<p class="p2"><br></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>*compress(array)</b></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>expects an array with 8bit integers</p>
+<p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns a string with binary numbers</p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>*decompress(string)</b></p>
+<p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>expects a string with binary numbers</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>returns an array with 8bit integers</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>*binaryStringToBytes(string)</b></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>convert a binary string into 8-bit bytes.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>up to 7 zeros might be padded automatically at the end.<span class="Apple-converted-space">  </span>the number of zeros is stored in <b>pad</b>.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><b>pad</b> is semi-private and used when converting back to bytes.</p>
+<p class="p1"><b><span class="Apple-tab-span">	</span>*bytesToBinaryString(array)</b></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>convert an array of 8-bit bytes into a binary string.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>&lt;&gt;window</b></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>maximum sliding window size.<span class="Apple-converted-space">  </span>default= 4096</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>&lt;&gt;length</b></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>maximum length for matching pattern.<span class="Apple-converted-space">  </span>default= 16</p>
+<p class="p1"><span class="Apple-tab-span">	</span><b>&lt;&gt;pad</b></p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>semi-private counter for number of padded zeros.</p>
+<p class="p1"><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span>set by <b>binaryStringToBytes</b> and read by <b>bytesToBinaryString</b>.</p>
+<p class="p5"><br></p>
+<p class="p6"><br></p>
+<p class="p7">//--</p>
+<p class="p8"><span class="s2">a= </span>"AABCBBABC"<span class="s2">.ascii;</span></p>
+<p class="p9">b= <span class="s10">RedLZSS</span>.compress(a);</p>
+<p class="p9">c= <span class="s10">RedLZSS</span>.decompress(b);</p>
+<p class="p9">c.collect{<span class="s10">|x|</span> x.asAscii}.join;</p>
+<p class="p9">a==c</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p8"><span class="s2">a= </span>"abracadabra"<span class="s2">.ascii;</span></p>
+<p class="p9">b= <span class="s10">RedLZSS</span>.compress(a);</p>
+<p class="p9">c= <span class="s10">RedLZSS</span>.decompress(b);</p>
+<p class="p9">a==c</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p8"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">.ascii;</span></p>
+<p class="p9">b= <span class="s10">RedLZSS</span>.compress(a);</p>
+<p class="p9">c= <span class="s10">RedLZSS</span>.binaryStringToBytes(b);</p>
+<p class="p7"><span class="s2">c.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//compressed 37.5%</p>
+<p class="p9">d= <span class="s10">RedLZSS</span>.bytesToBinaryString(c);</p>
+<p class="p9">e= <span class="s10">RedLZSS</span>.decompress(d);</p>
+<p class="p9">e.collect{<span class="s10">|x|</span> x.asAscii}.join;</p>
+<p class="p9">a==e</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p8"><span class="s2">a= </span>"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."<span class="s2">.ascii;</span></p>
+<p class="p9">a.size;</p>
+<p class="p9">b= <span class="s10">RedLZSS</span>.compress(a);</p>
+<p class="p9">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s11">//117%</span></p>
+<p class="p9">c= <span class="s10">RedLZSS</span>.decompress(b);</p>
+<p class="p9">c.collect{<span class="s10">|x|</span> x.asAscii}.join;</p>
+<p class="p9">c.size</p>
+<p class="p9">a==c</p>
+<p class="p10"><br></p>
+<p class="p10"><br></p>
+<p class="p9">a= {[0, 0, 0, 1].choose}.dup(5000);</p>
+<p class="p9">a.size;</p>
+<p class="p9">b= <span class="s10">RedLZSS</span>.compress(a);</p>
+<p class="p9">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s11">//around 21%</span></p>
+<p class="p9">c= <span class="s10">RedLZSS</span>.decompress(b);</p>
+<p class="p9">c.size</p>
+<p class="p9">a==c</p>
+</body>
+</html>

Added: redSys/redTools/RedLZSS.sc
===================================================================
--- redSys/redTools/RedLZSS.sc	                        (rev 0)
+++ redSys/redTools/RedLZSS.sc	2009-12-31 00:44:34 UTC (rev 1307)
@@ -0,0 +1,81 @@
+//redFrik
+
+RedLZSS {
+	classvar <>window= 4096, <>length= 16, <>pad;
+	
+	*compress {|input|
+		var out= "", i= 0, match, len, j, sub, win;
+		var bitsWin= window.log2.ceil.asInteger;
+		var bitsLen= length.log2.ceil.asInteger;
+		while({i<input.size}, {
+			match= nil;
+			j= length-1;
+			while({match.isNil and:{j>=0}}, {
+				sub= input.copyRange(i, i+j);
+				j= j.min(sub.size-1);
+				win= input.copyRange((i-window+1).max(0), i-1);
+				match= win.find(sub);
+				j= j-1;
+			});
+			if(match.isNil, {
+				out= out++0++sub[0].asBinaryString(8);
+				i= i+1;
+			}, {
+				len= sub.size;
+				if(len>2, {
+					out= out++1++(i.min(window-1)-match-1).asBinaryString(bitsWin)++(len-2).asBinaryString(bitsLen);
+					if(i+len<input.size, {
+						out= out++input[i+len].asBinaryString(8);
+					});
+					i= i+len+1;
+				}, {
+					sub.do{|x|
+						out= out++0++x.asBinaryString(8);
+						i= i+1;
+					};
+				});
+			});
+		});
+		^out;
+	}
+	*decompress {|input|
+		var out= [], i= 0, match, len;
+		var bitsWin= window.log2.ceil.asInteger;
+		var bitsLen= length.log2.ceil.asInteger;
+		while({i<input.size}, {
+			if(input[i].digit==0, {
+				out= out++("2r"++input.copyRange(i+1, i+8)).interpret;
+				i= i+9;
+			}, {
+				i= i+1;
+				match= ("2r"++input.copyRange(i, i+bitsWin-1)).interpret;
+				i= i+bitsWin;
+				len= ("2r"++input.copyRange(i, i+bitsLen-1)).interpret+2;
+				i= i+bitsLen;
+				match= out.size-match-1;
+				out= out++out.copyRange(match, match+len-1);
+				if(i<input.size, {
+					out= out++("2r"++input.copyRange(i, i+7)).interpret;
+				});
+				i= i+8;
+			});
+		});
+		^out;
+	}
+	*binaryStringToBytes {|str|
+		pad= 0;
+		^str.clump(8).collect{|x|
+			while({x.size<8}, {
+				x= x++0;
+				pad= pad+1;
+			});
+			("2r"++x).interpret;
+		};
+	}
+	*bytesToBinaryString {|arr|
+		var str= arr.collect{|x|
+			x.asBinaryString(8);
+		}.join;
+		^str.copyRange(0, str.size-1-pad);
+	}
+}

Modified: redSys/redTools/RedLZW.html
===================================================================
--- redSys/redTools/RedLZW.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedLZW.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,20 +9,21 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #7a3827}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #6b3d2c}
 p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
-span.s5 {color: #1949e0}
+span.s5 {color: #2854d6}
 span.s6 {color: #0000ff}
-span.s7 {color: #083aec}
-span.s8 {color: #0019ba}
+span.s7 {color: #1949e0}
+span.s8 {color: #062cb0}
+span.s9 {color: #ad1d13}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -32,7 +33,7 @@
 <p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//en.wikipedia.org/wiki/LZW</span></p>
 <p class="p3"><span class="s2">and </span><span class="s3">http:</span><span class="s4">//marknelson.us/1989/10/01/lzw-data-compression/</span></p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s2">see also: <a href="RedLZ77.html">RedLZ77</a> <a href="RedBase64.html">RedBase64</a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span><span class="s7"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
+<p class="p4"><span class="s2">see also: <a href="RedLZ77.html"><span class="s4">RedLZ77</span></a> <a href="RedLZSS.html">RedLZSS</a> <a href="RedBase64.html"><span class="s4">RedBase64</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span><span class="s7"> <a href="RedRLE.html"><span class="s6">RedRLE</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*compress(string)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an array with integers</p>
@@ -65,5 +66,13 @@
 <p class="p8">c= <span class="s8">RedLZW</span>.decompress(b);</p>
 <p class="p8">c.size;</p>
 <p class="p8">a==c;</p>
+<p class="p5"><br></p>
+<p class="p7"><span class="s2">a= </span>"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."<span class="s2">;</span></p>
+<p class="p8">a.size;</p>
+<p class="p8">b= <span class="s8">RedLZW</span>.compress(a);</p>
+<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s9">//69%</span></p>
+<p class="p8">c= <span class="s8">RedLZW</span>.decompress(b);</p>
+<p class="p8">c.size;</p>
+<p class="p8">a==c;</p>
 </body>
 </html>

Modified: redSys/redTools/RedLZW.sc
===================================================================
--- redSys/redTools/RedLZW.sc	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedLZW.sc	2009-12-31 00:44:34 UTC (rev 1307)
@@ -54,5 +54,4 @@
 		};
 		^res.add(dict.indexOf(old));				//array of 9bit integers
 	}
-
 }

Modified: redSys/redTools/RedRLE.html
===================================================================
--- redSys/redTools/RedRLE.html	2009-12-30 20:10:11 UTC (rev 1306)
+++ redSys/redTools/RedRLE.html	2009-12-31 00:44:34 UTC (rev 1307)
@@ -9,23 +9,22 @@
 <style type="text/css">
 p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
 p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px}
-p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #653f2e}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #083aec}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #604030}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0000ff}
 p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20}
 p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #606060}
 p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b; min-height: 12.0px}
+p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #902f20; min-height: 12.0px}
 span.s1 {font: 18.0px Helvetica}
 span.s2 {color: #000000}
 span.s3 {text-decoration: underline ; color: #000000}
 span.s4 {text-decoration: underline}
-span.s5 {text-decoration: underline ; color: #0736dc}
-span.s6 {color: #4a67bc}
-span.s7 {color: #083aec}
-span.s8 {color: #4062c4}
-span.s9 {color: #0024b5}
-span.s10 {color: #9d281b}
+span.s5 {color: #4e69b8}
+span.s6 {color: #0000ff}
+span.s7 {color: #4565c0}
+span.s8 {color: #062cb0}
+span.s9 {color: #902f20}
 span.Apple-tab-span {white-space:pre}
 </style>
 </head>
@@ -34,7 +33,7 @@
 <p class="p2"><br></p>
 <p class="p3"><span class="s2">see </span><span class="s3">http:</span><span class="s4">//en.wikipedia.org/wiki/Run-length_encoding</span></p>
 <p class="p2"><br></p>
-<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s5">RedBase64</span></a></span><span class="s6"> <a href="RedHuffman.html"><span class="s7">RedHuffman</span></a></span><span class="s8"> <a href="RedLZ77.html"><span class="s7">RedLZ77</span></a> <a href="RedLZW.html"><span class="s7">RedLZW</span></a></span></p>
+<p class="p4"><span class="s2">see also: <a href="RedBase64.html"><span class="s4">RedBase64</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span><span class="s7"> <a href="RedLZ77.html"><span class="s6">RedLZ77</span></a> <a href="RedLZSS.html"><span class="s6">RedLZSS</span></a> <a href="RedLZW.html"><span class="s6">RedLZW</span></a></span></p>
 <p class="p2"><br></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span>*encode(array)</b></p>
 <p class="p1"><b><span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></b>returns an array with length, value pairs.</p>
@@ -45,28 +44,28 @@
 <p class="p6">//--</p>
 <p class="p7"><span class="s2">a= </span>"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"<span class="s2">.ascii;</span></p>
 <p class="p8">a.size;</p>
-<p class="p8">b= <span class="s9">RedRLE</span>.encode(a);</p>
-<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s10">//21% compressed</span></p>
-<p class="p8">c= <span class="s9">RedRLE</span>.decode(b);</p>
+<p class="p8">b= <span class="s8">RedRLE</span>.encode(a);</p>
+<p class="p8">b.size/a.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span><span class="s9">//21% compressed</span></p>
+<p class="p8">c= <span class="s8">RedRLE</span>.decode(b);</p>
 <p class="p8">c.size;</p>
 <p class="p8">a==c;</p>
-<p class="p8">c.collect{<span class="s9">|x|</span> x.asAscii}.join;</p>
+<p class="p8">c.collect{<span class="s8">|x|</span> x.asAscii}.join;</p>
 <p class="p5"><br></p>
 <p class="p9"><br></p>
 <p class="p7"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">.ascii;</span></p>
 <p class="p8">a.size;</p>
-<p class="p8">b= <span class="s9">RedRLE</span>.encode(a);</p>
+<p class="p8">b= <span class="s8">RedRLE</span>.encode(a);</p>
 <p class="p6"><span class="s2">b.size/c.size;<span class="Apple-tab-span">	</span><span class="Apple-tab-span">	</span></span>//167%<span class="Apple-converted-space">  </span>performs really bad with non repeating data</p>
-<p class="p8">c= <span class="s9">RedRLE</span>.decode(b);</p>
+<p class="p8">c= <span class="s8">RedRLE</span>.decode(b);</p>
 <p class="p8">c.size;</p>
 <p class="p8">a==c;</p>
-<p class="p8">c.collect{<span class="s9">|x|</span> x.asAscii}.join;</p>
+<p class="p8">c.collect{<span class="s8">|x|</span> x.asAscii}.join;</p>
 <p class="p5"><br></p>
 <p class="p9"><br></p>
 <p class="p8">a= {[0, 0, 0, 0, 0, 0.5].choose}.dup(1000);</p>
-<p class="p8">b= <span class="s9">RedRLE</span>.encode(a);</p>
+<p class="p8">b= <span class="s8">RedRLE</span>.encode(a);</p>
 <p class="p8">b.size/c.size;</p>
-<p class="p8">c= <span class="s9">RedRLE</span>.decode(b);</p>
+<p class="p8">c= <span class="s8">RedRLE</span>.decode(b);</p>
 <p class="p8">a==c;</p>
 </body>
 </html>


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-dev/
search: https://listarc.bham.ac.uk/lists/sc-dev/search/