一种基于CIS的图像扫描系统、方法及存储介质与流程

文档序号:18180455发布日期:2019-07-17 05:10阅读:534来源:国知局
一种基于CIS的图像扫描系统、方法及存储介质与流程

本发明属于图形处理领域,更具体地,涉及一种基于cis的图像扫描系统、方法及存储介质。



背景技术:

如今,各种类型的图像扫描系统广泛应用于金融机具、工业检测、日常生活和自助服务等领域。传统的图像扫描系统大多属于平面式扫描仪,所用图像传感器为电荷耦合器件(charge-coupleddevice,ccd),存在设备体积大、结构复杂、生产成本高等缺点。现代的图像扫描系统开始采用接触式图像传感器(contactimagesensor,cis)进行扫描。cis的光源、传感器、放大器集成为一体,具有结构紧凑、体积小、重量轻、成本低等特点。然而,现有的图像扫描系统仍然存在一些问题。

首先,不论采用何种图像传感器及结构,现有图像扫描系统均作为独立的扫描仪设备接入计算机进行使用,在用户可用空间有限的情况下会带来不便。其次,现有图像扫描系统大多直接将扫描稿件的原始图像上传到用户计算机中,再对图像进行质量调整、压缩存储等操作。扫描稿件的原始图像通常具有较大的数据量,图像从扫描系统传输到计算机需要花费较长时间。另外,在用户计算机上对图像进行操作,这种处理方式对用户计算机的性能配置有一定要求。第三,对采用cis的图像扫描系统而言,cis和模拟电路彼此之间都存在特性差异,不同cis、不同模拟电路扫描出的图像在整体亮度上会有不同表现。另外,由于cis上led光源阵列发出的光线不均匀,并且各感光单元对光线的感知程度不一致,扫描得到的图像叠加有竖直方向上的噪声,对于扫描图像的质量都存在很大影响。第四,传统的图像扫描系统不对功耗进行控制,在待机状态下仍然保持在大功耗工作状态,不满足绿色环保理念。第五,现有图像扫描系统支持的扫描图像的分辨率、光谱和尺寸选择有限,且扫描不同类型和分辨率图像过程中有较长的中间等待时间,难以满足不同用户的不同需求。



技术实现要素:

针对现有技术的缺陷,本发明的目的在于提供一种基于cis的图像扫描系统、方法及存储介质,旨在解决扫描模式单一、切换过慢以及工作功耗大的问题。

为实现上述目的,按照本发明的一方面,本发明提供了一种基于cis的图像扫描系统,包括cis接口模块、图像预处理模块以及图像后处理模块;

cis接口模块的输入与cis相连,cis接口模块的输出与图像预处理模块的输入相连,图像预处理模块的输出与图像后处理模块的输入相连,图像后处理模块的输出与外界设备相连;

cis接口模块用于驱动cis并将cis扫描的图像进行传输;

图像预处理模块用于对所述图像进行亮度自适应调整、数据重新排列和单点线性校正;

图像后处理模块用于对所述预处理后的图像进行格式转换并将处理后的图像进行传输。

进一步地,cis接口模块包括cis驱动电路和cis模拟数据传输接口;cis驱动电路用于实现对cis的驱动;cis模拟数据传输接口用于将cis扫描图像过程中采集的模拟数据传输给图像预处理模块;

图像预处理模块包括fpga单元,分别与fpga单元连接的模数转换单元和存储单元;fpga单元用于控制cis和模数转换单元的正常工作,采集图像数据并对图像进行预处理,将处理后的图像发送给图像后处理模块;模数转换单元用于将cis扫描图像过程中采集的模拟数据转化为数字数据;存储单元用于储存fpga单元图像预处理过程中使用的校正数据;

图像后处理模块包括微处理器单元和通信接口;微处理单元用于实时处理和传输图像,控制系统整体的工作状态;通信接口用于与外界设备通信交互,传输图像数据。

本系统采用cis作为图像传感器,电路结构简单紧凑,同时微处理器支持usb、以太网、spi、i2c等多种传输协议。本系统可作为独立的图像扫描系统接入计算机,也可嵌入到其余设备中作为一体式系统接入计算机。

按照本发明的另一方面,本发明提供了一种基于上述系统的图像扫描方法,包括:

若处于待机模式,关闭外设的工作时钟,降低工作功率,达到节能环保的目的;

若处于扫描模式,用户根据不同扫描类型和分辨率图像进行主动切换,建立颜色空间映射表和图像质量数据库,利用颜色空间映射表和图像质量数据库对待扫描图像进行预处理,对预处理后的图像进行后处理得到预设格式的图像;

若处于更新模式,更新图像质量数据库。

