内容自适应编码(CAE)产生的是动态码率(VBR)视频流,根据内容复杂性为视频分配所需的码率从而让“编码质量”与“码率/带宽/存储空间”达到最佳平衡,为用户提供最佳的体验质量。

文 / Pratima Ashok Dhuldhule & Darshan Datt K. S.

翻译 / john

审校 / 蒋默邱泽

原文 https://www.ittiam.com/blog-vbr-cae-high-qoe/

你是否担心与CBR(恒定码率)视频流相比,CAE(内容自适应编码)处理的视频所产生的VBR(动态码率)视频流可能会对用户观看视频的主观体验质量产生负面影响?实际上这种担心是多余的。通过使用恰当的表现形式或清单文件可以基于内容自适应编码为用户提供最佳的体验质量从而使得观众不断的获取更多内容。

1. ABR, CAE和VBR

自适应编码(ABR)流已经在流媒体行业中无处不在,这与ABR技术所具备的低缓冲、灵活快速启动以及低延迟的互联网连接优质QoE服务体验密不可分。

尽管ABR技术着实为行业带来了一些挑战,但用户和开发人员可以借助内容自适应编码(CAE)技术的力量克服这些挑战。内容自适应编码的原理是根据内容复杂性为视频分配所需的码率从而让“编码质量”与“码率/带宽/存储空间”达到最佳平衡。

与生成恒定码率(CBR)视频流的传统DVB兼容广播编码器不同,内容自适应编码解决方案产生的是动态码率(VBR)视频流。目前,我们所面对的关键问题之一是动态码率(VBR)视频流与恒定码率(CBR)视频流在对用户体验质量(QoE)的影响上存在哪些异同?

2. 视频播放的用户体验质量之辩

ABR 播放时若想实现出色的用户体验质量不仅取决于最佳编码质量,还取决于播放期间ABR流之间的切换次数较少。

业界有一种观点认为:CAE产生的VBR流造成的视频码率变化,会导致用户更多重新开关加载内容,视频播放QOE质量会因此而显著降低用户耐心。

借这篇文章,我们将向您展示VBR流是如何借助恰当的表现形式或对比列表,实现与传统CBR流相似甚至更好的呈现平滑切换,从而打消您在这方面的顾虑。

3. Ittiam针对主流播放器的实验

我们通过比较主流播放器(例如VideoJS和DashJS)播放流时所做的呈现切换的数量来比较以下设计选择:

  • VBR编码 对比 CBR编码

  • 参考目标码率的VBR流 对比 参照峰值波动码率的VBR流

3.1常见设置细节

  • 块长度:10秒。

  • ABR示例:如表1所示。

表1:用于验证的ABR 码率示例

  • 用于码率限制的工具:Chrome的“inspect element”或Safari的Charles Debugging Proxy

  • 用于编码视频流的编码器:x264

  • 编码模式:CBR和VBR(除编码器外还有,THINKode - Ittiam基于ML的用于生成VBR流的CAE解决方案)

  • 封装格式:HLS和DASH

图1表示精确到分片级别的CBR和VBR流码率变化情况。

图1:VBR和CBR流的码率

3.2 实验过程

实验1:基于峰值码率的VBR流

情形一:

DashJS播放器的测试结果

