本发明涉及图像信息处理装置及方法,尤其涉及一种图像无损压缩装置及方法。
背景技术:
图像传感器目前已广泛应用于科学研究、工业生产、医疗卫生和国防军事等各个领域。随着图像分辨率及图像帧率的不断提升,人类得以观察到更加细微的物体特征,或者更为短暂的物理现象,从而极大的丰富了人类的观测手段,提高了人类的认知水平。
然而随着图像性能参数的迅速提升,同时也带来了图像数据量和数据传输带宽成倍增长的巨大挑战。海量的图像数据和超高数据传输带宽,为后续的图像传输、存储及处理都带来了一系列技术难题。
目前针对此类高分辨率、高帧率下的超高带宽图像数据流(尤其是对超过10Gbps量级的图像数据流),进行实时的、且无信息损失的压缩相对困难。受高帧率、高数据带宽以及处理能力的限制,现有高速图像采集系统中,多为直接存储原始图像数据而未做任何处理。所以图像数据中存在大量的冗余数据,实际上浪费了存储容量,占用了额外传输带宽,也大幅提高了成像系统的实现成本。
技术实现要素:
基于以上问题,本发明的主要目的在于提出一种图像无损压缩装置及方法,用于解决以上技术问题中的至少之一。
为了实现上述目的,作为本发明的一个方面,本发明提出了一种图像无损压缩装置,包括状态寄存单元、数据分配器、S-O-F插入器、求差编码单元和码流合成器,其中:
状态寄存单元用于提取待处理图像的像素序号、行序号和帧序号并对其寄存处理;
数据分配器,接收状态寄存单元输出的行序号和帧序号来选择将待处理图像传输到S-O-F插入器或求差编码单元;
S-O-F插入器,接收状态寄存单元输出的像素序号、行序号和帧序号和数据分配器输出的所述图像,将图像的暗像素行的数据值修改为设定的对齐码值并向码流合成器输出码流函数;
求差编码单元,接收除了暗像素行外的其他有效像素行计算先序/后序图像帧残差,并对残差进行编码,向码流合成器输出每一有效像素行的标示值和OV值;
码流合成器,用于接收码流函数、每一有效像素行的标示值和OV值,形成压缩后的数据流。
进一步地,上述状态寄存单元包括P循环计数器、L循环计数器和F递增计数器,用于分别寄存所述接收图像数据的像素序号、行序号和帧序号。
进一步地,上述S-O-F插入器的输出码流函数G(p,l,f)满足如下条件:
或
其中,gray(p,l,f)为图像的灰度函数,p为图像像素序号,l为图像行序号,f为图像帧序号,M为图像宽度,N为图像高度,R为图像像素的量化位宽,Ldark为图像的暗像素行高。
进一步地,上述码流合成器,根据所述行序号和帧序号依次选择输出码流函数、每一有效像素行的标示值和OV值的压缩图像数据流;所述求差编码单元包括数据双缓存单元、帧间差分运算器、差值编码器和OV数据缓存单元。所述帧间差分运算器与所述数据双缓冲单元连接,用于根据所述图像的除了暗像素行外的其他有效像素行计算先序/后序图像帧残差δ(p,l,f),所述残差δ(p,l,f)的计算公式为:
δ(p,l,f)=gray(p,l,f)-gray(p,l,f-1)(1≤p≤M,Ldark<l≤N,f>1)。
进一步地,上述差值编码器与所述帧间差分运算器和码流合成器连接,用于对残差进行编码并输出每一有效像素行的标示值B(p,l,f),该标示值B(p,l,f)满足如下条件:
其中,TH为预设阈值,其值为TH=2k-1(0<K<R);binKδ(p,l,f)为残差的K比特有符号自然二进制码,binKTH为TH的K比特有符号自然二进制码,binK-(TH+1)为-(TH+1)的K比特有符号自然二进制码。
进一步地,上述帧间差分运算器还用于计算得到OV值,OV数据缓存单元与帧间差分运算器和码流合成器连接,用于接收、存储并输出每一有效像素行的OV值,所述OV值O(p,l,f)满足如下条件:
其中,binRδ(p,l,f)为残差的R比特有符号自然二进制码。
为了实现上述目的,作为本发明的另一个方面,本发明提出一种图像无损压缩方法,采用上述的图像无损压缩装置,所述图像包括f帧图像,其中f为大于等于2的自然数;该方法包括以下步骤:
步骤1、第1帧图像经过状态寄存单元、数据分配器和S-O-F插入器,不作处理直接将原始数据传输至码流合成器;
步骤2、状态寄存单元依次寄存第i帧图像的像素序号、行序号和帧序号,根据行序号和帧序号,数据分配器将第i帧图像数据中的暗像素行传输至S-O-F插入器,并输出第i帧图像的码流函数G(p,l,f)至码流合成器;
步骤3、数据分配器依次传输第i帧图像数据中除暗像素行外的其他有效像素行至求差编码单元,计算第i帧图像的先序/后序图像帧残差,并对残差进行编码输出第i帧图像每一有效像素行的标示值B(p,l,f)和OV值O(p,l,f);
步骤4、码流合成器根据所述行序号和帧序号依次输出第一帧图像原始数据、第i帧图像的码流函数G(p,l,f)、第i帧图像第j行的标示值B(p,l,f)、OV值O(p,l,f),其中j>暗像素行数,2≤i≤f。
进一步地,上述码流函数G(p,l,f)满足如下条件:
或
其中,gray(p,l,f)为图像的灰度函数,p为图像像素序号,l为图像行序号,f为图像帧序号,M为图像宽度,N为图像高度,R为图像像素的量化位宽,Ldark为图像的暗像元行高。
进一步地,上述标示值B(p,l,f)满足如下条件:
其中,TH为预设阈值,其值为TH=2k-1(0<K<R);binKδ(p,l,f)为残差的K比特有符号自然二进制码,binKTH为TH的K比特有符号自然二进制码,binK-(TH+1)为-(TH+1)的K比特有符号自然二进制码。
进一步地,上述OV值O(p,l,f)满足如下条件:
其中,binRδ(p,l,f)为残差的R比特有符号自然二进制码。
基于上述技术方案可知,本发明提出的图像无损压缩装置及方法具有以下有益效果:
1、本发明提出的无损压缩方法简单高效,硬件实现时延时较低,可以实现较高的处理主频;此外并行度高,可以同时对多个帧的图像进行无损压缩处理,因此利于算法的硬件移植,可实现极高数据带宽下的实时压缩;
2、本发明中图像数据的暗像素行经由S-O-F插入器,将其数据值修改为设定的对齐码,使暗像素行的数值变为规则的,且交替突变的对齐码值,利于压缩数据后处理或图像重建阶段的快速图像检索、定位和对齐;同时又保留了第一帧中的暗像素数据,可以用于图像校正处理,即保留又利用了按像素行;
3、本发明提出的无损压缩装置及其压缩方法尤其适用于高帧率图像数据流和缓变图像数据流的压缩。
附图说明
图1是本发明一实施例提出的图像无损压缩装置的结构示意图;
图2是本发明一实施例提出的图像无损压缩方法的实现流程图;
图3是本发明图1中码流合成器输出的数据结构图;
图4(a)是本发明一实施例提出的图像无损压缩方法的第二帧图像的原始图像的示意图;
图4(b)是本发明一实施例提出的图像无损压缩方法处理后第二帧图像的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明提出了一种图像无损压缩装置,包括状态寄存单元、数据分配器、S-O-F插入器、求差编码单元和码流合成器,其中:
状态寄存单元用于提取待处理图像的像素序号、行序号和帧序号并对其寄存处理;
数据分配器,接收状态寄存单元输出的行序号和帧序号来选择将待处理图像传输到S-O-F插入器或求差编码单元;
S-O-F插入器,接收状态寄存单元输出的像素序号、行序号和帧序号和数据分配器输出的所述图像,将图像的暗像素行的数据值修改为设定的对齐码值并向码流合成器输出码流函数G(p,l,f);
求差编码单元,接收除了暗像素行外的其他有效像素行计算先序/后序图像帧残差,并对残差进行编码,向码流合成器输出每一有效像素行的标不值B(p,l,f)和OV值O(p,l,f);
码流合成器,用于接收码流函数G(p,l,f)、每一有效像素行的标示值B(p,l,f)和OV值O(p,l,f),形成压缩后的数据流。
上述状态寄存单元包含P循环计数器,L循环计数器,F递增计数器,主要用于计算和寄存当前图像数据输出状态,包括P循环计数器寄存当前像素序号,L循环计数器寄存当前行序号,F递增计数器寄存当前帧序号。
上述数据分配器获得状态寄存单元输出的行序号和帧序号,分配并切换数据流后续的处理通道。
S-O-F插入器同样获得状态寄存单元输出的像素序号、行序号、帧序号,当检索到新一帧图像的暗像素行到来后,按照下述公式(1)或公式(2)直接替换原始数据,使之变为规则的,且交替突变的对齐码值,然后输出相应的修改后的数据,便于解压缩等后续处理时的快速检索与定位。
或
其中,gray(p,l,f)为图像的灰度函数,p为图像像素序号,l为图像行序号,f为图像帧序号,M为图像宽度,N为图像高度,R为图像像素的量化位宽,Ldark为图像的暗像元行高。
上述求差编码单元包括数据双缓存单元、帧间差分运算器、差值编码器和OV数据缓存单元。其利用高帧率图像数据流或缓变图像帧时间相关性的原理,帧间差分运算器按照公式(3)求取先序/后序图像帧残差,去掉图像时间冗余信息。并将残差与预设阈值TH进行比较,按照公式(5)得到OV值传输至OV数据缓存单元缓存;差值编码器按照公式(4)的编码策略,得到残差的编码标示值;差值编码器和OV数据缓存单元分别输出残差的编码标示值与OV值。残差δ(p,l,f)的计算公式为:
δ(p,l,f)=gray(p,l,f)-gray(p,l,f-1)(1≤p≤M,Ldark<l≤N,f>1);(3)
标示值B(p,l,f)的计算公式为:
其中,TH为预设阈值,其值为TH=2k-1(0<K<R);binKδ(p,l,f)为残差的K比特有符号自然二进制码,binKTH为TH的K比特有符号自然二进制码,binK-(TH+1)为-(TH+1)的K比特有符号自然二进制码。
OV值O(p,l,f)的计算公式为:
其中,binRδ(p,l,f)为残差的R比特有符号自然二进制码。
码流合成器同样获得状态寄存单元输出的行序号与帧序号,依次选通输出:G(p,l,f)、B(p,l,f)、O(p,l,f),形成最终的图像压缩数据流。
本发明还公开了一种图像无损压缩方法,采用上述的图像无损压缩装置,所述图像包括f帧图像,其中f为大于等于2的自然数;该方法包括以下步骤:
步骤1、第1帧图像经过状态寄存单元、数据分配器和S-O-F插入器,不作处理直接将原始数据传输至码流合成器;
步骤2、所述状态寄存单元依次寄存第i帧图像的像素序号、行序号和帧序号,根据行序号和帧序号,数据分配器将第i帧图像数据中的暗像素行传输至S-O-F插入器,并输出第i帧图像的码流函数G(p,l,f)至码流合成器;
步骤3、数据分配器依次传输第i帧图像数据中除暗像素行外的其他有效像素行至求差编码单元,计算第i帧图像的先序/后序图像帧残差,并对残差进行编码输出第i帧图像每一有效像素行的标示值B(p,l,f)和OV值O(p,l,f);
步骤4、码流合成器根据所述行序号和帧序号依次输出第一帧图像原始数据、第i帧图像的码流函数G(p,l,f)、第i帧图像第j行的标示值B(p,l,f)、OV值O(p,l,f),其中j>暗像素行数,2≤i≤f。
图像帧去除冗余信息,实现压缩主要在求差编码单元实现,其原理为图像序列间的时间相关性原则,以下说明其原理:
假设原始图像分辨率为M×N,量化位宽为R bits,则原始图像数据量为M×N×R(bits)。若计算得到先序/后续图像残差为δ(p,l,f),且门限值设定为TH(注:TH=2k-1(0<K<R)),则对于-(TH+1)<δ(p,l,f)<TH的值,可以直接用binK(δ(p,l,f))予以表示,则R bits数据变成K bits数据,数据位宽减小(例如16bits变为8bits,实现压缩)。对于上述范围外的残差,用binK(TH)+O(p,l,f)或者binK(-(TH+1))+O(p,l,f)共同表示,则原Rbits数据变为(R+K)bits数据(例如16bits变为24bits,数据膨胀)。根据图3所述的输出数据结构,计算第二帧起单帧图像的输出数据量(bits)大小c(f),如公式(6)所示:
由于图像序列的时间相关性原理,先序/后序帧通常具有缓变特性,统计分析中则表现为大量数据均为重复信息,超阈值数据仅占极少像素点。因此对于此类图像,预设合适的阈值即可实现快速、高数据吞吐量的无损图像压缩。极限情况下,公式(6)第三项为0,则最大压缩比R(f)趋近于公式(7):
以下通过具体实施例对本发明提出的图像无损压缩装置及其压缩方法进行详细描述。
实施例1
如图1所示,本实施例提出一种图像无损压缩装置,该装置包括状态寄存单元、数据分配器、S-O-F插入器、求差编码单元和码流合成器,其中:
状态寄存单元包含P循环计数器,L循环计数器,F递增计数器,主要用于计算和寄存当前图像数据输出状态,包括当前像素序号,当前行序号,当前帧序号。
数据分配器获得状态寄存单元输出的行序号和帧序号,分配并切换数据流后续的处理通道,使得数据流进入S-O-F插入器通道和求差编码单元通道。
S-O-F插入器同样获得状态寄存单元输出的像素序号,行序号,帧序号,当检索到新一帧图像的前部暗像素行到来后,按照公式(1)或公式(2)直接替换原始数据,使之变为规则的,且交替突变的对齐码值,便于解压缩等后续处理时的快速检索与定位。
求差编码单元包括数据双缓存单元、帧间差分(Inter-Frame Differentia)运算器、差值编码器和OV数据缓存单元。其利用高帧率图像数据流或缓变图像帧时间相关性的原理,Inter-Frame Differentia运算器按照公式(3)求取先序/后序图像帧残差,去掉图像时间冗余信息;并将残差与预设阈值TH进行比较,按照公式(5)得到OV值传输至OV数据缓存单元缓存;差值编码器按照公式(4)的编码策略,得到残差的编码标示值;差值编码器和OV数据缓存单元分别输出残差的编码标示值与OV值。
码流合成单元同样获得状态寄存单元输出的行序号与帧序号,依次选通输出第一帧图像原始数据、第二帧图像的码流函数G(p,l,f)、第二帧图像有效像素行中第一行的标示值B(p,l,f)、第二帧图像有效像素行中第一行的OV值O(p,l,f)、第二帧图像有效像素行中第二行的标示值B(p,l,f)、……、第三帧图像的码流函数G(p,l,f)、……第f帧图像的码流函数G(p,l,f)……。其输出的数据结构图如图3所示。
实施例2
如图2所示,本实施例提出一种图像无损压缩方法,采用如图1所示的图像无损压缩装置,该压缩方法的包括以下步骤:
步骤1、第一帧图像不做任何处理保持原始数据输出;
步骤2、自第二帧图像起,将该帧图像数据中的暗像素行,按照公式(1)或公式(2)计算获得的对齐码值,替换原值后输出;
步骤3、利用图像帧序列的时间相关性,将第二帧图像中的后续有效像素行,与前序图像中对应行按照公式(3)求取图像帧残差;将计算获得的残差,与预设阈值比较,并按照公式(4)和公式(5)得到编码标示值和OV值,输出残差的编码标示值和OV值至码流合成器;
步骤4、第三帧图像及后续连续图像帧,均无缝重复步骤2-3;码流合成器根据状态寄存单元的数值,依次选通输出,最终形成压缩码流输出。具体输出的压缩图像数据流结构如图3所示。其中TOV_21表示第二帧图像有效像素第1行中,出现OV值的像素点个数(其他值如:等符号说明同上)。
如图4(a)所示为第二帧图像的原始图像(拍摄于生物神经突触观测实验),其图像分辨率为:2560(H)×2162(V),其中包含暗像素行为2行,量化位宽为16bits,此时可以计算出第二帧图像原始图像的大小为2560(H)×2162(V)×16bits=88555520bits≈10.55MB。若设定阈值TH=127(即K=8),然后第二帧图像的原始图像按照本实施例提供的压缩方法进行压缩处理,则第二帧图像经过压缩后实际大小变为44433276bits≈5.29MB,实现了压缩,压缩比为1.993(理论最大压缩比为1.998)。然后采用本方法的逆过程还原重建被压缩的第二帧图像,如图4(b)所示,并将还原重建的第二帧图像与原始的第二帧图像图4(a)做逐点数据对比,可以发现两者数据没有任何差异,即实现了图像信息的无损失处理。同理,如果还有连续的后续图像,也可以照本发明实现无损压缩。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。