查看: 1933|回复: 0

实例——基于MV86S02实时视频采集系统设计(上)

[复制链接]

该用户从未签到

发表于 2008-5-23 17:50:33 | 显示全部楼层 |阅读模式
分享到:
MV86S02Fujitsu(富士通)公司生产的一款375x293(10)像素(CIF格式)CMOS图像传感器,它的片内集成了色彩信号处理器。这种CMOS图像传感器与色彩信号处理器集成到一个芯片内部的技术降低了功耗,而且减小了体积。MV86S02非常适合应用于移动电话和掌上电脑。  1系统基本结构      1MB86S02的功能框图
  视频源信号来自于一个高度集成的CMOS数字图像传感器模块MB86S02,它是富士通的产品。它不但集成了CMOS图像传感器阵列、自动增益信号放大器、模数转换器,还包括色彩信号处理和微型镜头,包含了图像采集的所有前端处理,可以直接输出数字信号。模块的系统框图如图10-5所示。
  系统运行于嵌入式Linux操作系统,使系统的性能得以保证。使用具有8位并行数据接口的CMOS图像传感器,通过设备驱动程序与Linux操作系统结合在一起,实现高效率的图像采集。




MB86S02是基于CMOS工艺,使用有源像素的传感器,与传统的CCD传感器相比有很多不同点。CMOS技术的最大优点是每一个像素单元可以集成一个或多个晶体管,这样就具有了低功耗和小型化的优点,非常适用于手持设备,可以降低系统功耗、体积,提高电池效率;它的高度集成性大大简化了图像应用系统的设计。
  如图10-6所示是MB86S02的实物图。





2MB86S02功能特性
  MB86S02能够直接输出YCbCr422YUV422格式的数字图像的特性,大大方便了用户的使用。传统的图像采集系统都是使用模拟图像采集器,然后经过复杂的模数转换,不仅造价高,而且也大大增加了产品的体积。使用MB86S02可以直接得到图像的数字信号,简化了开发的工作,又提高了系统的性能。
  MB86S02的主要特性如下:
  ·l/7英寸图像传感器,有效像素为352×28811万像素;
  ·超低功耗30mW@15fps
  ·输出8CMOS电平并行数字信号,YCbCr422YUV422格式;
  ·色彩信号处理包括:自动增益、自动曝光、自动白平衡、Gamma校正等;
  ·寄存器设置通过标准I2C串行接口;
  ·支持CIF(352×288)QCIF(176×144)格式;
  ·CCIR656标准头输出;
  ·抗闪烁功能;
  ·低功耗模式;
  ·掉电模式功耗3μw
  MB86S02不仅体积小,功耗低,而且接口也很简单,连接线的形状可以根据用户的需要来定制,使用起来十分方便,它有21个管脚定义如表10-2所示。





由于MB86S02采集的数字信号格式为YCbCrYUV,而VGA显示器需要的是RGB分量信号,所以如果想把MB86S02采集的图像直接显示在VGA显示器上需要进行’YCbCrYUVRGB的颜色空间转换。
  YCbCrYuv是基于亮度与色差的颜色空间,RGB则是基于红绿蓝三基色的颜色空间。它们之间转换的理论公式为公式(10-1)




当实现8位字长的YUVRGB转换时,为了实现高速转换和宽度扩展简化了理论公式,简化后的公式为(10-2)




其中的0194倍的U分量用查表的方法得到,05V则直接用右移一位实现,经过这样的简化后,整个转换可以在两个时钟完成,经过测试转换效果比较理想。
  3.系统硬件电路结构图
  如图10-7所示是MB86S02的硬件接口模块图,左边端口是与MB86S02的接口;右边是内部信号。该模块的功能是把MB86S02输出的一帧图像信号整理为连续同步数据流,并在简化之后进行存储操作。





嵌入式处理器通过与MB86S02 CMOS图像模块的连接,读取图像数据后通过同步SRAM接口存储在外部高速SRAM中,然后还可以由UART模块或RTL8019模块把已经存储的图像数据发送到PC,最后PC上的接收程序将显示接收的图像。通过调试板上的按键可以选择采集图像、地址复位、串口发送、网口发送这几种功能。
 2系统工作流程  1.视频采集工作流程
  视频采集程序包括类驱动和微驱动两个模块,视频采集程序的结构框架如图10-8所示。类驱动使用GPIO(General Purpose IOInterface,通用I/O接口)模块,GPIO模块的传输模式是基于流输入输出模块的同步I/O模式,更适合文件系统UO,如视频采集的应用。该模块的主要API函数的描述如表10-3所示。





