MPEG-2扩展了MPEG-1,涵盖了一个更广泛的应用。在阅读本章之前应该复习MPEG-1的内容来巩固MPEG的基础。
基本应用旨在定义处理所有比特率4~9Mbps广播质量视频的数字传输。但是MPEG-2对其它的应用非常有用,如HDTV,现在支持的码率为1.5~60Mbps。
MPEG-2是一个ISO标准(ISO/IEC 13818),包括下面11个部分:
系统 ISO/IEC 13818-1
视频 ISO/IEC 13818-2
音频 ISO/IEC 13818-3
一致性测试 ISO/IEC 13818-5
软件仿真 ISO/IEC 13818-5
DSM-CC扩展 ISO/IEC 13818-6
高级音频编码 ISO/IEC 13818-7
RTI扩展 ISO/IEC 13818-9
DSM-CC一致性 ISO/IEC 13818-10
IPMP ISO/IEC 13818-11
和MPEG-1一样,压缩比特流隐含定义了解压缩算法。在国际标准的范围内,压缩算法每个厂商有别。数字存储媒介命令与控制(DSM-CC)扩展(ISO/IEC 13818-6)是一个为开发MPEG-2流控制通道相关的工具套件。除了提供VCR类型的特性,如快进,倒退,暂停等之外,它可以用于一个广泛的其它目的,如分组数据传输。DSM-CC工作于连接下一代分组网络,和互联网协议如,RSVP,RTSP,RTP和SCP一起工作。
事实接口(RTI)扩展(ISO/IEC 13818-9)定义一个通用的接口,通过它,终端设备生厂商和网络运营商可以设计。RTI为在实时输入解码器端的一个MPEG-2系统流指定一个传输字节模型,而MPEG-2系统定义了一个理想的字节传输方案。
IPMP(知识产权管理与保护)是一个数字版权管理(DRM)标准,符合MPEG-4 IPMP扩展规范。而不是一个完整的系统,而是一个提供各种功能的框架。
音频概述
除了非后向兼容的音频扩展(ISO/IEC 13818-7)之外,MPEG-2支持多达5个全带宽通道兼容MPEG-1的编码。它也扩展MPEG-1音频编码到1/2采样速率(16kHz,22.5kHz和24kHz),为的是每通道的比特率在64kbps或以下时提高质量。
MPEG-2.5是一个非官方的,而是通用的,扩展了MPEG-2的音频容量。它加入了采样率为8kHz,11.025kHz和12kHz。
视频概述
对于MPEG-2,模型指定语法(即,算法),级别指定多种参数(分辨率,帧率,比特率等等)。主模型@主级的目标是SDTV应用,而主模型@高级则是针对HDTV的应用。
级别
MPEG-2支持4个级别,它指定给定模型的分辨率,帧率,编码的比特率等。
低级(LL)
MPEG-1约束参数比特流(CPB),支持最高352×288,30帧/秒。最高比特率是4Mbps。
主级(ML)
MPEG-2约束参数比特流(CPB),支持最高720×576,30帧/秒,旨在SDTV的应用。最高比特率可达15~20Mbps。
高级-1440
这一级支持高达高1440×1088,60帧/秒,旨在HDTV的应用。最高比特率可达60~80Mbps。
高级(HL)
高级支持高达高1920×1088,60帧/秒,旨在HDTV的应用。最高比特率可达80~100Mbps。
模型
MPEG-2支持6种模型,它指定使用哪种编码语法(算法)。表13.1~13.8显示了允许的多种级别和模型的组合。
简单模型(SP)
不带B帧的主模型,旨在软件应用和可能的数字有线电视。
主模型(MP)
被大部分MPEG-2解码器芯片支持,它应该满足90%的消费类SDTV和HDTV应用。典型的分辨率如表13.6所示。
多视图模型(MVP)
通过使用存在的MPEG-2工具,它可以两个角度差别很小并指向同一场景的摄像机进行视频编码。
4:2:2(422P)
以前叫做“演播室模型”,这个模型使用4:2:2YCbCr代替4:2:0,在主级,提高的最大比特率高达50Mbps(高级是300Mbps)。它被加入支持专业视频SDTV和HDTV需求。
SNR和空间模型
加入SNR可扩展性和/或空间可扩展性。
高模型(HP)
目标针对专业视频HDTV应用。
级别 |
模型 |
||||||
不可扩展 |
可扩展 |
||||||
简单模型 |
主模型 |
多视图模型 |
4:2:2模型 |
SNR模型 |
空间模型 |
高模型 |
|
高级 |
- |
是 |
- |
是 |
- |
- |
是 |
高级-1440 |
- |
是 |
- |
- |
- |
是 |
是 |
主级 |
是 |
是 |
是 |
是 |
是 |
- |
是 |
低级 |
- |
是 |
- |
- |
是 |
- |
- |
表13.1 MPEG-2可接受的级别和模型的组合
约束 |
模型 |
||||||
不可扩展 |
可扩展 |
||||||
简单模型 |
主模型 |
多视图模型 |
4:2:2模型 |
SNR模型 |
空间模型 |
高模型 |
|
色度格式 |
4:2:0 |
4:2:0 |
4:2:0 |
4:2:0或4:2:2 |
4:2:0 |
4:2:0 |
4:2:0或4:2:2 |
图像类型 |
I,P |
I,P,B |
I,P,B |
I,P,B |
I,P,B |
I,P,B |
I,P,B |
可扩展模式 |
- |
- |
时空 |
- |
SNR |
SNR或时空 |
SNR或时空 |
帧内DC预测(比特数) |
8,9,10 |
8,9,10 |
8,9,10 |
8,9,10,11 |
8,9,10 |
8,9,10 |
8,9,10,11 |
序列可扩展性扩展 |
否 |
否 |
是 |
否 |
是 |
是 |
是 |
图像空间可扩展性扩展 |
否 |
否 |
否 |
否 |
否 |
是 |
是 |
图像时间可扩展性扩展 |
否 |
否 |
是 |
否 |
否 |
否 |
否 |
重复第一场 |
约束 |
非约束 |
约束 |
非约束 |
表13.2 一些MPEG-2的模型约束
级别 |
最大数量的层数 |
模型 |
|||
SNR |
空间 |
高 |
多视图 |
||
高级 |
所有层(基本+增强) |
- |
- |
3 |
2 |
空间增强层 |
1 |
0 |
|||
SNR增强层 |
1 |
0 |
|||
时空辅助层 |
0 |
1 |
|||
高级-1440 |
所有层(基本+增强) |
- |
3 |
3 |
2 |
空间增强层 |
1 |
1 |
0 |
||
SNR增强层 |
1 |
1 |
0 |
||
时空辅助层 |
0 |
0 |
1 |
||
主级 |
所有层(基本+增强) |
2 |
- |
3 |
2 |
空间增强层 |
0 |
1 |
0 |
||
SNR增强层 |
1 |
1 |
0 |
||
时空辅助层 |
0 |
0 |
1 |
||
低级 |
所有层(基本+增强) |
2 |
- |
- |
2 |
空间增强层 |
0 |
0 |
|||
SNR增强层 |
1 |
0 |
|||
时空辅助层 |
0 |
1 |
表13.3 MPEG-2可扩展模型的允许层数量
模型 |
模型 |
模型@级别的基本解码器 |
||
基本层 |
增强层1 |
增强层2 |
||
SNR |
4:2:0 |
SNR,4:2:0 |
- |
MP@same level |
空间 |
4:2:0 |
SNR,4:2:0 |
- |
MP@same level |
4:2:0 |
空间,4:2:0 |
- |
MP@(level - 1) |
|
4:2:0 |
SNR,4:2:0 |
空间,4:2:0 |
||
4:2:0 |
空间,4:2:0 |
SNR,4:2:0 |
||
高 |
4:2:0或4:2:2 |
- |
- |
HP@same level |
4:2:0 |
SNR,4:2:0 |
- |
||
4:2:0或4:2:2 |
SNR,4:2:0 |
- |
||
4:2:0 |
空间,4:2:0 |
- |
HP@(level - 1) |
|
4:2:0或4:2:2 |
空间,4:2:2 |
- |
||
4:2:0 |
SNR,4:2:0 |
空间,4:2:0或4:2:2 |
||
4:2:0或4:2:2 |
SNR,4:2:2 |
空间,4:2:2 |
||
4:2:0 |
空间,4:2:0 |
SNR,4:2:0或4:2:2 |
||
4:2:0 |
空间,4:2:2 |
SNR,4:2:2 |
||
4:2:2 |
空间,4:2:2 |
SNR,4:2:2 |
||
多视图 |
4:2:0 |
时空,4:2:0 |
- |
MP@same level |
表13.4一些MPEG-2视频解码器需要的多种模型
级别 |
空间分辨率层 |
参数 |
模型 |
|||||
简单 |
主 |
多视图 |
4:2:2 |
SNR/空间 |
高 |
|||
高级 |
增强 |
每行采样点数 |
- |
1920 |
1920 |
1920 |
- |
1920 |
每帧行数 |
1088 |
1088 |
1088 |
1088 |
||||
每秒帧数 |
60 |
60 |
60 |
60 |
||||
低 |
每行采样点数 |
- |
- |
1920 |
- |
- |
960 |
|
每帧行数 |
1088 |
576 |
||||||
每秒帧数 |
60 |
30 |
||||||
高级-1440 |
增强 |
每行采样点数 |
- |
1440 |
1440 |
- |
1440 |
1440 |
每帧行数 |
1088 |
1088 |
1088 |
1088 |
||||
每秒帧数 |
60 |
60 |
60 |
60 |
||||
低 |
每行采样点数 |
- |
- |
1440 |
- |
720 |
720 |
|
每帧行数 |
1088 |
576 |
576 |
|||||
每秒帧数 |
60 |
30 |
30 |
|||||
主级 |
增强 |
每行采样点数 |
720 |
720 |
720 |
720 |
720 |
720 |
每帧行数 |
576 |
576 |
576 |
608 |
576 |
576 |
||
每秒帧数 |
30 |
30 |
30 |
30 |
30 |
30 |
||
低 |
每行采样点数 |
- |
- |
720 |
- |
- |
352 |
|
每帧行数 |
576 |
288 |
||||||
每秒帧数 |
30 |
30 |
||||||
低级 |
增强 |
每行采样点数 |
- |
352 |
352 |
- |
352 |
- |
每帧行数 |
288 |
288 |
288 |
|||||
每秒帧数 |
30 |
30 |
30 |
|||||
低 |
每行采样点数 |
- |
- |
352 |
- |
- |
- |
|
每帧行数 |
288 |
|||||||
每秒帧数 |
30 |
注:
1.上面的级别和模型原始指定的每帧行数是最大1152行,改变到每帧1088行。
表13.5 MPEG-2的分辨率和时空参数上限
在单层或SNR可扩展编码模型中的情况下,使用“增强层”参数。
级别 |
最高比特率(Mbps) |
典型有效分辨率 |
帧速率(Hz)2 |
||||||||||
23.976p |
24p |
25p |
29.97p |
30p |
50p |
59.94p |
60p |
25i |
29.97i |
30i |
|||
高级 |
80 (高级模型为100) (4:2:2模型为300) |
1920×10801 |
× |
× |
× |
× |
× |
|
|
|
× |
× |
× |
高级-1440 |
60 (高级模型为80) |
1280×720 |
× |
× |
× |
× |
× |
× |
× |
× |
|
|
|
1440×10801 |
× |
× |
× |
× |
× |
|
|
|
× |
× |
× |
||
主级 |
15 (高级模型为20) (4:2:2模型为50) |
352×480 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
352×576 |
|
× |
× |
|
|
× |
|
|
× |
|
|
||
544×480 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
||
544×576 |
|
× |
× |
|
|
× |
|
|
× |
|
|
||
640×480 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
||
704×480,704×576 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
||
720×480,720×576 |
|
× |
× |
|
|
× |
|
|
× |
|
|
||
低级 |
4 |
320×240 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
352×240 |
× |
× |
|
× |
× |
|
× |
× |
|
× |
× |
||
352×288 |
|
× |
× |
|
|
× |
|
|
× |
|
|
注:
1. 对于隔行扫描图像,视频编码系统需要有效扫描行的数目是32的倍数,逐行扫描图像是16的倍数。所以,对于1080-行的隔行扫描格式,视频编码器和解码器真正使用的是1088行。额外的8行是“虚设”行,没有内容,设计者选择特定应用的虚设数据。额外的8行通常是编码图像的最后8行。这些虚设行不携带有用的数据,但加了一点传送需要的数据。
2. p = 逐行扫描;I = 各行扫描。
表13.6 MPEG-2主模型级别和分辨率的例子
级别 |
空间分辨率层 |
模型 |
|||||
简单 |
主 |
多视图 |
SNR/空间 |
高 |
4:2:2 |
||
高级 |
增强 |
- |
62.668800 |
62.668800 |
- |
62.668800(4:2:2) 83.558400(4:2:0) |
62.668800 |
低 |
- |
- |
62.668800 |
- |
14.745600(4:2:2) 19.660800(4:2:0) |
- |
|
高级-1440 |
增强 |
- |
47.001600 |
47.001600 |
47.001600 |
47.001600(4:2:2) 62.668800(4:2:0) |
- |
低 |
- |
- |
47.001600 |
10.368000 |
11.059200(4:2:2) 14.745600(4:2:0) |
- |
|
主级 |
增强 |
10.368000 |
10.368000 |
10.368000 |
10.368000 |
11.059200(4:2:2) 14.745600(4:2:0) |
11.059200 |
低 |
- |
- |
10.368000 |
- |
3.041280(4:2:0) |
- |
|
低级 |
增强 |
- |
3.041280 |
3.041280 |
3.041280 |
- |
- |
低 |
- |
|
3.041280 |
|
- |
- |
表13.7 MPEG-2 Y采样率(M采样点/秒)上限
在单层或SNR可扩展编码模型中的情况下,使用“增强层”参数。
级别 |
模型 |
|||||
不可扩展 |
可扩展 |
|||||
简单 |
主 |
多视图 |
4:2:2 |
SNR/空间 |
高 |
|
高级 |
- |
80 |
130(两层) 80(基本层) |
300 |
- |
100(所有层) 80(中+基本层) 25(基本层) |
高级-1440 |
- |
60 |
100(两层) 60(基本层) |
- |
60(所有层) 40(中+基本层) 15(基本层) |
80(所有层) 60(中+基本层) 20(基本层) |
主级 |
15 |
15 |
25(两层) 5(基本层) |
50 |
15(两层) 10(基本层) |
20(所有层) 15(中+基本层) 4(基本层) |
低级 |
- |
4 |
8(两层) 4(基本层) |
- |
4(两层) 3(基本层) |
|
表13.8 MPEG-2比特率(Mbps)上限
可扩展性
MPEG-2 SNR,空间和高框架支持4种可扩展性模式操作。这些模式将MPEG-2视频分成几层,目的是为视频数据确定优先级。由于效率下降大概2dB(即大概需要多30%的比特数),所以可扩展性通常不使用。
SNR可扩展性
这种模式的目标是需要多级质量级别的应用。所有层都有相同的空间分辨率。基本层提供基本视频质量。增强层通过提供基本层的精细DCT系数数据来提高视频质量。
空间可扩展性
有用的联播,每个层有一个不同的空间分辨率。基本层提供了基本空间分辨率和时间速率。增强层使用对基本层空间内插来提高空间分辨率。例如,基本层可能使用352×240的视频分辨率,而增强层被用来生成704×480的视频分辨率。
时间可扩展性
这种模式允许从低时间速率迁移到较高时间速率系统。基本层提供基本的时间速率。增强层关联基本层使用时间预测。基本层和增强层可以融合产生全时间速率输出。所有层有相同的分辨率和色度格式。在增强层有错误的情况下,基本层可以被用来隐藏它。
数据分区
这种模式的目标是在ATM网络中信元丧失恢复能力。它将64个量化变换系数分成两组比特流。较高优先级的比特流包括重要的低频DCT系数和头和运动向量类的附属信息。一个低优先级的比特流携带高频DCT系数来增加细节。
传输流和程序流
MPEG-2系统标准指定两种方法来复合音频,视频和其它数据到一个合适的格式来传输和存储。
程序流 设计应用于较少出错的地方。它包含的音频,视频和数据流(也叫做比特流元素)复合到单个比特流。程序流,也就是每个元素流,可以是固定或可变的比特流。DVDs和SVCD使用程序流,在视频和音频流的私有数据流中携带DVD-和SVCD-特定数据。
传输流 使用长度为188字节的固定大小的分组,被设计用于那些数据容易出错的地方。也将所有音频,视频和数据流复合成单个比特流,可以携带多个程序流。ARIB,ATSC,DVB和开放式有线?标准使用传输流。
传输流 和程序流 都是基于一个通用的分组结构,以便于通用的解码器使用和转换。两种流被设计支持大量已知的和预期的应用,而保持灵活性。
视频编码层
YCbCr色度空间
MPEG-2使用YCbCr色度空间,支持4:2:0,4:2:2和4:4:4采样。选择4:2:2和4:4:4采样比4:2:0提高了色度分辨率,产生更好的图像质量。
MPEG-2的4:2:0采样结构如图3.8~3.10所示。4:2:2和4:4:4采样如图3.2和3.3所示。
编码图像类型
有3中类型的图像编码。I(帧内)图像是长或帧作为一个单独的静态图像编码的。在视频流中它们允许随机访问。如此,I图像每秒应该出现2次。I图像也应该出现在那些场景剪切的地方。
P(预测)图像是关于最近的I或P图像场或者帧的编码,产生前向预测处理,如图13.1所示。通过使用运动补偿,P图像比I同乡提供更多的压缩,它也作为B图像或将来P图像的参考。
B(双向)图像通过使用最近的过去或将来的I或P图像作为一个参考来进行场或帧编码,产生一个双向预测,如图13.1所示。B帧提供了最大的压缩率。并且通过平均两张图像降低了噪声。典型地,使用两张B图像来分开I或P图像。
D(DC)图像除了后向兼容MPEG-1的解码之外,在MPEG-2中不支持。
一个图像组(GOP)是一系列的一个或多个编码图像,旨在辅助随机访问和编辑。在编码过程中,GOP的值是可配置的。越小的GOP值,就有越好的运动响应(由于I图像彼此接近),但是较低的压缩率。
在编码的比特流中,一个GOP必须开始于一个I图像,可以跟随任何数量以任何顺序跟随I,P或B图像。在显示次序中,一个GOP必须开始预一个I或B图像,结束预一个I或P图像。所以,最小的GOP是一个I图像,而最大的没有限制。
每个GOP应该和其它任何GOP独立编码。然而这是不真实的,除非没有B图像先于第一个I图像,或者它们仅使用后向运动补偿。这导致了开放和封闭的GOP格式。一个封闭的GOP可以不使用前面的GOP图像的运动补偿。一个开放的GOP由断开连接标志 标识,指示在GOP头之后的第一个B图像(如果有)紧随在第一个I图像可能不能被正确的解码(这样不能被显示),由于因为编辑而使用于参考图像不可用的缘故。
图13.1 MPEG-2 I,P和B帧
一些图像可以不按顺序序列发送,有解码器来完成并发插值处理和和图像重排列。箭头显示了帧间的有依赖性。
运动补偿
由于引入了场,所以MPEG-2的运动补偿更复杂。在一个宏块使用运动补偿被压缩之后,在参考宏块和编码宏块之间包含两个空间差异(运动向量),内容不同(误差项)。
两个主要的预测类型是场 和帧。场图像中,只有使用场预测。帧图像中,或者场,或者帧预测被使用(在宏块层次可选)。
MPEG-2的运动向量通常以半像素单位编码。MPEG-1同时支持半像素或全像素单位。
16×8运动补偿选项
每个宏块使用两个运动向量(B图像4个),一个是宏块的高16×8区域,另一个是宏块的低高16×8区域。它仅用于场图像。
偶素运动补偿选项
这仅用于在帧的预测和参考场之间没有B图像的P图像。使用一个运动向量,两个运动向量只有一个小的差别。所有必要的预测由这些导出。
宏块
MPEG-2有3种类型的宏块可用。
4:2:0宏块(图13.2)包括4个Y块,1个Cb块和1个Cr块。块的组织如图中所示。
4:2:2宏块(图13.3)包括4个Y块,2个Cb块和2个Cr块。块的组织如图中所示。
4:4:4宏块(图13.4)包括4个Y块,4个Cb块和4个Cr块。块的组织如图中所示。
P帧中的宏块使用前面最近的I或P帧作为参考帧编码,产生2种可能的编码:
l 帧内编码:没有运动补偿
l 前向预测:前面最近的I或P帧作为参考
B帧中的宏块使用前面和将来最近的I和/或P帧作为参考帧编码,产生4种可能的编码:
l 帧内编码:没有运动补偿
l 前向预测:前面最近的I或P帧作为参考
l 后向预测:将来最近的I或P帧作为参考
l 双向预测:使用两个帧作为参考:前面最近的I或P帧作为参考和将来最近的I或P帧作为参考
图13.2 MPEG-2的4:2:0宏块结构
图13.3 MPEG-2的4:2:2宏块结构
图13.4 MPEG-2的4:4:4宏块结构
I帧
宏块
I帧有10种类型的宏块,如表13.28所示。
如果表13.28中的[宏块量化]列为“1”,那么量化尺度被传送。对于其余的宏块类型,DCT校正使用前面的量化尺度值来编码。
如果表13.28中的[编码模式]列为“1”,那么6-比特的编码块模型被作为可变长编码传送。这告诉解码器4:2:0宏块的6个块中的哪个被编码(“1”),哪个没有被编码(“0”)。表13.33列举了码字分布的63种组合。当没有编码块时,就没有编码;它有宏块类型指示。对于4:2:2和4:4:4的宏块,分别有2个或6个额外的比特,被用来扩展编码块模型。
DCT
每个8×8的块(输入采样或者预测误差项)通过一个8×8的DCT(离散余弦变换)处理,产生一个8×8块的水平和垂直频率系数,如图7.56所示。
输入采样值是0~255,产生的DC系数的范围是0~2,048,AC系数的范围是-2,048~2,047。
由于空间和信噪比(SNR)的可扩展性,非帧内块(非帧内宏块中的块)也有可能。非帧内块的系数意味着采样值之间的差异,而并非实际样本值。它们通过从前面图像减去当前宏块运动补偿值得到。
量化
8×8块的频率系数被均匀量化,限制于可允许的数值范围。量化步距从量化矩阵和量化尺度导出,可能随不同系数而不同,在宏块之间改变。
因为人眼对大的亮度区域敏感,DC系数的量化步距大小可以选择8,9,10或11比特的精度。量化DC系数通过将DC系数除以8,4,2或1取最近整数得到。
AC系数使用两个量化矩阵来量化:一个用于帧内宏块,一个用于非帧内宏块。当使用4:2:2或4:4:4数据时,不同矩阵可以使用Y或CbCr数据。每个量化矩阵有一套默认的值,并可以覆盖。
如果表13.28中的[宏块量化]列有一个“1”,那么量化尺寸被传送。对于剩下的宏块类型,DCT校正使用先前的量化尺寸编码。
锯齿扫描
锯齿扫描,开始于DC分量,为了提高频率,产生一个量化频率系数分布的线性流,如图7.59和7.60所示。这将产生长游程的0系数。
DC系数量化编码
在DC系数量化之后,它们是无损编码。
如图13.2~13.4中宏块中的Y编码块顺序。块4的DC值是下一个宏块的块1的预测。在每个分片的开始处,无论一个宏块是否被跳过,或者是否一个非帧内宏块被编码,DC预测被置成128(8比特DC预测),256(9比特DC预测),512(10比特DC预测)或1024(11比特DC预测)。
每个Cb和Cr快的DC值使用前面宏块对应块的DC值作为预测。在每个分片的开始处,无论一个宏块是否被跳过,或者是否一个非帧内宏块被编码,DC预测被置成128(8比特DC预测),256(9比特DC预测),512(10比特DC预测)或1024(11比特DC预测)。
但是,一个通用的实现是复位DC预测值到0和而使帧内DC项的中心到0而不是灰度的50%电平。然后,解码器在量化器(它有一个可以被用来重构真确值混合器)中必须处理不同的帧内DC精度,而不是解析器(它通常不能接触数据,并且没有混合器)。
AC系数量化编码
在AC数据量化之后,它们的扫描顺序如图7.59或7.60所示,使用游程长度和电平编码。扫描开始于位置1,如图7.59和7.60所示,位置0的DC系数分开编码。
游程长度和电平点编码如表13.37和13.38所示。“s”位指示电平的符号;“0”是正,“1”是负。对于帧内块,或者使用表13.37或者使用表13.38,由比特流中的intra_vlc_format指定。对于非帧内块,仅使用表13.37。
对于游程电平复合没有在表13.37和13.38中显示,一个逃逸序列被使用,包含逃逸码(ESC),后跟随游程长度和电平码,由图13.39和13.40所示。
在最后的DCT系数完成编码以后,一个EOB码被加入,告诉解码器这个8×8块中已经不再有量化系数了。
P帧
宏块
由于额外增加了复杂的运动补偿,所以P帧有26种类型的宏块,如表13.29所示。
当在码流中的macroblock_address_increment参数大于1时,存在被忽略的宏块。对于P帧的场,解码器从相同优先级的场作为预测场,运动向量被置为0。对于P帧图像,解码器置运动向量预测为0,并置运动向量为0。
如果表13.29中的[marcoblock quant]列有一个“1”,量化尺度被传送。对于剩下的宏块类型,DCT校正使用之前的量化尺度被编码。
如果表13.29中的[motion forward]列有一个“1”,那么水平和垂直前向运动向量依次被传送。
如果表13.29中的[coded pattern]列有一个“1”,那么6-比特编码块模式被作为一个可变长度码被传送。这告诉解码器宏块中的哪6块被编码成(“1”),哪个没有编码成(“0”)。表13.33列举了63种可能组合的码字分布。当没有块别编码时,就没有编码;它由宏块类型指示。对于帧内编码宏块的P和B帧,块编码模式没有被传送,但是它的假设值是63(所有块被编码)。对于4:2:2和4:4:4宏块,分别有一个额外的2或6比特被用来扩展编码块模式。
DCT
帧内块的AC系数传输和I图像的方式一样。帧内块的DC系数传输方式不同;预测值被置为1,024,除非前面块是帧内编码的。
非帧内块系数表示了不同的采样值而不是真实的采样值。他们通过从当前图像中减去前面图像的运动补偿值得到。DC值没有预测。
输出采样值的范围是-255~+255,产生的AC参数范围是-2,000~+2,000。
量化
帧内块的量化方式和I图像一样。
非帧内块使用量化尺度和非帧内量化矩阵量化。AC和DC系数的量化方式相同。
帧内块编码
帧内块的编码和I图像的帧内块编码相同。DC系数的预测值是128的处理方法不相同,除非前面块是帧内编码。
非帧内块编码
块编码模式(CBP)被用来指定哪个块有不同的系数。这些编码和帧内块编码类似,除了DC系数和AC系数的编码方式相同之外。
B帧
宏块
由于额外增加了复杂的后向运动补偿,所以B帧有34种类型的宏块,如表13.30所示。
对于B图像的场,解码器从相同优先级的场作为预测场。预测的方向(前向,后向或双向)和前面宏块是一样的,运动向量的预测不受影响,运动向量采用适当的运动向量预测。
如果表13.30中的[marcoblock quant]列有一个“1”,量化尺度被传送。对于剩下的宏块类型,DCT校正使用之前的量化尺度被编码。
如果表13.30中的[motion forward]列有一个“1”,那么水平和垂直前向运动向量依次被传送。如果表13.29中的[motion backward]列有一个“1”,那么水平和垂直前向运动向量依次被传送。如果前向和后向运动类型同时存在,那么向量的传输顺序为:
水平前向
垂直前向
水平后向
垂直后向
如果表13.30中的[coded pattern]列有一个“1”,那么6-比特编码块模式被作为一个可变长度码被传送。这告诉解码器宏块中的哪6块被编码成(“1”),哪个没有编码成(“0”)。表13.33列举了63种可能组合的码字分布。当没有块别编码时,就没有编码;这由宏块类型指示。对于帧内编码宏块的P和B帧,块编码模式没有被传送,但是它的假设值是63(所有块被编码)。对于4:2:2和4:4:4宏块,分别有一个额外的2或6比特被用来扩展编码块模式。
编码
块DCT系数被发送到量化系数,编码的方式和P图像的方式一样。