MPEG基础和协议分析指南 初级读本 四团四团 11 化矩阵 量化级 s1a06o 2 输入DCT系数 输入DCT系数值 (较复杂象块) 仅用于显示 161922 非实际结果 161622124 □2azax 24 2627129 叫2s 112 量化矩阵值 量化级别值 所有值对应 未显示所有码值 于系数位置 用于完整8x8象块的一个值 图25 2.4扫描读取 图2-6b是另一种扫描读取图示,它可用于隔行扫描系统 在一般节目素材中,最重要的DCT系数通常位于变换矩在隔行扫描信号源中,一场图象中的一个8×8DCT块延 阵的左上角附近。加权后,低值系数再经舍位处理后有伸至两倍屏幕区,这样,对于给定的图象细节,出现的垂 可能为零。如果首先传送的是所有非零的系数,而后再直频率是水平频率的两倍。因此,隔行扫描图象中的理 以一个代码来表示剩余的全部零值,那么传输效率将会想扫描读取方式也是沿着对角线进行的,但对角线的倾 得到显著的提高。为此可采用一种特别的扫描读取的方斜度应当是图2-6a的两倍。图2一6表示对于一个给 式,它是按照高值系数出现几率大小的顺序来先后发送定的垂直空间频率,在扫描相同水平空间频率之前所进 系数的。图2-6a表示在一非隔行扫描系统中,出现高值行的扫描方式 系数的几率在左上角为最大,而在右下角的几率为最低 在这里,最好的读出顺序就是沿着45度对角线进行之字25熵编码 形扫描读取。 在实际视频中,并非所有的空间频率均同时存在。因此 在DCT系数矩阵中会存在零值项。在再量化的过程中,去 ww. tektronixⅸ com/video audio⑥
MPEG 基础和协议分析指南 初级读本 图 2-5 2.4 扫描读取 在一般节目素材中,最重要的 DCT 系数通常位于变换矩 阵的左上角附近。加权后,低值系数再经舍位处理后有 可能为零。如果首先传送的是所有非零的系数,而后再 以一个代码来表示剩余的全部零值,那么传输效率将会 得到显著的提高。为此可采用一种特别的扫描读取的方 式,它是按照高值系数出现几率大小的顺序来先后发送 系数的。图2-6a 表示在一非隔行扫描系统中,出现高值 系数的几率在左上角为最大,而在右下角的几率为最低。 在这里,最好的读出顺序就是沿着45度对角线进行之字 形扫描读取。 图2-6b是另一种扫描读取图示,它可用于隔行扫描系统。 在隔行扫描信号源中,一场图象中的一个8×8 DCT块延 伸至两倍屏幕区,这样,对于给定的图象细节,出现的垂 直频率是水平频率的两倍。因此,隔行扫描图象中的理 想扫描读取方式也是沿着对角线进行的,但对角线的倾 斜度应当是图2 -6a的两倍。图2- 6b表示对于一个给 定的垂直空间频率,在扫描相同水平空间频率之前所进 行的扫描方式。 2.5 熵编码 在实际视频中,并非所有的空间频率均同时存在。因此, 在DCT系数矩阵中会存在零值项。在再量化的过程中,去 www.tektronix.com/video_audio 11 除以量 化矩阵 除 以 量化级 输入 DCT 系数 (较复杂象块) 输入 DCT 系数值 仅用于显示, 非实际结果 编码 线 性 量化级 非线性 量化级 量化矩阵值 所有值对应 于系数位置 量化级别值 未显示所有码值 用于完整 8x8 象块的一个值
MPEG基础和协议分析指南 初级读本 之字形或典型式读出(帧) 隔行扫描读出(场) 图2-6 掉了一些小系数值,增加了零值数。尽管使用了扫描读2.6空间域编码器 取方式,但在各有效系数之间仍然会出现零系数。对于图2.7将前面述及的所有空间域编码方法绘制在一起。假 这些零系数,如果采用游程编码RL0),就能有效地进行定输入视频信号是4:2:2S叭I(串行数字接口)格式,它可 处理。当矩阵中存在着重复值时(如一串零值),RLC就只以是8比特或10比特的字长。MPEG只使用8比特分辨率, 传送零值的个数而不是逐个传送单个比特 因此需要对10比特的SD信号进行舍位处理。大多数 在研究实际视频中特定系数值的出现概率后发现,在实 MPEG类别使用4:20取样,还需要通过低通滤波器/内插 用中,某些系数值会经常出现,而某些系数值则不常出级处理。在舍位和彩色亚取样过程中会引入少量的不可 现。对于这样的统计信息,如果使用可变字长编码(ⅥC),恢复的信息损耗,数据率也相应按比例地有所减少。此 则可使码率得到进一步的压缩。经常出现的数值转换为外,还需保存光栅扫描输入格式,以便于转换为8×8象 短码字,不常出现的数值转换为长码字。为便于解码,任素块 一码字不能是另一码字的前缀 速率控制 量化数据 全比特率转换 10bit DCT 量化 熵编码 缓存器 已压缩 数据8-bt4:2:0 的数据 信息损耗没有损耗数据减少数据减少 数据减少数据不减少(信息损耗)(无损耗) 沙少每个系数的比特数, 可变字长编码 游程编码 优先处理某些系数,各系 最常出现的系 发送唯一的 数减少的比特数不同 数用短码字 码字来代替 (类拟于莫尔斯码) 串零值 图2-7 ronix.com/videoaudio
MPEG 基础和协议分析指南 初级读本 图 2-6 掉了一些小系数值,增加了零值数。尽管使用了扫描读 取方式,但在各有效系数之间仍然会出现零系数。对于 这些零系数,如果采用游程编码(RLC),就能有效地进行 处理。当矩阵中存在着重复值时(如一串零值),RLC就只 传送零值的个数而不是逐个传送单个比特。 在研究实际视频中特定系数值的出现概率后发现,在实 用中,某些系数值会经常出现,而某些系数值则不常出 现。对于这样的统计信息,如果使用可变字长编码(VLC), 则可使码率得到进一步的压缩。经常出现的数值转换为 短码字,不常出现的数值转换为长码字。为便于解码,任 一码字不能是另一码字的前缀。 图 2-7 2.6 空间域编码器 图2.7将前面述及的所有空间域编码方法绘制在一起。假 定输入视频信号是 4:2:2 SDI (串行数字接口) 格式,它可 以是8比特或10比特的字长。MPEG只使用8比特分辨率, 因此需要对 10 比特的 SDI 信号进行舍位处理。大多数 MPEG类别使用4:2:0取样,还需要通过低通滤波器/内插 级处理。在舍位和彩色亚取样过程中会引入少量的不可 恢复的信息损耗,数据率也相应按比例地有所减少。此 外,还需保存光栅扫描输入格式,以便于转换为8×8象 素块。 12 www.tektronix.com/video_audio 之字形或典型式读出(帧) 隔行扫描读出(场) 速率控制 量化数据 全比特率 10bit 数据 转换为 4:2:2 to 8-bit 4:2:0 量化 熵编码 缓存器 已压缩 的数据 信息损耗 数据减少 没有损耗 数据不减少 数据减少 (信息损耗) 数据减少 (无损耗) 量 化 减少每个系数的比特数, 优先处理某些系数,各系 数减少的比特数不同。 熵 编 码 可变字长编码 最常出现的系 数用短码字 (类拟于莫尔斯码) 游程编码 发送唯一的 码字来代替 一串零值
MPEG基础和协议分析指南 初级读本 M國國×⑧×x 区Ⅹ区⑧ +1國×⑧×x國×國×区×回x× N+國××N×x ⑧×x区×x区 4:2:2Rec601 4:1:1 区×区 区区 1亮度样值 ○2色度样值cC 区×区女区×区x 区风 4:2:0 图2-8 在DCT中,它将图象信息变换为频率域信息。DCT本身并在解码器中,对所接收的比特率进行串并转换,对熵编 不能进行任何压缩。在DCT之后,各系数经加权和舍位码进行逆向处理以再现已加权的DCT系数。该系数按照 处理,这是首次有效压缩。然后利用之字形扫描读取加之字形扫描读取方式存放在DCT矩阵中,经去加权处理 权后的系数,以增加首先读出有效系数的概率。在读出以再生DCT系数块。而后经DCT反变换,使8×8象素块 系数块中最后一个非零系数之后,产生E0B(块结束 得以恢复。为了取得光栅扫描输出,将象素块储存在RAM 作为该块系数的输出结束。 中,每次读出一行即可。为了从4:2:0数据中获取4:2:2输 此后,再通过游程编码和可变字长编码对系数再次进行出,则需要按照图2-8进行垂直内插处理 压缩。在可变比特率系统中,量化可以是固定的,但在在4:20格式中,色度样值位于垂直轴中相邻两行亮度样 固定比特率的系统中,需要使用缓冲存储器来吸收数据值的中间。这样,在使用隔行扫描信号源时,色度和亮度 编码过程中的异常变化。高细节图象有可能将缓存器填样值都是均匀分布的。 满,而简单图象则允许它是空的。如果缓存器接近于溢 出时,这时不得不加大量化步长,提高压缩因子 2.7时间域编码 在帧间编码中,仅传送图象间的差值是利用了图象的时 图象差值 图象延迟 当前图象 下一图象 图29 www.tektronix.com/videoaudio(13
MPEG 基础和协议分析指南 初级读本 图 2-8 在DCT中,它将图象信息变换为频率域信息。DCT本身并 不能进行任何压缩。在 DCT 之后,各系数经加权和舍位 处理,这是首次有效压缩。然后利用之字形扫描读取加 权后的系数,以增加首先读出有效系数的概率。在读出 系数块中最后一个非零系数之后,产生EOB(块结束)码, 作为该块系数的输出结束。 此后,再通过游程编码和可变字长编码对系数再次进行 压缩。在可变比特率系统中,量化可以是固定的,但在 固定比特率的系统中,需要使用缓冲存储器来吸收数据 编码过程中的异常变化。高细节图象有可能将缓存器填 满,而简单图象则允许它是空的。如果缓存器接近于溢 出时,这时不得不加大量化步长,提高压缩因子。 在解码器中,对所接收的比特率进行串并转换,对熵编 码进行逆向处理以再现已加权的 DCT 系数。该系数按照 之字形扫描读取方式存放在 DCT 矩阵中,经去加权处理 以再生DCT系数块。而后经DCT反变换,使8×8象素块 得以恢复。为了取得光栅扫描输出,将象素块储存在RAM 中,每次读出一行即可。为了从4:2:0数据中获取4:2:2输 出,则需要按照图 2-8 进行垂直内插处理。 在4:2:0格式中,色度样值位于垂直轴中相邻两行亮度样 值的中间。这样,在使用隔行扫描信号源时,色度和亮度 样值都是均匀分布的。 2.7 时间域编码 在帧间编码中,仅传送图象间的差值是利用了图象的时 图 2-9 www.tektronix.com/video_audio 13 1 亮度样值 Y 2 色度样值 Cb , Cr 图象差值 图象延迟 当前图象 下一图象 N N+1 N+2 N+3 4:2:2 Rec 601 4:1:1 4:2:0
MPEG基础和协议分析指南 初级读本 图象开始→帧内编码 时域编码 时域编码 时域编码 帧内编码 图象差值 图象差值 图象差值 下一图象开始 图210 间性冗余。图2-9是使用减法器并将图象延迟从而计算出为帧内编码图象(或称|图象),它们是只经过空间域压缩 图象差值的示意图。图象差值是从减法器右边输出的图而获取的图象。如果有误码发生或者切换了频道,那么 象,然后按照前面所介绍的内容利用空间域编码器对其在下一图象上就能恢复正确的解码而不会造成误码的扩 进行压缩编码。在解码器一端,用反空间域编码得出差散或积累。 值图象,并将差值图象与前一图象相加,这样就得到下 28运动补偿 图象中运动的存在降低了图象间的相似性,增加了生成 这种简单的编码系统有几个缺点。首先,如果只发送图差值图象的所需数据量。而运动补偿正是用来增加图象 象差值,在传输开始后立即就解码(出完整的图象)是不可间的相似性。图211为运动补偿的示意图。当某一对象 能的。这就使得解码器在某一比特流切换为另一比特流在电视机屏幕中运动时,它在每帧图象中可能处于不同 (例如观察者改变频道时)之后难于立即给出图象。其次,的位置,但就其外观特性而言不会有太大的改变。在编 如果差值数据中的任何一部分有错误,那么这将在图象码器中通过对运动的测量,就可以减小图象间的差值将 中造成误码的无限积累。 图象差值作为矢量发送给解码器。解码器使用这个矢量 为了解决上述问题,可以使用改进后的系统。在图2-10来移动前一图象中的对象,使其在新的图象中处于合适 中,系统周期性地发送完整的图象,这些完整的图象称的位置。 运动对象部分 过程 运动矢量 1.计算运动矢量 2.使用矢量移动图象N的数据 建立预测图象N+1 3.将预测图象与实际图象相比较 4.发送矢量和预测误差 图象N 图象N+1 图2-11 ktronix. com/video audio
MPEG 基础和协议分析指南 初级读本 间性冗余。图2-9是使用减法器并将图象延迟从而计算出 图象差值的示意图。图象差值是从减法器右边输出的图 象,然后按照前面所介绍的内容利用空间域编码器对其 进行压缩编码。在解码器一端,用反空间域编码得出差 值图象,并将差值图象与前一图象相加,这样就得到下 一图象。 这种简单的编码系统有几个缺点。首先,如果只发送图 象差值,在传输开始后立即就解码(出完整的图象)是不可 能的。这就使得解码器在某一比特流切换为另一比特流 (例如观察者改变频道时)之后难于立即给出图象。其次, 如果差值数据中的任何一部分有错误,那么这将在图象 中造成误码的无限积累。 为了解决上述问题,可以使用改进后的系统。在图 2-10 中,系统周期性地发送完整的图象,这些完整的图象称 图 2-10 为帧内编码图象(或称I 图象),它们是只经过空间域压缩 而获取的图象。如果有误码发生或者切换了频道,那么 在下一I图象上就能恢复正确的解码而不会造成误码的扩 散或积累。 2.8 运动补偿 图象中运动的存在降低了图象间的相似性,增加了生成 差值图象的所需数据量。而运动补偿正是用来增加图象 间的相似性。图2-11 为运动补偿的示意图。当某一对象 在电视机屏幕中运动时,它在每帧图象中可能处于不同 的位置,但就其外观特性而言不会有太大的改变。在编 码器中通过对运动的测量,就可以减小图象间的差值。将 图象差值作为矢量发送给解码器。解码器使用这个矢量 来移动前一图象中的对象,使其在新的图象中处于合适 的位置。 图 2-11 14 www.tektronix.com/video_audio 图象开始 帧内编码 时域编码 时域编码 时域编码 帧内编码 图象差值 图象差值 图象差值 下一图象开始 运动对象部分 运动矢量 图象 N 图象 N+1 过程: 1. 计算运动矢量 2. 使用矢量移动图象 N 的数据, 建立预测图象 N+1 3. 将预测图象与实际图象相比较 4. 发送矢量和预测误差
MPEG基础和协议分析指南 初级读本 4XY a)在4:2:0格式中,色度取样点数为亮度的1/4 8 4xY 2x C b在4.22格式中,色度数据量是4:2:0格式的两倍 图2 一个运动矢量可以控制被称为宏块的整个图象区域的移运动估值用于比较两个连续画面的亮度数据。并将第 动。宏块的大小由DCT编码和色度亚取样的结构所决定。个画面中的宏块作为参考。在整个搜索范围内,以半象 图2-12a表示在420系统中,色度样值的垂直和水平素的精度在所有可能的位移上测量出参考图象与下一图 间隔恰为亮度样值间隔的两倍。一个单独的8×8色度样象间的相关性。找出最大相关性,并用它来代表正确的 值块,与4个8×8亮度块占据同样的区域:这样,它就运动 是一个运动矢量可以移动的最小图象区。一个4.20宏块运动矢量具有垂直分量和水平分量。在典型的节目内容 含有4个亮度块,一个C块和一个C块 中,一个对象的运动可以包含许多个宏块。如果只是矢 在4.22格式中,色度仅在水平轴上被亚取样。图2-12b量差值被传送,可以得到较大的压缩因子。当图象中 表示在422格式中,一个单独的8×8DCT色度样值块占个大的对象运动时,如果邻近宏块具有相同的矢量,则 据的区域与两个亮度块相同。一个422宏块包含有4个矢量差为零。 亮度块,两个C2块和两个C块 www.tektronix.com/videoaudio(15
MPEG 基础和协议分析指南 初级读本 图 2-12 一个运动矢量可以控制被称为宏块的整个图象区域的移 动。宏块的大小由DCT编码和色度亚取样的结构所决定。 图 2 - 12a 表示在 4:2:0 系统中,色度样值的垂直和水平 间隔恰为亮度样值间隔的两倍。一个单独的8×8色度样 值块,与4 个8× 8亮度块占据同样的区域;这样,它就 是一个运动矢量可以移动的最小图象区。一个4:2:0宏块 含有 4 个亮度块,一个 Cb 块和一个 Cr 块。 在4:2:2格式中,色度仅在水平轴上被亚取样。图2-12b 表示在4:2:2格式中,一个单独的8×8DCT色度样值块占 据的区域与两个亮度块相同。一个4:2:2 宏块包含有 4 个 亮度块,两个Cb 块和两个 Cr 块。 运动估值用于比较两个连续画面的亮度数据。并将第一 个画面中的宏块作为参考。在整个搜索范围内,以半象 素的精度在所有可能的位移上测量出参考图象与下一图 象间的相关性。找出最大相关性,并用它来代表正确的 运动。 运动矢量具有垂直分量和水平分量。在典型的节目内容 中,一个对象的运动可以包含许多个宏块。如果只是矢 量差值被传送,可以得到较大的压缩因子。当图象中一 个大的对象运动时,如果邻近宏块具有相同的矢量,则 矢量差为零。 www.tektronix.com/video_audio 15 a) 在 4:2:0 格式中,色度取样点数为亮度的 1/4 b) 在 4:2:2 格式中,色度数据量是 4:2:0 格式的两倍 Cr Cb 8 8 8 8 16 16 8 8 8 8 8 8 8 8 4 x Y 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 8 2 x Cr 4 x Y 2 x Cb