数字电视机顶盒的接收过程
一般数字电视机顶盒的接收过程是:先从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,得到有关事件的信息,比如开始时间、持续时间等
数字电视机顶盒的接收过程相关推荐
- 数字电视机顶盒的工作原理
数字电视机顶盒由高频头.QAM解调器.TS流解复用器.MPEG一2解码器.PAUNTSC视频编码器.嵌入式CPU系统和外围接口.CA模块和上行数据调制器组成.工作原理如附图. 数字电视机顶盒的工作过程 ...
- 详解数字电视机顶盒的功能技术与应用3
·交互式STB 虽然一体机可能代替普及型STB,但在数字电视发展中,由于业务的不断扩展,STB的软件也将不断完善,特别是在交互式领域,随着中间件的完善和应用, STB就成为一个价格低廉的硬件平台,可以 ...
- 基于linux 开源机顶盒_基于linux的数字电视机顶盒几种升级方式的设计与实现
摘要: 本文主要阐述了基于linux操作系统的数字电视机顶盒的常用几种升级方式:OTA,USB,网络,结合常用的bootloader:cfe,u-boot实现升级做了简述,并综合对比其各自的优劣. 关 ...
- 数字电视机顶盒开发学习平台
数字电视机顶盒开发学习平台 产品简介 » 数字电视机顶盒开发学习平台目标: 1.让院校师生.嵌入式开发爱好者.工程师成为真正的嵌入式开发人才. 2.追赶数字电视科技浪潮,为职业生涯打造真正的利器. 3 ...
- Linux网络包接收过程的监控与调优
Linux内核对网络包的接收过程大致可以分为接收到RingBuffer.硬中断处理.ksoftirqd软中断处理几个过程.其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来, ...
- linux内核网络协议栈--数据包的接收过程(二十)
本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 本文只讨论以太网的物理网卡,不涉及虚拟设备,并且以一个UDP包的接收过程作为示例. 本示例里列出的函数调用关系来自于kerne ...
- linux内核网络协议栈--数据包的接收过程(二十二)
与其说这篇文章分析了网卡驱动中中数据包的接收,还不如说基于Kernel:2.6.12,以e100为例,对网卡驱动编写的一个说明.当然,对数据包的接收说的很清楚. 一.从网卡说起 这并非是一个网卡驱动分 ...
- Android深入四大组件(八)广播的注册、发送和接收过程
前言 我们接着来学习Android四大组件中的BroadcastReceiver,广播主要就是分为注册.接收和发送过程.建议阅读此文前请先阅读Android深入理解四大组件系列的文章,知识重复的部分, ...
- linux手动注入网络数据_Linux网络 - 数据包的接收过程
本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 如果英文没有问题,强烈建议阅读后面参考里的两篇文章,里面介绍的更详细. 本文只讨论以太网的物理网卡,不涉及虚拟设备,并且以一个 ...
最新文章
- 什么是python第三方库
- PHP扩展 Mongo 与 MongoDB
- python中读取文件内容-深入学习python解析并读取PDF文件内容的方法
- C++:34---union:联合/共用体,一种节省空间的类
- linux vnc检查,检查Ubuntu VNC设置(避免远程登陆)
- 剑指offer系列48---左旋转字符串
- 让领导狂夸,让业务目瞪口呆的报表,竟然是这样?
- visual studio 设计器不显示_嫦娥上升器为什么不设计成月球勘测器?
- 根据需求进行批量新增
- shell中set的用法(转)
- Mac安装rocketmq
- 计算机课题推荐人意见,课题推荐人意见
- 维护设备的库存信息-SERIAL_EQBS_POST
- csirs参考信号_发送和接收点(TRP)及信道状态信息参考信号(CSI-RS)传输的方法与流程...
- JavaScript:实现ROT13密码算法(附完整源码)
- ios 收藏app内容或网页到手机桌面
- enti下载器_短跑enti策略:如何在不破坏软件的情况下改进软件
- win10的Win快捷键使用简易操作方法
- 电子秤方案介绍——体脂测量功能
- Windows照片查看器无法显示此照片,因为计算机上的可用内存可能不足。