一、常见视频编码格式

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

目前比较常用的编码有:

  • 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系列--简单的视频编码历史介绍

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视频文件,将H264视频保存为BMP图片,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. servlet相关知识点

    一.servlet的生命周期 Servlet(Sever Applet),全称是Java Servlet,是用java编写的服务器程序.Servlet是指任何实现了这个Servlet接口的类. ser ...

  2. Python 3的f-Strings:增强的字符串格式语法(指南)

    最近也在一个视频网站的爬虫,项目已经完成,中间有不少需要总结的经验. 从Python 3.6开始,f-Strings是格式化字符串的一种很棒的新方法.与其他格式化方式相比,它们不仅更具可读性,更简洁且 ...

  3. 关于ucore实验一的资料查找

    任务:阅读实验一makefile 搞清楚ucore.img是如何构建的 $@  $<  $^  这三个变量分别是什么意思 https://blog.csdn.net/YEYUANGEN/arti ...

  4. vue watcher errors

    vue watcher errors Error in callback for watcher TypeError: Cannot set property of undefined" n ...

  5. DevOps in Action

    DevOps in Action DevOps is a set of software development practices that combines software developmen ...

  6. website 性能检测 & 前端性能优化

    website 性能检测 & 前端性能优化 https://cdn.xgqfrms.xyz/ https://mobile.xgqfrms.xyz/ PageSpeed Insights ht ...

  7. VSCode & disable telemetry reporting

    VSCode & disable telemetry reporting https://code.visualstudio.com/docs/supporting/faq#_how-to-d ...

  8. express+mongodb开发网站

    准备工作: 1安装git 进入官网  使用方法:使用git教程 2安装node.js 进入官网 3安装mongodb 进入官网 需要技术: 1.基础知识:html .css. js .jquery 2 ...

  9. 浅析VAST代币与SPC算力币的释放模式

    许多区块链业界分析师认为,2021年的区块链市场或许与2020年的有些许不同.2020年的区块链市场更注重的是DeFi领域,很多公链项目以及资本市场的巨鲸们也是将目光锁定在DeFi领域.而2021年的 ...

  10. 实用Macbook软件系列

    Macbook Software 实用Macbook软件系列 我的Mac都装了哪些软件 鉴于很多小伙伴刚刚由win系统转换到mac,一开始会有很多不适应的地方,所以本期文章准备给大家介绍下mac上一些 ...