关于4路视频合成系统的FPGA设计的分析和应用

随着人们越来越注重安全问题,监控开始向小型化、家庭化发展。为了实现全方位多角度监控,需要采用多路摄像及多个显示器来显示实时信息,同时多路存储的容量需求比较大。为了在容量有限的情况下存储更多数据, 需要对多路视频进行相关处理,将多路视频合成一路视频信号再进行压缩存储和显示。
1 系统组成及工作原理
综合考虑视频图像的实时性以及功耗体积等因素,采取以下方案:由4路并行的视频模数转换芯片tvp5154将4路视频信号转换成数字格式的视频信号,并用fpga进行合成处理[1],再送给arm模块进行进一步压缩、存储等处理。图1为系统的fpga部分的硬件结构图。
采用xilinx公司spartan 3e系列中的xc3s500e芯片,该芯片具有功耗低、成本低等优点。采用tvp5154模数芯片主要是考虑到它是4路并行的,可节省板级空间,也方便控制,它可以将输入的4通道ntsc/pal/secam 格式的视频数据转换成4通道的8位itu-r bt.656[2]格式的数字视频输出供fpga进行处理。fpga包含i2c[3]通信模块、视频采集模块、处理模块、存储控制模块以及arm通信模块。
2 模块设计
2.1 i2c通信模块
fpga通过i2c总线[4]实现对tvp5154的配置,完成4路视频的ad转换。将i2ca0和i2ca1接地,把从机地址设为b8h。系统上电后,设备处于一个输出未定义的未知状态,直到它接收到reset 命令。在系统上电或硬件重启后,遵循以下自检过程:
(1)等待1 ms,4个解码通道的寄存器(7fh)必须写入00h 值。
(2)等待1 ms,读出4个解码通道的寄存器(81h)的版本值。
(3)验证读出来的值是否为54h。
(4)如果读出的值不为54h,则需要重启。
重复此过程,直到4个通道读寄存器(81h)的值均为54h。
自检完成之后,fpga向tvp5154的 feh寄存器写入0fh,让4个解码器同时接收fpga的写事务,输出设置成标准含嵌入式同步信号的itu-r bt.656格式的数字视频信号,如图2所示,包括3路同步信号:场、水平、竖直同步信号,并有一路时钟信号,频率为27 mhz。
2.2 视频采集模块
视频采集模块主要是将itu656格式的视频数据进行缓存和有效数据抽取。首先提取视频有效数据,送入fifo(深度为2k,可存储一行有效数据)进行缓存。接着通过控制读取fifo的数据来进行行列1/2抽取。
modelsim上截取的采集状态转换图如图3所示。先对场同步信号fid进行采样,下降沿启动状态机,从null状态进入st_idle状态,然后开始检测同步信号(ff0000 xxh),出现ff状态机跳转到st_ff,再出现00则跳转到st_00,如果检测到还为00则跳转到st_start。此时根据xx的值来确定是否为有效数据,如果是非有效数据,则跳回st_idle,再次跳转;如果是有效数据,则根据xx判断奇偶场,开始采集计数,根据要求选取采集深度,全采为1 440 b。
合成的图像4路按顺序分别位于左上、右上、左下、右下。由于视频为隔行扫描,为实现行1/2抽取,将4路视频信号分为两组,其中前两路采集偶场数据,后两路采集奇场数据。接着分时读取组内两个fifo实现列1/2抽取,以实现行列1/2抽取。抽取时需要注意的是, itu656为yuv422格式的,视频数据按照cb0,y0,cr0,y1,cb1,y2,cr1,…输出,每两个像素点共享红蓝色差信息,加上亮度信息,共4 b,处理时需要将两个像素点作为一个整体。仿真结果如图4所示。
图4为偶场数据处理,奇场相同。偶场有效数据在ff000080h之后,设17个有效数据,前16个数据第1路为00h~0fh,第2路为10h~1fh,第17个数据任意,采集深度为16,最后一个数据被丢弃。当fifo1数据存入4个(或更大)之后产生fifo读信号flag_e开始读取两个fifo的数据(为实现两路视频数据的同步)。flag_e作为有效数据的同步信号,由于读操作延迟一个周期,因此调整一个时钟周期得到flag。dout1是从fifo1中读取的数据,dout2是从fifo2中读取的数据。检测到flag_t上升沿count清零开始计数,并用count[2]作为2选1 mux的控制端,dout1和dout2为输入,dout_e为输出。奇场的数据处理是同样的过程,得到输出dout_o。由于奇偶场是分开的,dout分时输出dout_e和dout_o。
2.3 视频存储控制模块
选取的sram容量为2 mb×8,共有21根地址线,地址线分为行地址和列地址[5]。itu656标准的视频一帧有效数据分辨率为576×720,共576行,选择地址线高10位adr[20..11](0~1 024)为行地址,每行720个像素点,每个像素点为2 b,每行共1440 b,选择地址线低11位adr[10..0](0~2 048)为列地址。
行地址row[9..0]操作通过检测同步信号flag下降沿,数据有效时同步信号为高电平,当一行有效数据存储完成之后flag变低,行地址加1。
有效数据采集模块输出数据为两路信号交替出现,需交替产生存储地址,如下:0、1、2、3、720、721、722、723、4、5、6、7…。如果分辨率有其他要求,可根据所需来确定第2路地址的起始位置。
仿真中以16个数据为例,波形如图5所示。初始赋值adr_ 2为720(第2路的起始地址,根据需要设置,16个数据设为8),其余两个地址adr_v和adr_1赋值为0。flag出现高时adr_v开始计数,由于两路数据间隔4个周期,所以设置adr_v为3位,检测最高位选择对1、2两个地址中一个进行+1运算,然后以adr _v[2]作为2选1 mux控制端,列地址column作为输出,得到所需的列地址序列。在flag下降沿之后行地址row加1,得到所需的写地址。
乒乓缓冲的切换逻辑只需检测行地址,当行地址达到576即第576行(对应行地址为575)数据已经存入sram,拉高ready信号,然后将row清零。切换两个sram的操作方向,将sram1总线接至后面的合成模块,而sram2则接至地址产生逻辑的输出等待写入。
2.4 视频处理模块
视频处理模块主要实现4路视频的合成处理。根据itu656格式,调用一个ip生成一个rom,存入视频帧的第一行数据,eav和sav为8 b,eav后280 b为消隐数据,sav后1 440 b为消隐数据,共1 728 b。其中eav为ff0000b6h,sav为ff0000abh。
根据存储模块的切换逻辑送出来的ready信号,检测到上升沿之后开始状态跳转,从idle状态跳转到even_blank1状态,设置一个模为22的计数器,包含一个模为1 728的计数器作为地址来读取rom中的数据。读完rom的数据,外计数器+1输出一行数据,共输出22行数据。然后跳转到even_valid状态,此时先读取rom中前288 b,并改写eav和sav的最后1 b,分别改为9dh和80h。接着开始读取sram中的数据,按照行列地址进行读取,行基地址为0,按列地址递增读取,读至1 440列地址归零,结束一行读取,共重复288次输出有效数据行。由于是隔行扫描,每次行地址加2,最后一次读取的为第574行。接着状态跳转到even_blank2,输出两行偶场消隐行,读取rom的数据即可。再跳转到odd_blank1,输出23行奇场消隐行。读取rom的数据并改变eav和sav的最后1 b为f1h和ech。然后跳至odd_valid输出奇场有效数据,同even _valid,改写eav和sav最后1 b为dah和c7h,行基地址为1,每次加2,最后一次读取的为第575行。奇场有效行输出完成后,进入odd_blank2,输出两行奇场消隐行。最后跳回even _blank1输出下一帧数据。
even_blank1输出22行,even_ valid输出288行,even_blank2输出2行,odd_blank1输出23行,odd_vali d输出288行,odd_b lank2输出2行,一帧共625行标准的itu656格式的视频数据,并根据格式在特定位改写同步信号。
2.5 arm通信模块
arm通信模块主要将合成所得的视频数据送往arm模块,进行进一步的处理,包括压缩、存储等。接口主要有8 bit数据data[7:0],3 bit同步信号f、h、v,一路时钟信号clk,以及握手信号。
本设计采用自顶向下的分析方法,根据系统的需求划分功能模块,给出一种视频合成方法的fpga设计,并详细介绍各模块的具体功能和实现。通过给定已知数据进行仿真验证,证明了系统可以较好地实现合成操作。

在iOS中渲染vue与事件处理是什么
华为预计今年全球营收将超600亿美元 同比涨29%
气象监测站——气象观测有妙招
华为“元宇宙”相关专利曝光!从英伟达“数字人”到华为“星光巨塔”,巨头态度各不同
国星光电成为“中国质造”的行业典范
关于4路视频合成系统的FPGA设计的分析和应用
人民日报头版点赞百度智能云交通大模型!
芯片技术的发展历程和应用领域
盘点改变人类未来生活的八大黑科技
物联网智能公寓设备_智能家居网关
以太网标准与驱动系统设计
韩国计划在未来10年投资91亿元用于开发新的半导体材料和器件
单通道112G/s高速数字信号处理Retimer芯片Screaming Eagle
天然气流量测量中流量计的相关解决方案
优质磁环对于音响有哪些影响?
进行数控机床加工完成后需要注意哪些事项?
Wolfson电源管理IC获IREX采用
俄罗斯意图向巴铁出售先进战斗机,巴铁与我国合作研发五代战机
京瓷荣登CDP“应对气候变化最高评级A名单” GE签署独家协议
多光子显微镜成像技术:用于体内神经元成像的多种技术