【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因
过去几年,又拍云一直在点播、直播等视频应用方面潜心钻研,取得了不俗的成果。我们结合点播、直播、短视频等业务中的用户场景,推出了“省带宽、压成本”系列文章,从编码技术、网络架构等角度出发,结合又拍云的产品成果,向大家介绍节省流量,降低带宽成本的妙招。
本文《深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因》,是“省带宽、压成本”系列文章的第2篇。从视频网站所遇到的问题出发,深入解析 H.265 视频编码。
往期回顾:
第一篇:《节省50%以上的流量成本,从产品架构看PCDN的节流能力》
第二篇:《深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因》
今天我们聊聊视频编码。视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大。因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗。
目前应用最广泛的视频编码标准是 H.264。H.264 在低码率下的视频画质十分模糊;同时 H.264 对 2K、4K 视频的支持较差:以 H.264 的压缩率,一部4K电影的体积会超过 100G,甚至可以达到 150G、200G,这对想要抢占高清片源的视频平台来说几乎是致命的打击。
既要高清,又要视频体积小——这靠 H.264 明显是不可能了,而新的编码格式 H.265 就能满足这个要求。同样是 110 分钟的 4K 视频,用 H.265 编码进行压缩,体积可以降低 50%,相较于 H.264 的 100G-200G 而言,每一部 4K 视频都能节约大量的流量带宽成本。
H.265 是国际上公认的下一代视频编码标准则,国内外对 H.265 的支持越来越多,国内不仅有爱奇艺、搜狐、腾讯等头部视频网站开始支持 H.265 视频点播,各大字幕组也开始尝试使用 H.265 标准压制视频。
H.265:新一代视频编码技术
H.265 视频编码技术是于 2013 年定稿发布了下一代视频压缩标准,命名为 HEVC(High Efficiency Video Coding),分别被 ITU-T 和 ISO/IEC 采纳成为国际标准,即 H.265 视频压缩标准。H.265 在现有的视频编码标准 H.264 基础上,进一步提高压缩效率、提高鲁棒性(Robustness 抗变换性)和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度,以达到最优化设置。
H.265 能在有限带宽下传输更高质量的网络视频,只需 H.264 编码的一半带宽即可传输相同质量的视频。
1. 视频压缩率更出众,与 H.264 相比压缩效率提升 1 倍
H.265 全新的编码方式有效提升了视频压缩率,仅需原先的一半带宽即可播放相同质量的视频。众所周知,视频编码的码率是可以灵活控制的,以相同的视频质量为基准,H.265 编码技术相比 H.264 编码技术能够在视频容量减少 39% 到 74%,并且还能获得比 H.264 视频更好的信噪比(PSNR)效果。——拿“体积比你小,质量比你好”来形容 H.265 相比 H.264 的巨大优势,并没有显得过分。

2.视频传输流量省 50%
IEEE 出版的 Circuits and Systems for Video Technology,其中有 Comparison of the Coding Efficiency of Video Coding Standards—Including High Efficiency Video Coding 一文,以 9 段影片进行测试 H.265 的编码表现,所得到的结果相当另人满意,即便在表现最差的样本中,节省的流量接近 30%,平均起来也达到 49.3% 的佳绩。
3.支持蓝光 4K
H.265 编码技术有着惊人的压缩率,加上灵活的宏块像素技术,这对于 Ultra HD 4K/8K 超高清分辨率极为重要,2015 年春季正式出台的蓝光 4K(3840×2160)标准采用了 H.265/HEVC 编码标准,H.265 编码技术能够大幅降低蓝光 4K 光盘的容量需求。
H.265 压缩原理
更大的宏块和变换块:相对于 H.264 的 4×4、8×8、16×16 宏块类型,H.265 引入了 32×32、64×64 甚至 128×128 的宏块,目的在于减少高清数字视频的宏块个数,减少用于描述宏块内容的参数信息,同时整形变换块大小也相应扩大,用于减少 H.264 中变换相邻块问的相似系数。

