学术交流
当前位置:

一种数字电视广告在线发布系统的设计和实现

2015-02-14 22:34 来源:电视技术

责编:陈默

【编者按】随着数字电视的推广普及,数字电视广告开始以其丰富多彩的表现形式展现在人们眼前。本文提出并构建了一个数字电视广告在线发布系统。该系统主要由前端基于C#编程的编辑发布模块,中端基于FPGA的码流信号插入模块和后端数字电视机顶盒接收解析模块构成。介绍了整个系统的构架,并重点介绍了编辑发布模块和在数字电视机顶盒中进行的开发。

一种数字电视广告在线发布系统的设计和实现

 2015-02-11  邓凯  杨秀芝  林武  福州大学 物理与信息工程学院

随着数字电视的推广普及,数字电视广告开始以其丰富多彩的表现形式展现在人们眼前。传统的模拟电视广告是在节目录制编辑的时候植入的,无论是一个角标还是一段广告视频,都已然成为了电视节目的一部分。所以传统的模拟电视广告发布权是掌握在前端电视台手中的。而对于数字电视而言,由于电视信号的数字化和在屏显示技术(On-ScreenDisplayOSD)的发展,数字电视广告元素开始从电视节目中独立出来以单独的一个层展现在人们眼中。这样,数字电视网络运营商也拥有了发布广告的能力,与前端各级电视台和演播室共同瓜分广告市场这块蛋糕。时下流行的电子节目指南(ElectronicProgram GuideEPG)广告就拥有着丰富的表现形式。它充分利用OSD层的空间,包括强制开机广告、强制门户广告、导航条广告、音量条广告、频道列表广告、EPG菜单广告、音频广播背景广告等多种展现形式,这些形式的广告伴随着用户的按键操作而出现,随着操作界面的退出而消失。但大多数数字电视广告不具备实时更新功能,每个广告位上的广告元素一般是在机顶盒软件升级时一起打包写入到Flash中的,并在较长一段时间里重复使用。这对数字电视广告的定点投放和个性化定制产生了制约。本文将论述一种数字电视广告在线发布系统的构建,能够实现广告元素的实时接收和定时定位显示。

 

1 系统架构和具体实现

系统总体架构如图1所示。本系统通过卫星接收机接收并解调通过卫星天线接收下来的数字电视信号,前端广告编辑发布模块编辑的信息发送给条件接收系统(CAS),由CAS生成私有数据P_EMM包。数字电视信号(解调的TS流)与CAS生成的私有数据包一同发送给码流信息插入模块,由码流信息插入模块将带有私有数据的TS包插进数字电视节目的TS流中。重组之后的TS流将由QPSK调制器重新调制后发送给数字电视机顶盒,经数字电视机顶盒解调后,滤取私有数据解析并显示到电视机屏幕上。

 

1 系统架构总体框图

1.1 广告编辑发布模块

前端广告编辑发布模块使用C#语言编写,使用基于TCPSocket编程技术实现与CAS的连接。在连接建立后,考虑到数据传输的可靠性,设计了如下的通信协议:

1)编辑发布模块发送Tag=0x01CAS

2 CAS收到Tag=0x01后,返回Tag=0x02给编辑发布模块;

3)编辑发布模块收到Tag=0x02,验证成功后发送Tag=0x03,然后发送广告数据;

4 CAS收到Tag=0x03,将数据接收下来,并发送Tag=0x04确认;

5)编辑发布模块收到Tag=0x04,若数据未全部发送完成,则继续发送Tag=0x03并发送数据;若数据全部发送完成,则发送Tag=0x05

广告编辑发布模块发送的一个包的最大长度为180 byte。每一个从广告编辑发布模块发送的包,到达CAS后,前面17byte会被加入一些TS流固定标志位、循环冗余校验位等信息进行重组。这些重组的数据为25byte,加上后面的data数据组成一个188byteTS包,然后被发送到码流信息插入模块。

广告编辑发布模块可编辑的信息包括文字和图片两种类型。文字的信息量较小,一般一个数据包就可以承载全部信息。而广告图片的数据量比较大,需要用压缩算法将图片数据压缩。本系统通过一个压缩算法将BMP图片数据进行压缩,并将压缩后的数据转成BIN文件。广告编辑发布模块读取BIN文件,每次截取140byte组包,分成多个包将全部数据发送到CAS

广告编辑发布模块还有用户登录,注册和管理等功能,限于篇幅,这里不再详细介绍。

 

1.2 码流信息插入模块

码流信息插入模块在本系统中的作用主要是将CAS产生的私有数据包插入到节目码流中实现传输。CAS把生成的私有数据包发送给码流信息插入模块,私有数据包被存放到EMM存储器中,然后等待调度输出。

 

1.3 数字电视机顶盒解析处理模块

后端数字机顶盒从TS流中过滤得到需要的P_EMM包进行数据解析处理。数据解析的程序处理流程如图2所示。

 

2 数据解析处理程序流程图

 

首先对P_EMM的前17 byte进行数据解析,然后根据得到的数据类型调用字幕信息处理解析进程或者角标信息处理解析进程对数据部分进行解析处理。

字幕数据处理解析进程将判决是否对收到的字幕数据进行解析处理,并将解析得到的显示时间与从系统中提取的当前时间进行比对,根据比对结果进入到三个判决器中,控制字幕的显示时间、显示频率和结束时间。角标数据处理解析进程和字幕数据处理解析进程的设计思想相似,但该进程需要处理多包数据。本系统接收端设计了一种乱序接收算法,能在几十秒内将图片数据接收完成。这种算法的思想是先创建一个很大的空数组check[],接收并解析包号为1的角标数据包,根据解析后得到的总包数NUMcheck[2]check[NUM]全部置1,然后进行乱序接收:只要收到一个角标数据类型的包,就解析提取它的包号ID,然后进行check[ID]的检测,若为1,则接收该包的数据,并将check[ID]清零,否则丢掉该包。同时每次接收数据后,对数组的check[1]check[NUM]进行求和,若和为0,说明所有数据包全部接收完毕。

数据解析处理程序只负责向消息队列定时发送显示请求,显示请求被处理时会将有关标志位置1。界面显示程序不停的检测这些标志位,当检测到标志位被置1时,开始显示字幕或者角标,并在退出时将这些标志位清零。字幕和角标的显示程序流程如图3和图4所示。

 

3字幕显示程序流程图

 

4角标显示程序流程图

 

2 结果验证

在按照如图1所示构建的实际系统中进行测试,字幕可控的在屏幕上下两个位置上滚动显示,角标可控的在屏幕左上、左中、左下、右上、右中、右下六个位置显示,所有时间定时器工作正常,字幕和角标按规定时间循环显示并最后消失。当新的字幕或角标信息到达后,能够即时替换掉当前显示的字幕或者角标。实际效果如图5和图6所示。

 

图5 “Fujian Province Engineering Research

Center for digital TV”字幕屏幕下方展示图

 


图6 “福州大学”角标右上角展示图

3 结束语

本文论述的数字电视广告在线发布系统,主要工作集中在广告数据的即时接收和定时显示上。本文阐述了整个广告在线发布系统的架构,介绍了高效的乱序接收算法,实现了在线发布的要求。从测试结果来看取得了很好的效果。

 

该文已刊登在《电视技术》2014年第17期

订阅电话:010-59570227