、场同步参考信号VREF、行同步参考信号HREF)的时序关系的基础上,用状态机实现了对采集过程起止点的精确控制。图3所示为一帧图像采集期间三个同步信号的时序示意图。
RTS0信号的上升沿标识一帧新图像的起点,VREF信号为高电平对应图像场正程扫描时的有效像素行期间,在有效像素行期间,HREF信号为高电平对应像素有效采样时间。基于这三个信号确定一帧图像采集过程起止点的流程如下:
①若检测到RTS0信号的电平为低,转到②;②若检测到RTS0信号的电平为高,转到③,同时开始一帧新图像的采集;
③若检测到VREF信号的电平为高,转到④;
④若检测到VREF信号的电平为低,则表明352X288分辨率模式下的一帧图像采集过程结束或720X576分辨率模式下的第一场图像采集过程结束,转到⑤,否则在HREF信号的电平为高期间进行有效的图像数据采集;
⑤若检测到VREF信号的电平为高,转到⑥;
⑥若检测到VREF信号的电平为低,则表明720X576分辨率模式下第二场图像采集过程结束,转到①,否则在HREF信号的电平为高期间进行有效的图像数据采集。
1.3.5 采集图像数据的预处理及存储
图像压缩系统所需要的输入图像数据流是按照宏场-SLICE-图像的分层结构组织的,如图4所示(以720X576分辨率为例)。而图像采集系统中,A/D转换后的输出数据流结构如图5所示。因此,必须对图5所示的数据流进行相应的预处理,图像压缩系统才能够直接从图像采集系统中得到需要的数据格式,从而提高整个图像处理系统的性能。
按照图4所示的分层结构,图像数据在帧存中以SLICE为单位顺序存储,其中SLICE的尺寸既要考虑图像压缩系统中图像压缩算法的要求,又要考虑与图像分辨率有着密切的关系。图6所示为图像数据在帧存中的存储结构。下面主要以720X576分辨率下的图像为例讨论数据存储地址的计算。
由A/D转换输出数据格式与图像压缩系统输入数据格式间的对应关系可知中,一帧图像中的任意像素可以用分层寻址方式准确定位,并据此产生此像素所对应的三个分量的帧存存储地址值。首先,从一帧图像的一第一行开始,每连续的16行作为一个像素块,称为行块,一帧720X576分辨率的图像可划分为36个行块;其次,每一个行块又在水平方向上平均分为3段,每段称为一个列组,每个列组的宽度为水平方向上连续的240个像素,高度为垂直方向上连续的16行。720X576图像像素分层寻址示意图如图7所示。Y、U、V三个分量在帧存中的存储地址产生过程如下:首先确定含像素所属行块在一帧图像中的偏移量及像素所属列组在行块中的像移量,即确定行块序号和列组序号;然后确定像素在所属列组中水平方向上和垂直方向上的偏移量;最后根据上述4个偏移量计数器的值即可产生此像素所对应的三个分量的帧存存储地址值。
在720X576分辨率下,一帧图像中任一像素的Y、N、V分量对应的帧存地址计算公式如下:
y_addr=(C-1)×8640+(E+1)×2880+(D-1)×120+(F-2)/2
u_addr=(C-1)×8640+(E-1)×2880+(D-1)/2)×60+(F-3)/4+1920
v_addr=(C-1)×8640+(E-1)×2880+(D-1)/2)×60+(F-4)/4+2400
式中,y_addr、u_addr、v_addr分别对应Y、U、V三个分量的帧存存储地址;C表示行块序号,取值范围为1~36;D表示在列组垂直方向上的偏移量,取值范围为1~16;E表示列组序号,取值范围为1~3;F表示在列组中水平方向上的偏移量,取值范围为1~240。
上述地址计算公式在FPGA中实现时,考虑到各乘积项常系数(8640、2880等)所对应的二进制数中"1"较少,可将各乘积运算转化为移位与加法运算的组合,并将加法操作用分组超前进位[4]方式实现。
1.3.6 帧存乒乓刷新控制机制
两组帧存的读写过乒乓机制来管理。为确保在任何时刻,最多只有一个帧存处于图像压缩系统的控制下,设置了一个读互斥锁;同样,最多有一个帧存可接收预处理后的数据,因此又设置了一个写互斥锁。
因为图像压缩系统的压缩帧率在720×576分辨率下小于25帧/秒,为了保证图像压缩系统每次从采集系统所到的一帧图像数据是最近由FPGA预处理过的,使得图像延时较小,设计了双帧存刷新机制[5]。
在系统初始状态,帧存A处于等待写状态,帧存B处于读结束状态。采集过程开始,两个帧存的状态转换控制流程完全相同。下边以帧存A为例介绍基于读写互斥锁的帧存控制机制。帧存乒乓刷新控制机制如图8所示,其设计思想如下:
①采集过程未开始,帧存A处于等待写状态,并获得写互斥锁;
②收到一帧新图像的开始信号,采集过程开始,帧存A进入可写状态,接收图像数据;
③一帧图像的采集过程结束后,帧存A进入写结束状态,并释放写互斥锁;
④在写结束状态下,若此时帧存B拥有读互斥锁,由帧存A保持写结束状态,否则帧存A获得读互斥锁,进入读等待状态,并在下一个控制周期切换到再次读等待状态;
⑤帧存A在再次读等待状态下,如果帧存B处于写结束状态,则帧存A释放读互斥锁,进入读结束状态,否则若图像压缩系统请求帧存的控制权,则帧存A进入可读状态,并处于图像压缩系统的控制下,若以上两个条件均不满足,则帧存A保持再次读等待状态。
⑥在可读状态下,若图像压缩系统请求FPGA回收帧存控制权,则帧存A进入读结束状态,并释放读互斥锁;
⑦在读结束状态下,若帧存B拥有写互斥锁,由帧存A保持读结束状态,否则帧存A进入等待写状态,并获得写互斥锁。
上一页 [1] [2] [3] 下一页