特别声明,本文描述的是作者的一个想法,所以还没有验证实验,所以对本文内容的准确性不负任何责任。:)
最近在研究视频聊天中,比较关注视频编码的三个主要指标:编码复杂度,编码效率,码流的抗丢包性,参见《互联网点对点视频聊天中视频编解码的优化调研》.
突然有了个想法,可以在这三者中得到均衡。主要思路描述如下:
编码端:
取原始图像缩小2倍,然后对低分辨率的图像按照H264的桢内和桢间预测编码,得到一路基础码流,
然后再把每一桢低分辨率的重构图像通过图像算法放大2倍,作为原始图像的预测,和原始图像比较得到残差。残差再变换,量化,作为补充码流发送。
网络传输:
在网络传输中,可以重点保证基础码流的传输,例如可以利用FEC,重传等机制保证基础码流的正确性。补充码流则尽力而为。
解码端:
在基础码流上解码出低分辨率的图像,然后利用相同的放大算法预测出原始数据的图像,这时候按照接受到的的补充码流把图像增强。
这样带来几个好处。
1,计算复杂度降低了,因为h264当中的运动估计和补偿占了很大的比重,这时候用低分辨率的图像来代替,总的复杂度应该会得到降低。
2。码流的大小可控制,总的编码效率可能会降低,但是可以通过提高补充码流的量化步长以质量换码流大小。
3. 补充码流之间没有依赖关系,所以图像质量会随着的误码的增加,等量的降级。而不会像H264超过某个误码率,就质量突然下降很严重。
PS: 标准的SVC编码,作者并不了解,所以作者会再去自己看下svc的原理再来修正本文档。 :) 请稍等。