图像压缩原理简介之H.261/H.263

Video.com.cn(视频网) 2006-09-25 16:31 来源: 雷特视频网
H.261概述 
  该标准由CCITT于1988至1990间发展制定。 
  应用于ISDN电话线的视频会议,可视电话等。 
  ISDN的基本速率为64kbps,可以使用多路复用(p×64kbps)。  
  解码序列如下: 


 
 图像帧类型为 CCIR 601 CIF(352×288)和 QCIF(176×144),信号色度格式4:2:0。 
  两种帧编码类型:帧内编码 Intraframes(I-frames)和帧间编码 Interframes (P-frames)。  
  帧内编码的 I-frames主要使用JPEG的技术。 
  帧间编码的 P-frames使用与前一帧(预测帧,predicted frame)的差值进行编码,因此当前帧依赖于前一帧。 
  I-frame可以作为随机读取点。 

帧内编码(Intra Frame Coding) 
下图显示了帧内编码的流程,和JPEG编码过程基本一致。 

 
 宏块(macroblock)为原始图像里16×16像素区域。 
  在4:2:0格式中,一个宏块对应4个亮度块(Y block),1个Cr块,1个Cb块(Cr block & Cb block,子采样后的色度信号块) 
  对所有DCT系数用常数值进行量化(即,没有JPEG标准里的量化表) 
  
帧间编码(Inter-frame (P-frame) Coding) 
  帧间编码的基本思路如下图所示: 

上图中: 
  参考图像(reference image)指前面(已编码)的图像。 
  目标图像(target image)指当前要编码的图像 
  在帧间编码中,关键过程称为运动估值(motion estimation),对于当前目标图像中的某一宏块,在参考图像中寻找与之最相似的宏块(best match),然后对他们的差值进行和帧内编码类似的编码。 
  这样作的好处是得到的差值矩阵比较小,编码需要的比特量业也比较小。但是这里还要传送最匹配宏块和当前编码宏块之间相对位置的信息,     
这里称为运动向量(motion vector)。 
  两点补充: 
  1.这里用解码后的图像(decoded image)作为参考图像,而不用原始图像。 
  2.一般使用“平均绝对差值”(MAD: Mean Absolute Difference)作为判断最匹配块的标准。也可以使用“均方差”(MSE: Mean Squared Errow) 

细节:如何对宏块编码 

很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr 
  有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type 
  若想调制量化以得到更好的压缩效果,传送量化值-->Quant 
  运动向量-->vector 
  宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。 
  象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb) 

H.261比特流结构 


 很多宏块能匹配得很好,传送每个宏块在图像中的地址--> Addr 
  有时找不到合适的匹配,这时传送帧内编码块(INTRA block)--> Type 
  若想调制量化以得到更好的压缩效果,传送量化值-->Quant 
  运动向量-->vector 
  宏块中,某些块匹配很好,其他则较差。这时传送bitmask,用来表示显示哪些块(CBP: Coded Block Pattern)。 
  象JPEG一样,传送各块。(4 Y, 1 Cr, 1 Cb) 

H.261比特流结构 

H.261中的难点问题
1.运动向量搜

当前目标图像中待编码宏块C,其右上角坐标为(x,y),则该宏块中像素为C(x+k,y+l) 
  参考图像内,右上角坐标(x+i,y+j)的参考宏块R内像素为R(x+i+k,y+j+l) 
  下式求绝对误差平均值(MAE: Mean Absolute Error): 

运动向量搜索的目标就是寻找一个MAE值最小的参考宏块,其对应向量(u,v)为运动向量。 
  
  全搜索(Full Search Method) 
   1.对参考图像内范围为[-p,p]搜索区域的所有可能宏块进行搜索。 
   2.全搜索方法的运算量为: 

设对比每个像素需要3次操作:减法、求绝对值,相加。 
    当搜索范围(p)较大时,全搜索算法的运算量相当大,因此需要各种快速算法。 

  
  二维对数搜索。(Two-Dimensional Logarithmic Search) 
  类似于binary search,在一个范围为[-p/2, p/2] 的窗口内对九个点进行初始的MAE计算(如下图所示) 
   1.在上述九点求出的MAE中,找出最小的一个。 
   2.以该点为中心,用上一步搜索范围的一半形成新的搜索区域,对新的九点进行搜索。 
   3.重复上两步,直到搜索区范围为一个像素。 

层次化运动估值(Hierarchical Motion Estimation)

1.对目标图像和参考图像,生产若干低分辨率的版本。 
2.对最低分辨率版本搜索运动向量。 
3.由低分辨率向高分辨率,逐级修改运动向量。(在每一级进行小范围搜索,最后得到的运动向量可能很大) 
各种快速算法运算量大大小于全搜索算法,但搜索结果要比全搜索算法差,全搜索算法得到全局极小点,而快速算法可能只能找到局部极小点。以下是各种算法性能比较:

2.误差传递(Propagation of Errors) 
  不能有太多连续的P帧。 
  在比较时(求MAD时),参考帧使用解码帧。 
3.比特率控制(Bit-rate Control) 
  基于“缓冲器充满程度”(buffer fullness)进行简单的反馈控制。 
  若缓冲器太满,增加量化比例因子来降低数据量。 
H.263 
H.263是1996年3月发表的,针对低码率应用的视频压缩标准。和h.261一样,该标准对帧内压缩 
采用transform 编码,对帧间压缩采用预测编码 
改进: 
 半象素精度运动补偿 
 无限制运动向量 
 Syntax-based arithmetic coding 
 先进的预测,PB帧 
  
除了CIF和QCIF,H.263还支持SQCIF,4CIF和16CIF 
以下是H.261/H.263支持的视频格式:
评论】 【社区】 【 】 【关闭此页

发表评论

发表者:
内容:

相关新闻