【H264】视频编码发展简史

时间:2022-09-28 09:13:49

一、常见视频编码格式

编码格式有很多,如下图:

【H264】视频编码发展简史

目前比较常用的编码有:

  • H26x系列:由ITU(国际电传视讯联盟)主导,侧重网络传输

  • MPEG系列:由ISO(国际标准组织机构)下属的MPEG(运动图象专家组)开发

  • PV8/PV9:VP8 是类似于 H.264 的另一种视频编码,由 On2 公司开发。后来 Google 收购了 On2。主要应用在 webrtc 中,音视频通话一般都是基于 webrtc 实现的

目前在这些众多编码格式中,做音视频开发最关注的应该就是 H.264/AVC 和 H.265/HEVC。其中 H.264 、H.265 是 ITU-T 的命名, AVC、HEVC 是 ISO 的命名,两个其实是一样。

【H264】视频编码发展简史

有时候可以看到 H.264 会写成 MPEG-4/AVC。上面讲到 H.26X 系统由 ITU 主导开发,MPEG 系列由 ISO 主导开发。而 H.264 和 H.265 是由 ITU 和 ISO 共同开发的,H.264,H.265 是 ITU 组织对这两种编码格式的命名,MPEG-4/AVC,MPEG-4/HEVC 是 ISO 组织对这两种编码格式的命名。本质是差不多的编码格式,只是命名区别。

二、视频编码发展简史

【H264】视频编码发展简史

1984 年 CCITT 第 15 研究组发布了数字基群电视会议编码标准 H.120 建议。 1988 年

CCITT 通过了“p×64Kbps( p= 1,2,3,4,5,,,,30) ”视像编码标准 H.261 建议, 被称为视频压缩

编码的一个里程碑。从此, ISO、ITU- T 等公布的基于波形的一系列视频编码标准的编码方法都是基于 H.261 中的混合编码方法。

1986 年, ISO 和 CCITT 成立了联合图像专家组( JPEG, Joint Photographic Experts Group),研究连续色调静止图像压缩算法国际标准, 1992 年 7 月通过了 JPEG 标准。

1988 年 ISO/IEC 信息技术联合委员会成立了活动图像专家组( MPEG, Moving Picture

Expert Group)。 1991 年公布了 MPEG-1 视频编码标准,码率为 1.5Mbps,主要应用于家用 VCD 的视频压缩; 1994 年 11 月,公布了 MPEG-2 标准, 用于数字视频广播( DVB)、家用 DVD 的视频压缩及高清晰度电视( HDTV)。码率从 4Mbps、15Mbps……直至 100 Mbps 分别用于不同档次和不同级别的视频压缩中。

1995 年, ITU-T 推出 H.263 标准,用于低于 64 Kbps 的低码率视频传输,如 PSTN 信道

中可视会议、多媒体通信等。 1984 年和 2000 年又分别公布了 H.263+、 H.263++ 等标准。

1999 年 12 月份, ISO/IEC 通过了“视听对象的编码标准”——MPEG4,它除了定义视频压缩编码标准外,还强调了多媒体通信的交互性和灵活性。

2003 年 3 月, ITU-T 和 ISO/IEC 正式公布了 H.264 视频压缩标准,不仅显著提高了压缩比,而且具有良好的网络亲和性,加强了对 IP 网、移动网的误码和丢包的处理。有人将 H.264 称为新一代的视频编码标准。

2013 年 2 月,ITU-T 正式批准通过了 H.265/HEVC 标准,标准全称为高效视频编码(High Efficiency Video Coding),相较于之前的 H.264 标准有了相当大的改善。H.265 旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。这也意味着,我们的智能手机、平板机等移动设备将能够直接在线播放 1080p 的全高清视频。H.265标准也同时支持 4K(4096×2160)和 8K(8192×4320)超高清视频。可以说,H.265 标准让网络视频跟上了显示屏“高分辨率化”的脚步。

三、H.264与H.265的关联与区别

关联

H.265 与 H.264 同属于 ITU-T VCEG(国际视频解码专家组)所制定的视频编码标准,都属于目前世界上最重要的视频解码标准,广泛应用于视频储存、广播电视、网络等各类视频传输流中(在 H.265 出现之前,H.264 几乎是最著名的编解码标准 —— 所有蓝光播放器都必须能解码 H.264)。

H.265 是基于 H.264 技术加以优化后的视频编码标准,在保留 H.264 技术特性的同时,进一步改善了码流、编码质量、延时和数据算法之间的关系,性能相对更强。

在 1080P 为极致观影追求的时代,H.264 是最理想的解码方式,而随着 4K 成为行业大趋势,H.265 才是其最理想的搭档。

区别

  • H.265/HEVC 的编码架构与 H.264/AVC 的架构相似,主要也包含帧内预测、帧间预测、转换等。但 H.265/HEVC 包括编码单元(coding unit, CU)、预测单元(predict unit, PU)和转换单元(transform unit, TU)。
  • H.265 在相同的图象质量下,相比于 H.264,通过 H.265 编码的视频大小将减少大约 39-44%。
  • 比起 H.264/AVC,H.265/HEVC 提供了更多不同的工具来降低码率,以编码单位来说,H.264 中每个宏块(macroblock/MB)大小都是固定的 16×16 像素,而 H.265 的编码单位可以选择从最小的 8×8 到最大的 64×64。
  • H.264 由于算法优化,可以低于 1Mbps 的速度实现标清数字图像传送;H.265 则可以实现利用 1~2Mbps 的传输速度传送 720P(分辨率 1280×720)普通高清音视频传送。
  • H.265 的帧内预测模式支持 33 种方向(H.264 只支持 8 种),并且提供了更好的运动补偿处理和矢量预测方法。

