RealNetworks是流媒体类别的发明者,改变了音频和视频内容在各类设备和全世界消费的方式。在编解码市场的大环境下,RealNetworks推出了新一代的视频压缩算法RMHD,专为下一代的高清流媒体业务所设计。本文将从视频编解码优化以及与AI的实践结合两方面来为你们介绍RealNetworks在这部分所作的工做。css
你们好,我是RealNetworks的况超,本次演讲的主题是视频编解码优化以及与AI的实践结合,虽然我不是AI技术的专家,但在作视频编解码的后期也会用到一些AI的技术,因此也会与你们一块儿分享这部分的内容。
本次演讲主要由背景与需求、RMHD简介、RMHD优化以及与AI结合和总结展望四部分组成。
首先你们须要了解,视频压缩是一种很是重要的技术,随着时代的演进,产品不断更新,新的应用不断出现,在此期间用户的需求和要求也一定会愈来愈高,这些因素都会促使视频压缩技术的迭代,以求适应市场需求。
作上层应用或产品的公司在产品定义或开发过程当中,常常面临的一个问题是选择适合本身的编解码标准,视频服务商的共同目标是在现有的网络和编码工具基础上将视频质量提升到极致,让用户体验更好,用户群增加更快,但在视频质量提升的同时更须要考虑下降包括存储、编码时间、算力和带宽等因素在内的总成本。
因此编解码器是须要在综合考虑码率节省、编码速度、码率波动和版权税等诸多因素以后才能作出选择。
编解码工做的展开就是围绕在开发一个适合本身的视频压缩技术或使用既有编解码技术之间作选择,工做内容须要在其中找到一个最佳的平衡状态,也就是在画质、码率和性能之间作平衡。
在编解码市场的大环境下,RealNetworks推出了本身的视频压缩算法RMHD,即RealMedia HD。
RealMedia HD专为下一代的高清流媒体业务所设计,可以极大地维持视频质量和文件大小之间的平衡,即在现有的网络环境中,也能够帮助运营商和制造商普及高清内容的服务和相关产品。
RealNetworks是流媒体类别的发明者,改变了音频和视频内容在各类设备和全世界消费的方式。
目前以数字媒体专业知识和创新为基础创造了新一代产品,采用最新的人工智能和机器学习来加强和保护咱们的平常生活。
编解码技术是不断演进的,从早期的RV8到RV9,再到后来的RV10(RMVB)以及目前主推的RV11(RMHD),本次演讲的内容也主要围绕RMHD展开。
RealNetworks在以前的25年里都在不断地创新,部分产品因为是在海外市场使用,所以不被你们熟知。
在2017年推出了新一代的编解码技术RMHD,在4K实时流媒体编解码方面实现了史无前例的效果,尤为是在画质和码率控制。
RMHD实际上是一个高清低码、低复杂度的算法集合,设计之初主要是针对流媒体产品以及软硬件实现时比较友好的私有编解码解决方案,在达到更高压缩效率的同时可以在软硬件实现更快的编码速度,复杂度也相对较低。
因为低复杂性、短PBBP帧间依赖性和高压缩效率,RMHD编解码器对低延迟HLS流很是友好。
同时它对CDN也是友好的,只使用标准的 HTTP / 1.1 协议就能够轻松地与P2P 解决方案集成。
有关RMHD性能测试的结果能够从上图中了解,在采用1080P/4K测试序列,具备八个CPU的AWS C5计算实例上对RMHD进行测试。
采用VMAF做为视频质量感知的衡量指标,编码设置都是在以最慢的速度运行,而且执行二次编码。
收集测试结果后从利用编码速度、画质和带宽三个维度分别与主流的Codec进行比较。
在编码速度方面,RMHD的编码速度要比HEVC和VP9更快(都是在以最慢的速度运行,而且执行二次编码)。
编码1080P,在码率大于2M时VMAF的得分RealMedia HD仅低于AV1,但高于其余Codec
对于4K分辨率,在码率大于5M时VMAF的得分RealMedia HD要高于其余Codec
在画质相同的状况下,同为1080P分辨率时,RMHD的码率较AV1以外的其余Codec小;
同为4K分辨率时,RMHD的码率表现也优于其余Codec。
以上是RMHD技术的性能指标,在实际应用中也有着良好的使用体验,可以在对比中占优点的结果都来源于团队背后所作的大量工做。
视频压缩技术在实际应用中,主要围绕三个维度来展开工做,首先是视频压缩算法coding tools的设计,coding tool的设计和取舍要考虑到复杂度,既兼顾软件实现的便利又兼顾硬件设计的友好。
其次是复杂度的问题,优化调优编解码工具,在使用过程当中及时调整不一样状况下复杂度对质量的影响。
这部分主要是去除实现上的冗余,一套算法在真正实现的过程当中存在不少冗余,传统编码框架首先须要作预编码来决策最优编码方案,快速算法的优化对编码的质量和速度影响很大。
最后是视觉质量评估系统,从视觉冗余角度来去除冗余信息,将比特调优以后再分配,优化比特利用率。
RMHD的基本框图是基于传统编码框架,经过pre-encoding决策最优。
在上一代RMVB基础上,新增了不少coding tool,作了大量的改进和优化。
为了可以同时达到高的压缩率和更高的编解码速度(软件解决方案),coding tool的设计和取舍考虑到复杂度和应用场景。
在白色块部分主要是以前提到的第一维度视频压缩算法coding tools的设计。
而RDCO在团队内部被称为率失真-复杂度优化模块(滤失真复杂度优化模块),在使用过程当中及时调整不一样状况下复杂度对质量的影响。
RC主要负责将比特调优以后再分配,优化比特利用率。
当编码工具集肯定以后,在实际应用中有一些方式能够提高编解码器的速度。
首先对于代码的加速,这部分不会改变画质,它只是在算法层面进行加速,在不一样的赛道(平台)上运行,都会有相应的SIMD的优化(arm,x86),好比intrinsic/assembly (arm-v7/v8/neon, sse2/4,avx2),速度会有显著的提升。
其次针对架构来讲,RMHD采用良好的多线程设计,以CU line为运行单元,短PBBP帧间依赖性利于并发性, 同时拥有高效的内存管理和针对性的cache优化。
再者基于硬件加速,主要是利用GPU算力加速,GPU自己比较适合用于大规模、分支条件较少的的视频数据运算,好比运动估计,插值滤波。
但在用GPU进行加速时须要尽量减小数据搬移量,使用“页锁定内存”提升传输带宽,小数据合并一次传输,不然使用GPU的加速做用很小。
除此以外也能够基于IntelGPU使用QuickSync Video (Core i7)的部分功能达到加速编码的目的,利用device side VME反馈的有用信息来指导RV11的整个编码流程,达到提质增速的效果。
接下来是一个重要的部分,那就是快速算法,这部分是有损的,会影响画质,其核心就是在优化复杂度,针对coding tool自己的特性,开发出一整套快速算法集合,根据实际须要选择不一样的级别(档位),换挡的前提是要控制质量损失,质量损失在可接受范围内便可。
RMHD内部大概有10档快速算法的级别,用户能够根据须要自适应选择相应的档位。
最后一块就Lossy解码, 主要是动态侦测当前速度,使得在播放速度达标的同时能够保持视频质量。
当速度有不达标的风险时,能够用多种快速算法的组合实现不一样级别的有损解码,经过牺牲小部分视频质量换取播放速度的大幅上升。
GPU编码速度对比上如上图所示,在4K序列上,GPU加速能够在通常家用的IntelCore i7上达到接近每秒50帧的超实时转码速度,没有GPU加速时速度仅为每秒23帧。
对比两者在图像细节上的表现(以480p RaceHorse为例)来看,GPU加速后画质损失也相对较小。
对于Lossy解码性能从质量速度转换图来看,牺牲小部分质量就可以换得速度大幅提高,这能够改善在性能较差的设备上的播放体验。
RealNetworks针对市面上大多数的手机和多媒体盒子作了大量的测试(画质和流畅达标率)。
经过设备性能达标率的对比图能够看到,这种策略使得在同一个设备上可以顺利播放的视频更多了,更不容易出现视频卡顿现象。
经过上面画质对比图,也能够看到策略开启先后,视频的主观质量没有明显的差距,左边是在正常流畅解码状态下的视频画面,右边是在不流畅时开启lossy解码功能的视频画面。
刚刚提到RMHD编码也是基于传统编码框架,其中不少环节都要付出时间的代价,若是想要进一步提升压缩质量,就须要对编码模式有更多的划分和预测,整个遍历的代价会更大,优化的工做量也会更大。
除了传统的手段以外,还能够利用AI改善编解码功能,好比利用AI作码率控制模型、CAE编码以及加强编码。
码率控制具体包括比特分配策略、码率控制模型选择和量化参数调整三个部分,关于比特分配策略,首先须要肯定码率控制的目标,如VBR、CBR、CQ等,针对不一样的目标采起不一样的比特分配策略,VBR能够采起较大的时间缓冲区、CBR应该采起较小的时间缓冲区,以适应相应的目标。
码率控制模型目前经常使用的有R-Q模型和R-λ模型可供选择,这里列举了Live-streaming 和 VODRMHD两个RMHD主要的应用场景,对应不一样码率控制策略。
量化参数调整应该结合可用的参考信息,参数的选择和利用该参数对量化参数的调整一般是最为重要的一个部分。
经过机器学习训练优化以后,RC模型优化先后的差异由图中所示,对于标准测试序列“Fourpeople”来讲,优化幅度是0.4比特左右。
3.7 Adaptive Quantization
码控模型能够理解为一种基准的比特分配功能,但其实这样还不足以改善画质,提高比特分配的精准度,Adaptive Quantization就是对比特分配进行微调的工具,输入图像在进入编码流程以前,将会进行LCU级别的图像预分析。
图像在通过LSM (Local SensitivityMeasurement) 模块和dQPM (delta QP Mapping) 模块后,每一个LCU将会被动态赋予一个delta QP值,并最终影响每一个LCU的编码量化系数,从而获得更优的编码效率。
采用的局部感知测量方法,将主要考虑对比度屏蔽效应对于人眼主观视觉的影响,为追求更好的主观编码效率提高,后续可能会引入更多人眼屏蔽效应因子作结合。
经过训练,获得模型的最佳参数。
对不一样的场景,方便对模型参数调整。
基于内容的CAE编码包括人脸的检测/特殊处理和场景的检测/区别处理两个方面,人脸检测利用RN自身的CV技术,可以检测画面中关键的人脸部位并进行特殊的处理,包括QP调整和加强。
场景检测能够经过不一样场景的信息,利用不一样的训练模型获得最佳的编码配置,不一样的场景采用不一样的编码配置,进一步提升编码比特利用效率。
基于场景的动态编码模型训练过程分为四步,首先对每一个视频场景进行屡次fix-QP编码,每次编码采用不一样的分辨率和QP的组合,根据VMAF值,画出convex hull。
在convex hull上,根据目标码率,找到最佳VMAF对应的分辨率和QP组合,做为神经网络的dataset的y值。
以后统计每一个视频场景的feature信息,好比每一帧的satd的平均值,这些feature做为神经网络的dataset的x值。
最后采用4层神经网络训练准确率为0.96,而目前测试的准确率为0.9。
PlaybackNavigation 是CV与codec应用结合的播放导航功能,在编码端产生对应的CV meta data,在播放端基于对应的meta data开展应用,能够灵活选择感兴趣的片断、自动插播广告、删除某些人像等功能,SAFR技术是非codec依赖的。
上图是Playback Navigation Sever端和Client端的流程图,在Sever端数据进来以后会进行CV分析,一个产生编码数据,另外一个产生CV信息,在将来RealNetworks会作更多关于AI相关的实践。
在将来,RealNetworks会基于RMHD框架,利用AI的相关技术实施加强编码引擎(Enhancement Coding Plugin),对前处理,后处理,视频压缩等方面进行改善,助力RMHD的生态更加完善。
SAFR系统不断优化会便利和保障人们的平常生活。
做为实时视频人脸识别平台,须要提供高准确度同时识别运动中人脸,以及化妆和部分遮挡,天然环境和微光下人脸,作到这一点最小只须要60x60像素便可识别面部。
测试准确率99.86%, 可在100ms内快速识别实时视频中移动的人脸,比其它算法快3-5倍,在准确性和性能方面达到了最佳的效果,是一套轻量级的人脸识别系统,后续会基于CV技术继续对SAFR系统进行持续优化改进。
LiveVideoStack正在招募编辑/记者/运营,与全球顶尖多媒体技术专家和LiveVideoStack年轻的伙伴一块儿,推进多媒体技术生态发展。同时,也欢迎你利用业余时间、远程参与内容生产。了解岗位信息请在BOSS直聘上搜索“LiveVideoStack”,或经过微信“Tony_Bao_”与主编包研交流。微信
本文分享自微信公众号 - LiveVideoStack(livevideostack)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。网络