【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 的命名,两个其实是一样。

有时候可以看到 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 组织对这两种编码格式的命名。本质是差不多的编码格式,只是命名区别。
二、视频编码发展简史

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】视频编码发展简史的更多相关文章
- H264视频编码成MP4文件
firehood的专栏 Wince嵌入式开发 目录视图 摘要视图 订阅 赠书 | AI专栏(AI圣经!<深度学习>中文版) 每周荐书:Kotlin.分布式.Keras ...
- 【转】H264视频编码级别说明profile level Encoder
版权声明:本文为博主原创文章,未经博主允许不得转载. 首先要阐明所谓的AVC其实就是H.264标准,是由ITU-T和ISO/IEC组成的联合视频组(JVT,Joint Video Team)一起开发的 ...
- 利用OpenCV进行H264视频编码的简易方式
在Python下,利用pip安装预编译的opencv库,并实现h264格式的视频编码. 1. 安装OpenCV $ pip install opencv-python 建议在python虚拟环境下安装 ...
- 【转载】视频编码(H264概述)
一视频编码介绍 1.1 视频压缩编码的目标 1)保证压缩比例 2)保证恢复的质量 3)易实现,低成本,可靠性 1.2 压缩的出发点(可行性) 1)时间相关性 在一组视频序列中,相邻相邻两帧只有极少的不 ...
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ...
- 嵌入式 视频编码(H264)
这几天在编写视频录制模块,所以,闲暇之余,又粗粗的整理了一下,主要是API,以备不时之用 摄像头获取的模拟信号通过经芯片处理(我们使用的是CX25825),将模拟信号转成数字信号,产生标准的IT ...
- 嵌入式 视频编码(H264)hi3518
这几天在编写视频录制模块,所以,闲暇之余,又粗粗的整理了一下,主要是API,以备不时之用 摄像头获取的模拟信号通过经芯片处理(我们使用的是CX25825),将模拟信号转成数字信号,产生标准的IT ...
- Mediacodec编码后的h264视频出现马赛克问题
问题:在视频采集后,通过Mediacodec编码生成h264视频文件,播放时出现马赛克较多,无论调整帧率.码率.还是分辨率都不能解决问题 出现问题的原因:编码时传入的时间戳不对.时间戳是视频播放的标准 ...
- HTTP发展简史
HTTP发展简史 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...
随机推荐
- K8S(04)核心插件-coredns服务
K8S核心插件-coredns服务 目录 K8S核心插件-coredns服务 1 coredns用途 1.1 为什么需要服务发现 2 coredns的部署 2.1 获取coredns的docker镜像 ...
- 牛客网多校第4场 J Hash Function 【思维+并查集建边】
题目链接:戳这里 学习博客:戳这里 题意: 有n个空位,给一个数x,如果x%n位数空的,就把x放上去,如果不是空的,就看(x+1)%n是不是空的. 现在给一个已经放过数的状态,求放数字的顺序.(要求字 ...
- Git使用出现Automatic merge failed; fix conflicts and then commit the result.解决方法
产生原因 首先这个问题产生的原因是因为你git pull 的时候会分为两步,第一步先从远程服务器上拉下代码,第二步进行merge,但是merge时候失败了就会产生上述问题. 解决方法: 丢弃本地提交, ...
- PyQt5笔记
PyQt5 窗口类继承QMainWindow. 1.消息盒子QMessageBox 弹出一个窗口,根据选择的不同执行不同的操作.比如点击关闭后,实用消息盒子确认是否关闭. # 关闭QWidget将产生 ...
- codevs1068乌龟棋-四维DP,五维如何缩减一维
我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y ...
- 为什么国内的好多具备 HTTPS 的网站却没有使用 HTTPS 重定向功能
为什么国内的好多具备 HTTPS 的网站却没有使用 HTTPS 重定向功能 HTTPS 重定向 good demos ️ HTTPS http://www.xgqfrms.xyz/ https://w ...
- web hack & web security
web hack & web security https://www.hacksplaining.com/lessons https://www.hacksplaining.com/ OK ...
- vuex bug & vue computed setter
vuex bug & vue computed setter https://vuejs.org/v2/guide/computed.html#Computed-Setter [Vue war ...
- Google can't be accessed again, today is shit day
Google can't be accessed again, today is shit day 2019.11.28 12:00~20:56 holy shit (pile of poop) Go ...
- uniapp 发起网络请求
推荐下我写的uni-http 创建http-config.js import Vue from 'vue' const BASE_URL = 'http://xxx.com'; if (process ...