首页 » 互联网 » 「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子

「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子

萌界大人物 2025-01-20 09:10:23 0

扫一扫用手机浏览

文章目录 [+]

通过SOPC进行视频旗子暗记处理是目前研究的热点。
针对此类系统的显示模块,提出一种基于FPGA的HDMI多模式显示模块设计方案。
首先对HDMI的驱动时序进行剖析,设计驱动旗子暗记天生电路,然后根据配置参数,将多路视频进行多级ALPHA稠浊,实现了通过HDMI输出与显示多路视频,并且每路视频的位置与透明度可设置。
为担保视频的实时性,对较为繁芜的打算过程采取流水线设计方法提升速率。
模块以Verilog HDL的形式进行编写,具有较强的通用性。

中文引用格式:向梓豪,陆安江. 基于FPGA的HDMI多模式显示模块设计[J].电子技能运用,2017,43(12):48-51.

「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子 「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子 互联网

英文引用格式:Xiang Zihao,Lu Anjiang. Design of HDMI multi mode display module based on FPGA[J].Application of Electronic Technique,2017,43(12):48-51.

「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子 「学术论文」基于FPGA的HDMI多模式显示模块设计_暗记_旗子 互联网
(图片来自网络侵删)

0 弁言

随着社会信息化程度的不断提高,人们对视频处理的哀求越来越高,视频处理系统处理的数据量也越来越大。
在嵌入式视频处理系统中,目前主流的方案紧张有3种:基于ARM、基于DSP和基于FPGA。
个中FPGA不同于其他两种芯片,它是一种半定制电路,拥有大量逻辑单元,通过配置这些逻辑单元,可以构建相应的电路以实现所需的功能。
正由于其具有基于硬件加速的特点,FPGA被广泛运用于高速视频处理系统。
对付这类视频处理系统,构建可编程片上系统(System-on-a-Programmable-Chip,SOPC)是目前的主流方案。
SOPC是一种片上系统,即在一块芯片上实现全体系统的逻辑功能[1],且具有设计便捷、配置灵巧、可在线调试、系统可复用等特点。
在视频处理系统的接口中,HDMI是最新的高清晰度多媒体接口[2],具有高带宽、小体积、高智能、内容保护等优点,被广泛运用于高清显示器、高清电视之中[3]。

针对基于SOPC的视频处理系统,本文提出一种基于FPGA的HDMI多模式显示模块设计方法,可为SOPC供应一种通用的HDMI多模式显示组件,并可适用于多种HDMI发送器以及不同参数的视频。
通过该模块,可以实现多路视频的显示,并可配置每路视频的位置与透明度,为视频处理系统实现多模式的显示供应理解决方案。

1 总体方案设计

为了驱动HDMI发送芯片,以及通过ALPHA稠浊实现多模式显示,须要根据HDMI的事情时序设计相应的驱动电路,而且还需根据指定的坐标信息与透明度参数,对各通道视频的数据进行多级ALPHA稠浊打算,末了将驱动旗子暗记以及视频数据输出。
根据以上功能需求,将全体模块分为两个分模块,即HDMI驱动模块和ALPHA稠浊模块。
系统框图如图1所示。

在HDMI驱动模块中,根据HDMI接口的事情时序,设计两个计数器分别对时钟旗子暗记与行进行计数,在相应的时钟周期天生行同步旗子暗记、场同步旗子暗记和数据总线使能旗子暗记[4]。
设计一个坐标指示电路,通过两个计数器对当前输出的有效视频数据的行和列进行计数,并输出计数值,此计数值用于在相应坐标读取视频数据与ALPHA稠浊打算。

