当前位置:首页 > 芯闻号 > 基础知识科普站
[导读]近年来,视频技术的飞速发展,使得视频产品越来越普及。视频信号采集是整个视频应用的前端部分,扮演着极其重要的作用。传统的图像采集卡面向计算机应用,体积大,可靠性有待进一步提高,于是便产生了一些新的视频采集方法,这些方案有的基于FPGA和DSP,有的基于ARM和编码芯片,在实时性、灵活性、 可维护性方面各有千秋。

近年来,视频技术的飞速发展,使得视频产品越来越普及。视频信号采集是整个视频应用的前端部分,扮演着极其重要的作用。传统的图像采集卡面向计算机应用,体积大,可靠性有待进一步提高,于是便产生了一些新的视频采集方法,这些方案有的基于FPGA和DSP,有的基于ARM和编码芯片,在实时性、灵活性、 可维护性方面各有千秋。本文针对FPGA在数字信号处理速度上的优势以及ARM在控制方面的长处,设计了一种全数字化的实时视频采集系统,具有很实用的参考价值。

1 系统构成

本系统的结构框图如图1所示,图像传感器模块负责图像采集,FPGA产生I2 C时序控制CMOS图像传感器芯片,并将采集到的图像数据进行相应处理后送到压缩芯片ZR36060进行压缩;ARM负责压缩芯片的驱动、以太网芯片的控制和UDP/IP协议的实现,以及视频采集系统的指令控制和数据传输, 以太网模块主要实现以太网数据传输。SDRAM做数据暂存与ARM存储空间的扩展,采集到的视频图像以帧为单位通过网卡芯片传送到网络。

图 1

2 硬件设计

2.1 图像传感器

图像传感器采用MICRON公司的MT9M131。它是一种彩色CMOS图像传感器,可支持SXVGA、VGA、QVGA等显示格式,I2 C总线接口,最大支持分辨率1280*1024,在VGA格式下可达到30帧/每秒的采集速度,并具有自动曝光控制、自动增益控制、自动白平衡、自动带通滤波、自动黑级校准等功能。本系统采用VGA格式,CMOS传感器的控制时序由FPGA产生。

2.2 FPGA器件

FPGA器件的主要功能包括图像传感器的控制、采集后的图像数据处理和格式转换,为了采集到质量更好的图像,将来还会在此部分加入一些相应的处理算法。因此,为保证系统的实时性,系统选用了Altera公司Cyclone II系列的EP2C35F672C6。该芯片具有35000个逻辑单元、672个引脚、475个用户自定义I/O接口、35个嵌入式乘法器和4个锁相环,完全可以满足系统要求。

2.3 ARM处理器和网卡芯片

ARM处理器选用三星公司的S3C2410,该处理器拥有独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路串口,4路DMA,4路带PWM的时钟,最高可运行在203MHz。系统采用的网卡芯片是CS8900A,它是用于嵌入式设备的低成本以太局域网控制器。它的高度集成设计使其不再需要其它以太网控制器所必需的昂贵外部器件。

CS8900A包括片上RAM,10Base-T传输和接收滤波器,以及带24毫安驱动的直接ISA-总线接口。除了高度集成,CS8900A还提供其它性能和配置选择。它独特的PacketPage结构可自动适应网络通信量模式的改变和现有系统资源,从而提高系统效率。图2为网卡芯片与S3C2410的接口示意图。

图 2

2.4 视频压缩芯片

JPEG编解码芯片ZR36060是专为视频采集与编辑应用而设计的,可以方便地实现对视频信号的实时压缩和解压缩。在进行压缩时,ZR36060接受 YUV4:2:2数字视频信号,将其编码为JPEG码流输出。ZR36060对像素块和CCIR视频信号可实现高达25~30帧/秒的压缩;灵活的数据接口,支持三种YUV视频接口模式,即8位主模式、16位从模式和8位从模式;3种不同的比特率控制模式用于静止和运动视频的压缩;可以和多种常用视频解码器实现无缝连接[1]。据统计,JPEG格式的压缩比例约为70~80:1,而本系统中采用的分辨率并不高(640*480),直接使用ZR36060进行帧内编码压缩可以满足要求,同时也减少了FPGA部分的开发工作量。

3 关键模块的工作原理

3.1 图像传感器驱动

MT9M131是标准的I2 C总线器件,接口简单,传感器工作时只有6个控制信号。其中MCLK由FPGA产生,是传感器工作时钟输入;FVAL是帧有效信号,它的上升沿表示一帧数据的开始。在FVAL信号的有效期间内包含了480个行有效信号LVAL,而每个LVAL信号的高电平期间包含了数据总线上640个像素数据的输出。所以,在FVAL一个周期内,图像传感器正好输出了完整的一帧图像。分辨率为640×480。仅当FVAL和LVAL信号同时为高电平时,传感器输出数据 D[9:0]有效,FPGA在每个像素时钟PIXCLK上升沿时将有效数据读入。经实测,传感器正常工作时,SCLK,LVAL频率约为7.56kHz和 14.2kHz。

本系统采用Verilog HDL语言来编写CMOS图像传感器的时序驱动。在实际设计中,把控制模块分成两部分:I2C_Config模块根据设定的曝光时间来发生I2 C总线SCLK和SDAT时序,而Capture模块则负责与传感器的数据接口,读入10位的图像数据,并送到下一级模块进行相应处理。以下是 Capture模块部分代码:

