一种基于FPGA的多路视频信号缓存控制方法及系统技术方案

技术编号:32966212 阅读:34 留言:0更新日期:2022-04-09 11:22
本发明专利技术提供了一种基于FPGA的多路视频信号缓存控制方法及系统,属于视频信号处理领域,方法包括:将多组视频源进行数据重组生成多组输入数据包并记数;对输入数据包进行优先级划分且对输入数据包编码;若输入数据包的数据缓存量达到迸发量,启动DDR写请求信号;转换成AXI4 Stream总线格式进行DDR写操作;设置FIFO_OUT输出优先级;若FIFO_OUT数据缓存量小于等于两倍迸发带宽的输出数据包,启动读请求信号,结合读完成信号,读取输出数据包解码后写入对应FIFO_OUT,输出视频数据;本发明专利技术有效实现多路视频信号的缓存控制,同时简化了视频信号转换成AXI4 Stream的时序控制。Stream的时序控制。Stream的时序控制。

【技术实现步骤摘要】
一种基于FPGA的多路视频信号缓存控制方法及系统


[0001]本专利技术属于视频信号处理领域,更具体地,涉及一种基于FPGA的多路视频信号缓存控制方法及系统。

技术介绍

[0002]基于SoC嵌入式系统进行开发设计是视频处理领域的一大趋势。2010年Xilinx公司推出首个Znyq系列嵌入式系统原型,将ARM处理器与传统FPGA结合,芯片内部通过AXI4标准总线互联,从而实现高灵活性、高可配置性和高计算性能的开发设计。经过近10年的发展,Znyq SoC平台有效提升了视频处理领域视频信号计算性能和显示处理可配置性能等诸多瓶颈问题,已经发展成为视频信号处理领域较为成熟的解决方案。
[0003]在军用及工业视频处理领域,为满足不同场景下视频处理功能定制化和高计算性能的需求,视频设备支持多组视频信号处理,广泛采用FPGA方案。一方面,MPsoc、Znyq等SoC嵌入式视频处理方案基于AXI4标准总线互联,配置灵活,能够有效解决基于传统FPGA芯片平台视频设备功能单一、配置性能较差等问题。因此结合传统FPGA视频设备进行基于MPsoc、Znyq等嵌入式平台的移植能够较大程度提升视频处理装备产品功能性能;另一方面,大量视频数据的计算对FPGA计算资源提出了较高的要求,基于Xilinx官方IP的视频数据与AXI总线数据转换需要消耗大量的FPGA资源,基于行缓存视频方法对缓存颗粒利用率低,基于帧缓存方法缓存效率较低,因此基于FPGA的多路视频处理亟需开发数据处理效率高、资源消耗小的架构满足日益增长的功能性能需求。

技术实现思路

