Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327414
  • 博文数量: 243
  • 博客积分: 86
  • 博客等级: 民兵
  • 技术积分: 1045
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-09 17:03
个人简介

稳重,成熟

文章分类

全部博文(243)

文章存档

2015年(2)

2013年(72)

2012年(169)

我的朋友

分类: IT业界

2013-03-06 16:56:53

原文地址:机顶盒的节目接收机制 作者:myfaxmail

一般数字电视机顶盒的接收过程是:先从TS码流中搜索PAT和CAT,从PAT中找到收看节目的PMT,通过解析PMT得到该节目的ECM、视频、音频的PID;通过解析CAT得到该节目的EMM的PID,根据EMM和ECM。利用智能卡获得控制字CW,最终解出原始的视音频数据。

    在搜索节目时,首先根据NIT表中PID取得NIT表,解析并保存,从NIT表中的第一个描述符循环中取得网络名,可根据需要决定是否显示在屏幕上,再从NIT表的第二个描述符循环中取得所有频点的几个关键字段值(频率、调制方式、符号率),获得全部网络信息资源;在已锁定的频点下,接收PSI/SI信息表中的PAT、PMT、SDT表,完成所有节目信息的收集,包括共多少个频点、每个频点下有多少套可供播放的节目、每个节目的名称、相关PCR_PID(程序参考时钟PID)、V_PID(视频PID)、A_PID(音频PID)等,根据以上信息可以组织菜单,并实现节目播放;可以通过在BAT中添加私有描述符的方式来实现节目的排序、声道设置和音量补偿等功能;最后接收EIT表,通过循环在一个物理频道上可以取得所有的节目时间表和内容。

机顶盒每次开机后会自动进行NIT表检查,若NIT表版本号有变化,则会在屏幕上显示相关信息,提示并引导用户进行更新,自动完成频道列表更新,机顶盒NIT表版本号是机顶盒判断节目更新的依据。

也就是说,一个DVB系统最基本的业务信息包括PSI和SI,EPG由SI生成,机顶盒靠EPG来引导接收和选择收看节目。

    机顶盒通常采用从PAT表→PMT表→NIT表→SDT表→EIT表解析构造EPG并同时搜索节目。但根据SI标准及机顶盒的实际解码流程,应从NIT表直接构造EPG,即先忽略PAT、PMT表。首先通过在机顶盒预先设置的主频点从传输流中直接提取NIT表,根据NIT表携带的传输系统参数搜索所有载波信息,再解析SDT、EIT表等构造出基本的EPG信息,其过程是:NIT表→SDT表→EIT表→生成EPG。EPG提供的信息主要包括:传送信息的天数(例如一周)、传送频道的数目和名称、传送的节目数、节目提供商的标识和名称、传送网络的信息(网络标识和网络名称),其细节信息还包括:节目名称、节目的简单介绍、节目的开始和结束时间、节目的主题、节目的类属、节目的观看分级限制(例如对某个年龄段进行限制)。

    机顶盒通过EPG菜单来切换不同频率的频道时的解析过程:根据SDT表给出的业务标识符service_id(它等于program_number)→PAT表→PMT表→找到所需节目的TS包→CAT表→解扰→解码(如果业务没被加扰,可省去CAT表→解扰过程)。

    当加入了BAT表时,用户可根据节目的分类来检索所需要的节目频道。首先查找BAT,根据BAT列出一系列的节目种类,比如新闻、体育、电影、音乐等,用户可选择其中自己感兴趣的类型,如电影。接收应用程序根据此BAT中包含的业务群信息,得到一个业务群列表。此时用户可以根据自己的喜好,选择自己喜欢观看的电影频道。

    此时,首先要找到该业务所对应的传输流,根据BAT中所给出的对应的传输流标识符,然后查找NIT中与此传输流标识匹配的传输流描述符,然后根据描述符中的参数(如频率、调制方式等)解调出该传输流,即transport_stream_id→NIT(得到流的解调参数)。再根据BAT中的业务群组标识符(bouquet_id)完成:bouquet_id→ service_id→PAT表→PMT表→找到所需节目的TS包→CAT表→解扰→解码的过程(如果业务没被加扰,可省去CAT表→解扰过程),从而收看到自己喜欢看的节目。同时根据service_id在SDT中查找,得到有关的业务信息,还可以查找EIT,得到有关事件的信息,比如开始时间、持续时间等。

阅读(387) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~