一种基于FPGA实现的图像无损压缩方法技术

技术编号:20431415 阅读:73 留言:0更新日期:2019-02-23 11:01
本发明专利技术公开了一种基于FPGA实现的图像无损压缩方法,属于机器视觉的图像处理技术领域,包括对编码参数进行初始化为零,该编码参数包括预测行的数据、累积预测残差以及上下文组合累积出现次数;并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差;根据当前像素点的像素值P与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码;在所述待压缩图像的所有像素点的残差编码完成后,对所述编码参数进行更新。本发明专利技术在FELICS算法的基础上改进优化,保证图像压缩比的同时提高上位机的解压缩速度,并使得算法运行速度能与千兆以太网传输速度相匹配。

A Lossless Image Compression Method Based on FPGA

The invention discloses an image lossless compression method based on FPGA, which belongs to the field of image processing technology of machine vision, including initializing the coding parameter to zero, which includes the data of predicted rows, cumulative prediction residuals and cumulative occurrence times of context combination; and selecting two reference pixels to calculate the current value of two reference pixels according to the pixel value of two reference pixels. The residual of the pixel point; according to the relationship between the current pixel value P and the pixel value of the two reference pixels, the corresponding residual coding method is selected to encode the residual of the current pixel point; after the residual coding of all the pixels of the image to be compressed is completed, the coding parameters are updated. The invention improves and optimizes on the basis of FELICS algorithm, guarantees the image compression ratio and improves the decompression speed of the host computer, and makes the operation speed of the algorithm match the transmission speed of Gigabit Ethernet.

