您的位置 首页 ADAS

根据SoPC的视频盯梢体系中OSD功用的完成

介绍一种基于SoPC技术的视频跟踪系统中OSD功能的实现方案。首先在FPGA上实现SoPC设计,然后用一个M-RAM作为OSD缓存,并通过Nios Ⅱ处理器和自定义的API函数对OSD缓存中的内容进行

OSD(On Screen Display)是指将体系的参数和状况信息在屏幕上显现出来,在电视机、录像机等家电产品中这种技能早已广泛使用。视频盯梢体系要求进行数字、符号、盯梢窗的实时显现,即具有OSD功用,包含无视频输入指示、确定指示、盯梢状况和功用指示、显现脱靶量数据及其他操作参数等。

OSD的完结办法根本上有三种:运用专用OSD器材;选用支撑OSD功用的处理器;选用PLD。在实时性要求较高的视频盯梢体系中,需求运用大规模FPGA进行并行图画处理,并且在FPGA中完结SoPC规划,一起应能减小体系的体积和本钱。假如只选用专用OSD器材或带有OSD功用的处理器反而会添加体系硬件规划的杂乱度,下降体系的可靠性。因而,有必要选用与SoPC体系相结合的OSD完结计划。

1 视频盯梢体系

根据SoPC技能的视频盯梢体系框图如图1所示。体系选用Altera公司的Stratix 系列FPGA及Nios Ⅱ软核处理器完结SoPC规划,将图画处理、方针辨认与盯梢等协处理单元挂在Nios Ⅱ处理器上,并经过SPI、I2C等IP-Core完结对操纵杆、视频编解码器等设备的操控。体系支撑PAL-D(576i25)规范输入输出。

2 OSD完结计划

2.1 SoPC体系的装备结构

在SoPC体系中,完结OSD功用要与如图2所示的SoPC体系的装备结构相结合,体系选用Altera公司的MAX-II器材作为装备操控器,在体系启动(boot)时担任将FPGA的装备数据从外部Flash Memory传送到Stratix中。这儿将OSD字符/图形库以只读数据的方法寄存在外部CFI-Flash中,CFI-Flash一起装有FPGA的装备数据和软件程序,装备完毕后MAX-Ⅱ需求将衔接CFI-Flash的悉数总线置为‘Z’,这样Nios Ⅱ处理器才可以取得CFI-Flash的总线运用权,以读取程序和OSD数据。

2.2 OSD完结结构

OSD完结框图如图3所示。这儿选用了FPGA中的一个M-RAM作为OSD缓存,其间每位与视频中的一个像素映射。因PAL-D复合视频信号为隔行扫描,因而,OSD缓存中的数据按奇/偶场方法寄存,每场占用720×288/8=25 920B,M-RAM巨细为64KB,可完结全视场规模的单色OSD映射。OSD缓存被界说为双口方法,输出与视频数据流同步。

OSD缓存的数据位宽可界说为2n(n=0,1,…),但应该留意:数据位宽选得越大,NiosⅡ处理器的拜访速度就越快,而OSD的水平方向定位也越杂乱;数据位宽选得越小,水平方向定位越准确,但拜访速度也会越慢,且实时性差。因而,进行折衷处理,挑选lpm_width=8。

M-RAM的读地址要根据行、场同步信号生成,图画原始分辨率为864×625,则水平计数器Cnt_Hor和笔直计数器Cnt_Ver为10bit宽,Cnt_Hor的异步清零端接脉冲化后的行同步信号HSYNC,Cnt_Ver的异步清零端接脉冲化后的场同步信号VSYNC。在有用图画分辨率为720×576规模内,使能地址计数器Cnt_Rd_Addr、Cnt_Rd_Addr的计数时钟为像素时钟的8分频,即每8个像素时钟读取一个数据,Cnt_Rd_Addr的异步清零端接脉冲化后的场同步信号VSYNC。

OSD缓存读地址生成逻辑如图4所示。图中,1.6875MHz时钟脉冲化后接74165的STLD(并行数据加载信号),每隔8个像素时钟载入一个字节的OSD数据并串行输出。图5为最简略的OSD组成逻辑,图中,bit→piexl的映射逻辑用一个8位并-串转换器74165完结,运用两个8bit的Mux2_1,假如ctrl_bit等于‘0’,则YCbCr输出原图画数据;假如ctrl_bit等于‘1’,则Y输出0xEB,CbCr输出0x10。

2.3 OSD API

OSD API的完结包含:创立API硬件接口;树立字符/图形库;OSD显现驱动函数(包含字节重构、字符显现、图形显现、消隐等)。

API硬件接口可以经过SoPCBuilder树立,包含16位地址OSD_ADDR、8位数据OSD_DATA、写使能OSD_WEN和OSD缓存的异步清零信号OSD_ACLR。由于M-RAM不能设置初始数据,因而上电后首先将OSD_ACLR置位,然后对OSD缓存初始化后,再将OSD_ACLR置零,避免开机时体系呈现花屏现象。

字符/图形库可以经过字模提取软件得到,并界说到unsigned char const型数组中。翻开Nios Ⅱ IDE中的System Library Properties窗口,将read-only data memory(.rodata)项设为ext_flash,行将OSD库放在外部的CFI-Flash中。

OSD数据写入缓存时要留意两个关键问题,一是笔直方向上的隔行处理,即依照奇偶场规矩写入缓存;二是水平方向上的字节拆分与重构,由于OSD缓存是整字节(8bit)拜访的,为了完结字符/图形的像素级定位,该操作是必要的。例如,为了在方位3开端叠加如图6所示的11个bit‘1’,需求补5个bit的‘0’,并将重构后的“0x3f、0xf8”写入OSD缓存,该操作由软件完结。

3 结果与定论

OSD完结作用如图7所示,监视器上叠加有字符、数字和图形,假如进一步规划,还可以完结五颜六色OSD、画中画以及通明作用,本文仅仅对这一计划进行了开始验证。

实践使用证明,本文提出的规划计划新颖、合理,可以有用减小视频盯梢体系的体积、下降体系杂乱度和本钱,具有极大的实用价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/195946.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部