always@(posedge iCLK or negedge iRST)

begin

if(!iRST)

……… //各信号清零复位

else

begin

Pre_FVAL <= iFVAL;

if( ({Pre_FVAL,iFVAL}==2'b01) && mSTART )

//当前帧有效且前一帧处理完

mCMOS_FVAL <= 1;

else if({Pre_FVAL,iFVAL}==2'b10) //正

在处理前一帧

mCMOS_FVAL <= 0;

mCMOS_LVAL <= iLVAL;

mCMOS_DATA <= iDATA;

//读取数据送入FPGA

if(mCMOS_FVAL)

//帧有效

begin

if(mCMOS_LVAL)

//行有效

begin

if(X_Cont<639)

X_Cont <=X_Cont+1;

else

begin

X_Cont <=0;

Y_Cont < = Y _

Cont+1; //计算像素坐标,方便后续模块显示

图 3

3.2 格式转换模块

从数字图像传感器传来的原始图像质量,在整个系统的性能影响中占主要地位,对后续的视频压缩和传输速度有着非常重要的影响。后期将会在采集前端加入相应的图像处理算法。而大多数处理算法都是基于RGB颜色空间的,为了进行视频压缩以减小数据量,就需要进行RGB到YUV的颜色转换。

YCbCr是YUV属于颜色空间的一种储存格式,适用于MPEG、JPEG等格式的编码。相比RGB色彩空间,YCbCr色彩空间有一个显著的优点。Y的存储可以采用和原来画面一样的分辨率,但是Cb,Cr的存储可以使用更低的分辨率。这样可以占用更少的数据量,并且在图像质量上没有明显的下降。所以,将色彩信息以低于量度信息的分辨率来保存是一个简单有效的图像压缩方法。

在ITU-R BT.601标准中,建议在计算Y时,权重选择为kr=0.299,kg=0.587,kb=0.114。于是常用的转换公式如下:

Y=0.299R+0.587G+0.114B

Cb=0.564(B-Y)

Cr=0.713(R-Y)

采用硬件描述语言进行编程之前,需要消除浮点数运算。合理利用硬件资源是编写代码时要充分考虑的。对于常系数乘法单元,其占用的LEs(Logic Elements)与系数大小有关。为了避免出现负数和溢出问题,最终采用的转换公式如下:

Y = [CA*27] *(R - G)+ G + [CB*27] *(B - G)+ YOFFSET

Cb = [CC*27] *(B – Y)+ COFFSET

Cr = [CD*27] *(R – Y)+ COFFSET ([ ]符号表示取整运算)

各参数的取值见表1[2]。

表1 各参数值

CA0.299 CC0.492

CB 0.114CD0.877

YOFFSET 16 COFFSET 128

3.3 图像压缩控制

ZR36060的控制接口示意图如图3所示,VCLK和VCLK2是需要外部提供的时钟信号,由FPGA产生的PIXCLK为25MHZ,满足系统要求。 VCLK是VCLK2的分频,并要求与VCLK2同步。

本系统选择ZR36060工作状态为:8位代码从模式,视频同步从模式,8位视频总线宽度。ZR36060的接口可分为视频接口、主机接口和代码接口三部分。视频信号由视频接口Y[7:0]输入,主机接口通过DATA[7:0]对芯片内部寄存器设置,控制工作状态,压缩后的码流通过代码接口 CODE[7:0]输出到存储器中缓存。8位代码从模式下,主控制器的数据总线DATA[7:0]通过读写HostData对ZR36060的内部寄存器进行设置和读取,代码总线CODE[7:0]从CODEFIFO读写JPEG数据。行同步信号HSYNC接到图像传感器的LVAL引脚,场同步信号 VSYN接到传感器的FVAL引脚。奇偶场指示信号由FPGA给出,每采集到FVAL的上升沿,IND信号翻转一次,以指示奇偶场。

3.4 以太网数据传输

本系统采用UDP/IP协议来实现图像数据的网络传输。压缩后的图像数据经ARM进行UDP数据打包后,存储在SDRAM中。一个完整的数据帧格式包括以太网头、IP头、UDP头和一行图像数据,其系统工作流程图见图4所示。ZR36060 每压缩完成一帧,就由S3C2410读取并写到SDRAM中,然后判断是否读完一帧图像数据,读完后则发送UDP包,将图像数据通过以太网发送到网络。

4 小结

本文提出了一种基于FPGA和ARM的视频采集处理系统,其特点在于设备接口和视频信号处理的全数字化,系统结构紧凑,体积小巧、响应快速;基于FPGA的前端处理更增加了图像处理算法升级的灵活性,适用于工业远程监控等多种场合。后期还可在采集端加入相应的图像处理算法,以提高图像质量。

参考文献:

[1] 陈晓敏, 王学进, 王志华, 张利. JPEG 编解码芯片ZR36060在远程视频监视系统中的应用[J]. 电子技术应用, 2006. 10.

[2] 魏博, 肖文, 王丛琳, 戎路. 基于FPGA 的CMOS 图像传感器的驱动开发[J]. 光学与光电技术, 2008, 10: 56-58.

[3] Gabor Szedo. Color-Space Converter: RGB to YCrCb. Xilinx Corp, 2006.

[4] 吴继华, 王诚. Altera FPGA/CPLD设计[M]. 人民邮电出版社, 2005.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片
关闭
关闭