自学内容网 自学内容网

图像压缩编码(5)--MPEG—x 系列视频压缩编码标准

MPEG一1和MPEG-2是 MPEG 制定的第一代音视频压缩标准,为VCD、DVD 及数字电视、高清晰度电视HDTV 等产业的飞速发展打下了牢固的基础;

MPEG一4 是基于第二代音视频编码技术制定的压缩标准,以视听媒体对象为基本单元,实现数字音视频和图形合成应用、交互大多媒体的集成,已在流式媒体服务等领域得到应用。

目录

1.MPEG一1的视频编码过程

2.  MPEG—1 的视频解码过程

3.  MPEG—1视频码流的分层

4.  MPEG一1系统层的编码与解码

MPEG——1 标准

1.MPEG一1的视频编码过程

MPEG一1标准没有定义特定的编码过程,它只定义了编码比特流的语法和解码过程。
其语法支持的操作包括运动估计、运动补偿预测、DCT、量化和变长编码。与JPEG 不同,MPEG一1没有定义产生合法数据流所需的详细算法,因而在编码器设计中提供了极大的灵活性。其视频部分的核心算法与H.261标准相类似,所不同的是,MPEG一1主要针对存储媒体,而 H.261、H.263 则主要面向传输:所以在兼顾图像质量和压缩比的情况下,MPEG一1还必须便于对图像序列进行随机访问和编辑。MPEG—1规定,每秒至少要传送两个可独立编解码的 I 帧,采用源输入格式 SIF,即 360x288(PAL)或360x240(NTSC)。MPEG一1 还规定了一个面向帧而不是面向场的句法,即逐行扫描。

1) 重排帧序

图像序列按显示顺序输入编码器,在编码器的输入端将按编码顺序重新排列。这部分工作在预处理环节完成。

2)运动估计和运动补偿预测
在这一部分要进行运动估计,计算运动矢量,对位移矢量编码,并根据矢量状态发出预测方式信息,控制预测方式,同时输出预测块数据。
因为当前宏块的位移矢量和前一个宏块的位移矢量有很强的相关性,所以对运动矢量采用DPCM 编码。对P帧,在每个宏块条的开始和遇到帧内编码的宏块之后,位移矢量的预测值应设为零。B 帧有前向预测和后向预测两个位移矢量,在每个宏块条的开始和遇到帧内编码的宏块之后,两个位移矢量的预测值都设为零;如果宏块只有一个位移矢量,那么另一个位移矢量的预测值不变。

3)I 帧编码
I帧中有两类宏块,一类用当前的量化级(intra-d),另一类则使用新的量化级(intra-q),宏块类型由数据缓冲区的饱和程度决定。

4) P 帧编码
(1)P帧宏块类型。
P 帧图像共有8类宏块:pred-mc、pred-c、pred-m、intra-d、pred-mcq、pred-cq、intra-q和 skipped,它们分别对应不同的编码方式。在宏块头上的编码信息中包括了宏块类型信息。
特别是 skipped 宏块,它的位移矢量为零,其预测误差也为零,解码器只需要将参考帧的宏块直接拷贝成当前图像宏块就可以了.

(2)编码类型的选择。
在对P帧宏块的编码过程中,要做4个判断:
• 是否要进行运动补偿。当位移矢量为零时,说明宏块没有运动,不用运动补偿。
• 是否帧内编码。当最佳位移矢量确定后,就要判断:是用第一步中得到的位移矢量进行预测编码,还是直接采用帧内编码。如果预测编码得到的预测误差较大,则很可能最后的编码效率比帧内编码低。可采用适当的快速算法进行比较,选取编码效率高的一种。

•如果不采用帧内编码,则判断是否还要编码。在量化以后,若所有的分量都是零,则宏块不需要进行编码,解码器只需要拷贝参考帧中同一位置宏块的内容即可。
• 是否要改变量化步长,这由缓冲器的数据存储情况决定。

(3)量化后的 DCT 系数的编码。
在P帧中,宏块的帧内编码基本上和 I 帧相同,只是 DC 分量的预测值不同,除非前一个宏块采用P 帧编码,否则该宏块帧内编码 DC 的预测值取 128。
P帧中宏块的非帧内编码方法和帧内编码类似,只是非帧内编码将 DC分量当作AC分量处理。


