一种图像并行压缩装置及方法与流程

文档序号:16319276发布日期:2018-12-19 05:36阅读:169来源:国知局
一种图像并行压缩装置及方法与流程

本发明属于卫星遥感技术领域,涉及一种基于流水的并行压缩装置及方法。

背景技术

随着空间对地观测技术的发展,星上需要传输的数据量急剧增加,对卫星图像的压缩能力提出了更高的要求。复杂的算法实现和有限的硬件资源已经成为影响星上压缩处理能力的主要因素,静态压缩算法jepg-ls,jpeg2000,特别是h.265等复杂的视频压缩算法更是对硬件实现时的处理能力提出了更高的要求。

目前,卫星遥感领域使用的静态图像压缩技术有jepg-ls、jpeg2000,受应用环境和算法复杂度的影响,其处理能力和效率均有不小的限制,而采用asic方式虽然解决了可编程芯片本身的局限性,但相应会增加制造成本。动态图像压缩技术如h.264,尤其是h.265算法复杂度更高,解决处理能力和算法复杂度之间的矛盾已经刻不容缓。



技术实现要素:

本发明的技术解决问题是:克服现有压缩技术处理能力不足,提供一种基于流水的遥感图像并行压缩技术,它在提供压缩功能的同时,具有极低的计算复杂度,采用极少的资源,处理能力极强。

本发明的上述目的通过下述技术方案予以实现:

提供一种图像并行压缩装置,包括图像分割模块,五个接收模块,预测器模块,误差计算模块,量化模块,编码模块和输出处理模块;

图像分割模块,将图像数据,均匀分成为k个图像块,k为5的倍数。在时钟到来后,将第m个图像块的一个像素发送至压缩装置第m/5的余数个接收模块;每个时钟周期将m加1,每5个时钟周期,将m-5,直至五个图像块所有像素都发送后,切换到接下来的五个图像块序列,将m+5,直至完成所有图像块的发送;k≥m≥1;

五个接收模块将接收的图像块的像素发送到预测器模块;预测器模块每个时钟周期接收一个像素并对所接收像素的预测,下一个时钟周期将原始像素值x和预测像素值发送到误差计算模块;误差计算模块,计算原始像素值x和预测像素值的差值,并在下一时钟周期将原始像素值x、预测像素值以及计算的差值发送到量化模块;量化模块计算|rc-rb|+|rc-ra|,并进行量化,在下一时钟周期将量化后的值及所接收的差值发送给编码模块,ra,rb,rc分别表示所接收像素左侧、上侧、和左上侧点的像素;编码模块对量化后的值进行编码,并在下一时钟周期将编码和所接收的差值发送给溢出处理模块;输出处理模块判断量化过程中是否发生溢出,如果未发生溢出则输出所述编码;如果发生溢出则输出所述编码和溢出编码。

优选的,所述溢出编码的获取方法为:判断所接收的差值是否超过阈值,如果未超过阈值,则输出所述编码和固定位数个0;如果超过阈值对所述差值超出截断范围的部分,进行等间隔量化,对等间隔量化值直接进行编码。

优选的,预测器模块预测模型如下:

优选的,量化模块将|rc-rb|+|rc-ra|与阈值比较,如果大于阈值则采用长量化表,否则采用短量化表。

优选的,量化模块还进行像素重构,通过编码模块发送输出处理模块进行输出,其中qerr为|rc-rb|+|rc-ra|的计算结果。

优选的,编码模块如果量化后的值大于设定阈值,则采用长编码表进行编码,否则采用短编码表进行编码。

优选的,还包括顶层模块,输出时钟信号,接收外部发送的图像数据。

一种利用所述的图像并行压缩装置进行图像并行压缩的方法,包括如下步骤:

(1)图像分割模块,将图像数据,均匀分成为k个图像块;令i=1,m=1;

(2)图像分割模块在时钟到来后将m个图像块第i个像素发送给第m/5的余数个并行的接收模块;每个时钟周期将m加1,每5个时钟周期,将m-5;

(3)预测器模块每个时钟周期接收一个像素并对所接收像素的预测,下一个时钟周期将原始像素值x和预测像素值发送到误差计算模块;

(4)误差计算模块,计算原始像素值x和预测像素值的差值,并在下一时钟周期将原始像素值x、预测像素值以及计算的差值发送到量化模块;

(5)量化模块计算|rc-rb|+|rc-ra|,并进行量化,在下一时钟周期将量化后的值及所接收的差值发送给编码模块;

(6)编码模块对量化后的值进行编码,并在下一时钟周期将编码和所接收的差值发送给溢出处理模块;

(7)输出处理模块判断量化过程中是否发生溢出,如果未发生溢出则输出所述编码;如果发生溢出则判断所接收的差值是否超过阈值,如果未超过阈值,则输出所述编码和固定位数个0;如果超过阈值对所述差值超出截断范围的部分,进行等间隔量化,对等间隔量化值直接进行编码;

(8)判断是否完成像素的编码,如果完成则进入步骤(9),否则另i+1,返回步骤(2);

