hsy75的个人空间 https://blog.eetop.cn/vivilife [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

【基本概念】MEPG2

已有 5395 次阅读| 2012-11-30 10:37 |个人分类:DVB

本篇是在阅读了MEPG2基本概念基础上写的笔记和小结


前言:Motion Picture Expert Group
不論是哪種數位廣播系統,基本上皆以MPGE-2 TS為主要的傳輸內容。。。
【hsy75 案】
MPEG 的压缩主要是从时间和空间上两个方面进行的:
1. 时间上的压缩 temporal redundancy (The state of not being necessary or useful)
主要利用帧帧之间一般不会出现较大的数据出入,除非是非常活动的图像

2. 空间上的压缩 Spatial redundancy
多半利用了传输过程中使用的量化的概念,将连续的信号进行采样,然后用数字的方法,比如霍夫曼编码来进行压缩。

.1 流
MPEG2标准主要是用来定义电视图像数据、声音数据和其他数据的组合,把这些数据组合成一个或者多个适合于存储或者传输的基本数据流。数据流有两种形式,一种称为程序数据流(Program Stream,PS),另一种称为传输数据流(Transport Stream,TS)。

程序数据流PS是组合一个或者多个规格化的即包化基本数据流(Packetised Elementary Streams,PES)而生成的一种数据流,用在出现错误相对比较少的环境下

【hsy75案 其实就是DVD系统】适合使用软件处理的应用;

传输数据流TS也是组合一个或者多个PES而生成的一种数据流,它用在出现错误相对比较多的环境下,例如在有损失或者有噪声的传输系统中。

【hsy75案】两种流的最大区别,是TS流分成的包更小,且因为复用关系,TS(Transport Stream)含有更多的时间信息例如,PCR.

.2 MPEG2 basic block and associated standards

The basic multiplexing approach for single video and audio elementary streams is illustrated in Figure . The video and audio data is encoded as described in ITU-T Rec. H.262 | ISO/IEC 13818-2 and ISO/IEC 13818-3.
【hsy75 案】上图显示MEPG2 相关标准和相关的关系


.3 MPEG2的圖像配置等級
l 考虑到要适应不同数据速率设备的应用,MPEG专家组定义了三种质量不同的编码方式:信噪比可变性(Signal-to-Noise Scalability),空间分辨率可变性(Spatial Scalability)和时间分辨率可变性(Temporal Scalability)
l 信噪比可变性SNR (Signal-to-Noise scalability)是指图像质量的折中,对于数据率比较低的解码器使用比较低的信噪比,而对数据率比较高的解码器则使用比较高的信噪比;空间分辨率 可变性(Spatial scalability)是指图像的空间分辨率的折中,对于低速率的接受器使用比较低的图像分辨率,而对于数据率比较高的接受器使用比较高的图像分辨率; 时间分辨率可变性(Temporal Scalability)是指图像在时间方向上分辨率的折中,与空间分辨率类似。
l MPEG-2为此引入了“配置(Profiles)”和参数“等级(Levels)”的概念,每种配置定义一套新的算法,而每一个等级指定一套参数范围(如图像大小、帧速率和位速率)。

.4 MPEG2畫質的等級Profiles and levels
分为4级:
High              High 1440    Main             Low
对应分辨率为:
1920*1152 1440*1152    720*576     352*288


.5 编码:
【hsy75案】
一个实际的MEPG2 - TS使用例子:该例放映了一个数字化信号是如何进入到一个家庭的。
下图表示了一个实际的家庭数字化使用MEPG2的例子:





1. 数字化:
模拟信号视频:RGB -> ITU-601 270Mbps
模拟信号音频:Audio -> AES/EBU 【Audio Engineering Society/European Broadcasting Union】1.5Mbps