5) B帧编码
(1) B 帧宏块类型。
与P帧相比,因为增加了后向预测,所以宏块类型也多了。B帧中共有12类宏块:pred-I、pred-ic, pred-b, pred-bc, pred-f, pred-fc, intra-d, pred-icq, pred-fcq. pred-bcq, intra-q和skipped。各类宏块的编码方式不同。宏块头数据中包含宏块类型信息。
如果只有前向预测,则用前面的参考帧进行运动补偿,与P 帧相同。如果只有后向预测,则用后面的参考帧进行运动补偿。如果是双向预测,则将前向和后向的运动补偿结果加以平均。
B 帧的 skipped 类型宏块与前一个宏块有相同的位移矢量和宏块类型,这一点与P帧是不同的。

(2)B 帧宏块类型的选择。
在B 帧宏块编码的过程中,也要做四个判决:
• 运动补偿的模式判决。选择前向、后向或双向运动补偿。
• 是否用帧内编码。决定用帧内编码还是用帧间编码。
• 如果不用帧内编码,则同前面所述,也要判断是否需要编码。
• 是否需要改变量化步长。

2.  MPEG—1 的视频解码过程

解码器框图:

解码器收到的图像顺序与编码顺序相同。在解码时,VLC 解码器先解码图像头信息,确定图像类型。在解码得到量化后的DCT 系数后,再经过反量化(DQ)还原DCT 系数。
如果是帧内编码图像块,经 IDCT 便可还原图像块的像素样值;若为帧间预测编码的图像块,则 IDCT 还原得到的是图像块的预测差值,须与当前的预测值相加才可恢复像素值。
不同类型图像块的预测值是分别经过不同的运动补偿得到的,其中的预测方式和运动矢量等信息都由 VLC 解码器解码得到。

3.  MPEG—1视频码流的分层

MPEG一1对编码数据规定了一个分层结构,其码流被分为6个层次,从最高层到最低层依次是:

图像序列(VS)层、

图像组(GOP)层、

图像层、

条带(Slice)层、

宏块(MB)层、

块(B)层.



1)图像序列
图像序列由被处理的连续图像组成。图像序列在 MPEG一1中只能是逐行扫描方式的,而在 MPEG—2中既可以是逐行扫描方式的,也可以是隔行扫描方式的。一个编码的图像序列从一个序列头(sequence header)开始,后面跟着若干个图像组层数据,图像序列最后用序列终止码(sequence end-code)结束。


2)图像组
在 MPEG一1 中,将图像序列中的图像分为若干个图像组,每个图像组由几个连续图像组成,其第一帧总是I帧。图像组为一个随机存取单元,每组包括组头和图像层数据。


3)图像
图像层由图像层头和宏块条带层数据组成。图像是基本编码单元,也是一个独立的显示单元,可作为一个整体显示。


4)条带
图像层中的每个条带又被分成若干个宏块条,每个条带层的开始都有条带头,后面跟着若干个连续的宏块。宏块条是重新同步单元,在一个宏块条发生误码又不可纠正的情况下,仍能准确地找到下一个宏块条并正常解码。


5)宏块
由宏块头和块层数据组成。图像以亮度数据阵列为基准,分成16×16个像素的宏块,它是运动补偿的基本单元。一个宏块包含一个亮度宏块和两个色度宏块,色度宏块的大小与抽祥格式有关,当抽样格式为4:2:0时,色度宏块大小为 8x8;当抽样格式为4:4:4时,色度宏块大小为 16x16,如图 4-42(a)所示;当抽样格式为4:2:2时,色度宏块大小为8×16,如图 4-42(b)所示。

6)块 层

块层是由图像数据和块结束符(EOB)组成,是进行DCT的基本单元。

4.  MPEG一1系统层的编码与解码

MPEG一1系统层包含如下功能:
(1)将视频流、音频流、数据流等多个基本流复合成单一的串行比特流;
(2)保证基本流之间的时间同步;
(3)保证信源与信宿之间的时间同步;[信源,是产生各类信息的实体。显示器作为信宿,将接收到的图像信号转换为回图像 ]
(4) 可随机存取,便于编辑加工;
(5)速率可控。
MPEG一1系统层编码器、解码器框图如图 4-43所示。

在系统层编码器中,系统时钟 STC_{1}是频率为 90kHz的计时器,PTS (Presentation Time
Stamp)和 SCR(System Clock Reference)是系统的绝对时间。
编码时,以STC_{1}为基准,对每一帧画面、每一帧声音均附加一个 PTS 值;解码时即按此指定时间播放,从而达到音视频同步的目的。需要注意的是,解码器的本地 STC_{2}值受控于音频PTS 值,将会不断进行更新与校正。


原文地址:https://blog.csdn.net/search7/article/details/142383815

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!