H.264帧间预测

H.264帧间预测
与以往的标准一样,H.264使用运动估计和运动补偿来消除时间冗余,运动估计和运动补偿的过程如下:
  1. 当前帧在过去帧的窗口中寻找匹配部分,从中找到运动矢量
  2.  根据运动矢量,将过去帧位移,求得对当前帧的估计
  3. 将这个估计和当前帧相减,求得估计的误差值
  4. 将运动矢量和估计的误差值送到接收端去
  5. 解码端根据收到的运动矢量将过去帧作位移(也就是对当前帧的估计),再加上接收到的误差值,就是当前帧了
 
H.264标准又具有以下四个特点:
  1. 预测时所用块的大小可变
 
由于基于块的运动模型假设块内的所有像素都做了相同的平移,在运动比较剧烈或者运动物体的边缘处这一假设会与实际出入较大,从而导致较大的预测误差,这时减小块的大小可以使假设在小的块中依然成立。另外小的块所造成的块效应相对也小,所以一般来说小的块可以提高预测的效果。
为此,H.264一共采用了7种方式对一个宏块进行分割,每种方式下块的大小和形状都不相同,这就使编码器可以根据图像的内容选择最好的预测模式。与仅使用16×16块进行预测相比,使用不同大小和形状的块可以使码率节省15%以上。
 
2.更精细的预测精度
 
在H.264中,亮度分量的运动矢量(MV)使用1/4像素精度。色度分量的MV由亮度MV导出,由于色度分辨率是亮度的一半(对4:2:0),所以其MV精度将为1/8,这也就是说1个单位的色度 MV所代表的位移仅为色度分量取样点间距离的1/8。如此精细的预测精度较之整数精度可以使码率节省超过20%。
 
3.多参考帧
 
H.264支持多参考帧预测(multiple reference frames),即可以有多于一个(最多5个)的在当前帧之前解码的帧可以作为参考帧产生对当前帧的预测(motion-compensated prediction)。这适用于视频序列中含有周期性运动的情况。采用这一技术,可以改善运动估计(ME)的性能,提高H.264解码器的错误恢复能力,但同时也增加了缓存的容量以及编解码器的复杂性。
 
4.去块效应滤波器
 
去块效应滤波器(Deblocking Filter),它的作用是消除经反量化和反变换后重建图像中由于预测误差产生的块效应,即块边缘处的像素值跳变,从而一来改善图像的主观质量,二来减少预测误差。H.264中的Deblocking Filter还能够根据图像内容做出判断,只对由于块效应产生的像素值跳变进行平滑,而对图像中物体边缘处的像素值不连续给予保留,以免造成边缘模糊。与以往的Deblocking Filter不同的是,经过滤波后的图像将根据需要放在缓存中用于帧间预测,而不是仅仅在输出重建图像时用来改善主观质量,也就是说该滤波器位于解码环中而非解码环的输出外,因而它又称作Loop Filter。需要注意的是,对于帧内预测,使用的是未经过滤波的重建图像。
 
 

你可能感兴趣的:(职场,休闲,h.264,帧间预测)