基于Xilinx Virtex-4 FPGA开发平台验证并完成LCD大屏幕拼接系统的设计

光电显示

1046人已加入

描述

随着各种图形、图像内容质量的不断提升以及系统运行实时显示的需要,金融、通信、交通、能源、安全、军事等越来越多的行业需要建立能够实时整合多路信号输入的超大屏幕显示系统。而数字技术的飞速发展,也使人们对大尺寸、多画面、真色彩、高画质、高分辨率的计算机图形、图文、数据与各类视频图像显示效果的需求得以满足。其中,以视频信息的要求最为强烈,人们不仅希望视频显示尺寸的越来越大,而且视频显示质量也要求能达到多画面、真色彩、高画质、高分辨率。

在大屏幕拼接系统中,拼接控制器的优劣直接决定着整个大屏幕显示系统效果的好与坏,目前,拼接控制器的实现方法共三种:第一代PCI插卡式的工作原理是通过工控机,利用多路PCI计算机主板,一部分PCI插槽插入视频采集卡,另外一部分PCI插槽插入视频输出卡,输入和输出中间由CPU来构建一个运算和处理中心,这时就组建成了一台工控式控制器。他的图形处理原理是通过CPU运算后将母信号分割成M*N个子视频信号后,再把每一个子信号都进行放大处理分别传送给拼接幕墙上的各个对应单元,显示单元将处理器传送来的信号实现在大屏幕的每个显示单元上,而分辨率和处理速度由计算机CPU及对应的PCI卡决定,故性能有限。第二代嵌入式拼接器也称“内拼式拼接器”他是基于液晶屏信号驱动板上增加的运算分割技术,其工作原理先将一个完整的母画面传送至信号运算处理器,运算处理器以ID地址编码器的方式开始锁定各自在母画面中的位置,以二进制BCD码顺序排列开始运算切割成多个子画面,处理器将各自运算好的数据直接输送给液晶驱动板,驱动板将色彩、亮度、对比度等参数调校后以LVDS方式传送至LCDIC成像器形成图像,内拼式拼接器只是单元内部显示像素的处理,结果是合成显示图像,不能解决信号高分辨率拼接和任意位置任意大小多窗口信号处理。第三代拼接系统中控制器采用纯硬件处理器FPGA阵列式处理构架,全硬件设计,无CPU和操作系统。控制器集超宽带视频信号采集、实时高分辨率数字图像处理、二维高阶数字滤波等高端图像处理技术于一身,具有强大的处理能力。控制器采用多总线并行处理机制,能从根本上保证对所有输入视频进行全实时处理,图像没有延迟,无丢桢现象,由于从结构上就超出了前两代的机器的设计理念,采用纯硬件的处理器运算技术,所以启动时间快,工作非常稳定。

数字化系统产品中,直接采用超大规模、超高速的现场可编程门阵列(FPGA,Field Programmable Gate Array),基于其高集成度、高速、可编程等优点,来实现硬件单片集成,已成为必然趋势。FPGA丰富的内部资源及高速为实时视频处理提供解决途径。

因此,本项目设计基于FPGA的数字视频处理算法, 实现对DVI视频信号进行解码,实时对数字视频的分割、 视频图像的插值放大,并同时将处理结果经DVI编码送到LCD显示,完成大屏幕拼接系统的设计。

一、1、系统概述

1.1系统结构

整个LCD屏幕显示拼接系统包含DVI解码模块、视频分割模块、SRAM、视频延展式线性插值放大模块、视频输出控制模块、DVI编码模块等。FPGA 内部逻辑实现将输入数字视频分成四路并行的子视频像素流,经各自独立的视频处理通道进行实时插值放大处理。经过视频编码电路输出到由 4个LCD显示屏组成的拼接屏幕上进行视频显示。 应用系统硬件平台的系统结构设计方案, 如图1所示。

lcd

图1 LCD屏幕拼接系统结构图

1.2系统原理

LCD屏幕拼接显示系统的工作原理, 系统接收一路DVI数字视频信号, 进行处理前需要先对最小变换差分信号(T.M.D.S.)形式的视频信号进行解码(decode)处理, 得到 FPGA 可以处理的像素流信息,经过视频分割,分割后的子视频与产生的参考视频流复合,使各个子视频的行场同步控制信号一致,各个子视频经过延展式线性插值放大处理, 得到最小变换差分信号的数字视频信号, 经 DVI接口输出到拼接 LCD 显示器进行显示。

2、算法实现的功能

算法的主要功能如下: FPGA数字视频处理电路是对视频数据进行数字处理的逻辑, 实现实时视频的预处理、 图像的分割、 视频图像插值放大等处理, 并通过视频输出模块控制四路并行的子视频同步地显示到 4个 LCD 拼接屏幕上。 具有以下主要功能:

(1)通过内部逻辑的视频输入模块(VGA Input)接收从DVI解码电路送出的视频图像数据, 包括像素数据(R、 G、 B分量)和视频同步控制信号(HSYNC、 VSYNC)等, 转换成预处理的视频像素流格式。

