数字电视基础概念汇总.pdf
《数字电视基础概念汇总.pdf》由会员分享,可在线阅读,更多相关《数字电视基础概念汇总.pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 一 章 MPEG-2简介什么是MPEG和 MPEG-2?MPEG 是 Moving Picture Experts Group 的简称,MPEG-2 是 MPEG 和 ISO 组织设计的一个数字视频压缩规范,主要用于DVD和 DVB上,当前的标准文档是ISO13818.什么是DVB?DVB是 Digtal Video Broadcast的简称,是欧洲所有国家和其他部分国家和地区使用的数字电视标准.其中美国的ATSC标准也是在DVB标准的基础上实现的.什么是TS码流利PS流?T S是 transport stream的简称,就是“传输流”.DVB数据广播采用的数据格式就是TS码流.PS是 p
2、rogram stream的简称,就是 节目流”.DVD中采用的数据格式就是PS流.这两种流的格式是不同的,TS格式具有很强的错误校正功能,适合传输,而PS格式适合存储在媒体中.在这里,着重描述的是TS码流格式.什么是PID?PID是 Packet identification的简称,就是“包标志符”.DVB系统把不同的数据打包成不同的数据包,用系统唯一的一个13 b its数字标志该数据的类型.例如,PIDRxOO表示是DVB系统中的PAT包,而 PID=0 xl0表示是DVB系统的N IT包.不同的节目(包 括 Video和Audio)分别采用不同的PID,例如,我们在PMT表中如果检测到
3、PID=0 x0120的PID是VIDEO数据,那么表示包号码是0 x0120的所有包都是Video数 据,其他依此类推.什么是PAT?PAT是 Program Association Table的简称,即”节目关联表”.PAT属于DVB系统流中的一个包,包号码(PID)是 OxOO.PAT表描述了 DVB系统流中包含什么样的PID,主要是描述当前流的NIT表格的PID号码是多少,当前流中有多少个不同类型PMT表,每个PMT表对应的频道号等信息.什么是PMT?PMT是 Program Map Table的简称,即”节目影射表”.PMT的 P ID 是服务器自由定义的(但不会和系统保留的PID冲
4、突).这个PID是在PAT表中描述的,比如,如果在FWT表中有0 x100项的内容,那么说明所有PID是 0 x100的包都是PMT表.不同的频道有不同的PMT,也就是说,一个不同的PMT代表的是一个不同频道.PMT表格和PAT表格配合在一起,就可以检 测 出 DVB流中所有存在节目的所有P1D,因此,数字电视搜台就是依靠这两个表格数据完成的.什么是CAT?CAT是 Conditional Access Table的简称,即”条件访问表”,PID是 0 x01.CAT携带的是服务器的私有信息(C A 系统就需要使用该表格实现节目的解密).什么是SDT?SDT是 Service Descript
5、ion Table的简称,即”服务器描述表”,PID是 Oxll.SDT携带的是电视台名称和电视节目名称.DVB接收系统接收SDT表中的节目信息,实现比较友好的界面显示和操作.什么是NIT和 EIT?NIT是 Network Information Table的简称,即”网络信息表”.EIT是 Event Information Table的简称,即”环境信息表”.N IT可以提供当前流的节目信息,也可以提供和当前流有关联的流的节目信息.EIT提供的是流节目信息的改变,比如个节目已经开始,或者已经结束的信息等.什么是EPG?EPG是 Electronic Programme Guides的简称
6、,即“电子节目指南”.该功能可实现预告近段时间即将播放的节目内容,同时支持基于内容的检索.什么是teletext?Teletext就是我们常说的”图文电视”,当然在MPEG-2中,图文电视已经数字化,也就是说,图文信息已经做为数字化信息在T S 流中传播.但最终,数字化的图文信息都将转化为模 拟 的 V B I信息插入到正常的电视信号中实现图文电视的显示.图文电视有很多标准,比如close caption,WSS 等,欧洲的 DVB 使用的 teletext 标准是 ITU-R System B Teletext 规格.该规格支持欧洲多种语言,支持简单图象和文本的混合显示.第 二 章 DVB系
7、统的构成 本文不详细描述DVB系统的硬件构成,只是根据ISO13818中的描述,详细解释TS码流的格式和解复用原理.(够了,够了呵呵)DVB的分类DVB根据应用的不同,主要分为DVB-S,DVB-C,DVB-T,DVB-H等多种规格.不同的规格基本原理都是相同的,不同的主要是调制方式不同:DVB-S,S是 Satelite的首字母,应用于数字电视卫星广播,调制方式是QPSK.DVB-C,C是 C able的 首 字 母,应 用 于 城 市 有 线 广 播.调 制 方 式 是 Q A M 所有格式:16QAM,32QAM,64QAM,128QAM.256QAM.DVB-T,T是 Terrestr
8、ial的首字母,应用于陆地无线广播,调制方式是QPSK或 者 16QAM和64QAM.DVB-H.H是 Handheld的首字母,应用于手持无线广播,调制方式和DVB-T相同.总的来说,不同的DVB系统只有前端系统是不同的,最终的数字信息都是相同的,也就是都是 采 用 ISO13818描述的规格.前端系统主要是指调制方法和发射方法等.因此,这里所叙述的内容,全部适用于所有的DVB系统,同时因为美国的ATSC系统也是在DVB系统上的小量更改和小部分功能增加,因此也适用于ATSC标准.基本系统描述如下:(1)编码系统:假 设 信号源有6 个节目,则 DVB系统先对这6 个节目的所有数据(Video
9、,Audio)进行压缩处理,然后经过一个叫做 复用 的程序进行节目的复用(PID 分配,即 对 6 个节目分别分配不同的PID号码)形成叫做PES”的包,然后再经过T S流处理程序,把这些PES包全部封装成TS码流格式,最后把获得的TS格式的数字信号经过调制(实现的是频率的复用),然后经过D/A转换成模拟信号,再次调制成高频信号,经传输系统发送出去.(2)解码系统接收系统接收到高频信号,先转化为中频信号,然后再经过一个高速的A/D 转换成数字信号,接着经过一个反调制程序,这样就得到了 TS码流.TS码流进入一个称为 解复用 的程序,该程序实现自动分析T S流中的表格信息,读取所有可用的PID信
10、息等,然后提取一个用户指定 的 PID(用户选择的节目),把该节目的数字信号全部接收而忽略其他不需要的信号,然后Video,Audio信号分别进入不同的解压缩程序,分别对Video,Audio信号进行解压缩和显示,如果该节目包含了 Teletext和 EPG也有可能同时处理Teletext和 EPG并且把处理的结果和Video信号一起置加到屏幕上.Packet的概念(1)TS流是基于Packet的位流格式,每个包是188字节或者204字节(一般是188字节,204字节的格式仅仅是在188字节的Packet后部加上16字节的CRC数据,其他格式是一样的),整个TS流组成如下所示:Packet 1
11、 Packet 2.Packet n在实际使用中,因为T S 流已经内部具有很强的错误处理能力,所以一般使用较多的是188字节一个包的格式,204字节个包的格式据说一般在高清节目中使用较多.所有的Packet格式都是统一的,包括一个 Packet header和 Packet datas.其中Packet header包含了同步字节(该字节固定是0 x47,表示这个包的数据开始是正确的),该Packet的唯一号码(即PID)和其他一些信息,格式如下(用 C 格式表示)typedef structunsigned sync_byte:8;/*8 bits 的同步字节*/unsigned tran
12、sport_error_indicator:1 ;/*1 bit 的错误指示信息,1 表示当前 Packet 至少有 Ibit 的传输错误,0 表示所有数据都正确*/unsigned payload_unit_start_indicator:1;/*负载单元开始标志晨请参考 ISO13818-1 了解该标志作用*/unsigned transport_priority:1 ;/*1 bit的传输优先级标志,1 表示高优先级,0 表示低优先级*/unsigned PID:13;/*13 bits的 Packet ID 号码,唯一的号码对应不同的包*/unsigned transport_scra
13、mbling_control:2;/*2 bits的加密标志,00表示没有加密,其他表示已被加密*/unsigned adaptation_field_control:2;/*2 bits 的附加区域控制,请参考 ISO13818-1 了 解该标志作用*/unsigned continuity_counter:4;/*4 bits 的包递增计数器*/PACKET_HEADER;以上结构刚好占用32 bits,即 4 个字节,因此一个TS流的Packet头部的4 字节是header信息,分析该header信息就可以知道当前Packet的属性.剩下的184字节有可能是Video数据,也有可能是Au
14、dio数据,也有可能是DVB SI信息,怎么区分呢?其实很简单,就是利用header中的PID信息.上一章说了 PAT是节目关联表,它的PID是 0 x0000.这个PID就是对应这里header的 PID.换句话就是说,如果我们发现一个Packet的 PID等于0 x0000,那么说明这个Packet是DVB的 PAT表格而不是Video数据或者Audio数据.实际上,在信号编码成T S 码流的时候,不同节目的Video,Audio等数据都分配了不同的PID.例 如,一 个 节 目 有 两 路 Video,三 路 A udio,那 么 分 配 P ID 的 时 候 可 能 是 Video1=
15、0 x100,Video 2=0 x 101,Audio 1 =0 xl02,Audio 2=0 xl03,Audio 3=0 xl04,这样传输的TS码流中的PID就可能有以上的PID.因此,如果我们需要在程序中过滤出第一路Video和第二 路 Audio就可以这样处理了(伪代码描述):void Process_Packet(unsigned char*buff)int PID=GETPID(buff);/*从当前的188字节缓冲区中获取PID信息*/if(PID=0 xl00)/*PID等于第一路Video的 PID,说明当前数据是Video数据*/SaveToVideoBuffer(bu
16、ff+4);/*把 header后部的数据存到Video缓冲区,待后部处理*/else if(PID=0 xl03)/*PID等于第二路Audio的 PID,说明当前数据是Audio数据*/SaveToAudioBuffer(buff+4);/*把 header 后部的数据存到 Audio 缓冲区*/)else/*其他PID则丢弃,当然如果PID是 DVB系统保留的PID如 PAT.PMT则必须处理*/printf(unknown PlD!n);)现 在的问题是,编码的时候分配好的PID,在解码的时候是怎么知道什么PID 对应什么数据呢?这就是DVBSI表格的分析与处理了,请参考第三章.这里先
17、 看一个实际的TS码流的例子.这里的数据是用UltmEdit用 16进制格式打开T S码流文件得到的.文件是Taiwan-551.ts.这 里仅仅截取/3 个 Packet的信息,请注意图中用红色标注的部分,这就是TS流 Packet的 4个字节的头信息.这个TS流是采用每个包共188字节的格式,因为两个头信息的间隔是188个字节(第一个0 x47到第二个0 x47的间隔).以后的所有的Packet都将是188字节的格式,这是 DVB T S 标准规定的固定大小.那么这三个包分别包含的是什么数据,下面我们可以自己分析一下.先 看第一个包,头信息数据是0 x47 0 x07 0 xe5 0 x1
18、2,刚才已经知道了,header信息都是按位操作的(这就是为什么T S 码流也可以叫做位流的原因),特别要注意的是定义和传输的时候都是MSB first,也就是说,先出现的位是数据的最高位.先转化成2 进制格式:01000111 00000111 11100101 00010010请对照上面的PACKET_HEADER结构:typedef stnactunsigned sync_byte:8;unsigned transport_error_indicator:1;unsigned payload_unit_start_indicator:1;unsigned transport_priori
19、ty:1;unsigned PID:13;unsigned transport_scrambling_control:2;unsigned adaptation_field_control:2;unsigned continuity_counter:4;PACKET_HEADER;那么对照一下,我们可以发现:sync_byte=01000111,就是0 x47,这是DVB T S规定的同步字节,固定是0 x47.transport_error_indicator=0,表示当前包没有发生传输错误.payload_unit_start_indicator=0,含义请参考 ISO13818-1 标准
20、文档transport_priority=0,表示当前包是低优先级.P1D=OO111 11100101即 0 x07e5,这代表是什么呢,暂时还不知道(实际上是Video PID,参考下图)lransport_scrambling_conlrol=00,表示节目没有加密adaptation_field_control=01 即 0 x01,具体含义请参考 ISO13818-1continuity_counte=0010 即 0 x02,表示当前传送的相同类型的包是第3 个依此类推,再看一下第二个包”0 x47 0 x07 0 xe5 0 x13”,2 进制是 01000111 0000011
21、1 1110010100010011sync_byte=01000111,就是0 x47,这是DVB TS规定的同步字节,固定是0 x47.transpon_error_indicator=0,表示当前包没有发生传输错误.payload_unit_start_indicator=0,含义请参考 ISO13818-1 标准文档transport_priority=0,表示当前包是低优先级.PID=00111 11100101即 0 x07e5,这代表是什么呢,暂时还不知道(实际上是Video PID,参考下图)lransport_scrambling_control=00,表示节目没有加密ada
22、ptation_field_control=01 即 0 x01,具体含义请参考 ISO13818-1continuity_counte=0011 即 0 x03,表示当前传送的相同类型的包是第4 个(注意到了吧,以上两个包的PID都是0 x07e5,所以这里的continuity_counte就递增一次)第三个包是“0 x47 0 x07 Oxfl 0 x18”,2 进制是 01000111 00000111 11110001 00011000.sync_byte=01 0 0 0 1 1 1,0 x47,这是 DVB TS 规定的同步字节,固定是 0 x47.transport_eiror
23、_indicator=0,表示当前包没有发生传输错误.payload_unit_start_indicator=0,含义请参考 ISO13818-1 标准文档transport_priority=0,表示当前包是低优先级.PID=00111 11100101即 0 x07fl,这代表是什么呢,暂时还不知道(实际上是Audio PID,参考下图)transport_scrambling_control=00,表示节目没有加密adaptation_field_control=01 即 0 x01,具体含义请参考 ISO13818-1continuity_counte=1000即 0 x08,表示当
24、前传送的相同类型的包是第9 个请看解码程序 Seekfor MPEG-2 decoder读取该文件的结果:上图我们可以发现,Taiwan-55l.ts有一个节目叫”DIMO,它的Video PID是 0 x07e5,Audio PID是 0 x07e6还有一个节目叫Service 1,没有Video PID,它的Audio PID是 0 x07fl(说明是一个广播节目而非电视节目)这个数据刚好和我们刚才的分析是吻合的.但 是我想大家还有疑问,为什么0 x07e5代表Video PlD,0 x07e6代表其中一个Audio P1D呢?这就是刚才提到的,这 是 T S 流在编码的时候就分配好了的.
25、但是,在解码的时候是怎么知道0 x07e5就代表的是Video而不是Audio呢?这就是第三章的内容:DVB SI/PSI分析和处理.第 三 章 DVBSI/PS1分析和处理SI 是 Specific Information 的简称,PSI 是 program Specific Information.该机制允许 D V B 传送各种各样的讯息,比如节目名称,电视台名称,各种P I D,私有信息,甚至单独传送数据实现数据通信等.这些功能的实现都归功于SI/PSL在 D V B 标准中,定义了一个标准的PID用来实现SI/PSL这些PID是系统保留的,因此DV B编码的时候并不会用这些P I D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电视 基础 概念 汇总
限制150内