资源描述:
《2010180419基于霍夫曼编码实现的图像数据无[1]...》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于霍夫曼编码实现的图像数据无损压缩BasedontheHuffmancodingImplementationoftheimagedatalosslesscompression1.前言在信息社会高速发展的今天,信息交流占据了我们很大一部分的生活,我们已经习惯于通过各种方式,查询信息,得到信息,了解信息,信息的载体有很多种,例如:文字、图像、语言以及视频等等;我们通过这些信息载体进行通信和交流,在早期的信息社会中,人们大多使用文字和声音进行交流,以及极为少数的图形图像进行交流,而对于形象又简洁的图像信息却尤为缺少,因此往往会与我们的要求有一定的出入。而现在,随着信息的飞速进
2、步,通信技术以及计算机总体性能都大大的提高,如今图像成为计算机系统和通信传递信息的重要处理对象。尽管如今计算机总体性能有很大的提高,如容量和速度都有一定的优势。但大数据量的图像信息会给存储器和存储容量带来压力,同时图像信息会有大量冗余,这意味着它有很大的压缩潜力,因此我们很有必要在容量和数据都一定的状态下,去想办法改变。因而有了图像压缩编码,图像压缩编码技术在计算机图像处理中已经得到了越来越多的应用,相信随着图像压缩技术的发展,图像技术是具有相当大的发展潜力的。2.正文2.1图像压缩的现状和发展趋势近年来图像压缩技术获得了飞速发展。按其信息保持的程度,图像压缩可分为有损压
3、缩和无损压缩两大类。有损压缩允许一定程度的信息丢失,在满足实际应用的条件下能够取得非常高的压缩比,因而在多媒体交互式系统、视频传输业务和家庭娱乐等领域得到了广泛的应用下而言,无损压缩因不允许信息丢失,压缩效率难以提高而发展较慢。然而在遥感图像、医用图像处理等应用领域内,对于高效的无损压缩方法和高保真度压缩方法有着迫切的需要。2.2关于数据图像无损压缩编码图像压缩编码的理论和实验研究至今已有40多年的历史,许多压缩编码技术从理论到实现都进行了深入的研究。以下仅从压缩原理、发展现状和国际标准三个方面来论述现阶段图像无损压缩的发展状况。经常使用的无损压缩方法有游程编码、霍夫曼编
4、码和算术编码等。我们主要研究霍夫曼编码。2.21关于哈夫曼编码哈夫曼编码是一种常用的压缩编码算法,采用变长码编码,属于无损压缩算法的一种,在无损压缩的编码范畴中,哈夫曼(Huffman)编码方法是一种较有效的编码方法,是哈夫曼在1952年根据香农在1948年和范若在1949年阐述的一种编码思想提出的一种不定长(变长)编码的方法,也称霍夫曼编码。哈夫曼编码图像压缩应用中具有非常重要的意义,哈夫曼编码是一种实用的无损压缩技术,经过多年的不断改进,已经形成了系统的理论和方法。目前主要有两种类型的哈曼编码方式,即静态哈夫曼编码和动态哈夫曼编码。图像压缩编码技术可以追溯到1948年
5、提出的电视信号数字化,到今天已经有60多年的历史了。在此期间出现了很多种图像压缩编码方法,本课题主要研究基于哈夫曼编码对图像进行无损压缩,基于哈夫曼编码的图像无损压缩过程通常分为两步,即去除相关和编码。去除相关就是要去除图像数据的冗余部分,降低信源熵,这是对图像数据的压缩过程;编码就是对去除冗余后的图像数据重新用一种新的符号编码代替,这也是对图像数据的重编码进行存储的过程。 2.22哈夫曼编码原理与具体实现为了节省空间,在对数据进行编码时,可以对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示,从而降低冗余,这样从总的效果看就节省了存储空间。
6、基于哈夫曼编码图像压缩的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同,这是一种典型的无损编码方式。这些代码都是二进制码,且码字长度是不均匀的、平均码率可以接近信息源熵值的一种编码。编码过程是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率的大小建立最优二叉树(二叉树的叶子节点刚好表示的图像中的某种像素)并给二叉树的每个分支赋特定权值(0或1),然后通过遍历二叉树读取从根节点到叶子节点的路径权值字符串,即给每种像素指定了不同长度的唯一编码,由此得到一张该图像所有像素的哈夫曼编码表。编码后的图像数据记录的是每个像素的码
7、字,而码字与实际像素值的对应关系记录在码表中,码表是附在图像文件中的。由于进行的是无损压缩,所以要扫描图像的所有像素点,压缩过程分为四步:①扫描统计像素出现的概率并按大小排列;②建立最优二叉树;③哈夫曼编码;④保存编码。经过哈夫曼编码后的图像中的不同像素分别用不同长度二进制编码表示,接下来的工作就是保存重编码后的像素,由于无损压缩中编码前后一幅图像的像素点数是相同的,如果仍然以像素为单位保存图像数据就无法实现压缩功能,能够实现压缩是因为编码前后表示像素的二进制编码的位数有所变化,所以,应该对重编码后的二进制位按位存储,由于VB