当前位置:首页 期刊杂志

玩转机顶盒表格之快速搜索实现

时间:2024-05-04

刘利容 蒋庆洲

摘要    在数字电视机顶盒的招标测试中,运营商客户越来越看重机顶盒的性能指标。其中,搜索速度又是显得非常重要的一环。但是由于数字电视前端规范的限制,表格的发送速度是一定的,这就限制了数字电视机顶盒的搜索速度。本文以数字电视有线产品为例,探讨了怎样通过基本的NIT,PAT,PMT,SDT表格实现快速搜索的方法,以便数字电视产业软件人员进行参考。

【关键词】嵌入式产品 PSI/SI表格 节目搜索

1 前言

1993年,欧洲成立了国际数字视频广播组织(DVB组织)。DVB组织决定新的技术必须是建立在MPEG-2压缩算法上的数字技术,必须是以市场为导向的数字技术。DVB的宗旨是要设计一个通用的数字电视系统,在此系统内的各种传输方式之间的转换有最简单的方式,尽可能的增加通用性。DVB标准提供了一套完整的、适用于不同媒介的数字电视系统规范。DVB数字广播传输系统利用了包括卫星、有线、地面、SMATV、MNDSD在内的所有通用电视广播传输媒体。它们分别对应的DVB标准:DVB-S、DVB-C、DVB-T、DVB-SMATV、DVB-MS和DVB-MC。

随着DVB组织的成立,DVB规范的发布。数字电视市场在全球如春笋成长起来。至今已有20余年的时间。在市场上诸如卫星,地面波,有线,双向,智能的数字电视机顶盒层出不穷。中国也成为了全球最大的DTH和数字有线电视机顶盒市场。但是无论这些产品形态怎么变,使用什么信道。都需要通过使用DVB标准中的PSI/SI表格进行节目搜索安装。

2 DVB标准的四种表格

在DVB标准中,有一个非常重要的标准,名叫《En300468_e3》,在这个标准里面规定了数字电视的表格指引规范。本文中重点用到了NIT、PAT、PMT和SDT四种表格:

NIT(Network Information Table)网络信息表:在一个运营商整个数字网络中是唯一的。其描述了网络里面所有的频点的信息,以及频点里面节目的一些基本信息。在这个表格中,包括了下面的一些描述子,见表1。

播出频率:5秒一次

注意:国内运营商发的NIT里面,多数情况下是没有0x41及0x83描述子的。

PAT(Program Association Table)节目映射表:在运营商每个频点中是唯一的,起描述了这个频点里面所有的PMT表格信息。在这个表格中,包括了每个PMT表对应的节目号及对应的PMT表的PID。节目数量根据运营商在每个频点的配置相关,一般为6到20个。

播出频率:0.25秒一次

PMT(Program Map Table)节目信息表:通过这个表格,可以拿到对应节目的实际视频及音频的PID,以供使用者可以观看节目。

播出频率:0.25秒一次

SDT(Service Description Table)节目描述表:在运营商每个频点中是唯一的(Act SDT),但是可以同时描述其他频点的SDT表格(Other SDT)。在这个表格中,有比较多的描述子,本文只需要使用到节目名描述子。它在SDT表每个节目段的描述里面。

播出频率:5秒一次

注意:国内运营商发送的频点内,通常不会描述其他频点的SDT表格(Other SDT)。

3 数字电视机顶盒节目搜索流程

节目搜索过程,就是一个解析运营商所有频点信息,并去每个频点搜索相关表格,从而获取每个节目的音视频PID,及节目名的过程。在这个过程中,数字电视机顶盒一般会按照下面的步骤进行节目搜索:

(1)到运营商预置的频点去获取NIT表格,从NIT表格中解析出每个频点的参数。

(2)利用高频头锁定NIT表格信息中指定的一个频点。

(3)从这些频点中取出PAT表,解析得出PMT表格的PID。

(4)通过上述PID,搜索PMT表格,再通过PMT表格解析获取音视频的PID。

(5)再搜索这个频点的SDT表格,解析得出这些节目的名字。

(6)把得到的节目音视频PID,及节目名存储到数据库中。

由于NIT和SDT表格的标准循环周期比较长,达到5秒左右,一个频点通常需要7秒钟才能搜索完毕,如果一个运营商有20个频点就需要:

主频点NIT5秒+20*7=145秒的时间才能搜索完毕。

4 节目搜索效率提高的方法

经过多年机顶盒软件编写的经验,我们总结出了一套行之有效的方法,能够大幅提高节目搜索的效率:

(1)首先,我们在主频点搜索NIT表,通过NIT表解析出每个频点的参数。这一点和普通的搜索方法无异。

(2)然后,我们在NIT表里面,利用0x41节目描述子的特性,把每个频点下的节目列表的ServiceID也可以分析出来。

(3)接着,我们搜索主频点上所有的Act SDT及Other SDT表格,再根据第二步搜索出来的ServiceID列表对应上所有节目的节目名。这样,我们就拿到所有节目的节目名了。

(4)接着,我们再到每个频点上去拿这个频点的PAT和PMT,通过搜索解析这两个表格,得到这个节目的音视频PID。上文提到PAT,PMT的间隔只有0.25秒,是非常小的,每个频点只需要2秒钟的时间就可以完成搜索和解析。

(5)最后,我们把得到的节目音视频PID,及节目名存储到数据库中。

这样,我们也假设运营商有20个频点,由于SDT表格是顺序发送的,我们可以简单的认为SDT表就只有一个,这样我们就需要:主频点NIT+SDT5秒+20*2=45秒的时间。比标准的搜索周期节约了接近68.9%的时间。大大提高了搜索效率。

5 探讨

(1)我们在上文中提到了,NIT表的0x41描述子及Other SDT表在国内运营商中是很少用的。这就需要数字电视机顶盒软件从业人员多花时间吃透文档,具有比较深厚的基本功。和运营商前端工程师共同探讨怎样才能找到提高数字电视机顶盒搜索效率的方法,以提升终端用户体验。

(2)在搜索主频点的Other SDT表格的时候,如果采用搜索一个,解析一个的方法,对于机顶盒的数据搜索及解析部分的效率要求比较高,很容易造成掉包搜不到的情况。建议使用一次出发多个过滤器,把所有的Other SDT表全部抓下来一次解析的方法。但这样对于数字机顶盒的底层驱动并发搜索能力的要求比较高,一不小心就容易造成数字电视机顶盒死锁,需要软件开发人员特别留意,内部多设计测试项进行测试,避免发货后造成大面积死锁。

(3)在搜索完主频点后,数字电视机顶盒已经拿到了所有的频点信息和节目的Service ID及节目名。其实完全可以不再需要到各个频点进行PAT,PMT表格的搜索,只需要实际播出节目的时候,再到节目所在频点去获取并解析相關表格得到音视频的PID。这样可以把搜索速度做到极致,但是搜索完毕后每到一个新的频点都会额外需要2秒的时间去获取解析PAT,PMT表格。无法达到换台快的性能指标。此点需要数字电视机顶盒软件从业人员拥有丰富经验,以便和运营商前端人员一同商讨,怎样取舍才能使最终用户得到最满意的用户体验。

6 结论

数字电视的标准看起来很简单,但是需要软件从业人员花很多时间认真学习,不断摸索,掌握其中的原理。从而才能做出更高效,易用的软件,使终端用户体验达到极致。

参考文献

[1]DVB组织标准:《EN 300 468 V1.3.1 1998-02》.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!