用DSP技术从模拟视频信号中获取数字图像

发布者:平和梦想最新更新时间:2006-07-14 来源: 单片机及嵌入式系统应用关键字:采样  隔行  图像  重排 手机看文章 扫描二维码
随时随地手机看文章

引 言
  图像处理系统中图像源获取手段有很多种,同样图像的传感器也是多种多样的。现在比较流行的传感器有CCD、CMOS、CIS等等。这些传感器对于图像数据输出的格式各不相同,例如CCD输出的是模拟信号,需要通过A/D的采样才能得到图像处理所需要的数字图像信号;而CMOS传感器则直接输出数字信号。这样必然会对图像处理系统的通用性造成很大的影响。当图像传感器更改或者图像的分辨率发生更改以后,都会导致图像处理系统做出相应的修改,这样在很大程度上限制了专用图像处理板的应用范围以及通用性。
  由于电视技术早已得到了广泛的普及,为了保证电视的通用性,世界上早已对其可以使用的模拟视频信号做出了统一的规定。在欧洲以及中国,模拟视频信号主要采取的是PAL制式;而在北美以及日本,模拟视频信号主要采取的是NTSC制式。正是由于模拟视频信号制式的统一,所以导致很多技术成熟的图像获取设备,例如摄像机、照相机等都有模拟视频信号的输出接口。
  本设计方案旨在利用上述的有利条件,提出一套基于TMS320C6x11系列DSP的图像获取方案,利用模拟视频信号的统一性,实现随意更换带有标准模拟视频信号输出接口的图像设备而无需在图像处理系统的硬件和软件上作修改。同时,本方案还需提供一个相对通用的数字视频接口,可以适应TMS320C6xll系列DSP的接口。本设计的主要技术要求有:
  ①支持标准的模拟视频输入接口,可以对标准的模拟视频信号解码得到数字图像数据;
  ②在不降低图像幅面的前提下,图像采集速度快,满足一定的实时性要求;
  ③占用CPU时间少,使得图像采集过程在后台自主完成;
  ④数字图像接口通用性好,可以在TMS320C6u1l系列乎台上通用互换。

1 总体方案设计
1.1 方案的选择

  目前,解码模拟视频信号主要的方法有:采用A/D采样模拟视频信号和采用专用的模拟视频信号解码器。对于前一种方案需要的外部芯片较少,只需A/D转换芯片即可;但是需要占用大量的CPU时间,在采集图像的过程中CPU基本没有额外的时间处理图像。这个问题通常会导致图像处理系统处理图像的时间严重不足。后一种方案采用专门的模拟视频信号解码器,需要一些额外的接口芯片,但是可以节约大量的CPU时间,图像采集过程可以全部在后台完成,基本上不需要CPU的干预。这个优点对于图像处理系统,特别是算法比较复杂的处理系统(例如视频监控系统)有着非常大的吸引力,所以本方案决定采用后者。
  本方案中一个难点是:由模拟视频信号解码得出的数字视频信号数据量非常大,而且由于是实时视频信号,所以数据输出速率也非常高;但是相反,DSP外部存储器接口的读出速率却比较慢。为了解决这个问题,本方案采取了两种缓冲方式.首先是使用高速FIFO,对数据进行暂存以缓解速度上的差异,但是这样的缓冲还不足以平衡两者之间的速度差异。
  于是在本方案中提出了“隔行采样”的思想。通常,隔行采样会使得分辨率下降,例如每四行采样一行数据,会使得图像垂直方向上的行数下降到原来的1/4。这不是设计所希望的,所以为了保证图像的分辨率,设计中在隔行采样的同时,将一整幅图像的行数据交错分多次采样,然后再重新组合成一幅完整的图像。这样既起到了缓冲速度差异的作用,又保证了图像的分辨率。
  最后本方案确定的思路是,采用FIFO来暂存一行图像数据,视频解码器直接向FIF0中写入图像数据。当FIFO中写入了有效图像数据后,由CPLD向DSP发出中断请求;同时,DSP接到中断请求后,启动DMA方式将一行图像数据从FIFO中读入到其外部RAM中存放。CPLD主要完成“隔行采样”的实现、控制解码器向FIFO中写入数据以及DSF从FIFO中读出数据。

  另外,本方案目前主要是针对PAL制式模拟信号的。PAL制模拟信号传输的图像幅面大小为720×576像素。下面的设计主要针对该格式的视频信号展开。如果需要对NSTC等其他制式视频信号解码,只需要在软件上作一些修改即可。
