论文部分内容阅读
数据压缩技术,作为信息论研究中的一个重要课题,一直受到人们的广泛关注。数据压缩技术的主要目的是力求用最少的数据表示信源所发出的信号,使信号占用的存储空间尽可能小,以达到提高信息的传输速度的目的。各种压缩算法在一定程度上说都具有个性,他们对某一类型的数据其压缩率可能很大,但对于另一类型数据其压缩率则可能很小。所以在应用中,若想得到较好的综合压缩性能,必须考虑各种因素并对现有算法进行综合比较,最终确定合适的压缩算法。 数据压缩技术主要分为无损压缩和有损压缩。在本论文中研究的是无损压缩技术,对HUFFMAN算法、ARITHMETIC算法、LZSS以及在LZSS基础上进行改进的LZSSD、LZSSB、LZHUF算法,LZW、在LZW基础上进行改进的ILZW算法进行了分析研究并编写了C语言程序,将上述程序在计算机上进行了分析模拟,比较了压缩率的大小,最终选取压缩率较好的LZSSB算法,应用于现有的通信平台。 根据通信应用中的特点,将程序进行了以下改进,以满足实际要求。 (1)BIT位的转换。在所选的DSP上,不能对存储空间进行8bit位的访问,而如果在程序中采用以16位、32位或48位为比较单位,将减小压缩率。在程序中设置了两个存储空间大小不一样的缓冲区,通过外围数据的转换,来满足程序中8bit的比较要求,从而大大提高了压缩率 (2)数据流结束标志的处理。在通信的发端,通过两种方法来判断数据流处理结束:一种是通过监控数据流结尾处的控制信号;另一种是通过缓冲区指针的变化来判断。 (3)字典的处理。在论文中,采用了两种字典的处理方法。一种是字典在建立过程中不断的更新,另一种是当处理完缓冲区中的数据后,立即全部更新字典。第二种方法虽然在一定程度上减小了压缩率,但是因为减小了程序的复杂度,从而减小了程序执行时间,给其他数据处理提供了更大的运算空间。 (4)其他改进。为了程序的灵活性,缓冲区的设置不是在程序中进行,而是由整个通信系统来决定。压缩程序在执行之初,到某个地址中去读出该值。输出压缩代码之前先输出缓冲区大小值,这样解压程序可从压缩代码中得到该值,从而确保压缩与解压模型的一致性。 将所选的LZSSB算法经过上述改进后,成功的在现有的通信平台上运行,其压缩率与实时性都满足了要求。