例化4个ALPHA稠浊模块(数量可根据需求设定),最多可以使4路视频进行多模式显示。
在ALPHA稠浊模块中,根据坐标指示电路天生的计数值,在指定的坐标区域发出数据读取信号对缓存的视频数据进行读取,并且在指定的区域天生相应alpha值(透明度)。
设计一个ALPHA稠浊打算电路,其卖力对前景视频数据与后景视频数据进行ALPHA稠浊。
ALPHA稠浊打算电路采取流水线设计方法,将全体打算过程分为多级进行ALPHA稠浊打算,每一级在一个时钟周期内的打算结果保存在寄存器中,供应给下一级不才个时钟周期进行打算。
ALPHA稠浊打算会导致数据输出延迟,因此再次例化一个坐标指示电路,将同步旗子暗记、场同步旗子暗记和数据总线使能旗子暗记都延迟相应周期后输入该电路,以产生新的同步的行和列的计数值供下一级的ALPHA稠浊模块利用。
本实例供应4通道分割显示与PIP(双通道的画中画)显示两种显示模式用于验证。
当配置的显示模式为4通道分割显示时,第一通道视频作为前景首先和预设的底色背景进行ALPHA稠浊,个中重叠部分背景的透明度为0(完备不显示),前景的透明度为1(完备显示),再将稠浊后的视频数据作为背景与第二通道的视频进行ALPHA稠浊,按此方案依次完成4个通道的ALPHA稠浊,每个通道的位置互不重叠。
而进行PIP显示时第一通道的视频作为背景,第二通道的视频作为前景显示在显示器中央位置,重叠部分背景的透明度为0,前景的透明度为1。

2 HDMI驱动模块设计

HDMI驱动模块紧张卖力根据不同的配置信息输出相应的驱动旗子暗记,使视频数据能够通过HDMI发送器正常输出。

2.1 HDMI发送器事情办法

视频数据通过HDMI进行传输时,HDMI吸收/发送芯片通过最小化传输差分旗子暗记(TMDS)的编码技能将其编码为数据包,虽然FPGA支持多种标准LVDS(低电压差分旗子暗记),但其不能完备兼容TMDS(过渡调制差分旗子暗记),因此须要通过HDMI吸收/发送芯片来实现HDMI接口功能。
FPGA与此类HDMI芯片的传输常日通过一组并行总线实现, 包含了数据总线、IIC总线、驱动旗子暗记。
个中数据总线用于传输视频数据,IIC总线用于FPGA配置HDMI发送芯片,驱动旗子暗记中的HDMI_CLK为同步时钟旗子暗记,DE_HDMI为数据总线使能旗子暗记,HSY_HDMI为行同步旗子暗记,VSY_HDMI为场同步旗子暗记。
本模块正常事情须要将HDMI芯片配置为RGB输出。
HDMI接口传输RGB旗子暗记的事情时序与VGA接口的事情时序类似,但无需将数字旗子暗记转换为仿照旗子暗记。
DE_HDMI、HSY_HDMI、VSY_HDMI以固定的韶光关系输出,HDMI_CLK则作为基定时钟与这些旗子暗记同步。

在一场的韶光段,根据视频刷新频率以及分辨率的不同,处于同步段时行同步旗子暗记首先保持一定周期的高电平,之后置低电平并在间隔相应的周期后输出视频数据,这个间隙为显示后沿。
视频数据输出完成后间隔相应的周期后开始下一行的传输,这个间隙为显示前沿。
场同步旗子暗记的时序依然是首先保持一定周期的高电平,之后置低电平,间隔相应的行韶光(传输一行数据所需的时钟周期)后输出一场中所有的行,所有行的视频数据传输完成后间隔相应的行韶光后开始下一行的传输。
其时序分段如图2所示。

个中VSY_HDMI的时序分段与HSY_HDMI相同。

2.2 Verilog HDL代码设计

在FPGA与HDMI发送器之间,传输视频数据的办法为随同步时钟逐个传送像素数据,对付每场数据,顺序为从第一行开始从左至右传送,传送完毕后开始传送第二行,依次传送直至末了一行数据传送完毕。
因此在代码中定义两个计数值,分别为x轴计数值x_cnt与y轴计数值y_cnt,x_cnt在每个时钟周期递增1,计数完一行清零;y_cnt则是x_cnt每计数完一行递增1,一场的所有行全部计数完清零。
计数器Verilog HDL代码如下:

