初探vp9中的svc

作者: yyming | 来源:发表于2021-08-31 20:12 被阅读0次

    原文文档: 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之类的码控方式

    相关文章

      网友评论

        本文标题:初探vp9中的svc

        本文链接:https://www.haomeiwen.com/subject/xxxtwltx.html