为了实现临时的可扩展性,H.264 SVC链接其参考帧以及预测帧,这与传统的H.264 AVC编码器稍微不同。SVC采用分层预测结构,如图3所示,而不是传统的内帧(I帧)、双向帧(B帧)以及预测帧(P帧)的关系。
图3:传统的I、P和B帧的关系。
分层结构定义最终视频流的临时分层。图4描述了可能的分层结构。在这个特殊的例子中,各帧仅仅根据上次出现的各帧进行预测。这就确保该结构不仅仅展示临时的可扩展性,而且显示了低的延迟。
图4:在SVC中的分层预测帧。
这个方案具有四个嵌套的临时层:T0 (基础层)、T1、T2和T3。由T1和T2各层构成的帧仅仅由T0层中的各帧预测。在T3层中的各帧仅仅由T1或T2各层中的各帧来预测。
为了以3.75帧每秒的速度播放编码帧,仅仅构成T0的各帧需要被解码。所有的其它各帧可以被丢弃。为了以7.5fps的速度播放,要对构成T0以及T1的各层进行解码。在T2和T3中的各帧被丢弃。类似地,如果构成T0、T1和T2的各帧被解码,所得到的视频流将以15fps的速度播放。如果所有帧均被解码,那么,完全的30fps视频流被恢复。
相比之下,在H.264 SVC(对于Baseline Profile来说,仅仅双向预测帧被应用)中,不管需要的显示率是什么,所有帧均需被解码。为了转换至一个低带宽网络,整个视频流均需要被解码,不需要的帧可以被丢弃,然后,重新编码。
在H.264 SVC中的空间可扩展性遵循类似的原则。在这一情形下,较低分辨率的各帧被编码为基础帧。经解码和上行采样的基础帧被用于对较高阶各层进行预测。重构原始场景细节所需要的附加信息被编码为一个独立的增强层。在某些情形下,重用运动信息能够进一步增加编码效率。
同时联播与SVC
在H.264 SVC中存在于可扩展性相关的开销。正如我们在图3中所看到的那样,参考帧与预测帧之间的距离在时间(例如从T0至T1)上比传统的帧结构要长。在具有高运动图像的场景中,这能够导致效率稍低的压缩。为了对视频流各层级结构进行管理,也存在相关的开销。
整体而言,跟不具备可扩展性的全分辨率以及全帧速率视频构成的H.264视频流相比,具有三层临时可扩展性以及三层空间可扩展性的SVC视频可能要大20%以上。如果采用H.264 编解码器对可扩展性进行仿真,就需要多个编码视频流,从而导致更高的带宽要求或贯穿网络的昂贵解码和二次编码。
SVC的额外好处:
误码恢复
误码恢复的传统实现方法是把附加的信息添加至视频流之中,以便监测和校正误码。SVC的分层方法意味着不需要增加大的开销,就可以在较小的基本层上执行高级别的误码监测和校正。如果要把相同程度的误码监测和校正功能应用于AVC视频流中,那就需要把整个视频流保护起来,从而导致视频流更大。如果在SVC视频流中监测出误码,那么,就可以逐渐让分辨率和帧速率退化,直至—如果需要的话—只有高度受保护的基础层才可以使用。按照这一方式,在噪声条件下的退化要比在H.264 AVC环境下更让人可以接受。
存储管理