1.2 系统框图
  在本方案中,模拟视频信号解码器采用的是Philips公司的SAA7111A。对于PAL制式模拟视频信号,l行图像数据有720个像素;同时由于YUV分量采用了4:2:2抽样,所以需要1440字节的存储空间存储1行数据。由于本方案中需要用到FIFO对1行数据暂存,所以FIFO的存储深度必须大于1440字节,最后选定高速FIFO采用IDT公司的IDT72V23l,其具有2K×9位的存储深度。同时还使用了Laittice公司的CPLD——LC4128V,作为中间逻辑接口控制“隔行采样”的完成、解码器对FIFO的写操作以及DSP对FIFO的读操作,系统框图如图l所示。

2 硬件方案设计
2.1 芯片介绍

  本方案选用SAA7111A作为前端视频解码器。SAA71llA视频解码器是双通道模拟预处理电路、自动钳位和增益控制电路、时钟产生电路、数字多标准解码器、亮度/对比度/饱和度控制电路、彩色空间矩阵的组合,是一款功能完善的视频处理器。SAA711lA只需要单一的3.3V电源供电,与C6x11的I/O电压一致。SAA7111A接收CVBS(复合视频)或S-video模拟视频输入,可以将PAL、SECAM、NTSC模式的彩色视频信号解码为CCIR-60l/656兼容的彩色数字分量值,器件功能通过I2C接口控制。
  SAA7111A的主要性能特点如下:
  ◆4路模拟输入一一4路CVBS或2路Y/C或1路Y/C和2路CVBS;
  ◆主通道静态增益可编程,自动增益控制选择的CVBS或Y/C通道;
  ◆2个8位视频CMOS模数转换器;
  ◆片上时钟产生器,只需要24.576 MHz单一时钟输入;
  ◆自动探测50 Hz和60 Hz场频,自动在PAL和NTSC标准间切换;
  ◆可以处理PALBGHI、PALN、PAL M、NTSC M、NTSC N、NTSC 4.43、NTSC-Japan和SECAM信号。从以上特点可以看出,SAA7111A功能强大,性能全面,可以满足各种视频转换处理的需要,完全符合本系统的要求。SAA7111A已经在各种视频处理系统中得到广泛的应用,技术性能已得到充分的证明。采用SAA7111A具有很高的性价比。
