没有合适的资源?快使用搜索试试~ 我知道了~
首页基于FPGA的无损图像压缩系统设计
基于FPGA的无损图像压缩系统设计
232 浏览量
更新于2023-05-27
评论 1
收藏 88KB PDF 举报
本文简要介绍了图像压缩的重要性和常用的无损图像压缩算法,分析了快速高效无损图像压缩算法(FELICS)的优势,随后详细分析了该算法的编码步骤和硬件实现方案,最后公布了基于该方案的FPGA性能指标。和其他压缩算法相比该方案可极大地减小无损图像压缩系统所需的存储空间和压缩时间。
资源详情
资源评论
资源推荐

基于基于FPGA的无损图像压缩系统设计的无损图像压缩系统设计
本文简要介绍了图像压缩的重要性和常用的无损图像压缩算法,分析了快速高效无损图像压缩算法(FELICS)的
优势,随后详细分析了该算法的编码步骤和硬件实现方案,最后公布了基于该方案的FPGA性能指标。和其他压
缩算法相比该方案可极大地减小无损图像压缩系统所需的存储空间和压缩时间。
随着信息技术的巨大革新,数据存储和传输开始在人类生活中变得越来越重要,数据压缩技术因而应运而生,它不仅能减少数
据存储所需的空间还可以缓解传输带宽的压力。数据压缩可以分为有损压缩和无损压缩两种,其中有损压缩技术可以获得较高
的压缩比,但是会丢失一些图片信息,可以应用在对图像质量要求不高的领域,但是在医疗图像、航天图像等特殊领域中,则
要求图像压缩算法是无损的[1]。
无损压缩技术可以去除冗余信息并保证重建的步骤不会对原始信息带来任何损失。这样一来,解码后的信息就和原始信息精确
相等。CALIC [2]和JPEG-LS[3]等诸多算法都已经被广泛应用在这一领域。另外,离散小波变换(DWT)算法也常被用来放松对
开环视频编码系统存储空间和带宽的要求。但是,这些算法大多对数据具有严重的依赖性并且编码步骤较为复杂,因此限制了
其在高速产品中的应用。快速高效无损图像压缩系统(FELICS)于1993年由P.G.howard提出[4],这是一种以编码效率见长的无
损图像压缩算法,并且编码时对数据没有依赖性,因此能应用在高速压缩系统中[5-6]。几种压缩算法的压缩比和压缩时间对比
如图1所示,可以看出FELICS算法压缩比适中,但压缩效率的优势较为明显。
接下来将详细分析FELICS算法的优势和具体的编码步骤,最后将针对这一压缩算法提出一种基于FPGA的硬件实现方案。
1 整体算法设计
FELICS算法中应用到三种主要的技术手段:像素点分布模型的选取、修正的二元编码和GOLOMB-RICE熵编码。
1.1 像素点分布模型
整幅图像前两个像素点不进行编码处理直接输出,从第三个像素点开始选取与之相邻的两个像素点作为参考像素点,参考像素
点的选取规则如图3所示,用i和j来表示行号和列号,P,N1和N2表示当前像素点和两个参考像素点,选取规则如下:
If (i==1 && j2) N1=P[i,j-1],N2=P[i,j-2];
If (i>1 && j==1) N1=P[i-1,j],N2=P[i-1,j+1];
If (i>1 && j>1) N1=P[i,j-1],N2=P[i-1,j];
选出参考像素点N1与N2之后,将二者进行比较,记较大者为H,较小者为L,Δ为H-L。
依照当前像素点P位于区间[L,H]的位置信息,分为三种情况采用不同的编码方式:
If (L≤P≤H) 选用修正的二元编码,并用1比特’0’来表示P落于[L,H]内,残余值R=P-L;
If (P≤L) 选用GOLOMB-RICE编码,并用2比特’10’表示P落于小于下界L的区间内,残余值R=L-P-1;
If (H≤P) 同样选用GOLOMB-RICE编码,并用2比特’11’表示P落于大于上界H的区间内,残余值R=P-H-1。
1.2 修正的二元编码
在修正二元编码的编码区间[L,H]内,中间部分和两边部分相比,有像素点出现的概率要略高一些,所以对二进制编码进行修
正,对中间部分像素点的残余值R赋予较短的编码,对两边部分像素点的残余值R赋予较长的编码。例如当△为5时,P值的可
能值为0、1、2、3、4、5。在编码时,将处在区间中央的2、3分别编码为00和11,而将0、1、4、5分别编码为110、111、
100和101。
1.3 GOLOMB-RICE熵编码
GOLOMB-RICE熵编码是GOLOMB编码的一种特殊情况,属于指数编码的一种。FELICS算法中像素点概率分布模型在小于下
界L和大于上界H的部分是以指数形式分布的,符合GOLOMB-RICE编码的适用范围,因此选用这种编码方法。编码步骤如
下:
(1)选定参数K
在整幅图像编码开始之前,建立一个U×V×T比特大小的累加表,其中U,V和T分别代表背景值Δ的个数、备选K值的个数和每一
个K值下累计编码的长度。在每一次进行GOLOMB-RICE编码之前,按照Δ的数值定位到累加表的相应行,选出累计编码长度
最短的K值作为当前像素残余值GOLOMB-RICE编码的K值。
(2)分别确定一进制和二进制编码
一进制编码:unary=R/2K的整数部分;















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0