h.264/AVC的结构 NAL结构

来源:互联网 发布:a类网络ip地址 编辑:程序博客网 时间:2024/06/05 07:41

帧和場 :
视频中的一场或者一帧可用来产生一个编码图像, 活动量较小的或者静止的图像采用帧编码的方式,活动量 较大的运动图像采用場编码
帧就是逐行扫描 帧就是斜着扫描 对角
宏块,片
一个图像通常分成若干宏块组成
一个宏块由一个16*16亮度像素和附加一个8*8Cb 和一个8*8Cr彩色像素块组成,每个图像中,若干宏块被排列成片的形式
I片只包含I宏块 P片可包含P和I宏块,而B片可包含B和I宏块
I宏块利用从当前片中已解码的像素作为参考进行帧内预测(不能取其他片中的以解码像素作为参考进行帧内预测)
P宏块利用前面以编码图像作为参考图像进行帧内预测,一个帧内编码的宏块可以做进一步宏块分割,即16*16 16*8 8*16 8*8 亮度像素块(以及附带的彩色像素)如果选了8*8的子宏块 ,则可以再分成各种子宏块的分割 其尺寸为 8*8 8*4 4*8 或4*4 色度像素块(以及附带的彩色像素)
B宏块利用双向的参考图像(当前和未来以编码的图像帧)进行帧内预测
档次和级
每一档通过设置不同参数(如取样速率,图像尺寸,编码比特率等)得到不同的级
基本档次:利用 I 片和 P 片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码
进行的熵编码( CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信;
主要档次:支持隔行视频,采用 B 片的帧间编码和采用加权预测的帧内编码;支持利用基于
上下文的自适应的算术编码( CABAC)。主要用于数字广播电视与数字视频存储;
扩展档次:支持码流之间有效的切换( SP 和 SI 片)、改进误码性能(数据分割),但不支持
隔行视频和 CABAC。

每个NAL单元包含一个原始字节序列负荷(RBSP)、一组对应于视频编码数据的NAL头信息

这里写图片描述

参考图像
为了提高预测精度,h.264编码器可以从一组前面或后面已经编码图像选出 一个或两个与当前最匹配的图像作为帧间编码间的参考图像,虽说复杂度增加,但是多次比较,预测精度增减 。h.264 最多可以从15个参数图像中进行选择
片和片组
一个视频图像可以编码成一个或者更多片,每片包含整数个宏块(MB),即每片至少一个MB ,最多时每片包含整个图像的宏块,总之,一幅图像的每片的宏块数是不固定的。
片的目的就是为了限制误码的扩散和传输 ,某片的预测不能以其他片中的宏块为参考图像
编码片共有 5 种不同类型,除已讲过的 I 片、 P 片、 B 片外,还有 SP 片和 SI 片。其中 SP(切换P)是用于不同编码流之间的切换;它包含 P 和/或 I 宏块。它是扩展档次中必须具有的切换,它包含了一种特殊类型的编码宏块,叫做 SI 宏块, SI 也是扩展档次中的必备功能。
片头规定了片的类型,该片属于哪个图像,有关的参考图像,片的数据包含一系列的编码MB ,和或跳编码(不编码)数据 。每个MB包含头单元和残差数据
这里写图片描述
这里写图片描述
片组
片组是一个编码图象中若干 MB 的一个子集,它可包含一个或若干个片。
在一个片组中,每片的 MB 按光栅扫描次序被编码,如果每幅图象仅取一个片组,则该图象中所
有的 MB 均按光栅扫描次序被编码(除非使用 ASO,即任意的片次序,即一个编码帧中的片之后可
跟随任一解码程序的片)。
还有一种片组,叫灵活宏块次序( FMO),它可用灵活的方法,把编码 MB 序列映射到解码图象
中 MB 的分配用 MB 到片组之间的映射来确定,它表示每一个 MB 属于哪个片组。表 6.2 为 MB 到
片组的各种映射类型。
这里写图片描述

原创粉丝点击