欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种面向高速收费图片集的无损压缩方法独创技术17292字

一种面向高速收费图片集的无损压缩方法

2021-02-14 15:43:58

一种面向高速收费图片集的无损压缩方法

  技术领域

  本发明涉及图像处理领域,特别是一种面向高速收费图片集的无损压缩方法。

  背景技术

  普遍采用RGB 3个字节表示一个像素点的方式无损保存位图;对于相同值很多的图片矩阵,采用行程编码减少冗余做无损压缩是主流技术。

  采用位图格式分别存储高速收费图片,将导致大量相同的信息被重复存储,对存储资源是巨大消耗。

  对于高速收费图片,大量无损位图消耗很多存储,不同图片之间的内容和信息存在高度相似之处,在物理存储中构成了重复存储。

  发明内容

  本发明要解决的技术问题是针对上述现有技术的不足,而提供一种面向高速收费图片集的无损压缩方法,该面向高速收费图片集的无损压缩方法能够发现冗余、重复的信息,对图片集进行无损压缩,减少存储资源消耗。

  为解决上述技术问题,本发明采用的技术方案是:

  一种面向高速收费图片集的无损压缩方法,包括如下步骤。

  步骤1、建立原始图片集:在每个收费车道的设定时间段内,共有N辆汽车通过,对每辆汽车拍摄一张原始图片,则同一摄像头将拍摄得到N张原始图片,分别为IMG1,IMG2,…,IMGN。每张原始图片的分辨率均为W×L,原始图片均为RGB位图。对N张图片建立原始图片集IMG,则IMG={IMG1,IMG2,…,IMGN}。

  步骤2、寻找基准图片,包括如下步骤:

  步骤21、一次相似度计算:对原始图片集IMG中的任意两张原始图片进行相似度计算,得到两张原始图片间的相似度系数。

  步骤22、构建相似度矩阵S:针对步骤21获得的所有相似度系数,构建N×N的相似度矩阵S。相似度矩阵S中每行的N列向量分别表示某张原始图片与N张原始图片的相似度系数。

  步骤23、寻找基准图片:对相似度矩阵S中每行分别求取平均值,并选取平均值最大者所在行的原始图片为基准图片,并记为XBaseline。将原始图片集IMG中除基准图片外的N-1张图片重新编排,并建立新图片集X,则X={X1,X2,…,XN-1}。

  步骤3、图片分块:采用方形窗口,将步骤23形成的XBaseline和新图片集X中的每张图片,均按照从上到下、从左到右的顺序,分为M块数据块并依次编号。XBaseline分块后的图片记为X′Baseline,新图片集X分块后的分块图片集,记为X′,则X′={X′1,X′2,…,X′N-1}。

  步骤4、二次相似度计算:将分块图片集X′中每张图片的M块数据块,与X′Baseline中的M块数据块进行逐一对比,并计算X′中每张图片的每块数据块与X′Baseline中每块数据块的相似度系数sita。

  步骤5,创建集中式存储数据块及数据索引矩阵,具体如下:

  步骤5A、创建数据块CBaseline,用于存储X′Baseline的分块数据。

  步骤5B、创建数据块COrig,用于存储X′i的原始分块数据。

  步骤5C、创建数据块CΔ,用于存储X′与X′Baseline的差值块数据。

  步骤5D、创建(N-1)×M维的索引矩阵STYPE(stij),用于存储X′中每个块的存储方式。

  步骤5E、创建(N-1)×M维的索引矩阵IDX(ixij),用于存储X′中每个块的存储位置。

  步骤6,去冗余存储:根据步骤4计算的相似度系数sita,对分块图片集X′中的第i张图片的第j块数据块,按照如下方式进行存储。其中,1≤i≤N-1。1≤j≤M。

  步骤61、当sita=100%时,则第i张图片中第j块数据块不进行存储。索引矩阵STYPE(stij)中的存储方式值stij记为0,索引矩阵IDX(ixij)中的存储位置值ixij记为自身数据块的对应序号j。

  步骤62、当sita≤gamma时,将第i张图片中第j块数据块的原始数据存储在步骤5创建的数据块COrig中。其中,gamma为设定的相似度系数阈值,gamma>50%。索引矩阵STYPE(stij)中的存储方式值stij记为-1,索引矩阵IDX(ixij)中的存储位置值ixij等于数据块COrig中对应的顺序块序号。

  步骤63、当gamma<sita<100%时,先将第i张图片中第j块数据块的像素点与X′Baseline中第j块数据块的像素点逐一相减,形成第j块像素差值块。然后,将第j块像素差值块存储在步骤5创建的数据块CΔ中。索引矩阵STYPE(stij)中的存储方式值stij记为1,索引矩阵IDX(ixij)中的存储位置值ixij记为CΔ数据块对应的顺序块序号。

  步骤7,数据块CΔ无损压缩:当分块图片集X′中N-1张图片均按照步骤6的方法去冗余存储完成后,采用游程编码对数据块CΔ进行无损压缩,压缩后记为CΔ-code。

  步骤21中、一次相似度计算时,两张原始图片间的相似度系数的计算公式如下:

  

  其中,sij表示IMGi和IMGj的相似度系数。IMGi和IMGj为原始图片集IMG中的任意两张原始图片。IMGi-IMGj表示i,j两幅原始图片对应的像素点一一相减,形成像素点差值。count[(IMGi-IMGj)==0]表示像素点差值为0的数量。W×L表示原始图片集IMG中每张原始图片的分辨率。

  步骤22中,构建的相似度矩阵S,表示如下:

  S={sij}i,j∈(1,2,…,N)。

  步骤23中,对相似度矩阵S中每行分别求取平均值的计算公式为:

  

  其中,mean_Si表示相似度矩阵S中第i行除sii外的平均值。

  相似度矩阵S中行平均值最大者所在行i的计算公式为:

  iBaseline=arg(Maxi(mean_S)),i∈(1,2,…,N)

  其中,iBaseline表示基准图片所对应的图片序号。

  步骤4中,相似度系数sita的计算公式为:

  

  其中,表示分块图片集X′中第i张图片的第j块数据块与X′Baseline中第j块数据块的像素点差值。R×R表示M块数据块中每块数据块的分辨率。

  步骤62中,设定的相似度系数阈值gamma=70%~75%。

  还包括步骤8,图片Xi解压,具体解压方法,包括如下步骤:

  步骤81,CΔ-code解压:从压缩后数据块CΔ-c;de解压,得到数据块CΔ。

  步骤82,读取索引信息:读取索引矩阵STYPE(stij)和索引矩阵IDX(ixij)中第i行的存储方式信息和存储位置信息。

  步骤83,提取分块数据:依次提取数据块CBaseline、COrig、CΔ对应的分块数据。

  步骤84,CΔ中差值块数据还原:对于步骤83获取的CΔ中的差值块采用逆运算获取分块图片X′i中的原始分块数据BLKi。

  步骤85,X′i还原:根据读取的索引信息,将数据块COrig和原始分块数据BLKi还原为X′i,将数据块CBaseline还原为X′Baseline。

  步骤86,结合X′i和X′Baseline,还原原始图片Xi。

  本发明具有如下有益效果:通过两次相似度计算和图片分块,对冗余数据进行压缩存储。根据同一收费车道摄像设备固定、图片背景高度相似的特点,将同一收费车道某一时间段内的收费位图构建集合,做第一次相似度计算,主要为计算图片间两两相似度,寻找与其他图片相似度平均最大的基准图片,然后将基准图片在内的所有图片进行分块,通过各图片分块数据与基准图片分块的对比,对图片分块做二次相似度计算,对完全相同的块不做重复存储,对高度相似的块集中做差值无损压缩存储。本发明能实现图片的无损压缩,同时兼顾存储的节约性和经济性。

  附图说明

  图1显示了本发明一种面向高速收费图片集的无损压缩方法的流程图。

  具体实施方式

  下面结合附图和具体较佳实施方式对本发明作进一步详细的说明。

  本发明的描述中,需要理解的是,术语“左侧”、“右侧”、“上部”、“下部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,“第一”、“第二”等并不表示零部件的重要程度,因此不能理解为对本发明的限制。本实施例中采用的具体尺寸只是为了举例说明技术方案,并不限制本发明的保护范围。

  如图1所示,一种面向高速收费图片集的无损压缩方法,包括如下步骤。

  步骤1、建立原始图片集:在每个收费车道的设定时间段(可以是15分钟、30分钟、1个小时等)内,共有N辆汽车通过,对每辆汽车拍摄一张原始图片,则同一摄像头将拍摄得到N张原始图片,分别为IMG1,IMG2,…,IMGN。每张原始图片的分辨率均为W×L,原始图片均以RGB位图无损存储,在存储媒介中24位表示1个像素值。

  对N张图片建立原始图片集IMG,则IMG={IMG1,IMG2,…,IMGN}。

  步骤2、寻找基准图片,包括如下步骤:

  步骤21、一次相似度计算:对原始图片集IMG中的任意两张原始图片进行相似度计算,得到两张原始图片间的相似度系数。

  一次相似度计算时,两张原始图片间的相似度系数的计算公式优选表示如下:

  

  其中,sij表示IMGi和IMGj的相似度系数。IMGi和IMGj为原始图片集IMG中的任意两张原始图片。IMGi-IMGj表示i,j两幅原始图片对应的像素点一一相减,形成像素点差值。count[(IMGi-IMGj)==0]表示像素点差值为0的数量。W×L表示原始图片集IMG中每张原始图片的分辨率。

  步骤22、构建相似度矩阵S:针对步骤21获得的所有相似度系数,构建N×N的相似度矩阵S。相似度矩阵S中每行的N列向量分别表示某张原始图片与N张原始图片的相似度系数。

  上述构建的相似度矩阵S,优选表示如下:

  S={sij}i,j∈(1,2,…,N)。

  其中,相似度矩阵S中第一行表示第一张原始图片与N张原始图片的相似度系数,分别为s11、s12、s13、……、s1N;其中,s11=1,依次类推。

  步骤23、寻找基准图片。

  对相似度矩阵S中每行分别求取平均值,并选取平均值最大者所在行的原始图片为基准图片,并记为XBaseline。

  上述对相似度矩阵S中每行分别求取平均值的计算公式优选为:

  

  其中,mean_Si表示相似度矩阵S中第i行除sii外的平均值;如在第一行中,计算除s11外,其余s12、s13、……、s1N的平均值。

  相似度矩阵S中行平均值最大者所在行i的计算公式为:

  iBaseline=arg(Maxi(mean_S)),i∈(1,2,…,N)

  其中,iBaseline表示基准图片所对应的图片序号。

  然后,将原始图片集IMG中除基准图片外的N-1张图片重新编排,并建立新图片集X,则X={X1,X2,…,XN-1}。

  步骤3、图片分块。

  由于每张图片都是一个个像素点按照分辨率排列而成,因而用方形窗口对其进行分块。本发明采用无重叠分块,从上到下、从左到右依次分块,图片边缘不足分块窗大小的补0。通常采用T×R(R∈Z+)的方形窗,通常视图片的分辨率取(4×4,8×8,16×16)等组合。

  根据此原则,假设XBaseline,X分块后的矩阵分别为X′Baseline,X′:{X′1,X′2,…,X′N-1},每张图片均分为M块,并依次编号,依据从上到下、从左到右的顺序。

  步骤4、二次相似度计算。

  将分块图片集X′中每张图片的M块数据块,与X′Baseline中的M块数据块进行逐一对比,并计算X′中每张图片的每块数据块与X′Baseline中每块数据块的相似度系数sita。

  上述相似度系数sita的计算公式优选为:

  

  其中,表示分块图片集X′中第i张图片的第j块数据块与X′Baseline中第j块数据块的像素点差值。R×R表示M块数据块中每块数据块的分辨率。

  步骤5,创建集中式存储数据块及数据索引矩阵,具体如下:

  步骤5A、创建数据块CBaseline,用于存储X′Baseline的分块数据。其中,用BLKBaseline(j)表示基准图片X′Baseline的第j块,其中j∈M。

  步骤5B、创建数据块COrig,用于存储X′i的原始分块数据。

  步骤5C、创建数据块CΔ,用于存储X′与X′Baseline的差值块数据。其中,表示X′i与X′Baseline的差值块的第j块,其中i∈(1,2,…,N-1)、j∈(1,2,…,M)。BLKi(j)表示X′i原始数据块的的第j块,其中i∈(1,2,…,N-1)、j∈(1,2,…,M)。

  步骤5D、创建(N-1)×M维的索引矩阵STYPE(stij),用于存储X′中每个块的存储方式。

  

  步骤5E、创建(N-1)×M维的索引矩阵IDX(ixij),用于存储X′中每个块的存储位置。

  

  步骤6,去冗余存储:根据步骤4计算的相似度系数sita,对分块图片集X′中的第i张图片的第j块数据块,按照如下方式进行存储。其中,1≤i≤N-1。1≤j≤M。

  步骤61、当sita=100%时,则第i张图片中第j块数据块不进行存储。索引矩阵STYPE(stij)中的存储方式值stij记为0,索引矩阵IDX(ixij)中的存储位置值ixij记为自身数据块的对应序号j。

  步骤62、当sita≤gamma时,将第i张图片中第j块数据块的原始数据存储在步骤5创建的数据块COrig中。其中,gamma为设定的相似度系数阈值,gamma的具体取值可根据样例数据集的分析结果选定,通常取值要在50%以上,优选为70%~75%。

  索引矩阵STYPE(stij)中的存储方式值stij记为-1,索引矩阵IDX(ixij)中的存储位置值ixij等于数据块COrig中对应的顺序块序号。

  步骤63、当gamma<sita<100%时,先将第i张图片中第j块数据块的像素点与X′Baseline中第j块数据块的像素点逐一相减,形成第j块像素差值块。然后,将第j块像素差值块存储在步骤5创建的数据块CΔ中。索引矩阵STYPE(stij)中的存储方式值stij记为1,索引矩阵IDX(ixij)中的存储位置值ixij记为CΔ数据块对应的顺序块序号。

  重复上述步骤6,直至完成分块图片集X′中N-1张图片的去冗余存储完成,具体计算程序优选表示如下:

  for i in(1,2,…,N-1):

  Δ′i=X′i-X′Baseline

  for j in(1,2,…,M):

  

  if sita=100%:

  stij=0

  ixij=j

  if sita>gamma&sita<100%:

  stij=1

  ixij=order1

  

  order1=order1+1

  else:

  stij=-1

  ixij=order2

  CΔ(order1)<=BLKi(j)

  ordEr2=order2+1

  其中,常数order1、ordEr2分别表示CΔ和COrig的块序号,初始值分别为0。

  步骤7,数据块CΔ无损压缩。

  CΔ是一个包含大量连续0取值元素的矩阵,当分块图片集X′中N-1张图片均按照步骤6的方法去冗余存储完成后,采用游程编码对数据块CΔ进行无损压缩,压缩后记为CΔ-code。

  上述游程编码原理与过程如下:

  假设有数据{00,00,00,00,00,00,00,5C,9A}共9BYTE的数据表示3个像素点差值,通过游程编码后可变为{07,00,01,5C,01,9A}共6BYTE的数据即完成像素点差值的表示,存储空间减少了30%以上,其中{07,00}表示7个00BYTE,{01,5C}表示1个5C BYTE,以此类推。

  通过上述循环计算后,CBaseline、COrig、CΔ-code、STYPE(stij)、IDX(ixij)相关信息均存储下来。

  步骤8,图片Xi解压,具体解压方法,包括如下步骤:

  步骤81,CΔ-c;de解压:从压缩后数据块CΔ-c;de解压,得到数据块CΔ。

  步骤82,读取索引信息:读取索引矩阵STYPE(stij)和索引矩阵IDX(ixij)中第i行的存储方式信息和存储位置信息。

  步骤83,提取分块数据:依次提取数据块CBaseline、COrig、CΔ对应的分块数据。

  步骤84,CΔ中差值块数据还原:对于步骤83获取的CΔ中的差值块采用逆运算获取分块图片X′i中的原始分块数据BLKi。

  步骤85,X′i还原:根据读取的索引信息,将数据块COrig和原始分块数据BLKi还原为X′i,将数据块CBaseline还原为X′Baseline。

  步骤86,结合X′i和X′Baseline,并根据分辨率,还原原始图片Xi。

  本发明算法通过仿真试验,当R取值16,gamma取值75%的情况下,同一高速收费车道同一小时内的位图集,在无损压缩的前提下,位图存储最高可减少12%的存储空间。

  以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。

《一种面向高速收费图片集的无损压缩方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)