2.压缩
进第一个房间:
(图像編碼)ISO/IEC13818-2 Video Coding的技術,可將270Mbps壓縮到3Mbps〜5Mbps,並且保留了影像原有的品質。
(聲音編碼)聲音的部分則是利用ISO/IEC 13818-3 Audio Coding

3.打包数据成数据流
經過壓縮後的影像與聲音稱為Elementary Stream(Video ES and Audio ES;ES)。為了方便儲存於儲存媒體上(如DVD光碟片),可將Elementary Stream切成很多的封包(Packets),稱Packetized Elementary Stream(Video PES and Audio PES;PES) 。又經由多工器(Multiplexer)產生Transport Stream(Video TS and Audio TS;TS),並且額外加入PSI, Program Service information,& Information Packet(Tables) 提供如EPG(Electronic Program Guide;電子節目選單)等的訊息服務。

ES->PES->TS->EPG + TS->TSn


不論是Video/Audio或是DATA的PES皆可經由MUX的處理成為一個TS(TransportStream);亦可利用MUX將多個TS和成為單一的TS。


【ES】ELEMENTARY STREAMS


【上图,ES for Video syntax】本图表述了一个典型的VES的结构生成过程,从图中,首先是DC cofficients模块,包含了Picture Information信息,然后,被装配成Macro Block【用于矢量分析】,
然后,Macroblock被按扫描行切成一个个数据条【用于同步】,一组slices最后组成了active picture,header of the picture I,P,B coded and includes a temporal reference【用于还原时间】.
Picture 最后组成为:GOP group of picture。【用于时域压缩】,最后,可以生成Video Sequence.VS 可以再加一些包头,可以用来实现暂停,回放,章节选择等功能。
【hsy75 案】Xn就是表示了一个重新打包数据的过程


【PES】PACKETIZED ELEMENTARY STREAMS (PES)
.1 Packets


PES is preceded by a PES packet header. And the PES is logically present , because some time , there do not have PES in TS.

.2 Time Stamps:
Time stamps indicate where a particular access unit belongs in time.
【hsy案】Time Stamps工作原理
使用原因和方法,用于解决编解码的时间延迟问题,那么,在每一整必要的图像里面都含有Stamps,这些stamps使用的编解码的时间基准都一直,相当于都用秒为单位,那么,stamps标识当前的这帧图像相对于时间基准是多少个stamps单位,用这个表示就可以把所有的帧图像都联系起来。
解码器接受到PES后,先根据包头信息选择好需要解码的PES,然后,把这些信息都按照包给出的id号码顺序,放到RAM里面,以便后面图像处理使用,【time stamps这时候发挥作用,因为有了stamps,系统就知道现在放到RAM
中数据将在stamps计数达到所要的值后取出】
使用时注意两个方面: 1. ES流本身时间基准的获得 2.视频和音频流之间时间同步的问题。

.3 PTS/DTS
When bidirectional coding is used, a picture may have to be decoded some time before it is presented, so that it can act as the source of data for a B picture.
Although, for example, pictures can be presented in the order IBBP, they will be transmitted in the order IPBB. Consequently, two types of time stamp exist.
The decode time stamp (DTS)indicates the time when a picture must be decoded, whereas a presentation time stamp (PTS) indicates when it must be presented to the decoder output.
B pictures are decoded and presented simultaneously so that they only contain PTS. When an IPBB sequence is received, both I and P must be decoded before the first B picture.
A decoder can only decode one picture at a time; therefore the I picture is decoded first and stored. While the P picture is being decoded,the decoded I picture is output  so that it can be followed by the B pictures.

.6 TS流:
TS 流显然不是简单的PES的集合,TS除了含有PES包以外,还含有PSI(Program Specific information),而PES含有和多路复合相关的大量信息metadata:比如,PAT,PMT,CA
此外,还包括其他一些数据。

TS流的包的大小是固定的,188Byte ,相同的ES在TS里面含有相同的PID地址。
【TS 结构图】

