论文部分内容阅读
摘 要 H.263+标准能在较低的码率下传输较为清晰的视频图象,被广泛应用于图形图像处理。文章对H.263+标准进行了的介绍,通过对分层结构、解码算法、编码方式的了解,设计了以H.263+标准为基础的视频解码器方案。
关键词 H.263+;视频解码器;帧重建
中图分类号:TN911 文献标识码:A 文章编号:1671-7597(2013)16-0013-02
1 H.263+概述
H.263+标准是在H.263标准的基础上建立的,它以分层的方式来组织编码数据流,其技术实质就是将帧间编码和变换编码技术有机结合,实现数据流的编码和解码。其中,帧间编码技术用于减少时域空间的数据冗余,而变换编码技术则是用来减少空间区域残差信号的数据冗余。
H.263+标准支持亚四分之一的公共中间格式(sub-QCIF)、四分之一的公共中间格式(QCIF)、公共中间格式(CIF)、四倍公共中间格式(4CIF)、十六倍公共中间格式(16CIF)这五种图像格式。
其中dx表示亮度分量每行所占的像素点,dy表示图像每帧采样多少行;dx/2表示亮度分量每行所占的像素点,dy/2表示图像每帧采样多少行。根据上表,我们很容易发现,不同的标准格式图像所对应的亮度和色度分辨率也不尽相同。
2 H.263+分层结构
H.263+标准规定了图像格式的四层结构,即图像层、块组层、宏块层和块层。
图像中的每一帧可以由多个块组组成,而块组又由多个宏块组成。所以,宏块是组成图像的基础,每个宏块由四个亮度块和两个色度块所组成,亮度块信号为Cb,对应分辨率为16×16;色度信号块为Cr,对应分辨率为8×8。宏块信息严格按照编号顺序进行数据发送,其编排顺序遵循先自左向右,然后自上而下的原则。
3 H.263+解码基本算法
3.1 离散余弦变换及其反变换
由于图像数据信息在空间区域上具有连续性和相关性,如果能够采用某种方式对图像信息进行压缩,则有利于提高信号的传递。我们通过正交变换过程将图像变换系数集中并区域量化,量化后采用不同的数据量分别描述,以提高图像数据信息的压缩比。
H.263+标准的正交变换都是在离散余弦变换及其反变换的基础上以块为单位执行,离散余弦变换的公式如下:
3.2 预测
H.263+主要包括帧间预测和帧内预测两种方式,其中帧间预测是通过运动补偿手段实现图像和图像之间的预测。如果使用帧间预测方法对图像信息进行数据编码,我们称之为帧间编码,这种编码模式的图像被定义为P帧;如果使用帧内预测方法对图像信息进行数据编码,我们称之为帧内编码,这种编码模式的图像被定义为I帧。
3.3 运动补偿
通过帧间预测方法对图像信息进行数据编码时,可以减少图像信息在时间区域的数据冗余,提高图像信息的压缩比。如果将时域空间中某一特定位置处前一帧的像素值作为当前帧预编码的预测值,这种帧间预测很适合于图像中的静止背景部分,对于图像中的运动部分效果却不是很明显。如果能准确掌握当前帧是从前一帧具体哪个位置传输过来,将该位置的像素值作为当前帧的预测值时,能大大提高预测的准确性,起到图像信息运动补偿的作用。
3.4 运动估值
采用帧间预测时,当前像素的值需要通过搜索前一帧中的某个匹配像素的值来确定的。而这个搜寻的过程称为运动估值。运动估值主要采用像素递归法技术和块匹配法技术,其中块匹配法技术的使用较为广泛,国际知名的H.263、H.263+以及MPEG标准中,都利用该方法来实现运动估值。
采用块匹配法技术实现运动估值时,首先假设块内像素均实行相同的平移运动,并将各像素切分为M×N个小块,再在上一帧的空间区域内搜索与图像当前帧每个小块最优匹配的区域块,这些最优匹配的区域块都是从前一帧图像信息位置中平移到当前帧的,如果假设信息从前一帧平移到当前帧的过程中最大偏移矢量为dxmax和dymax,那么当前帧的搜索范围为(M+2×dxmax)×(N+2×dymax)。在实际图像信息传递过程中,有可能快内的像素不一定是平移运动,也可能運动方式不同,但当分割区域M×N足够小时,我们的假设基本成立。
3.5 量化
帧内编码块的第一个系数即可以使用统一的量化器步长,又可以使用自定义的量化器步长,H.263+标准的默认情况下,采用了统一步长为8的量化器。除第一个系数以外的其他系数的量化器选择性比较多,有31个量化器可供选择,但一定要确保同一宏块内部使用统一的量化器。
4 H.263+的解码设计
根据H.263+标准的四层结构及解码算法,将解码的过程分为解码器初始化模块,数据流解包模块,图像层、块组层及宏块层解码模块,可变长解码模块,帧重建模块,输出模块。
4.1 解码器初始化模块
解码器的初始化主要完成接收帧层数、接收方式、连接方式等方面的初始化。H.263+视频码流是按字节对齐方式进行传输的,即任何码字的起始码又是字节的起始码,解码器在接收码流时必须以字节为单位进行接收。
4.2 数据流解包模块
该模块主要功能是对数据流解包并读取图像层及块组层的头信息。
定义PSC为图像的起始码,由它来决定是否搜索到新的帧。定义UFEP为PLUSPTYPE中的标志位,如果UFEP=“000”,说明无附加信息,如果UFEP=“001”时,则说明有附加信息,那么其他的值解码器一律被认为是错误。定义GBSC为块组层的起始码,由它来决定是否有新的块组出现。定义GFID为块组帧的标识号,当帧编码类型改变时,GFID将随之改变。解码器通过读取这些定义参数码字来判断对数据流解包。
关键词 H.263+;视频解码器;帧重建
中图分类号:TN911 文献标识码:A 文章编号:1671-7597(2013)16-0013-02
1 H.263+概述
H.263+标准是在H.263标准的基础上建立的,它以分层的方式来组织编码数据流,其技术实质就是将帧间编码和变换编码技术有机结合,实现数据流的编码和解码。其中,帧间编码技术用于减少时域空间的数据冗余,而变换编码技术则是用来减少空间区域残差信号的数据冗余。
H.263+标准支持亚四分之一的公共中间格式(sub-QCIF)、四分之一的公共中间格式(QCIF)、公共中间格式(CIF)、四倍公共中间格式(4CIF)、十六倍公共中间格式(16CIF)这五种图像格式。
其中dx表示亮度分量每行所占的像素点,dy表示图像每帧采样多少行;dx/2表示亮度分量每行所占的像素点,dy/2表示图像每帧采样多少行。根据上表,我们很容易发现,不同的标准格式图像所对应的亮度和色度分辨率也不尽相同。
2 H.263+分层结构
H.263+标准规定了图像格式的四层结构,即图像层、块组层、宏块层和块层。
图像中的每一帧可以由多个块组组成,而块组又由多个宏块组成。所以,宏块是组成图像的基础,每个宏块由四个亮度块和两个色度块所组成,亮度块信号为Cb,对应分辨率为16×16;色度信号块为Cr,对应分辨率为8×8。宏块信息严格按照编号顺序进行数据发送,其编排顺序遵循先自左向右,然后自上而下的原则。
3 H.263+解码基本算法
3.1 离散余弦变换及其反变换
由于图像数据信息在空间区域上具有连续性和相关性,如果能够采用某种方式对图像信息进行压缩,则有利于提高信号的传递。我们通过正交变换过程将图像变换系数集中并区域量化,量化后采用不同的数据量分别描述,以提高图像数据信息的压缩比。
H.263+标准的正交变换都是在离散余弦变换及其反变换的基础上以块为单位执行,离散余弦变换的公式如下:
3.2 预测
H.263+主要包括帧间预测和帧内预测两种方式,其中帧间预测是通过运动补偿手段实现图像和图像之间的预测。如果使用帧间预测方法对图像信息进行数据编码,我们称之为帧间编码,这种编码模式的图像被定义为P帧;如果使用帧内预测方法对图像信息进行数据编码,我们称之为帧内编码,这种编码模式的图像被定义为I帧。
3.3 运动补偿
通过帧间预测方法对图像信息进行数据编码时,可以减少图像信息在时间区域的数据冗余,提高图像信息的压缩比。如果将时域空间中某一特定位置处前一帧的像素值作为当前帧预编码的预测值,这种帧间预测很适合于图像中的静止背景部分,对于图像中的运动部分效果却不是很明显。如果能准确掌握当前帧是从前一帧具体哪个位置传输过来,将该位置的像素值作为当前帧的预测值时,能大大提高预测的准确性,起到图像信息运动补偿的作用。
3.4 运动估值
采用帧间预测时,当前像素的值需要通过搜索前一帧中的某个匹配像素的值来确定的。而这个搜寻的过程称为运动估值。运动估值主要采用像素递归法技术和块匹配法技术,其中块匹配法技术的使用较为广泛,国际知名的H.263、H.263+以及MPEG标准中,都利用该方法来实现运动估值。
采用块匹配法技术实现运动估值时,首先假设块内像素均实行相同的平移运动,并将各像素切分为M×N个小块,再在上一帧的空间区域内搜索与图像当前帧每个小块最优匹配的区域块,这些最优匹配的区域块都是从前一帧图像信息位置中平移到当前帧的,如果假设信息从前一帧平移到当前帧的过程中最大偏移矢量为dxmax和dymax,那么当前帧的搜索范围为(M+2×dxmax)×(N+2×dymax)。在实际图像信息传递过程中,有可能快内的像素不一定是平移运动,也可能運动方式不同,但当分割区域M×N足够小时,我们的假设基本成立。
3.5 量化
帧内编码块的第一个系数即可以使用统一的量化器步长,又可以使用自定义的量化器步长,H.263+标准的默认情况下,采用了统一步长为8的量化器。除第一个系数以外的其他系数的量化器选择性比较多,有31个量化器可供选择,但一定要确保同一宏块内部使用统一的量化器。
4 H.263+的解码设计
根据H.263+标准的四层结构及解码算法,将解码的过程分为解码器初始化模块,数据流解包模块,图像层、块组层及宏块层解码模块,可变长解码模块,帧重建模块,输出模块。
4.1 解码器初始化模块
解码器的初始化主要完成接收帧层数、接收方式、连接方式等方面的初始化。H.263+视频码流是按字节对齐方式进行传输的,即任何码字的起始码又是字节的起始码,解码器在接收码流时必须以字节为单位进行接收。
4.2 数据流解包模块
该模块主要功能是对数据流解包并读取图像层及块组层的头信息。
定义PSC为图像的起始码,由它来决定是否搜索到新的帧。定义UFEP为PLUSPTYPE中的标志位,如果UFEP=“000”,说明无附加信息,如果UFEP=“001”时,则说明有附加信息,那么其他的值解码器一律被认为是错误。定义GBSC为块组层的起始码,由它来决定是否有新的块组出现。定义GFID为块组帧的标识号,当帧编码类型改变时,GFID将随之改变。解码器通过读取这些定义参数码字来判断对数据流解包。