• 【mpeg】MPEG-2与MPEG-1和H.261、H.264标准技术(工具集)区别分析


    Date: 2018.10.30


    1、参考

    H.261标准下载:https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-H.261-198811-S!!PDF-E&type=items
    或者 https://www.ic.tu-berlin.de/fileadmin/fg121/Source-Coding_WS12/selected-readings/14_T-REC-H.261-199303-I__PDF-E.pdf
    H.261相关资料:http://www.ics.agh.edu.pl/dydaktyka/mm/lato0405_inf_d/laboratoria/Kompresja/Kodeki/h261.pdf
    https://blog.csdn.net/u010837188/article/details/38554549

    2、MPEG-1 VS. H.261 VS. MPEG-2 vs. H.264
    • 视频源分辨率
      H.261只支持CIF和QCIF两种分辨率,MPEG-1支持SIF(352x240 for NTSC,352x288 for PAL)格式和CPS(Constrained Parameter Set)中的其他分辨率;MPEG-2标准支持更高的分辨率,比如D1,720P等。

    • 色度格式
      MPEG-1和H261只支持4:2:0色度格式,MPEG-2支持4:2:0,4:2:2和4:4:4三种色度格式。

    • 逐行或隔行编码方式
      MPEG-1和H.261标准只支持逐行编码,MPEG-2标准支持逐行编码和隔行编码。

    • 编码图像类型
      H.261中只有I帧和P帧;
      MPEG-1中在H.261的I帧和P帧的基础上引入了B帧和D帧;
      MPEG-2中的帧类型主要有I帧、P帧和B帧。

    • 编码码率
      H.261:40kbps~ 2Mbps
      MPEG-1: 最高大约1.5Mbps
      MPEG-2:3Mbps~100Mbps

    • 码流分层结构
      H.261中的码流分层结构比较简单,主要包括Picture,GOB(Group of blocks),MB(Macroblock)和block;
      MPEG-1和MPEG-2码流结构相似,不同于H.261中的GOB,引入了Slice的结构。

    • 量化
      H.261量化针对所有宏块采用相同的量化矩阵;
      MPEG-1和MPEG-2量化针对帧内编码和帧间编码采用了不同的量化表(量化矩阵)。

    • 运动矢量
      MPEG-2支持半像素精度的运动矢量,其中半像素值可以通过双线性插值获得。
      H.261中运动矢量的最大范围是+/-15像素,而MPEG-2支持半像素精度运动矢量范围为[-512, 511.5];整像素精度运动矢量范围为[-1024, 1023]。
      MPEG-2码流支持随机访问,通过每个时间编码的GOP的GOP层实现。

    • 宏块匹配像素精度

      MPEG2中,运动估计的精度是1/2的像素,通过线性插值实现(可能有简单修正);
      H264和MPEG4 都可以支持1/4像素的精度。

    • 参考帧

      MPEG2,MPEG4的P帧只能有一帧参考帧,B帧可以有两帧参考帧;
      H.264可以最多有15帧参考帧,一般情况下选择3-5帧作为参考帧。

    • 滤波器

      插值滤波器不同,在MPEG4里面是简单的线性插值,而H264里面是5抽头的滤波器;

      MPEG2没有环内deblocking工具,MPEG4有deblocking工具,但是属于postprocessing;;

      H264有环内deblocking工具。

    • I帧的编码

      MPEG2没有INTRA预测,但是有DC系数的预测;

      MPEG4没有INTRA预测,支持DC预测,并且支持两个AC参数的预测;

      H264支持INTRA预测,4*4共有9种模式。

    • 匹配宏块大小

      MPEG2最小匹配块尺寸为8*8;

      MPEG4同样也为8*8;

      H.264最小可以到4*4尺寸。

    • DCT变换的不同

      MPEG系列为8*8的DCT变换,逆变换时会出现漂移现象;

      H.264为整数4*4的DCT变换,而且直流系数经过HADMARD变换之后做的DCT变换,整数DCT变换可以防止逆变换时出现漂移现象。

    • 熵编码

      MPEG2/MPEG4则都是基于huffman,并且头部的语法相对比较简单,很少使用变长码;

      H264提供基于上下文的CAVLC和CABAC。

    • 码流结构

      MPEG2/MPEG4都是分层结构

      H264则是提供NAL单层结构,提供参数集合SPS,PPS,RPS的形式。

    • 量化参数的区别

      MPEG-2和MPEG-4提供31个量化参数(量化模式:常量化,系统默认量化矩阵,自定义量化矩阵);
      H264提供51个量化参数(量化模式:常量化,量化矩阵,自定义有否还不确定)。


    THE END!

  • 相关阅读:
    UVa OJ 148 Anagram checker (回文构词检测)
    UVa OJ 134 LoglanA Logical Language (Loglan逻辑语言)
    平面内两条线段的位置关系(相交)判定与交点求解
    UVa OJ 130 Roman Roulette (罗马轮盘赌)
    UVa OJ 135 No Rectangles (没有矩形)
    混合函数继承方式构造函数
    html5基础(第一天)
    js中substr,substring,indexOf,lastIndexOf,split等的用法
    css的textindent属性实现段落第一行缩进
    普通的css普通的描边字
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532307.html
Copyright © 2020-2023  润新知