【技术实现步骤摘要】
一种基于FPGA实现的图像无损压缩方法
本专利技术涉及机器视觉的图像处理
,特别涉及一种基于FPGA实现的图像无损压缩方法。
技术介绍
图像无损压缩技术旨在通过降低图像数据冗余度来获取高压缩比并可以100%重建原图像,该技术在图像数据传输、医学图像以及遥感图像等领域具有广泛的应用,对于图像传输系统,使用无损压缩技术可以提高传输链路的吞吐率。为了满足实时性要求,压缩算法必须具备足够低的复杂度。图像的像素值信息是一组非负整数,对于深度为N的灰度图像而言,它的像素值范围在[0,2N-1]内,无损压缩的性能就是由这组数据的信息熵决定的。常见的无损压缩编码有预测编码、熵编码、基于字典匹配的编码(如LZW算法)、游程编码等,实际运用过程中往往是多种编码方法的组合。联合图像专家组曾经制定了无损图像压缩标准,采用的是LOCO-I压缩算法,这种算法主要由以下四个部分组成:待编码像素的选择器、像素值预测器、预测残差计算器、预测残差编码器。通过像素预测值的合理选择、预测残差的精准建模以及高效的熵编码,最终能达到理想的压缩、解压缩效果。与之类似的压缩算法主要有CALIC、FELICS。现有的无损压缩技术在保证较高压缩比的前提下其解压速度无法与千兆以太网传输速度相匹配,即使解压速度能与千兆以太网匹配但压缩比较低。
技术实现思路
本专利技术的目的在于提供一种基于FPGA实现的图像无损压缩方法,以在千兆以太网传输速率下保证上位机端解码的实时性。为实现以上目的,本专利技术采用一种基于FPGA实现的图像无损压缩方法,包括:对编码参数进行初始化为零,该编码参数包括预测行的数据、累积预测残差C[delta]以及上下文组合累积出现次数N[delta],该预测行为待压缩图像开始编码前的一行缓冲区;对所述待压缩图像进行逐像素点扫描,并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差;根据当前像素点的像素值P与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码;在所述待压缩图像的所有像素点的残差编码完成后,对所述编码参数进行更新。进一步地,所述参考像素点的选取标准为:若所述当前像素点为第一行的第一或第二个像素点,则将当前像素点的像素值编入码流;若所述当前像素点为第一行非第一或第二个像素点,则将当前像素点左边的两个像素点作为所述参考像素点;若所述当前像素点为第一列第一行像素点,则将当前像素点正上方的像素点和右上方的像素点作为所述参考像素点;若所述当前像素点为非第一行和第一列的像素点,则将当前像素点左方的像素点和正上方的像素点作为所述参考像素点。进一步地,所述对待压缩图像进行逐像素点扫描,并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差,包括:将所述两个参考像素点的像素值进行比较,记较大值者为H,较小值者为L;若L≤P≤H,则所述当前像素点的残差R=P-L;若P<L,则所述当前像素点的残差R=L–P-1;若P>H,则所述当前像素点的残差R=P-H-1。进一步地,所述根据当前像素点的像素值与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码,包括:在所述当前像素点的像素值P落在[L,H]范围内时,采用修正的二元编码方法对所述当前像素点的残差R进行编码;在所述当前像素点的像素值P<L或P>H时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码。进一步地,所述在当前像素点的像素值P落在[L,H]范围内时,采用修正的二元编码方法对所述当前像素点的残差进行编码,包括:采用如下公式计算修正后的残差R以及修正后的编码参数:range=delta+1,R`=R-L,式中,range表示范围长度,delta=H-L,logofrange表示范围长度的对数向上取整,R`表示修正后的残差;将修正后的残差R`和0结合作为码值,并将该码值写入logofrange+1位。进一步地,所述在当前像素点的像素值P<L或P>H时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码,还包括:在当前像素点的像素值P<L时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码,并将2比特的二进制码10写入编码流以表征P小于下界;在在当前像素点的像素值P>H时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码,并将2比特的二进制码11写入编码流以表征P大于下界。进一步地,所述在当前像素点的像素值P<L或P>H时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码,包括:以设定的参数m为单位,并结合任意一个非负正整数将待编码的残差分成两部分,两部分为组的编号和残差在编组中的位置;对于组的编号使用一元编码进行编码,对于残差在编组中的位置采用固定长度的二进制编码进行编码。进一步地,所述参数m是2的k次幂,在所述两个参考像素点的像素值之差在设定的范围内时,k取固定值;在所述两个参考像素点的像素值之差超过设定的范围时,k初始值取零,并在满足(N[delta]<<k)<C[delta]时,k值加1。进一步地,所述对编码参数进行更新,包括:对每种delta值下像素点出现的次数进行更新N[delta]=N[delta]+1;对每种delta值下残差的累计值进行更新C[delta]=C[delta]+R;将所述待压缩图像按像素行数进行划分,将两行数据作为一个block进行编码;在当前block进行编码完成后,将当前block的第二行作为下一个block残差计算的预测行。进一步地,还包括:在所述待压缩图像编码完成后,判断剩余编码位数是否足够一个字节;若是不足一个字节,则添加一个字节进入编码流。与现有技术相比,本专利技术存在以下技术效果:本专利技术使用FPGA编码实现优化的FELICS(Fastandefficientlosslessimagecompressionsystem)算法,优化的FELICS算法过程包括参数初始化、残差计算、残差编码和参数更新四部分。在参数编码过程采用按行扫描、逐像素编码的方式,选择两个参考像素点用来计算当前像素的预测残差。编码思想是用一比特位表示当前像素是否在两个相邻像素值的范围内,如果在范围内,对预测残差采用修正的二元编码;若不在范围内,额外使用一比特位指明当前像素值低于下界或者高于上界,对预测残差采用golomb-rice编码。在golomb-rice编码中用for(k=0;(N[delta]<<k)<C[delta];k++);计算当前k值,可以节省不少编解码时间,且最终几乎不会对压缩比产生影响。特别地,对于一般图像而言,即使是局部复杂度很高的图像,相邻像素点的像素值差别也不大,可以使用固定k值进行golomb-rice编码,省去了计算k值的环节,可以进一步提升压缩算法的速度。这种算法具有良好的上下文参数信息以及低复杂度的编码运算,能够获得较理想的压缩比和压缩、解压缩速度。保证图像压缩比的同时提高上位机的解压缩速度,并使得算法运行速度能与千兆以太网传输速度相匹配,在得到较高图像压缩比的情况下保证千兆以太网传输速率下上位机解码的实时性。附图说明下面结合附图,对本专利技术的具体实施本文档来自技高网...

【技术保护点】
1.一种基于FPGA实现的图像无损压缩方法,其特征在于,包括:对编码参数进行初始化为零,该编码参数包括预测行的数据、累积预测残差C[delta]以及上下文组合累积出现次数N[delta],该预测行为待压缩图像开始编码前的一行缓冲区;对所述待压缩图像进行逐像素点扫描,并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差;根据当前像素点的像素值P与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码;在所述待压缩图像的所有像素点的残差编码完成后,对所述编码参数进行更新。

【技术特征摘要】
1.一种基于FPGA实现的图像无损压缩方法,其特征在于,包括:对编码参数进行初始化为零,该编码参数包括预测行的数据、累积预测残差C[delta]以及上下文组合累积出现次数N[delta],该预测行为待压缩图像开始编码前的一行缓冲区;对所述待压缩图像进行逐像素点扫描,并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差;根据当前像素点的像素值P与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码;在所述待压缩图像的所有像素点的残差编码完成后,对所述编码参数进行更新。2.如权利要求1所述的基于FPGA实现的图像无损压缩方法,其特征在于,所述参考像素点的选取标准为:若所述当前像素点为第一行的第一或第二个像素点,则将当前像素点的像素值编入码流;若所述当前像素点为第一行非第一或第二个像素点,则将当前像素点左边的两个像素点作为所述参考像素点;若所述当前像素点为第一列第一行像素点,则将当前像素点正上方的像素点和右上方的像素点作为所述参考像素点;若所述当前像素点为非第一行和第一列的像素点,则将当前像素点左方的像素点和正上方的像素点作为所述参考像素点。3.如权利要求1所述的基于FPGA实现的图像无损压缩方法,其特征在于,所述对待压缩图像进行逐像素点扫描,并选取两个参考像素点以根据两个参考像素点的像素值计算当前像素点的残差,包括:将所述两个参考像素点的像素值进行比较,记较大值者为H,较小值者为L;若L≤P≤H,则所述当前像素点的残差R=P-L;若P<L,则所述当前像素点的残差R=L–P-1;若P>H,则所述当前像素点的残差R=P-H-1。4.如权利要求3所述的基于FPGA实现的图像无损压缩方法,其特征在于,所述根据当前像素点的像素值与所述两个参考像素点的像素值的关系,选取相应的残差编码方法对当前像素点的残差进行编码,包括:在所述当前像素点的像素值P落在[L,H]范围内时,采用修正的二元编码方法对所述当前像素点的残差R进行编码;在所述当前像素点的像素值P<L或P>H时,采用golomb-rice编码方法对所述当前像素点的残差R进行编码。5.如权利要求4所述的基于FPGA实现的图像无损压缩方法,其特征在于,所述在当前像素点的像素值P落在[L,H]范围内时,采用修正的二元编码方法对所述当前像素点的残差进行编码,包括:采用如下公式计算修正后的残差R以及修正后的编码参数:ra...

【专利技术属性】
技术研发人员:李博川曹桂平董宁邵云峰王雪
申请(专利权)人:合肥埃科光电科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1