搜索
 找回密码
 立即注册

【音视频扫盲】可分级视频编码

音视频开发进阶 2022-6-24 21:38:30 252

为什么要进行视频编码?

众所周知视频是一组连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。在视频采集的时候一般是以每秒25帧或30帧的频率进行采集,在视频信号数字化后数据量会变得非常大,现有的网络和存储设备无法直接存储原始的视频图像。而由于连续的帧之间相似性极高,为便于储存和传输,可对视频和图像进行编码压缩,以便去除空间、时间维度的冗余。现有的主流压缩视频算法有 H.264/AVC,H.265/HEVC,VP8,VP9,VVC 等。

可分级视频编码是什么?

SVC(Scalable Video Coding,中文叫“可伸缩视频编码”或“可分级视频编码”)是传统视频编码的延伸,它具有可伸缩和可分层的特点,可以在帧率、分辨率、质量上进行划分,一次编码可以输出多层码流,分为基本层和增强层,适用不同的终端和网络状况。基本层占用比较少的带宽资源,保证基本的视频质量。基本层加上增强层后就可以得到更好的帧率、分辨率或质量。让我们来具体看看 SVC 编码的特性吧:

可伸缩性

SVC 编码的可伸缩性分为 时域可伸缩性、空域可伸缩性、质量可伸缩性 等。时域可伸缩性是指将视频流分解成表示不同帧率的信息,空域可伸缩性是指将视频流分解成表示不同分辨率的信息,质量可伸缩性是指将像素值分解成不同级别。

  • 时域可伸缩性

把视频序列不重叠地分割成多层,对基本层的帧进行普通的视频编码,提供具有基本分辨率的基本层码流。对增强层则是利用基本层数据对增强层的帧间预测编码,生成增强层数据。加入增强层后可以得到更高的帧率,视频更流畅。

空域可伸缩性

对视频中的每帧图像产生多个不同空间分辨率的图像,基本层码流编码的是低分辨率图像,在此基础上加入增强层码流可以得到高分辨率图像。

质量可伸缩性

在压缩编码的时候将多重品质(qualities)的结果都存下来。让解码端可以按需解码回所需的图片品质。基本层码流将较低品质的图片编码,换取解码的效率,加入增强层后可得到高质量图片。

SVC与H.264/AVC的比较

就拿最普通的H.264编码作为例子,SVC 和 AVC 的根本区别在于,SVC在一个流中自适应码率,而不像AVC需要多准备各个分辨率的多条流。具体性能的区别参照:

SVC 的优势

  • 一次编码,多次解码。

无需重复编码或者转码,根据网络情况,设备能力,解码器可以选择解码不同层级的码流。 比如,在一个会议中有三个人,客户端A的带宽较好,服务端会发送多层码流,包括基础层和一个增强层。B的带宽很低,只请求基础层,能看见流畅的视频。C的带宽很好,可以请求基础层和两个增强层,可以得到很好的视频质量。

  • 抗丢包,容错性高。

使用 SVC,优化了网络传输,提高了视频对网络丢包的容忍性,只需要基本层码流就可以解码,增强层码流错误/丢失不影响视频流畅性。可以对基本层码流和增强层码流采用不同强度的抗丢包/抗差错手段。算上前向纠错的开销,SVC整体码流可以更低。

  • 兼容性好,基本层码流兼容h.264非SVC的解码器。
  • 更经济

无需传统视频会议的专线要求,在互联网及移动互联网环境下完全满足商用级视频应用要求,网络带宽费用与硬件设备费用实现大幅降低,能够让更多的人在工作和生活中享受到专业视频应用带来的改变。

原文地址:https://juejin.cn/post/7077507576597856286

使用道具 举报

随机推荐

0 回复

游客
返回顶部