[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: quarks:[1306] redSys
Revision: 1306
http://quarks.svn.sourceforge.net/quarks/?rev=1306&view=rev
Author: redFrik
Date: 2009-12-30 20:10:11 +0000 (Wed, 30 Dec 2009)
Log Message:
-----------
added RedLZ77 and a change to RedRLE
Modified Paths:
--------------
redSys/RedSys.html
redSys/redTools/RedBase64.html
redSys/redTools/RedHuffman.html
redSys/redTools/RedLZW.html
redSys/redTools/RedRLE.html
redSys/redTools/RedRLE.sc
Added Paths:
-----------
redSys/redTools/RedLZ77.html
redSys/redTools/RedLZ77.sc
Modified: redSys/RedSys.html
===================================================================
--- redSys/RedSys.html 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/RedSys.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -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: #ad1d13}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #843424}
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: #0019ba}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0d32ac}
span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #0019ba}
+span.s2 {color: #0d32ac}
span.s3 {text-decoration: underline ; color: #000000}
span.s4 {text-decoration: underline}
span.s5 {text-decoration: underline ; color: #001fe8}
@@ -96,6 +96,7 @@
<p class="p1"><span class="s5"><a href="redTools/RedBase64.html">RedBase64</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-base64 encoding/decoding</p>
<p class="p1"><span class="s5"><a href="redTools/RedHarmonicTree.html">RedHarmonicTree</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-sorted harmonic tree</p>
<p class="p1"><span class="s5"><a href="redTools/RedHuffman.html">RedHuffman</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-huffman coding</p>
+<p class="p1"><span class="s5"><a href="redTools/RedLZ77.html">RedLZ77</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-lz77 compression/decompression</p>
<p class="p1"><span class="s5"><a href="redTools/RedLZW.html">RedLZW</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-lzw compression/decompression</p>
<p class="p1"><span class="s5"><a href="redTools/Redraw.html">Redraw</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-simple drawing with the mouse</p>
<p class="p1"><span class="s5"><a href="redTools/RedRLE.html">RedRLE</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-run-length encoding/decodnig</p>
@@ -118,6 +119,9 @@
<p class="p1"><span class="s5"><a href="redUGens/RedTapeRecorder.html">RedTapeRecorder</a></span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-sampling and looping</p>
<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">//modified RedRLE to take arrays instead of strings</p>
<p class="p3">//--changes 091229:</p>
<p class="p3">//added RedRLE</p>
<p class="p3">//--changes 091226:</p>
Modified: redSys/redTools/RedBase64.html
===================================================================
--- redSys/redTools/RedBase64.html 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/redTools/RedBase64.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -9,23 +9,24 @@
<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: #723b2a}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0030f2}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #4f4236; min-height: 12.0px}
-p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #723b2a; min-height: 12.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.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; min-height: 12.0px}
-p.p10 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000}
+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 {color: #1142e6}
-span.s6 {color: #0030f2}
+span.s5 {text-decoration: underline ; color: #001fe8}
+span.s6 {color: #214fdb}
span.s7 {color: #0022f8}
-span.s8 {color: #0000bf}
-span.s9 {color: #606060}
+span.s8 {color: #1142e6}
+span.s9 {color: #0000bf}
+span.s10 {color: #606060}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -34,7 +35,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="RedLZW.html"><span class="s5">RedLZW</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span> <a href="RedRLE.html"><span class="s7">RedRLE</span></a></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="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>
@@ -43,18 +44,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"><br></p>
-<p class="p10">b= <span class="s8">RedBase64</span>.encode(a);</p>
-<p class="p10"><span class="s8">RedBase64</span>.decode(b);</p>
-<p class="p9"><br></p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(a.keep(a.size-0));</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(a.keep(a.size-1));</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(a.keep(a.size-2));</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(a.keep(a.size-3));</p>
-<p class="p9"><br></p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(<span class="s9">"leasure."</span>);</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(<span class="s9">"easure."</span>);</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(<span class="s9">"asure."</span>);</p>
-<p class="p10"><span class="s8">RedBase64</span>.encode(<span class="s9">"sure."</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">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="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>
</body>
</html>
Modified: redSys/redTools/RedHuffman.html
===================================================================
--- redSys/redTools/RedHuffman.html 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/redTools/RedHuffman.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -9,21 +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.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: #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: #bf0000}
+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.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}
+p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13; 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: #0736dc}
-span.s6 {color: #0022f8}
-span.s7 {color: #0000bf}
+span.s5 {color: #1e49cd}
+span.s6 {color: #0030f2}
+span.s7 {color: #0019ba}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -33,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="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="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>
@@ -57,25 +58,26 @@
<p class="p5"><br></p>
<p class="p6"><br></p>
<p class="p7">//--</p>
-<p class="p8"><span class="s2">a= </span><span class="s7">RedHuffman</span><span class="s2">.encode(</span>"streets are stone stars are not"<span class="s2">);</span></p>
-<p class="p9"><span class="s7">RedHuffman</span>.decode(a);</p>
+<p class="p8"><span class="s2">a= </span>"streets are stone stars are not"<span class="s2">;</span></p>
+<p class="p9">b= <span class="s7">RedHuffman</span>.encode(a);</p>
+<p class="p9">c= <span class="s7">RedHuffman</span>.decode(b);</p>
+<p class="p9">a==c</p>
<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p7">//--</p>
-<p class="p8"><span class="s2">a= </span><span class="s7">RedHuffman</span><span class="s2">.encode(</span>"go go gophers"<span class="s2">);</span></p>
+<p class="p11"><br></p>
+<p class="p8"><span class="s2">a= </span>"go go gophers"<span class="s2">;</span></p>
+<p class="p9">b= <span class="s7">RedHuffman</span>.encode(a);</p>
<p class="p7"><span class="s7">RedHuffman</span><span class="s2">.tree;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>//current tree</p>
<p class="p7"><span class="s7">RedHuffman</span><span class="s2">.dict;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>//current dict</p>
-<p class="p9"><span class="s7">RedHuffman</span>.decode(a);</p>
+<p class="p9">c= <span class="s7">RedHuffman</span>.decode(b);</p>
+<p class="p9">a==c</p>
<p class="p10"><br></p>
-<p class="p10"><br></p>
-<p class="p7">//--</p>
-<p class="p8"><span class="s2">b= </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">a= <span class="s7">RedHuffman</span>.encode(b);</p>
-<p class="p10"><br></p>
-<p class="p9">c= <span class="s7">RedHuffman</span>.binaryStringToBytes(a);</p>
-<p class="p7"><span class="s2">c.size/b.size;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>//53% smaller than the original</p>
-<p class="p10"><br></p>
+<p class="p11"><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">;</span></p>
+<p class="p9">b= <span class="s7">RedHuffman</span>.encode(a);</p>
+<p class="p9">c= <span class="s7">RedHuffman</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>//53% smaller than the original</p>
<p class="p9">d= <span class="s7">RedHuffman</span>.bytesToBinaryString(c);</p>
-<p class="p9"><span class="s7">RedHuffman</span>.decode(d);</p>
+<p class="p9">e= <span class="s7">RedHuffman</span>.decode(d);</p>
+<p class="p9">e==a</p>
</body>
</html>
Added: redSys/redTools/RedLZ77.html
===================================================================
--- redSys/redTools/RedLZ77.html (rev 0)
+++ redSys/redTools/RedLZ77.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -0,0 +1,94 @@
+<!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: #6b3d2c}
+p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #1949e0}
+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.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}
+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.s8 {color: #4062c4}
+span.s9 {color: #3b5fc8}
+span.s10 {color: #062cb0}
+span.s11 {color: #902f20}
+span.s12 {color: #0024b5}
+span.s13 {color: #9d281b}
+span.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>RedLZ77</b></span><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>lz77 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">//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="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>
+<p class="p1"><b><span class="Apple-tab-span"> </span>*decompress(array)</b></p>
+<p class="p1"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>returns an array</p>
+<p class="p1"><span class="Apple-tab-span"> </span><b><>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><>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="p5"><br></p>
+<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">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">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">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">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">c.size</p>
+<p class="p8">a==c</p>
+</body>
+</html>
Added: redSys/redTools/RedLZ77.sc
===================================================================
--- redSys/redTools/RedLZ77.sc (rev 0)
+++ redSys/redTools/RedLZ77.sc 2009-12-30 20:10:11 UTC (rev 1306)
@@ -0,0 +1,49 @@
+//redFrik
+
+RedLZ77 {
+ classvar <>window= 4096, <>length= 16;
+
+ *compress {|input|
+ var out= [], i= 0, match, len, j, sub, win;
+ 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, 0, sub[0]];
+ i= i+1;
+ }, {
+ len= sub.size;
+ out= out++[i.min(window-1)-match-1, len];
+ if(i+len<input.size, {
+ out= out++input[i+len];
+ });
+ i= i+len+1;
+ });
+ });
+ ^out;
+ }
+ *decompress {|input|
+ var out= [], i= 0, match, len;
+ while({i<input.size}, {
+ len= input[i+1];
+ if(len==0, {
+ out= out++input[i+2];
+ }, {
+ match= out.size-input[i]-1;
+ out= out++out.copyRange(match, match+len-1);
+ if(i+2<input.size, {
+ out= out++input[i+2];
+ });
+ });
+ i= i+3;
+ });
+ ^out;
+ }
+}
Modified: redSys/redTools/RedLZW.html
===================================================================
--- redSys/redTools/RedLZW.html 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/redTools/RedLZW.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -9,21 +9,20 @@
<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.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0030f2}
+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: #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: #bf0000}
+p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #ad1d13}
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; color: #000000}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #000000; min-height: 12.0px}
+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: #1142e6}
-span.s6 {color: #0030f2}
-span.s7 {color: #0022f8}
-span.s8 {color: #0000bf}
+span.s5 {color: #1949e0}
+span.s6 {color: #0000ff}
+span.s7 {color: #083aec}
+span.s8 {color: #0019ba}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -33,7 +32,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="RedBase64.html"><span class="s5">RedBase64</span></a></span><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span> <a href="RedRLE.html"><span class="s7">RedRLE</span></a></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="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>
@@ -50,7 +49,7 @@
<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="p9"><br></p>
+<p class="p5"><br></p>
<p class="p7"><span class="s2">a= </span>"/WED/WE/WEE/WEB/WET"<span class="s2">;</span></p>
<p class="p8">a.size;</p>
<p class="p8">b= <span class="s8">RedLZW</span>.compress(a);</p>
@@ -58,7 +57,7 @@
<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="p9"><br></p>
+<p class="p5"><br></p>
<p class="p7"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">;</span></p>
<p class="p8">a.size;</p>
<p class="p8">b= <span class="s8">RedLZW</span>.compress(a);</p>
Modified: redSys/redTools/RedRLE.html
===================================================================
--- redSys/redTools/RedRLE.html 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/redTools/RedRLE.html 2009-12-30 20:10:11 UTC (rev 1306)
@@ -9,21 +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: #843424}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0030f2}
+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.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: #9d281b}
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}
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: #002ce2}
-span.s6 {color: #355ccc}
-span.s7 {color: #0030f2}
-span.s8 {color: #2854d6}
-span.s9 {color: #0019ba}
+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.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -32,30 +34,39 @@
<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="RedLZW.html"><span class="s7">RedLZW</span></a></span></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="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 integers</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>
<p class="p1"><b><span class="Apple-tab-span"> </span>*decode(array)</b></p>
-<p class="p1"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>array must be length, value pairs integers</p>
-<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>returns a string</p>
+<p class="p1"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>array must be length, value pairs.</p>
<p class="p5"><br></p>
<p class="p5"><br></p>
<p class="p6">//--</p>
-<p class="p7"><span class="s2">a= </span>"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"<span class="s2">;</span></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;</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">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="p5"><br></p>
-<p class="p7"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">;</span></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="p6"><span class="s2">b.size;<span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></span>//performs really bad with non repeating data</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.size;</p>
<p class="p8">a==c;</p>
+<p class="p8">c.collect{<span class="s9">|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.size/c.size;</p>
+<p class="p8">c= <span class="s9">RedRLE</span>.decode(b);</p>
+<p class="p8">a==c;</p>
</body>
</html>
Modified: redSys/redTools/RedRLE.sc
===================================================================
--- redSys/redTools/RedRLE.sc 2009-12-29 19:21:26 UTC (rev 1305)
+++ redSys/redTools/RedRLE.sc 2009-12-30 20:10:11 UTC (rev 1306)
@@ -2,25 +2,25 @@
RedRLE {
*encode {|input|
- var out= [], cnt, chr, i= 0;
+ var out= [], cnt, val, i= 0;
while({i<input.size}, {
cnt= 1;
- chr= input[i];
- while({i+1<input.size and:{input[i+1]==chr}}, {
+ val= input[i];
+ while({i+1<input.size and:{input[i+1]==val}}, {
cnt= cnt+1;
i= i+1;
});
- out= out++cnt++chr.ascii;
+ out= out++cnt++val;
i= i+1;
});
^out;
}
*decode {|input|
- var out= "", cnt, chr, i= 0;
+ var out= [], cnt, val, i= 0;
while({i<input.size}, {
cnt= input[i];
- chr= input[i+1].asAscii;
- out= out++chr.dup(cnt).join;
+ val= input[i+1];
+ out= out++val.dup(cnt);
i= i+2;
});
^out;
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/