参考:

H264系列--简单的视频编码历史介绍

HEVC(H.265)与AVC(H.264)的区别与联系

【H264】视频编码发展简史的更多相关文章

  1. H264视频编码成MP4文件

    firehood的专栏 Wince嵌入式开发       目录视图 摘要视图 订阅 赠书 | AI专栏(AI圣经!<深度学习>中文版)      每周荐书:Kotlin.分布式.Keras ...

  2. 【转】H264视频编码级别说明profile level Encoder

    版权声明:本文为博主原创文章,未经博主允许不得转载. 首先要阐明所谓的AVC其实就是H.264标准,是由ITU-T和ISO/IEC组成的联合视频组(JVT,Joint Video Team)一起开发的 ...

  3. 利用OpenCV进行H264视频编码的简易方式

    在Python下,利用pip安装预编译的opencv库,并实现h264格式的视频编码. 1. 安装OpenCV $ pip install opencv-python 建议在python虚拟环境下安装 ...

  4. 【转载】视频编码(H264概述)

    一视频编码介绍 1.1 视频压缩编码的目标 1)保证压缩比例 2)保证恢复的质量 3)易实现,低成本,可靠性 1.2 压缩的出发点(可行性) 1)时间相关性 在一组视频序列中,相邻相邻两帧只有极少的不 ...

  5. 使用ffmpeg将BMP图片编码为x264视频文件&comma;将H264视频保存为BMP图片&comma;yuv视频文件保存为图片的代码

    ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ...

  6. 嵌入式 视频编码(H264)

    这几天在编写视频录制模块,所以,闲暇之余,又粗粗的整理了一下,主要是API,以备不时之用    摄像头获取的模拟信号通过经芯片处理(我们使用的是CX25825),将模拟信号转成数字信号,产生标准的IT ...

  7. 嵌入式 视频编码(H264)hi3518

    这几天在编写视频录制模块,所以,闲暇之余,又粗粗的整理了一下,主要是API,以备不时之用    摄像头获取的模拟信号通过经芯片处理(我们使用的是CX25825),将模拟信号转成数字信号,产生标准的IT ...

  8. Mediacodec编码后的h264视频出现马赛克问题

    问题:在视频采集后,通过Mediacodec编码生成h264视频文件,播放时出现马赛克较多,无论调整帧率.码率.还是分辨率都不能解决问题 出现问题的原因:编码时传入的时间戳不对.时间戳是视频播放的标准 ...

  9. HTTP发展简史

    HTTP发展简史 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

随机推荐

  1. tyvj1102 单词的划分

    描述 有一个很长的由小写字母组成字符串.为了便于对这个字符串进行分析,需要将它划分成若干个部分,每个部分称为一个单词.出于减少分析量的目的,我们希望划分出的单词数越少越好.你就是来完成这一划分工作的. ...

  2. 系统磁盘空间&sol;dev&sol;xvda1占满原因分析

    由于项目原因需要定期检查磁盘空间占用情况,常用检查命令如下: 1.查看磁盘空间大小 df -lh 2.查看对应文件大小 du --max-depth=1 -h / 于一日发现在使用Flume + Ka ...

  3. struts2标签具体解释

    要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部增加下面的代码: <%@taglib prefix="s" uri="/struts ...

  4. php 中文字符串首字母的获取函数

    这篇文章介绍了php 中文字符串首字母的获取函数,有需要的朋友可以参考一下 function chineseFirst($str) { $str= iconv("UTF-8",&q ...

  5. eclipse-android-activity&lowbar;main&sol;fragment&lowbar;main文件处理

    android新建工程后,在res/layout/下有两个文件,之前用studio的时候貌似没有,只有一个文件,然后再测试Activity切换的时候,一直在纠结这个问题,下面是解决方法: 1)将fra ...

  6. 3018&colon; &lbrack;Usaco2012 Nov&rsqb;Distant Pastures

    3018: [Usaco2012 Nov]Distant Pastures Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 43  Solved: 20[ ...

  7. js定义数组集合

    简单描述:最近脑子有点抽,js要用到数组,竟然傻傻的写了 var [] str = .简直是糟糕的不要不要的 //js代码var str = [];var str =new Array(); 啥也不说 ...

  8. typescript handbook 学习笔记4

    概述 这是我学习typescript的笔记.写这个笔记的原因主要有2个,一个是熟悉相关的写法:另一个是理清其中一些晦涩的东西.供以后开发时参考,相信对其他人也有用. 学习typescript建议直接看 ...

  9. Ex3&lowbar;15 判断图是否是一个强连通分量 判断点是否在汇点强连通分量中&lowbar;十一次作业

    (a) 可以用图中的每一个顶点表示街道中的每个十字路口,由于街道都是单行的,所以图是有向图,若从一个十字路口都有一条合法的路线到另一个十字路口,则图是一个强连通图.即要验证的是图是否是一个强连通图. ...

  10. 八种排序算法--java实现(转)

    (转:http://blog.csdn.net/without0815/article/details/7697916) 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中, ...