H.264中的SP帧的实现

来源:互联网 发布:网页优化怎么做 编辑:程序博客网 时间:2024/06/07 15:18

从前作H264解码器时,对SP和SI帧都自动忽略,当作一般的P帧与I帧。可是最近看了一下相关的论文,觉得很有意思。也重新认识了这种新的帧类型。

SP帧要解决的问题之一就是两个码流的切换。这两个码流可以是相同内容的不同质量的,也可以是不同内容的。这种切换有两个基本要求:

第一、码率要平稳;

第二、码率要小。

SP就是针对这个要求来实现的。IDR帧是天然的切换点。可是,IDR帧的引入不仅会造成码率的波动,一般也会同时加大码率。所以引入SP帧来完成类似的任务。假设当前传输的节目编号为1,现在要转为播放编号为2的节目。如果切换点是IDR帧,那这种切换的正确性没有问题,但是码率会波动。现在我们设计SP帧来完成相同的功能。在切换点,原始的节目1或2对应的SP帧一般称为主SP帧,记作SP1和SP2。现在我们只需传输一个辅助SP帧(记作SP1-2,意为从内容1转入内容2的SP帧),然后节目2就可以用SP1-2来作为参考帧,继续传输了。

SP帧作为切换点,必须保证其重建帧(SP1-2)与切换目标的对应帧(SP2)完全一样。SP帧的编、解码的设计也正是针对这一点进行的。换句话说,SP帧的设计目标就是针对不同SP帧的解码,必须保证其解码结果一致,即使第个SP帧的参考帧是不同的。

P帧的重建结果是由预测结果加残差的和决定的(暂不考虑环路滤波)。由于两个SP帧的参考帧不同,其预测结果也会大相径庭。而残差因为是经过反DCT变换和非线性的反量化而得的,其结果不易控制。所以SP帧的实现采用了不同的解码流程。其重点就是将预测结果变换、量化为频域值。这样与残差的相加是在频域完成的。这样,在保证了预测的有效性的前提下,较易获得频域的相同重建图像。而相同的频域图像变换扣的空域图像也就相同了。具体实现可参考论文【1】。

由此可见,SP帧的编码过程与解码过程与P帧完全不同。要实现SP帧,必须对编码器与解码器作相应的改变。


参考文献:

【1】The SP- and SI-Frames Design for H.264/AVC,by Marta Karczewicz, Ragip Kurceren, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 13, NO. 7, JULY 2003


0 0
原创粉丝点击