always @(posedge clk or negedge rst_n)

if(!rst_n) x_cnt<= 12′d0;

else if(x_cnt >= HDMI_HTT) x_cnt<= 12′d0;

else x_cnt <= xcnt+1′b1;

always @(posedge clk or negedge rst_n)

if(!rst_n) y_cnt <= 12′d0;

else if(x_cnt== HDMI_HTT) begin

if(y_cnt >= HDMI_VTT) y_cnt<= 12′d0;

else y_cnt <= y_cnt +1′b1;

个中HDMI_HTT为传输一行所需的时钟周期的个数,HDMI_VTT为传输一场中所有行的数量。
根据计数值,在相应的韶光拉高行同步旗子暗记和场同步旗子暗记,其他韶光置低电平,其Verilog HDL代码如下:

always @(posedge clk or negedge rst_n)

if(!rst_n) HSY_HDMI <= 1′b0;

else if(xcnt < HDMI_HST ) HSY_HDMI <= 1′b1;

else hdmi_hsy <= 1′b0;

always @(posedge clk or negedge rst_n)

if(!rst_n) VSY_HDMI <= 1′b0;

else if(ycnt < HDMI_VST) VSY_HDMI <= 1′b1;

elseVSY_HDMI<= 1′b0;

个中HDMI_HST为行同步段占用的时钟周期的个数,HDMI_VST为场同步段所有行的数量。
在属于数据段的计数区域,数据总线使能旗子暗记置高电平,此韶光段传送的是有效视频数据,其Verilog HDL代码如下:

always @(posedge clk or negedge rst_n)

if(!rst_n) DE_HDMI <= 1′b0;

else if((xcnt >= (HDMI_HST+ HDMI_HBP)) && (xcnt < (HDMI_HST+ HDMI_HBP+ HDMI_HVT))&& (ycnt >= (HDMI_VST+HDMI_VBP)) && (ycnt < (HDMI_VST+HDMI_VBP+ HDMI_VVT)))

DE_HDMI <= 1′b1;

else DE_HDMI <= 1′b0;

个中HDMI_HBP为每行数据段占用的时钟周期的个数,HDMI_VBP为每行数据段所有行的数量。
HDMI_HTT、HDMI_VTT、HDMI_HST、HDMI_VST、HDMI_HBP、HDMI_VBP等参数旗子暗记接入模块的输入端,可根据视频参数以及HDMI发送器型号输入相应的配置信息,具有较广泛的适用性。

3 ALPHA稠浊模块设计

本模块根据配置信息(输入的视频坐标信息、alpha值),使最多4路视频数据在指定坐标范围内显示,并按照设定的透明度进行ALPHA稠浊。
首先将HDMI驱动模块天生的DE_HDMI、HSY_HDMI、VSY_HDMI等同步旗子暗记连接到坐标指示电路的输入端,此电路中定义两组计数器x_cnt与y_cnt,分别对输出的有效视频在显示区域内的x坐标与y坐标进行计数,从每行起始位置,在输出有效视频数据的每个时钟周期x_cnt递增1,每行有效视频数据计数完成后清零,y_cnt则从有效视频的第一行开始,在每行有效视频传输完成后递增1,场同步后清零。
利用坐标指示电路天生有效视频的坐标旗子暗记,即可根据设定的视频位置信息在相应的时候发出读要求旗子暗记,读取有效视频数据,同时在相应的时候读取alpha值。

ALPHA稠浊打算电路卖力将背景视频数据与前景视频数据根据当前的alpha值进行ALPHA稠浊。
本模块通过多级流水线设计ALPHA稠浊打算电路,实现了ALPHA稠浊打算的硬件加速,极大地提升了打算速率。

对付RGB编码的视频数据,其进行ALPHA稠浊的公式如式1所示(该公式也适用于YUV编码的视频数据)。