2.2 DSP与FOFO接口技术
  TMS320C6xll的外部存储器接口(EMIF)提供了功能十分强大的外部接口,可以实现与诸多种类的存储器的无缝接口,如SBSRAM、SDRAM、SRAM、ROM等等。但是其对FIFO的接口并不能做到真正的无缝接口,需要增加一些外部逻辑来调整它们之间的时序。
  本方案中采用的FIFO一一IDT72V23,是标准的同步FIFO,具有两个独立的读写时钟——RCLK、WCLK;同时还具有读写控制信号WENl、WEN2、REN1和REN2。
  对于本设计而言,要求DSP从FIFO中将数据读出,故关键考虑DSP对IDT72V23l的读时序。图2是IDT72V31数据读出的时序。
  图2中,tENS为REN1(REN2)的最短建立时间(SETUP),tDS为数据的最短建立时间(SETUP)。由图2可以看出IDT72V231与一般SRAM读时序的一个很大区别是:当RCLK上升沿到来以后,需要有一个比较长的延时tA才会有有效数据出现在总线上。此前一段时间内总线上的数据是不稳定的,并且该延时最长可达到12ns。

  但是对于TMS320C6x11而言,数据的读入是在ARE信号的上升沿完成的,故这里设计的主要问題是FIFO的RCLK时钟怎样提供。本设计中采用的解决办法如下:
  RCLK=!(ARE)
  REN1&REN2=CEx+AOE+Address
  也就是说,RCLK是由DSP的ARE信号取反得到的,而REN1和REN2信号是由DSP的AOE信号经过地址译码后提供。这样设计的TMS320C6xll与FIFO接口为了配合FIFO读出时序的要求,还必须要求DSP的读时序(主要是Setup/Strobe/Hold三个时序段)满足以下要求:
  Setup≥(tENS+tSKEW)/tcyc
  Strobe≥(tA+tDS)/tcyc
  Strobe≥(tCLKH(min)/tcyc
  Hold+Setup≥(tCLKL(min)/tcyc
  Setup+Strobe+Setup≥(trc(min)/tcyc
  从时序图上的数据可以看出,tENS≥5ns,tA≤12 ns,tDS≥5 ns;同时,由于IDT72V23l的要求,RCLK高电平时间(tCLKH(min)大于等于8ns、RCLK低电平时间(tCLKL(min)大于等于8 ns以及读写周期(trc(min)必须大于等于20ns。加上一定的冗余,最后计算可以得到:
  Setup≥20ns
  Strobe≥30 ns
  Hold≥l0ns
  在本设计的TMS320C6211的系统板上,EMIF的外部时钟频率是100 MHz,所以tcyc=10ns。这样可以得出DSP中CExCTL寄存器中Setup值设置为2,Strobe值设置为3,Hold值设置为1。
  实际系统实现证明。通过这样的硬件接口设计后,TMS320C621l可以很稳定地从FIF0中读出数据。
2.3 隔行采样技术
  由于DSP接口与FIFO的接口速度只能达到15MB/s的速度,同时当DSP把图像数据从FIFO中读出来以后还需要将数据存入其外部存储器中,这样DSP与FIFO的接口速度是完全不可能跟上解码器SAA7111A的有效数据输出速度(最低19.8 MB/s)的,所以DSP无法实时地从视频流中抓出一幅完整的图像。 因此,在DSP与SAA711lA的接口之间采用高速FIFO进行缓冲的同时,还采取了“隔行采样”的方法来缓冲速度上的差异。通过计算得出DSP每隔4行有效视频信号采1行视频数据是合理的。(把DSP将获取的数据存人其外部存储器中所需要的时间考虑在内。)
  “隔行采样”的结果会导致所获取的图像垂直分辨率下降(对于PAL制式视频信号由原来的576行/幅下降到144行/幅)。为了保证图像的分辨率,本设计中将每幅图像分成连续的4次采样.在连续的4次采样中,分别抓取图像中不同的144行数据,也就是说,现在DSP抓取1幅完整幅面(720×576)大小的图像需要分4次获取,然后对数据重排组合得到完整的图像。PAL制信号是按照50Hz的场频对图像进行输出的,即每秒种可以传输25幅图像,现在由于“隔行采样”的原因,DSP每秒钟可以从PAL制信号中解码出6.25幅完整幅面大小的图像。这个速度完全可以满足很多实时系统的要求,如视频监控系统。
  “隔行采样”功能的具体实现是由CPLD配合SAA7111A输出的同步信号(行同步、场同步信号)来完成的。由于IDT72V231(FIFO)的写入控制是通过WEN信号完成的,因此CPLD可以通过控制WEN信号来实现图像的隔四行一采样。具体WEN信号的产生逻辑如图3所示。

  由图3可以清晰地看出,通过这种采样方式以后,每次输出的图像行是隔4行输出l行,而连续4次获取的图像则是一整幅图像576行图像数据中互不相同的144行数据,这四部分图像按照一定规律组合便可以得到一幅幅面为720×576像素的完整数宇图像。
  另外由图3可以看出,SAA7111A每向FIFO中写入一行图像数据(需要53.3μs),DSP则有相当于4行图像数据输出的时间(约256μs)来读出这一行图像数据。因此“隔行采样”有效地缓冲了数据输出和数据读入速度上的差距。

3 软件方案设计
  解码器DSP方软件的设计主要分成两个部分:①将图像数据从FIFO中读出来存人到DSP的外部RAM中去;②对读出的数据进行重排,组合成完整的图像。下面分成两部分来说明。
3.1 QDMA方式数据的读入
  由于DSP将数据从外部读人到RAM中通常是图像处理系统的一个图像获取过程,所以如果使CPU一直处于读入数据的操作中,显然是不合理的。
  为了保证尽可能少地占用CPU时间,即在第n幅图像读入到RAM中的同时,DSP仍然可以有足够的时间来处理第n-1幅图像(对其做需要的处理,例如去噪、压缩、识别等等)。本设计中采取了下面这种读出方式:视频解码器通过一个中断信号通知DSP目前已有数据写入到FIFO中,然后DSP在中断中采用DMA方式,将数据从FIFO中成块地搬移到RAM中去。
  这种操作的好处是显而易见的:当DSP正在处理某一帧图像时,如果有数据需要读入,那么DSP将进入中断,然后仅仅只需要开启DMA读出操作便可退出中断服务于程序,继续没有处理完的工作;而DMA控制器则在后台将一块区域连续的图像数据读入到RAM中。这样图像的获取可以实规在后台完成,图像的处理和图像的获取很好地并行进行,大大提高了CPU的利用率。
  具体在本方案中,由于使用的FIFO的深度是2 K×9位,所以采取的是DMA每次搬移一行图像数据(也就是720×2=1440字节)到RAM中去。同时,TMS320C6x11提供了十分强大的EDMA功能。为了加快DSP在中断中开启DMA读出操作的速度,本设计采用了其QDMA的功能.这样申请一次QDMA仅仅需要几条指令即可。具体申请QDMA的操作代码如下:
  QSRC=SourceAddress,
  //设置FIFO在系统中的地址
  QCNT=0x000005A0;
  //设置一次需要读出的数据量
  //(1440)
  QDST=(int)DesAddress; //设置数据读出的目的地址
  QIDX=0x00000001; //设置QDMA传送的间距
  DesAddress=DesAddress+0x5A0;
  //更新数据读出目的地址
  QSOPT=0x30300000; //启动QDMA通道传输
3.2 图像数据的重排
  由于本方案中采用了隔四行一采样的方法来平衡速度上的差异,所以最后载人RAM中的数据需要重排。这个重排可以在读入FIFO中的数据时就进行,也可以在所有数据全部读人到RAM中后再进行重排;但是重排的方案和流程是一样的。
  如果是采用全部数据都读完后再重排,由于隔四行采样的原因,图像数据是分四个连续的数据块存放的,并且每个数据块中是按照奇偶场分布的。那么,以第一个数据块为例,它的奇场部分存储的实际上是图像的第1,9,17,…,561,569行数据;而其偶场部分存储的实际上是图像的第2,10,18,…,562,570行数据。另外,三个数据块里面存储的图像数据在整幅图像中的行数分布依此类推。具体分布和重排过程如图4所示。

  通过图4所示方式的重排处理以后,全部图像数据分成了两大块:奇场区和偶场区。这时可以根据需要来处理这两个区域。本设计中采用的是将奇偶场合并,同时将YUV分量分开到三个独立的存储区域中去,程序流程如图5所示。

4 总结及展望
  本文提出了一种基于TMS320C6xll接口的图像获取方案。它利用目前大多数成熟的图像获取设备都配备了通用的模拟视频输出接口这一特点,提出了一个从模拟编码的视频信号中抓出静止的数字图像的方案。由于其数字部分接口非常通用(8位),使得可以很容易地在通用图像处理系统中加入实时图像获取接口。通过具体实现证明此方案可行、稳定、高效;可以实现每秒钟6.25幅720×576幅面的彩色图像的获取,具有通用性好、性能稳定、占用CPU时间少等特点。防碰撞模块对SELECT命令的响应是正确的。

结 语
  A型卡RFID技术已经广泛应用于智能卡、票物、安检、物流和防伪等领域。本文根据RFID防碰撞协议规定,在数字硬件上实现了A型卡的防碰撞模块,用VHDL语言进行了仿真和综合后,通过了Xilinx公司的XC4010XLFPGA验证,电路规模5000门左右,达到预定指标要求。最后,采用O.35μm的工艺与电子防伪标签的其他模块一起进行了MPW流片,实际应用测试证明,该模块运行正确、稳定。

关键字:采样  隔行  图像  重排 引用地址:用DSP技术从模拟视频信号中获取数字图像

上一篇:用DSP从模拟视频信号中获取数字图像
下一篇:TMS320C5402与MAX147的接口设计

推荐阅读最新更新时间:2024-05-02 20:25

图像传感器学问多 解析监控摄像机冷CCD
什么是冷CCD相机?这个话题要从CCD讲起,所谓CCD是charge-coupleddevice(电荷耦合器件的缩写),它的作用便是能将光信号转化成电荷量,并通过电荷量的不同来表示光信号的不同。 CCD由贝尔实验室于1969年研制发现,sony中央研究院于同年12月在其基础上展开了大规模的研究。并成功于1980年开始商品化,正式进入量产阶段。CCD图像传感器开始正式进入人们的生活并影响到人们的方方面面。 由CCD的作用我们可以知道,光信号转化成电信号,第一步就是要有足够的光信号,第二是在转化成电信号的时候要保证各个像素点的转化效率一致无噪声,这样我们就可以得到一幅完美的图像。 但是在实际拍摄的时候我们
[安防电子]
“大白”成现实:图像识别技术能知道你多痛
    还记得电影《超能陆战队》里的机器人“大白”吗?只要看一眼就能判断出你是否受伤。最近,加州大学圣地亚哥分校研究出一种电脑图像识别算法,可以通过分析患者的面部表情测量出疼痛等级。   如果你龇牙咧嘴,那么你的疼痛感应该比紧锁眉头要更强一些。它可能没有了解你的父母懂得“疼在你身,痛在我心”,但是应该能比过与你素不相识的护士小姐。   这项技术并非纸上谈兵,它的确有实用价值。护士可借此判断你在外科手术时是否注射了足量的麻醉剂。未来的医疗机器人“大白”看到了你痛苦狰狞的表情,就能主动为你提供治疗。等到那一天,或许你就不必去医院排队等候名医坐诊了。
[医疗电子]
9404-05采样扩展实时示波器的功能特点及应用
PicoScope 9404有四个高带宽的50Ω的输入通道,具有精细的时间和电压分辨率,显示和精确测量转换速度高达70ps,可用于精确测量和可视化高速模拟和数据信号。千兆信号的时钟性能和眼图分析;小于2ps的RMS触发抖动和5GHz内部触发器,支持当今高速串行数据系统的边沿分析和特性描述;实时宽带采样可同时显示在放大器、路由器和传输路径上的基带调制、载波包络和包络轨迹控制信号,包括900MHz和2.4GHz等主要无线通信频段。 Pico SXRTO仪器结构大大降低了重复信号或时钟相关应用的宽带时域采集器的成本。传统实时示波器(RTO)的主要成本是数据和存储带宽。高速实时采样需要的数据带宽,远远超过了模拟系统带宽,这就提高了这些
[测试测量]
使用STM8SF103 ADC采样电压
硬件环境: STM8SF103 TSSOP20封装 因为项目需要用到AD采样电池电压,于是便开始了使用STM8S ADC进行采样,也就有了下文。 手册上对STM8S ADC的管脚描述如下: STM8SF103这款芯片是TSSOP 20管脚封装,如下: STM8SF103这款芯片能用的是5个AD采样通道,分别是AIN2~AIN6。其实是还有一个通道AIN7,但手册并没有对其描述。 这里还有一个很奇怪的地方,从ST资料中找到一个与上面的表数据不同的地方,如: 很明显的说STM8S103是存在这个AIN7通道的,再加上另外5个通道,应该是6个通道才对。 要做AD采样,首先要解决的就是AD的参考电压,之前查看手册上并没有
[单片机]
使用STM8SF103 ADC<font color='red'>采样</font>电压
AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,它允许CPU与TTL移位寄存器、A/D或D/A转换器、实时时钟(RTO)、存储器以及LCD和LED显示驱动器等外围接口器件以串行方式进行通讯。 SPI总线只需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件,其硬件功能很强,实现软件相当简单。串行A/D转换器具有电路简单、工作可靠的特点,而ARM芯片被设计用于手持设备以及普通的嵌人式应用的集成系统,将上述两种实用的芯片和SPI总线技术相结合以实现数据采集十分有效。 1 AD7888的功能与使用 AD7888是美国模拟器件公司推出的一款
[嵌入式]
STM32 Time3 内部触发AD采样配置
/******************************************************************************* * 函数名称: ADC_Configuration * 函数功能: ADC功能设置 使用DMA总线 通道1 * 参数变量: NONE * 全局变量: NONE * 调用函数: * 修改时间: * 版 本: V1.0 * 状 态:调试完成 *******************************************************************************/ void ADC_Configuration(void) { R
[单片机]
数据采集系统中滤波器的选择
为数据采集系统选择合适的低通(抗混叠)滤波器并不像看起来那么简单。一般情况下,根据转换器的采样频率选择低通滤波器的转角频率比较简单,只要把滤波器的转角频率设为Nyquist采样频率的1/2即可。但是,开发一款能瞬间从+1V/V 增益转换到零的模拟“砖墙式”滤波器是不切实际的。因此,从频率的角度设计滤波器电路,必须考虑诸如滤波器带宽设计和阶数(极点的数量)之类的问题。本文将介绍能帮助确定低通滤波器的阶数、逼近类型和一些电路拓扑的技术。 图1 几个低通滤波器的幅值响应与归一化频率的关系曲线。如果滤波器传递函数有多个极点(或阶数),则频率越高,衰减越快。 图2 Butterworth (a)、Chebyshev (b)和Bes
[模拟电子]
​计算隔离式精密高速DAQ的采样时钟抖动的简单步骤
The Easy Steps to Calculate Sampling Clock Jitter for Isolated, Precision High Speed DAQs 计算隔离式精密高速DAQ的采样时钟抖动的简单步骤 简介 出于鲁棒性、安全性、高共模电压考量,或为了消除可在测量中带来误差的接地环路,许多数据采集(DAQ)应用都需要隔离DAQ信号链路径。ADI的精密高速技术使系统设计人员能够在相同的设计中实现高交流和直流精度,无需牺牲直流精度来换取更高的采样速率。然而,为实现高交流性能,如信噪比(SNR),系统设计人员必须考虑采样时钟信号或控制ADC中采样保持(S&H)开关的转换启动信号上的抖动所带来的
[模拟电子]
​计算隔离式精密高速DAQ的<font color='red'>采样</font>时钟抖动的简单步骤
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved