回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较[通俗易懂]

回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较[通俗易懂]1、宏块匹配像素精度:MPEG2中,运动估计的精度是1/2的像素,通过线性插值实现;                     H.264/AVC和MPEG4都可以支持1/4像素的精度.2、参考帧的数量:    MPEG2,MPEG4的P帧只能有一帧参考帧,B帧可以有两帧参考帧,H.264/AVC可以最多有15帧参考帧(创新之处),

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、宏块匹配像素精度: MPEG2中,运动估计的精度是1/2的像素,通过线性插值实现;

                      H.264/AVC和MPEG4 都可以支持1/4像素的精度.

2、参考帧的数量:     MPEG2,MPEG4的P帧只能有一帧参考帧,B帧可以有两帧参考帧 ,H.264/AVC可以最多有15帧参考帧(创新之处),

                      一般情况下选择3-5帧作为参考帧.

3、滤波器的结构:    插值滤波器不同,在MPEG4里面是简单的线性插值,

                     而H.264/AVC里面是5抽头的滤波器(首次提出环路滤波概念);

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

                     H.264/AVC有环内deblocking工具. 
4、I帧的编码:       MPEG2没有INTRA预测,但是有DC参数预测;MPEG4没有INTRA预测,支持DC预测,

                                     并且支持两个AC参数的预测(这可以理解为早期的帧内预测)。H.264/AVC支持INTRA预测,

                     4*4共有9种模式(这就是H.264的创新之处). 

5、匹配宏块大小的区别:MPEG2最小匹配块尺寸为8*8,MPEG4同样也为8*8,

                       H.264/AVC最小可以到4*4尺寸(创新点,不过复杂度成倍增加)

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

                     H.264/AVC为整数4*4的DCT变换,而且直流系数经过HADMARD变换之后做的DCT变换,

                     整数DCT变换可以防止逆变 换时出现漂移现象.

7、量化之后的编码:  MPEG2/MPEG4则都是基于huffman,并且头部的语法相对比较简单,很少使用变长码; 

                     H.264/AVC提供基于上下文的CAVLC和CABAC(复杂,但是节省码流) 。

8、编码之后的结构:  MPEG2/MPEG4都是分层结构;

                     H.264/AVC则是提供NAL单层结构,提供参数集合的形式

9、量化参数的区别:  MPEG4提供31个量化参数(量化模式:常量化,系统默认量化矩阵,自定义量化矩阵),

                     H.264/AVC提供51个量化参数(量化模式:常量化,量化矩阵,自定义有否还不确定);

其他小的细节也很多.

大家也可以再往下比较, H.265/HEVC的比较呢? 其实博文里面之前已经有过H.264/AVC和H.265/HEVC的大量比较.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191795.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux是什么

    linux是什么

    2021年9月11日
    54
  • Latex 换行顶格、不缩进

    Latex 换行顶格、不缩进Latex换行顶格、不缩进,使用的命令为:\noindent在顶格的段落前面加上,此命令,就可以。

    2022年5月14日
    186
  • 【c语言】malloc函数详解[通俗易懂]

    【c语言】malloc函数详解[通俗易懂]谈到malloc函数相信学过c语言的人都很熟悉,但是malloc底层到底做了什么又有多少人知道。关于malloc相关的几个函数关于malloc我们进入Linuxman一下就会得到如下结果:也可以这样认为(window下)原型:externvoid*malloc(unsignedintnum_bytes);头文件:#include<malloc.h…

    2022年6月14日
    73
  • NET中小型企业项目开发框架系列(一个)

    NET中小型企业项目开发框架系列(一个)

    2022年1月3日
    65
  • 代理重加密_代理重加密BBS方案

    代理重加密_代理重加密BBS方案云计算中的数据机密性风险极大地阻碍了云计算的应用,而在用户端加密的模式对于数据共享来说非常不便,用户频繁的获取和释放授权将使得用户增效据加解密工作繁重。因此代理重加密技术在云端进行数据的密文转换,减轻了用户端的负担,同时加强了云端数据的保密性。一、代理重加密代理重加密是密文间的一种密钥转换机制,是由Blaze等人在1998年的欧洲密码学年会上提出的,并由Ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。在代理重加密中

    2025年10月14日
    2
  • maven打包命令—P,指定springboot项目的配置文件「建议收藏」

    maven打包命令—P,指定springboot项目的配置文件「建议收藏」适用于jekins配置打包环境。线下我们使用的dev环境,线上,测试环境就有不同的配置文件了。只需要在jekins的打包命令加入-Pprod,就可以了。prod对应相应的环境。但是还需要在maven的配置文件<project>节点里面加入<profiles><!–开发–><profile><!-…

    2022年5月20日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号