一种基于对等计算技术机顶盒在屏显示系统的实现方法

文档序号:7919385阅读:121来源:国知局
专利名称:一种基于对等计算技术机顶盒在屏显示系统的实现方法
技术领域
本发明是一种P2P(Peer-to-Peer)机顶盒OSD(On Screen Display)系统的实现方案,主要用于解决在TI(德州仪器)公司最新提供的双核开发平台TMS320DM6446(达芬奇数字平台)上实现P2P机顶盒图形用户界面操作的问题,属于对等网络应用领域。

背景技术
OSD(On Screen Display)即在屏显示技术,广泛用于嵌入式相关领域,因其高度人性化的人机交互界面,良好的应用程序定义接口而广受欢迎。采用OSD技术可以让产品通过简单的菜单操作实现复杂的控制功能,弱化了消费者对产品过度复杂的功能使用上的担心和忧虑,是未来嵌入式设备开发中不可或缺的一部分。
达芬奇数字平台(DaVinci)TMS320DM6446是TI公司新提供的面向视频开发领域,拥有ARM(Advanced RISC Machines)和DSP(Digital Singnal Processor)双CPU(Central Processing Unit)内核的高端嵌入式开发平台,主频高达720MHZ。该平台上拥有丰富的硬件接口如USB(Universal Serial Bus)、网卡、IDE硬盘接口(Integrated Drive Electronics)等等,因此可以选择在该平台上开发一款高性能和拥有广泛业务(包括电子商务,股票交易,视频聊天等)的IPTV(Interactive Personality TV)机顶盒。
当前市场上流行的机顶盒都是采用C/S计算(Client/Server Computing)或是B/S计算(Brower/Server Computing)这样不对称的计算模式,其对服务器端的带宽以及CPU运算能力要求高,架设和维护的代价大,因此在IPTV网络中引入P2P计算模式是极具有创新思想的设计。在IPTV机顶盒网络中,考虑到实际的运营模式,采取集中目录式P2P计算模式,集中目录式结构采用中央服务器(Tracker)管理P2P各节点,P2P节点向中央目录服务器注册关于自身的信息(名称、地址、资源和元数据),但所有内容存贮在各个节点中而非并服务器上,查询节点根据目录服务器中信息的查询以及网络流量和延迟等信息来选择与定位其它对等点并直接建立连接,而不必经过中央目录服务器进行,我们在网络中设置一台拥有完整流媒体资源的种子(seed)服务器作为流媒体资源存放地,这样就可以保证内容发布的可管理性,使得对共享资源的查找和更新非常方便,这为大规模的信息共享、直接通信和协同工作提供了灵活的、方便的、可扩展的计算平台,其网络逻辑拓扑如图1所示。因此该模式的引入减轻了服务器端的计算压力,提高了媒体流传输的速度,同时让机顶盒空闲的运算资源得到充分的利用。
OSD系统开发主要借助于操作系统提供的软硬件资源接口,设计与实现一套GUI(Graphical User Interface)系统,操作与管理整个系统的资源,如可以实现在线点播与直播服务器端的流媒体资源、可以播放本地磁盘中的音视频资源、可以整理磁盘空间、配置整个OSD系统环境变量等等操作。
综上所示,一套优异的基于DM6446平台的P2P机顶盒OSD系统除了能够完成必需的功能外,还将架起客户和开发商沟通的桥梁。它关系到整个IPTV机顶盒项目开发的成败。


