[Liupin]: 这是一篇简单介绍H.265文章,我接触和开发H.265二年来,H.265技术在行业内接收速度比H.264快多了,现在国际和国内各大公司都在进行H.265应用,不管是IC设计还是H.265编解码软件实现。现在三星S4,和LG G2,还有Sony等智能手机上都有H.265播放功能。我个人认为今明年,H.265转码器和基于H.265 封闭视频应用业务将会大大增长。
HEVC (H.265)概要
H.265/高效率视频编码(HEVC)为继H.264后的新编解码标准,与H.264一样,它由ISO/IEC运动图像专家组和ITU- T视频编码专家组(VCEG)联合制定。此新编解码标准的主要目标是压缩效率比H.264高50%,并支持8192x4320分辨率。
HEVC技术背景
ITU-T于2004年着手开发H.264的后续标准,而ISO/IEC于2007年开始这项工作。2010年1月,这两个组织在一联合建议书上合作,最终于2010年4月举行了MPEG和VCEG视频编码联合协作组(JCT-VC)会议,在此会上该编解码被命名为高效率视频编码(HEVC)。
2010年10月,JCT-VC编制了第一个工作草案规范,至于标准草案(以8个工作草案规范为基础)则在2012年7月获得批准。 2013年1月25日,ITU宣布HEVC在ITU-T替代标准程序中获得第一阶段批准,而MPEG则宣布HEVC在MPEG标准化程序中被提升为最终国际标准草案状态。
本质上,这意味着此规范的初期版本被冻结,因此多家厂商可定型其首批HEVC产品。当前的实施包括一种支持8比特4:2:0视频的主档、一种支持10比特的主10档,以及一种使用与视频“内”图像相同的编码工具的适用于静止数字图像的主静止图像档。
HEVC将不断发展,已经在着手扩展12比特视频和4:2:2和4:4:4色度格式,以及把可扩展的视频编码和3D视频纳入此规范内。
HEVC (H.265)工作方式
类似于H.264和MPEG-2,HEVC采用3种帧——一个图像组内的I、B和P帧,包含帧间和帧内压缩的元素。HEVC采纳很多技术进展,包括:
编码树块:在H.264采用有最大16x16尺寸的宏块的场合,HEVC则采用有最大64x64像素尺寸的编码树块,或CTB。在编码更大的帧尺寸时(如4K分辨率),更大的块尺寸更高效。如图1所示。
更多的帧内预测方向:在H.264采用9个帧内预测方向的场合,HEVC能够使用超过35个方向,增加更多提升更高效帧内压缩的可能的参考像素块(参见图2)。明显的代价是在增加的方向中搜索需要更多编码时间。
其它进展包括:
·自适应运动矢量 ,允许此编解码发现更多的帧间冗余
·优异的并行化工具,包括在多核环境内更高效编码的波前并行处理
·熵编码为CABAC独有,CAVLC不再有
·去块效应滤波器的改进以及建立一个进一步限制块边缘失真的称为取样自适应补偿的第二滤波器
HEVC (H.265)研究成果
HEVC与H.264和MPEG-2的比较已做了大量工作。“包括HEVC的视频编码标准的编码效率比较”一文报导了PSNR(峰值信噪比)比较和主观评价的结果。此报告考虑了多种使用情况,包括交互和娱乐应用。
对于娱乐相关的比较,该研究编码从832x480 (480p) 到1920x1080 (1080p)分辨率的多个片段。对于PSNR相关测试,此研究采用4种不同技术(HEVC、H.264、MPG-4和H.263)编码文件,直至全部文件有相同的PSNR。
此研究然后向观众显示多个以多个数据率H.264和HEVC编码的文件,要求他们评出结果。从这些测试,研究人员得出结论:达到几乎相同的主观质量,HEVC编码的测试片段比H.264/MPEG-4 AVC HP编码平均码率低53%。
HEVC (H.265)播放场合
播放统计很难获得,不过多家公司透露了HEVC在平板电脑上播放,如高通在一台1.5GHz高通Snapdragon S4双核CPU驱动的安卓平板电脑上播放。但必须指出的是,该视频只有480p分辨率,这对平板电脑显示器是有意义的,但离4K视频HEVC的设计能力差距很大。
爱立信估计编码HEVC可能要求高达10倍的计算复杂性,解码有2-3倍复杂性。
根据“消费设备内的HEVC解码”报告,多媒体研究集团分析师迈克尔·亚伯拉罕估计2011-2012年出货的经过软件升级能够HEVC播放的消费设备数量约14亿台,2013年预计达到10亿台以上。
亚伯拉罕表示,在收集这些统计数据时,她假定每年出货的所有PC都支持HEVC。
虽然安装基础很大,但市场分析公司Frost & Sullivan认为对消费内容服务,HEVC采用至少在5年之后。推迟HEVC适应阻力包括许多付费电视运营商近来在AVC设备上所做的重大投资,在 OTT编码和部署生态系统内缺少对HEVC的广泛支持,以及为了维持现有AVC芯片组的盈利能力而放慢HEVC编码和解码芯片的开发速度。
Frost & Sullivan副总裁丹·雷伯恩表示,由于部署较低带宽的HEVC视频可能节省成本,初始时HEVC部署将出现于封闭系统解决方案,如视频会议、远东的超高清服务和全世界的低带宽视频点播服务。他预测卫星直播服务提供商将在2014-2015年开始推广HEVC设备,一些实验性的地面数字电视频道可能在 2015年开始。不过,他断言,总的说来,尽管某些应用将比常规快得多采纳HEVC,而且HEVC编码和解码芯片应在2014年前成熟,但预计约在 2017年第一代支持HEVC的产品将上市。此外,甚至在2018年AVC也依然得到广泛使用,但那个时候它肯定被视为一种日常技术,与目前MPEG-2 的情况很像。
HEVC (H.265) 专利使用费将征收
可能阻碍采用HEVC的一个因素无疑与专利使用权费有关。与H.264一样,许多对HEVC有贡献的技术为专利技术,而专利其持有者欲得到使用其知识产权的补偿。2012年6月,一站式专利授权组织和H.264专利池组织者MPEG LA宣布要申请HEVC必不可少的专利,2013年2月举行的第三次会议有25位响应者。
不过,根据MPEG LA官员的话,没有为专利使用费指引发布乃至将合并一个专利集团的保证设定时间表,因为其他专利打包者或各个持权者可能决定单独主张他们的权利。一些细分市场,最突出的是芯片、编码及其它设备供应商,面对此不确定性将可能加紧其与HEVC有关的工作,并且为可能的专利权做储备。不过,其它细分市场,特别是试图获得HEVC提供的带宽节省的免费流媒体内容分配商,几乎肯定将等待许可权使用费情况明了。
HEVC (H.265)竞争在即?
这些专利权使如谷歌的VP9等的竞争技术值得一提,特别是谷歌在2012年12月对Chrome的测试版增加VP9解码以及一种用Opus 编解码器编码的新音频码流解码器。根据2012年11月谷歌的演示,VP9的目标是在较低的数据率具有与HEVC相同的质量。谷歌表示,除非在解码复杂性只高40%的代价下(而HEVC的解码复杂性增加2到3倍)比VP8质量有50%的提高,否则VP9不会推出。
作为一种编解码,VP8媲美H.264,在所有测试的数据率具有几乎相同的质量。不过,多种因素注定VP8失败,包括苹果拒绝在iOS设备上或在Safari内支持VP8播放,微软拒绝在IE9中包括它,H.264为一种联合的ITU/MPEG标准,以及它进入市场比H.264晚得多。
相同的因素依然存在:在苹果有望接受HEVC的同时,由于与其拒绝支持VP8的相同原因,它不可能支持VP9;还有潜在的知识产权问题。此外,HEVC是一种联合标准,因此在编码和播放的芯片支持方面已抢得先机。不过,VP9和HEVC几乎同时面市,这可能给予VP9一个比VP8更好的机会。
继续推进HEVC (H.265)
当然,如雷伯恩所指出的那样,在完备的编码/解码/传输基础设施形成前HEVC无法部署。如Elemental Technologies等的一些编码厂商已经宣布当前所有编码器都要在未来某一时期通过软件升级支持HEVC。未来购买企业级乃至台式编码器前,要询问此编码器未来是否将支持HEVC,以及该支持的费用。
除此之外,HEVC的率先采用要看市场。例如,在视频会议中,是先使用实时HEVC编码器和解码器。在流媒体领域,播放端始终是推动力。因为很少制作机构在清楚一种新格式能够对一群有意义的观众可靠播放之前会编码为此新格式。对于一般用途的流媒体,若无以下因素,难以对HEVC感兴趣:
·来自MPEG LA的特许使用费策略
·在如Flash Player或Silverlight Player等的播放器中经由HEVC的无所不做的播放(微软和Aobe都没有回应有关这是否或何时发生的信息要求)
·通过应用或操作系统升级把HEVC播放纳入iOS或安卓平台,并且清晰显示那些设备通过这些升级将支持HEVC
·可用于OTT机顶盒内的便宜解码芯片的可用性,或当期某些OTT机顶盒通过固件或软件升级可支持HEVC播放
结论
从4月的NAB到9月的IBC,与HEVC相关的技术和产品有望接踵而出,第一波HEVC编码器和解码器也将上市,因此可以评估此技术的实际性能、优点、成本,以及编码的HEVC码流的互操作性。
在那以前,如Frost & Sullivan报告所指出的那样,微观而非宏观考虑HEVC采用最有意义,原因是先行者和经济驱动力在每个市场都不同。最重要的是HEVC技术和产品将如何影响客户服务的市场。
- 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...
- GTX 750TI 使用 ffmpeg 时无法用 GPU HEVC(h.265) 进行加速
官网版本好像不是能加速的,所以在github上找到一个已经带gpu加速的. https://github.com/illuspas/ffmpeg-hw-win32 GPU加速命令格式: ffmpeg. ...
- 伟大的UHD编解码器的辩论:谷歌VP9与HEVC / H.265
伟大的UHD编解码器的辩论:谷歌VP9与HEVC / H.265 截至今天,伟大的UHD编解码器的争论涉及两个主要参与者:谷歌VP9和HEVC / H.265. 哪一个获得成功并where-invol ...
- 【miscellaneous】最新HEVC/H.265 4K视频,显卡解码测试
转载自:http://bbs.zol.com.cn/diybbs/d34441_76103.html 4K这个概念也在最近几年开始流行了起来,无论是4K显示器.4K电视盒子,还是4K游戏对硬件的要求也 ...
- EasyNVR摄像机网页直播中,推流组件EasyRTMP推送RTMP扩展支持HEVC(H.265)的方案
众所周知,RTMP标准协议实际是不支持HEVC(H.265)编码格式的,同样,现行的H5标准里面,也没有对H.265的描述,所以,在很大程度上,H5网页浏览器是无法接入HEVC(H.265)的,但是, ...
- 我们解决了如何将视频转换为HEVC / H.265和AVC / H.264
LEADTOOLS Recognition Imaging SDK是精选的LEADTOOLS SDK功能集,旨在在企业级文档自动化解决方案中构建端到端文档成像应用程序,这些解决方案需要OCR,MICR ...
- HEVC/H.265 的未来必须是使用并行处理(OpenCL?) OpenCV和OpenCL区别
1 扩展库简介 OpenCV(Open Source Computer Vision Library)是一个致力于实时处理计算机视觉问题的开源库.它最初由Intel公司开发,以GPL许可协议发布,后来 ...
- 最简单的视频编码器:基于libx265(编码YUV为H.265)
===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...
- H.265:网络视频的高清时代
去年八月,爱立信公司推出了首款H.265编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video C ...
随机推荐
- pyqt、webkit和qt之间的关系
前言 最近在维护一个PYQT的项目,有很多不明白的地方,总结一下,共其他直接使用pyqt的人参考一下.PyQT是一个生成图形应用程序的工具包.是python语言和成功的Qt库的绑定.Qt库是这个世界上 ...
- 如何解析android访问webservice返回的SoapObject数据(可用)
怎么解析android访问webservice返回的SoapObject数据 本帖最后由 kkDragon123 于 2013-03-26 15:50:07 编辑 我的数据如下:mingdanResp ...
- httpclient Accept-Encoding 乱码
解决方法 HttpEntity httpEntity = httpResponse.getEntity(); if (httpEntity != null) { if (httpEntity.getC ...
- 元素高度、宽度获取 style currentStyle getComputedStyle getBoundingClientRect
1.示例代码 (1)html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Python标准库:内置函数bytes([source[, encoding[, errors]]])
返回一个新的数组对象,这个数组对象不能对数组元素进行改动.每一个元素值范围: 0 <= x < 256.bytes函数与bytearray函数主要差别是bytes函数产生的对象的元素不能改 ...
- C# 代码实现设置用户"NETWORK SERVICE"具有对文件夹的读取权限。
设置用户"NETWORK SERVICE"具有对文件夹的读取权限. 原帖地址: http://www.cnblogs.com/sjhrun2001/archive/2009/03/ ...
- Spring Aspect实现AOP切面
百度搜索的大部分的文章(demo)都只是对简单的方法进行切面(例如:public String say(String name)),却未介绍在入参是不固定的时候改怎么处理,后来查到可以使用org.as ...
- RabbitMQ学习笔记1-hello world
安装过程略过,一搜一大把. rabbitmq管理控制台:http://localhost:15672/ 默认账户:guest/guest RabbitMQ默认监听端口:5672 JAVA API地 ...
- 【树莓派+.NET MF打造视频监控智能车】控制篇(.NET MF)
在上一篇<遥控篇>文章中,我们介绍了Sony PS2手柄信号的采集和编程,通过简单的封装,以事件的方式向我们提供按键信息.本篇文章主要介绍.NET Micro Framework系统接受到 ...
- urllib2特点--超时设置
# -*- coding: cp936 -*- #python 27 #xiaodeng #urllib2特点--超时设置 import urllib2 def urlopen(): url='htt ...