一种基于FPGA的桌面视讯传输系统的制作方法

文档序号:11961082阅读:234来源:国知局
一种基于FPGA的桌面视讯传输系统的制作方法与工艺
本发明涉及视频数据传输
技术领域
,具体是一种基于FPGA的桌面视讯传输系统。
背景技术
:随着视频会议系统的发展,目前会议桌上面的电子设备越来越现代化和智能化。桌面语音传输系统、发言系统、翻译系统、视频跟踪系统、语音跟踪系统、无纸化办公系统等等。对于桌面视频传输系统而言,目前市面上大部分产品是基于视频矩阵的星型架构或无线投屏技术。视频矩阵星型架构存在天然的缺陷,所有视频源如果要上投影或电视必须先经过矩阵。这样视频矩阵的布局和视频走线非常受限,其传输距离也比较短。无线投屏技术的视频传输延时、图像有损压缩算法、传输距离以及对会议环境干扰的要求等等,其应用只能满足一部分对视频质量要求不高的客户,但其在正式的大型会场难以满足用户要求。技术实现要素:本发明的目的在于提供一种布线简单方便、传输延时低、无损压缩图像传输质量高的基于FPGA的桌面视讯传输系统,以解决上述
背景技术
中提出的问题。为实现上述目的,本发明提供如下技术方案:一种基于FPGA的桌面视讯传输系统,由电源部分、用户接口子卡、主控处理子卡和底板子卡四部分组成,电源部分分别连接用户接口子卡、主控处理子卡和底板子卡,用户接口子卡、主控处理子卡和底板子卡通过FPC排线进行互联;采用FPGA来进行视频的分辨率转换和时钟去抖,采用FPGA来进行视频的分辨率转换的逻辑系统主要由音/视频矩阵模块、DDR2读写控制模块、IIC接收模块、PLL可重配置模块、输出显示模块、视频缩放模块组成。作为本发明进一步的方案:电源部分为系统提供5V直流电,电源部分包括AC220V转DC5V模块及其接口电路。作为本发明进一步的方案:用户接口子卡包括模拟音频输入接口、VGA视频输入接口、本地HDMI输入接口、从端DVI输入接口、音视频处理单元FPGA电路和网络输入/输出及其对应接口电路。作为本发明进一步的方案:主控处理子卡包括主控处理单元MCU电路。作为本发明进一步的方案:底板子卡包括HDMI转换电路及HDBT输入/输出电路。作为本发明进一步的方案:IIC接收模块完成CPU对FPGA的配置工作;输出显示模块完成显示功能;音/视频矩阵模块完成音视频的选择输出。作为本发明进一步的方案:DDR2读写控制模块完成对DDR2的读写仲裁控制。作为本发明进一步的方案:PLL可重配置模块由用户控制逻辑模块、锁相环重配置模块、锁相环时钟输出模块三部分组成;完成FPGA输出视频时钟的配置功能。作为本发明进一步的方案:视频缩放模块采用的算法是双线性插值,完成视频分辨率的缩放。作为本发明进一步的方案:采用FPGA来进行时钟去抖的过程是采用FPGA对视频数据进行帧缓存,同时FPGA通过PLL可重配置模块产生时钟给DA输出。与现有技术相比,本发明的有益效果是:本发明系统采用FPGA来进行视频的分辨率转换和时钟去抖设计,减少延时及保证音频流稳定传输,通过网线手拉手进行音视频的级联传输,其工程布局和布线简单方便,传输延时低,无损压缩图像传输质量高,相邻两点之间的传输距离远,可以支持到100M,可以满足所有中大型会场的实际需求。附图说明图1是本发明系统应用环境图。图2是本发明系统电路元件连接图。图3是本发明系统结构简图。图4是本发明系统逻辑设计框图。图5是本发明系统时钟图。图6是双线性插值计算过程图。图7是视频缩放模块实现流程图。图8是pll_reconfig_top模块模拟点图结构图。图9是PLL扫描链路图。图10是PLL扫描时序图。图11是QuartusII工具生成的模块连接图。图12是用户锁相环重配置逻辑控制模块(user_reconfig_logic)状态图。具体实施方式下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1请参阅图1-图12,本发明实施例中,一种基于FPGA的桌面视讯传输系统,由电源部分、用户接口子卡、主控处理子卡和底板子卡四部分组成,电源部分分别连接用户接口子卡、主控处理子卡和底板子卡,用户接口子卡、主控处理子卡和底板子卡通过FPC排线进行互联。如图3所示,其中:1)电源部分,为系统提供5V直流电,包括AC220V转DC5V模块,及其接口电路。2)用户接口子卡,包括:模拟音频输入接口、VGA视频输入接口、本地HDMI输入接口、从端DVI输入接口、音视频处理单元FPGA电路和网络输入/输出及其对应接口电路。3)主控处理子卡,包括主控处理单元MCU电路。4)底板子卡,包括HDMI转换电路及HDBT输入/输出电路。具体的电路连接关系如图2所示。MCUSTM32Fxxx芯片分别连接VS100TX发送器、FPGAEP4CE30F23C8芯片、ADV7511芯片、PHY芯片、VS100RX芯片,PHY芯片的另一端连接IP175D交换机芯片,VS100TX发送器还分别连接IP175D交换机芯片、ADV7511芯片,VS100RX芯片还分别连接IP175D交换机芯片、ADV7611芯片,FPGAEP4CE30F23C8芯片还分别连接ADV7511芯片、ADV7611芯片、ADV7604芯片、PCM1808芯片。本发明系统的关键技术在于不同用户接入不同的视频分辨率时,输出到电视或投影的分辨率必须满屏显示,并且系统延时在100Ms以内稳定的传输音视频流。为了减少延时及保证音频流稳定传输,该系统采用FPGA来进行视频的分辨率转换和时钟去抖设计,由于FPGA是基于硬件电路的处理方式,其每个处理盒子的传输延时可以控制在1帧以内,按照视频帧率60Hz来算,每帧的延时是16.66Ms,为了保证系统延时控制在100Ms以内,理论上系统最多可以级联6-7级。但是实际大型会议室的应用中6-7级的级联肯定是不够的,为了增加级联级数,MCU可以根据需要来配置视频流是否需要通过FPGA重新对数据缓存后传输。实验表明,视频流在没有通过FPGA缓存后传输可以级联4级后稳定输出,而且系统几乎是零延时。这样整个系统的级联数就可以达到24-28级,几乎可以满足所有中大型会场的实际需求。本发明逻辑系统设计框图,如图4所示。逻辑系统主要由音/视频矩阵模块、视频缩放模块、DDR2读写控制模块、IIC接收模块、PLL可重配置模块、输出显示模块组成。各个模块的功能如下述。1)IIC接收模块,即iic_slv从模式模块,主要完成CPU对FPGA的配置工作。2)DDR2读写控制模块,即mem_ctrl.v主要完成对DDR2的读写仲裁控制。3)PLL可重配置模块,即pll_reconfig_top.v主要完成FPGA输出视频时钟的配置功能。4)输出显示模块,即vout_display_pro.v主要完成显示功能。5)音/视频矩阵模块,即Video_4x1、Video_5x2、Audio_4x2完成音视频的选择输出。6)视频缩放模块完成视频分辨率的缩放。当音视频不需要缓存时,CPU配置FPGA直通到DA芯片,此时的数据传输延时几乎为零;当音视频需要去抖或进行分辨率变换时,时钟和数据必须经过DDR2缓存进行相应变换,但同时也会带来延时。所以系统在配置逻辑时需要综合考虑时钟抖动和系统延时,根据实际应用场景配置一个合适的系统。本发明系统时钟框图如图5所示。各路音视频随路时钟经过AD芯片转换成并行时钟和数据接入到FPGA,由于音视频数据时钟都是从数据中恢复出来的,所以时钟的抗抖能力和质量会比较差。经过几级级联后,恢复出来的时钟性能会逐步变差,为了保证时钟和数据的稳定传输,中间必须进行去抖动处理。本发明系统中的去抖动处理采用FPGA对视频数据进行帧缓存,同时FPGA通过可配置锁相环,也就是PLL可重配置模块产生时钟给DA输出。逻辑系统实现方案:该逻辑实现方案中的关键模块是DDR2读写控制模块、视频缩放模块和PLL可重配置模块。当用户接入的分辨率和输出分辨率不一致时,需要进行分辨率的缩放设计。同时,如果用户需要改变输出分辨率时,还需要重新配置PLL的输出时钟。视频缩放模块设计:主要是进行视频分辨率的变换,采用的算法是双线性插值。双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。假设源图像大小为mxn,目标图像为axb。那么两幅图像的边长比分别为:m/a和n/b。注意,通常这个比例不是整数,编程存储的时候要用浮点型。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为(i*m/a,j*n/b)。显然,这个对应坐标一般来说不是整数,而非整数的坐标是无法在图像这种离散数据上使用的。双线性插值通过寻找距离这个对应坐标最近的四个像素点,来计算该点的值(灰度值或者RGB值)。若图像为灰度图像,那么(i,j)点的灰度值的数学计算模型是:f(x,y)=b1+b2x+b3y+b4xy其中b1,b2,b3,b4是相关的系数。关于其的计算过程如下如下:如图6所示,已知Q12,Q22,Q11,Q21,但是要插值的点为P点,这就要用双线性插值了,首先在x轴方向上,对R1和R2两个点进行插值,这个很简单,然后根据R1和R2对P点进行插值,这就是所谓的双线性插值。双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。假如我们想得到未知函数f在点P=(x,y)的值,假设我们已知函数f在Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1)及Q22=(x2,y2)四个点的值。首先在x方向进行线性插值,得到然后在y方向进行线性插值,得到这样就得到所要的结果f(x,y),如果选择一个坐标系统使得f的四个已知点坐标分别为(0,0)、(0,1)、(1,0)和(1,1),那么插值公式就可以化简为f(x,y)≈f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy.或者用矩阵运算表示为这种插值方法的结果通常不是线性的,线性插值的结果与插值的顺序无关。首先进行y方向的插值,然后进行x方向的插值,所得到的结果是一样的。1)视频缩放模块视频缩放模块接口信号定义如表1所示。表1Scaler模块接口信号定义信号名方向位宽描述rst_nINPUT1芯片复位信号,低有效clkinINPUT1缩放时钟(一般取DDR2输出时钟)fifo_alemptyINPUT1输入FIFO几乎空信号rd_reqOUTPUT1Scaler缩放前读MEMORY请求信号yc_dinINPUT16从MEMORY请求的数据frame_flagINPUT1帧同步标识fifo_alfullINPUT1输出FIFO几乎满信号wr_reqINPUT1Scaler缩放后写FIFO请求信号yc_doutOUTPUT16缩放后写数据s_widthINPUT12缩放前视频显示宽度s_heightINPUT12缩放前视频显示高度t_widthINPUT12缩放后视频显示宽度t_heightINPUT12缩放后视频显示高度K_hINPUT16视频缩放宽度比例因子K_vINPUT16视频缩放高度比例因子视频缩放模块实现:系统接收到视频输入以后,根据帧同步、行同步等同步信号将有效数据写入行存中。行存有两个作用:隔离输入和输出的两个不同时钟域以及作为乒乓模块提高数据的吞吐能力。根据系统缩放比例的要求,视频缩放模块从行存中读出相关数据。如图7所示:当图像上变换时,需要对行存中的某些地址的数据重复读取;图像下变换时,某些数据不需要参加运算,因此被舍弃。重复读取或舍弃的控制信号由插值相位生成模块决定。读出数据后,在像素生成模块中,根据新生成像素对应每个相邻原始像素的权值,计算出新生成像素点的像素值。所有数据处理模块同步时钟均由同步控制模块产生,保证数据流的同步以及显示数据能以正确格式输出。笔记本通用分辨率列表如下:表2该方法在视频缩放倍数小于2的情况下效果较好;当缩放值大于2时,该算法在文字显示的细微部分有缺陷。从表2可以看出,该系统的缩放大小基本在2倍范围之内,不影响图像质量。实验效果也证明如此。2)PLL可重配置模块锁相环(PLL,PhaseLockLoop)主要作用是把内部/外部时钟的相位和频率同步于输入参考时钟。PLL一般由模拟电路所实现,其结构如图8所示。PLL工作原理:PLL采用一个相位频率检测器(PFD)把参考输入时钟的上升沿和反馈时钟对齐。当PFD检测到输入时钟和反馈时钟边沿对其时,锁相环就锁定了。压控振荡器(VCO)通过自振输出一个时钟,同时反馈给输入端的频率相位检测器(PFD),PFD根据比较输入时钟和反馈时钟的相位来判断VCO输出的快慢,同时输出上升(Pump-up)或下降(Pump-down)信号,决定VCO是否需要以更高或更低的频率工作。PFD的输出施加在电荷泵(CP)和环路滤波器(LF),产生控制电压设置VCO的频率。如果PFD产生上升信号,然后VCO就会增加。反之,下降信号会降低VCO的频率。PFD输出这些上升和下降信号给电荷泵(CP)。如果电荷泵收到上升信号,电流注入环路滤波器(ICP增大)。反之,如果收到下降信号,电流就会流出环路滤波器(ICP减小)。环路滤波器把这些上升和下降信号转换为电压,作为VCO的偏置电压。环路滤波器还消除了电荷泵的干扰,防止电压过冲,这样就会最小化VCO的抖动。环滤波器的电压决定了VCO操作的速度PLL可重配置模块,Altera公司的CycloneIV等系列的FPGA提供了PLL可重配置模块,从而可以实时地对PLL进行重新配置,使其适应新的工作要求。如图9-10。请执行下列步骤来重配置PLL计数器1)在移入scandata的第一位(D0)之前,至少将scanclkena信号置位一个scanclk周期。2)串行数据(scandata)在scanclk的第二个上升上沿被移入扫描链中。3)所有的144位全部扫描进扫描链中后,scanclkena信号被置低,以防止扫描链中位的意外移动。4)configupdate信号置位一个scanclk周期,以使用扫描链中的数据更新PLL计数器。5)scandone信号变高,表明正在对PLL进行重配置。下降沿表明PLL计数器已经使用新的设置进行更新了。6)如果修改了M、N,后缩放输出C计数器或者Icp、R、C设置,需要使用areset信号对PLL进行复位。7)可以重复步骤1到步骤5,对PLL进行任意次数的重配置。PLL可重配置模块,即pll_reconfig_top模块,该模块主要实现锁相环PLL输出时钟的动态配置,该模块主要由三部分组成,用户控制逻辑模块、锁相环重配置模块、锁相环时钟输出模块。表3pll_reconfig_top模块接口信号定义信号名方向位宽描述rst_nINPUT1芯片复位信号,低有效clkinINPUT1锁相环输入参考时钟27MHzclk0OUTPUT1锁相环输出视频时钟lockedOUTPUT1输出时钟锁定指示信号reconfig_clkINPUT1配置PLL参考时钟50MHzreconfig_enINPUT1重配置锁相环脉冲触发信号mifselINPUT8重配置锁相环MIF文件选择信号reconfig_doneINPUT1配置锁相环完成信号通过Altera的QuartusII软件可以生成一个可重配置的PLL,如图11右边ref_pll模块所示;另外,生成一个重配置模块,如图11中间的pll_reconfig模块,来对此PLL的具体参数进行实时配置。这两个用QuartusII工具生成的模块按照图11所示的方式进行连接,然后,图11左边所列的输入端口就可以提供给软件编程人员,由软件来实时地对其进行重配置。通过图12的状态机,逻辑成功实现了实时更新时钟MIF文件,并且得到了想要的时钟。通过仿真和板上FPGA调试,系统可以稳定级联传输单路高清视频信号,其相邻两点之间的传输距离可以达到100M,而且系统的传输延时在100Ms以内。目前该系统在会议系统特别是圆桌会议系统中得到了成功应用!很好的支撑了市场对新产品的需求。如图1所示,该桌面视讯系统主要应用于中大型会议场合,支持多个用户视频/音频设备接入,且支持视频/音频源之间进行无缝切换,该系统由多个用户接入终端及传输设备级联而成。所有用户终端之间都通道CAT5E线缆串联起来,最后到显示设备,如同手拉手一般。在中大型团体会议场合,会议发言者及视频/音频设备接入众多,该系统能确保各个设备接入更加方便,又便于会议管理。该系统中,面向使用者的接口是桌面多媒体插座,该插座支持HDMI/VGA视频输入,独立音频输入(3.5mm耳机插孔,其与HDMI音频不能同时使用),USB对外充电插座及AC220V交流供电插座。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1