优选地,为了使系统在正式使用时达到更好的扫描效果,在使用前至少完成一次建立颜色空间映射表和图像质量数据库,包括:

图像亮度自适应调整;

数据重新排列;

单点线性校正;

得到亮度分量表以及空间转换查找表。

进一步地,图像亮度自适应调整用于调整图像各通道整体亮度,消除图像的整体亮度因硬件工艺特性不同导致的差异。传统的图像亮度调节方法是通过在电路上为cis光源添加限流电阻实现。在供电电压一定的情况下,改变限流电阻值从而改变通过cis光源的电流以及cis发光强度,达到调整图像整体亮度的目的,上述方法存在以下三个缺陷。首先,cis光源长期工作在非额定电压下,减少cis的使用寿命;其次,限流电阻值与cis发光强度存在非线性关系,并不能根据限流电阻值计算cis发光强度,这使得图像亮度调节需要经过反复尝试的过程,步骤十分繁琐耗时;cis随着使用时间的增长,其特性可能发生变化,重新调整图像亮度需要重新调节限流电阻,这对图像扫描系统的生产维护带来了不便。系统通过调整模数转换单元的参数使得cis输出的模拟数据位于模数转换单元的有效采集量程内,达到采集图像有效信息和粗调图像亮度的目的;通过比例反馈控制自动调节cis各光源曝光时间使得采集图像各通道亮度均衡一致,达到细调图像亮度和消除cis传感器之间的差异性的目的。系统参照调整后的模数转换单元参数和cis曝光时间采集图像,即可实现对亮度的调整。具体流程如下:

1.1.1.由于采集的为正反两面的图像,所以首先确定安装好的cis光照不会影响彼此,即两根cis管交错安装,两根cis管的传感器与传感器正对,光源与光源正对;

1.1.2.设置模数转换单元的offset和pga(programmablegainamplifier,可编程增益放大器),来保证图像的像素在线性区间的范围内;

1.1.3.根据cis规范确定其支持的最大曝光时间tm,设定曝光时间t1作为控制起点,其中t1<=tm,根据图像在系统内的存储方式确定每个像素在单颜色通道内的最大值pm,根据应用场景和用户需求确定亮度标准后的图像整体亮度,以像素在单颜色通道内的最大列平均值pl代表图像整体亮度,亮度标准过程中白纸固定在cis之间,确保每次采集图像的目标相同;

1.1.4.根据已设定的曝光时间采集白纸图像,设定采集m行n列图像,以pij表示其中第i行j列的像素值,根据以下公式计算自适应曝光补偿值δt;

1.1.5.根据以下公式调整曝光时间t

tx+1=tx+δt

其中x=1,2,3,…,n,n为迭代次数,如果δt<=tm/pm成立,则亮度标准已完成,当前曝光时间扫描得到的图像各像素亮度接近pl;否则,更新曝光时间后重复执行上一步,使用新的自适应曝光补偿值对曝光时间进行迭代更新计算,如果在n次迭代计算,即x>=n之后亮度标准仍未完成,则cis或硬件电路部分存在缺陷,导致图像整体亮度始终不能达到亮度自动标准的要求,退出该调整过程并向用户返回超时退出的信息;

1.1.6.如果上述自适应曝光时间调整步骤成功完成,保存调整后的曝光时间,之后系统在该工作模式均使用此曝光时间控制cis采集图像。

进一步地,图像单点线性校正是为了消除cis上led光源阵列发出的光线不均匀,并且各感光单元对光线的感知程度不一致,扫描得到的图像叠加带来的竖直方向上的噪声。具体的,首先通过控制模数转换单元参数,来使得采集图像的像素在线性区间的范围内,系统采集无纸扫描时的每列图像数据的平均亮度x1以及纯白纸扫描时的每列图像数据的平均亮度x2,将[x1,x2]线性变换到[0,255]。系统在该光谱下采集到的图像各像素亮度均遵从该线性变换进行映射,并将映射后的值限定为[0,255]内的整数,即可实现对图像的校正。具体流程如下:

1.2.1.设置系统的工作模式,采用经过图像亮度自适应标准的参数进行扫描,取消fpga的自动校正功能。

1.2.2.采集无纸扫描时的图像,设定采集m1行n列图像,dij为图像中第i行第j列像素亮度,其中i<=m1,j<=n。无纸扫描图像的标准亮度定为ds。优选的,ds定为像素最小值,在8位像素表示的图像下ds取0。

1.2.3.采集白纸扫描时的图像,设定采集m2行n列图像,bij为图像中第i行第j列像素亮度,其中i<=m2,j<=n。白纸扫描图像的标准亮度定为bs。优选的,bs定为像素最大值,在8位像素表示的图像下bs取255。

