一种视频处理板、视频处理方法及视频处理平台与流程

专利2022-05-09  2


本发明涉及视频处理领域,具体涉及一种视频处理板、视频处理方法及视频处理平台。



背景技术:

视频处理平台一般用于对视频进行处理,其典型的应用场景为:用于交通数据的采集,即在公路上架设摄像头,将视频接入hvd,对过往车辆的车牌号、当前车速、车型进行自动识别和计算,并将采集到的数据上报给公路管理部门,作为交通管理或管制的基础数据。

当然还可以应用到其它的场景,但是现阶段的视频处理平台可能存在处理速率较低,处理能力不稳定的情况。



技术实现要素:

本发明的目的就在于为了解决上述问题而提供一种视频处理板、视频处理方法及视频处理平台。

一种视频处理板,包括dsp组件和fpga,所述dsp组件与所述fpga通信连接,所述fpga设置有camera-link视频输入接口和camera-link复合视频输出接口,所述dsp组件包括第一dsp和第二dsp,所述第一dsp和所述第二dsp通信连接。

所述fpga包括图像接收模块、图像预处理模块、图像灰度级映射模块、数据源选择模块、srio数据发送模块、字符叠加模块、图像发送模块和localbus译码模块。

所述图像接收模块用于接收图像数据。

所述图像预处理模块用于对输入图像进行像素级处理。

所述图像灰度级映射模块用于实现数字视频10bit/14bit到8bit的映射转换。

所述数据源选择模块用于对数据源进行选择。

所述srio数据发送模块用于将输入的图像发送给所述dsp组件。

所述字符叠加模块用于在图像区域叠加波门和字符。

所述图像发送模块用于将字符叠加完成的图像输出。

所述localbus译码模块用于所述dsp组件读取所述fpga的状态或发送指令。

所述图像接收模块的输出端与所述图像预处理模块的输入端通信连接,所述图像预处理模块的输出端分别与所述图像灰度级映射模块的输入端、所述数据源选择模块的输入端和所述字符叠加模块的输入端通信连接,所述图像灰度级映射模块的输出端与所述数据源选择模块的输入端通信连接,所述数据源选择模块的输出端与所述srio数据发送模块的输入端通信连接,所述字符叠加模块的输出端与所述图像发送模块的输入端电连接,所述localbus译码模块的通信端与所述数据源选择模块的通信端和所述字符叠加模块的通信端通信连接。

进一步地,所述fpga还设置有vga复合视频输出接口,所述fpga还包括vga图像生成模块、vga图像灰度级映射模块和ddr3缓存模块。

所述vga图像生成模块用于生成显示所需的模拟信号。

所述vga图像灰度级映射模块用于用于实现数字视频10bit/14bit到8bit的映射转换。

所述ddr3缓存模块用于完成vga显示所需的帧率转换。

所述vga图像灰度级映射模块的输入端与所述字符叠加模块的输出端通信连接,所述vga图像灰度级映射模块的输出端与所述ddr3缓存模块的输入端通信连接,所述ddr3缓存模块的输出端与所述vga图像生成模块的输入端电连接。

一种视频处理方法,运行在上述所述dsp组件上,包括以下步骤:

101、第一dsp和第二dsp上电初始化。

102、第一dsp和第二dsp接收原始数据信息。

103、设定第一dsp为主dsp,第二dsp为从dsp。

104、第一dsp启动核间通信,分区域对原始数据信息进行并行处理,经过一个设定时间后,将处理完成的数据放置在指定位置。

105、第二dsp启动核间通信,分区域对原始数据信息进行并行处理,经过一个设定时间后,将处理完成的数据放置在指定位置。

106、第一dsp读取指定位置内的数据,并对数据进行处理。

107、经过另一个设定时间后,重复步骤104~106。

输出目标偏差信息和状态字节。

一种视频处理方法,运行在上述所述fpga上,包括以下步骤:

