一种带字符叠加的画中画视频处理器的设计与实现

时间:2022-02-18 08:07:49

一种带字符叠加的画中画视频处理器的设计与实现

摘 要:介绍一款带有字符叠加功能的画中画视频处理器,将两路视频输入信号处理后在屏幕上显示一大一小两个可调画面,减少多画面监控所需的数据存储量,并提高视频安全性。通过内部字符点阵转换,能在画面叠加任意字符信息,提供更为详细具体的画面信息,可广泛应用于审讯、交通、银行等部门的视频监控系统中。

关键词:字符叠加;画中画;视频处理器;视频监控系统

中图分类号:TN941.1 文献标识码:A

1 引言

目前的视频监控系统普遍采用画面分割器或视频矩阵来实现多画面监控,每一路视频信号的保存给存储空间提出了很高的要求。画中画视频处理器可以将两路或更多视频信号叠加成一路信号,在这一路信号上同时混入多路视频的数据,大大地减小了存储空间,而且其连续的视频流还能够防止人为修改画面信息,在视频数据安全性及保存时限要求较高的视频监控系统中得到广泛的应用。

画中画(Picture in Picture,PIP),即在一个屏幕上同时显示不同通道的两个或多个画面,并能实现画面的调整、切换等。目前国内画中画视频处理器基本都是只对视频信号进行处理,而在需要记录环境和特定的字符信息,包括日期时间、温度湿度信息以及标题等时,则采用外部字符叠加器来实现字符叠加。本文介绍一种集成字符叠加功能的画中画视频处理系统,将字符信息混入视频信号中,从而在屏幕的特定位置上与图像信号同时进行显示,不仅可以叠加静态字符,还能与上位机通讯来实现任意字符的动态叠加,脱离上位机仍能显示并保存字符,从而简化监控系统的工程实施,降低成本。

2 功能原理

本系统通过对Nextchip公司的视频处理芯片NVC1001的读写控制,来实现视频信号处理和字符叠加功能。NVC1001是一款功能强大的专用芯片,支持NTSC和PAL视频制式,具有四路视频输入两路视频输出(为叙述方便,仅以两路输入一路输出为例),通过内部寄存器的设置可以实现对每路视频输入的位置和大小进行调节,具有OSD(On Screen Display)功能,能够将混入视频信号的字符信息在屏幕上显示出来。

2.1 画中画原理

视频处理芯片NVCl001通过设置相关寄存器来支持画中画模式,最主要的寄存器如图1所示,其中CHEAN和CH_PIP控制每路输入信号的显示使能和画中画功能使能,CHEAN为高时该通道输出显示使能,而CH_PIP为高时则该通道进入画中画模式,即显示为小画面,为低时显示普通的大画面,通过改变其值能实现大小画面之间的无混叠切换;CH_HL、CH_HR、CH_VT、CH_VB则是设置通道01画面的位置坐标(以通道01为例),通过设置不同值来调节画面在屏幕的显示位置;而其内建高性能的H/V定标器由SCALE来控制,设置为000~111来调用7档不同的大小比例。

2.2 字符叠加原理

字符一般以点阵形式存储,通过一定的扫描方式逐个把点阵描绘出来并输出至显示设备。以HZKl6中的16*16点阵为例,它使用32字节数据(256个象素点)来描述一个汉字,每个象数点的颜色分为前景色和背景色,分别用1和0表示,如图2所示。将所有常用字符的点阵数据按照一定的排列顺序存放在一起,就形成了点阵字库。

在视频系统中叠加字符时,如果前端摄像头所摄取的画面与字符的前景色相同或相近时,字符将被混淆而不能识别。因此需要通过一定的转换算法,使这些点阵信息具有边框属性,例如白字黑边,这样在不同的色彩环境下均能清晰地显示字符信息。本系统的优点在于能通过单片机将标准字符点阵转换为符合NVC1001 OSD功能的字符信息,用2bit参数来表示字符的前景色、边框和背景色,在对视频信号进行画中画处理的同时实现点阵信息的转换和叠加,而不需要另外的CPU和专用字符叠加芯片来进行计算处理。