(9)判断是否完成所有图像块的编码,如果完成则完成该图像并行压缩;如果未完成,则令m+5,i=1返回步骤(2);

优选的,步骤(5)中量化模块将|rc-rb|+|rc-ra|与阈值比较,如果大于阈值则采用长量化表进行量化,否则采用短量化表进行量化。

优选的,步骤(6)中编码模块如果量化后的值大于设定阈值,则采用长编码表进行编码,否则采用短编码表进行编码。

优选的,还包括步骤(10),完成图像并行流水处理后,对五路压缩后码流根据需要的格式进行转换和协议格式编排。

本发明与现有技术相比具有如下优点:

(1)本发明的并行压缩方法,采用最大5路并行压缩方式,与单路压缩方式相比,能够大大提高数据的实时处理速率,将数据处理速率提高了5倍,能够满足目前遥感图像高速率数据传输的任务需求,顺应实时数据处理的发展趋势。

(2)本发明的并行压缩方法,对于现有的线阵和面阵图像均适用,可以任意设置图像块的大小,相对于现有的压缩方法更加灵活。

(3)本发明的并行压缩方法,在并行压缩前无需对前方输入并行数据格式进行变化,可直接调用压缩模块,完成并行编码处理。处理流程简单,易实现,大大降低了使用编码器的复杂度。

(4)本发明的并行压缩方法,不需要对数据进行缓存,降低了数据处理过程中的出错概率,避免了在使用fifo/ram缓存数据过程中出现丢数、错位等现象,避免了将部分数据滞留在缓存中的弊端。

(5)本发明的并行压缩方法,整个压缩过程中只需要一种时钟频率,避免了数据串并变化和分路过程中引入的多个时钟频率导致的跨时钟域问题,降低了亚稳态的风险与不必要的时钟资源浪费。

(6)本发明的并行压缩方法,节约了资源使用,相对于现有压缩方式,本方法可降低fifo资源使用量,并减少逻辑资源的使用量。

附图说明

图1为本发明压缩算法流程图;

图2为本发明流水化并行压缩方法设计流程图;

图3为本发明流水化并行压缩方法装置示意图;

图4为本发明流水化并行压缩方法预测器模型。

具体实施方式

结合图3,本发明图像并行压缩装置,包括顶层模块、图像分割模块,五个接收模块,预测器模块,误差计算模块,量化模块,编码模块和输出处理模块;

图像分割模块,将图像数据,均匀分成为k个图像块,k为5的倍数,并在时钟到来后,将第m个图像块的一个像素发送至第m/5的余数个接收模块;每个时钟周期将m加1,每5个时钟周期,将m-5,直至五个图像块所有像素的发送后,切换到接下来的五个图像块,将m+5,直至完成所有图像块的发送;k≥m≥1;

五个接收模块将接收的图像块的像素发送到fifo中读取存储,并发送到预测器模块,每个一个时钟周期一个接收模块发送像素,下一个周期切换到下一个接收模块发送,五个周期循环一次。

预测器模块每个时钟周期接收一个像素并对所接收像素的预测,下一个时钟周期将原始像素x和预测像素发送到误差计算模块;预测过程有多种成熟的预测器,比如jpeg-ls的med预测器。利用相邻像素的关系,如图4,预测值为:

误差计算模块,计算原始像素x和预测像素的差值,并在下一时钟周期将原始像素x、预测像素以及计算的差值发送到量化模块;

量化模块从fifo中读取存储的像素,计算|rc-rb|+|rc-ra|,并进行量化,在下一时钟周期将量化后的值及所接收的差值发送给编码模块,ra,rb,rc分别表示所接收像素左侧、上侧、和左上侧点的像素;量化模块rom缓存,rom缓存分别为长量化表,短量化表。根据待编码像素的上、左及左上像素的差(|rc-rb|+|rc-ra|)选择量化表进行量化,获得量化差值qerr,若差值大于某一固定值,则采用长量化表;否则采用短量化表。利用量化差值qerr和预测值重构像素存储起来,用于后续预测。由于原始的量化表和编码表占用fpga内部存储资源较多,且存在大量的重复量化值,在ex_adjust根据码表的特征对rom存入的参数进行优化,减少rom资源开销。

编码模块对量化后的值进行编码,并在下一时钟周期将编码和所接收的差值发送给溢出处理模块,编码模块的rom中存储长霍夫曼编码表和短霍夫曼编码表;输出处理模块判断量化过程中是否发生溢出,如果未发生溢出则输出所述编码;如果发生溢出则输出所述编码和溢出编码。由于单路码流需要独立的进行码流组织,因此该模块需要例化5路。该模块根据输入的单个码子进行码流拼接,且根据最终码流输出结果进行补零操作。

顶层接口模块,输入包括复位、时钟和5路门控、数据,图像块的宽、高,输出包括码流使能、数据、结束标识和码流长度。码流使能包括输出码流有效的标识,门控信号,拉高代表码流有效。图像块的宽高可以根据具体应用进行适应性修改。