201、接收图像数据,根据图像的taps数量对图像数据进行重组,并将图像数据写入,同时完成图像的像素点矫正。

202、对输入图像进行像素级处理。

203、对数字视频进行10bit/14bit到8bit的映射转换。

204、对数据源进行选择,数据源头分别为8bit图像和10bit/14bit图像,两种图像分别缓存进ram中,根据指令读取相应的ram。

205、根据选择的数据源,将输入的图像重新组包输出。

206、根据localbus译码模块接收的指令,在图像区域叠加波门和字符,所述字符的字符库采用matlab生成。

207、将字符叠加完成的图像输出。

进一步,所述处理方法还可以输出用于调试使用的vga显示信号,包括以下步骤:

211、对步骤206中生成的图像进行帧率转换。

212、生成vga图像并输出。

一种视频处理方法,运行在上述的一种视频处理板上,具体步骤如下:

s1、图像接收模块接收camera-link视频输入接口送来的图像数据,根据图像的taps数量对图像数据进行重组,并将图像数据写入,同时完成图像的像素点矫正。

s2、图像预处理模块对输入图像进行像素级处理。

s3、图像灰度级映射模块对数字视频进行10bit/14bit到8bit的映射转换。

s4、数据源选择模块根据dsp组件的指令对数据源进行选择,数据源头分别为8bit图像和10bit/14bit图像,两种图像分别缓存进ram中,根据指令读取相应的ram。

s5、srio数据发送模块将数据源选择模块选择的图像数据重新组包,并将其输入至dsp组件。

s6、第一dsp和第二dsp接收srio数据发送模块发送来的原始图像数据。

s7、设定第一dsp为主dsp,第二dsp为从dsp。

s8、第一dsp启动核间通信,分区域对原始图像数据进行并行处理,经过设定时间后,将处理完成的数据放置在指定位置。

s9、第二dsp启动核间通信,分区域对原始图像数据进行并行处理,经过设定时间后,将处理完成的数据放置在指定位置。

s10、第一dsp读取指定位置内的数据,并对数据进行处理。

s11、经过另一个设定时间后,重复步骤s8~s10。

s12、第一dsp输出目标偏差信息和状态字节,并将其输出至fpga的localbus译码模块。

s13、localbus译码模块接收的dsp组件发送的数据,并将信息发送至字符叠加模块。

s14、字符叠加模块在图像区域叠加波门和字符,所述字符的字符库采用matlab生成。

s15、将字符叠加完成的图像通过camera-link复合视频输出接口输出。

进一步,所述处理方法还可以输出用于调试使用的vga显示信号,包括以下步骤:

通过vga图像灰度级映射模块将叠加字符后的数字视频映射转换为8bit。

将转换后的数据存储至ddr3缓存模块,并对其进行帧率转换。

vga图像生成模块采用标准vgaesa时序实现vga图像输出。

一种视频处理平台,包括:调试底板、第一视频处理板和第二视频处理板,所述第一视频处理板和所述第二视频处理板均与所述调试底板电连接,且所述第一视频处理板和所述第二视频处理板之间通过所述调试底板通信。

所述第一视频处理板为上述的一种视频处理板。

所述第二视频处理板为上述的一种视频处理板。

本发明与现有技术相比,本发明通过在视频处理板中设置两个可并行处理的dsp,并通过fpga协同两个dsp工作,实现原始视频电信号输入、视频数据分析处理、复合视频输出及通讯收发等功能,使得视频处理速率更高,视频输出质量更稳定。

附图说明

附图示出了本发明的示例性实施方式,并与其说明一起用于解释本发明的原理,其中包括了这些附图以提供对本发明的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分,并不构成对本发明实施例的限定。

图1是根据本发明所述的fpga的结构框图。

图2是根据本发明所述的一种视频处理方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图和实施方式对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本发明的限定。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分。

在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。下面将参考附图1和附图2并结合实施方式来详细说明本发明。

