朱政:金山H.265诞生记

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81843955 ...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81843955

640?wx_fmt=jpeg


本文来自时任金山云算法总监朱政在LiveVideoStackCon 2017上的分享,并由LiveVideoStack整理而成。朱政阐述了金山云265方案(KS265)的演进之路,以及他们如何一步步在工程,算法和测试上完善金山云265。目前朱政已成为杭州微帧信息科技的创始人,继续在编解码这条路上探索极致。


文 / 朱政

整理 / LiveVideoStack


概览


金山云265大家或多或少都听过,因为其在某一方面确实有做的比较优秀。作为底层开发的团队,首先我会更加关注代码本身,其次会尽量多和大家分享一些干货。由于我们的技术不是开放和开源的,所以本次会根据金山云265的演进之路来分享一些偏宏观的经验心得和方法。


分享的主要内容为:


1,序章:致敬X264

2,金山云265破茧而出

3,痛点与解决之道

4,未来展望


序章:致敬X264


X264编码器的优秀应该是大家公认的,它号称是视频编码的守望者。X264虽然是一个开源的编码器,但几乎商用的编码器都做不到它那么好。它创造了许多众所周知的工具和名词,如Mbtree,CRF,2PASS。在国内外对X264的使用非常广泛,它繁荣了H.264的内容和生态。另外,如果要做一款非常好的编码器,并具有一定的速度和压缩性能的基础,是需要花很多年时间和精力的,而X264就极大地解放了视频编码底层开发的劳动力。


在这里先展示一下金山云265当前的性能对比:

 

640?wx_fmt=png


性能摘要汇总


640?wx_fmt=png


以Veryfast为例性能摘要


破茧而出


在最开始起步的时候,我们设定的目标就是要与X264复杂度对标,思考如何在保证HEVC高压缩比的情况下,速度和功耗无限接近X264。起初想的就是要从零开始和从实时档次开始做。接下来会给大家介绍我们这四年来的主要工作,会从以下四个方面来介绍:重构与推倒重来,工程化追求极致,算法,测试。


1, 重构与推倒重来


如果我们考虑从HM来改版的话,有一个好处就是工具比较全,但它的缺陷就在于重构优化难以驾驭,要想做实时就非常的难。所以我们就要从零开始,第一次从零开始,首先就要选取一些工具来实现,包括一些压缩性能非常好的复杂工具都需要精心设计。然后就是效仿x264的快速档,不做RDO。但第一次做出的版本,速度很不理想,和x264相比,Superfast档的差距非常大,压缩性能也没有多大的优势。因此,果断推倒重来,进行第二次从零开始。


640?wx_fmt=png


积累之前的经验教训,对通篇更加熟悉,进行第二次从零开始,重新优化数据结构和算法流程,更加专注于极致契合极限编程,也实现更多的工具。


640?wx_fmt=png

 

2, 工程化追求极致


在工程方面,我们投入了很多的精力。我们会进行快速迭代,不断试错,找到突破口;由于当时团队人数不是很多,因此采用小团队结对编程,每个人都要熟系所有的代码;每次都要单元测试先行,严格执行Code Review,每一处代码和数据结构都要精益求精;解码器也要追求极限速度;宗旨就是,不怕麻烦,只怕性能不够,因此几乎是把95%的精力都投入到5%的性能提升上。


下面给大家举个工程优化的例子:


 640?wx_fmt=png640?wx_fmt=png

 

解码器作为编码器的副产品,也耗费了大量的精力。现在已经做到了比OpenHEVC平均提速2倍,并且全标准支持,鲁棒性强。


640?wx_fmt=png


3, 算法


由于不开源的原因,也就不能给大家分享核心的算法流程,但会在宏观上为大家介绍一下。在算法设计上,我们设定了高目标,一个月一次迭代。目前快速算法约70个,算法相关的配置参数约200个,配置参数应用到API接口的配置方法可能很多用户不知道,所以我们没有完全开放。在做快速算法的过程中,会往里面不断加入好的工具,为了将H.265的压缩性能发挥出来,所以它的一些压缩工具都要尽量用上。下面就是用到的一些快速档次工具集:


640?wx_fmt=png


整个算法设计过程就是:设计和实验算法,调试bug和不匹配,实现新工具和新Feature优化代码。下面展示快速算法不同档次性价比:


640?wx_fmt=png


4, 测试永不停歇


测试一方面可以分为性能测试和正确性测试两方面,另一方面也可以分为单元测试,CI测试,算法测试,版本迭代测试。