一种基于流水的遥感图像并行压缩方法,结合图1-3,具体实现方法有如下步骤:

(1)对标准或非标准幅宽的ccd相机图像数据,进行分块,均匀分成为5的倍数个图像块。

(2)图像分割模块在时钟到来后将第m个图像块第i个像素发送给第m/5的余数个并行的接收模块;每个时钟周期将m加1,每5个时钟周期,将m-5;

(3)预测器模块每个时钟周期接收一个像素并对所接收像素的预测,下一个时钟周期将原始像素值x和预测像素值发送到误差计算模块;预测器对第m个图像块待编码第i个像素点的像素进行预测,预测像素值计为预测过程有多种成熟的预测器,比如jpeg-ls的med预测器,利用相邻像素的关系,结合图4,预测值为:其中ra,rb,rc分别表示第i个点左侧、上侧、和左上侧点的像素值。

(4)误差计算模块,计算原始像素值x和预测像素值的差值,并在下一时钟周期将原始像素值x、预测像素值以及计算的差值发送到量化模块;误差计算模块对第m个图像块第i个像素点1进行计算原始像素值x和预测像素值的差值:在同一时钟周期预测器模块对第m+1个图像块进行待编码第i个点的像素进行预测;

(5)量化模块计算|rc-rb|+|rc-ra|,并进行量化,在下一时钟周期将量化后的值及所接收的差值发送给编码模块;对第m个图像块1根据待编码第i个像素点的上、左及左上像素的差(|rc-rb|+|rc-ra|)选择量化表进行量化,获得量化差值qerr,若差值大于某一固定值,则采用长量化表;否则采用短量化表。利用量化差值qerr和预测值重构像素存储起来,用于后续预测,作为后续预测相邻行的像素参数。第一行像素,和第二行第一个像素直接输出,不进行编码处理。同一时钟周期误差计算模块对第m+1个图像块2进行处理,预测器模块对第m+3个图像块进行预测;长、短量化表是根据预测残差值的概率分布,选择压缩倍数,设计分段间隔和量化值;

压缩倍数决定了长短量化表的值和分段间隔,通过大量图像进行训练,找出在固定压缩比下的量化值和分段间隔。所有量化参数的选取都是采用模型训练这种方法,每个压缩比对应一套参数,就是说如果要设置2个压缩比,就得相应的设置2套量化表、编码表。如在2倍压缩10bit量化时,长量化表量化范围为[-152,152],短量化表量化范围为[-32,32],而其可能的预测残差范围为[-1023,1023],并没有全量化,进行了截断处理。同时,对于长量化表采用多于2倍的量化数,量化数为36(2倍压缩为5bit量化,即32个量化间隔);而短量化表量化数少于32个量化间隔(28个)。

(6)编码模块对量化后的值进行编码,并在下一时钟周期将编码和所接收的差值发送给溢出处理模块;对第m个图像块1量化后的值进行huffman编码,如果量化后的值大于设定阈值,则采用长编码表进行编码,否则采用短编码表进行编码。同时量化模块对第k+1个图像块2进行处理,误差计算模块对第k+2个图像块3进行处理,预测器模块对第k+1个图像块4进行预测;由于要保留图像细节信息和达到预定的压缩倍数,需要根据邻域平坦度选择长、短两个量化表,根据预测残差值的概率分布和目标压缩倍数,设计分段间隔和量化值。短量化表为图像保留了更多的细节信息,长量化表更多的是压缩码率调整的需求,两个量化表配合使用,在达到目标压缩比的同时也保证相应的图像质量。长编码表和短编码根据大量图像训练出长、短量化值,对长短量化值分别进行huffman编码,生成相应的编码表,通过长、短编码表进行查表的方式编码,节省硬件资源,不用在硬件里完成huffman编码。

(7)输出处理模块判断量化过程中是否发生溢出,如果未发生溢出则输出所述编码;如果发生溢出则判断所接收的差值是否超过阈值,如果发生溢出,判断残差err是否超过阈值,如果未超过阈值,则输出huffman编码的结果和固定位数个0;如果err超阈值,对图像块1进行溢出处理,由于量化采用了截断处理,对残差err超出截断范围的部分,进行等间隔量化,对量化值直接进行huffman编码,输出图像块1量化后的值huffman编码和残差err超出截断范围部分的huffman编码。为了区分截断量化和溢出量化的码流,规定截断量化两端码字后,必须接固定bit的溢出量化码字,无溢出时,溢出码字为固定bit个0。同一时钟周期编码模块对第m+1个图像块2进行处理,量化模块对第m+2个图像块3进行处理,误差计算模块对第m+3个图像块4进行处理,预测器模块对第m+4个图像块5进行预测;

(8)判断是否完成像素的编码,如果完成则进入步骤(9),否则另i+1,返回步骤(2);

(9)判断是否完成所有图像块的编码,如果完成则完成图像并行流水处理,进如步骤(10);如果未完成,则令m+5,i=1返回步骤(2);

(10)并行的多路压缩后码流根据需要的格式进行转换和协议格式编排。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明提供的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1