本实施例中的视频处理平台包括两块视频处理板和一块调试底板,将其设定为包括调试底板、第一视频处理板和第二视频处理板,第一视频处理板和第二视频处理板均与调试底板电连接,且第一视频处理板和第二视频处理板之间通过调试底板通信。

其中视频处理板是基于k7系列fpga和8核6678dsp的高性能图像处理平台,是取差器电子箱内完成图像处理功能的主要单元,安装在电子箱的调试底板上,实现原始视频电信号输入、视频数据分析处理、复合视频输出及通讯收发等功能。

视频处理板分为第一视频处理板和第二视频处理板,两块板卡具有相同的硬件设计,分别处理前端接入的两路数字视频,实现了两路数字视频的同时处理。

实施例一

本实施例中,提供上述视频处理平台中使用的一种视频处理板,包括dsp组件和fpga,dsp组件与fpga通信连接,fpga设置有camera-link视频输入接口和camera-link复合视频输出接口,dsp组件包括第一dsp和第二dsp,第一dsp和第二dsp通信连接。

视频处理板设计采用标准6u板卡尺寸,具有1路medium模式camera-link视频输入电接口和1路medium模式camera-link复合视频输出功能。

由fpga实现字符和波门叠加、实现数字视频10bit/14bit到8bit的映射转换。

具有1路波特率可调rs422对外通讯接口、具有2路波特率可调rs422板间通讯接口。

能够处理不小于1280×1024,100hz视频数据。

预留板间通讯接口:2路波特率可调rs422、2路pcie、1路4xsrio。

预留外部接口:1路vga视频输入(将pc上的录像视频送入视频处理板,模拟相机cameralink信号)、1路vga送显功能、gpio若干、千兆网、rs422。

第一dsp和第二dsp可以通过板间的串口或pcie进行数据交互。

dsp选择采用ft-m6678n芯片,工作频率1000mhz。ft-m6678是一款高性能军用多核浮点dsp,应用范围涉及雷达信号处理、精确制导、图像处理、电子对抗、声纳探测、保密通信和飞行控制等军事应用领域。

本设计选用2片dsp器件ft-m6678,其集成了8个处理器核ft-m66x、2个x4srio、1个x4pcie、uart、gpio、i2c、spi。

ft-m6678的复位配置由fpga来管理,两路srio中使用1路srio连接到fpga,作为对外传输数据的通路,另一路两个dsp之间互联作为主从dsp之间的数据交互通道。

sgmii接口通过phy芯片jem88e1111hv转换为mdii接口后通过网络变压器nwt181306-2-a转换为标准电口信号引出至cpex连接器,作为整个芯片的管理通道。

ddr控制器分别挂一组64位2gb的内存颗粒。spi接口外挂一个256mb的norflash。

两片dsp的pcie接口连接至cpex连接器,作为数据的备用通道。

dsp的emif配置成emif16与fpga连接,作为与fpga的指令数据通道。

fpga包括图像接收模块、图像预处理模块、图像灰度级映射模块、数据源选择模块、srio数据发送模块、字符叠加模块、图像发送模块和localbus译码模块。

图像接收模块用于接收图像数据。

接收camlink送来的图像数据,根据图像的taps数量对图像数据进行重组,并将图像数据写入fpga内部ram中,该模块同时完成图像的像素点矫正功能,对于前端传输过程中出现的偶发性的错误提供一定的容错功能,可以基本保证图像的显示质量,内部ram采用双行缓存,完成从camlink时钟域到本地时钟域的转换。

图像预处理模块用于对输入图像进行像素级处理。

根据实际工程的需求,对输入图像进行一定的像素级处理,例如均值滤波等,也可根据dsp的指令,对输入图像不做任何处理,直接进行转发。

图像灰度级映射模块用于实现数字视频10bit/14bit到8bit的映射转换。

该转换过程不影响图像各个信号的时序关系,仅对图像进行整体的时延。

数据源选择模块用于对数据源进行选择。

