部分翻译:http://x264dev.multimedia.cx/?p=377
译者:delectate
问题一:vp8到底怎么样?
难道他真的比x264拥有更高的压缩比率,是个优秀的编码器吗?他真的比h264优秀吗?似乎On2自己都羞于承认…拿vp7举例,On2宣称vp7比h264快15%,但事实是编码视频速度既不快,视频质量也不高。On2曾经把vp3开源,似乎想借助社区的力量debug,最终theora上当……他们花了6年时间,结果做出来的还是个鸡肋……
问题二:vp8真的没有专利问题吗?
这个东西,还是google说了算……微软几年前发布VC-1,然后说没有专利问题……但是几个月后,就有众多公司认领了专利并成立了专利池(指几家公司把各自的专利放在一起,组成一个”池”。其他人如果要使用VC-1,就须向”池”的管理公司申请许可,一旦获得了许可,就可以使用”池”中的所有专利。)
问题三:vp8的代码情况如何
首先你要知道:一个很好的编码器,可能是基于一个很烂的标准(divx?xvid?lol);而一个很好的标准,也可能会出现n多很烂的编码程序(h264 vs coreavc?不知道耶)。
vp8的文档真的很烂,很多细节要不就是没有文字说明,要不就是拿一大堆c代码来填补空白。真的好痛苦……
我一直认为H.264的规格写得太啰嗦,但和vp8相比,至少他是精确而详细的,至少不会杀伤我这么多脑细胞。如果只靠vp8的这份文档,我想我死也写不出来vp8的解码器……(莫非他们就是一行一行读h264的文档然后写的ffh264解码器?牛!)
不吐槽了,把视线收回来,看vp8。一般处理视频的步骤都是:
编码:预测 -> 变换+量化处理 -> 熵编码 -> 环路过滤器
解码:熵编码 -> 预测 -> 反量化处理+变幻 -> 环路过滤器
p帧
就是通过当前帧已有的部分预测其他区块的内容。可以是在当前帧进行,也可以通过运动补偿的方式在帧间进行。
帧内预测
帧内预测是用来编码帧间不同,在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。
vp8的帧内预测基本上都是照抄h264的。”subblock”几乎和h264一样(他们竟然用了同样的名字),还有h264的4×4模式……whole block预测也基本上一样使用16×16模式。色度预测模式也几乎没有区别,所以不可能拥有比h264更出色的效果了。但是值得一提的是,他们用TM_PRED替代了planar预测模式。在预测方式上看起来有些不同,但是实际上h264都提供了相似的实现方法。
所以我对vp8有点失望。虽然说h264的预测功能的确不错,但是这也是7年的老物了……需要改进