性能测试就包括了复杂度的性能和压缩性能,具体分为以下方面:


640?wx_fmt=png


正确性测试也是涵盖多方面的,具体分为以下方面:


640?wx_fmt=png


讲完上面四个方面,下面就来介绍一下金山云265的发展里程碑:


640?wx_fmt=png640?wx_fmt=png


目前金山云265编码器支持的一些Feature:


640?wx_fmt=png 

痛点与解决之道


金山云265最开始的困难就是研发困难,包括复杂度高,浏览器Flash,JS不支持等,经过我们努力也想出了一些解决的办法。


640?wx_fmt=png


在用户方面,经常会存在一些难点,比如播放体验差,带宽成本高等,这些使用我们的金山云265就可以得到改善。另外客户经常也会有一些顾虑,我们也都提供了相应的解决办法。


640?wx_fmt=png


下面就给大家展示一个金山云产品解决方案,这是一个包含云转码,客户端SDK,全面覆盖直播,点播,短视频的解决方案:


640?wx_fmt=png


未来展望


640?wx_fmt=png


接下来,要做的事情,就是解决客户的多样化需求和本身编码器不平衡,以及不充分的研发之间的矛盾,所以会从之前着重于实时档,到现在的更关注慢速档,争取在离线转码上面有更好的压缩效率,在中低码率上面也会更多的关注高码率。另外就是在基础设施上面会更多的关注上层建筑,这里只是一个自己的定义,是代码内部的,上层建筑就包括像码控, 场景调优,主观调优,自适应量化,就像阿里云他们做的窄带高清的事情。另外我们还会尝试极致压缩,就是用深度学习在符合现有编码标准的框架里测试,是否能够获得更好的压缩性能。



640?wx_fmt=jpeg

相关文章
vep视频翻录为mp4(支持大黄蜂云课堂6.05)
今天教大家怎么翻录大黄蜂vep视频,支持大黄蜂云课堂6.05的最新版。 教程很简单,大家跟着自己尝试下即可。
3944 0
vep视频翻录为mp4(支持大黄蜂云课堂6.05)
|
机器学习/深度学习 人工智能 开发框架
Povey正式出任小米语音首席科学家,小米移动端框架MACE全面支持Kaldi
今日,小米开发者大会 MIDC 2019 在北京开幕。语音识别大牛、前霍普金斯大学副教授 Daniel Povey 也正式宣布出任小米集团语音首席科学家,而近日更新的小米移动端深度学习框架 MACE 也已支持 Kaldi。
160 0
Povey正式出任小米语音首席科学家,小米移动端框架MACE全面支持Kaldi
|
机器学习/深度学习 存储 编解码
亮相 LiveVideoStackCon,透析阿里云窄带高清的现在与未来
2021.4.16-4.17,阿里云视频云亮相 LiveVideoStackCon 音视频技术大会上海站,带来三场不同视角的主题演讲,并与众多行业伙伴一同交流。在 “编解码的新挑战与新机会” 专场,视频云的资深技术专家深度分享了 “窄带高清” 技术演进思路。
亮相 LiveVideoStackCon,透析阿里云窄带高清的现在与未来
|
Web App开发 编解码 JavaScript
WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC、Simulcast 和 SVC,有太多的新技术和新架构出现在 WebRTC 新的标准中,比如 WebTransport、WebCodecs、AV1、E2EE、SFrame、ML 等等,这篇文章详细介绍了未来的 WebRTC-NV,不容错过。
WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
|
编解码 测试技术
华人的战场——MSU视频编码大赛
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82880666 ...
1194 0
|
Web App开发 编解码 架构师
Akamai首席架构师Will:WebRTC、QUIC、DASH、AV1都前景可观
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82880673 ...
1976 0
|
Web App开发 编解码
不需要SFU实现WebRTC联播实践
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81517933 ...
2644 0
观影票视频播放——亿网软通“互联网+”云视频应用解决方案
观影票视频播放——亿网软通“互联网+”云视频应用解决方案
1305 0
|
机器学习/深度学习 人工智能 编解码
7月10日云栖精选夜读:看阿里云窄带高清如何支援优酷 让《楚乔传》更清晰
最近有一部热剧《楚乔传》,由赵丽颖、林更新、窦骁、李沁等颜值领衔主演,有热血、励志、禁欲系、高颜值、正能量这些元素加持,更是让此剧开播以来引发了网友的疯狂热议。7月4日,《楚乔传》迎来上线之后的历史性时刻——成为史上最快突破200亿网播量大关的周播剧。
4488 0