0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA技术的无损图像压缩系统实现方案

电子设计 来源:郭婷 作者:电子设计 2019-04-24 08:38 次阅读

引言

随着信息技术的巨大革新,数据存储和传输开始在人类生活中变得越来越重要,数据压缩技术因而应运而生,它不仅能减少数据存储所需的空间还可以缓解传输带宽的压力。数据压缩可以分为有损压缩和无损压缩两种,其中有损压缩技术可以获得较高的压缩比,但是会丢失一些图片信息,可以应用在对图像质量要求不高的领域,但是在医疗图像、航天图像等特殊领域中,则要求图像压缩算法是无损的。

无损压缩技术可以去除冗余信息并保证重建的步骤不会对原始信息带来任何损失。这样一来,解码后的信息就和原始信息精确相等。CALIC和JPEG-LS等诸多算法都已经被广泛应用在这一领域。另外,离散小波变换(DWT)算法也常被用来放松对开环视频编码系统存储空间和带宽的要求。但是,这些算法大多对数据具有严重的依赖性并且编码步骤较为复杂,因此限制了其在高速产品中的应用。快速高效无损图像压缩系统(FELICS)于1993年由P.G.howard提出,这是一种以编码效率见长的无损图像压缩算法,并且编码时对数据没有依赖性,因此能应用在高速压缩系统中。几种压缩算法的压缩比和压缩时间对比如图1所示,可以看出FELICS算法压缩比适中,但压缩效率的优势较为明显。

采用FPGA技术的无损图像压缩系统实现方案

接下来将详细分析FELICS算法的优势和具体的编码步骤,最后将针对这一压缩算法提出一种基于FPGA硬件实现方案。

1 整体算法设计

FELICS算法中应用到三种主要的技术手段:像素点分布模型的选取、修正的二元编码和GOLOMB-RICE熵编码。

采用FPGA技术的无损图像压缩系统实现方案

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的整数部分;

二进制编码:binary=R/2K的余数部分;

最终的GOLOMB-RICE编码由三部分组成:unary个’1’,binary的二进制形式和1比特’0’,其中’0’置于一进制编码和二进制编码之间,作为解码时的标志位。

(3)更新累加表

编码完成之后要依次用备选的K值对残余值R进行GOLOMB-RICE编码,计算出编码的长度并累加到累加表中K值相应的位置处,以用于后续像素点进行GOLOMB-RICE编码时K值的选取。

2 压缩系统硬件设计

设计采用 4 级流水线结构,系统只有一个主时钟CLK作为工作时钟。硬件实现包括控制单元、上下文模型选取单元、预测单元、熵编码单元和并串转换单元,硬件结构框图如图 4。

采用FPGA技术的无损图像压缩系统实现方案

控制单元负责产生控制信号以协调各电路模块的工作顺序;上下文模型选取单元将像素值输入存储器进行存储,产生当前像素、相邻像素和上下文预测值Δ;预测单元根据不同的上下文模型求出像素残余值;编码单元对像素残余值进行修正的二元编码或GOLOMB-RICE编码;并串转换单元负责将编码结果转换为码流进行输出。

图5所示为各个电路子模块的接口定义及连线图。其中上下文产生模块和预测模块功能具有连续性,用一个模块表示,像素值以光栅扫描的顺序逐行进行读入,需要一个行存储器对像素值进行存储,每完成对一个像素点的编码操作之后,将存储器中该处的像素值更新为当前行当前列的像素值,本方案处理的图像大小为512*512,因此只需要一个512*8比特的存储器。修正二元编码和GOLOMB-RICE编码模块算法相对复杂一些,为了加快系统的时钟频率,将算法中的计算步骤进行拆分细化。GOLOMB-RICE编码模块需要进行参数K的选取,若K的可能值有4个,则还需要256*8*4比特大小的存储器作为累加表。最后,由于编码后的码值是变长的,为了满足输出端口的要求,要对编码结果进行并串转换操作,输出端以码流的形式进行输出。

采用FPGA技术的无损图像压缩系统实现方案

压缩系统已集成在XILINX VIRTEX-5 FPGA上,并利用开发板XUPV5_LX110T进行了验证,当工作频率为20MHZ时, 吞吐率可达45f/s,所需存储空间仅为13.1Kbits,每帧的功耗仅为13.67毫瓦。经过若干经典图像测试后发现此压缩系统的平均压缩比为2.2,和主流的无损图像压缩算法(如JPEG-LS)相当,但压缩效率提升约80%左右。

3 结语

科技的发展和移动终端的普及对图像压缩系统的处理效率提出了越来越高的要求。本方案中的无损图像压缩系统和传统压缩算法(如JPEG-LS, CALIC等)相比,在压缩比相当的情况下,算法简单,所需的存储器面积和处理时间也都大幅度下降,可以很好地兼容到医疗或航天图像压缩系统中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21279

    浏览量

    592840
  • 存储器
    +关注

    关注

    38

    文章

    7120

    浏览量

    161915
  • 医疗
    +关注

    关注

    8

    文章

    1726

    浏览量

    58118