发明内容
技术问题本发明的目的是在DM6446平台上提供一种基于P2P协议的IPTV机顶盒OSD系统的解决方案,解决其GUI设计、中文显示、XML(eXtensible MarkupLanguage)编码转换、与EPG(Electronic Program Guide)服务器交互以及系统集成等问题,较之当前市场上流行的机顶盒OSD系统而言,该方案具有新颖性、灵活性、易扩展性和易操作性。
技术方案本发明的方法引入图形分层技术、位图存储技术、编码转换技术、SOAP(Simple Object Access Protocol)技术,分别用于解决OSD系统开发中所需要处理的GUI设计、中文显示、XML编码转换以及与EPG服务器交互等要求。
该方法为 步骤1).进行需求分析,对在屏显示系统-OSD需要完成的功能进行分析,并生成需求分析文档, 步骤2).按照步骤1的分析文档设计功能模块,生成各个模块之间的逻辑关系和功能说明文档, 步骤3).按照步骤2的功能说明文档,设计与实现缺省界面,在缺省界面中,显示本地视频资源、P2P网络视频资源和设置与管理三个图标菜单操作按钮, 步骤4).按照步骤2的功能说明文档,设计与实现本地视频资源菜单,该菜单打开存储在本地的可扩展标记语言-XML文件,该文件里存放着磁盘存储器中的视频节目的列表,并包含有相应的存储位置;该列表分页并分级显示,在一级节目列表中包含客户建立的节目分类;在二级节目列表中包含某一类节目的具体视频文件名称的列表,选定某个节目名称后,对该节目执行的操作有播放、删除或移动, 步骤5).按照步骤2的功能说明文档,设计与实现“P2P网络视频资源”菜单,该菜单用于电子节目单-EPG客户端与EPG服务器通信,从EPG服务器上下载当前正在播放的直播节目名单列表和可以从服务器上进行点播的点播节目名单列表;这些列表在本地生成XML文件,在屏幕上列表分页并分级显示;若是直播节目列表,在一级节目列表中显示当前正在直播的电台影院名称,在二级节目列表中,显示某电台影院正在直播的视频节目名称;若是点播节目列表,则一级节目列表中显示存储于服务器端可以点播的节目分类列表,在二级节目列表中显示某类节目可以点播的节目名称列表,对该列表中的节目执行的操作有播放、保存, 步骤6).按照步骤2的功能说明文档,设计与实现“设置与管理”菜单,该菜单对整个OSD环境进行配置,同时可以对磁盘空间进行整理,在“设置”部分,完成IP地址、用户名和密码部分的配置;在“管理”部分,包含有空间整理、娱乐扩展和功能扩展三个子部分;其中“空间整理”用于查看剩余空间、删除保存在磁盘存储器中某个视频分类的所有内容、从某类中移动视频节目到另一类;“娱乐扩展”用于播放音频文件以及在电视机上进行的小游戏;“功能扩展”用于通过USB接口从外部移动存储设备中拷贝音视频文件到机顶盒的硬盘,包含的功能操作主要有打开、浏览、选定、拷贝、删除、移动、卸载, 步骤7).使用遥控器的上下键、左右键以及确定键进行菜单遍历的操作,具体为使用左右键循环遍历缺省界面的三个功能图标,使用确定键选定某个功能;对本地视频资源、P2P网络视频资源或设置与管理的节目或子菜单列表的遍历使用上下键循环遍历节目或子菜单名称列表,使用左右键回退到缺省界面或上级菜单,使用确定键选定。
有益效果本发明通过对采用P2P技术的IPTV机顶盒的功能与需求进行详细划分,采用模块化设计和人性化设计的思想,本着拥有良好人机交互界面的原则,提出并实现了整套OSD系统。技术的关键点是不仅要满足机顶盒的各项功能需求,还要让系统拥有稳定性、可靠性以及拥有良好的人机交互界面。下面我们给出具体说明 完善的功能通过对机顶盒功能与需求的详细划分,我们将OSD系统的GUI菜单设计成三部分,每一部分完成不同的功能,这样我们在满足管理机顶盒软件系统资源要求的前提下,还充分利用该平台所拥有的其它资源,如磁盘存储器、USB接口、网络接口等。整套OSD系统,通过一个遥控器便可以输入IPTV网络服务器的IP地址、用户名、密码、定制服务内容、播放、删除、移动音视频文件、选择播放节目列表、娱乐扩展等操作。
模块化设计整个OSD系统按照功能需求分成数个模块,模块之间分工明确,耦合性低,可复用性高,便于系统的升级和重新配置,如与EPG服务器交互模块、中英文混合排版模块、双向列表操作模块、XML文件读写模块等等。
良好的系统扩展性由于系统模块之间采用的是一种松藕合的层次化设计,系统模块之间的通信机制完全采用层次化的结构,因此可以方便的添加新的功能,也可以很容易的升级现有的功能,所以该系统拥有良好的可扩展性。
高度的可靠性和稳定性通过对OSD系统的单元测试,集成测试以及整个机顶盒软件系统的系统测试表明该OSD系统运行状况良好,占用系统资源少,拥有良好的容错机制以及灾难恢复能力,能够适应不同级别网络速度。
易操作以及界面美观由于该系统采用人性化设计,并且对界面进行了美化,使得该系统使用遥控器操作,方便快捷,反应速度灵敏,界面操作简单,功能强大,使用遥控器的上下左右键和确定键可以方便遍历GUI菜单的所有部分,并且该系统采用了中英文混合排版显示,成功将高性能的该平台本土化,具有较高的市场推广潜质和商业应用价值。