1.2.4.根据下式计算每一列的校正参数kj和bj,更新并保存校正参数。

其中j=1,2,3,…,n。

1.2.5.正式扫描时,对cis采集图像的第i行j列像素根据以下公式进行校正,原始图像像素值为pij,校正后对应图像像素值为yij。

yij=kj(pij-bj)

进一步地,在用户计算机上对图像进行操作,这种处理方式对用户计算机的性能配置有一定的要求,而本发明是在微处理器单元对图像亮度、对比度等质量进行调整。本方法对颜色空间转换步骤进行改进,在图像进行颜色空间转换的同时对其质量特征进行调整,在此应用场景下不会引入额外的计算开销。具体流程如下:

1.3.1.建立数值调整后的亮度分量表,使用伽马校正算法进行亮度修正:

其中在8位像素空间下i=0,1,2,…,255,yi=i;pm是ycbcr空间下像素亮度分量的最大值;yi是调整前图像像素亮度分量;yi′是调整后图像像素亮度分量;γ是伽马校正参数,可以根据实际需求进行选取调整。

1.3.2.使用yi′代替yi建立rgb向ycbcr空间转换的查找表,可按照如下方式建立查找表:

yri=yi′×0.299×(1<<n)+0.5

ygi=yi′×0.587×(1<<n)+0.5

ybi=yi′×0.114×(1<<n)+0.5

cbri=cbi×(-0.169)×(1<<n)+0.5

cbgi=cbi×(-0.331)×(1<<n)+0.5

cbbi=cbi×0.500×(1<<n)+0.5

crri=cri×0.500×(1<<n)+0.5

crgi=cri×(-0.419)×(1<<n)+0.5

crbi=cri×(-0.081)×(1<<n)+0.5

其中在8位像素空间下i=0,1,2,…,255,cbi=cri=i,n是量化参数。

1.3.3.在图像扫描系统的正式使用过程中,根据上述以建立的查找表实行图像各像素从rgb空间转换到ycbcr空间的操作,在像素r、g、b分量依次为r、g、b的情况下,按照以下方式计算相应的y、cb、cr分量:

y=(yrr+ygg+ybb)>>n

cb=(cbrr+cbgg+cbbb)>>n

cr=(crrr+crgg+crbb)>>n

优选地,预处理包括亮度自适应调整、数据重新排列和单点线性校正,这种预处理方法,指在fpga采集图像的过程中,依靠fpga并行处理和高速运算的特性,在图像采集和传输过程中对图像数据进行重新排列、校正。数据重新排列即是在fpga中对cis的输出数据进行重新排列整合,使得其对于微处理器看来就是一幅整齐的图像数据,从而避免微处理器需要遍历整幅图像对其进行调整,而花费大量的时间。现如今多数cis管为提高其工作效率多采用多段并行工作,对于n段并行工作的cis而言,当其工作在某一模式下时,假定其所采集的图像一行有效数据个数为m,那么每一段的有效数据个数为m/n,经过adc采样后,其一行图像数据为混合输出为:

其中aij表示第j段cis的第i个有效数据,上述的混合数据即是在fpga中需要重调整的数据,为了在fpga中进行重调整,首先对上述数据进行拆分,即拆分为如下n段数据:

若输入混合数据的频率为α,那么所得的拆分后的数据t1、t2、t3…tn的频率为α/n。接下来以α的频率将数据t1、t2、t3…tn交替写入同一片缓存(可以是fpga内部的ram,也可以为外部的存储器)的不同地址中,然后在以顺序的方式读取出来即完成了图像的重排列,在这里为了保证图像的完整性,需要使用ping-pong缓存的技术,即在缓存当前行的图像数据时,输出上一行的图像数据。

优选地,图像校正预处理即是在fpga中对图像进行单点线性校正,即通过:

yij=kj(pij-bj)

对所得图像中的每个点进行补偿。在fpga中进行上述运算仅仅需要一个时钟周期即可完成,相比与在微处理中计算而言速度更快,可以满足整个系统的实时性要求。但由于fpga中不支持浮点数运算,所以需要对yij=kj(pij-bj)进行变形。这里采取的方法是对原式进行先放大再缩小的方法,并且通过控制放大与缩小的倍数来保证在fpga中计算时的精度。具体的,对于原式而言,首先将其扩大α倍,则如下:

αyij=αkj(pij-bj)

