视频编码器的软件一般包括软件包含哪几个部分分呢

本文来自Hulu全球高级研发经理、视頻编解码与传输领域资深专家傅德良在LiveVideoStackCon 2018热身分享并由LiveVideoStack整理而成。在分享中傅德良以 Hulu实践为基础,介绍了视频编解码标准与视频编码器間的纷争以及视频编码器对比中的常见误区

大家好,我是傅德良在Hulu主要负责的团队是在做音视频编解码和传输相关的一些优化和开发嘚工作,很高兴跟大家聊一聊对于视频编码器的对比和选择

主要内容分为以下三个方面:

1,纷争的视频标准与视频编码器

2视频编码器對比中的常见误区

3,选择最合适的视频编码器

由于今天的热身分享时间相对比较有限所以今天主要会讲常见误区这一块,关于选择最合適的视频编解码器这个领域更多的会在10月份的LiveVideoStackCon 2018正式分享中进行介绍。

Hulu是美国的一家在线流媒体服务公司在中国并没有业务,主要服务嘚是美国的用户Hulu是由美国最大的几家传统的媒体公司合资创办的,它的使命是为了重新定义电视这一行业大家也知道电视这一行当已經出现很久了,不过一直到现在它在每个人的生活中仍然具有相当重要的地位。在Hulu上既有点播也有直播的内容,我们站上的这些视频夶部分都是高质量的视频主要是一些美剧,还有一些电影同时也有一些自制剧,Hulu近几年自制剧上面也有一些比较多的好剧出来

上图昰一个由第三方的数据公司做的美国比较主流的几个在线流媒体服务公司的一些数据统计,第一列的大概意思就是说如果一个人从来没囿用过有线电视,他直接就开始在电视上使用在线流媒体服务的情况我们称之为Cordless,Hulu在这几家公司里面是最高的而且Total OTT Viewing Hours和Viewing Days也是最高的,也僦是说对于Hulu来讲用户在站上的黏性是非常高的。Hulu的商业模式是付费加广告的一种模型也就是说首先需要付费成为付费玩家才能够真正嘚在我们的站上观看视频,在此基础之上还可以选择去广告或者是有广告。在这种模式下为了提供比较优质的内容,视频质量对于我們的这种服务来讲是非常重要的因此,不断地提高视频的传输和压缩的水平是非常重要的所以,Hulu经常会做一些不同的编码器不同的技术之间的一些选型,在这方面我们也积攒了一些相关的经验

纷争的视频标准与视频编码器

视频编解码标准一般是由一些标准化组织去組织创办和制订的一种规范,它主要规定了我们在网络上传输视频的码流格式从码流格式中也相应的规定了音视频编解码的基本流程。從流程上来讲编解码标准主要统一的是编码器和解码器的接口,它通过规定了码流的格式也就规定了在编码标准中可以使用的一些编解码工具的集合,也就能够保证音视频的压缩效率

上图是目前最常见的混合编码框架的基本流程图,这里就不细讲了整个视频编码的基本原理就是通过一系列的方法去除冗余,最终达到降低码率但是同时又能够恢复原始图像的目的。另外编解码标准只是对码流进行叻一系列的规定,事实上它并没有去具体的规定编码是怎样做的如果你去看标准文档,它其实规定的是整个解码的流程

视频编码器实際上跟视频编解码标准是有很大不同的,视频编码器是视频编解码标准的一种代码实现但是同一套算法的不同的实现,性能和效率的差別都是很显著的视频编码器之间的主要差异分为以下几个方面:

1) 视频编解码标准中压缩工具的支持情况

2) 针对视频编码速度的优化

3) 針对视频编码质量的优化

4) 功能和代码的可扩展性

举个例子,有人认为HEVC编码器一定比H.264的编码器要强但是我们知道在HEVC中有很多种不同的预測方向,如果我设计一种编码器不使用帧间预测只使用帧内预测,而且不管内容是怎样的都使用这一个固定的模式来进行编码,那么這样编出来的码流可想而知它的预测的效果是很差的,压缩的效率会非常的低虽然码率很高,质量很差但是这个码流仍然可能是符匼HEVC标准的。相对来说如果用H.264的来做编码,但是整个编码器的优化做得非常的好整个的码率控制都优化到了非常优秀的程度,那么这个H.264編码器编出来的视频码流的质量完全可以比HEVC编码器编出来的效果更好在视频编解码领域,新的标准刚刚出来的时候大家不会很快的去采用这种新标准的编码方案,原因就是在于编码器端的优化还没有做到位所以说单纯在考虑编码器的性能和它对这种标准的支持是非常爿面的一种做法。因此在实际的工作中,选择编码器一定不要盲目的相信H.265的编码器就一定比H.264的编码器好这个是不一定的,甚至有些时候一些比较Low的标准也可以做得很好因此,在选择编码器的时候要从上述的视频编码器之间的差异出发来选择。

3 纷争的编解码标准与編码器

在整个编码器对比的过程中,经常遇到的一个非常大的误区就是把视频编解码标准和视频编码器混为一谈

上面简单罗列一下目前市面上的很多种不同的编解码标准以及不同标准的编码器,在实际生产中作为一个在线视频提供方,如果希望自己去做视频的压缩那麼在编码器的选择上,毫无疑问是一个大问题并不是说,市面上只有那么几款编码器直接用就行了并不是那么的简单,在很多的场景Φ我们都会遇到如何去对比不同的音视频编码器来选择适合的编解码器的课题。

视频编码器对比中的常见误区

1 误区一:脱离速度评价質量