(2)视频分割模块实现原始单帧视频图像的分割剪裁, 得到四路完整格式的子视频像素流 (包含视频像素数据和视频同步控制数据), 并控制4个子视频显示的相互时序关系; 各个拼接屏幕的像素点的扫描规律相同, 均为逐行扫描形式, 并且子视频像素点显示同步, 即行同步和场同步。

(3)视频插值模块实现对视频分割所得的子视频进行2×2倍地插值放大处理, 该模块采用并行处理方式, 四路子视频分别经过各自独立的视频处理通道;插值放大算法是基于在FPGA进行延展式线性(extended linear interpolation)待插值像素点的数据计算, 配合视频生成模块(VGASyncGen)产生的参考视频流, 并通过共享的行缓冲存储器实现插值像素数据的分时读写切换来实现的。所得到视频像素流包含完整视频像素流格式,并且符合较高分辨率的视频显示要求。

像素流,串行像素流读取一帧像素的时间与输入视频像素流写入一帧像素的时间是相等的。像素流融合操作对输入的四路视频, 通过设置控制参数(control), 在不同时钟下选取带有偏移量的视频像素点。

lcd

图 3 视频流的控制逻辑图

3.2视频插值放大算法的FPGA实现

视频插值放大模块包含了坐标计算单元、加权系数产生器、垂直插值单元、虚拟像素缓存器与水平插值单元,如图4所示:

lcd

图3 插值放大模块的框图  3.2.1坐标计算单元

延展式线性插值要求源图像插值点周围有16个像素点,然后根据并行计算单元获得的插值点的坐标。由插值点的坐标可以决定临近的16个行和列点的坐标,接着就可以从memory中获得16个点的像素并执行线性插值。

线性插值的原理可分解为垂直与水平插值,例如在图4中,在水平方向上的像素点,是第一个虚拟像素的地址,能使从虚拟像素缓存器正确读取虚拟像素点与进行水平方向的插值。这样的操作不需要电路都同时在执行,因此只需要一行或列的地址计算电路。

lcd

图3 水平方向与垂直方向的插值

对于列或行地址计算器,输入信号决定水平与垂直方向的坐标。坐标数据包含10位的实数以及10位的小数部分。坐标数据的第9位是小数部分最重要的一位,它决定着小数部分是否大于0.5。同时由第9位控制的多路选择器控制用于输出正确的内存地址。如果输入的是列信号,那么行地址 lcdlcdlcdlcd和垂直间隔 lcd可由公式(1)到(3)得到,同理,列地址 lcdlcdlcdlcd和水平间隔 lcd能由公式(1),(2)和(4)得到。

lcd

(1)

lcd(2)

lcd(3)

lcd(4)

3.2.2 加权系数产生单元

在设计的框图中,水平加权系数与垂直加权系数的计算并不是同时生产尽管它们都由公式(5)和(6)决定。因此,加权系数产生器产生水平及垂直加权系数,当控制信号为水平信号时,最终的输出为 lcdlcdlcdlcd

,相反的,则输出 lcdlcdlcdlcd

。在延展式线性插值最大的计算量是加权系数的计算,而最复杂的运算却由最简单的两个加法器和两个减法器构成。

lcd

(5)

lcd

(6)

3.2.3 水平与垂直插值单元

根据公式(7)和(8),水平与垂直插值有同样的运算,但是它们是并行执行以提高整体的速度。水平与垂直插值的逻辑结构由图5所示,乘法器与加法器可以有效的完成输入的数据的卷积与拼配相应的4个加权系数来产生插值的电路。

lcd(7)

lcd(8)

lcd

水平插值单元 垂直插值单元

图5水平与垂直插值单元逻辑框图

3.2.4虚拟像素缓存器

虚拟像素点是由垂直插值产生并存于虚拟像素缓存器中,在水平插值的过程被调用。一般来说,缩放比例会决定这缓存器输入与输出数据的速率,当放大的时候,每个虚拟像素会被重新用于水平插值以致于垂直插入器数据速率会比水平的要低,相反的,在缩小的时候,虚拟像素由垂直插值过程产生的会比水平插值过程所需求的要多。为了调节不同的数据速率,设计虚拟像素缓存器如图6所示,其中包含1个计数器,8个寄存器和缓存输出控制电路。在插值放大的过程中,缓存器有时会延缓垂直插值,虚拟像素数量比水平插值所需求的确定数量要多的时候,就会停止虚拟像素的产生。计数器则是记录着最新产生的虚拟像素点的列地址并存于reg7.比较器和选择器对比计数器和 lcd的值来决定缓存器的输出。

lcd

图6 虚拟像素缓存器

4、验证

算法的验证是基于Xilinx Virtex-4 FPGA开发平台,对视频分割模块及延展式线性插值模块分别进行仿真,验证算法的正确性,再经反复的优化及测试,最后下载到开发板,验证输出的视频显示效果是否能够满足视频放大的应用需求,完成LCD大屏幕拼接系统的设计。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分