发明内容
本发明的目的是提供一种基于USB模式的图像传输方法及装置,从而可以以较低的实现成本获得较高的图像质量。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种基于USB模式的图像传输方法,该方法用于数字图像处理器向基于USB1.1模式的主机端传输由图像传感器传递来的图像数据,该方法具体包括:
图像传感器根据预先设置的行长将采集的图像数据发送给数字图像处理器,并由数字图像处理器对所述图像数据进行处理,所述的行长为根据USB1.1模式的传输速率确定;具体为:所述的预先设置的行长不小于公式{[(1ms×时钟频率)/(1.2K×2/每两行产生的数据量)]-原行长}确定的值;
数字图像处理器将处理后的图像数据进行转换处理,并在转换为与主机端支持的图像尺寸匹配的图像格式后传送给主机端。
可选地,所述的行长预先设置于图像传感器的寄存器中。
可选地,本发明所述的方法还包括:
当主机端支持VGA或QVGA图像尺寸时,所述的转换处理包括:
根据图像数据计算获得对应的红色分量平均值和绿色分量平均值共4个字节,并丢弃各个字节中的最低两位,获得剩余的3个字节数的图像数据;
根据图像数据计算获得对应的绿色分量平均值和蓝色分量平均值共4个字节,并丢弃各个字节中的最低两位,获得剩余的3个字节数的图像数据;
当主机端支持QQVGA图像尺寸时,所述的转换处理包括:
将图像数据中的16个序列划分为4个Y、4个U、4个Y和4个V共4组,并分别求出每组的平均值,作为确定的图像数据。
可选地,所述的方法还包括:
主机端判断当前显示尺寸是否为QQVGA,如果是,则根据显示格式进行处理并输出,否则,将接收的图像数据的尺寸采用低位补0的方式还原为320×240,之后再根据显示格式进行处理并输出。
本发明还提供了一种基于USB模式的图像传输装置,用于将图像传感器传送来的图像数据处理后传递给基于USB1.1模式的主机,该装置包括:
通用数字图像处理模块,用于对图像传感器以预先设定的行长传输来的图像数据进行处理,并将处理后的图像数据传送给基于USB1.1模式的图像数据处理模块;
基于USB1.1模式的图像数据处理模块,用于对通用数字图像处理模块传送来的图像数据进行转换处理,转换为与主机端支持的显示格式匹配的图像格式后传送给USB传输模块;
USB传输模块,用于将接收到的图像数据传送给主机;
行长调整处理模块,用于根据USB1.1模式下的传输速度确定针对待传输数据需要增加的行长,并将需要增加的行长设置于图像传感器的寄存器,以控制图像传感器以增加后的行长传送图像数据。
可选地,本发明所述的装置还包括:
当主机端支持VGA或QVGA图像尺寸时,所述的基于USB1.1模式的图像数据处理模块包括:
根据图像数据计算获得对应的红色分量平均值和绿色分量平均值共4个字节,并丢弃各个字节中的最低两位,获得剩余的3个字节数的图像数据;
根据图像数据计算获得对应的绿色分量平均值和蓝色分量平均值共4个字节,并丢弃各个字节中的最低两位,获得剩余的3个字节数的图像数据;
当主机端支持QQVGA图像尺寸时,所述的基于USB1.1模式的图像数据处理模块包括:
将图像数据中的16个序列划分为4个Y、4个U、4个Y和4个V共4组,并分别求出每组的平均值,作为确定的图像数据。
可选地,所述的主机执行的处理包括:判断当前显示尺寸是否为QQVGA,如果是,则根据显示格式进行处理并输出,否则,将接收的图像数据的尺寸采用低位补0的方式还原为320×240,之后再根据显示格式进行处理并输出。
由上述本发明提供的技术方案可以看出,本发明无需在图像处理器内部做JPEG图像压缩,从而可以降低芯片的面积,减少芯片的成本,同时可以保证在VGA和QVGA模式下传输速率可以达到20f/s,在QQVGA模式下传输速率可以达到30f/s,并且可以得到较好的图像质量;另外,对经过通用模块处理后的图像进行下采样处理后再传送至主机端,主机端只需要对图像进行彩色插值处理后进行放大或缩小,以及根据显示格式进行色彩空间变换即可,而不需要再进行其它的运算而增加CPU的资源占用,也就是说,本发明提供的实现方案的运算量比在主机端进行JPEG解压对CPU资源占用量小。
具体实施方式
本发明是为了解决在USB1.1模式下图像传输速率较慢的问题,对输入的图像格式大小为VGA的图像进行下采样和压缩处理,在保证图像的质量和传输速率的前提下,尽可能的减少芯片的成本。
本发明涉及的数字图像处理器包括:预处理模块、插值模块、自动曝光控制、自动白平衡、Gamma校正、色彩空间变换、对比度增强、色彩校正等一些通用的图像处理模块;另外,图像处理器中还包括用于进行图像数据传输的USB2.0总线模块及USB1.1总线模块,本发明为保证USB1.1模式的图像数据传输,便在该数字图像处理器中设置了基于USB1.1模式的图像数据处理模块,其用于在USB1.1模式下对输入的图像数据进行处理的功能模块。
基于USB1.1模式的图像数据处理模块主要是根据在USB1.1模式下WDM(视窗驱动模式)驱动层对数字图像处理器芯片的寄存器的设置,对采集到的图像数据进行处理。
进一步讲,首先,由主机端的WDM驱动程序对当前主机USB的传输模式和当前显示格式进行判断,并根据不同的显示格式及模式初始化图像处理器和图像传感器的相关寄存器设置;之后,图像传感器将根据针对其寄存器的设置将采集的图像数据传递给图像处理器,并由被设置寄存器后的图像处理器根据其寄存器的设置值对输入的图像进行处理;
其中,图像处理器具体实现的处理包括:
(1)若当前主机USB的传输模式为USB1.1,并且上端设定的图像显示格式大小为VGA格式或QVGA格式时,利用基于USB1.1模式的图像数据处理模块对经过通用模块处理得到的图像大小为640×480×2,格式为YUY2的图像进行处理,得到一组图像大小为240×240的Bayer格式的图像,并传送到主机端;对应的,在主机端,首先将图像恢复为320×240的Bayer格式的图像数据,再将图像进行彩色插值,得到RGB24格式的图像数据,根据显示尺寸的大小进行尺寸变换,若显示格式为RGB24则直接显示,若显示格式为YUY2则将图像格式转换为YUY2格式后显示;
(2)若当前主机USB的传输模式为USB1.1,并且上端设定的图像显示格式大小为QQVGA格式时,利用基于USB1.1模式的图像数据处理模块对经过通用模块处理得到的图像大小为640×480×2,格式为YUY2的图像进行处理,得到一组图像大小为160×120×2的格式为YUY2的图像并传送到主机端;对应的,在主机端,根据显示的格式若为YUY2格式则直接显示,若为RGB24格式则进行格式转换后显示。
为便于对本发明的理解,下面将结合附图对本发明的具体实现方式进行详细说明。
由前面描述可知,为实现本发明,首先需要对寄存器进行初始化处理,包括针对图像传感器的寄存器和图像处理器的寄存器的设置,所述的图像传感器的寄存器中需要设置基于USB工作模式确定图像数据传输行长,例如,设置基于USB1.1模式确定的需要增加的行长信息等,所述的图像处理器的寄存器中保存设置着图像处理器进行图像处理及传输处理时需要应用的信息,相应的针对各寄存器的具体初始化实现过程包括:
(一)针对图像处理器的寄存器的初始化设置
1、在图像处理器的寄存器中设置USB工作模式;
具体为:根据当前的USB设备的工作模式不同,将相应的工作模式写入图像处理芯片(即图像处理器)的相应寄存器,以告知图像处理芯片当前USB主机的工作模式,便于图像处理芯片根据寄存器的设置选择不同的数据处理方式;其中,对于支持即插即用的USB设备,是通过WDM驱动程序在设备插入后通过主机的底层驱动模块获取设备的配置描述符,根据配置描述符的不同来区分USB2.0和USB1.1设备,从而确定USB设备的工作模式;
2、在图像传感器的寄存器中设置数据输出方式信息;
在通过属性设置接口获取要显示的图像格式大小后,根据由属性设置接口获取的当前显示的图像尺寸大小设置图像处理芯片的相应寄存器,即在寄存器中设置主机端支持的图像显示格式信息,图像处理芯片会根据寄存器的这一设置选择数据输出方式;
(二)针对图像传感器的寄存器的初始化设置
在图像传感器的寄存器中设置图像传感器输出的图像数据中每行的长度,具体设置每行长度的方法包括:
1、若当前的USB主机的工作模式为USB2.0模式时,由于其传输速率高,可以维持图像传感器中原来的图像的行长不变进行传输。
2、若当前的USB主机的工作模式为USB1.1模式时,由于传输速率的限制,需要增加每行的长度,以达到速率匹配;
相应的需要增加的行长度的确定方式包括:确定USB1.1模式下的传输速率为12Mb/s,图像数据通过等时传输的方式传送到主机端,USB1.1模式下可分配给等时传输的最高带宽为80%,这样,相应的可利用带宽约为1.2MB/s,由于USB1.1模式下的数据传输是按照1ms每帧的方式传输,这样1ms内可以传输的字节数约为1.2K字节,这就要求从设备发送过来的数据量不能超过1.2KB/ms,据此可以得到需要增加的行长需要满足下式:
增加行长>{[(1ms×时钟频率)/(1.2K×2/每两行产生的数据量)]-原行长}。
完成上述的各寄存器信息的初始化配置后,图像传感器便可以根据设定的行长将图像数据传送给图像处理器,相应的图像处理器便可以根据寄存器中相应的设置完成图像数据的处理传输,从而适应不同USB工作模式的图像数据传输需求。
下面将结合附图对本发明所述的装置的具体实现结构进行描述,如图1所示,所述的装置包括图像传感器10、数字图像处理器20和主机30,数字图像处理器与图像传感器10相连,用于将图像传感器采集的图像数据处理后发送给主机30,所述的图像传感器用于产生图像格式大小为VGA格式的Bayer格式的原始数据,所述的主机30则会以预定的显示格式显示接收到的图像数据。
所述的数字图像处理器20具体包括:由图像传感器10传递来的输入图像数据首先经过通用数字图像处理模块21进行数字图像处理;通用数字图像处理模块21读取寄存器设置模块23的寄存器值,判断当前主机的USB工作模式,若为USB2.0工作模式,则将输出的YUY2格式直接输出到USB传输模块24传送到主机端进行显示;若为USB1.1工作模式则将输出的YUY2格式的数据输入到基于USB1.1模式的图像处理模块22进行处理后再输出到USB传输模块24,由USB传输模块24传送到主机端进行处理后显示。
所述的主机30的结构包括:底层驱动模块31、WDM驱动模块32、属性设置接口33和显示34。底层驱动模块由主机的底层硬件和软件组成,负责底层的数据传输;WDM驱动模块32作为处理的核心,连接底层驱动模块和属性接口,对收到的数据进行处理后显示,还用于所前面所述的各寄存器进行初始化设置操作。
基于图1所示的本发明提供的装置,其中,通用数字图像处理模块中用于对图像数据进行处理的具体结构如图2所示,主要包括:
预处理模块211,用于对输入的原始数字图像进行预处理。
彩色插值模块212,用于将输入的原始图像进行彩色插值处理,即转换为RGB24格式的图像数据;
白平衡模块213,用于根据彩色插值输出的数据进行数据的白平衡统计,将统计的结果送入到预处理模块211作为针对下一帧输入图像进行预处理的参数;
色彩校正模块214和Gamma校正模块215,分别用于对RGB24的图像进行色彩校正和Gamma校正;
色彩空间转换模块216,用于将RGB24格式的图像数据转换为格式为YUY2格式的图像数据;
自动曝光控制模块217,用于根据转换格式后的图像数据的亮度值进行统计,以进行自动曝光控制,将得到的曝光时间经过寄存器设置模块23中输入到图像传感器10。
对比度增强模块218,用于输出格式为YUY2(或YUYU,其与YUY2格式相同)的图像数据。
下面将对图1中的基于USB1.1模式的图像数据处理模块22的具体实现的处理功能进行详细的说明。
(一)基于图1所示的本发明提供的装置,当显示格式大小为VGA或QVGA格式时,则由基于USB1.1模式的图像数据处理模块22产生一组大小为240×240的Bayer格式的图像数据,相应的具体处理过程如图3所示,包括:
步骤221,输入的第4n+1行的YUYV(或YUY2)的数据,对每4个字节为一组进行计算,先对两个Y求平均,再根据公式:
R=Y+1.5748×V;
G=Y×0.1873(U-128)-0.4681×(V-128);
B=Y+1.8556×(U-128);
计算出R、G、B的值,每一组YUYV依次产生一个R或G,对于第4n+1行转换出来的值将其保存到步骤222所示的长度为320字节的缓存内,数据的排列顺序为RGRG...;对于接下来的步骤223所示的第4n+2行同样按上述方法依次产生R或G,每产生一个R或G,从缓存里读出相对应位置的R或G,求取平均值得到mR或mG,对每得到的4个mR1、mG1、mR2、mG2丢掉每个字节的最低两位,并依次拼成如下3个字节:
D1[7:0]={mR1[7:5],mG1[7:6]},
D2={mG1[5:2],mR2[7:4]},
D3={mR2[3:2],mG2[7:2]},
将三个字节输出到USB传输模块24。
接下来为224所示的针对第4n+3行和第4n+4行的处理,对第4n+3行计算出的GBGB序列存入320字节的缓存中,在第4n+4行读出相应缓存中的值求取平均值,按照在第4n+1和4n+2中所述的方法得到D1、D2和D3并输出到USB传输模块24。这样就可以输出一组240×240的Bayer格式的图像数据。
(二)当显示格式为QQVGA时,图1中的基于USB1.1模式的图像数据处理模块22对图像处理序列可以按照图4中步骤227所示的序列来描述,以获得160×120格式的图像数据,相应的处理过程包括:
对于第4n+1行的数据,对每16个步骤227所示的序列,对Y1、Y2、Y3、Y4求取平均值mY1,对U1、U2、U3、U4求取平均值mU,对Y5、Y6、Y7、Y8求取平均值mY2,对V1、V2、V3、V4求取平均值mV,并按顺序存入缓存,得到步骤228所示的一组新的序列;
对于第4n+2行先按照第4n+1行的方法求取平均,并取出缓存中的相对应的点求取平均后再按照顺序存入缓存中;
第4n+3行按照第4n+2行的方法更新缓存里的数据;
第4n+4行按照4n+2行的顺序进行计算,直接输出到USB传输模块24中。
上述基于USB1.1模式的图像数据处理模块的具体实现方法是在VGA或QVGA模式下对YUYV格式的图像数据抽取出Bayer格式的图像数据,采用了对周围值求取平均的方法,而不是直接丢点,避免了传送到主机端进行彩色插值和放大插值后出现锯齿的现象,也因图像是经过各种算法处理后的图像,主机端就无需再做其它的算法处理,节省了CPU的资源占用,丢弃了求取平均值后的每个字节的低2位,在对图像质量影响不大的情况下将帧速率提高到了20f/s;在QQVGA模式下经过对周围值进行平均值处理后的YUYV格式的图像,主机端可在YUY2格式下直接显示,在RGB24格式下只需要进行色彩空间变换后即可显示,显示的图像避免了锯齿,且传输速率可以达到30f/s。
由所述基于USB1.1模式的图像数据处理模块22处理后的数据经USB传输模块24将传输给主机,在主机中由WDM驱动模块32对接收到的图像数据进行处理,相应的处理的流程如图5所示,具体包括:
步骤321,判断USB工作模式是否为USB2.0的工作模式,若是,则执行步骤327,否则执行步骤322;
步骤322:如果工作在USB1.1模式下,则先判断当前显示的尺寸大小是否为QQVGA,如果是,则执行步骤327,否则执行步骤323;
步骤323、324,将图像尺寸还原为320×240,还原方法为将收到的图像数据每6bits取出,在低位补上2个0,组成一个字节;然后还进行彩色插值处理,并执行步骤325;
步骤325,判断图像尺寸是否为QVGA,如果是,则执行步骤328,否则执行步骤326;
步骤326,对图像进行放大插值处理,并执行步骤328;
步骤327,判断显示格式是否为YUY2,如果是,则显示,否则执行步骤329;
步骤328,判断图像显示格式是否为RGB24,如果是,则显示,否则,执行步骤329;
步骤329,对图像进行色彩空间转换后输出显示。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。