H264编码标准
H.264编码标准,也被称作MPEG-4 AVC(Advanced Video Coding),是一种被广泛使用的数字视频压缩标准。它由国际电信联盟(ITU-T)和国际标准化组织(ISO)共同开发,旨在提供比以往标准更高的视频压缩效率,同时保持或提高视频质量。
主要特点:
- 高压缩率:H.264能够在保持高质量的同时提供高压缩比,这使得它非常适合网络传输和存储。
- 多种分辨率和帧率支持:H.264支持从低分辨率到高分辨率的多种格式,以及不同的帧率,使其应用范围非常广泛。
- 帧内和帧间预测:H.264使用帧内预测和帧间预测技术来减少图像的冗余信息,提高压缩效率。
- 变换编码:采用整数变换编码技术,将图像数据从空间域转换到频域。
- 量化:H.264的量化算法更加精细,支持可变量化参数,适应不同的应用场景和传输条件。
- 环路滤波:采用先进的环路滤波技术,对解码后的图像进行后处理,减少压缩带来的图像失真。
应用场景:
H.264因其出色的压缩性能和图像质量,被广泛应用于视频监控、视频会议、流媒体服务、数字电视广播等领域。
SVC分层编码技术
介绍
SVC(Scalable Video Coding,可分级视频编码)是一种视频压缩技术,它允许视频流被分割成多个层级,每个层级可以独立解码,并且可以组合以提供不同级别的视频质量。SVC是H.264视频编码标准的一部分,它在2007年10月成为正式标准。
以下是SVC分层编码技术的一些关键点:
-
分层结构:SVC的码流包含一个或多个可以单独解码的子码流,这些子码流可以具有不同的码率、帧率和空间分辨率。这种分层方法使得编码码流能够适应不同的带宽和解码需求。
-
应用领域:SVC技术广泛应用于监控、视频会议、流媒体IPTV等,能够在不同的网络环境下提供适应性,如在网络丢包环境下,通过丢弃部分时域层级实现网络适应性。
-
技术优势:SVC技术的优势在于其灵活性,可以实现一次编码产生多个不同质量的视频流,减少了服务器的编解码负担,提高了网络适应性。
-
技术扩展:SVC在H.264基础上增加了层间预测工具集,如层间帧内预测、层间宏块模式和运动参数预测、层间残差预测等,以提高编码效率。
-
缺点:SVC的解码复杂度比单层编码高,且在相同条件下,分级码流的压缩效率比单层码流低约10%,随着分级层数的增加,效率下降越多。
-
兼容性问题:由于SVC较晚成为正式标准,其兼容性和通用性不如AVC,实际应用不如AVC广泛。
-
语法扩展:SVC对H.264的NAL(Network Adaptive Layer)头进行了扩展,以描述码流的分级信息,使用保留的NAL类型14、20编码增强层码流。
-
实现方式:目前主流的分级编码实现方式是基于CPU运算的,而基于ASIC和GPU的AVC、HEVC还没有将SVC纳入其中。
参考代码
-
jsvm:https://vcgit.hhi.fraunhofer.de/jvet/jsvm
-
openh264:https://github.com/cisco/openh264
SVC原理
SVC(scalable video coding)的可分级视频编码概念,简而言之,就是把视频序列分成不同的部分并赋予不同的等级,这样的思想已经渊源流传,并非 H.264/SVC 所独创。2007 年由 ITU 推出的 H.264/SVC 标准,继承了 H.264 的高效压缩性,随着网络应用的普及,SVC 的灵活码流适应性和对不同终端产品的匹配性,显得尤为重要。
SVC 对分级的策略是从时间,空间和质量上,对视频序列进行分级编码,示意图如下。
包含三个空间/SNR层的SVC编码结构如下:
-
时域分层
-
空域分层
-
质量域分层
质量可伸缩性指的是视频序列在相同的空间分辨率和帧率的情况下,提供不同的显示质量。质量可伸缩性编码可以认为是一种特殊形式空间可伸缩性编码,它的基本层和增强层具有同样的大小,只是视觉质量不同而已。SVC中定义了两种SNR分级方式:粗粒度质量可伸缩性(Coarse Grain Scalability, CGS)和细粒度质量可伸缩性(Medium Grain Scalability, MGS)。前者编码变换系数是用不可伸缩方式,后者编码的变换系数可在任意点截取。