机顶盒的节目控制(精选5篇)
机顶盒的节目控制 篇1
目前, 看数字电视需配置机顶盒, 机顶盒是可以将数字电视信号转换成模拟信号的变换设备, 必须通过机顶盒解密才能收看节目。数字电视是如何通过机顶盒对节目进行控制呢?本文重点介绍节目列表更新和节目区域禁播两个方面。
1 节目列表更新
数字电视节目内容在不断调整变化, 节目时有增添删除, 同时, 机顶盒用户, 由于学历、年龄层次不同, 初次接触数字电视产品, 在使用上不可避免的存在各种疑问和操作失误, 需要用户经常进行频道搜索, 进行节目列表更新, 主要方式如下:
(1) 改变NIT版本号
开机启动机顶盒, 若机顶盒保存的频道列表为空时, 开始比较起始频点NIT表私有描述符中的version_number, 若当前的version_number与机顶盒中保存的更新标识版本号不同, 机顶盒立即给出频道更新信息提示, 弹出自动搜索提示框, 询问是否进行自动搜索;按确认后根据主频点上的NIT表进行快速自动搜索, 按照新的SI信息更新频道的传输信息和节目信息, 并将搜索到的频道按运营商的要求自动排序。
频道排序根据Order Audio Reg_descriptor描述符中的逻辑频道号进行升序 (从小到大) 排列。没有逻辑频道号或逻辑频道号为0的业务, 自动搜索时不被保存在频道列表中。如果有新增频道, 则显示“新增N个节目”, 其中N表示新增节目数。
(1) 描述符结构
版本对应值
(2) 实例分析
850101
85——描述符标识;
01——后续数据长度;
01——当前节目列表版本号。
(2) SDT表实时更新
节目内容和名称进行了变更, 需要用户经常进行频道搜索, 导致机顶盒在搜索频道时产生搜索设置复杂、搜索时间过长、搜索错误等问题, 为用户的使用带来很大的不便, 同时增加了运营商的服务运营成本, 可否有一种方式, 不需用户重新启动机顶盒或重新搜索, 节目名称和内容就可以发生变更呢?
SDT表实时更新, 就是一种比较可行的办法。前端节目变更时, 所变更节目的输出PID值不变, 对SDT表中的节目名称进行改变, 终端机顶盒只需要实时更新SDT表, 用户就可以实时看到更新的节目, 不需要重新启动机顶盒或重新搜索。
(3) 频道跟随表
集成NIT版本号和SDT表实时更新的思想, 九州公司提出了频道跟随的解决方案, 即在遵照标准的基础之上, 将所有频道相关信息搜集起来, 重新组织结构, 生成频道信息表, 以DC数据轮播的方式播发给机顶盒, 机顶盒启动时接收到频道数据表后, 经过版本对照, 可以在小于一秒的时间内完成频道的搜索和更新, 无需用户进行任何操作。
使用频道跟随表, 可以避免因信号及前端数据错误引起的频道搜索不全, 错误等问题, 它可以简化用户搜台的操作, 具有添加频道排序、频道音量补偿、频道声道设定、节目自动增加等功能。
(1) 节目自动增加功能
节目内容在不断调整变化, 节目时有增添删除, 需要用户经常进行频道搜索。前端节目需要增加或删除时, 重新捕获一次节目频道信息, 机顶盒启动时接收到频道数据表后, 经过版本对照, 可以在小于一秒的时间内完成频道的搜索和更新, 无需用户进行任何操作, 完成节目的自动增加功能。
(2) 频道排序功能
DVB标准数据中并没有关于频道顺序的描述, 搜索到的频道常常是杂乱无序的, 用户需要耗费很大精力排定频道顺序。我们在频道数据表内添加了频道排序信息, 机顶盒接收到频道数据表后, 可以按照前端设定的顺序自动排列频道, 用户只要按照自己的习惯稍微调整一下频道顺序即可。
同时, 机顶盒具有用户频道设置智能记忆功能, 当进行频道更新时, 在保证频道数据完整, 正确的基础上, 保留用户设置的频道顺序、频道属性。
2 节目区域禁播
区域禁播与区域锁定是两个不同概念。区域禁播是CA系统对数字电视业务提供的有效控制的一种技术, 是针对数字电视业务层的控制。区域锁定是防止在统一前端技术体系下的区域漫游, 是对机顶盒和智能卡的区域唯一性和合法性进行控制, 特定的机顶盒和智能卡只能在唯一的区域有效地接收数字电视业务。
区域禁播中的区域只是一个逻辑上的划分, 并不一定是地理位置上的区域划分。区域禁播是针对某一项或多项业务的控制, 常常与节目授权共同作用。当某个业务设置了区域禁播, 该逻辑区域内的用户无论是否拥有该业务的授权都无法收看该业务。
区域锁定是针对所有的业务而言, 区域锁定中的区域是地理位置上的区域划分, 通常以行政区域作为区域锁定的执行对象。可以有效地对各地营销策略与价格策略进行控制, 有效防止机顶盒和IC卡漫游, 最大限度地保障各级运营商的经济利益。
本文重点说明节目区域禁播。
机顶盒进行节目搜索时根据IC卡第二个存储单元中的Region_id值搜索NIT表描述符中对应的Region_id值相等的Service并保存下来。其中:Region_id分为低8位和高8位, 如果高8位区域码相等, 可以加入节目列表。如果区域码不相等, 需要比较低8位节目类型码。低8位用来描述不同的节目类型包。必须节目类型码按比较存在两个Region_id对应位全为1的情况才允许加入节目列表。若遇到区域码高8位为0的节目则无需与IC卡中区域码做比较直接加入节目列表。
实例:
IC卡中的Region_id为0x0206, 表示用户位于02区, 并允许加入两个节目类型包 (0x02和0x04)
06用二进制数表示为:0000 0110
02用二进制数表示为:0000 0010
04用二进制数表示为:0000 0100
在此两个二进制数中, 都有一位与06的二进制数的一个“1”的位置相同, 所以这2个节目都加入节目列表。
节目Region_id为0x0304, 表示节目属于03区, 并属于04节目类型包。虽然区域码不相同, 但是节目类型码比较, 节目类型包04第2位都是1所以节目需要加入。
以上就数字电视机顶盒节目控制做了较为详细的阐述, 随着数字电视技术的发展, 机顶盒操作的方便性越来越高, 确保数字电视整体转换顺利进行。
机顶盒的节目控制 篇2
随着近几年有线电视由模拟向数字技术体制的过渡,网络数据业务的开发,交互式有线电视用户应运而生。交互式有线电视业务,是指以数据交互方式提供的视频、音频及数据业务。经过欧、美及日本等地区的试验,现已批准的国际标准定义的交互式有线电视业务,其接收方式仍是基于电视机的数据终端设备,如标准所规定的Cable Modem,也可以是集成式的数字电视机,但是最多的还是网络电视的数字机顶盒。可以说在模拟电视到数字电视的过渡中,数字电视机顶盒充当非常重要的角色。
机顶盒(STB)是用来增强或扩展电视机功能的一种信息设备。机顶盒可分为两大类:一种是用来增强电视的娱乐功能,可分为条件接收(CA),准视频点播(NVOD),电子节目指南(EPG),它可获得更清晰、更稳定的图像和声音质量;另一种是用来扩展电视机的功能,如可实现电视机上网,网络游戏等。
电子节目指南(简称EPG)通用软件平台是通过接收、分析、处理系统服务信息(SI),完成EPG信息接收,为用户提供电子节目指南信息,信息包括所有频道、电视台的当前节目、后续节目、播放时间及相应的各种描述,用户可以浏览节目信息并切换到自己喜好的节目。在电子节目指南模拟系统中,首先要求做好中间件数据结构,其次就是模拟出电子节目指南应用程序系统。接下来本文将对对EPG的实现做简要的阐述和分析,以求达到抛砖引玉的目的。
1 EPG功能
电子节目指南(EPG)为用户收看电视节目和享受信息服务提供一个良好的导航机制,使用户能够方便快捷地找到自己关心的节目,查看节目的附加信息。
EPG应包含以下功能:
1)节目单:以“频道—时间”方式提供一段时间内的所有电视节目信息。
2)当前节目播放:从节目单中选择当前的节目进行播放。
3)节目附加信息:给出节目的附加信息,如节目情节介绍等。
4)节目分类:按节目内容进行分类,如体育,影视等。
5)节目预定:在节目单上预定一段时间之后将要播放的节目届时自动播放;
6)家长分级控制:对节目内容进行分级控制。
2 系统数据结构建立
由于SI中提供了EPG所需的基本信息,因此EPG基本信息必须通过业务信息(SI)传送,以保障综合接收解码器IRD获取EPG基本信息时的兼容性。以下是SI中几个重要数据表说明。
2.1电视台列表(主表),数据表名称为tvstation,本数据表存储所有已注册电视台的详细信息。
2.2 节目列表(“电视台列表”表的子表),表名称为programe。
2.3 节目一级分类,表名称为Content_level。
2.4 二级分类(“节目一级分类”表的子表),表名称为programetype2
3 数据检索
电子节目指南系统最重要的就是要做得适合人们习惯,一般情况下,人们在看电视的时候总是会问自己某某时候有什么节目,或是某某频道有什么节目,还有就是什么时候有新闻等等,这就可以归纳为三类,时间,频道,节目类型。
因此可以将电子节目指南的设计分为两大部分构成,一部分是频道,一部分是节目。由“频道-时间”方式来提供一段时间内的所有电视节目信息,而节目类型溶入其中,细述如下:
·频道部分:列出所有频道电台的详细信息。
·节目部分:列出所有电视节目的详细信息。
节目部分中又分为三种检索方式,即按时间、频道和类型检索,如下:
·在时间检索方式中提供日期和星期两种方法检索,在这两种方法中,又提供了时间段二次检索,这样更加有利于时间的精确定位,其中对频道分类也特别明显。
·在频道检索方式中按照频道提供的信息来检索,但是也提供了时间的二次检索。
·在类型检索方式中按照节目分类信息进行检索,不仅对时间进行了二次分类,而且对频道分类也特别明显。
在上面整个方案的设计中可以看出,始终将“频道”和“时间”紧紧联系在一起,可见“频道-时间”是整个检索的主动脉,这也是设计中关键的一步。
4 系统应用程序的实现
本模拟系统采用ASP+Access方式检索数据,所以在系统应用程序实现中,大部分用到的是ASP知识,下面简单描述一下应用程序实现要点。
4.1 连接数据源(DSN)
在本系统中,连接数据源的方式如下:
注意DSN参数必须在SERVER和DRIVER参数之后。:
4.2 创建Recordset对象的实例
无论是使用特意创建Recordset对象,如:
还是直接执行Execute,都将建立Recordset实例。
另外不管是Connection对象还是Recordset对象对数据库的访问,这些信息最终要交给command对象来控制,由该对象负责向数据库提出有关的访问请求,该对象也包括若干方法、属性及Parameters集合,并通过Execute方法操作数据库,如果使用的是查询数据库命令select,那么也同Connection对象的Execute那样,最终将结果存于Recordset对象实例。
4.3 利用Recordset对象显示查询结果
利用Recordset对象所提供的属性显示查询结果,字段表示方法为:<%=Server.HTMLEncode(rs.Fields(“channel”).Value)%>。详见源程序。
注意:rs为Recordset对象实例,conn为connection对象实例。
5 总结
本文从理论上阐述了电视机顶盒头端-电子节目指南模块模拟解决方案,给出了机顶盒中电子节目指南的初步设计,包括解决方案、数据搜索,并且使用ASP检索结果,整个过程从总体设计、详细设计、编码、调试,功能都完全实现。因此本文对研究数字机顶盒程序开发具有一定的理论和实践参考价值。
摘要:机顶盒(STB)是用来增强或扩展电视机功能的一种信息设备。电子节目指南(简称EPG)为用户收看电视节目和享受信息服务提供一个良好的导航机制,使用户能够方便快捷地找到自己关心的节目,查看节目的附加信息。本文主要研究了数字机顶盒电子节目指南(EPG)模块解决方案及模拟系统的实现。建立了一套完整的EPG解决方案模拟系统,其中包括业务信息部分的数据结构和数据检索等。
关键词:STB,EPG,模拟系统,ASP
参考文献
[1]计算机网络技术机顶盒开发指南[M].人民邮电出版社.2000.6The development guide to computer network technologyset-top box[M].The People's Posts and Telecommunica-tions Press.2000.6
[2]萨师煊,王珊.数据库系统概论[M].高等教育出版社.2000SA S X,WANG S.Introduction to database system[M].Higher Education Press.2000
[3]韩国峰.ASP第一步[M].清华大学出版社.2008.11HAN G F.The Frist Step for ASP[M].TSINGHUA Univer-sity Press.2008.11
[4]徐罕.网站ASP后台解决方案[M].人民邮电出版社.2001.1XU H.The backstage solutions of Wibesite ASP[M].ThePeople’s Posts and Telecommunications Press.2001.1
[5]严蔚敏,吴伟民.数据结构[M].清华大学出版社.2008.10YAN W M,WU W M.Data Structure[M].TSINGHUA Uni-versity Press.2008.10
机顶盒的节目控制 篇3
搜台和换台速度在业界是关于机顶盒竞争力的主要表现,而搜台作为机顶盒的基础,更是重中之重。数字机顶盒的智能节目搜索软件子系统已有过很多的理论探讨,方法和思想基本一致,但是各个厂家的搜台速度任然有些差距,这也是各个厂家之间竞争的砝码之一[1,2]。
根据目前数字有线电视专用SOC的硬件体系架构,节目搜索的数据流程可以简化为如图1的形式,有线数字电视码流信号通过Tuner下变频后进入QAM解调器中进行解调,解调后的复用数字信号进入解复用装置进行解复用。然后就可以得到存有节目服务信息(SI/PSI)及节目的AUDIO、VIEDO信息的数据包。
节目服务信息、节目的音频和视频数据包都有相应的ID号对其进行标识,这就是MPEG标准中所说的PID,解复用单元在硬件上只能对不同PID的数据包进行过滤,为了方便上层的使用在驱动层增加了对数据包的拼装的功能,并且为了对相同PID的数据包进行筛选,增加了软件过滤单元,软件过滤单元有256个字节大小,可以对数据包的前256个字节进行一一比对和过滤,从而更方便地为上层提供接口。上层得到的数据分为Section数据和ES数据。Sections主要由一些表格组成,这里称为PAT(节目关联表)、PMT(节目映射表)、NIT(网络接口表)等;ES数据主要由音频基本流和视频基本流构成。
节目的搜索的过程就是抓出PAT、PMT、EIT等表格,然后将节目号、节目名称、视频和音频对应的PID找出来,并组织能为一个便于管理的数据结构供存储和读取使用。节目搜索主要分为全频扫描式搜索、单频点搜索、NIT搜索及其拓展应用——广告搜索等几个大类。对不同的系统使用不同的策略从而提高搜索的灵活性和效率。
本文主要介绍数字电视机顶盒搜台方面驱动、中间层,以及应用层软件子系统的设计与开发思想与实现方法,从多方面提高搜索效率与速度。
1 智能节目搜索软件子系统的层次结构设计
本节目搜索软件子系统采用层次化与结构化的设计原理进行设计,软件层次结构图如图2所示。为了充分实现上层软件的硬件无关性以及程序开发与维护的灵活性,将软件子系统主要分为驱动层、中间层、应用层、操作系统四个层次[3,4]。
1.1 驱动层
驱动层细分为Hardware abstract layer(HAL——硬件抽象层)、Low Level Driver(LLD——低层驱动层)、High Level Driver(HLD——高层驱动层)三个层次。
(1) HAL主要是完成对硬件基本参数的抽象,如寄存器的引用以及寄存器的操作等,这是离硬件最近的一层既要从硬件的角度出发提高效率更要为上层提供高效的接口。
(2) LLD主要是使用HAL提供的接口实现一定功能的操作,对于Demux来说就包括设置PID过滤器,管理缓冲区内存空间,处理Demux中断、数据拼装、数据的软件过滤等操作。
(3) HLD就是为了方便上层的调用再次进行的一种封装,这个层次的重点是增加驱动的易用性、安全性。在上层看来只需要在接口函数中传入PID、SFilter(软件过滤器)、一段内存单元的起始地址与长度、再编写一个取数据的Callback(回调函数)就可以完成数据的获取了。
这些层次要解决的问题就是针对现有的硬件,优化设计设备驱动,来提高系统的抓取PAT、PAM、NIT等各种表的效率;并逐层进行封装,提高程序的硬件无关性;提供多个层次的软件接口以提高程序灵活性、易用性和安全性。
1.2 中间层
中间层也细分为Service Information Engine(SIE——服务信息引擎)、Service Information Monitor(SIM——服务信息监视器)、Service Information Search(SIS——服务信息搜索)、Search Task(S_TASK——搜索任务)几个层次,其中SIE和SIM并列于同一层,SIM是对SIE功能的扩展,分为两块的主要目的是方便系统的裁剪。
(1) SIE的主要功能是通过调用HLD取得sections数据并传递给SIS处理。
(2) SIM的主要功能是对Sections数据进行检测,可以按照设定的需求及时发现并检测出sections数据的变化,从而提供一些拓展功能,如动态PID、NIT节目更新等。
(3) SIS是搜台的核心模块,对取得的Sections数据进行最高层次的拼装,获得最终需要的数据结构,然后对PAT、PMT、NIT等数据表进行分析,形成节目各种信息并存储,这一层软件的设计是搜台效率的关键。
(4) S_TASK是离应用层最近的一层,S_TASK主要是与上层应用软件打交道的,它维护着一个自己的TASK(任务),为上层提供更加简单的接口,上层只要指定搜索方式、频点、符号率、QAM相数等数据就可以直接开始搜索,并定时传出搜索进度、搜到的节目基本信息供上层使用。
1.3 应用层
APP and UI这个部分主要是与应用程序和人机界面相关的部分,搜索开始之前可以接收遥控器输入的搜索参数和控制信息,开始搜索后,实时显示搜索到的节目列表、更新搜索进度条、并使用弹出窗口显示出提示信息。
1.4 操作系统层
这部分使用了日本的工业控制实时嵌入式操作系统ITRON,并加以改进,使其具有时间片轮转的多进程处理能力。
总结上面描述,主要的设计思想就是多级抽象与分层设计,为了提升搜台效率主要对驱动进行优化设计,并且在中间层使用高效率算法,充分发挥硬件的优势。
2 智能节目搜索软件子系统的实现
2.1 HAL实现
直接与硬件打交道的一层,分为寄存器引用以及寄存器操作两个部分,系统使用的是基于MIPS的数字电视专用SOC,其中所有的寄存器都是32位的,寄存器的寻址为直接寻址,对整个寄存器进行操作的速度是最快的,针对位操作通过HAL进行封装实现,寄存器在内存地址空间中是统一编址的,所以为了方便使用寄存器、并将寄存器的名字与相应的内存单元相对应,现作程序实现HAL。
(1) 寄存器的引用
Demux部分的寄存器起始地址为0x00001000,那么使用以下的宏定来实现寄存器的引用;
#define Demux_reg_start_address 0x00001000
#define Demux_con *( Demux_reg_start_address+0)
#define Demux_dat *( Demux_reg_start_address+1)
#define Demux_Filter *( Demux_reg_start_address+2)
……
……
……
#define Demux_regN *( Demux_reg_start_address+N)
(2) 寄存器的操作
寄存器的操作主要也就是置位和清零两种,对于位操作使用了单独的两个函数对其进行封装,只需要传入寄存器的名字以及要对哪一位操作即可。
置位操作接口层函数:
UINT8 BITset(UINT32 register,UINT8 bit_num)
复位操作接口层函数:
UINT8 BITclr(UINT32 register,UINT8 bit_num)
有些对寄存器的一个操作就可以直接完成一个特定的功能,如设置PID等
PID设置函数:
UINT8 PID_set(UINT32 PID_set_number ,UINT32 PID_channel_num)
2.2 LLD实现
有了上层对于寄存器的封装,这一层的主要作用就是利用底层的接口来实现具体的功能,通过上层传入的PID值、Filter值就可以直接获取一个需要的包并放入指定的内存单元中,为方便参数的传入定义如下一个结构体数据结构。
根据传入的参数不同分为同步和异步两种模式,同步模式就是设置完参数并使能Demux后,当一个完整的Section得到以后写入固定的内存单元中,这个过程不停地进行,当新的内容到来的时候就直接覆盖旧的内容,直到停止命令发出;异步模式就是当设置并使能Demux后,当有一个完整的所需Section得到后写入固定的内存单元,并等待上层来取,过程不再继续直到下一次异步指令开始。同步和异步的软件流程如图3所示。
(1) 异步接口
Demux进行初始化并且设置完成参数后,做一次异步操作的使能,Demux就获取一次数据,获取成功后发出信号,并触发回调函数来取数据,如果想取下一组数据就必须重新使能异步操作。
(2) 同步接口
Demux进行初始化并且设置完成参数后,做一次同步操作的使能,Demux就不停地抓取数据,在新的数据到来的时候就冲掉缓冲区中旧的数据,并更新数据准备好标志位,上层通过查询标志位来取数据。
2.3 HLD实现
LLD中只实现了一些最基本的抓表功能,虽然效率高但是使用起来比较麻烦,和市面上常见的Demux接口函数相比太过于复杂,并且安全性和稳定性存在一定的风险,都存在丢包的可能性。同步接口可能旧的数据没有取走,新的数据就来了,于是旧的数据就丢失了;异步接口可能旧的数据在内存中没有取走,新的数据就进不来。
针对以上的问题,HLD采用LLD中异步模式,使用一个单独的TASK来管理数据的获取过程,并且在数据缓冲缓冲方面使用一个RING-BUFFER机制以减少丢包的可能。RING-BUFFER就是使用一大段内存软件来充当缓冲区,获取的数据一个接着一个放入缓冲区,直到缓冲区满后才覆盖前面的部分,如果出现覆盖的情况就发出OVER_LOOP警告,这样就可以大大降低由于上层软件没有及时取走数据造成的丢包现象,软件的流程和RING-BUFFER的示意图如图4所示。
2.4 SIE和SIM实现
SIE所作的工作就是根据SIS要求取得数据并且将数据传递给SIS,其工作就像一个引擎一样将数据源源不断地提供给SIS,从SIS的角度看,SIE就是一个数据源,在有数据需求时,将需求发给SIE,SIE就会返回SIS需要的数据,其基本工作流程如图5所示。
SIM的功能是对SIE的一个很好的拓展,SIM是一个独立的TASK可以根据需要对特定的数据进行监视,并且当监视的结果满足要求后会发出消息报警,其软件流程如图6所示。
2.5 SIS实现
S_TASK层有三种策略,其实全频扫面和NIT搜索都是建立在单频的基础上的,单频的效率影响所有其他策略的效率。SIS完成的主要功能就是单频策略分析以及流程。有了高效的单频策略将对整个搜索的性能起到至关重要的作用,单频策略的软件流程图如图7所示。
2.6 S_TASK实现
这个部分给APP层一个非常简单的接口用于开始一个搜索的流程,S_TASK拥有一个自己的TASK,我们命名为S_TASK,这个task有一个自己消息队列,如果想开始一个搜索的过程就可以给S_TASK发一个消息,S_TASK接收到消息后就会按照消息的参数开始一个指定策略的搜索过程。三种策略为全频扫描、单频搜索、NIT搜索,单频搜索的策略如上一节所示,图8主要是NIT搜索以及全频扫描的流程。
2.7 APP实现
节目搜索的结果要实时地显示在电视屏幕上,如图9所示就是节目搜索软件子系统的最终的用户界面,主要分为三个部分实现[5]。
(1) 最上面深蓝色部分为标题部分,表明系统目前的功能,这里为节目搜索,还有就是显示出目前的时间。
(2) 中间的部分分为两块和一个进度条,左边的一块显示目前搜索得到的电视节目、右边的显示广播节目,进度条表明目前的搜索进度。
(3) 最底下的部分显示提示信息,如按钮说明等信息。
3 搜台子系统的拓展——广告接收子系统
机顶盒节目搜索子系统的另一个重要的作用就是广告信息搜集,广告搜索任务一般主要负责抓取三种表(控制表、信息表、数据表)[6],如何快速获取广告信息是广告系统性能的直接体现,针对典型的广告系统,充分应用节目搜索子系统的接口来实现。
3.1 快速搜索策略的定制原则——运营商前端广告的发送策略分析
(1) 前端广告流发表顺序
(2) 表策略方案
由于广告中采用同一PID:0x0B26和TABLE_ID=0xCF,用于区别三种类型表标志主要通过table_extention_id, table_section_number,Demux在此处不仅要为相应的channel设置PID还需要为不同的Channel 分配相应的软件filter。
(3) 程序流程
3.2 问题分析与解决方案
理论上说这种方案可以实现系统的需求,但是最后发现系统抓表的速度非常缓慢,码流中数据是5秒钟播发一遍,但是完成整个广告数据的接收需要5分钟左右,通过调试和分析发现,此种方法在一轮数据中只能接收一个数据包。主要的原因在于当设置好相应的通道的准备抓表的时候,相应的表刚好被错过。最根本的原因是Demux底层设置好参数到Callback是一个固定的延时,为了解决这个问题,针对广告系统的特殊性,采用只设置一次Demux的方式,将所有的数据全部放入Buffer中,然后再单独进行处理,这样效率可以提高60倍左右。
4 结 语
本系统采用分层设计的思想,增加软件灵活性和硬件的无关性,制定的搜索策略可以高度适应于多数节目流的需求,对于一些特殊的节目流如广告流就可以直接调用LLD层驱动进行加速处理,并获得较高的效率。
摘要:将机顶盒智能节目搜索软件子系统分为驱动层、中间层、应用层三个层次进行设计。驱动层采用多层抽象的思想进行设计,来同时实现数据的封装以及操作的封装;中间层采用多任务与层次化的设计思想,横向多任务并行,纵向分层次完成任务,数据采用环形缓冲区;应用层充分利用系统的OSD(On Screen Display)资源,设计友好的、便于操作的人机界面。由此实现的智能节目搜索软件子系统提升了软件的可移植性、灵活性与高效性;并且可以拓展应用于很多与节目搜索子系统相关的其他领域。
关键词:机顶盒软件,节目搜索,广告搜索,分层设计,多任务
参考文献
[1]钟杨俊,吴君钦.数字电视机顶盒的嵌入式软件设计[J].科技信息,2009(22):14.
[2]王化刚.数字电视机顶盒原理[J].中国有线电视,2010(4):474.
[3]丁力.基于ST解决方案的高清机顶盒的设计实现[J].通信与广播电视,2011(1):21-22.
[4]陈皑峰,向丽,荣玮,等.基于ZR39235的单芯片降成本有线机顶盒方案[J].信息终端与显示,2010,34(9):54-56.
[5]刘畅.适用于机顶盒的嵌人式窗口系统开发[J].信息终端与显示,2010,34(8):62-65.
[6]陈新华,张志田,戴领,等.实现数字电视机顶盒选单广告功能的研究[J].信息终端与显示,2011,35(2):44-47.
[7]ISO/IEC 13818-1.Recommendation H222.0,GENERIC CODING OFMOVING PICTURES AND ASSOCIATED AUDIO SYSTEM[S].
机顶盒的节目控制 篇4
回看是点播的一种形式, 但在互联网电视内容服务中, 新闻节目点播服务仅由广播电视播出机构开办, 影视剧点播服务和图文信息服务可以由广播电视播出机构与拥有版权资源的机构合作开展。集成播控平台不能直接提供这类回看服务, 而需要由相关内容提供商提供。因此, 现在部分集成播控平台提供的电视节目时移和回看功能没有政策支持, 必须取消此类功能。
有分析人士指出, 此次整治OTT机顶盒对视频网站并没有影响, 主要是加强对OTT互联网电视及其它广电领域业务的管控, 之前在OTT领域处于灰色地带的做法、业务等将被陆续纠正。
机顶盒的节目控制 篇5
本文分析了DDR接口的SSN效应, 并提出了基于数据重发的DDR控制器的设计以减少DDR接口的SSN效应。本文提出的设计以损失较少的DDR接口数据带宽为代价, 通过数据比特翻转控制来减少SSN效应。较少的SSN使得低成本的QFP封装能够应用于高速的DDR接口中, 有助于提高机顶盒芯片的竞争力, 并减少对环境的消耗与污染。
1 SSN效应
DDR接口的SSN效应可以由图1说明。图1表示了一对电源地为2个接口驱动器提供电源地回路。QFP封装主要的寄生效应是电感, 如图1中的L。当DDR接口开始向DDR颗粒写数据1时, 电流通过L和PMOS管, 并输出到PCB传输线, 引起外部传输线电平升高。当输出信号翻转为0时电流从外部传输线流入芯片, 通过驱动器的NMOS管, 然后通过L回到电源的地。在信号翻转过程中, DDR接口的驱动器感受到的电源与地将是一个叠加SSN噪声的非理想电源与地。这个SSN电压噪声引起输出波形的边沿发生恶化, 信号延时发生抖动, 最终导致系统的工作时序减少, 数据异常, 系统稳定性降低。
当一对电源地为更多驱动器提供电源地回路时, 如果多个驱动器同时输出, 每一份电流都要在电源地的寄生电感上产生感应电压d V即SSN。这个SSN又反作用于每个驱动器上。由电感的感应电压计算式可得SSN反比于电流变化时间dt, 正比于封装寄生电感值L与变化电流d I。
式中:n是驱动器的个数。
当同时翻转的比特增加时, SSN变得更严重。以16 bit位宽的DDR颗粒的设计为例, 当16 bit数据同时从0翻转到1时, 此时的SSN将在电源上形成最大的电压变形。如果要减少SSN, 可以减小L, 减小d I, 增加dt, 或者减少同时翻转的驱动器个数n等[4,5,6]。
图2是1个电源、1个地为1~8个数据IO提供电源地回路时的SSN的SPICE仿真结果。由图2可知当1~8 bit共同翻转时, SSN在电源上产生的电压波动的峰峰值分别是160 m V, 290 m V, 380 m V, 460 m V, 530 m V, 600 m V, 660 m V, 730 m V。8 bit翻转时的噪声幅度是1 bit翻转时的4.6倍, 是4 bit翻转时的1.6倍。如果减少同时翻转比特的数量就可以显著降低SSN。
2 DDR接口与重发流程
一个16 bit位宽的2 Gbit存储容量的DDR3颗粒的功能引脚的定义如表1所示。
DDR颗粒的低8 bit和高8 bit各有1 bit的DM信号作为写入使能。LDM为低8 bit数据的DM信号, HDM为高8 bit数据的DM信号。当DM为高时对应传输的数据不存储进DDR颗粒。当[HDM, LDM]=00, 01, 10, 11时分别表示不写入数据, 写入低8 bit数据, 写入高8 bit数据, 写入16 bit数据。当DM为高时, 由于对应的数据不写入DDR颗粒, 所以此时对应的数据可以是任意值。
利用DM信号, 可以设计基于重传的DDR控制器。当一次写传输操作中如果因为同时翻转比特较多导致SSN严重时, 可将1次写传输分成2次写传输。通过数据复制的方法减少同时翻转的比特数目。
上文提出的DDR控制器的重传流程如图3所示。在系统初始化阶段设定最大翻转比特N。当系统开始运行时对DDR的读写操作进行判断。如果是读操作, 则正常进行读操作;如果是写操作, 则再对写数据中的最大翻转比特M进行计算。
如果最大翻转比特M没有超过设定最大翻转比特N, 则按照图4正常写传输。如果最大翻转比特M超过设定最大翻转比特N, 则将一次burst 8变换成2次burst 8写操作。同时按照图5、图6方式控制DM信号与数据比特。
经过变换后每一次数据跳变都有8 bit数据不变化, 最大同时跳变比特数降低到8, SSN也将相应降低。
3 效率分析
上文提出的方法可以减少SSN效应。但是由于数据重传带来DDR带宽的降低。当DDR读操作和写操作的比例是1∶1时, 极端情况下如果每次写传输都重发一次, 则DDR带宽降低1/3。由于机顶盒芯片在DDR中存储的数据是电视图像。图像数据通常具有极高相关性, 高翻转的数据所占比例不高, 需要重发的数据量并不大。
以lena图为例, 统计当以burst8的方式存储的亮度信息时DDR接口上数据的同时翻转比特数。1次burst8传输将传送16 byte数据。以每一个像素8 bit计算, 一次burst8传输将传送16个相邻比特的亮度数据。以相邻2个像素的亮度数据按照比特组合成一个16 bit的传输数据。每8个传输数据内统计相邻数据的数据跳变的最大比特数。最后统计最大比特数的概率分布, 统计结果见表2。
统计结果表明burst8写操作中最大翻转比特11出现的概率最大。最大翻转比特大于12时出现的概率快速减小。当DDR读操作和写操作的比例是1∶1时, 当设定最大翻转比特为15时, 只有0.60%的数据需要重传, DDR带宽降低0.30%;当设定最大翻转比特为14时, 由于数据重传带来DDR带宽降低1.46%;当设定最大翻转比特为12时, 由于数据重传带来DDR带宽降低8.00%。结果表明可以用较少的带宽代价减少SSN的负面影响。
4 小结
DDR的工作频率受到多种因素影响。其中DDR接口的SSN效应是重要的因素之一。低成本的QFP封装在消费类电子芯片中得到了广泛应用。但是高寄生电感效应限制了采用QFP封装时的DDR接口速度。
本文利用DDR3标准中的DM管脚功能, 提出对高翻转率的数据进行重发, 将比特翻转率减少, 从而得到较少SSN的DDR控制器的设计方法。分析结果表明这个方法能在不改变封装电感参数的前提下, 以较少的DDR接口带宽为代价有效减少SSN, 提高DDR接口的工作频率与系统的鲁棒性。这个方法特别适合应用于低成本的QFP封装的机顶盒芯片设计。
参考文献
[1]DDR3 SDRAM standard JESD79-3F[EB/OL].[2012-10-20].http://www.jedec.org/sites/default/files/docs/JESD79-3F.pdf.
[2]SHYH J J, SHUHUA K, JUI T C, et al.Low switching noise and load adaptive output buffer design techniques[J].IEEE SCCS, 2001, 36 (8) :1239-1249.
[3]KOH W.Memory device packaging-from leadframe packages to wafer level packages[C]//Proc.6th IEEE CPMT Conf.[S.l.]:IEEE Press, 2004:21-24.
[4]TAKAHASHI N, SUMINAGA S, KAGAWA K, et al.Design practices and issues in controlling simultaneous switching noise[C]//Proc.Electron.Packag.Technol.Conf.[S.l.]:IEEE Press, 2005:6-10.
[5]STAN M R, BURLESON W P.Bus-invert coding for low-power I/O[J].IEEE Trans.Very Large Scale Integr.Syst., 1995, 3 (1) :49-58.
【机顶盒的节目控制】推荐阅读:
机顶盒的发展趋势08-07
购买机顶盒的请示06-16
机顶盒的定义种类和功能介绍06-16
IPTV机顶盒08-11
网络智能电视机顶盒10-01
有线数字电视机顶盒05-22
智能网络电视机顶盒09-14
数字电视机顶盒技术检测与维修经验点滴10-20
节目质量控制10-09
新闻节目的编排07-18