具体转换过程为:某字符32字节点阵数据存放在Character_Buf[32]中,在其每一位右边插入一个0,即扩展为64字节数据并写入NVC_Char-acter_Buf[64]。此时原点阵数据中的1转换成10,0则由00表示,也即是前景色表示成10,背景色表示成00。这样就可以判断每字节数据中偶数位为1的相邻8个偶数位的值,为1则表示该点也是属于字符前景色,为0则认为是字符的边框,将该0位右边的对应奇数位置1,该点就表示成01了。

通过对标准字符点阵所有偶数位的判断和计算后,逐次更新NVC_Character Buf[64]得到新的字符信息,此也即是系统待叠加的字符信息。这给系统设计提出两点要求:一是准确读取固化于存储芯片中的标准字库点阵信息,并通过算法实现正确转换;二是要求较高的单片机处理速度,完成一连串处理命令时保证字符显示的连续性,不出现明显的停顿感。

3 硬件电路设计

本系统的字符叠加功能是以NVC1001为核心,通过单片机W77E58的控制,并辅以一些的电路和器件来实现的。硬件设计包括视频解码电路、视频信号处理电路、控制电路、通信接口电路及存储电路,如图3所示。

视频解码电路:设计上选用解码芯片NVP1000A,它具有全数字同步锁相电路、自动增益放大器和高性能二维Y/C梳状滤波器等,支持12C协议,及可编程调节的亮度、对比度、色饱和度。从外部获得的两路复合视频信号经过NVP1000A内部A/D转换、滤波、解码及校准电路后得到Y、Cb、Cr的数字色差信号,最后通过54M的二分频时钟信号来控制两路信号的独立分时输出。

视频信号处理电路:作为视频信号处理和字符叠加的核心部分,NVC1001与四个部分进行数据交换。解码电路输出的8位数字视频信号同时接入VIN_01和VIN_02,并由CLK_01和CLK_02时钟信号来控制输入选通;8根数据线MAD[7:0]经+5V上拉电阻后与单片机的P0口相连,来实现寄存器的初始化、设置和数据读写;监视器组的36个接口管脚与16M的SDRAM对应管脚直接相连,最后的复合视频信号Y/C经视频驱动芯片放大后即可输入到显示设备。

控制电路:选用Winbond公司的快速单片机W77E58,通过全新设计的微处理器内核,去除多余的时钟和存储周期,在相同的晶振频率下,其运行速度比传统8051系列快1.5到3倍,给复杂字符点阵转换和叠加提供保证,即使满屏显示字符也不会有大的停留感。1K的SRAM也给字符转换所需的缓存区提供足够空间。

通信接口电路:具有RS232、RS485两个串口来扩展系统与设备的连接,可同时与PC上位机和温湿度传感器等进行通讯,实现上位机控制和温度湿度信息的静态叠加显示。 存储电路:NVC1001支持标准16M~256M的SDRAM直连,给电路设计带来很大的方便,根据视频输入通道数来选择存储容量不同的SDRAM,用于保存待处理的视频信号数据,得到实时流畅的视频输出。AT24C16用于存放各种需掉电保存的数据,包括视频处理芯片的寄存器、参数设置以及字符数据等,也同样支持12C协议,而SST25VF020则用于存储14*14的一级、二级常用汉字库(每个字符以32字节存储,由其它程序装入),通过SPI协议与单片机实现数据读写,节省了单片机的硬件资源。

4 功能实现

处理器功能通过单片机程序和上位机设置来实现。单片机程序主要包括初始化模块(管脚、串口、各芯片相关寄存器)、读取存储器保存的数据信息模块、读字符点阵模块、字符点阵转换模块、键盘扫描模块及与上位机通信程序模块;而上位机通过串口通讯向单片机发出各种控制命令实现对系统画面属性和字符叠加的控制等。

