[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-dev] SF.net SVN: quarks:[1305] redSys
Revision: 1305
http://quarks.svn.sourceforge.net/quarks/?rev=1305&view=rev
Author: redFrik
Date: 2009-12-29 19:21:26 +0000 (Tue, 29 Dec 2009)
Log Message:
-----------
added RedRLE and minor updates
Modified Paths:
--------------
redSys/RedSys.html
redSys/redTools/RedBase64.html
redSys/redTools/RedHuffman.html
redSys/redTools/RedHuffman.sc
redSys/redTools/RedLZW.html
Added Paths:
-----------
redSys/redTools/RedRLE.html
redSys/redTools/RedRLE.sc
Modified: redSys/RedSys.html
===================================================================
--- redSys/RedSys.html 2009-12-29 14:24:31 UTC (rev 1304)
+++ redSys/RedSys.html 2009-12-29 19:21:26 UTC (rev 1305)
@@ -9,16 +9,15 @@
<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: #902f20}
+p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #ad1d13}
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: #062cb0}
+p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #0019ba}
span.s1 {font: 18.0px Helvetica}
-span.s2 {color: #062cb0}
+span.s2 {color: #0019ba}
span.s3 {text-decoration: underline ; color: #000000}
span.s4 {text-decoration: underline}
span.s5 {text-decoration: underline ; color: #001fe8}
span.s6 {color: #000000}
-span.s7 {color: #0000ff}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -94,11 +93,12 @@
<p class="p1"><span class="s5"><a href="redTest/RedTest.html">RedTest</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>-generate test signals</p>
<p class="p2"><br></p>
<p class="p1"><span class="s4">redTools:</span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>-various</p>
-<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 and decoding</p>
+<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="s7"><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/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 and decompression</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/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>
<p class="p1"><span class="s5"><a href="redTools/RedTime.html">RedTime</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>-calculate with time</p>
<p class="p1"><span class="s5"><a href="redTools/RedToolsMenu.html">RedToolsMenu</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>-various tools</p>
<p class="p2"><br></p>
@@ -118,6 +118,8 @@
<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 091229:</p>
+<p class="p3">//added RedRLE</p>
<p class="p3">//--changes 091226:</p>
<p class="p3">//added RedHuffman</p>
<p class="p3">//--changes 091025:</p>
Modified: redSys/redTools/RedBase64.html
===================================================================
--- redSys/redTools/RedBase64.html 2009-12-29 14:24:31 UTC (rev 1304)
+++ redSys/redTools/RedBase64.html 2009-12-29 19:21:26 UTC (rev 1305)
@@ -9,50 +9,52 @@
<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: 9.0px Monaco; color: #544234; min-height: 12.0px}
-p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #843424; min-height: 12.0px}
-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; min-height: 12.0px}
-p.p9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+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.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}
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: #0030f2}
-span.s6 {color: #0000ff}
-span.s7 {color: #0024b5}
-span.s8 {color: #606060}
+span.s5 {color: #1142e6}
+span.s6 {color: #0030f2}
+span.s7 {color: #0022f8}
+span.s8 {color: #0000bf}
+span.s9 {color: #606060}
span.Apple-tab-span {white-space:pre}
</style>
</head>
<body>
-<p class="p1"><span class="s1"><b>RedBase64</b></span><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>base64 encoder/decoder</b></p>
+<p class="p1"><span class="s1"><b>RedBase64</b></span><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>base64 encoding/decoding</b></p>
<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="p1">see also: <a href="RedLZW.html"><span class="s5">RedLZW</span></a><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</span></a></span></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="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>
<p class="p1"><b><span class="Apple-tab-span"> </span><>map</b></p>
-<p class="p4"><br></p>
<p class="p5"><br></p>
-<p class="p6">//--</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"><br></p>
-<p class="p9">b= <span class="s7">RedBase64</span>.encode(a);</p>
-<p class="p9"><span class="s7">RedBase64</span>.decode(b)</p>
-<p class="p8"><br></p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(a.keep(a.size-0))</p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(a.keep(a.size-1))</p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(a.keep(a.size-2))</p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(a.keep(a.size-3))</p>
-<p class="p8"><br></p>
-<p class="p7"><span class="s7">RedBase64</span><span class="s2">.encode(</span>"leasure."<span class="s2">)</span></p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(<span class="s8">"easure."</span>)</p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(<span class="s8">"asure."</span>)</p>
-<p class="p9"><span class="s7">RedBase64</span>.encode(<span class="s8">"sure."</span>)</p>
+<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>
</body>
</html>
Modified: redSys/redTools/RedHuffman.html
===================================================================
--- redSys/redTools/RedHuffman.html 2009-12-29 14:24:31 UTC (rev 1304)
+++ redSys/redTools/RedHuffman.html 2009-12-29 19:21:26 UTC (rev 1305)
@@ -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.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: #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.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; color: #9d281b}
+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: #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.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: #0024b5}
+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: #0024b5}
+span.s5 {color: #0736dc}
+span.s6 {color: #0022f8}
+span.s7 {color: #0000bf}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -32,7 +33,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></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="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>
@@ -40,25 +41,41 @@
<p class="p1"><b><span class="Apple-tab-span"> </span>*decode(string)</b></p>
<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>decodes a binary string into a string with ascii characters.</p>
<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>make sure you use the tree and dict generated by the encode method.</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"><b><span class="Apple-tab-span"> </span><>tree</b></p>
<p class="p1"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>multi-level array with characters as leaves.</p>
<p class="p1"><b><span class="Apple-tab-span"> </span><>dict</b></p>
-<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>look-up dictionary with characters and binary strings</p>
+<p class="p1"><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>look-up dictionary with characters and binary strings.</p>
+<p class="p1"><span class="Apple-tab-span"> </span><b><>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><span class="s5">RedHuffman</span><span class="s2">.encode(</span>"streets are stone stars are not"<span class="s2">);</span></p>
-<p class="p9"><span class="s5">RedHuffman</span>.decode(a);</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="p10"><br></p>
-<p class="p8"><span class="s2">a= </span><span class="s5">RedHuffman</span><span class="s2">.encode(</span>"go go gophers"<span class="s2">)</span></p>
-<p class="p7"><span class="s5">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="s5">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="s5">RedHuffman</span>.decode(a)</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="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="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="s5">RedHuffman</span>.encode(b)</p>
-<p class="p11">RedHuffman<span class="s2">.tree</span></p>
-<p class="p11">RedHuffman<span class="s2">.dict</span></p>
-<p class="p9"><span class="s5">RedHuffman</span>.decode(a)</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="p9">d= <span class="s7">RedHuffman</span>.bytesToBinaryString(c);</p>
+<p class="p9"><span class="s7">RedHuffman</span>.decode(d);</p>
</body>
</html>
Modified: redSys/redTools/RedHuffman.sc
===================================================================
--- redSys/redTools/RedHuffman.sc 2009-12-29 14:24:31 UTC (rev 1304)
+++ redSys/redTools/RedHuffman.sc 2009-12-29 19:21:26 UTC (rev 1305)
@@ -1,13 +1,10 @@
//redFrik
-//--todo:
-//file read/write
-
RedHuffman {
- classvar <>tree, <>dict;
+ classvar <>tree, <>dict, <>pad;
*encode {|str|
- var out;
+ var out, n0, n1;
//--build a forest of small trees
tree= [];
@@ -22,8 +19,8 @@
//--collect greedy as a single big tree
while({tree.size>2}, {
- var n0= this.prTakeMinimum;
- var n1= this.prTakeMinimum;
+ n0= this.prTakeMinimum;
+ n1= this.prTakeMinimum;
tree= tree.add(([n0, n1] -> (n0.value+n1.value)));
});
@@ -52,7 +49,24 @@
};
^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);
+ }
+
//--private
*prTakeMinimum {
var ii, nn, min= 2147483647;
Modified: redSys/redTools/RedLZW.html
===================================================================
--- redSys/redTools/RedLZW.html 2009-12-29 14:24:31 UTC (rev 1304)
+++ redSys/redTools/RedLZW.html 2009-12-29 19:21:26 UTC (rev 1305)
@@ -9,18 +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: #9d281b}
-p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco; min-height: 12.0px}
-p.p5 {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: #606060}
-p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 9.0px Monaco}
+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.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.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}
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: #0030f2}
-span.s6 {color: #0000ff}
-span.s7 {color: #062cb0}
+span.s5 {color: #1142e6}
+span.s6 {color: #0030f2}
+span.s7 {color: #0022f8}
+span.s8 {color: #0000bf}
span.Apple-tab-span {white-space:pre}
</style>
</head>
@@ -30,38 +33,38 @@
<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="p1">see also: <a href="RedBase64.html"><span class="s5">RedBase64</span></a><span class="s5"> <a href="RedHuffman.html"><span class="s6">RedHuffman</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="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="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>
<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>array must be integers</p>
<p class="p1"><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span></b>returns a string</p>
-<p class="p4"><br></p>
-<p class="p4"><br></p>
-<p class="p5">//--</p>
-<p class="p6"><span class="s2">a= </span>"TOBEORNOTTOBEORTOBEORNOT"<span class="s2">;</span></p>
-<p class="p7">a.size;</p>
-<p class="p7">b= <span class="s7">RedLZW</span>.compress(a);</p>
-<p class="p7">b.size;</p>
-<p class="p7">c= <span class="s7">RedLZW</span>.decompress(b);</p>
-<p class="p7">c.size;</p>
-<p class="p7">a==c;</p>
-<p class="p4"><br></p>
-<p class="p6"><span class="s2">a= </span>"/WED/WE/WEE/WEB/WET"<span class="s2">;</span></p>
-<p class="p7">a.size;</p>
-<p class="p7">b= <span class="s7">RedLZW</span>.compress(a);</p>
-<p class="p7">b.size</p>
-<p class="p7">c= <span class="s7">RedLZW</span>.decompress(b);</p>
-<p class="p7">c.size</p>
-<p class="p7">a==c</p>
-<p class="p4"><br></p>
-<p class="p6"><span class="s2">a= </span>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">;</span></p>
-<p class="p7">a.size;</p>
-<p class="p7">b= <span class="s7">RedLZW</span>.compress(a);</p>
-<p class="p7">b.size</p>
-<p class="p7">c= <span class="s7">RedLZW</span>.decompress(b);</p>
-<p class="p7">c.size</p>
-<p class="p7">a==c</p>
+<p class="p5"><br></p>
+<p class="p5"><br></p>
+<p class="p6">//--</p>
+<p class="p7"><span class="s2">a= </span>"TOBEORNOTTOBEORTOBEORNOT"<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;</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>
+<p class="p9"><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>
+<p class="p8">b.size;</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>
+<p class="p9"><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>
+<p class="p8">b.size;</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>
Added: redSys/redTools/RedRLE.html
===================================================================
--- redSys/redTools/RedRLE.html (rev 0)
+++ redSys/redTools/RedRLE.html 2009-12-29 19:21:26 UTC (rev 1305)
@@ -0,0 +1,61 @@
+<!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: #843424}
+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; min-height: 12.0px}
+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}
+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.Apple-tab-span {white-space:pre}
+</style>
+</head>
+<body>
+<p class="p1"><span class="s1"><b>RedRLE</b></span><b><span class="Apple-tab-span"> </span><span class="Apple-tab-span"> </span>run-length encoding/decoding</b></p>
+<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="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>*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="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="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">c= <span class="s9">RedRLE</span>.decode(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>"JOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEYJOEYNJOEYNJOEY"<span class="s2">;</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="p8">c= <span class="s9">RedRLE</span>.decode(b);</p>
+<p class="p8">c.size;</p>
+<p class="p8">a==c;</p>
+</body>
+</html>
Added: redSys/redTools/RedRLE.sc
===================================================================
--- redSys/redTools/RedRLE.sc (rev 0)
+++ redSys/redTools/RedRLE.sc 2009-12-29 19:21:26 UTC (rev 1305)
@@ -0,0 +1,28 @@
+//redFrik
+
+RedRLE {
+ *encode {|input|
+ var out= [], cnt, chr, i= 0;
+ while({i<input.size}, {
+ cnt= 1;
+ chr= input[i];
+ while({i+1<input.size and:{input[i+1]==chr}}, {
+ cnt= cnt+1;
+ i= i+1;
+ });
+ out= out++cnt++chr.ascii;
+ i= i+1;
+ });
+ ^out;
+ }
+ *decode {|input|
+ var out= "", cnt, chr, i= 0;
+ while({i<input.size}, {
+ cnt= input[i];
+ chr= input[i+1].asAscii;
+ out= out++chr.dup(cnt).join;
+ 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/