mpeg2学习

http://wenku.baidu.com/view/a921ab4ffe4733687e21aa3b.html?from=related&hasrec=1

 

iso13818.

 

一帧视频或者音频组成au(I, P, B帧), au组成es, es形成pes, 通常一个pes包含一个au。

符合itu-r.601的I1B2B3P4B5B6P7B8B9I10视频帧编码后生成I1P4B2B3P7B5B6I10B8B9的基本视频es流。

AES/EBU标准的数字音频数据生成音频es流

 

 

pes由包头, 特有信息, 数据组成。

包头由起始前缀(23个0, 1个1), 数据流识别码(8位, 类型: 110xxxxx是音频, 1110xxxx是视频), 包长(2字节, 包含头)。

通常一个pes包含一个au。au也分头部和数据的。

 

在特有信息中, pts/dts防止解码器上溢下溢的关键, pts: 出现在系统解码器(std)的时间, dts: 将存取单元从std移走的时间。

对于b帧, pts/dts相同, 对于i, p帧,不同(因为i,p帧有交错), 需要重排序p帧。

(如果一个pes仅包含一个au的话, 其实au不需要头, 对吗?)

 

ps由包头, 系统头, pes包3部分组成。

 

scr表明: 在ps中的scr字段离开编码器的时间, 这个时间用于解码时的时间恢复(用于同步)。在解码时用本地scr与输入的scr(ps中的字段)进行锁相比较, 不同步的话,调整本地27m时钟。

 

 

page6的line6又讲pes包的第一个au, 那么到底是一个au还是几个?还有pts/dts是包含在au中? 又讲什么将pes分开再构成小的时间上连续的PS包。(这个有点扯了)

ps的解复用器提取pes, 拆包器将提取es。然后将es送到各自的解码器。

 

 

ts:讲pes拆分成更小的单元, 便于传输。可有多个时间基准。

 

pid将来自不同es的数据包区别开来。

 

pcr:作用跟ps的scr相似。

 

随即存取指示符和接点标志: 用于在节目变动时, 为随机进入I帧压缩数据流提供随机进入点。也为插入当地节目提供方便。

 

因为ts包的数据长度不会正好是pes包的整数倍, 所以最后会有填充数据。可防下溢, 保持总码率不变。

 

传输解复用得到pat, 节目解复用得到pmt。这个过程就是ts的双层解复用。

 

各种音视频编码器将es送入系统编码器, 系统编码器加入pts/dts等形成pes, 经过传输复用器加入pid及pcr, 形成ts

 

有n个pcr产生n个stc(时间戳)

 

ts可以通过qpsk调制上卫星, 地面用户通过qpsk解调, 解复用, 解码接受。而有线电视台可以解调qpsk之后, 解复用, 再重复用, 再qam有线调制, 在传至有线网, 有线用户解调, 解复用, 解码后接受。地面无线电视台将卫星qpsk信号解调, 解复用, 再复用, 再cofdm电缆调制后馈送至地面发射台发送, 用户再通过cofdm解调, 解复用, 解码接受信号。

卫星使用qpsk调制,

有线电视使用qam调制,

无线电视使用cofdm调制。

都是通过卫星转过来的啊。

 

 

 

下面的制式主要是用于控制显示的, 现在在数字设备上都是高清了, 跟这些不同:

pal制式: 625 条扫描线,每秒25格画面,隔行扫描,PAL 色彩编码。PAL制式视标准分辨率为720*576。

英国、香港、澳门使用的是 PAL-I。中国大陆使用的是 PAL-D、新加坡使用的是 PAL B/G 或 D/K。

电影一般是以每秒 24 格拍摄。电影在 PAL 制式电视播影时会以每秒25 格播放

 

ntsc:

它属于同时制,帧频为每秒29.97(简化为30),扫描线为525,隔行扫描,画面比例为4:3,分辨率为640x480。

美国、加拿大、墨西哥等大部分美洲国家以及台湾、日本、韩国、菲律宾等地区及国家均采用这种制式。香港部份电视公司也采用NTSC制式广播。

 

secam:

SECAM制式的帧频每秒25帧,每帧625行。隔行扫描,画面比例4:3,分辨率为720×576,约40万像素,亮度带宽6.0MHz;彩色幅载波 4.25MHz;色度带宽1.0MHz(U),1.0MHz(V);声音载波6.5MHz。

有三种形式的SECAM:法国SECAM(SECAM-L),用在法国和它的以前的群体上;SECAM-B/G,用在中东,先前的东德和希腊;SECAM D/K用在俄罗斯西欧

