<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/whycadi" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/whycadi" type="application/rss+xml"></fs:self_link><lastBuildDate>Tue, 25 Jan 2011 13:16:00 GMT</lastBuildDate><title>whycadi的专栏</title><description>CSDN博客聚合服务</description><link>http://blog.csdn.net/blogrss.aspx?username=whycadi</link><item><title>改进LZW压缩算法的一些想法（LZ77，双字典）</title><link>http://blog.csdn.net/whycadi/archive/2011/01/25/6163782.aspx</link><description>&lt;br /&gt;  前几天用Python实现了一个LZW算法后，很自然的又想怎么样可以在不显著增加开销的前提下改进压缩率。在网上找了一些文章后，主要发现了以下的几种途径： 混合使用LZ77和LZ78。即在发现标记匹配结束后，不立即结束匹配，而是再在一个滑动窗口中寻找是否有更好的匹配，如果有就以{位置，匹配长度}组的形式写入输出流中，并把该字符串逐个增加为标记。在字典标记写满后，不立即清除字典，而是继续使用该字典，直到发现压缩率下降都到一定长度后再清除字典不清除全部字典，而是根据使用率清除部分字典&lt;br /&gt;      第一种途径，应该是能够很大地提高压缩比的。不过问题在于这个滑动窗口怎么选。而且一旦匹配了一个长字符串，会一下子增加很多的标记，使字典增加过快。&lt;br /&gt;      等二种方法应该有不错的效果，不过如果万一源文件的统计规律发生了较大的变化，等发现字典不合适后再重建可能就来不及了。如果和其它的方法结合使用可能更好。&lt;br /&gt;      等三种算法太复杂，要统计使用率，还要排序，更麻烦地是如何删除部分标记而不影响其它的标记。&lt;br /&gt;&lt;br /&gt;      另外我自己还想了&lt;img src=&quot;http://www1.feedsky.com/t1/468723133/whycadi/csdn.net/s.gif?r=http://blog.csdn.net/whycadi/archive/2011/01/25/6163782.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723133/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723133/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 25 Jan 2011 21:16:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2011/01/25/6163782.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2011/01/25/6163782.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723133/1087210</fs:itemid></item><item><title>用python实现的LZW算法</title><link>http://blog.csdn.net/whycadi/archive/2011/01/23/6159896.aspx</link><description>&lt;br /&gt;  以前学习了一下GIF的LZW算法，不过只是学习了一下（见我以前的那篇博文《LZW for GIF算法原理和实现》），没有实践，也没有看看效果到底怎么样，因为现在ZIP库很多，基本上不需要自己写压缩算法了，LZW的压缩效果也比不上它们。不过最近有个嵌入式系统上的数据记录需求，希望把运行过程中采集的数据都记录下来，但是存储空间比较有限，处理器的能力也比较有限，是266兆的PPC，所以不能使用复杂的算法了，于是又想起LZW算法来，首先是采集的数据具有短时间内大量重复的特点，可以用简单的算法就达到很好的效果，其次这个算法处理得好的话很省资源，至于压缩比则是其次的考虑。&lt;br /&gt;  为了验证一下算法的正确性和效果，先用python实现了一下算法。由于只是验证算法，所以不考虑效率，只追求编程简单。用Python实现起来还真是方便，如果不进行位紧缩的话，二十多行代码就搞定了，拿几个文件试了下压缩和解压，一个140多K的cpp程序，可以压到33K多，用一个1兆多的软盘映像文件，可以压到一半左右，拿txt的《三国演义》，则只有70%了（不过rar也只能压到50%多)。全部文件解压出来和&lt;img src=&quot;http://www1.feedsky.com/t1/468723134/whycadi/csdn.net/s.gif?r=http://blog.csdn.net/whycadi/archive/2011/01/23/6159896.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723134/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723134/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 23 Jan 2011 17:12:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2011/01/23/6159896.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2011/01/23/6159896.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723134/1087210</fs:itemid></item><item><title>在widows下使用ioperm控制端口</title><link>http://blog.csdn.net/whycadi/archive/2009/11/10/4795116.aspx</link><description>使用ioperm.sys在windows 2K/XP 下进行I/O控制,非常方便和容易&lt;img src=&quot;http://www1.feedsky.com/t1/468723135/whycadi/csdn.net/s.gif?r=http://blog.csdn.net/whycadi/archive/2009/11/10/4795116.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723135/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723135/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 10 Nov 2009 18:38:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2009/11/10/4795116.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2009/11/10/4795116.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723135/1087210</fs:itemid></item><item><title>二进制格雷码与自然二进制码的互换</title><link>http://blog.csdn.net/whycadi/archive/2009/10/16/4683617.aspx</link><description>格雷码&lt;img src=&quot;http://www1.feedsky.com/t1/468723136/whycadi/csdn.net/s.gif?r=http://blog.csdn.net/whycadi/archive/2009/10/16/4683617.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723136/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723136/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 16 Oct 2009 21:15:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2009/10/16/4683617.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2009/10/16/4683617.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723136/1087210</fs:itemid></item><item><title>初学SVN之 用Python写SVN的钩子文件</title><link>http://blog.csdn.net/whycadi/archive/2008/10/02/3009512.aspx</link><description>　　如何使用Python在Windows下为SVN服务器写钩子脚本&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723137/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723137/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 02 Oct 2008 15:01:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2008/10/02/3009512.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2008/10/02/3009512.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723137/1087210</fs:itemid></item><item><title>查表法计算crc的python演示程序</title><link>http://blog.csdn.net/whycadi/archive/2008/08/22/2810059.aspx</link><description>查表法计算crc的python演示程序&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723138/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723138/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 22 Aug 2008 00:13:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2008/08/22/2810059.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2008/08/22/2810059.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723138/1087210</fs:itemid></item><item><title>BAT批处理文件语法</title><link>http://blog.csdn.net/whycadi/archive/2008/01/07/2028608.aspx</link><description>.bat是dos下的批处理文件   首先批处理文件是一个文本文件，这个文件的每一行都是一条DOS命令（大部分时候就好象我们在DOS提示符下执行的命令行一样），你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723139/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723139/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 07 Jan 2008 12:37:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2008/01/07/2028608.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2008/01/07/2028608.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723139/1087210</fs:itemid></item><item><title>Python 正则式学习笔记</title><link>http://blog.csdn.net/whycadi/archive/2008/01/02/2011046.aspx</link><description>我近日学习Python的正则表达式的一点收获。因为在网上能找到的有关Python的正则表达式的文章不多，而英文帮助又语焉不详（其实是我英文水平太差），学习中走了不少的弯路。经过一番摸索，总算有了些收获。为了防忘，同时也许还能帮助一下其它的初学者，决定还是写点东西下来，存在CSDN上。&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723140/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723140/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 02 Jan 2008 21:11:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2008/01/02/2011046.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2008/01/02/2011046.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723140/1087210</fs:itemid></item><item><title>LZW for GIF 算法原理和实现</title><link>http://blog.csdn.net/whycadi/archive/2006/05/29/760576.aspx</link><description>LZW for GIF&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/whycadi/468723141/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/whycadi/468723141/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 29 May 2006 13:35:00 +0800</pubDate><author>whycadi</author><guid isPermaLink="false">http://blog.csdn.net/whycadi/archive/2006/05/29/760576.aspx</guid><dc:creator>whycadi</dc:creator><fs:srclink>http://blog.csdn.net/whycadi/archive/2006/05/29/760576.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/whycadi/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/whycadi/~1087211/468723141/1087210</fs:itemid></item></channel></rss>