考虑到若要fpga自行计算出校正系数kj和bj,那么将需要一块内部资源十分大的fpga芯片,这样会使得整个系统的成本上升,所以在本系统中,微处理器首先计算出校正系数存储起来,然后由通信接口将其转发给fpga,fpga提前存储在内部或外部的存储器中,当计算时读出来即可。由于计算出的校正系数kj必然为浮点数,为了使其可以合理转发给fpga,并且完成计算,我们将kj转换为整数加精度的形式来处理,即kj转换为kj/β,其中β为所选取的精度,那么上式变形为:

αyij=α(kj/β)(pij-bj)

对于精度β的选取,取决于我们所设定参数kj的范围以及图像实际所需要放大的最大倍数决定的。

具体的,首先将参数kj的范围设定为0到ω1,然后根据计算出的校正参数kj,得到需要放大的最大倍数kmax,为了使得放大的倍数可以满足最大倍数的要求,那么有:

kmax≤ω1/β

所以对应的参数β应该满足:

β≤ω1/kmax

为了使得计算更精确,应改选则更高精度,并且考虑到fpga不支持浮点数运算,β应该取整,所以对应的参数β应为:

将其代入对应的校正计算式,则得到:

为了进一步提高图像的校正效果,我们进一步提高计算的精度,从计算所得校正系数kj的下限来考虑,从计算得到的校正系数kj中得到所需要放大的最小倍数kmin,将最小倍数提取出来处理,那么αyij=α(kj/β)(pij-bj)可以等效为:

上式中χj与kj范围设定相同,取为0到ω1,同样的为了使得放大的倍数可以满足最大倍数的要求,那么有:

kmax≤ω1/β+kmin

所以对应的参数β满足:

β≤ω1/(kmax-kmin)

所以进一步对应的精度可以提升为:

将其代入校正计算式,即可以得到最终的计算式为:

相应的在fpga中由上式计算出对应的结果后,需要将得到的结果缩小α倍,即为:

正常情况下,灰度值应位于0到255之间,为了防止校正后的灰度值溢出,需要进行上限与下限判断。具体的,首先进行判断上限,当yij的值大于255时,令yij=255输出;然后进行下限判断,当pij-bj<0时,令yij=0输出。

优选地,预处理还包括对待扫描图像进行亮度、对比度和饱和度的调整。

优选地,后处理包括图像实时处理和传输。

优选地,微处理器单元对图像数据进行后处理还包括图像压缩,通过数据搬运优化、量化过程优化、指令优化三个方面提高实时扫描阶段中微处理器压缩图像数据的速率,进一步加快了图像的扫描速度。

优选地,在切换工作模式时只替换存储单元中部分校正数据达到快速切换工作模式的目的,存储单元应至少能够存放最高分辨率下的最高通道图像所需要的校正参数。

按照本发明的又一方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的图像扫描方法。

方法通过本发明所构思的以上技术方案,与现有技术相比,能够取得以下有益效果:

1、本发明提供的基于cis的图像扫描方法,充分利用了系统的计算性能和特性,对系统资源和工作方式进行管理,实现待机管理、切换扫描模式、调整图像质量及扫描稿件等功能,提高了图像扫描系统的通用性和兼容性,旨在为解决上述各问题提供有利环境;

2、本发明提出的图像实时处理与传输方法,系统同时对图像进行采集、处理以及传输,达到提高图像处理效率、降低通信接口带宽要求以及减少中间等待时间的目的,图像压缩提高了实时扫描阶段中微处理器压缩图像数据的速率,进一步加快了图像的处理速度,减少图像传输时间;

3、本发明提出的亮度自动标准技术,用于调整图像各通道整体亮度,消除图像的整体亮度因硬件工艺特性不同导致的差异;

4、本发明利用fpga图像采集预处理和图像自动校正方法,在图像采集和传输过程中对图像数据进行重新排列和校正,依靠fpga并行处理和高速运算的特性,实时地对图像进行预处理,减少图像噪声对图像质量的影响。

附图说明

图1是本发明提供的一种基于cis的图像扫描系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本实施例提供了一种基于cis的图像扫描系统,包括cis接口模块、图像预处理模块以及图像后处理模块;

cis接口模块的输入与cis相连,cis接口模块的输出与图像预处理模块的输入相连,图像预处理模块的输出与图像后处理模块的输入相连,图像后处理模块的输出与外界设备相连;

cis接口模块用于驱动cis并将cis扫描的图像进行传输;

图像预处理模块用于对所述图像进行亮度自适应调整、数据重新排列和单点线性校正;

图像后处理模块用于对所述预处理后的图像进行格式转换并将处理后的图像进行传输。

cis接口模块包括cis驱动电路和cis模拟数据传输接口;cis驱动电路用于实现对cis的驱动;cis模拟数据传输接口用于传输cis扫描图像过程中采集的模拟数据;