【TS包分析】
.1 TS流含有不定数量的包,每个包的大小固定为188字节
.2 SYNC BYTE: 一个8位的字符串
.3 Transport_error_indicator: 1表示,包中有至少一个错误
.4 Playload_unit_start_indicator: 这个位,表示的意义和当前传送的包的内容有关
    如果,DATA 传送的是PES包的话,那么,1表示这个包,是包含PES包的第一个字节
    如果,DATA 传送的是PSI包的话【hsy75案 前面已经提到,TS流.5 编码:过程】,1表示这个包,是包含PSI包的第一个字节
.5 Transport_prigority:同pid下,高优先级
.6 PID: 一个有分类标准的包的标识
.7 Transport_scrambing_control:scrambling控制设定。除00以外的值,表示需要CA解析
.8 Adaptation_field_control: 表示该包是一个adaptation filed or data
.9 continuity_counter: 如果当前包是数据包,且拥有相同的PID的时候,用来做包的计数
.10 DATA 【hsy75案,其实应该是DATAn,应该是一组来自于PES,或者PSI等包的数据】
.11 Adaptation_field:主要是提供时基校准的

   
 

TS Sample:ISO/IEC 13818 transport packet
transport_packet(){
sync_byte 8 bslbf
transport_error_indicator 1 bslbf
payload_unit_start_indicator 1 bslbf
transport_priority 1 bslbf
PID 13 uimsbf
transport_scrambling_control 2 bslbf
adaptation_field_control 2 bslbf
continuity_counter 4 uimsbf
if(adaptation_field_control=='10' || adaptation_field_control=='11'){
adaptation_field()
}
if(adaptation_field_control=='01' || adaptation_field_control=='11') {
for (i=0;i<N;i++){
data_byte 8 bslbf
}
}
}
【TS Program 示意图】





上圖中,最後TS是輸出至DVB的調變器,但是美規的ATSC也是利用相同的概念來MUX多個PES成為一個TS,差別僅在於PSI的部分。TS中的PSI封包(Program Specific Information)與SI封包(Service Information)提供了DVB(或ATSC)的解多工器(De-multiplexer)在進行「解多工」時所需的資訊。一個TS可載送的節目資料傳輸率為4Mbps to 7Mbps(Max. 15Mbps),其中包含了影像、聲音、資料及PSI/SI Table:

.7 解码

TS Synchronization:當TS進入Decoder後,1.首先要先同步,Sync Byte為「0x47」。2,Read-out of TS Content:PAT(Program Association Table)與PMT(Program Map Table)的內容提供MPEG 2 Decoder在對此TS解碼時所需的資訊。PAT載有所有PMT的PID(Packet Identifier)碼。PMT的數目等同於在此一TS中所擁有的節目數。 PMT的封包中,則載有與此一節目有關的Video TS,Audio TS及DATA三種TS的PID。因此,MPEG-2 Decoder需要利用PAT及PMT來Decode。3. 將此TS中與想觀賞的節目相關PID所指到的封包取出,等候Decoding。假設有額外對TS做鎖碼,在Decoding前需將此一額外的鎖碼(Conditional Access)做解碼。 根據MPEG-2 Encoder編碼時的參數來做同步。相關的封包為:PCR(Program Clock Reference);PTS(Program Time Stamp);DTS(Decoding Time Stamp)。
若在信號源頭端(Head End)系統業者有在TS加入額外的資訊(如跑馬燈、額外的節目訊息),此時Decoder便須解碼SI(Service Information)Table中所載有的內容。



ref:
1.DTV_MPEG-2 TS
 為台灣羅德史瓦茲系統工程師
2. ISO/IEC 13818 - 1
3. A Guide to MPEG
4. vidio demestify

Endition history:
2008-04-14 updated
2008-04-25 updated TS




{


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 1

    好友
  • 2

    获赞
  • 14

    评论
  • 3241

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 08:43 , Processed in 0.025232 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部