注意: DashJS播放器的ABR策略被设置为默认动态策略。(为了利用Bola与吞吐量策略的优势,默认动态策略会在两者之间进行切换,关于这些策略的更多信息请访问:https://github.com/Dash-Industry-Forum/dash.js/wiki/ABR-Logic。)

  • 针对VBR流观察到的呈现切换次数:1

  • CBR流的呈现切换次数:1

图2表示DashJS播放器的实际呈现。

图2:DashJS Player上的VBR与CBR流

DashJS使用1000kbps作为初始带宽,同时下载ABR4作为VBR和CBR流的第一个切片。在整个播放期间,两个流的切换次数保持不变。

情形二:

VideoJS播放器的测试结果


  • VBR的呈现切换数量:2

  • CBR的呈现切换数量:2

图3表示VideoJS播放器的实际呈现。

图3:对比VideoJS Player上的VBR与CBR流。

向VideoJS播放器指定的第一个码率与分辨率始终与假定的初始4Mbps带宽相关。因此,播放器以ABR2开始并在VBR和CBR流中切换到ABR4。虽然显现(representation)切换的次数依旧,但你要注意的是在CBR的情况下,播放器却在ABR3设置完毕之前继续播放ABR4流并持续了更长的时间。

但在VBR的情况下,播放器很快就切换到了ABR3。

情形三:

使用Safari浏览器进行测试

  • VBR的测试呈现切换数量:0

  • CBR的测试呈现切换数量:1

图4:Safari播放器上的VBR与CBR流

Safari播放器始终会从清单文件中的ABR列表里选择第一个呈现流进行初始段下载。我们将ABR2流保留为HLS清单文件中的第一呈现流播放。

当两个流都以ABR2开始播放时,对于CBR流播放器初会快速切换到ABR3,因为播放器发现这是基于可用带宽和缓冲水平下只能稳妥丢弃显示;对于VBR流,播放器则会继续使用ABR2,因为前几个段的比特率较低导致最佳缓冲级——这正是播放器为缓解严重的缓冲而不断重试下载切片块。

实验2:参照峰值码率的VBR流与参照平均码率的VBR流

  • 基于峰值码率的VBR流的呈现切换次数:1

  • 基于平均码率的VBR流的呈现切换次数:1

图5表示DashJS播放器的实际流呈现。

图5:使用DashJS时Manifest中的峰值码率与平均码率

DashJS播放器考虑根据吞吐量和缓冲级别来选择合适码率显示。

若以上两种情况下的平滑呈现切换次数保持不变。播放器如果选择现成的码率表现VBR流的平均码率自然选择更高质量的显示流。

情形一:

使用VideoJS播放器进行测试

  • 基于峰值码率的呈现切换次数:2

  • 基于平均码率的呈现切换次数:2

图6表示VideoJS播放器的实际呈现。

图6:使用VideoJS时Manifest中的峰值码率与平均比特率

对于使用平均码率呈现的流,存在更频繁切换。

对于使用峰值码率呈现的视频流,视频分片的码率永远不会超过峰值码率。因此,播放器可以使用较少的平滑切换顺畅地播放ABR视频流。

情形二:

使用Safari播放器进行测试

  • 基于峰值码率的呈现切换次数:0

  • 基于平均码率的呈现切换次数:4

图7表示Safari播放器的实际呈现。

图7:使用Safari时Manifest中的峰值码率与平均比特率

Safari播放器的行为类似于VideoJS播放器。对于使用平均码率呈现的流,其平滑切换数量(次数)远高于使用峰值比特率呈现的流。

如前面所述,对于使用峰值比特率呈现的流,视频分片的码率永远不会超过峰值比特率。因此,播放器可以使用较少的平滑切换顺畅地播放ABR视频流。

4. 结论

我们的实验清楚地表明,对于目前流行的ABR播放器,使用峰值码率的VBR流与传统CBR流相比可提供相同甚至更加出色的用户体验质量。

点击【阅读原文】或扫描图中二维码了解更多LiveVideoStackCon 2019 上海 音视频技术大会 日程信息。

CAE+VBR如何提升用户体验?相关推荐

  1. 描点链接元素的优化提升用户体验

    用一些大网站的时候,发现有一个很细节的共同点:点击链接元素的时候,链接元素会产生一个明显的边框,而且这个边框的颜色和#f27b04很接近,我觉得既然很多大网站都这么做,这其中肯定有一些用户体验方面的东 ...

  2. 网络营销外包——网络营销外包专员浅析提升用户体验从哪入手?

    众所周知,在网站运营期间,网站跳出率的高低直接反映出用户对网站喜爱与否,也是检测网站性能是否丝滑的关键点,如果网站跳出率越高就证明用户体验越差,搜索引擎也不会更加注重抓取该网站.那么如果提高用户体验, ...

  3. 纯前端表格控件SpreadJS V12.1 隆重登场,专注易用性,提升用户体验

    ​ 一款优秀的开发工具,在更新迭代中,除了要满足不同场景的业务需求,也需不断优化已有功能,尤其是细节方面,要能为用户带来使用体验和开发效率的提升. 作为一款备受业界专家和开发者认可的纯前端类Excel ...

  4. paip.提升用户体验--提升java的热部署热更新能力

    paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力  "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应 ...

  5. 使用渐进式JPEG来提升用户体验

    今天才认识到原来JPEG文件有两种保存方式他们分别是Baseline JPEG(标准型)和Progressive JPEG(渐进式).两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别 ...

  6. android 6.0适应的机型,提升用户体验 可升Android 6.0机型盘点

    原标题:提升用户体验 可升Android 6.0机型盘点 [手机中国 导购]2009年Android系统正式发布,由此加速手机走向智能化进度.如今,随着Android系统日渐成熟,众多手机厂商都在此基 ...

  7. electron加载html加载不起来,Electron 预加载远程页面提升用户体验

    使用场景 Electron 内置 Chromium 和 Node.js,为了提升用户体验,通常 Electron 封装的前端静态文件存储在客户端本地.但总有一些特殊情况,会使用到部分远程页面. 比如微 ...

  8. APP开发中这十个细节能直接影响到用户体验,那么如何提升用户体验?

    随着软件开发技术的不断发展和完善,有众多同类选择的APP用户越来越挑剔,单单拼功能拼硬件已经不足以捕获用户芳心.在APP使用过程中,大部分用户无意识地培养出了对使用体验的重视感.这警醒企业,只盯着为用 ...

  9. 三星电子中国研究院院长张代君:Bixby绝非炫技而是为提升用户体验而生

    近日,三星正式对外发布旗下人工智能平台Bixby中文(普通话)版.与其他语音助手截然不同,Bixby包含语音.视觉.主页.提醒四大功能,可为用户提供多模交互体验.此外,Bixby还可以不断学习用户的使 ...

最新文章

  1. 修改exe图标,加入版本号
  2. 庆祝一下,基于JXTA的P2P文件共享传输文件测试成功。
  3. 1.18 Java匿名类,匿名内部类
  4. 数据库的定义、模型 和 模式
  5. QT的QBitArray 类的使用
  6. 基于Zabbix IPMI监控服务器硬件状况
  7. 【轉】JAVA中isEmpty和null以及的区别
  8. 多伦多大学好吗_多伦多大学好毕业吗
  9. Linux系统中的用户管理(一)
  10. 性能分析工具Linux perf使用经验
  11. 编译原理第四章课后题答案
  12. 【金万维】天联高级版的管理员帐号和密码忘记
  13. Vue2.5.1+Spring支持分销、团购、秒杀、优惠券、微信商城项目,源码免费分享
  14. 怎么进入联想电脑bios系统
  15. Markdown快捷键
  16. qq账号绑定服务器地址,网站接入 QQ 登录整合社交账号登录 - 文章教程
  17. R-residuals plots
  18. Freemaker判断是否为空
  19. 2022-12-12 系统移植
  20. iOS的就业前景与广州iOS培训机构

热门文章

  1. egg(87)--egg之redis的安装使用
  2. Java10来了,来看看它一同发布的全新JIT编译器
  3. 日本社交餐厅评论服务平台Retty获1050万美元D轮融资
  4. 让人期待的Visual Studio 2010
  5. java 动态编译源代码
  6. 感觉很好的IT自学参考教程收集
  7. 牛客 - 张老师的旅行(dp)
  8. CodeForces - 1118F1 Tree Cutting (Easy Version)(树形dp)
  9. EOJ_1017_座位分配
  10. NOIP2017提高组比赛总结