图像采集与图像预处理模块包括fpga单元,分别与fpga单元连接的模数转换单元和存储单元;fpga单元用于控制cis和模数转换单元的正常工作,采集图像数据并对图像进行预处理,将处理后的图像发送给图像后处理模块;模数转换单元用于将cis扫描图像过程中采集的模拟数据转化为数字数据;存储单元用于储存fpga单元图像预处理过程中使用的校正数据;

图像后处理模块包括微处理器单元和通信接口;微处理单元用于实时处理和传输图像,控制系统整体的工作状态;通信接口用于与外界设备通信交互,传输图像数据。

本实施例以图像压缩处理为例,基于上述系统的图像扫描方法的具体流程如下:

首先对图像进行一次图像质量数据库的建立;

具体流程如下:

1.1.1.由于采集的为正反两面的图像,所以首先确定安装好的cis光照不会影响彼此,即两根cis管交错安装,两根cis管的传感器与传感器正对,光源与光源正对。

1.1.2.取消fpga的校正功能,设置系统的工作模式,选择具体的分辨率以及光谱,然后按照以下两步来确定adc的offset和pga,来保证图像的像素在线性区间的范围内:

1.1.2.1.首先控制cis的输出低于adc量化上限,根据cis规范以及走纸的实际速度,确定cis采集一行所需的时间为t,当曝光时间达到0.8*t时,此时cis管采集白纸所对应的输出电压v1为正常工作时的最大输出电压,从像素的角度来看,此电压v1就对应于最大像素255。然后根据所选的adc芯片以及所设置的量化范围,来确定adc对输入电压所应放大的倍数,假如此时所选取的量化范围为[0,v2],那么cis的最大输出电压就对应于量化的上限值,即v1对应于v2,所以相应的放大倍数为:

α=v2/v1

在得到具体的放大倍数之后即可根据相应的adc手册得出相应的pga与放大倍数之间的关系,从而确定出对应的参数pga的值;

1.1.2.2.在控制cis的输出上限之后,接下来要使得cis的输出最低值高于adc的量化上限,从而使得整个输出位于线性区间的范围内,根据cis规范,当关闭发光管时,所对应的输出为暗输出,此时暗输出即为cis正常工作时的最小输出。从像素的角度来看,暗输出就对应与cis关闭光源时采集图像所得到的像素值。为了让cis输出下限位于线性区间的范围内,即是让暗输出所对应的像素大于0。具体来说,首先使cis关闭光源采集一行图像,得到这一行图像中灰度值最小的点,并且记其灰度值为t,判断t是否等于0,若t=0,则根据adc手册offset与偏移电压的关系来调节offset参数的值,例如offset值范围0~255对应于偏移电压-250mv~250mv,然后重复前面的步骤,直到所得到的最小灰度值t>0时,就可以退出,此时对应的offset值就可控制cis的输出下限,使其位于线性区间的范围内。

adc的offset和pga根据adc参数和实际实验确定后,保持固定。

下面通过自适应曝光时间调整消除不同cis之间的感光差异:

1.1.3.根据cis规范确定其支持的最大曝光时间tm,设定曝光时间t1作为控制起点,其中t1<=tm,根据图像在系统内的存储方式确定每个像素在单颜色通道内的最大值pm,根据应用场景和用户需求确定亮度标准后的图像整体亮度,以像素在单颜色通道内的最大列平均值pl代表图像整体亮度。亮度标准过程中白纸固定在cis之间,确保每次采集图像的目标相同;

1.1.4.根据已设定的曝光时间采集白纸图像,设定采集m行n列图像,以pij表示其中第i行j列的像素值,根据以下公式计算自适应曝光补偿值δt。

1.1.5.根据以下公式调整曝光时间t

tx+1=tx+δt

其中x=1,2,3,…,n,n为迭代次数,如果δt<=tm/pm成立,则亮度标准已完成,当前曝光时间扫描得到的图像各像素亮度接近pl;否则,更新曝光时间后重复执行上一步,使用新的自适应曝光补偿值对曝光时间进行迭代更新计算。如果在n次迭代计算,即x>=n之后亮度标准仍未完成,则cis或硬件电路部分存在缺陷,导致图像整体亮度始终不能达到亮度自动标准的要求,退出该调整过程并向用户返回超时退出的信息;

1.1.6.如果上述自适应曝光时间调整步骤成功完成,保存调整后的曝光时间,之后系统在该工作模式均使用此曝光时间控制cis采集图像。