SECAM制式在信号传输过程中,亮度信号每行传送,而两个色差信号则逐行依次传送,即用行错开传输时间的办法来避免同时传输时所产生的串色以及由其造成的彩色失真

 

对于不同的显示模式, 相对于理论std模型,解码器是有不同的延时的(帧率决定, 每个帧率取走一帧数据), 理论std模型解码等是没有延时的或者固定延时。 理论模型中编码, 解码缓冲区是有延时的且可变。这样的话, 不同的帧率下, 解码速度不同, 解码速度由帧率决定, 然后解码缓冲区要比理论std模型大帧率时间内所缓存的数据(由帧率和码率共同决定, 如果码率是4mb/s, 帧率是25, 那么buffer应该比std模型大4/25)., 这样才能存放因为decode延时造成的多出来的数据。

 

上溢是当一个超长的数据进入到缓冲区时,超出部分被写入上级缓冲区,上级缓冲区存放的可能是数据、上一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。下溢是当一个超长的数据进入到缓冲区时,超出部分被写入下级缓冲区,下级缓冲区存放的是下一条指令的指针,或者是其他程序的输出内容.

 

只要在开始解码之前完全传送完一个au存取单元就不会下溢(这个有点难理解, 这个说法可能不准, 我的理解是在缓冲区空了以后, 还试图读缓冲区外的数据), 若每个存取单元在解码前瞬间的缓存器最大充满度与std数据流缓存器的容量大小比较适配, 就不会上溢(覆盖已缓冲内容, 我的理解就是缓冲区还没满)。

 

从std模型的输入到传输缓存tb,是瞬时的。tb的容量为512字节, 约为两个ts包长度。缓存器读出速度最大不超过传输速率的0.2%.数据从tb输出时已经没有ts包头, pes包头信息了, 是净数据, 从传输缓存tb到主缓存也是瞬时的。

主缓存的数据必须在dts规定的瞬时取走, 解码动作是瞬时的。

pts表明std出现显示单元的时间, 在显示前, i, p帧要经过重新排序缓存的延迟。

 

psi buffer的大小限制在1536B.

 

mpeg2编码的结构:

 

 

gop图像组层用于解码中的随机存取,我想应该跟ts结构中的对应吧?!从i帧开始。

 

宏块条的作用: 可减少decode error的影响, 这个不行, 跳到下一个。

宏块: 一组ycbcr, 通常是4个8x8的像素块。比如4:2:0:由4个8x8的y像素块, 2个8x8的cr像素块, 0个8x8的cb像素块。是运动补偿的基本单位。

块层是单一类型8x8的像素单位, 是dct系数的最小单位。

 

gop的长度是指前一个i帧到下一个i帧之前的b帧之间的间隔。 一般最多由12帧组成。通过此再根据帧率就可以计算出一个流中最大的i帧间隔。如果帧率是25, 一个gop最大12帧, 那么i帧间隔最大就是12/25 ~= 0.5秒, 帧率越高, 间隔时间越小。  因为一个i帧就是一个gop, 那么可以讲, 每个i帧都是可随机跳转的点。

 

码率不同采用的gop结构不同, >40mbps, 帧重复方式只有i帧, 15-40mbps的时候, ib方式, <15mbps, ibp, ibbp, 码率越高, 图像质量越高。 下面不理解: 为什么gop越长质量越高(b帧多了不是图像质量差?)?!

 

b帧不编码, 不传送, 不是预测基准, 在解码时用双向预测的插值法建立。如i1, p4之间的b2b3由i1, p4加权内插而建。

 

 

 

这里的profile中的80mbps, 60mbps等应理解为最大码率, 不然不能解释当>40mbps的时候, 只有i帧。

对分型, 分级的理解还是不是很深, 级的划分应该是分辨率, 各型划分的依据是什么?是不是在各个型级格里面除了码率之外, 其它都是固定值?!

类(Profile)是指MPEG-2的不同处理方法,每一类都包括压缩和处理方法的一个集合,较高的类意味着采用较多的编码工具集,进行更精细的处理,达到更好的图像质量,同时实现的代价也更大。 

看这个解释:http://zzuxujin.blog.sohu.com/33640234.html

 

 

pcr/scr重建绝对时间。pts/dts重建相对时间。

 

本文没有讲具体的编解码, 比如dct, huffman变换等。

 

讲各种视频格式:

http://blog.csdn.net/JavaCPlusBird/article/details/5453855

 

讲mpeg1, mpeg2压缩编码的:

http://blog.csdn.net/wutong_login/article/details/4073061

 

详解mpeg ps的:

http://wenku.baidu.com/view/e7996ad4b9f3f90f76c61b9f.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值