发明内容
本发明鉴于上述情况的不足,提供了一种海量图像数据压缩解压方法,其目的是针对目前海量影像在传输、存储方面的难题,利用票据等同类影像的特征、在进行亚像素级和模板聚类的海量信息抽取和分析基础上、对海量影像进行高压缩比、高质量且高速的压缩。
为达到上述目的本发明的方法是:
一种海量图像数据压缩解压方法,包括如下步骤:
(10)输入大批量票据类影像;
(11)分类排序:是根据影像票据的类型,包括票据的尺寸大小、图像分辨率大小、正反面编号、影像差值相似度、影像版面类型、支持业务种类等进行分类排序,形成不同的分类通道,每一个类型的影像票据数据并为一个通道排序,进而对根据每一种分类通道对同类型的影像进行压缩,分类、压缩过程按张进行,分类一张压缩一张,相同分类走相同的通道;
(12)影像压缩:利用动态影像压缩算法,对每一类影像进行编码压缩,设定关键帧,形成不同的压缩流;
(13)重复步骤(11)和步骤(12)的过程操作,循环递归到每一张影像图片,直到最后一张图片完成;
(14)影像打包加密:将压缩后的不同压缩流合并成一个文件,在合并中按不同通道的压缩流分别写入不同的偏移量,进行打包和加密形成影像压缩包;
(15)影像解压:将步骤(14)的影像压缩包首先进行解密,然后根据偏移量,分成不同的压缩流,不同分类通过不同的通道得到,采用动态影像解压缩算法,对每一类影像进行解压缩,还原取出每一幅影像图片;
(16)分类还原:影像解压得到的图片之后,需要根据步骤(11)的分类排序方法,进行反排序,得到解压后影像在原批量中的位置;
(17)重复执行步骤(15)和步骤(16)过程操作,循环递归每个压缩流,直到压缩包中没有影像为止;
(18)压缩后输出批量影像。
一种海量图像数据压缩解压方法,包括如下步骤:
(20)输入大批量票据类影像;
(21)分类排序:是根据影像票据的类型,包括票据的尺寸大小、图像分辨率大小、正反面编号、影像差值相似度、影像版面类型、支持业务种类等进行分类排序;
(22)影像压缩:选择排序后影像中像素尺寸最大的作为压缩流图像大小,其他影像在压缩时进行空白填充到相同的大小,然后利用动态影像压缩算法进行对每一幅影像进行编码压缩,设定关键帧,共享一个压缩流;
(23)影像打包加密:将压缩后的压缩流文件进行打包和加密形成影像压缩包;
(24)影像解压:将步骤(23)的影像压缩包首先进行解密,采用动态影像解压缩算法,对影像进行解压缩,还原取出每一幅影像图片;
(25)分类还原:影像解压得到的图片之后,需要根据步骤(21)的分类排序方法,进行反排序,得到解压后影像在原批量中的位置;
(26)压缩后输出批量影像。
该动态影像压缩算法包括如下步骤:
(31)输入批量影像;
(32)通过模板聚类分析提取影像的分类特征,找到分类通道并加以识别,目标是尽量将同类,同种及内容相似特征的影像放在一起;
(33)保存备解压过程中使用的原始批量影像文件名序列;
(34)保存以备解压过程中恢复使用的原始影像的尺寸大小;
(35)分类通道选择器:步骤(32)之后得到不同的影像分类,根据不同的分类划分为不同的压缩通道或共享一个通道,将所有通道通过偏移量简单的以文件方式存储在一起形成不同的压缩流或一个压缩流;
(36)影像切片:先将原影像切割成16×16、16×8、8×16、8×8、8×4、4×8、4×4等子块预测和编码模式的称为帧或者像条的基准块;基准块组成的基准单元视其为一个向量,每一个影像向量X,与一组称之为码向量的代表性样本Yi,i=1,2,...,Nc,共同组成编码簿;最接近于原向量X的码向量会被选出来,即,从编码簿中选出Yk,使得对所有j=1,2,...,Nc,d((X,Yk)d(X,Yj)),其中d(X,Yi)表示原向量X与码向量Yi之误差。在找到和X最接近的,即d(X,Yk)差值最小的码向量Yk后,Yk的索引k便以log2N c个位表示;
(37)DCT变换:将步骤(36)组成编码簿的切片采用数字余弦转换DCT使之比较容易做影像压缩;
(38)动态对象编码:由步骤(36)得到的像条由宏块组成,多个像条构成像条组,经过步骤(37)后得到灵活宏块排序特性FMO;FMO改变了图像划分为像条和宏块的方式,每个像条组是多个宏块集合,通过宏块到像条组的影射表定义,该影射表在图像参数集中指定;每个宏块有一个像条组标识号,所有像条组标识号构成宏块到像条组影射表;每个像条组由一个或多个像条组成,因此像条是一个宏块序列,同一像条组中的宏块,按光栅顺序处理;
(39)分频滤波:对步骤(38)形成的宏块利用分频编码法进行分频编码,具体过程是输入讯号经由分频滤波算子做分频滤波器的滤波器切分成好几个称之为次频带的子讯号,每一个子讯号的频谱各包含一有限范围的频率,在比较低频的次频带,它含有原讯号的大部分能量,使用较高的位率来编码它;在高频的次频带,它所含的能量很小,使用低位率来作编码;在最低频的次频带,使用接近于无损压缩法来完整重建该次频带,高频的次频带则使用较粗糙的压缩法;
(310)运动对象检测:根据视频压缩过程中的预测算法,本步骤采用了以下检测手段:
(3101)帧内预测,根据编码类型,每个宏块根据36的切分大小,选择其中的一种编码类型,所有块支持称为INTRA-4×4和INTRA-16×16两级帧内编码;
(3102)帧间预测,采用P像条帧间预测、I像条帧间预测和B像条的帧间预测;
(311)运动补偿:采用运动估计算法和多帧运动补偿技术,以1/4像素和1/8像素作为可选的运动估计方法,采用最多5个参考帧,通过在更多的参考帧进行运动估算和补偿,找到列差更小的预测块;
(312)运动对象管理,在对由步骤(38)编码后的对象,如果在步骤(310)中检测有相同的对象进入下一步骤;
(313)对象池,对象池是一个压缩过程中用到的存在内存中的临时缓存单元;保存运动对象;
(314)帧/场编码,对于步骤(311)的预测块采用动态参考帧/场计算方法:在压缩过程中,利用控制阀值来制定参考场;
(315)质量控制,在步骤(314)编码后,如果是质量大小初定的阀值,则回到步骤(37),并标示该影像为参考场,重新进行较低编码率的DCT变换;。
(316)压缩字节流,通过步骤(314)场编码之后得到单张影像编码后的字节流,判断压缩的字节流大小是否符合能够通过步骤(315)质量控制阀值,如果可以,则进行Zlib压缩;
(317)影像打包加密,采用DSA加密算法,同时加入步骤(33)和步骤(34)中的压缩信息进行打包输出。
该模板聚类分析至少包括如下排序的一种:
(321)图像分辨率大小排序:即根据图像的尺寸大小进行从大到小或者从小到大的排序;
(322)影像正反面排序:票据类影像采集过程中,通常包括正反面,正反面排序就是将正面的影像放在一起,反面的影像放在一起;
(323)影像差值相似度排序:采用包括卷积及Delta算法对图像进行排序处理,如果影像是M*N大小的图片,则采用X*Y的采样间距,其中X<M且Y<N,分别对每两副图片的RGB值进行Delta的差值大小排序,将Delta越小的放在一起;其中Delta=(R1-R2)^2+(G1-G2)^2+(B1-B2)^2或者其他能够表示像素之间差值的算法;
(324)影像版面类型排序:根据影像的业务种类、用途、适用范围、扫描过程中的文件名序号等能够唯一标示影像种类的方法进行排序,将同一种类影像放在一起。
该动态影像解压缩算法包括如下步骤:
(41)输入影像压缩文件,影像压缩文件为动态影像压缩算法形成的压缩包文件;
(42)解复用器:首先进行DSA解密,得到原始的压缩流,解复用器首先根据每个偏移量,计算出每一个流的位置;
(43)影像信息提取:提取保存在压缩包中备解压过程中使用的原始批量影像文件名序列、原始影像的尺寸大小信息,以备在输出的时候恢复原图名称和大小;
(44)运动对象解码:解码过程实际上就是从编码码流中恢复出块数据的过程;解码过程主要包含两部分:运动解码和纹理解码;I帧中只含有纹理信息,因此只须解码纹理信息即可恢复I帧;而P帧中不仅包含纹理信息,还包含运动信息,所以须解码运动信息,获得运动矢量并进行运动补偿;另外,还须进行纹理解码获得残差值,将这两部分组合起来才能重建P帧;
(45)运动补偿,采用了运动估计算法和多帧运动补偿技术,以1/4像素和1/8像素作为可选的运动估计方法,采用最多5个参考帧,通过在更多的参考帧进行运动估算和补偿,找到列差更小的预测块;
(46)反余弦变换IDCT,完整的二维iDCT算法和基于一维iDCT运算的循环算法;后者先针对8x8像素块的各列进行计算,再针对各行进行计算;
(47)对象重建,将步骤(46)IDCT之后获得的I帧及P帧对象,存入到对象池中;
(48)对象池,对象池建立过程是动态建立的,在解压过程中,对象池保存了运动对象,运动对象层和对象平面;这些不同的元素以不同的层次组合起来,结合运动脚本,成为表示影像的数据流;
(48)合成,解码器得到的是动态对象编码,将编码中的YUV和Alpha值,按照与前一帧的对比顺利混合后,将获得影像的YUV值,通过RGB转换,最终得到影像图片。
采用本发明的压缩方法的有益效果是:
本发明考虑到票据等同类影像的相似特征,在引入了票据影像相关性系数、动态运动补偿等压缩技术,即利用影像之间的相关性,建立票据局部票据对象模型,抽取对象之间的相关性,采用运动补偿预测等方法,对多张关联的影像进行压缩。本发明的压缩算法的压缩原理是找出票据影像的特征,并进行聚类,寻找的移动物体,并只储存移动物体的影像,并不像一般的JPEG算法储存整张影像造成空间的浪费。因此可以提供影像的压缩比较高,速度比较快。
区别于MPEG等动态视频压缩算法,本发明的动态影像压缩算法和动态影像解压缩算法综合了H264、MPEG2、MPEG4等视频压缩中的关键算法,充分考虑到了海量影像的特征,与一般的视频压缩方法不同,他可根据影像质量阀值控制(质量阀值是一个参数调整和判断的简单逻辑。比如说平均压缩后每张影像大小10K;根据压缩过程动态监测看看压缩后是否满足在5k-15k之间,如果不满足,就表示不满足质量阀值,需要重新修改参数,再做压缩。直到压缩后大小满足5k-15k的要求为止。这里面5k-15k就是控制参数,整个过程就是质量阀控制过程),动态调整压缩过程中的关键帧。另一方面,由于算法仅仅采用了DCT、分频滤波、运动对象检测、动态对象编码等几个关键算法,因此速度比现有的视频压缩算法快;该算法考虑了质量阀值控制,因此压缩的质量比现有的视频压缩算法高。总体上由于引入了动态对象检测、影像分类、质量阀值控制等算法,考虑到了票据类影像的特征,在压缩质量和速度上,均比JPEG2000高。
目前,本发明提供的压缩算法与JPEG2000等相比,压缩速度是后者的5倍强,压缩的结果文件大小是原影像的1/10强,解压后OCR识别率基本保持不变。基于这个特性,本发明使得只需很小的带宽即可在网络上传输实时的影像。
具体实施方式
为了进一步说明本发明的原理及特性,以下结合附图和具体实施方式对本发明进行详细说明。
如图1所示为本发明较佳实施例影像压缩和解压缩流程示意图,从图中可以看出本发明的步骤为:
步骤10输入大批量票据类影像;
步骤11分类排序:是根据影像票据的类型,包括票据的尺寸大小、图像分辨率大小、正反面编号、影像差值相似度、影像版面类型、支持业务种类等进行分类排序(即类型由票据的尺寸大小、正反面编号、支持业务种类等来定),形成不同的分类通道,每一个类型的影像票据数据并为一个通道排序,进而对根据每一种分类通道对同类型的影像进行压缩,分类、压缩过程按张进行,分类一张压缩一张,相同分类走相同的通道;压缩的过程是按“张,或者叫幅”进行,那就是说是分类一张压缩一张,相同的分类走相同的通道。
步骤12影像压缩:利用动态影像压缩算法,进行对每一类影像进行编码压缩,设定关键帧,形成不同的压缩流;
步骤13循环递归(分类通道和按张压缩的原因导致走相同分类通道的张能最后具有相同的标志进入一个文件)每一张影像图片,依次进行步骤11和步骤12操作,直到最后一张图片,转到步骤14;
步骤14影像打包加密成影像压缩包:将步骤12压缩后的不同压缩流合并成一个文件,在合并中按不同通道的压缩流分别写入不同的偏移量(这里就是合并流的过程。所有的通道都合并成一个文件,不同通道之间通过偏移量来区分。)并写入偏移量,进行打包和加密形成影像压缩包。
步骤15影像解压:将步骤14的影像压缩包首先进行解密,然后根据偏移量,分成不同的压缩流,不同分类通过不同的通道得到,对应于步骤12采用的影像关键算法-动态影像压缩算法,采用相反的解压缩算法-动态影像解压缩算法,对每一类影像进行解压缩,还原取出每一幅影像图片。
步骤16分类还原:影像解压得到的图片之后,需要根据步骤11的分类排序方法,进行反排序,得到解压后影像在原批量中的位置;
步骤17重复执行步骤15和步骤16过程操作,循环递归每个压缩流,直到压缩包中没有影像为止,转到步骤18;
步骤18压缩后输出批量影像(还原后图片与原图大小一样,质量根据压缩的参数有所区别。压缩率越大,质量越差)。
利用上述压缩算法及过程,可以实现软、硬件的海量影像压缩及解压缩过程。本方法中步骤12和步骤15压缩算法可为图像视频压缩算法、动态影像压缩算法和动态影像解压缩算法。
如图2所示为本发明另一实施例影像压缩和解压缩流程示意图,从图中可以看出本发明的步骤为:
区别于图1所示的方法,仅在于先排序,然后利用一个通道(因为用同一种通道也能完成进行压缩。只不过在压缩之前将图片进行大小尺寸的缩放,解压后还原)直接进行压缩。
步骤20输入大批量票据类影像;
步骤21分类排序:是根据影像票据的类型(票据的尺寸大小、正反面、业务类型等)进行分类排序;
步骤22影像压缩:选择排序后影像中像素尺寸最大的作为压缩流图像大小,(因为压缩过程必须保证图片大小一致的,所以要选择一个最大的,其他的进行比例缩放)。其他影像在压缩时进行空白填充到相同的大小,然后利用动态影像压缩算法(见图3),进行对每一幅影像进行编码压缩,设定关键帧,共享一个压缩流;
步骤23影像打包加密:将压缩后的压缩流文件进行打包和加密形成影像压缩包;
步骤24影像解压:将步骤23的影像压缩包首先进行解密,对影像进行解压缩,还原取出每一幅影像图片;
步骤25分类还原:影像解压得到的图片之后,需要根据步骤21的分类排序方法,(这里面不需要分类。分类排序目的是将图片相近的排序在一起,这样压缩才有效果。是一个效率问题)进行反排序,得到解压后影像在原批量中的位置;
步骤26压缩后输出批量影像。
利用上述压缩算法及过程,同样可以实现软、硬件的海量影像压缩及解压缩过程。本方法中步骤22和步骤24影像动态压缩算法包括图像视频压缩算法以及动态影像压缩算法和动态影像解压缩算法。
如图3所示为本发明动态影像压缩算法流程示意图,从图中可以看出所述算法的步骤为:
步骤31首先输入的仍然是批量的影像;
步骤32由于票据类影像具有很多相似的特征,因此可以通过模板(模版是识别里面的通用技术,就是分类的意思。)来加以区别。模板聚类分析是提取影像的特征(这里的特征应该是在分类时加入的,特征就是尺寸大小、票据类型、影像内容等):尺寸大小、票据类型、影像内容等,并加以识别,目的是尽量将同类,同种及内容相似的影像放在一起。
模板聚类分析包括:
图像分辨率大小排序321:即根据图像的尺寸大小进行从大到小或者从小到大的排序;
影像正反面排序322:票据类影像采集过程中,通常包括正反面,正反面排序就是将正面的影像放在一起,反面的影像放在一起。
影像差值相似度排序323:如果影像是M*N大小的图片,则采用X*Y的采样间距(其中X<M且Y<N),分别对每两副图片的RGB值进行Delta的差值大小排序,将Delta越小的放在一起。其中Delta=(R1-R2)^2+(G1-G2)^2+(B1-B2)^2或者其他能够表示像素之间差值的算法,例如卷积。本发明方法建议采用包括卷积及Delta算法。
影像版面类型排序324:根据影像的业务种类、用途、适用范围、扫描过程中的文件名序号等能够唯一标示影像种类的方法进行排序,将同一种类影像放在一起。
步骤32中的模板聚类分析可以采用如上排序321-324描述方法中的一种或者多种结合。
步骤33保存原始批量影像文件名序列,以备解压过程中使用
步骤34保存原始影像的尺寸大小,以备解压过程中恢复使用
步骤35分类通道选择器:步骤32之后得到不同的影像分类,根据不同的分类划分为不同的压缩通道,形成不同的压缩流;其中可采用一个分类一个通道(图1),也可采用共享一个通道(图2);本步骤包括任意通道合并。(不同的通道得到的是不同的压缩流,任意通道合并就是将所有通道通过偏移量简单的以文件方式存储在一起)。
步骤36影像切片:先将原影像切割成16×16、16×8、8×16、8×8、8×4、4×8、4×4等子块预测和编码模式,采用更小的块和自适应编码的方式,使得预测残差的数据量减少,进一步降低了码率的基准块,该基准块称为帧或者像条。基准块是动态检测中的基准单元,并且视其为一个向量。每一个影像向量X,与一组代表性样本(一般称之为码向量)Yi,i=1,2,...,Nc,共同组成所谓的编码簿。最接近于原向量X的码向量会被选出来,即,从编码簿中选出Yk,使得对所有j=1,2,...,Nc,d((X,Yk)d(X,Yj)),其中d(X,Yi)表示原向量X与码向量Yi之误差。在找到和X最接近的码向量Yk后(即d(X,Yk)差值最小),Yk的索引k便以log2Nc个位表示。
解码过程中,也有一份同样的编码簿,(该编码簿是在本步骤36中预存的,是一个索引值)计算索引k时,将从编码簿中找出Yk,并且用Yk代替了X,因此只需从编码簿中找出第k个码向量。
步骤37DCT变换
转换编码(transform coding)是将原讯号经过一个转换变成另外一种表示法。这个表示法可以经由逆转换回复成原讯号;而且它的能量较原讯号来得集中,因此比较容易做影像压缩。本方法采用数字余弦转换(DCT),可以采用Karhunen-Loève转换(以下简称KLT)、数字傅利叶转换(DFT)、整数变换等。对于一般展现高度取样间累赘的影像来说,DCT的表现与KLT相差无几,而且DCT也有快速算法可以在O(nlogn)等级的时间内完成n点的转换,由于它不会产生像DFT所产生的多余的高频项,因此DCT能做到更高的压缩效能。
步骤38动态对象编码
由步骤36得到的像条由宏块组成,多个像条构成像条组,经过步骤37后得到灵活宏块排序特性(FMO)。FMO改变了图像划分为像条和宏块的方式。每个像条组是多个宏块集合,通过宏块到像条组的影射表定义,该影射表在图像参数集中指定。每个宏块有一个像条组标识号,所有像条组标识号构成宏块到像条组影射表。每个像条组由一个或多个像条组成,因此像条是一个宏块序列,同一像条组中的宏块,按光栅顺序处理。
利用FMO,图像可以划分为许多宏块扫描图样,例如交织图样、点缀图样,一个或多个前景像条组、剩余像条组,或棋盘型图样影射等。因此建立类似于H.264/AVC中的像条编码类型:
I像条(帧):最简单的编码类型,所有的宏块不参考视频序列中其他的图像。
P像条(帧):除了I像条编码类型外,P像条的部分宏块可以利用帧间预测,每个预测块至多可使用一个运动补偿预测信号。
B像条(帧):除了P像条编码类型外,B像条的部分宏块可以利用帧间预测,每个预测块可使用两个运动补偿预测信号。
以上三种与以前的标准相似,主要是参考图像不同,其余两种像条类型是SP(切换P)SI(切换I),是新的类型,用于在不同位率编码码流之间进行有效切换。
SP像条(帧):称作切换P像条,能在不同编码图像之间有效地切换。
SI像条(帧):称作切换I像条,允许SP像条的宏块完全匹配,达到随机读取数据进行解码和恢复错误的目的。
步骤39分频滤波:
滤波的基本思想是:如果块边沿的绝对差值相对比较大,出现块人工瑕疵的可能性就很大,因此需要进行相应处理。然而,如果差值幅度很大,编码量化过程的误差不能解释,边沿很可能反映了源图像的实际样值,不需处理。
经过步骤38后,进行分频编码法(subband coding,以下简称SBC)中,输入讯号经由滤波器切分成好几个子讯号,每一个子讯号的频谱各包含一有限范围的频率。这些子讯号称之为次频带(subbands),每一个次频带可以分开各做各的编码工作,也可以一起做。采用SBC有许多好处,借着让每个次频带使用不同数目的位来表示每个取样,则每个次频带的量化数及其重建误差可以分别予以控制,因此整个重建误差的频谱形状可以被控制成频率的函数。在比较低频的次频带,它含有原讯号的大部分能量,因此一般会使用较高的位率来编码它。至于高频的次频带,它所含的能量很小,因此一般是使用低位率来作编码。在最低频的次频带,会使用接近于无损压缩法来完整重建该次频带,高频的次频带则使用较粗糙的压缩法。
分频滤波算子是分频编码法结合小波(wavelet,又译为波元)来做分频滤波器。小波指的是由一个函数经过放大与平移所形成的函数族群。它的理论发展为数字讯号的分析与处理提供了一套新的架构,因此不仅在编码上,同时在语音处理、影像处理、计算机视觉等等研究领域也有着相当成功的应用。就实作的观点来说,小波分解可以视为分频编码法的一个特例。分频编码法的压缩效率与整体效能,不仅决定于分析/合成滤波堆,也决定于每一个次频带所使用的压缩方法。
步骤310运动对象检测:
根据视频压缩过程中的预测算法,本方法采用了以下检测手段:
帧内预测:
根据编码类型,每个宏块根据步骤36的切分大小,选择其中的一种编码类型,所有块支持两级帧内编码,称为INTRA-4×4和INTRA-16×16。
INTRA-4×4模式基于分别预测每个4×4亮度块,适合表现图像细节部分。而INTRA-16×16模式将整个16×16亮度块进行预测,适合平滑图像区。此外对这两种亮度预测类型,色度单独进行预测。作为INTRA-4×4和INTRA-16×16的另一种选择,编码类型允许编码器简单跳过预测和变换编码过程,直接发送采样值(采样值即为像素值)。
帧间预测:
●P像条帧间预测
除了帧内宏块编码类型外,P像条宏块使用多种预测类型,即运动补偿编码类型。为了方便运动描述,每个P型宏块对应于指定的固定大小的宏块划分。亮度块的划分大小为:16×16、16×8、8×16、8×8,称为像条。
运动矢量跨越图像边界检测,这种情况参考帧需用外插法推算出图像外的采样值。利用邻近块的平均或方向预测,用差分编码计算运动矢量。
●I像条帧间预测
在帧内编码I画面中,又加入了帧内预测编码技术,即解码时可用周围数据的差分值来重构画面。帧内预测以特定大小的块作为基准单元,从周围像素中预测编码化的模板。H.264的基准块大小分4×4和16×16两种,前者有9种预测模式,预测方向见图3。后者也有4种模式。因为原图像左右、上下都有一定的相关性,不同部分的差分值总比不进行帧内预测的原始值要少,故量化后的编码量就减少了,而且高频成分也比原图像为少。
●B像条的帧间预测
B像条相对P像条的概念与以前的标准类似,但有些不同,B像条可以作为运动补偿预测的参考图像,B像条可以对两个补偿预测值进行加权运算。
步骤311运动补偿:
运动补偿预测是一个有力的工具,以便减小相关性系数较近影像之间的空间冗余度。动补偿概念是以对影像之间运动的估算为基础的,也就是说,若相似的影像中所有物体均在空间上有一位移,那么用有限的运动参数(如对于像素的平移运动,可用运动矢量来描述)来对两幅影像间的运动加以描述。在这一简单例子中,一个来自前编码帧的运动补偿预测像素,就能给出一个有效像素的最佳预测。通常,预测误差和运动矢量均传送至接收机。由于一些运动矢量之间的空间相关性通常较高,有时可以这样认为:一个运动矢量代表一个相邻像素块的运动。为了做到这一点,画面一般划分成一些不连接的像素块,对于每一个这样的像素块,只对一个运动矢量进行估算、编码和传送。运动补偿预测误差是这样计算的:在带有前一张影像参照块中运动飘移对应物的画面块中,减去一个像素。
本方法中的运动补偿采用了运动估计算法和多帧运动补偿技术,以1/4像素和1/8像素作为可选的运动估计方法,采用最多5个参考帧,通过在更多的参考帧进行运动估算和补偿,找到列差更小的预测块。通过运动估计,提高了预测精度,同时降低了残差的编码码率。
多图像运动补偿预测,以前编码的多个图像都可用作运动补偿参考,每个运动补偿需要指示参考图像的索引。一个8×8块划分成的小于8×8块的运动补偿使用同一参考图像索引,该功能要求编码和解码器具有多帧图像缓冲器,解码器通过位流中的管理控制操作信息与编码器同步。
除了运动补偿宏块模式外,P宏块可使用P_Skip模式,这种模式没有量化预测误差、不用传送运动矢量和参考索引参数。信号重建与P_16×16宏块类型预测信号类似,采用多帧缓冲区索引0的图像作为参考图像。重建宏块的运动矢量与16×16块运动矢量预测类似。
步骤312运动对象管理
对于由步骤38编码后的对象,如果在步骤310中检测有相同的对象,将池的概念进行管理,从而提高编码速度。
步骤313对象池
在压缩算法中,对象池是一个压缩过程中用到的临时缓存单元,存在内存中,对象池保存了运动对象,运动对象层和对象平面。这些不同的元素以不同的层次组合起来,结合运动脚本,成为表示影像的数据流。对象池的引入可以加快编码速度和解码速度。
步骤314帧/场编码
在隔行扫描帧中,当有移动的对象,与逐行相比,两个相邻行倾向减少统计的相关性,这种情况应比每场分别压缩更为有效。为了达到高效率,在编码帧时,采用以下可选方案:
●结合两场成一个完整帧,作为帧编码,称为帧模式。
●两场分别编码,称为场模式。
●结合两场成一个完整帧,作为帧压缩。在编码时,划分垂直相邻的两个宏块对成两个场宏块对或帧宏块,再进行编码。
每帧图像可自适应选择3种模式之一进行编码。在前两种之间进行选择称为图像自适应帧/场编码(PAFF),当一帧作为两场编码时,每场划分为宏块,编码方式与帧编码方式很相似,主要有下面的例外:
●运动补偿用参考场,而不是参考帧。
●变换系数的“之字型”扫描方式不同。
●宏块水平边沿去块滤波器的强度不选用“强”,因为场行在空间上是两倍帧行的距离。
如果图像由运动区和非运动区混合组成,非运动区用帧模式、运动区用场模式是最有效的编码方法。因此每个垂直宏块对(16×32)可独立选择编码(帧/场)模式。这种编码选择称为宏块自适应帧/场编码(MBAFF)。对于帧模式宏块对,每个宏块包含帧行,对于场模式宏块对,顶部宏块包含顶场行,底部宏块包含底场行。
本方法采用动态参考帧(场)计算方法,即在压缩过程中,将根据步骤316质量控制,也就是说利用控制阀值来制定参考场。
步骤315质量控制
在步骤314编码后,如果质量大小初定的阀值(根据压缩后图像的大小),则回到进入到步骤37DCT,并标示该影像为参考场,重新进行较低编码率的DCT变换,从而改善整体质量。
步骤316压缩字节流
通过步骤314场编码之后得到单张影像编码后的字节流,判断压缩的字节流大小是否符合通过能够通过步骤315质量控制(质量控制包括压缩后图像字节大小控制),如果可以,则进行Zlib压缩,提高压缩效率,然后进入步骤317打包加密。
步骤317最后输出影像进行打包加密,采用DSA加密算法,提高压缩包的安全性。同时加入影像步骤33和步骤34中的压缩信息,以备解压时使用。
如图4所示为本发明动态影像解压缩算法流程示意图,从图中可以看出所述算法的步骤为:
步骤41首先输入的是影像压缩文件;
步骤42解复用器:首先进行DSA解密,得到原始的压缩流。由于动态影像压缩算法中支持不同的压缩流混合,因此,在解复用器首先根据每个偏移量,计算出每一个流的位置。
步骤43影像信息提取:提取压缩包中文件名称、影像尺寸大小信息,以备在输出的时候恢复原图名称和大小。
步骤44运动对象解码:解码过程实际上就是从编码码流中恢复出块数据的过程。解码过程主要包含两部分:运动解码和纹理解码。I帧中只含有纹理信息,因此只须解码纹理信息即可恢复I帧。而P帧中不仅包含纹理信息,还包含运动信息,所以须解码运动信息,获得运动矢量并进行运动补偿。另外,还须进行纹理解码获得残差值,将这两部分组合起来才能重建P帧。
步骤45运动补偿
本方法中的运动补偿采用了运动估计算法和多帧运动补偿技术,以1/4像素和1/8像素作为可选的运动估计方法,采用最多5个参考帧,通过在更多的参考帧进行运动估算和补偿,找到列差更小的预测块。在亚像素运动估计,提高了预测精度,同时降低了残差的编码码率。
步骤46IDCT(反余弦变换)
完整的二维iDCT算法和基于一维i DCT运算的循环算法。后者先针对8x8像素块的各列进行计算,再针对各行进行计算。
步骤47对象重建
即将IDCT之后获得的I帧及P帧对象,存入到对象池中,提高解码速度
步骤48对象池,对象池建立过程是动态建立的,解压过程也是动态建立的。
在解压过程中,对象池保存了运动对象,运动对象层和对象平面。这些不同的元素以不同的层次组合起来,结合运动脚本,成为表示影像的数据流。对象池的引入可以加快编码速度和解码速度。
步骤48合成
解码器得到的是动态对象编码,将编码中的YUV和Alpha值,按照与前一帧的对比顺利混合后,将获得影像的YUV(YUV(亦称YCrCb)是被欧洲所采用的一种颜色编码方法(属于PAL)。与RGB信号传输相比,它最大的优点在于只需占用极少的带宽。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是通过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面-色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了GB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。)值,通过RGB转换,最终得到影像图片。
如图5、图6、图7所示,根据本发明的方法,对海量的票据类影像数据进行压缩处理,得到如下结果:
压缩数据比较1,:张数:300张,票据来源某银行票据类影像
从上表可以看出来,对于张数为300张的票据影像,采用JPEG压缩之后大小为35M,采用本发明方法压缩后得到是3.4M,将近10倍的压缩效率。
压缩数据比较2:张数:650张,影像来源某银行凌乱影像
原图(JPEG) |
采用本发明方法压缩 |
75M字节 |
8M字节 |
由此可见,本发明的方法在保证压缩质量的前提下,实现了良好的压缩比率。
从上表可以看出来,对于张数为650张的影像,凌乱次序的影像,采用JPEG压缩之后大小为75M,采用本发明方法压缩后得到是8M,能将近9倍的压缩效率。