图1是整个IPTV网络的系统框图。图中包括EPGServer/Tracker服务器、视频资源服务器、代表Peer端的机顶盒以及模拟电视机。表示采用P2P技术的IPTV网络逻辑拓扑结构。
图2是机顶盒软件体系结构框图。从下到上依次是硬件驱动层、MontaVistalinux操作系统、P2P协议、播放器和OSD。表示机顶盒软件体系结构的组成部分,以及相互之间的逻辑结构。
图3是OSD系统的层次划分.从下向上依次是背景层、视频窗口层0、视频窗口层1、OSD窗口层0、OSD窗口层1、鼠标控制层。表示该平台OSD系统的层次划分以及相互位置。

具体实施例方式 一、体系结构 整个机顶盒软件体系结构如图2所示,从该图中可以看到OSD位于整个机顶盒软件体系结构的最上层,通过详细的规划与设计,负责管理与调配整个机顶盒应用程序。在该图中,硬件驱动层为系统提供硬件的定义与操作,操作系统MontaVista是整个机顶盒的核心,管理与组织整个系统的软硬件资源,P2P协议即是用于流媒体文件传输的对等传输协议,播放器用于被OSD调用播放视频和音频文件。
具体的来看,OSD系统的各个层次划分如图3所示,在图3中我们可以看到OSD系统总共分为六层,除了背景层和鼠标操作层,每一层都被分配不同的帧缓冲设备号,执行不同的操作。帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。下面我们给出系统中各个层次的具体说明 视频窗口层0用于显示媒体流信息,被分配的帧缓冲号为/dev/fb/1,支持442的YCbCr色彩的图像显示操作。
视频窗口层1功能同视频窗口层0一样,用于显示媒体流信息,被分配的帧缓冲号为/dev/fb/3,支持442的YCbCr色彩的图像显示操作。
OSD窗口层0用于执行OSD操作,被分配的帧缓冲为/dev/fb/0,支持RGB16的图像文件操作,将RGB16格式的图像文件直接拷贝到这个窗口层下,即可显示在屏幕上,也可以在这个层下,执行文字显示操作,用于设计OSD的菜单。这层是整个OSD系统设计的核心层,几乎所有待显示的OSD内容都要将内容拷贝到该层下才能完成。
OSD窗口层1也用于执行OSD操作,被分配的帧缓冲为/dev/fb/2,这层主要是用来在OSD中实现图像的透明效果。在OSD图像混合中,为了实现图像的透明效果,采取在图像文件的处理与存储中附加上一个8位信息的方法,这个附加的通道代表图像中各个像素点透明度的信息叫做Alpha通道。修改其值可以得到不同的图像透明度显示效果。
二、方法流程 该部分详细说明发明内容各个部分的设计与实现 (1)GUI的设计与实现 通过对机顶盒功能的详细划分,我们将GUI设计分成三部分,分别是“本地视频资源”、“P2P网络视频资源”、“设置与管理”。在不同的部分实现不同的功能,“本地视频资源”用于管理存放在机顶盒磁盘空间中的音视频资源,可以对其进行播放、移动、删除、上传等操作,它通过读写在本地生成的一个XML文件实现资源文件路径,格式,内容的查找与修改;“P2P网络视频资源”用于实现P2P网络中流媒体文件的点播与直播,通过登陆EPG服务器,验证用户的合法性后,将当前节目列表下载到客户端,节目列表中区分点播与直播视频内容,对这些节目可以执行播放、保存等操作;“设置与管理”用于配置OSD系统的环境以及管理机顶盒的磁盘空间,主要实现设置IP地址、用户名、密码、查看磁盘剩余空间、对磁盘空间中的内容进行删除、移动等管理、用遥控器操作USB接口、娱乐扩展等。
在该OSD系统菜单中,我们采用双向动态链表进行导航操作,实现父子窗口、父子控件以及同屏翻页、同屏滚动等事件的操作。当窗口链的状态发生变化时,必须动态分配和撤消这些存储区。窗口的创建、撤消、关闭等OSD内部函数及消息提供了很好的内存管理方法,它是整个OSD系统能否稳定运行的基础。
(2)中文显示 由于TI公司提供的该机顶盒开发平台,不支持中文显示,为了实现该平台的本土化策略,必须要开发出支持中文显示的菜单才能让产品符合市场的要求。在本平台中,考虑到性能和资源相对欠缺的嵌入式环境,我们采用易于管理、易于操作的点阵字库,点阵字库又叫位图字库,是以位图形式存储字符,在数据中,用0或1区分汉字的笔画。我们选择16点阵的位图字体库,该字库每一个汉字用16*16位的0或1点阵表示一个汉字。若在该位置存在汉字的笔画,则为1,否则不存在汉字的笔画,则该位置置为0。
因为在计算机内一个英文字符用一个字节的ACSII码表示,该字节的最高位经常用于奇偶校验位,因此实际表示字符的只有7位,即可以表示2^7=128个字符,但是由于汉字的复杂性,需要使用两个字节表示一个汉字,针对这种情况国家制定了国标码。国标码规定,组成两字节代码的各字节的最高位均为0,即每个字节仅只使用7位,这样在机器内使用时,由于英文的ASCII码也在使用,可能将国标码误看作两个ASCII码,因而在机器内使用汉字时,每个字节的最高位均为1,以表示该码表示的是汉字,这些国标码两字节最高位加1后的代码称为机器内的代码,俗称“内码”。
汉字内码与区位码有固定的转换关系,例如汉字字符“国”字的内码为0xb9fa,它所对应的区码和位码分别为 qm=0xb9-0xa0; wm=0xfa-0xa0; 因而该汉字在16*16点阵汉字库中距离字库文件头的偏移位置offset(以字节为单位),可计算得 offset=(94*(qm-1)+(wm-1))*32L 获得汉字在字库中的偏移位置后我们就可以将其读出来,并用像素描述函数 putpixel(int x,int y,int r,int g,int b) 在屏幕上按照点阵的排列逐点描述并显示出来,可以通过设置RGB以更改显示字体的颜色。
(3)XML编码转换 在该OSD系统中,所用到的是LIBXML2库函数,由于该函数库默认的是UTF-8(Universal Transformation Format)编码方式,该编码方式是UNICODE的一种变长字符编码,UTF-8用1到6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。所以当在XML文档使用中文时必须指明支持中文编码的编码方式,否则在解析和生成时将会报错。另外显示、输入、输出的时候还必须进行编码转换,不然将很有可能出现乱码。如使用xmlNodeGetContent(xmlNodePtr cur)接口获取一个含有中文的节点内容后,为了能够正常显示,必须将返回值进行编码转换。我们采取调用系统自带的API(Application Programming Interface)函数iconv(),将此函数按照要求封装成如下形式 const char*codeConvert(char*srcCode,char*destCode,const char*content) srcCode表示指向待转换字符串的指针; destCode表示指向转换后字符串的指针; content表示指向待转换字符串内容的指针。
通过调用封装后的该函数,我们在显示时将汉字从UTF-8编码格式转换成ISO-8859-2编码格式,在写入XML文件时,进行反向操作,即可正确的读写XML文件中的汉字。
(4)实现与EPG服务器交互 在该部分,我们采取SOAP技术,使用gSOAP工具,即时读取EPG服务器端更新的节目列表,向服务器请求某个节目的种子文件,实现EPG客户端与服务器端的无缝交互。简单对象访问协议(SOAP)是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。因此我们在这里采用使用SOAP技术的gSOAP编译工具,gSOAP提供了一个SOAP/XML关于C/C++语言的实现,从而让C/C++语言开发web服务器端或客户端程序的工作变得容易很多。gSOAP利用编译器技术提供了一组透明化的SOAP API,并将和开发无关的SOAP实现细节相关的内容对用户隐藏起来。gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构,反之亦然。这样,只用一组简单的API就将用户从SOAP细节实现工作中解脱了出来,能够专注和应用程式逻辑的实现工作了。
OSD系统启动后,我们按照菜单划分遍历整个GUI菜单,采用遍历GUI菜单的方式描述OSD系统各个部分在开发中所处的位置以及功能,这样便可以体现出我们对整个OSD系统的总体规划以及详细设计 1 缺省界面的设计与实现 启动系统后,首先显示的缺省显示界面,在缺省界面中,显示“本地视频资源”、“P2P网络视频资源”、“设置与管理”三个图标菜单操作按钮,使用遥控器的左右键可以移动遥控器的焦点位置,使之从一个按钮移动到另一个按钮,移动到焦点位置后,焦点位置的图标曾现被关注状态,按下遥控器确定按钮可以选定该菜单。
2“本地视频资源”的设计与实现 使用遥控器选定“本地视频资源”后,即打开在本地存储的XML文件,该文件里存放着磁盘存储器中的视频节目的列表,并包含有相应的存储位置。该列表分页并分级显示,在一级节目列表中包含客户建立的节目分类,如电影、电视剧、曲艺杂谈等。在二级节目列表中包含某一类节目的具体视频文件名称的列表,可以使用遥控器上下移动焦点、进行选择和翻页操作,当客户选定自己喜爱的节目后,按下遥控器确定按钮,选择对某一个视频文件执行相关功能操作,可以操作的功能有“播放”、“删除”、“移动”,其中“播放”用于调用播放器实现视频节目的播放,“删除”用于删除该节目在磁盘存储器中的内容,“移动”用于将视频节目从某一类移动到另一类中。
3 “P2P网络视频资源”的设计与实现 使用遥控器选定“P2P网络视频资源”后,即与EPG服务器通信,从EPG服务器上下载当前正在播放的直播节目名单列表和可以从服务器上进行点播的点播节目名单列表。这些列表在本地生成XML文件,在屏幕上列表分页并分级显示。若是直播节目列表,在一级节目列表中显示当前正在直播的电台影院名称,在二级节目列表中,显示某电台影院正在直播的视频节目名称;若是点播节目列表,则一级节目列表中显示存储于服务器端可以点播的节目分类列表,在二级节目列表中显示某类节目可以点播的节目名称列表。选定某项视频节目后,可以对该节目进行相关功能操作,如“播放”、“保存”,当客户选择“播放”后,从EPG服务器端请求该节目的种子(seed)文件,然后下载种子文件,使用种子文件解析器打开并启动P2P下载,判断下载缓冲大小,若已下载视频的大小超过设定的可以进行播放的界值后,OSD启动播放器进行视频播放,即进行P2P传输的同时播放视频文件。“保存”用于当某个视频文件播放完毕后,客户可以根据自己的喜爱选择对其是否保存以便下次观看。“保存”后会自动在“本地视频资源”的XML文件中生成一个节点。
4 “设置与管理”的设计与实现 使用遥控器选定“设置与管理”后,即可以对整个OSD环境进行配置,同时可以对磁盘空间进行管理。在“设置”部分,完成“IP地址”、“用户名”、“密码”部分的配置,其中“IP地址”是用于填写EPG服务器的IP地址,可以使用软键盘或者使用遥控器上的数字键进行填写,“用户名”和“密码”是用于IPTV运营商分配给合法用户的账号和密码填写,只用合法的用户才可以使用IPTV网络中的视频资源;在“管理”部分,包含有“空间整理”、“娱乐扩展”、“功能扩展”三个子部分。其中“空间整理”用于查看剩余空间、删除保存在磁盘存储器中某个视频分类的所有内容、从某类中移动节目到另一类;“娱乐扩展”用于播放音频文件、在电视机上进行的小游戏;“功能扩展”用于通过USB接口从外部移动存储设备中拷贝音视频文件到机顶盒的硬盘,包含的功能操作主要有打开、浏览、选定、拷贝、删除、移动、卸载,这些操作都是通过遥控器的按键实现。
权利要求
1.一种基于对等计算技术机顶盒在屏显示系统的实现方法,其特征在于该方法为
步骤1).进行需求分析,对在屏显示系统-OSD需要完成的功能进行分析,并生成需求分析文档,
步骤2).按照步骤1的分析文档设计功能模块,生成各个模块之间的逻辑关系和功能说明文档,
步骤3).按照步骤2的功能说明文档,设计与实现缺省界面,在缺省界面中,显示本地视频资源、P2P网络视频资源和设置与管理三个图标菜单操作按钮,
步骤4).按照步骤2的功能说明文档,设计与实现本地视频资源菜单,该菜单打开存储在本地的可扩展标记语言-XML文件,该文件里存放着磁盘存储器中的视频节目的列表,并包含有相应的存储位置;该列表分页并分级显示,在一级节目列表中包含客户建立的节目分类;在二级节目列表中包含某一类节目的具体视频文件名称的列表,选定某个节目名称后,对该节目执行的操作有播放、删除或移动,
步骤5).按照步骤2的功能说明文档,设计与实现“P2P网络视频资源”菜单,该菜单用于电子节目单-EPG客户端与EPG服务器通信,从EPG服务器上下载当前正在播放的直播节目名单列表和可以从服务器上进行点播的点播节目名单列表;这些列表在本地生成XML文件,在屏幕上列表分页并分级显示;若是直播节目列表,在一级节目列表中显示当前正在直播的电台影院名称,在二级节目列表中,显示某电台影院正在直播的视频节目名称;若是点播节目列表,则一级节目列表中显示存储于服务器端可以点播的节目分类列表,在二级节目列表中显示某类节目可以点播的节目名称列表,对该列表中的节目执行的操作有播放、保存,
步骤6).按照步骤2的功能说明文档,设计与实现“设置与管理”菜单,该菜单对整个OSD环境进行配置,同时可以对磁盘空间进行整理,在“设置”部分,完成IP地址、用户名和密码部分的配置;在“管理”部分,包含有空间整理、娱乐扩展和功能扩展三个子部分;其中“空间整理”用于查看剩余空间、删除保存在磁盘存储器中某个视频分类的所有内容、从某类中移动视频节目到另一类;“娱乐扩展”用于播放音频文件以及在电视机上进行的小游戏;“功能扩展”用于通过USB接口从外部移动存储设备中拷贝音视频文件到机顶盒的硬盘,包含的功能操作主要有打开、浏览、选定、拷贝、删除、移动、卸载,
步骤7).使用遥控器的上下键、左右键以及确定键进行菜单遍历的操作,具体为使用左右键循环遍历缺省界面的三个功能图标,使用确定键选定某个功能;对本地视频资源、P2P网络视频资源或设置与管理的节目或子菜单列表的遍历使用上下键循环遍历节目或子菜单名称列表,使用左右键回退到缺省界面或上级菜单,使用确定键选定。
全文摘要
一种基于对等计算技术机顶盒在屏显示系统的实现方法引入图形分层技术、位图存储技术、编码转换技术、SOAP技术,分别用于解决OSD系统开发中所需要处理的GUI设计、中文显示、XML编码转换以及与EPG服务器交互等要求。在DM6446平台上提供一种基于P2P协议的IPTV机顶盒OSD系统的解决方案,解决其GUI设计、中文显示、XML编码转换、与EPG服务器交互以及系统集成等问题,较之当前市场上流行的机顶盒OSD系统而言,该方案具有新颖性、灵活性、易扩展性和易操作性。
文档编号H04N5/445GK101365082SQ200810156260
公开日2009年2月11日 申请日期2008年10月8日 优先权日2008年10月8日
发明者王汝传, 黄益贵, 韩志杰, 徐小龙, 李玲娟, 敏 吴, 支萌萌, 李致远 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1