关键字 |
SPIHT,算术编码器,PSNR,广度优先搜索 |
介绍 |
近年来,多媒体产品的需求一直在快速增长,但消耗了大量的存储空间。因此,压缩理论在信息论中变得更加重要,可以减少传输带宽和内存。压缩是用更少的比特对数据进行编码的过程。图像压缩是数据压缩的应用之一。它减少了表示图像所需的数据量。图像压缩的目的是减少图像的冗余,以有效的形式存储或传输图像。冗余有三种类型,1。编码冗余2。空间冗余,3。无关的信息。 In an image, neighboring pixels are correlated and contain redundant information. This type of redundancy is known as special redundancy. Pixel intensity can be predicted from neighboring pixels. This type of redundancy can be reduced by coding the difference between the neighboring pixels. |
本文在FPGA中实现了一种图像压缩技术。采用DWT和SPIHT相结合的算法进行图像压缩。SPIHT (Set Partitioning in Hierarchical Trees)是一种基于小波的图像压缩方法,具有良好的图像质量、快速的编码和较高的PSNR。它用于无损图像压缩。为了实现更高的性能,设计了一种高速的算术编码器结构。 |
Spiht图像压缩 |
遵循会议论文格式要求的一种简单方法是使用此文档作为模板,并简单地将文本输入其中。 |
A. SPIHT(Set Partitioning in Hierarchical Trees) |
SPIHT是一种基于小波的图像压缩算法,由Pearlman和Said于1996年提出。它提供了多种良好的特性 |
良好的图像质量 |
•高PSNR |
•快速编码和解码 |
•用于无损图像压缩 |
•一个完全渐进的比特流 |
在SPIHT算法中,首先将图像转换为小波系数。然后,SPIHT将小波变换分割成空间方向树。如图1所示。每个节点代表单独的像素。每个像素都是2X2块及其相邻像素的一部分。有两种类型的SPIHT体系结构。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g001.gif) |
1) SPIHT与列表 |
2) SPIHT无清单 |
带有列表的SPIHT需要动态操作,难以实现高速应用。在实时应用中采用无列表的SPIHT。该体系结构通过像素节点使用固定顺序处理。它提供了快速操作。本文实现了基于广度优先搜索顺序的无列表SPIHT结构。 |
1)带列表的SPIHT:它使用3个不同的列表来存储小波系数的重要信息。三份清单是1。不重要集的列表(LIS)不重要像素列表(LIP)有效像素列表(LSP)。LIP和LSP代表单个像素,LIS代表一组像素。初始LIS包含空间方向树定义的所有小波系数。通过遍历每个树节点,LIS被划分并测试显著状态。下面的函数用于测试有效状态。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e001.gif) |
第一个位平面的阈值τ等于2n,并且 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e002.gif) |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g002.gif) |
Ci,j为(i,j)在小波域中的系数值。如果集合中节点的大小小于预定义的阈值,则该集合不重要。如果它大于阈值,则移动到重要像素列表。不重要的集合保留在LIS中;显著集被划分为子集,以相同的方式和相同的分辨率进行处理,直到每个显著子集只有一个系数。最后,LSP中的每个像素都被细化为一个比特。然后重复上述过程进行后续的解析。 |
2)广度优先搜索的SPIHT: |
基于SPIHT的系数树编码顺序,不同的图像有不同的编码顺序。它是使SPIHT高效的一种固定的分区策略。但对于硬件实现,我们需要一个固定的路径,这是一个近似的顺序。因此,我们定义了一个处理树系数的顺序,以加快处理时间和减少内存大小。有两种搜索顺序。一种是深度优先搜索(DFS),另一种是广度优先搜索(BFS),如图3所示。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g003.gif) |
从早期的结果来看,与BFS结合的SPIHT比与DFS结合的SPIHT更有效。BFS的峰值信噪比(PSNR)性能略高于DFS。BFS可以编码比DFS更重要的信息。BFS的排序也更接近于带列表的SPIHT。从这些特点来看,BFS是一种较好的硬件实现方式。编码部分涉及两种符号。第一类是显著系数的符号位和位置位的显著映射符号(map)。另一种是显著系数量级位的逐次近似量化符号[]。SPIHT的输出顺序是MAP,然后是saq符号。像素在第pth位平面上的有效状态定义为: |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e003.gif) |
Sigp(i,j)为第pth位平面(i,j)处像素的有效状态,Magp(i,j)为对应的幅值。由这个公式我们可以得到各系数的显著性和大小之间的关系。通过逻辑或运算得到第p位平面上系数的显著状态。 |
系统架构与实现 |
图4展示了使用BFS方法的SPIHT的简单体系结构。系统的输入是原始图像像素,并首先提供给变换模块。即离散小波变换(DWT)。然后通过树生成模块将小波系数排列成树状结构,树生成模块通过BFS方式从小波存储器中读取每个节点。状态信息也是由同一模块生成的。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g004.gif) |
A.算术编码器 |
算术编码是熵编码的一种形式。它用于无损压缩。它不同于其他熵编码,如霍夫曼编码。因为在霍夫曼编码中,每个符号都被编码了。,but in arithmetic coding the entire message coded into a single number, a fraction of n(0.0 ≤ n ≤ 1.0). |
设L为符号的集合,每个符号i∈L,概率 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e004.gif) |
码字的符号序列XM = {X1, X2 , .............XM}和位数。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e005.gif) |
其中p(XM)是序列XM的概率,q(XM)是序列XM的累积频率。算术编码器的设计基于三个v-size寄存器:低,高和范围。符号i的累积计数用cum_freq[i]表示,即: |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e006.gif) |
符号i的间隔是[cum_freq[i-1], cum_freq[i]]。 |
如果当前概率区间为[low,high),则更新可由以下公式完成: |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-e007.gif) |
精度寄存器以M为单位递增。规范化程序解释如下。 |
1)如果high< HALF:“0”位写入输出。where HALF= 0.5 X 2v |
2)如果low≥HALF:“1”位写入输出 |
3)否则,输出不定义。在这种情况下,bit_to_follows计数器增加。然后,如果条件1满足,则“0”后面跟着bit_to_紧跟写入输出的值。如果条件2满足,则输出中写入“1”位和bit_to_follows零。之后,为了避免下溢,寄存器的低和高被缩放。算术编码器具有较短的编码长度。如果输入符号的概率较高,则编码间隔的缩小速度较慢。换句话说,如果有一些罕见的符号,那么收缩的速度会很快。 |
SPIHT编码与算术编码器的详细架构如图所示。将原始图像馈送至基于直线提升的小波引擎。将线性提升小波引擎的小波系数写入小波系数缓冲器。处理器分配器采用宽度优先搜索的方式从小波系数缓冲区接收这些系数。这些系数通过内部总线从8个处理器阵列中分配给其中一个算术编码器。并行架构提供了广泛的精度和压缩比范围。输出从算术编码器发送到相应的码先出由码先出调度器通过内部总线。Read FIFO和Truncate模块生成最终代码,从上到下读取每个代码FIFO,并根据码率要求截断代码。电源管理部分降低了系统的功耗。它将根据最大位面寄存器文件停止每个算术编码器未使用的位面时钟输入。 The configuration and control part responsible for the settings of parameters like image resolution, wavetype, decomposition and target bit rate. |
算法编码器主要由树Con、位平面上下文FIFOs数组和编码核心三部分组成。树构造部分生成空间方向树,通过广度优先搜索顺序访问小波系数。位平面上下文数组由12个fifo组成,用于存储12位平面的上下文值。采用该高速算术编码器,可使信噪比提高0.5dB左右。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g005.gif) |
B. FPGA实现 |
fpga是一组逻辑门,可以通过编程来执行各种任务。FPGA提供了一种低成本、高速度和灵活的asic解决方案。单个FPGA可以用于许多任务,它的制造量更高,这降低了制造成本。我们还可以重新编程,这允许修改设计和修复错误,而不需要构建一个新的硬件系统。重新编程只需要几毫秒。 |
本项目采用Spartan 3E FPGA。其主要优点是高速连接、高性能DSP解决方案和低成本。用于FPGA实现的软件是Xilinx ISE 10.1。有软核微处理器(MicroBlaze)和硬核嵌入式微处理器(PowerPC)。MicroBlaze是一个虚拟微处理器,它包括以下属性。 |
32位通用寄存器 |
•32位地址行 |
•单期管道 |
•独立的32位指令和数据总线。 |
结果 |
在matlab中对SPIHT图像压缩进行了仿真。一个512 x 512的图像被认为是输入图像。对输入图像进行一级小波变换后,将其分为四个频率子带。应用SPIHT算法对小波变换后的系数进行压缩,得到PSNR = 56.5583, MSE = 0.1436。采用Matlab R2010a进行仿真。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-t001.gif) |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g006.gif) |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g007.gif) |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-g008.gif) |
对于FPGA实现,使用8位/像素和大小为64 x 64的图像。结果如下图8和图9所示。从设备利用率汇总来看,4个输入lut的利用率为77%。如表二所示。 |
![图像](//www.cheescube.com/articles-images/IJAREEIE-1250-t002.gif) |
结论 |
本文提出了一种有效的图像压缩VLSI实现方法。采用算术编码器的SPIHT提高了峰值信噪比。该系统的另一个亮点是无列表的SPIHT。宽度优先搜索是一种固定顺序的搜索方法,减少了时间要求。算术编码以其高效率而成为标准技术。SPIHT采用算术编码架构,提供了高吞吐量的内存高效设计。 |
参考文献 |
- 刘凯,EvgeniyBelyaev, JieGuo,“用于SPIHT的算术编码器的VLSI架构”,IEEE超大规模集成(VLSI)系统学报,第20卷,第4期,pp。697-710 2012年4月。
- 刘凯,雷杰,李云松,“一种基于广度优先搜索的新型SPIHT VLSI架构”,中国计算机工程学报(2012),38 (4):457 - 457 DOI: 10.1007/s11265-011-0581-2
- W.-B。黄、苏亚文、杨永华。Kuo,“改进的高效SPIHT编码器的VLSI实现”,IEICE事务基础,E89-A,第12卷,第3613-3622页,2006年12月
- A. Said和W. A. Pearlman,“一种新的、快速、高效的基于分层树集划分的图像编解码器”,IEEE电路系统视频技术学报,第6卷,no. 1。3,第243-249页,1996年3月
- Y. Wiseman,“准算术编码的管道芯片”,IEICE交易基础,卷E84-A,第4期,1034-1041页,2001年4月。
- T. W. Fry和S. A. Hauck,“fpga上的SPIHT图像压缩”,IEEE视频技术事务电路系统,第15卷,no. 2。9,第1138-1147页,2005年9月。
|