基于SDI 接口的实时图像增强显示系统
称为图像重采样,它是视频处理中的一项重要技术.在SDI显示输出模块中,由于标清SDI 显示画幅分辨率是720 × 576,前端输入CameraLink或者其他接口的图像分辨率随机,所以必然会用到图像画幅缩放,否则,如果图像分辨率超出SDI的这个范围,就会导致显示不全,如果分辨率小于这个范围,就会导致有黑框,直接影响后续的显示效果.
目前画幅缩放的算法种类繁多,但基本方法都是插值运算方面的算法,例如最近邻插值.双线性插值以及立方卷积插值算法等,但最近邻插值算法在亮度变化比较快的图像边缘比较粗糙;立方卷积插值算法非常复杂而且运算量大,不满足实时处理条件.同前面2种插值算法比较,双线性插值算法运算量少.实时性高,适合于在FPGA内部实现.
如图3所示,假设原始图像中的某点 (x,y) ,则相邻的右侧和下方像素点位置为 (x + 1,y),(x,y + 1), (x + 1,y + 1),假设它们的灰度值分别是P1,P2,P3,P4,在水平方向和垂直方向上的位移都是单位1,并假设待插入点的位置坐标为:(x + d ) x ,y + dy .
那么根据双线性插值算法原理得到插入点的灰度值为:
从上式看出,当知道待插值点的偏移距离dx 和dy后,那么该插值像素点的灰度值可根据周围的4 点得到.该系统中的画幅缩放处理正是采用双线性插值算法,其在FPGA内部实现的具体功能如框图4所示,主要由数据缓存单元.双线性插值单元.插值系数控制单元组成.
在实现图像缩放算法以前,首要算出图像的缩放因子k.这里以一行图像为例,以单位长度“1”表示相邻2个像素的距离,图像缩放前的分辨率为A × 1,图像缩放后的分辨率为B × 1,则缩放前后的图像的像素缩放因子k = B A .例如,分辨率为640×512 的图像缩放为720×576的图像,则在水平方向上缩放因子k=1.25;垂直方向上的缩放因子k=1.125;根据不同的情况,在水平.垂直方向上的缩放比例因子不同.
根据图4 和插值的运算公式,每经过一个像素时钟,插值系数dx ,dy 需要实时提供给插值运算模块,这就要求FPGA 时序同步,并且FPGA 各个功能模块能够有效配合.
3 实验结果及分析
将硬件系统和相机连接,该相机基本参数是320×256 分辨率,14 b 像素深度,帧频25/50 可调.通过PC机的RS 232 串口连接转一个转换设备,使之满足RS 422 差分协议,以便发送命令给硬件系统和返回硬件系统状态.
FPGA程序采用模块化方式,分为图像采集输出模块.双缓存控制模块.通信控制模块.伪彩处理模块.灰度拉伸模块.画幅缩放模块和SDI时序生成模块,其中伪彩处理模块.灰度拉伸模块和画幅缩放模块通过RS 422 接口发送不同的指令给FPGA,就会触发相应的模块工作,具体FPGA 初始化过程中软件工作流程如图5所示.
SDI输出显示采用JVC 公司专用的SDI监视器,和电路板之间用75 Ω的同轴电缆连接,系统工作后测试了相应功能,并将图像显示在监视器上,图6是显示的未通过任何增强处理的7~14位图像.
图7是显示的经过灰度拉伸处理的图像,将14位拉伸成8位.
图8 是经过拉伸处理后再经过伪彩色增强处理的图像.图9是经过伪彩色增强处理的拉伸图像再进行画幅拉伸使之全屏显示.
4 结语
本文设计了一种基于SDI接口输出的图像显示系统,在FPGA 里面封装了灰度拉伸.伪彩色处理以及画幅拉伸增强算法函数,几种算法可以单独调用,也可以串行一块工作.实验结果表明,该系统可以很稳定地将Camera Link接口或者千兆网口输入图像经协议转换为标清SDI输出,并可以把灰度很低的图像进行对比度增强,极大增强了人眼的视觉效果,由于SDI转换协议以及各个增强算法都在FPGA内部实现,完全可以达到资源优化利用和实时性要求.
- 一款用于视频监控摄像头的简单高效的LED驱动器(10-16)
- 基于STB 和SIP 视频通信软件设计及测试(12-09)
- 基于FFmpeg的高清视频编辑模块的设计方案(12-09)
- 移动视频监控及定位系统的设计方案(12-07)
- AVS I帧视频编码器的FPGA实时实现(12-06)
- 电梯监控系统中的视频编解码关键技术(11-30)