传统的cis图像校正方法有单点补偿法和多点线性校正法。单点补偿法为设定一种标准纸和标准亮度,计算该标准纸扫描得到的每列图像行平均亮度及标准亮度的差值,在系统正式扫描得到的每列图像上叠加相应差值以达到校正的目的。这种做法的优点是校正过程较为简单;缺点是校正得到的效果较差,尤其是待扫描稿件与标准纸的亮度相差较大时图像上仍然有明显竖向噪声。多点线性校正法为设定多种标准纸和标准亮度,在各标准点之间采用线性变换对图像校正。这种做法的优点是校正得到的效果好,校正效果与选取标准点的个数成正相关;缺点是校正过程的复杂性与选取标准点的个数成正相关,且多标准纸在日常生活中难以获取,其标准亮度也难以判定。

本发明提出单点线性校正,通过设定一种标准纸及其标准亮度,结合无纸扫描得到的图像进行线性校正,消除叠加在cis扫描图像上的竖直噪声。本方法具有简单的校正过程和良好的校正效果,同时只有一种标准纸的设定简化了本系统的生产维护过程。优选的,以常用a4打印白纸为标准纸,具体流程如下:

1.2.1.设置系统的工作模式。采用经过图像亮度自适应标准的参数进行扫描,取消fpga的自动校正功能。

1.2.2.采集无纸扫描时的图像,设定采集m1行n列图像,dij为图像中第i行第j列像素亮度,其中i<=m1,j<=n。无纸扫描图像的标准亮度定为ds。优选的,ds定为像素最小值,在8位像素表示的图像下ds取0。

1.2.3.采集白纸扫描时的图像,设定采集m2行n列图像,bij为图像中第i行第j列像素亮度,其中i<=m2,j<=n。白纸扫描图像的标准亮度定为bs。优选的,bs定为像素最大值,在8位像素表示的图像下bs取255。

1.2.4.根据下式计算每一列的校正参数kj和bj,更新并保存校正参数。

其中j=1,2,3,…,n。

1.2.5.正式扫描时,对cis采集图像的第i行j列像素根据以下公式进行校正。原始图像像素值为pij,校正后对应图像像素值为yij。

yij=kj(pij-bj)

进一步地,在用户计算机上对图像进行操作,这种处理方式对用户计算机的性能配置有一定的要求,而图像质量快速调整是指在微处理器单元对图像亮度、对比度等质量进行调整。本方法通过建立颜色空间映射表来实现图像质量快速调整。建立颜色空间映射表的目的是在系统需要转换扫描图像的颜色空间时可同时调整图像的亮度、饱和度等质量特征。图像颜色空间转换的过程中常使用查找表算法。本发明提出的图像质量快速调整方法对查找表算法进行改进,在图像进行颜色空间转换的同时对其质量进行快速调整,在经过图像单点线性校正后,并且再对其进行质量快速调整,可以发现图像质量有很大的提升。这里以rgb空间向ycbcr空间转换过程中调整图像亮度为例,具体流程如下:

1.3.1.建立数值调整后的亮度分量表,使用伽马校正算法进行亮度修正:

其中在8位像素空间下i=0,1,2,…,255,yi=i;pm是ycbcr空间下像素亮度分量的最大值;yi是调整前图像像素亮度分量;yi′是调整后图像像素亮度分量;γ是伽马校正参数,可以根据实际需求进行选取调整。

1.3.2.使用yi′代替yi建立rgb向ycbcr空间转换的查找表,可按照如下方式建立查找表:

yri=yi′×0.299×(1<<n)+0.5

ygi=yi′×0.587×(1<<n)+0.5

ybi=yi′×0.114×(1<<n)+0.5

cbri=cbi×(-0.169)×(1<<n)+0.5

cbgi=cbi×(-0.331)×(1<<n)+0.5

cbbi=cbi×0.500×(1<<n)+0.5

crri=cri×0.500×(1<<n)+0.5

crgi=cri×(-0.419)×(1<<n)+0.5

crbi=cri×(-0.081)×(1<<n)+0.5

其中在8位像素空间下i=0,1,2,…,255,cbi=cri=i,n是量化参数。

1.3.3.在图像扫描系统的正式使用过程中,根据上述以建立的查找表实行图像各像素从rgb空间转换到ycbcr空间的操作,在像素r、g、b分量依次为r、g、b的情况下,按照以下方式计算相应的y、cb、cr分量:

y=(yrr+ygg+ybb)>>n

cb=(cbrr+cbgg+cbbb)>>n

cr=(crrr+crgg+crbb)>>n

具体地,系统模式包括待机模式、扫描模式和图像质量更新模式;其中待机模式即本系统空闲时,降低工作功率,达到节能环保的目的。

系统进入待机模式流程如下:

2.1.1.1.外界设备通知微处理器进入低功耗模式;

2.1.1.2.微处理器通知fpga进入低功耗模式;

