帧存控制器的设计对于实现两种不同视频系统之间的图像信号的存储、采集和显示显得非常重要。为了保证数据处理与采集的连续,设计中使用了两组帧存储器(FRAM1、FRAM2),由于数字化的图像每帧大小为640×480=307200(16bit)共300K×16bit的数据量,笔者使用每组512K×16bit的静态存储器,存储时间为12ns,可以保证快速地读出和写入图像数据。图3为帧存控制器的逻辑框图。
www.55dianzi.com
由于输入信号为隔行扫描的图像数据,显示输出需要逐行扫描数据,因此数据存入帧存储器时需要进行处理。设计中采用场合并行法,将两场的数据写入一个帧存中,构成一幅完整的逐行扫描图像,系统利用VREF信号对此进行控制,产生的帧切换控制信号控制数据在两个帧存中的切换。当VREF信号有效时,表明新的一场开始了,此时无效行计数器开始工作,控制不需要采集的图像行,计数到阈值后,有效行计数器开始工作,控制所要采集的图像行,并发出高位地十信号A[18..11];同样,当HREF有效后,无效像素计数器开始计数每行中的无效像素,然后有效像素计数器开始计数需要采集的行听有效像素;每次计满640个像素后,等待下一次有效行信号的到来,同时将有效行计数器加1。由于系统选用的帧存容量较大,因此利用ODD的反相信号作为帧存地址的A10,为每行图像提供了1024个存储空间(实际使用640个),可以简化数据写入与读出的控制电路。隔行的视频信号就会被逐行地存储到帧存体中。总线隔离与控制电路用来完成数据在帧存中的写入与读出的同步。由于采用SRAM作为帧存体,有效像素的写入与后续视频接口的读出不能在一个帧存体中同时进行,系统采用双帧存轮流操作的方法,系统采用双帧存轮流操作的方法:当数字化后的图像信息写入其中的一个帧存时,帧存控制器将另一个帧存中的像素顺序读出,送到显示设备
,反之亦然。
1.4 视频图像的放大变换
应用栅格理论几何变换处理过程可以按下面方式进行描述:给定一个定义于点阵Λ1上已采样信号,需要产生一个定义于另一个点阵Λ2上的信号。如果,Λ1中的每一个点也在Λ2中,那么此问题是上转换(或内插)问题,可以先将那些在Λ2中而不在Λ1中的点添零(即零填充),然后用一个作用于Λ2上的内插滤波器估计这些点的值;若Λ1)Λ2,即为下转换(或抽取)问题,可以简单地从Λ1中取出那么也在Λ2中的点。然而,为避免下采样信号中出现混叠,需要对信号进行预滤波,以将其带宽限制到Λ2*的沃格纳晶体。上转换和下转换的过程示于图4(a)、(b)中。更一般的情况,如果Λ1和Λ2互相不包含,就需要找到另一个即包括Λ1又包括Λ2的点阵Λ3,可以先将Λ1上采样到Λ3,然后再下采样到Λ2。此过程示于图4(c)。图4(c)中Λ3中的中间滤波器完成两个任务:首先,内插出Λ1中漏下的采样点;其次把Λ3中的信号频谱限制于Λ2*的沃格纳晶格。
由于系统中进行放大变换采用 FPGA 实现,因此本文讨论的重点在于如何简化实现并提高转换速度,上转换中的上采样过程为:
(1)式中Ψs,1和Ψs,3分别为原理图像和上采样信号;U(.)为上采样运算;Λ2\Λ1表示在Λ2而不在Λ1内的点的集合。插值滤波器的定义如下:
(2)式中,d(Λ)为栅格Λ的采样密度;v*表示栅格Λ的转逆栅格的Voronoi单元,即栅格Λ原点的单位元,它向所有栅格点平移将会无重叠地覆盖整个连续空间。最简单的插值滤波为线性插值,也可以采用二加权滤波的方法。图像的缩放还可以采用3次样条插值和小波分解的方法,虽然这些方法在理论上可以取得很好的图像缩放效果,但计算复杂,即使采用快速算法,也难以实现视频图像的实时显示。
针对视频信号数据量大、数据流速度的特点,采用FPGA设计,可以完成帧存控制、视频信号的实时放大与叠加功能。基于运算速度与算法实现的难易程度分析,对视频信号的放大采用了简单的线性插值的办法,原理如图5所示。视频信号是以场或帧进行存储的,由于数据写入时存储地址与图像显示的空间位置有确定的对应关系,因此系统需要的放大处理就变为对帧存储体的地址线的控制问题。
对于本系统具体的4倍放大要求,将行同步信号先进行二倍行使能运算,并利用场同步信号对该寄存器进行复位,将生成后的二分频行同步信号控制行地址发生器,也就是产生帧存储器所需的高位地址;类似地利用像素时钟、行同步信号和场同步信号就可以得到所需的低位地址。由于在帧存控制器向帧存储器写入数据时采用了一行点1024个位置的办法,所以在低位地址后连接了一个比较器,当产生的低位地址小于640时,帧存储器的读信号有效,否则无效,以保证不会混叠入无效的数据。
标准的VGA(640×480,60Hz)接口需要提供以下几组信号:3个RGB模拟信号、行同步信号HS和场同步信号VS。它的信号时序如图6所示。
点击看原图
图6中VS为场同步信号,场周期为16.683ms,每场有525行,其中480行为有效显示行,45行为场消隐区,场同步信号每场有一个脉冲,该脉冲的低电平宽度为63μs(2行)。行周期为31.78μs,每显示行包括800点,其中640点为有效显示区,160点为行消隐区(非显示区)。行同步信号HS每行有一个脉冲。该脉冲的低电平宽度为3.81μs(即96个脉冲)。因此,VGA控制器的任务就是按要求产生所需要的时序。
DISCLK为视频显示时钟,频率为25MHz,首先输入到模等于800的像素计数器中,输出的计数值与一个预先设好的比较器进行比较,当计数器的值大 于160时,输出高电平,反之输出低电平,作为行同步信号;同理,利用一个模等于525的计数器对行同步信号进行计数和一个阈值为45的比较器可以产生所需要的场同步脉冲VS。
产生的行、场同步信号和像素显示时钟分别被送到两个地址发生器中,产生所需要的控制帧存储器的地址信号。由于前面介绍的帧存控制器中采用为每行数据提供1024个存储空间的办法,因此在数据读出时也要进行相应管理。低位地址发生器产生的地址数据与一个比较器进行比较。当地址小于640时,帧存储器的读信号MEMRD位低电平有效,否则无效,这样有效像素数据就被完整地提出。由于VGA是一个模拟的接口标准,RGB彩色信息需要输入模拟量,因此帧存储器输出的数字信息还要经过D/A变换。系统先用飞利浦公司出品的TDA8771AH,它内部集成了三个视频D/A转换器,基于电阻网络架构,转换速率最高可达35MHz。由于它专用于数字电视、 视频处理 等相关领域,因此使用十分简单,只需要提供24bit数字信息和一个转换时钟即可。VGA控制器原理图如图7所示。
点击看原图
2 系统集成
综上所述,完整的 电子稳像 系统结构如图8所示。摄像头输入的信号采用PAL制式,经过视频处理接口后形成RGB565格式的数字视频信号和控制信息;帧存控制器作为整个平台的核心,在将数据写入帧存储器的同时,对数字化的图像信息进行去隔行处理,再将数据读出送往VGA控制器时进行放大变换。VGA控制器则负责将数据按照VGA标准时序送往显示器上。
在该平台上实现了文献中K0等人提出的一种最简单的基本位平面的电子稳像算法,对于8位的灰度图像,可以表示为:利用第4层进行运算,其依据是在多帧图像进行BPM运算后发现,该层的误差结果较平滑。然而,K0的BMP-b4算法在不同的图像序列和信噪比的情况下,并不能总得到一个最优解;在某些情况下,b4、b5或b6会得到更好的结果。
目前资料显示电子稳像技术作为近年新兴技术还处于试验研究阶段,因其适用范围广阔而展现了乐观的研发前景。
本文关键字:电子 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术