浅谈基于ARM/DSP的图像采集与视频应用

时间:2011-08-01

  随着社会经济的快速发展以及人民生活水平、消费支付能力的提高,各种娱乐场所消费市场迅猛发展。由于娱乐场所人员众多繁杂,因此有必要强化娱乐场所的安全管理措施。公安机关通过对各娱乐场所实施隐蔽式远程图像监控管理,变被动式接警处理为主动式监管,不仅可以大大缓解警力不足的问题,对于吸毒、聚众闹事等违法犯罪行为起到一定的震慑作用,而且,必要情况下的图像资料的录像保存还可以作为公安机关对于犯罪认定和处理的有效依据

  近基于ARM/DSP的图像采集得到越来越广泛的应用。除了传统的视频编解码外,一些新兴应用如条码识别、文字识别、生物识别(虹膜、面相)等也得到了空 前的关注。这些应用都要求获得稳定、快速、低噪声的图像质量,所以作为应用基础的图像采集与处理技术应该得到更多的关注。

  我们主要从事基于ARM和DSP的图像采集、视频编解码技术的开发工作,做过不是这方面的项目,而且近经常看到一些网友提问一些基础*的问题,所以今天对图像采集与视频编码方面的基础知识简单总结一下,希望对大家有用,也希望抛砖引玉,欢迎大家讨论和指正。

  组成一套图像与视频应用系统包括两部分:图像成像单元和后端处理单元。首先讨论图像成像单元,除了一些特殊应用外,市场上常见的图像成像部件基本可分为CCD和CMOS两种。

  CCD,英文全称:Charge-coupled Device,中文全称:电荷耦合元件。可以称为CCD图像传感器。CCD是一种半导体器件,能够把光学影像转化为数字信号。 CCD上植入的微小光敏物质称作像素(Pixel)。一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。CCD的作用就像胶片一样,但它是把图像像素转换成数字信号。CCD上有许多排列整齐的电容,能感应光线,并将影像转变成数字信号。经由外部电路的控制,每个小电容能将其所带的电荷转给它相邻的电容。

  CCD广泛应用在数码摄影、天文学,尤其是光学遥测技术、光学与频谱望远镜,和高速摄影技术如Lucky imaging.CCD在摄像机数码相机和扫描仪中应用广泛,只不过摄像机中使用的是点阵CCD,即包括x、y两个方向用于摄取平面图像,而扫描仪中使用的是线性CCD,它只有x一个方向,y方向扫描由扫描仪的机械装置来完成。CCD的加工工艺有两种,一种是TTL工艺,一种是CMOS工艺,前者是毫安级的耗电量,而后者是微安级的耗电量。TTL工艺下的CCD成像质量要优于CMOS工艺下的CCD.CCD广泛用于工业,医疗、民用产品。

  CMOS传感器接口信号包括主时钟信号、象素时钟、水平同步/参考、垂直同步和象素数据信号,如下所示:

  MCLK ――  后端DSP/arm提供给传感器的时钟,也可以由晶阵提供

  PIXELCLK ―― 传感器输出的象素时钟,所有数据与该时钟同步

  HSYNC/HREF ―― 水平参考信号,表示一行数据(包括有效数据和Blank)

  VSYNC ―― 垂直同步信号,表示一帧数据(包括有效数据和Blank)

  Data[7:0] ―― 8位象素数据,有的传感器是输出10位或者更高

  CMOS 传感器的输出信号格式一般有几种:Raw RGB(Bayer)、RGB565、YUV422、ITU656.Raw RGB输出原始的RGB数据,通常是每个象素仅输出一个数据,偶数行RG RG RG…,奇数GB GB GB…,需要进行插值才可以得到每个象素点的RGB数据。RGB565是每个象素点输出两个字节,共16bits,由R(5bits)、G(6bits) 和B(5bits)组成。因为人眼对绿色更敏感,所以G分量由6bits代表。YUV422也是每个象素点输出两个字节,每行由序列UY VY UY VY…组成,其输出顺序一般可以控制。同样由于人眼对亮度更敏感,所以每个象素输出一个Y值,而色差则是各一个象素输出一个。RGB565和YUV422 都是需要时序信号配合的,而ITU565格式本身包含帧头和帧尾,因而可以不需要HSYNC和VSYNC信号的配合。

  前面讨论了 前端传感器部分,下面讨论一下后端处理单元。随着ARM的普及,越来越多的工程师开始使用ARM作为后端处理单元。常见的ARM如2410、9200、 44b0等,没有视频输入接口,需要增加CPLD/FPGA电路控制时序和读入传感器输出的图像数据。另外一类ARM由于具有视频输入接口从而大多简化了 电路,直接可以输入CMOS传感器的输出。这一类的arm处理器包括Freescale mxl/mx21/mx27/mx31、Samsung 2440、Intel PXA270等。我们在为自己的应用选型时,除了考虑处理器的功耗、价格、主频、外频外,还应该考虑处理器的内部处理能力,比如DMA能力、是否有硬件加 速能力等因素。通常图像采集后都会用到颜色空间变换、放大缩小等功能,所以如果处理器具有硬件加速能力则可以大大提高运算效率。在这方面 Freescale MX21应该是不错的,其预处理和后处理模块通过硬件实现颜色变换和插值变换,大大提高运算速度。如果使用DSP作为后端处理器,那就比较简单了。无论是 TI系列还是ADI Blackfin系列,都具备视频输入接口,可以直接输入传感器的输出信号。

  另外一类重要的应用是视频编解 码,主要用于安防领域。当前流行的编解码算法是MPEG-4,而H.264也正在迅速的占领市场,传统的M-JPEG则在交通监控领域继续发挥作用。经常 看到网友在论坛上讨论基于ARM实现视频编解码算法,结果可能大多是让您失望。我们曾经试图做这个工作,是在Freescale MXL处理器上实现QCIF分辨率的准实时MPEG-4编码,而且使用MXL的硬件DCT加速、汇编优化和半象素搜索优化算法。很明显基于传统ARM处理 器实现视频编码算法是很有难度的和不太现实的。不过您也别太失望,有一类arm处理器内部集成编解码CODEC,算法基本不占用CPU时间,所以还是可以 用的。这一类主要有Freescale MX21/MX27/MX31、海思Hi3510,好像还有上海杰得。Mx21内嵌Hantro的CODEC,可以做到CIF@30fps,MX27可以 做到H.264@D1,海思3510也可以做到H.264的D1编码。相对使用DSP处理视频算法,SOC的优点是开发简单,直接调用编解码API就可以 了。随着市场竞争的加剧,相信会出现越来越多的具备视频编解码能力的arm处理器。

  相对于arm处理器,目前更多的工程师使用 DSP处理器完成编解码算法。适合视频处理的DSP也有很多,比较的有TI系列、ADI系列和Philips系列。TI自不必说,大家都很熟悉。 Philips(NXP)的Trimedia系列DSP是老牌的视频处理芯片,应用也非常广泛。ADI的Blackfin系列视频处理器则是较新一点的, 相对于传统DSP,Blackfin的优势在于其MSA体系结构,是DSP与RISC处理器的结合体。这一优点使得Blackfin既可以运行操作系 统,又可以高效的运行算法,从而可以实现单芯片视频应用系统。我们知道单芯片系统一般成本会比双处理器系统低,这在对成本控制越来越严格的今天的确比较有 诱惑力。



  
上一篇:建立一个精密的双极性电压基准
下一篇:数字麦克风阵列在实际生活中的运用案例

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料