2.1.1.3.fpga进入低功耗模式,包括设置adc和sram等外设进入待机模式、关闭外设的工作时钟、降低自身的工作频率等;

2.1.1.4.fpga通知微处理器自身已进入低功耗模式;

2.1.1.5.微处理器自身进入低功耗模式,包括对cpu断电;将运行上下文储存于ram中;对各存储器和外设的工作模式、电压和频率进行调节;

2.1.1.6.微处理器通知外部设备本系统已进入低功耗模式。

系统退出待机模式流程如下:

2.1.2.1.外界设备通知微处理器退出低功耗模式;

2.1.2.2.微处理器自身退出低功耗模式,包括对cpu供电;恢复存储于ram的运行上下文;对各存储器和外设的工作模式、电压和频率进行调节;

2.1.2.3.微处理器通知fpga退出低功耗模式;

2.1.2.4.fpga退出低功耗模式,包括设置adc和sram等外设退出待机模式;恢复外设的工作时钟;恢复自身的工作频率等;

2.1.2.5.fpga通知微处理器自身已退出低功耗模式;

2.1.2.6.微处理器通知外部设备本系统已退出低功耗模式。

外部设备下发控制指令给微处理器单元,进入扫描模式。

用户根据不同扫描类型和分辨率图像进行主动切换,模式快速切换具体流程如下:

3.1.根据本系统扫描最高分辨率下的单通道图像计算其校正参数数据量,在存储单元中预留同样大小的空间作为参数替换空间,存储单元中余下的空间作为参数保留空间;

3.2.系统上电时,微处理器从外存储器中读取本系统最高分辨率下的最高通道数图像所用校正数据,除第一通道外,将其余通道所用校正数据通过外部总线发送给fpga单元,fpga单元将校正数据保存在存储单元中上述参数保留空间内;

3.3.若存储单元参数保留空间内剩余空间足够,则微处理器按照分辨率从高到低、通道数从多到少的顺序向fpga单元发送各工作模式下用到的除第一通道外的校正参数,fpga单元将校正数据保存在存储单元上述参数保留空间内,直到各工作模式下的除第一通道外校正参数全部发给fpga单元或存储单元参数保留空间的剩余空间不足为止;

3.4.微处理器通过通信接口通知外部设备初始化已完成;

3.5.外界设备通过通信接口发送控制指令,通知系统配置工作模式;

3.6.微处理器读取该工作模式下第一通道校正参数,发送给fpga单元并保存在参数替换空间内;若该工作模式下还需要存储其余通道校正参数,微处理器根据存储单元参数保留空间内是否存在备份决定是否发送其余参数;若存在备份,则不需发送参数;若不存在备份,则发送参数并优先替换存储单元中较小分辨率较小通道图像的校正数据;

3.7.微处理器读取保存在外存储器中的模数转换单元设置、cis曝光时间等参数,发送给fpga单元并进行相应配置,更新颜色空间转换表,通知外接设备切换工作模式已完成。回到步骤3.5。

具体地,cis扫描图像包括在不同扫描模式下稿件以相应扫描速度通过cis扫描区域;fpga单元通过cis驱动电路控制cis扫描模式;fpga单元根据cis扫描模式设置模数转换单元工作模式,模数转换单元将采集到的模拟数据转化为数字数据;fpga单元对数字数据进行预处理;fpga单元将预处理后的图像数据发送给微处理器单元,微处理器单元对图像数据进行后处理和传输。

其中,fpga单元对数字数据进行预处理指在fpga采集图像的过程中,依靠fpga并行处理和高速运算的特性,在图像采集和传输过程中对图像数据进行重新排列、校正,图像数据重新排列即是在fpga中对cis的输出数据进行重新排列整合,使得其对于微处理器看来就是一幅整齐的图像数据,从而避免微处理器需要遍历整幅图像对其进行调整,而花费大量的时间。现如今多数cis管为提高其工作效率多采用多段并行工作,对于三段并行工作的cis而言,当其工作在100dpi下,即其一行的有效数据为864个,经过adc采样后,其一行图像数据为混合输出为:

[a0b0c0a1b1c1a2b2c2.........a286b286c286a287b287c287]

上述的混合数据即是在fpga中需要重调整的数据,为了在fpga中进行重调整,首先对上述数据进行拆分,即拆分为如下三段数据:

t0=[a0a1a2...a285a286a287]

t1=[b0b1b2...b285b286b287]

t2=[c0c1c2...c285c286c287]

若输入混合数据的频率为α,那么所得的拆分后的数据t0、t1、t2的频率为α/3。接下来以α的频率将数据t0、t1、t2交替写入同一片缓存的不同地址中,然后在以顺序的方式读取出来即完成了图像的重排列,在这里为了保证图像的完整性,需要使用ping-pong缓存的技术,即在缓存当前行的图像数据时,输出上一行的图像数据。