[0004]针对现有技术的缺陷,本专利技术的目的在于提供一种基于FPGA的多路视频信号缓存控制方法及系统,旨在解决现有的多路视频信号的缓存需要额外配置IP核Video Timing Controller、Video to AXIs,AXIS to Video IP核,基于行缓存视频方法对缓存颗粒利用率低,且基于帧缓存方法缓存效率较低的问题。
[0005]为实现上述目的,一方面,本专利技术提供了一种基于FPGA的多路视频信号缓存控制方法,包括以下步骤:
[0006](1)根据输入视频源分辨率,将多组视频源的视频位宽转化为2
k
位进行多组数据重组生成多组输入数据包,并对每一数据包中的数据进行记数;
[0007](2)对多组输入数据包进行优先级划分后,将多组输入数据包通过多组FIFO_IN单独缓存;
[0008](3)当FIFO_IN中输入数据包的数据缓存量达到AXI4 Stream迸发量时启动DDR的写请求信号;同时对本次迸发的输入数据包与对应视频源进行编码;
[0009](4)将编码后的输入数据包、写请求信号和有效写地址转换成AXI4 Stream总线格式进行DDR写操作,完成对多组视频源的缓存;
[0010](5)通过多组FIFO_OUT对多组视频源缓存输出,设置FIFO_OUT输出优先级,并对多
组FIFO缓存数据量单独计数;
[0011](6)当任意一组FIFO_OUT数据缓存量小于等于两倍迸发带宽的输出数据包时,启动DDR的读请求信号,结合Rd_last指令,依次从DDR读取输出数据包数据并解码后写入对应FIFO_OUT,输出视频位宽2
k
位的视频数据;
[0012](7)从视频位宽2
k
位的视频数据中读出有效视频信息并显示,实现多路视频信号缓存控制;其中,k为正整数;所述输入数据包的位宽为2的指数次方倍。
[0013]进一步优选地,步骤(4)中AXI4 Stream总线格式的转换方法为:
[0014]设置DDR为Packet mode模式,当DDR写请求开启后启动DDR写入使能,写地址有效被声明,DMA锁定信号Dma_lock拉高,占用DMA操作;
[0015]将编码后的输入数据包、视频行信号、视频场信号、写请求信号和有效写地址转换成AXI4 Stream总线格式进行传输。
[0016]进一步优选地,本次迸发的输入数据包的获取及更新方式为:
[0017]启动DDR的写请求信号后,根据视频信号所在FIFO_IN中视频通道的优先级,将FIFO_IN中的当前输出数据包作为本次AXI4 Stream迸发的输入数据包;
[0018]当对FIFO_IN中的当前输出数据包完成写操作时,接收写完成信号Wr_last,再读取FIFO_IN中其他视频通道的输出数据包更新本次AXI4 Stream迸发的输入数据包;
[0019]对同时输入的视频信号,将高优先级通道的输出数据包作为本次AXI4Stream迸发的输入数据包。
[0020]进一步优选地,步骤(6)具体包括以下步骤:
[0021](6.1)当任意一组FIFO_OUT缓存数据量小于等于两倍迸发带宽的输出数据包时,设置DDR为Packet mode,启动DDR读入使能,读地址有效被声明,DMA锁定信号Dma_lock拉高;
[0022](6.2)结合读完成信号Rd_last,从DDR读取最高优先级输出数据包并解码后写入FIFO_OUT,输出视频位宽2
k
位的视频数据。
[0023]进一步优选地,步骤(6.2)具体包括以下步骤:
[0024]当最高优先级输出数据包读操作完成时,发出读完成信号Rd_last,读取其他输出数据包中最高优先级的输入数据包。
[0025]进一步优选地,当设置DDR为Packet mode时,在每次写请求有效时,判断当前输入数据包的视频源通道编号wr_pointer,对首次写入的输入数据包生成初始地址;通过偏移地址进行多组输入数据包的连续写入。
[0026]写地址有效在写入使能期间被声明,直至写完成信号Wr_last有效时解除。
[0027]进一步优选地,在对输入数据包写的阶段,对输入数据包与每路视频的编码方法为:
[0028]将输入数据包的写地址设置为wr_addr={wr_pointer,burst_number};其中,wr_addr为数据包的写地址;wr_pointer表示视频源通道ID;burst_number为数据包迸发数,第一次迸发时数值为0;加入偏移地址后,迸发地址为burst_addr=burst_number*burstLegeth;burstLegeth为AXI迸发长度;burst_number为迸发次数。
[0029]另一方面,本专利技术提供了一种基于FPGA的多路视频信号缓存控制系统,包括:
[0030]多组视频源接收模块,其输出端与多组输入FIFO IN模块的输入端连接,用于提供
IN模块和多组输入FIFO OUT模块结合TV Controller FSM,将数据包分为数据流和控制流分成两路,分别进行数据包的编码和写或读的操作指令生成或转换;然后将数据和指令转换成AXI4 Stream总线格式;利用DDR实现对多路视频信号的缓存;即通过FIFO和DD本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的多路视频信号缓存控制方法,其特征在于,包括以下步骤:(1)根据输入视频源分辨率,将多组视频源的视频位宽转化为2
k
位进行多组数据重组生成多组输入数据包,并对每一数据包中的数据进行记数;(2)对多组输入数据包进行优先级划分后,将多组输入数据包通过多组FIFO_IN单独缓存;(3)当FIFO_IN中输入数据包的数据缓存量达到AXI4 Stream迸发量时启动DDR的写请求信号;同时对本次迸发的输入数据包与对应视频源进行编码;(4)将编码后的输入数据包、写请求信号和有效写地址转换成AXI4Stream总线格式进行DDR写操作,完成对多组视频源的缓存;(5)通过多组FIFO_OUT对多组视频源缓存输出,设置FIFO_OUT输出优先级,并对多组FIFO缓存数据量单独计数;(6)当任意一组FIFO_OUT数据缓存量小于等于两倍迸发带宽的输出数据包时,启动DDR的读请求信号,结合Rd_last指令,依次从DDR读取输出数据包数据并解码后写入对应FIFO_OUT,输出视频位宽2
k
位的视频数据;(7)从视频位宽2
k
位的视频数据中读出有效视频信息并显示,实现多路视频信号缓存控制;其中,k为正整数;所述输入数据包的位宽为2的指数次方倍。2.根据权利要求1所述的多路视频信号缓存控制方法,其特征在于,所述步骤(4)中AXI4 Stream总线格式的转换方法为:设置DDR为Packet mode模式,当DDR写请求开启后启动DDR写入使能,写地址有效被声明,DMA锁定信号Dma_lock拉高,占用DMA操作;将编码后的输入数据包、视频行信号、视频场信号、写请求信号和有效写地址进行逻辑时序控制,最终转换成AXI4 Stream总线格式进行传输。3.根据权利要求1或2所述的多路视频信号缓存控制方法,其特征在于,所述本次迸发的输入数据包的获取及更新方式为:启动DDR的写请求信号后,根据视频信号所在FIFO_IN中视频通道的优先级,将FIFO_IN中的当前输出数据包作为本次AXI4 Stream迸发的输入数据包;当对FIFO_IN中的当前输出数据包完成写操作时,接收写完成信号Wr_last,再读取FIFO_IN中其他视频通道的输出数据包更新本次AXI4 Stream迸发的输入数据包;对同时输入的视频信号,将高优先级通道的输出数据包作为本次AXI4Stream迸发的输入数据包。4.根据权利要求3所述的多路视频信号缓存控制方法,其特征在于,所述步骤(6)具体包括以下步骤:(6.1)当任意一组FIFO_OUT缓存数据量小于等于两倍迸发带宽的输出数据包时,设置DDR为Packet mode,启动DDR读入使能,读地址有效被声明,DMA锁定信号Dma_lock拉高;(6.2)结合读完成信号Rd_last,从DDR读取最高优先级输出数据包并解码后写入FIFO_OUT,输出视频位宽2
k
位的视频数据。5.根据权利要求4所述的多路视频信号缓存控制方法,其特征在于,所述步骤(6.2)具体包括以下步骤:当最高优先级输出数据包读操作完成时,发出读完成信号Rd_last,读取其他输出数据
包中最高优先级的输入数据包。6.根据权利要求2所述的多路视频信号缓存控制方法,其特征在于,当设置DDR为Packet mode时,在每次写请求有效时,判断当前输入数据包的视频源通道编号wr_pointer,对首次写入的输入数据包生成初始地址;通过偏移地址进行多组输入数据包的连续写入;写地址有效在写入使能期间被声明,直至写完成信号Wr_last有效时解除。7.根据权利要求1所述的多路视频信号缓存控制方法,其特征在于,在对输入数据包写的阶段,对输入数据包与每路视频的编码方法为:将输入数据包的写地址设置为wr_addr={wr_po...

【专利技术属性】
技术研发人员:付念
申请(专利权)人:中国船舶重工集团公司第七零九研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1