4.1 单片机程序

单片机执行初始化程序后,根据存储器的数据来设置各芯片寄存器,调节各通道画面属性和信息,再把要叠加的字符串点阵数据依次从Flash中读出,并完成字符逐个转换和叠加显示,然后等待键盘输入和上位机的控制命令,程序流程如图4所示。系统上电后初始化各管脚、定时器、串口等,设置制式标志寄存器,并按视频制式来设置画面质量、画面显示及其模式、画面的位置和大小等,还原掉电前的属性设置;根据键盘输入和上位机通信命令去执行相应的子程序,并在每次修改寄存器之前,将其设置值写入存储器中,实现掉电保存的功能。

除了执行画中画功能外,还根据上位机命令执行字符叠加功能,按叠加要求把相应的字符信息显示在屏幕的指定位置。

4.2 字符点阵信息读取

标准汉字字库中汉字是以两个字节的机内码形式存储,第一个字节为区码,为了与ASCII码区别,范围从0A1H开始(小于80H的为ASCH码字符),对应区位码中的第一区;第二个字节为位码,范围也从0A1H开始,对应某区中的第一个位码,这样,将汉字机内码减去0A1A1H就得该汉字的区位码,进而计算其对应的存储偏移量。以HZKl6中某汉字的机内码为例来计算其区位码和存储偏移量:

区码X=(机内码字节1-0xAl)

位码Y=(机内码字节2-0xAl)

偏移量OFFSET=(X*94+Y)*32

(HZK24则乘以48来计算偏移量)

根据计算出的偏移量就能得到字符存储的起始位置,只需将其后的连续32个字节数据读出,就得到了字符的点阵信息。

单片机将每次接收到的字符串显示位置和内码信息都保存在存储器中,下次上电时查询、判断相应存储区并读出数据,转换后把它们显示在画面上,实现字符信息的掉电保存功能。同样可以在程序代码中写入固定的字符机内码,程序运行时自动完成静态字符的叠加,在某些应用中就可以完全脱离上位机来实现字符显示。

4.3 字符点阵转换算法

视频处理芯片NVC1001根据所要叠加的点阵信息来设置点的属性寄存器MDATA,而EXTV和EXTH则是确定叠加字符的位置坐标,由芯片提供的屏蔽功能MMask来判断该点信息是否写入SDRAM,即混入到视频流中,最终视频输出实现字符叠加。点的属性参数有Mix、Blink、Index1、Index2,分别对应亮度、闪烁以及颜色。字符点阵转换就是针对标准字库点阵的每个点来判断其周围各点的属性,并用Index1、Index2来表示,设置不同的数值去调用不同的颜色LUT,或为前景色,或为边框,或为背景色。

有一点需要注意的是:标准字符点阵信息是高位在前,低位在后,而NVC1001中的MDATA描述点阵则是低位在前高位在后,因此在字符转换之前必须把32字节点阵数据重新排列并扩展为64字节存储,再进行字符边框的判断。通过设置颜色表LUT不同的值,将转换后的数据写入MDATA就能以不同的颜色来显示字符的前景色、边框和背景色。

5 结束语

本系统将画中画视频处理和字符叠加功能集于一体,可以实现动态和静态字符叠加,功能齐全、操作方便、布线简单、成本低,已成功应用于检察院审讯室监控系统中。应用结果证明系统运行安全可靠,有效地监视目标和记录各项信息,取得良好的录像监控取证效果。本系统还能设置地址实现多机联网,通过上位机来控制多台画中画处理器独立显示字符,在商场、银行、交通管理等多点集中监控场所具有广阔的推广应用前景。

上一篇:放射形配网潮流计算的一种新的牛顿法 下一篇:MPEG-2视频解码器在DirectShow中的实现