基于fpga的视频图像切换系统的制作方法

文档序号:8384001阅读:581来源:国知局
基于fpga的视频图像切换系统的制作方法
【技术领域】
[0001]本发明涉及视频信号切换技术领域,尤其涉及一种基于FPGA的视频图像切换系统。
【背景技术】
[0002]现有技术的视频切换一般是通过专用芯片实现的,图像切换过程中会出现卡帧,即有明显的停顿感,不是无缝切换,而且使用需要支付不菲的软件版权费用或者许可费用,而且整合使用的开发实现过程复杂,成本高,会使设计变得复杂,从而影响系统稳定性,不便于在多种产品中统一使用,影响产品设计的一致性。

【发明内容】

[0003]本发明所要解决的技术问题是,提出一种基于FPGA的视频图像切换系统,提高视频切换速度。本发明是这样实现的:
[0004]一种基于FPGA的视频图像切换系统,包括FPGA芯片及与其连接的DDR3存储器;
[0005]所述FPGA芯片用于接收第一路视频数据流,并通过其内部缓存将所述第一路视频数据流按帧顺序写入所述DDR3存储器;以及通过所述内部缓存从所述DDR3存储器中按帧顺序读取所述第一路视频数据流并将其输出;
[0006]所述FPGA芯片还用于接收第二路视频数据流,并通过所述内部缓存将所述第二路视频数据流按帧顺序写入所述DDR3存储器;
[0007]当需要将输出由第一路视频切换至第二路视频时,所述FPGA芯片在从所述DDR3存储器中读取完所述第一路视频数据流的完整一帧图像数据后,通过所述内部缓存按帧顺序读取所述第二路视频数据流并将其输出。
[0008]进一步地,所述DDR3存储器包括若干第一存储区及第二存储区,所述FPGA芯片包括若干第一 FIFO缓存模块及第二 FIFO缓存模块;第一 FIFO缓存模块与第一存储区数量相等且一一对应,第二 FIFO缓存模块与第二存储区数量相等且一一对应;
[0009]所述FPGA芯片用于依次通过各第一 FIFO缓存模块将所述第一路视频数据流按帧顺序写入对应的第一存储区;以及依次通过各第一 FIFO缓存模块从对应的第一存储区按帧顺序读取所述第一路视频数据流并将其输出;
[0010]所述FPGA芯片还用于依次通过各第二 FIFO缓存模块将所述第二路视频数据流按帧顺序写入对应的第二存储区;
[0011]当需要将输出由第一路视频切换至第二路视频时,所述FPGA芯片在读取完所述第一路视频数据流的完整一帧图像数据后,依次通过各第二 FIFO缓存模块从对应的第二存储区按帧顺序读取所述第二路视频数据流并将其输出。
[0012]进一步地,所述FPGA芯片还包括位宽变换模块、路由模块及FIFO缓存选择模块;所述路由模块具有一路输入通道、若干第一输出通道及第二输出通道;第一输出通道与第一FIFO缓存模块数量相等且一一对应;第二输出通道与第二 FIFO缓存模块数量相等且——对应;
[0013]所述位宽变换模块用于在向所述DDR3存储器写入视频数据流时,将接收到的视频数据流的位宽转换为与所述DDR3存储器规格相适应的位宽;
[0014]所述路由模块用于在向所述DDR3存储器写入视频数据流时,通过所述输入通道从所述位宽变换模块接收所述第一路视频数据流,并依次通过各第一输出通道将所述第一路视频数据流按帧顺序发送到对应的第一 FIFO缓存模块;以及通过所述输入通道从所述位宽变换模块接收所述第二路视频数据流,并依次通过各第二输出通道将所述第二路视频数据流按帧顺序发送到对应的第二 FIFO缓存模块;
[0015]所述FIFO缓存选择模块用于在向所述DDR3存储器写入视频数据流时,当某第一FIFO缓存模块满时,将该第一 FIFO缓存模块中的第一路视频数据流写入所述DDR3存储器中与该第一 FIFO缓存模块对应的第一存储区中;以及当某第二 FIFO缓存模块满时,将该第二FIFO缓存模块中的第二路视频数据流写入所述DDR3存储器中与该第二 FIFO缓存模块对应的第二存储区中;
[0016]所述路由模块还用于在从所述DDR3存储器读取视频数据流时,通过所述输入通道从所述DDR3存储器接收所述第一路视频数据流,并依次通过各第一输出通道将所述第一路视频数据流按帧顺序发送到对应的第一 FIFO缓存模块;以及通过所述输入通道从所述DDR3存储器接收所述第二路视频数据流,并依次通过各第二输出通道将所述第二路视频数据流按帧顺序发送到对应的第二 FIFO缓存模块;
[0017]所述FIFO缓存选择模块还用于在从所述DDR3存储器读取视频数据流时,当某第一FIFO缓存模块满时,将该第一 FIFO缓存模块中的第一路视频数据流发送到所述位宽变换模块;以及当某第二 FIFO缓存模块满时,将该第二 FIFO缓存模块中的第二路视频数据流发送到所述位宽变换模块;
[0018]所述位宽变换模块还用于在从所述DDR3存储器中读取视频数据流时,将从所述FIFO缓存选择模块接收到的视频数据流的位宽转换为原始位宽。
[0019]进一步地,所述DDR3存储器具有8个存储区,所述8个存储区中包括4个第一存储区及4个第二存储区;所述FPGA芯片包括8个FIFO缓存模块,所述8个FIFO缓存模块中包括4个第一 FIFO缓存模块及4个第二 FIFO缓存模块。
[0020]与现有技术相比,本发明采用FPGA芯片通过其内部缓存将两路视频数据流按帧顺序存储在DDR3存储器中,并通过其内部缓存从中读取一路视频数据流用于输出。当需要将输出由第一路视频切换至第二路视频时,FPGA芯片在从DDR3存储器中读取完第一路视频数据流的完整一帧图像数据后,通过其内部缓存按帧顺序读取第二路视频数据流并将其输出。通过在FPGA芯片的内部缓存与DDR3存储器之间循环读写操作,摆脱了内存运行周期要求的限制,从而实现了图像的无缝切换,消除了视频图像切换时的视觉停顿感,提升了用户体验。
【附图说明】
[0021]图1:本发明基于FPGA的视频图像切换系统组成及工作原理示意图;
[0022]图2:上述视频图像切换系统中视频数据流存取走向示意图。
【具体实施方式】
[0023]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
[0024]本发明基于FPGA和DDR3存储技术,利用DDR3高速的数据存取能力,使用FPGA内部的DDR3控制器,优化存取访问地址,提高DDR3存储器2的访问效率,从而大大缩短图像切换所需的时间。
[0025]如图1所示,本发明基于FPGA的视频图像切换系统包括FPGA芯片I及与其连接的DDR3存储器2。其输出视频的基本过程为,FPGA芯片I从外部接收视频数据流,并通过其内部缓存将接收到的视频数据流按帧顺序写入DDR3存储器2。将视频数据流写入DDR3存储器2是用于缓存视频数据流,在输出视频时,FPGA芯片I再通过其内部缓存从DDR3存储器2按帧顺序读取视频数据流,并将其输出。
[0026]本发明涉及视频切换,即将输出由一路视频切换到另一路视频,因此涉及到两路视频数据流,为便于描述,将该两路视频数据流分别定义为第一路视频数据流及第二路视频数据流。基于两路视频数据流,该视频图像切换系统切换视频的基本原理说明如下:
[0027]FPGA芯片I接收第一路视频数据流,并通过其内部缓存将第一路视频数据流按帧顺序写入DDR3存储器2,输出第一路视频时,FPGA芯片I再通过其内部缓存从DDR3存储器2中按帧顺序读取第一路视频数据流并将其输出。当有第二路视频数据流切换过来时,FPGA芯片I还接收第二路视频数据流,并通过其内部缓存将第二路视频数据流也按帧顺序写入DDR3存储器2。当需要将输出由第一路视频切换至第二路视频时,FPGA芯片I在从DDR3存储器2中读取完第一路视频数据流的完整一帧图像数据后,继续通过其内部缓存按帧顺序读取第二路视频数据流并将其输出。通过在FPGA芯片I的内部缓存与DDR3存储器2之间循环读写操作,摆脱了内存运行周期要求的限制,从而实现了图像的无缝切换,消除了视频图像切换时的视觉停顿感,提升了用户体验。
[0028]如图2所示,DDR3存储器2包括若干存储区,在本发明中,由于DDR3存储器2既要存储第一路视频数据流,还要存储第二路视频数据流,为保证两路视频数据流不受干扰、独立存取,本发明将DDR3存储器2中的一部分存储区定义为第一存储区201,专用于存储第一路视频数据流,将其余部分存储区定义为第二存储区202,专用于存储第二路视频数据流。与此对应地,FPGA芯片I的内部缓存中也包括若干FIFO(First Input First Output,先进先出)缓存模块,将其中一部分FIFO缓存模块定义为第一 FIFO缓存模块103,将其余部分FIFO缓存模块定义为第二 FIFO缓存模块104,第一 FIFO缓存模块103与第一存储区201数量相等且一一对应,同时,第二 FIFO缓存模块104与第二存储区202数量相等且一一对应。这里对应的意思是指,任何一个第一 FIFO缓存模块103中缓存的视频数据流只能写入与该第一 FIFO缓存模块103对应的第一存储区201,任何一个第二 FIFO缓存模块104中缓存的视频数据流只能写入与该第二 FIFO缓存模块104对应的第二存储区202。
[0029]接收视频数据流时,FPGA芯片I依次通过各第一 FIFO缓存模块103将第一路视频数据流按帧顺序写入对应的第一存储区201 ;输出视频数据流时,FPGA芯片I依次通过各第一 FIFO缓存模块103从对应的第一存储区201按帧顺序读取第一路视频数据流并将其输出;
[0030]当有第二路视频数据流切换过来时,FPGA芯片I还依次通过各第二 FIFO缓存模块104将第二路视频数据流按帧顺序写入对应的第二存储区202 ;
[0031]当需要将输出由第一路视频切换至第二路视频时,FPGA芯片I在读取完第一路视频数据流的完整一帧图像数据后,依次通过各第二 FIFO缓存模块104从对应的第二存储区202按帧顺序读取第二路视频数据流并将其输出。
[0032]FPGA芯片I还包括位宽变换模块101、路由模块102及第二 FIFO缓存模块104。其中,路由模块102具有一路输入通道、若干第一输出通道及第二输出通道,第一输出通道与第一 FIFO缓存模块103数量相等且一一对应,第二输出通道与第二 FIFO缓存模块104数量相等且一一对应。这里对应的意思是指,任何一个第一输出通道输出的视频数据流只能发送到与该第一输出通道对应的第一 FIFO缓存模块103,任何一个第二输出通道输出的视频数据流只能发送到与该第二输出通道对应的第二 FIFO缓存模块104。
[0033]在向DDR3存储器2写入视频数据流时,位宽变换模块101将接收到的视频数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1