图像校正即在没有浮点数运算的fpga单元中通过先放大再缩小,来对图像进行处理以消除cis管纵向传感器之间的差异的方法,实现了图像的快速处理。所述图像校正预处理即是在fpga中对图像进行单点线性校正,即通过:

yij=kj(pij-bj)

对所得图像中的每个点进行补偿。为了保证在fpga中计算时的精度,这里采取的方法是对原式进行先放大再缩小的方法,具体的,对于原式而言,首先将其扩大α倍,则如下:

αyij=αkj(pij-bj)

考虑到若要fpga自行计算出校正系数kj和bj,那么将需要一块内部资源十分大的fpga芯片,这样会使得整个系统的成本上升,所以在本系统中,微处理器首先计算出校正系数存储起来,然后由通信接口将其转发给fpga单元,fpga单元提前存储在内部或外部的存储器中,当计算时读出来即可。由于计算出的校正系数kj必然为浮点数,为了使其可以合理转发给fpga,并且完成计算,我们将kj转换为整数加精度的形式来处理,即kj转换为kj/β,其中β为所选取的精度,那么上式变形为:

αyij=α(kj/β)(pij-bj)

而对于精度β的选取,取决于我们所设定参数kj的范围以及图像实际所需要放大的最大倍数决定的。

首先将参数kj的范围设定为0到ω1,ω1为预设值,然后根据计算出的校正参数kj,得到需要放大的最大倍数kmax以及最小倍数kmin,为了使得放大的倍数可以满足最大倍数的要求,那么对应的参数β满足:

β≤ω1/(kmax-kmin)

所以进一步对应的精度可以提升为:

将其代入校正计算式,即可以得到最终的计算式为:

相应的在fpga中由上式计算出对应的结果后,需要将得到的结果缩小α倍,即为:

正常情况下,灰度值应位于0到255之间,为了防止校正后的灰度值溢出,需要进行上限与下限判断。具体的,首先进行判断上限,当yij的值大于255时,令yij=255输出;然后进行下限判断,当pij-bj<0时,令yij=0输出。

微处理器单元对图像数据进行后处理包括图像实时处理与传输和图像质量自动调整,还包括图像压缩。对于图像的压缩,以jpeg为例,主要包含三个方面的优化,数据搬运优化、量化优化以及指令优化。

(一)数据搬运优化

对于数据搬运优化,由于dma搬运数据的速度快于cpu压缩数据的速度,所以可采用dma搬运数据与cpu压缩数据并行的方式处理图像,具体流程如下:

4.1.1.申请位于cache内的缓存。设定压缩一次处理m*n的区块,图像深度为d,一个像素在计算机中使用h个字节进行保存,则申请的缓存大小为m*n*d*h*2;

4.1.2.使用cpu将第一个区块快速搬运到ping-pong缓存的一半中;

4.1.3.使用dma将下一个区块搬运到ping-pong缓存另一半中,同时对已搬运到ping-pong缓存中的区块进行压缩处理;

4.1.4.若还存在未搬运到缓存中进行压缩的区块,则跳回4.1.3,否则调到4.1.5;

4.1.5.对最后一个搬运到ping-pong缓存中的区块进行压缩处理。

(二)量化优化

对于量化过程优化,可以在没有除法运算器的微处理器中,将压缩算法中量化的除法操作改为乘法操作和移位操作的组合,加快图像压缩速度,具体流程如下:

4.2.1.根据jpeg压缩过程中的量化表确定乘法表,采取移位操作位数为8bit,那么对于量化表中数据x,乘法表中相应数据为y=[256/x],其中[]为向下取整运算符,;

4.2.2.若待量化的数据为d,原量化操作为[d/x],改进后的量化操作为(d*y)>>8。

(三)指令优化

对于指令优化,以微处理器单元为dsp为例,具体流程如下:

4.3.1.使用内联函数完成快速dct变换;

4.3.2.告知编译器cache内的dct变换后的数据首地址已经边界对齐,可以进行按字运算;

4.3.3.dct变换后的数据为半字类型,将两个dct变换后的数据装入一个字中进行后续的改进量化操作,即上述乘法运算和移位运算的组合。dsp可通过一条指令处理两个数据,提升运算效率;

4.3.4.告知编译器压缩中每个区块的量化操作循环次数固定,提高dsp流水计算性能。

图像采集与压缩步骤完成后,等待微处理器将压缩图片缓冲区内已完成压缩但仍未发送的数据全部发出,本次扫描结束,重置程序以等待下一次扫描。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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