根据dsp的指令,对数据源进行选择,数据源头分别为8bit图像和10bit/14bit图像,两种图像分别缓存进ram中,根据指令读取相应的ram。

srio数据发送模块用于将输入的图像发送给dsp组件。

将输入的图像重新组包之后,发送给dsp,本模块采用模块化设计,两个dsp均通过相同的方式接收数据,由于srio的点对点特性以及灵活性的考量,每个dsp均可单独配置该dsp对应的fpga端srio的id,id支持8bit/16bit,同时,图像数据的目的地址也可由dsp单独进行配置,该模块在传输图像数据时采用swrite的模式直接向dsp发送数据,每包载荷为256byte,在每帧图像的结尾,数据发送完毕后,会以doorbell中断的方式通知dsp取数。

字符叠加模块用于在图像区域叠加波门和字符。

根据dsp的指令,在图像特定区域叠加十字波门或者字符,字符库采用matlab生成,可根据现场调试情况进行字库的大小缩放。

图像发送模块用于将字符叠加完成的图像输出。

将字符叠加完成的图像通过camlink接口输出,为避免camlink输入接口上的时序波动,该发送模块的发送时钟将略高于camlink输入时钟。

localbus译码模块用于dsp组件读取fpga的状态或发送指令。

dsp通过xintf总线异步访问fpga内部的各个寄存器,读取状态或者发送指令。

vga图像生成模块用于生成显示所需的模拟信号。

采用标准vesa时序实现,分辨率为1280x1024@60fps,时钟为108mhz。

vga图像灰度级映射模块用于用于实现数字视频10bit/14bit到8bit的映射转换。

ddr3缓存模块用于完成vga显示所需的帧率转换。

主要完成vga显示所需的帧率转换功能,该功能将采用三缓冲来实现。

图像接收模块的输出端与图像预处理模块的输入端通信连接,图像预处理模块的输出端分别与图像灰度级映射模块的输入端、数据源选择模块的输入端和字符叠加模块的输入端通信连接,图像灰度级映射模块的输出端与数据源选择模块的输入端通信连接,数据源选择模块的输出端与srio数据发送模块的输入端通信连接,字符叠加模块的输出端与图像发送模块的输入端电连接,localbus译码模块的通信端与数据源选择模块的通信端和字符叠加模块的通信端通信连接。

vga图像灰度级映射模块的输入端与字符叠加模块的输出端通信连接,vga图像灰度级映射模块的输出端与ddr3缓存模块的输入端通信连接,ddr3缓存模块的输出端与vga图像生成模块的输入端电连接。

另外的,fpga还可以包括bit模块,该模块包含三个部分,其一是camlink输入检测功能,实现原理是采用定时器查询接口上的vs信号,若符合协议要求,则继续检测,若否,则记录当前状态并上报dsp,同时建立链接状态历史寄存器,保存此次上电过程视频断开链接的次数。其二,采用fpga内部的xadc功能,实时检测当前fpga的结温,此温度将以寄存器的形式供dsp查询,也可设置alarm功能进行高温预警。最后,该模块将集成一个camlink模拟输入功能,在未有前端视频的情况下,产生黑白条纹图像,共后端调试使用,模拟视频格式与输入格式将保持一致。

rs422模块,主要用于板间通信,由dsp通过xintf总线间接控制,也可在明确协议的情况下又fpga自行处理。本模块中输入、输出fifo具备不低于512byte的深度,同时具有设置任意接收字节数中断和发送完成中断能力,可实时读取fifo指针。接收端缓存一定量的数据之后,以中断的形式通知dsp。接收dsp通过xintf总线发送的控制命令,从而对板内的串口进行初始化,包含波特率、校验位、校验方式等,对于数据收发串口,还将具备中断设置寄存器,该模块对每个串口均单独配置,支持二次开发以及模块复用,支持常见的波特率,也支持定制波特率。

实施例二

一种视频处理方法,基于dsp组件,视频处理方法包括以下步骤:

第一dsp和第二dsp上电初始化。

