首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的视频图像处理算法的研究与实现
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的视频图像处理算法的研究与实现
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2014-10-30 20:11
|
只看该作者
基于FPGA的视频图像处理算法的研究与实现
控制器
,
大屏幕
,
拼接
随着网络信息化的发展,显示设备作为获取信息的直接手段,有着不可或缺的作用。为满足用户对更大屏幕的观看需要以及使信息显示更优化,大屏幕拼接技术应运而生。大屏幕图像尺寸的增大使在普通显示器上不易察觉的细节暴露无遗,提高了可视化的准确性。高分辨率图形图像数据处理和可视化,用于解决基于单一硬件显示设备无法可视化的高分辨率图形图像。
而拼接控制器是大屏幕系统中的核心显示控制设备。拼接控制器的核心是其处理能力和稳定性,基于计算机体系构架的传统控制器,其性能和稳定性完全取决于它所依赖的计算机,无论传统控制器如何改进,最多只能算量的积累,难以获得质的提升。采用大规模FPGA阵列式组合处理构架,全嵌入式硬件设计的拼接控制器集视频信号采集、实时高分辨率数字图像处理、二维高阶数字滤波等高端图像处理技术于一身,具有强大的处理能力。
本文正是在这种背景下,设计了一种基于FPGA的
视频图像处理
算法,实现实时数字视频的分割、插值放大,通过并行处理机制,保证了视频的实时处理和画面流畅。
1 系统总体概述
文中将完成一路监控摄像头采集的画面在2×2的液晶拼接屏上显示一幅完整大图的效果。
系统的总体框架图如图1所示。由网络摄像头采集到的视频信号,经过DVI接收器后,发出数据及控制信号供给FPGA。通过FPGA主控芯片对输入的视频信号进行分割、插值放大等处理;视频输出模块将FPGA处理后的数据再通过DVI接口输出到屏幕上。
图1 系统的原理图
只要数据读出速度高于写入速度,就不会使图像产生突变现象,从而达到实时处理的目的。
2 FPGA模块的实现
FPGA内部系统对视频图像的处理如图2所示。主要分为帧存储模块、分割模块、插值模块3部分。
图2 FPGA内部模块图
2.1 帧模块及存储模块
DVI接口是将显卡中经过处理的待显示R、G、B数字信号与水平同步信号(Hsync,行同步信号)、垂直同步信号(Vsync,场同步信号)进行组合,按最小非归零编码,将每个像素点按10 bit(8 bit像素数据和2 bit控制信号)的数字信号进行并串转换,把编码后的R、G、B数字流与像素时钟4组信号按照最小化传输差分信号(Transition Minimized Differential Signal,TMDS)方式进行传输。
FPGA的分时切换逻辑是依据输入视频流的垂直同步控制信号Vsync发生由高电平到低电平的转换,以此作为新数据帧到来的标识,如图3所示。
图3 分时切换逻辑图
当FPGA内部的信号控制采集信号为0时,采集系统停止工作,地址发生器不计数。当其为1时,系统处于采集状态。首先只有Vsync上升沿到来后,才允许Hsync通过,从而保证采集的图像为完整的一帧图像。当Vsync上升沿到来后,对所有计数器及触发器清零。Vsync上升沿后,场消隐延时用来对Hsync计数,场消隐期后,可以采集图像。行同步计数器对Hsync进行计数。在计数的每一行中,当Hsync上升沿到来时,行消隐延时对其计数。行消隐过后,点同步计数器开始对其计数。当行同步计数停止计数时,一帧图像采集完毕,等待下一个Vsync到来。
数据缓冲区为两片SDRAM,以一帧图像为单位进行切换控制。采用乒乓存储机制完成数据的无缝缓冲与处理。乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍、相互配合地进行来回切换,将经过缓冲的数据流没有停顿地送到“后续处理”模块。
2.2 分割模块
由于一个像素的输出值只取决于输入图像的相应像素值,因此,可通过对每个输入像素依次进行处理这种流水化的处理模式,来实现对图像的点操作。由于每个像素是单独处理的,所以点操作很容易并行实现。因此,可以把图像分割成若干部分,然后再对每个部分单独进行处理。
视频分割模块实现单帧视频图像的分割剪裁,得到4路完整格式的子视频像素流,并控制4个子视频的相互时序关系,各个拼接屏幕的像素点的扫描规律相同,均为逐行扫描形式,并且子视频像素点显示同步,即行同步和场同步。
2.3 双线性插值算法的实现
实现图片处理的插值方法有很多,例如最近邻插值、双线性插值、双三次插值等。最近邻插值是最简单的插值方式,但当图像中的像素灰度级有细微变化时,该方法会在图像中产生人工的痕迹。双三次插值可以得到更平滑的结果,但在存储管理更复杂,并增加了逻辑资源的消耗。因此,选取了双线性插值方法。
与点操作的图像分割不同,双线性插值属于几何变换,其输出的像素通常并不是来自同一个输入像素位置。因此需要一些形式的缓存来处理由几何形状改变而引起的延迟。
本文采用预载入缓存的方法来缓冲图像数据,并使用双端口RAM来实现行缓冲器的设计方案。
采用双口RAM可在一个时钟周期内同时在每一行上提供两个输入像素,即提供了所有的4个像素。然后将数据输送到插值计算模块。而整幅图像的存储将保存在外部的帧缓存中,每个时钟周期只能对其进行一次访问。每个像素应仅从外部存储器中读取一次,然后暂存在片上缓存中用于随后的窗口。将数据预载入缓存,每次访问时直接从缓存中读取像素,如图4所示。共需计算两次:一次用于载人缓存;一次用于执行插值。输入和输出像素间的映射采用前向映射。
图4 预载入缓存
图5 双线性插位算法
视频插值模块实现对视频按比例因子进行双线性插值放大处理。双线性插值算法的基本原理如图5所示,图中的下标i和f表示各自坐标的整数和小数部分。双线性插值是采用可分离的线性插值将4个最近的像素值组合,如式(1)。
线性插值的结果与插值的顺序无关。先进行y方向的插值,然后进行x方向的插值,所得结果相同。将式(1)进行分解,则有
当输入分辨率有所变化而引起缩放因子变化时,FPGA内的数字逻辑能实时计算出式(2)中的系数xf和yf。而非仅计算几种固定缩放比例,从而提高了算法模块的利用率。
若以将摄像机1 024×576分辨率的图转化为1 366×768的图为例,则水平缩放因子sc_x和垂直缩放因子sc_y均为0.75。若将水平因子直接带入编写程序,则会报错。采用浮点数表示法,转换后得到的10位16进制数,计算出系数xf和yf均为h300。
在实际设计中,为避免运算过于复杂,把复杂的运算分成几个步骤,分别在不同的时钟周期完成。插值计算的逻辑结构模块如图6所示。
图6 插值计算模块的逻辑结构图
系统包含3种不同的时钟频率:原像素点频率clkin、输出像素点频率clkout和系统主时钟频率clksys。令系统主时钟频率为4倍的原像素点频率,则使用Verilog语言及ModelSim SE 10。1 a和Quartus II仿真环境进行编译,得到双线性插值计算模块的仿真波形。为程序书写方便,将采集的4个像素值标为a、b、c、d,经过插值模块后的输出像素值为p。从仿真波形可看出,完成了双线性插值计算模块的实现。
3 结束语
针对大屏幕特点,从拼接控制器入手,提出了一种基于FPGA实现的视频实时处理系统。主要采用双线性插值法,讨论了如何用FPGA实现,并进行逻辑结构的优化,提高系统性能,并对双线性进行仿真,验证了算法在拼接显示系统中的可行性。围绕拼接控制器这个应用方向,还有更多的问题需要进行研究,例如画面自由叠加与漫游,单屏分割,自动图像识别重建等。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议