个中R1、G1、B1对应稠浊后的视频数据的R、G、B分量,Rf、Gf、Bf对应前景数据的R、G、B分量,Rb、Gb、Bb对应背景数据的R、G、B分量。
在流水线设计中,将组合逻辑分成三级,第一级对扩大后的数据通过乘法器进行乘法累加运算,第二级进行加法运算,第三级进行缩小运算,该模块框图如图3所示。

由于FPGA设计属于数字电路设计,电路层面上无法直接打算小数点。
故采取将打算数据先扩大,打算完成后再缩小的方法。
详细方法为先将公式旁边两端分别扩大256倍,打算完成后再缩小256倍,将扩大后的公式分为三步打算。

第一步:进行乘法操作,如式(2)、式(3)所示。

第二步:进行加法操作,将第一级打算出的前景数据中间值R11、G11、B11与背景数据中间值R12、G12、B12分别相加,如式4所示。

第三步:进行缩小操作,分别对第二步得到的中间值右移8位,为担保数据的精确性,对得到的数据进行溢出处理。
代码如下:

assign o_data_R=data_R_tmp[8] ? 8′hff : data_R_tmp[7 : 0];

assign o_data_G=data_G_tmp[8] ? 8′hff : data_G_tmp[7 : 0];

assign o_data_B=data_B_tmp[8] ? 8′hff : data_B_tmp[7 : 0];

个中o_data_R、o_data_G、o_data_B为完成ALPHA稠浊和溢出处理后的视频的R分量、G分量、B分量,data_R_tmp、data_G_tmp、data_B_tmp为完成ALPHA稠浊但未经溢出处理的视频的R分量、G分量、B分量。
溢出处理为判断经由流水线输出的9 bit视频数据的最高位是否为0,不为0输出8′hff,否则输出前8 bit数据。

4 验证结果

将该模块作为一个基于SOPC的四通道视频处理系统的显示模块,编译后配置到FPGA中并在开拓板上运行,HDMI发送器为ADV7513,加载的配置信息为4通道分割显示,并将输出的视频数据直接在显示器上显示,其实际效果如图4所示。

由于实验条件所限,只有一起旗子暗记源,因此将该旗子暗记源分别连接4个通道,可以看出每个通道的视频都能完备显示。
将配置信息切换为PIP显示,重叠部分背景透明度为0,窗口为1,其实际效果如图5所示。

可以看出重叠部分窗口能完备显示,背景完备不显示。
全体系统事情正常,模块实现了相应功能。

5 结论

本文设计了一个基于FPGA的HDMI多模式显示模块,该模块能够驱动HDMI输出显示多路视频,并且可以配置每路视频的显示位置以及重叠部分的透明度。
通过设置驱动信息,模块可适用于多种型号HDMI的发送器以及不同参数的视频。
设计中通过流水线提升了处理速率,加强了显示的即时性。
因此在基于SOPC的视频处理系统中,可以作为一种通用、高速、多功能的HDMI输出显示组件,具有较好的运用前景。

参考文献

[1] 刘紫燕,冯亮,祁佳.一种基于FPGA的实时视频跟踪系统硬件平台设计[J].传感器与微系统,2014,33(7):98-102.

[2] 李煌.基于FPGA的HDMI显示系统的设计与实现[D].上海:华东师范大学,2008.

[3] 梁义,涛唐垚,史卫亚,等.基于Cyclone IV的Camera Link-HDMI高清视频转换器设计[J].电子技能运用,2013,39(5):12-14.

[4] 陈志杰.高清稠浊视频矩阵的研究及FPGA实现[D].泉州:华侨大学,2014.

作者信息:

向梓豪,陆安江

(贵州大学 大数据与信息工程学院,贵州 贵阳550025)

标签:

相关文章

PCB样板焊接你是不是也这样?_元件_引脚

最近新产品刚打样回来,由于韶光紧,任务重,以是每个环节的韶光安排就显得特殊主要。样板常日只须要准备一两片,以是一样平常选择手工焊接...

互联网 2025-01-20 阅读0 评论0