初探vp9中的svc

原文文档: webrtcH4cKs: Chrome's webrtc vp9 svc layer

很明显的分层特征

svc编码的层可以删除其中不被选中的层, 且不破坏其他流的可读性.

  • 单一流中可以被拆分出多种码流大小的流, 有利于sfu做带宽范围可选的码流分发.

  • 优点: 适应更多的下行网络场景, 大大减轻sfu的压力和复杂度, 对比simulcast分层技术, 不需要额外的上行冗余和cpu消耗.

  • 缺点: 对编码器增加多余的消耗

svc分类:

  1. Temporal 时域分层- 帧率拆分

  2. Spatial 空域分层- 分辨率拆分

  3. Quality 质量分层- 编码质量拆分

VP9 svc技术的特点:

  1. 空域分层技术可以不降分辨率从而降质量, 对于vp9来说, svc可以把空域分层和质量分层统一说明为空域分层

  2. 可以同时进行时域分层和空域分层编码(如果不能动态控制空域层的占比, 码率冗余会变得非常大) TODO: 理想的分层编码, 最大质量是可以利用所有层的, 不像simulcast技术, 分辨率拆分后不能相互叠加质量

image
  1. 参考方式
    image

待需要解决的问题:

  1. 决定合适数量的s(分辨率)数量和t(时域层数)数量, 或者提供api去进行配置

  2. 提供一个方式去开启或者关闭svc, 当一对一的时候, 就不需要开启svc了

  3. 去噪??

  4. cpu使用会很高, 可以添加接口获取cpu使用量, 然后按照cpu使用动态调节输出的编码质量. 或者降低分辨率

测试结果:

从结果看来, 码控并不很稳定....波动还是比较大的...

image

总结:

整体来说, 这篇文章介绍了vp9里面svc的相关实现和原理, 及测试结果, 从结果来看效果是非常好的, 直接就一路流做到了之前两路simulcast + svc才能做到的事情, 很棒, 很有借鉴价值.

缺少些什么:

  1. 文中的二维svc和simulcast的对比

  2. 二维svc对比一维svc增加了多少性能消耗

  3. 编码出来的图像质量对比啊之类的

  4. 是否可以替代传统的simulcast, 以及还差哪些

  5. 超级帧的大小比传统的关键帧大了多少啊之类的

  6. gop间隔可以设置到多少啊之类的

  7. 是否支持码率控制,以及控制的类型啊之类的, 比如 cbr, abr, crf之类的码控方式

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在保证视频图像质量的前提下,HEVC通过增加一定的计算复杂度,可以实现码流在H.264/AVC的基础上降低50%。...
    加刘景长阅读 8,011评论 0 6
  • 推流端 采集 处理 编码 推流 服务端 转码 录制 截图 鉴黄 播放端 拉流 解码 渲染 互动系统 聊天 礼物 点...
    敬畏的寂静_61阅读 421评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,601评论 28 53
  • 人工智能是什么?什么是人工智能?人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗...
    ZLLZ阅读 3,880评论 0 5
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,784评论 3 8