在图10-8中,应用程序使用GPIO_create函数创建GPIO通道,并通过调用GPIO_submit函数直接与微驱动交换数据,完成视频数据的采集。





应用程序通过GPIO类驱动调用微驱动的标准API函数,这些标准API函数的描述如表10-4所示。这些规定的函数将放入微驱动的函数接口表中,以供应用程序通过GPIO类驱动调用。





  2.采集数据压缩流程
    (1)JPEG压缩。
  JPEG压缩的基本系统是基于DCTVLC的编码系统,首先将彩色图像转换到YUV颜色空间,YUV每一个分量对应一张灰度图,这里使用YUV 411编码方式,即四个亮度Y对应一对色度Uv(针对人眼对亮度比对色度更敏感的生理特性,而采取的减少数据量的方法),这样使得原始图像的数据就减少了一半。如图10-9所示是JPEG压缩的流程图。




如图10-9所示JPEG压缩的过程如下:
  ·基于DCT的压缩以8×8个像素单元为最小处理单位,进行二维8×8DCT变换;
  ·然后对变换后DCT系数进行量化(分别除以亮度或色度量化系数矩阵)
  ·对量化后系数中的直流分量(第一个系数)进行差分编码;
  ·其他交流分量(其余63个系数)经过“z”型变换;
  ·对这63个系数再进行Huffman编码,生成压缩码流。
  如图10-10所示是YUv各分量处理顺序(图中每一个方块代表一个8×8的最小单元)





在整个的压缩过程中使用了多个常量表:亮度量化系数矩阵、色度量化系数矩阵、Huffman编码表等,这些数据连同JPEG压缩方式、图像分辨率等信息存储于JPEG文件头中。对于分辨率相同的图像如果使用相同的编码常量数据,则它们的JPEG文件头是相同的。
  在实际应用中,嵌入式处理器从MB86S02获取图像信息后,执行JPEG压缩程序,压缩后的JPEG文件通过公共电话线路传到监控主机端。由于系统采用相同的图像分辨率和常量表,所以文件头都相同,为了减少传输数据量,不传送文件头,文件头在监控主机端由软件自动添加。
  (2)JPEG解压缩。
  JPEG图像文件的解压缩是在PC上调用系统函数实现,因为JPEG的压缩与解压缩基本对称,所以也可以在本课题的硬件平台上实现JPEG的解压缩。如图10-ll所示是JPEG图像的解压缩流程





(3)压缩算法的简化设计。
  ·定点快速DCT
  N×N二维离散余弦变换的数学定义如下:



这里xY为像素域的空间坐标,uv为变换域的坐标。



JPEG标准还规定了DCT的输入使用9位,输出DCT系数是12位,范围是[-20482047]。在JPEG图像压缩过程中,频繁使用DCT变换。对一幅CIF分辨率的彩色图像进行JPEG压缩需要的DCT变换次数是:352+8x288+8x2=3 168次。如果不使用快速算法,每一个DCT运算要进行8×64X2=1024次浮点乘法,整幅CIF图像需要3168×l024=3244032次浮点乘法,运算量非常大。
DCT运算的简化从两方面入手:首先按照与FFT类似的蝶算方法,考虑到运算中的对称性,减少乘法次数;然后使用定点整数运算代替浮点运算。改进以后一次DCT只需要80次定点乘法,减少到原来的8%,大大提高了压缩编码效率。
  ·查表量化。
  JPEG的压缩流程中紧跟着DCT的一步操作就是量化,要使用刚计算的8×8DCT系数除以8×8的量化系数矩阵。由于ARM720T处理器核心不包括除法指令,所以这部分操作要通过调用软件除法函数完成。为了进一步提高系统处理速度,我们使用查表的方法来完成量化操作。在系统运行初期根据选定的量化系数矩阵生成4096x64B的量化表,以后的量化操作就变成了查表操作。经过实际测试,查表量化使压缩编码的性能大约提高了20%。


 
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

手机版|小黑屋|与非网

GMT+8, 2025-1-10 03:18 , Processed in 0.130017 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.