新的 MV(运动矢量)预测方式:区别于 H.264 基于空间域的运动矢量预测方式,H.265 扩充更加多的方向进行帧内预测,同时将预测块的集合由原来的空间域扩展到时间域及空时混合域,通过率失真准则计算后选择最佳的预测块。使用该方法,在基本模式下测试,在与H.264 相同质量的情况下,得到平均为 6.1% 的压缩增益,复杂图像的压缩增益甚至能提高到 20%。
并行化设计:当前芯片架构已经从单核性能逐渐往多核并行方向发展,H.265 引入了Entropyslice、WPP 等并行运算思路,使用并行度更高的编码算法,更有利于 H.265 在GPU/DSP/FPGA/ASIC 等并行化程度非常高的 CPU 中快速高效的实现产业化。
Tile 划分机制:它使得以往的 slice、帧或 GOP 为单位的粗粒度数据并行机制更加适合于同构多核处理器上的并行实现。Dependentslice 和 WPP 机制解决了以往 H.264 等编码技术中熵编码环节无法并行实现的问题,使得整个编解码过程中 DCT、运动估计、运动补偿、熵编码等任务模块的划分更加均衡,显著提高并行加速比。
开启 H.265 自适应
与 H.264 相比,H.265 不仅更符合未来高清影片发展的趋势,而且同等画质下可以为带来更高效的视频压缩效率,有效节省流量消耗。
为了让用户使用到更先进的产品,又拍云一直在 H.265 的实用性与便捷性方面钻研,2017 年 5 月便推出了 H.265 视频自适应解决方案。又拍云 H.265 视频自适应方案集成了视频上传、视频存储、视频编码(转码)、视频分发适配、视频解码等功能。
- 视频上传转码:用户将 H.264 编码视频上传到又拍云的服务器,又拍云将其同步转为 H.265 编码的视频;
- 视频异步转码:针对已存储在又拍云服务器上的 H.264 编码的视频,通过又拍云异步转码服务,可转为 H.265 视频存储,同时保留 H.264 视频副本;
- H.265自适应:又拍云 CDN 网络支持 H.265自适应功能,能够根据客户终端播放器发起的 UA 请求头 ( Accept-Encoding: h265 ),智能识别终端播放器是否支持H.265,并判断当前请求的资源是否存在 H.265 编码的文件。如果播放器支持且拥有 H.265 编码的视频,则返回 H.265 视频,否则返回原始视频,从而实现 CDN 平台的 H.265 智能适配。H.265 自适应支持又拍云存储和又拍云 CDN 两种使用场景。
推荐阅读:
【省带宽、压成本专题】从产品架构来看PCDN如何节流50%
【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因的更多相关文章
- 深入解析 H.265 编码模式,带你了解Apple全面推进H.265的原因
今天我们聊聊视频编码.视频文件亘古以来存在一个矛盾:高清画质和视频体积的冲突,相同编码标准下,视频更高清,视频体积更大.因此,应用更先进的视频编码标准,降低视频体积,可以大幅降低网站的流量消耗. 目前 ...
- 【省带宽、压成本专题】从产品架构来看,PCDN如何节流50%
过去几年,我们一直在视频省流量方面潜心钻研,取得不俗的成果.本次"省带宽.压成本"系列一共会推出六篇文章,从技术迭代.硬件更新等角度出发,向大家介绍节省CDN流量,降低视频播放成本 ...
- 状压dp专题复习
状压dp专题复习 (有些题过于水,我直接跳了) 技巧总结 : 1.矩阵状压上一行的选择情况 \(n * 2^n\) D [BZOJ2734][HNOI2012]集合选数 蒻得不行的我觉得这是一道比较难 ...
- C++实现RTMP协议发送H.264编码及AAC编码的音视频
http://www.cnblogs.com/haibindev/archive/2011/12/29/2305712.html C++实现RTMP协议发送H.264编码及AAC编码的音视频 RTMP ...
- C++实现RTMP协议发送H.264编码及AAC编码的音视频(转)
C++实现RTMP协议发送H.264编码及AAC编码的音视频(转) RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia ...
- (转)C++实现RTMP协议发送H.264编码及AAC编码的音视频,摄像头直播
转:http://www.cnblogs.com/haibindev/archive/2011/12/29/2305712.html C++实现RTMP协议发送H.264编码及AAC编码的音视频 RT ...
- python3下urlopen解析中文url编码错误
这是在ipython下测试的结果: In [24]: x Out[24]: 'http://127.0.0.1:8000/xxx/?id=a45ex0bad3c9&game=五子棋' In [ ...
- [.NET领域驱动设计实战系列]专题三:前期准备之规约模式(Specification Pattern)
一.前言 在专题二中已经应用DDD和SOA的思想简单构建了一个网上书店的网站,接下来的专题中将会对该网站补充更多的DDD的内容.本专题作为一个准备专题,因为在后面一个专题中将会网上书店中的仓储实现引入 ...
- Spark Streaming揭秘 Day34 解析UI监听模式
Spark Streaming揭秘 Day34 解析UI监听模式 今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式. ...
随机推荐
- 4.Lucene3.案例介绍,创建索引,查询等操作验证
案例: Article.java package cn.toto.lucene.quickstart; publicclassArticle { privateintid; private St ...
- 自定义gradview
http://blog.csdn.net/jdsjlzx/article/details/7525724 虽然Android已自带了GridView,但是,却不够灵活,同时也不能自由添加控件,因此,本 ...
- 聊聊Condition
本文可作为传智播客<张孝祥-Java多线程与并发库高级应用>的学习笔记. 上面我们说了Lock,那是对synchronized的一种更为面向对象的替代,在原来的synchronized内部 ...
- Android View框架总结(一)
View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...
- Java之泛型编程
1.概念 泛型就是参数化类型.泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率. 2.案例 1)先看下面案例: //不适用泛型编程 Apple app0=ne ...
- 【一天一道LeetCode】#110. Balanced Binary Tree
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Linux的sort命令
Linux的sort命令 Linux的sort命令就是一种对文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常使用的文件排序工具. sort命令将输入文件看做由多条记录组成的数据流 ...
- 【一天一道LeetCode】#92. Reverse Linked List II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Reverse ...
- native2ascii命令
native2ascii命令 native2ascii的命令行的命名格式: native2ascii -[options] [inputfile [outputfile]] 说明: ...
- 使用百度地图开发一个导航定位demo-android学习之旅(77)
首先介绍如何导入百度地图 步骤(其实官方文档写的很清楚了)http://developer.baidu.com/map/index.php?title=androidsdk/guide/introdu ...