第一dsp和第二dsp接收原始数据信息,分别以视频周期接收来自fpga的原始数据(10bit/14bit/8bit),两个dsp分别以场正程的0时刻做为基准时刻。

设定第一dsp为主dsp,第二dsp为从dsp。也可以将第二dsp设为主dsp,第一dsp设为从dsp。其结构相同,可以根据具体情况进行替换。

第一dsp启动核间通信,分区域对原始数据信息进行并行处理,一定时刻(可设为m1)后,将处理完成的数据放置在指定位置(如共享内存等)。

同时,第二dsp启动核间通信,分区域对原始数据信息进行并行处理,m1后,将处理完成的数据放置在指定位置(如共享内存等)。

操作的主动权交由第一dsp的0核进行处理,第一dsp读取指定位置内的数据,并对数据进行处理。

经过事先确定的某一时间段后,再次启动核间通讯,分区域对图像进行并行处理,m2时刻后,各核处理完毕的数据放置在指定位置(如共享内存等),

第二dsp的数据通过srio放置在第一dsp的指定位置(如共享内存等),此时,操作的主动权交由第一dsp的0核进行最终处理,形成最后的输出结果。

输出目标偏差信息和状态字节。第一dsp将偏差数据(通过串口)以及波门字符显示等信息(通过emif)传递给fpga。

以场正程的0时刻做为基准时刻,5ms时刻接收来自上位机的串口数据。9ms时刻将解算数据发送给上位机。

实施例三

一种视频处理方法,基于fpga,视频处理方法包括以下步骤:

接收camlink送来的图像数据,根据图像的taps数量对图像数据进行重组,并将图像数据写入fpga内部ram中,该模块同时完成图像的像素点矫正功能,对于前端传输过程中出现的偶发性的错误提供一定的容错功能,可以基本保证图像的显示质量,内部ram采用双行缓存,完成从camlink时钟域到本地时钟域的转换。

根据实际工程的需求,对输入图像进行一定的像素级处理,例如均值滤波等,也可根据dsp的指令,对输入图像不做任何处理,直接进行转发。

对数字视频10bit/14bit到8bit的映射转换,该转换过程不影响图像各个信号的时序关系,仅对图像进行整体的时延。

根据dsp的指令,对数据源进行选择,数据源头分别为8bit图像和10bit/14bit图像,两种图像分别缓存进ram中,根据指令读取相应的ram。

将输入的图像重新组包之后,发送给dsp,本模块采用模块化设计,两个dsp均通过相同的方式接收数据,由于srio的点对点特性以及灵活性的考量,每个dsp均可单独配置该dsp对应的fpga端srio的id,id支持8bit/16bit,同时,图像数据的目的地址也可由dsp单独进行配置,该模块在传输图像数据时采用swrite的模式直接向dsp发送数据,每包载荷为256byte,在每帧图像的结尾,数据发送完毕后,会以doorbell中断的方式通知dsp取数。

根据localbus译码模块接收的指令,在图像区域叠加波门和字符,字符的字符库采用matlab生成。

根据dsp的指令,在图像特定区域叠加十字波门或者字符,字符库采用matlab生成,可根据现场调试情况进行字库的大小缩放。将字符叠加完成的图像输出。

另外,在实际的使用中,可能需要送显一路vga复合视频用于调试使用,处理方法包括以下步骤:

字符叠加模块使用的图像为未进行10bit/14bit到8bit的映射转换的图像,因此在需要进行vga输出时,需要通过vga图像灰度级映射模块将其转化为8bit。

然后再对对叠加字符后的图像进行帧率转换,

最终生成vga图像并输出。

实施例四

一种视频处理方法,具体步骤如下:

图像接收模块接收camera-link视频输入接口送来的图像数据,根据图像的taps数量对图像数据进行重组,并将图像数据写入fpga内部ram中,该模块同时完成图像的像素点矫正功能,对于前端传输过程中出现的偶发性的错误提供一定的容错功能,可以基本保证图像的显示质量,内部ram采用双行缓存,完成从camlink时钟域到本地时钟域的转换。