从视频编解码标准的发展历史来讲,整体来说是复杂度越来越高效率越来越高。在很多场景下视频编码中速度和质量在一定范围內是可以相互转换的,也就是说可以牺牲质量来加快速度因此,如果只是单纯考虑质量维度但不考虑速度,就会有很大的误差;此外即使同一编码器的不同的速度档次之间的质量差距也可以非常的巨大。

上图是我们内部对开源的HEVC编码器的测试图可以看出对于同一编碼器,在不同的速度档次下质量是有差距的;在相同码率下,速度越快质量也相对较低。因此我们在对比不同编码器的编码质量时,一定要在同一速度下比较编码质量才有意义

2, 误区二: 速度对比中环境不一致

为了达成准确的视频编码器对比需要使得编码器速度一致再进行对比,在这个过程中有的时候会有一个问题即对比的环境不一致。当编码器放在不同的这种软硬件环境下进行测试时对比结果可能有很多的误差。由于优化和实现上的区别各编码器在不同运行环境下速度差别显著。在对比不同编码器的过程中我们需要考虑箌CPU线程数量,硬件加速环境和开关CPU指令集支持情况和内存容量、带宽等因素。要在相同的测试环境下对比不一致或不合理的测试环境會导致编码器对比结果不正确。

3 误区三: 脱离码率范围对比质量

在视频编码的过程中,视频编码质量通常与视频编码码率成正相关但并非线性相关。在大的码率范围内随着码率的进一步增加,质量的增加是慢慢的衰减的这也就意味着说,各个编码器在不同的码率范围嘚性能表现可能是很不一致的在实际生产中,视频编码码率潜在范围非常宽广例如,同样都是720P的AVC的编码器有的用5000kbps,有的用500kbps对于一些硬件编码器,在低码率的情况下速度很快,编码质量也还可以它的编码效果就比一些软件编码器要好。但在高码率的情况下硬件編码器可能由于它的编码工具实现的不够完善导致质量上不去,这时候软件编码器就会表现的更好因此,在对比编码器的时候一定要茬它合适的码率范围内来比较性能,脱离码率范围对比编码质量很容易导致错误结论

4, 误区四: 仅依赖小规模公开测试序列进行测试

在视頻编码的过程中视频编码效率与视频内容高度相关的,同一视频编码器在不同类型内容上的表现经常是不一致的此外,还有一部分编碼工具主要针对某一类视频有效它主要针对某一特定场景有效,如果你的测试场景并不包含它这个测试的结果就不会好。因此在测试過程中最好能够针对你的业务需求由真正的应用场景去设计比较大规模的测试集,仅仅依赖小规模公开测试序列测试容易引入误差测試群规模小就不能够涵盖产品中的所有情况,而且公开测试序列不能体现业务特点与需求此外还有部分编码器针对公开测试序列进行了過拟合的调优,这些都会导致测试结果误差较大

5, 误区五: 仅使用PSNR评价质量

PSNR为视频编码领域经典指标至今被广泛应用,它是纯客观指标单纯体现编码后视频与原始视频差异程度。但是像PSNR这样子的纯客观指标是有一定的局限性的在很多情况下并不能正确反映视频主观质量。

上面两幅图如果用PSNR来衡量与原图相比较它们的PSNR的大小是一样的。但是我们很明显的可以看到右边的图它有一些噪音在里面,在主觀上来看左边的图比右边的图质量要好。因此如果单纯使用PSNR评价质量可能会使的我们进入一些误区,而且近些年很多的编码器里都會有基于主观质量进行的优化。

选择最合适的视频编码器

当我们避开上面的误区时选择的编码器一般是相对靠谱的。在选择编码器的过程中我们要充分考察业务需求,选定必要功能还要详细考察运行环境,并相应制定测试环境在测试的过程中,要明确定义测试目标要注意编码速度和码率范围。此外如果是你只是想做个学术的研究,只用公开的序列就足够对于工业实践还要根据自己的业务需求萣制特定的测试序列,而且测试序列规模应当足够大最后评价编码器的编码质量要主观质量和客观质量结合起来,不可仅仅从单一方面評价好坏

Q1: 请问有没有公开大量数据集的计划?

如果你关注的话你会发现在业界对于数据集的公布,成本是比较高的因为它除了拍摄還有一个处理的过程,还有包括一些版权这些相对来讲还是比较复杂的,我们目前暂时没有公布测试数据集的一种行为在业界有一些公司其实是能够找到一些的,但是数量坦白的说也并不是非常的大个人建议就是说还是在自己的业务场景里边根据自己的需求去做,像這样相对来讲比较靠谱一些

Q2: 数字水印有什么好的测量方法呢?

这块没有太多涉及在我们的业务中比较少涉及到数字水印,不同的水印原理也不一样据我所知在美国市场上有一些这种数字水印,它并不一定是加在视频上的有的时候是加在音频上的,据我所知尼尔森囿一些这种数字水印的技术,它的原理是把它加在人耳不容易感知到的频段上再使用相关的设备进行相关的提取。视频上面的话没有接触过。

Q3: X264除了参数调优以外提升质量还有哪些的优化

X264这个编码器本身的优化做得已经比较好了,如果说参数调优不考虑在内的话这个吔要看你的业务场景,如果说你的业务场景是这种对编码速度要求很高的情况的话你可以考虑对它的这种原有的这些速度级别进行有针對性的一些筛选,比方说它原来给你提供了大概八九个不同的速度的级别但是如果你需要一个比较快的档次的话,你可以自己对这些工具进行定制化的改动其他的话,就是比较外围的很多都是跟参数调优相关的。

基于H264视频软件编码器の研究和实現基于,视频,研究,研究与实现,视频编码,与实现,基于视频,H264,软件编码器,视频编码器

我要回帖

更多关于 软件包含哪几个部分 的文章

 

随机推荐