收藏 人收藏

    评论

    相关推荐

    FPGA实现滑动平均滤波算法和LZW压缩算法

    采集数据中的量化噪声,在进行数据压缩采用滤波的预处理技术。介绍LZW算法和滑动滤波算法的基本理论,详细阐述用单片FPGA实现两种算法的方法
    发表于 04-24 09:05

    CCSDS星载图像压缩模块的FPGA设计与实现

    CCSDS星载图像压缩模块的FPGA设计与实现.pdf
    发表于 03-16 18:38

    CCSDS星载图像压缩模块的FPGA

    CCSDS星载图像压缩模块摘 要:  根据航天应用的需要,采用CCSDS122. 02B21推荐的新一代空间图像压缩算法,基于
    发表于 08-11 11:45

    FPGA图像压缩设计开发

    FPGA 2支持算法SPIHT 3压缩性能支持有损压缩无损压缩 4数据处理能力数据率:≥30M samples/s 5图像数据支持串行和1
    发表于 08-01 15:27

    基于FPGA的高性能无损数据压缩IP

    LZOAccel-CLZO Data Compression CoreLZOAccel-C是一个无损数据压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。Core接收未
    发表于 12-21 23:10

    基于FPGA的高性能无损数据解压缩IP

    LZOAccel-DLZO Data Decompression CoreLZOAccel-D是一个无损数据解压缩引擎的FPGA硬件实现,兼容LZO 2.10标准。Core接收
    发表于 12-21 23:12

    如何采用FPGA和CMOS数字传感器实现图像数据传输的图像监测系统

    本文提出一种采用FPGA和CMOS数字传感器实现前端数据采集、利用单片机进行图像鉴别和压缩、通过以太网控制器
    发表于 05-26 06:58

    基于聚类的高光谱图像无损压缩

    高光谱海量数据的有效压缩成为遥感技术发展中需要迫切解决的问题。该文提出了一种基于聚类的高光谱图像无损压缩算法。针对高光谱图像不同频谱波段间相
    发表于 11-17 15:23 16次下载

    基于FPGA+PowerPC的高分辨率图像实时压缩系统的设计

    为解决机载高分辨率图像的实时压缩问题,提出了一个基于FPGA+PowerPC的高分辨率图像实时压缩系统
    发表于 09-15 11:45 40次下载

    基于FPGA/CPLD和USB技术无损图像采集卡

    摘要: 介绍了外置式USB无损图像采集卡的设计和实现方案,它用于特殊场合的图像处理及其相关领域。针对图像
    发表于 06-20 14:33 937次阅读
    基于<b class='flag-5'>FPGA</b>/CPLD和USB<b class='flag-5'>技术</b>的<b class='flag-5'>无损</b><b class='flag-5'>图像</b>采集卡

    基于FPGA的数据实时无损压缩系统

    提出了一种基于FPGA的验光仪的数据实时无损压缩系统采用LZW算法。首先通过对比分析常用数据无损压缩算法的特点得出LZW算法在实时性、
    发表于 03-21 10:53 63次下载

    基于双FPGA+ARM架构的图像压缩系统

    本设计开发出了一套基于双FPGA+ARM架构的高速计算机屏幕图像压缩系统系统通过对图像
    发表于 08-22 11:44 2047次阅读
    基于双<b class='flag-5'>FPGA</b>+ARM架构的<b class='flag-5'>图像</b><b class='flag-5'>压缩</b><b class='flag-5'>系统</b>

    机载图像无损无损压缩方案及其FPGA实现

    机载图像无损无损压缩方案及其FPGA实现
    发表于 08-29 15:02 5次下载

    如何使用FPGA实现机载图像无损和近无损压缩方案

    问题。该算法采用了一种快速有效的熵编码器Golomb,在图像数据输入输出速度不变的情况下,提出了一种有效的压缩比控制策略,给出了一种完整可行的机载图像编码和传输
    发表于 02-03 16:26 3次下载
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>机载<b class='flag-5'>图像</b><b class='flag-5'>无损</b>和近<b class='flag-5'>无损压缩</b><b class='flag-5'>方案</b>

    基于门控线性网络(GLN)的高压缩无损医学图像压缩算法

    实现基于门控线性网络(GLN)的高压缩无损医学图像压缩算法,以提高医学图像存储和分发
    的头像 发表于 04-08 10:29 155次阅读
    基于门控线性网络(GLN)的高<b class='flag-5'>压缩</b>比<b class='flag-5'>无损</b>医学<b class='flag-5'>图像</b><b class='flag-5'>压缩</b>算法