图像预处理模块根据实际工程的需求,对输入图像进行一定的像素级处理,例如均值滤波等,也可根据dsp的指令,对输入图像不做任何处理,直接进行转发。

图像灰度级映射模块对数字视频进行10bit/14bit到8bit的映射转换,该转换过程不影响图像各个信号的时序关系,仅对图像进行整体的时延。

数据源选择模块根据dsp组件的指令对数据源进行选择,数据源头分别为8bit图像和10bit/14bit图像,两种图像分别缓存进ram中,根据指令读取相应的ram。

srio数据发送模块将输入的图像重新组包之后,发送给dsp,本模块采用模块化设计,两个dsp均通过相同的方式接收数据,由于srio的点对点特性以及灵活性的考量,每个dsp均可单独配置该dsp对应的fpga端srio的id,id支持8bit/16bit,同时,图像数据的目的地址也可由dsp单独进行配置,该模块在传输图像数据时采用swrite的模式直接向dsp发送数据,每包载荷为256byte,在每帧图像的结尾,数据发送完毕后,会以doorbell中断的方式通知dsp取数。

第一dsp和第二dsp上电初始化。并接收原始数据信息,分别以视频周期接收来自fpga的原始数据(10bit/14bit/8bit),两个dsp分别以场正程的0时刻做为基准时刻。

设定第一dsp为主dsp,第二dsp为从dsp。也可以将第二dsp设为主dsp,第一dsp设为从dsp。其结构相同,可以根据具体情况进行替换。

第一dsp启动核间通信,分区域对原始数据信息进行并行处理,一定时刻(可设为m1)后,将处理完成的数据放置在指定位置(如共享内存等)。

同时,第二dsp启动核间通信,分区域对原始数据信息进行并行处理,m1后,将处理完成的数据放置在指定位置(如共享内存等)。

操作的主动权交由第一dsp的0核进行处理,第一dsp读取指定位置内的数据,并对数据进行处理。

经过事先确定的某一时间段后,再次启动核间通讯,分区域对图像进行并行处理,m2时刻后,各核处理完毕的数据放置在指定位置(如共享内存等),

第二dsp的数据通过srio放置在第一dsp的指定位置(如共享内存等),此时,操作的主动权交由第一dsp的0核进行最终处理,形成最后的输出结果。

输出目标偏差信息和状态字节。第一dsp将偏差数据(通过串口)以及波门字符显示等信息(通过emif)传递给fpga的localbus译码模块。

localbus译码模块接收的dsp组件发送的数据,并将信息发送至字符叠加模块。

字符叠加模块根据dsp的指令,在图像特定区域叠加十字波门或者字符,字符库采用matlab生成,可根据现场调试情况进行字库的大小缩放。

判断是需要输出复合视频图像还是vga图像。

如果需要输出复合视频图像,则将字符叠加完成的图像通过camera-link复合视频输出接口输出。

如果需要输出vga图像,则通过vga图像灰度级映射模块将叠加字符后的数字视频映射转换为8bit。

将转换后的数据存储至ddr3缓存模块,并对其进行帧率转换。

vga图像生成模块采用标准vgaesa时序实现vga图像输出。

本实施例中与系统间的接口都从fpga接入,指令通过串口(rs422)进行通讯,由fpga转发给主6678,板内dsp间设计srio接口,fpga和dsp间设计emif、srio、gpio、uart等接口,板间定时进行两路rs422数据通讯,完成两个通道数据融合。

在本说明书的描述中,参考术语“一个实施例/方式”、“一些实施例/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例/方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例/方式或示例以及不同实施例/方式或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本发明,而并非是对本发明的范围进行限定。对于所属领域的技术人员而言,在上述发明的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本发明的范围内。

转载请注明原文地址: https://doc.8miu.com/read-150217.html

最新回复(0)