乐趣区

关于视频编码:干掉大小流切换-I-帧阿里云-RTC-QoS-及视频编码联合优化之切流编码

如果要在两条分辨率不同的视频流之间切换,目前所有的视频编码标准都必须要编码 I 帧,即只能利用帧内预测,只管这两条流的画面内容根本一样,然而因为两条流的参考帧不同,分辨率不同,目前所有的视频编码标准都无奈做到利用帧间信息冗余进行编码,而帧内编码即 I 帧的压缩效率是十分低下的,因而在切流处很容易造成视频品质降落或因为码率突增引起的卡顿;阿里云 RTC codec 在前代规范的根底之上通过独创的切流编码技术和网络层 QoS 体系的紧密配合能够做到在此种场景下依然利用帧间信息冗余编码 P 帧,相比于 I 帧显著晋升压缩效率,晋升视觉体验。

作者|安基程、田伟峰
审校|泰一

1. 背景介绍

一条视频流,如果中途扭转分辨率,对于目前支流的 H.264/AVC, H.265/HEVC 规范来说,必须要编码 I 帧,即只能利用帧内信息冗余,如图 1(左)所示;新一代的编码标准如 AV1,H.266/VVC 等能够做到利用帧间信息冗余,不编 I 帧,以晋升压缩效率,基本原理是通过对参考帧进行缩放,使得参考帧和以后帧的分辨率统一,如图 1(右)所示,阿里云 RTC codec 的变分辨率编码(Resolution Change Coding,以下简称 RCC)技术也具备该能力,详情请参考咱们之前的分享:《阿里云 RTC QoS 弱网反抗之变分辨率编码》。

本文将要介绍的切流编码(Stream Switch Coding,以下简称 SSC)技术是对 RCC 技术的降级。


图 1. 变分辨率示意图(左:传统插入 I 帧形式;右:参考帧缩放技术)

H.264/AVC 规范的 SP slice 技术能够用于切换两条分辨率一样的视频流,然而对于切换两条分辨率不同的视频流则无能为力。

2. 切流场景简介


图 2. 多流场景示意图

图 2 展现了多流场景,一个 publisher 上有两个 encoder: Enc0, Enc1, 别离发送大分辨率的流和小分辨率的流(以下简称大流和小流),两路流的画面内容是一样的,只是分辨率,码率不同,所以清晰度不同,subscriber 能够依据本人网络情况等抉择订阅不同的流,比方网络好的时候就收大流,网络差的时候收小流,图 2 中共有 6 个 subscriber 也即 6 个 decoder,其中 Dec0, Dec1, Dec2 接管的是大流,Dec3, Dec4, Dec5 接管的是小流。

图 3. 惯例切流示意图

图 3 展现了产生切流时的变动,其中 Dec3 刚开始收的是小流,前面因为某种原因(如网络变好)切换到了大流,则 Enc0 必须要发送一个 I 帧来实现切流,此 I 帧会影响到所有接管大流的 subscriber(如图中的 Dec0, Dec1, Dec2,理论状况中可能会有更多的订阅者),造成切流霎时的编码品质降落或码率突增。图中绿色箭头代表了 Dec3 接管的帧。然而如果间接将 Enc0 的 P 帧送给 Dec3, 必定也是不行的,因为两条流的参考帧不一样,分辨率也不一样,必然造成解码谬误,正是因为这些艰难,目前所有的视频编码标准都未能解决这个痛点。然而阿里云 RTC Codec 通过独创的 SSC 技术能够做到在两条分辨率不同的流之间进行切换时也可能利用帧间信息冗余不编 I 帧,晋升压缩效率。


图 4. 本文 SSC 技术切流示意图

图 4 展现了利用 SSC 技术进行切流,同样是 Dec3 从小流切换到大流,在切流时 Enc0 编码了一个 PDS 帧,Enc1 编码了一个 PSS 帧,图中的绿色箭头示意了 Dec3 接管的帧,其通过接管一个 PSS 帧实现了切流。PDS 帧本文称之为指标流切换帧(P frame for Destination-stream Switch),PSS 帧本文称之为源流切换帧(P frame for Source-stream Switch),Dec0, 1, 2 和之前相比,接管的 I 帧变成了 PDS 帧,Dec3 接管的 I 帧变成了 PSS 帧,PDS 帧和 PSS 帧都利用了帧间信息冗余进行编码,因而压缩效率绝对于 I 帧有显著晋升。

3. 测试后果

PDS 帧压缩性能测试

本文通过测试一个视频会议序列 FourPeople 来比拟 I 帧,P 帧,和 PDS 帧的压缩性能。将该序列别离压缩为全 I 帧,全 P 帧(除了第一帧为 I 帧),和全 PDS 帧(除了第一帧为 I 帧)。图 5 展现了压缩后果,横坐标为码率,纵坐标为 PSNR,准确计算 BD-rate 显示,等同品质下,P 帧能够比 I 帧节俭 93% 码率,PDS 帧在具备 I 帧的切流能力的同时能够比 I 帧节俭 66% 码率。

图 5. PDS 帧压缩性能展现

本测试间接阐明如果将一个序列每帧都编码为 I 帧,则其每帧都具备切流能力,然而损失了压缩性能,如果都编码为 P 帧,尽管能够比 I 帧节俭 93% 码率,然而齐全不具备切流能力,如果都编码为 PDS 帧,则能够在保留 I 帧切流能力的同时,比 I 帧节俭 66% 码率。

理论场景中个别不会每帧都呈现切流的状况,本测试表明在切流处,指标流利用 PDS 帧能够比 I 帧节俭 66% 码率。

PSS 帧压缩性能测试

因为 PSS 帧波及到分辨率的切换,用传统(如 H.264, H.265 规范)的 P 帧已无奈编码,所以本文只比拟了 I 帧和 PSS 帧的压缩性能。本文应用了一个大小分辨率帧交织的视频会议序列来测试,即偶数帧为大分辨率,奇数帧为小分辨率,别离编码全 I 帧,和全 PSS 帧(除了第一帧为 I 帧)。等同品质下,PSS 帧比 I 帧能够节俭 29% 码率。

图 6. 惯例间断切流示例


图 7. 本文 SSC 技术间断切流示例

本测试间接表明的是一个一直切流的场景,如图 6 所示,Dec3 一直的在大小流之间切换,图 6 展现的是用原有编码 I 帧的切流形式,则 Dec3 收到的全是 I 帧,图 7 展现的是用本文的 SSC 技术的切流形式,Dec3 收到的则全是 PSS 帧,本测试阐明在这种状况下 PSS 帧能够比 I 帧节俭 29% 码率,率失真曲线如图 8 所示。

图 8. PSS 帧压缩性能展现

理论场景中个别不会呈现始终切流的状况,本测试表明在切流处,源流利用 PSS 帧能够比 I 帧节俭 29% 码率。

综上,利用本文展现的阿里云 RTC 独创的 SSC 技术,在切流处,指标流能够比 I 帧节俭 66% 码率,源流能够比 I 帧节俭 29% 码率。

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实际技术文章,在这里与音视频畛域一流工程师交换切磋。公众号后盾回复【技术】可退出阿里云视频云技术交换群,和作者一起探讨音视频技术,获取更多行业最新信息。

退出移动版