VP8

通过收购On2科技公司,Google成为VP8视频压缩格式的所有者。2011年11月,国际工程任务组(IETF)将VP8数据格式和解码指南发布为RFC 63866。谷歌还根据BSD许可证发布了VP8编解码器库软件libvpx。Opera,FireFox和Chrome浏览器以及各种基于硬件和软件的视频编解码器(包括Intel集成处理器图形硬件)目前支持VP8。

像许多现代视频压缩方案一样,VP8的基础是将帧分解为像素的方形子块,使用先前构造的块对此类子块进行预测,并使用离散余弦变换(DCT)调整这种预测,或者在一种特殊情况下,Walsh-Hadamard变换(WHT)。该系统旨在通过指定前一帧的视觉相似部分的位置来利用视频信号的时间相干性来降低数据速率,并利用DCT和WHT提供的频率隔离以及信号的容忍度来降低空间相干性。为了减轻保真度编解码器的损失,人类视觉系统使用三种不同的参考帧进行帧间预测:前序帧,黄金帧和altref帧,以提供时间可伸缩性。

VP8编解码器将数据分区应用于编码数据。每个编码的VP8帧分为两个或多个分区,包括未压缩部分,后跟压缩头信息和每个宏块信息,这些信息指定如何预测每个宏块。第一分区包含所有宏块的预测模式参数和运动矢量。其余分区均包含残差的量化DCT或WHT系数。每帧可以有一个,两个,四个或八个DCT/WHT分区,具体取决于编码器设置。可以在RFC 6386中找到该算法的详细信息。

谷歌提出了适用于传输使用VP8视频编解码器编码的视频流的RTP有效负载规范。RTP有效载荷格式可用于低比特率对等和高比特率视频会议应用程序中。RTP有效负载格式考虑了帧分区边界,以提高针对丢包的鲁棒性并促进错误隐藏。它还使用高级参考帧结构来实现有效的错误恢复和时间可伸缩性。此外,标记非参考帧是为了使服务器或支持媒体的网络能够根据需要丢弃适当的数据。

用于浏览器应用程序编程接口(API)的IETF国际草案标准,称为Web实时通信(WebRTC),指定如果支持VP8,则使用双线性过滤器和无重建过滤器,帧速率至少为10帧每秒,并且必须支持从320×240到1280×720的分辨率。谷歌Chrome、Mozilla,FireFox和Opera浏览器支持WebRTC API,旨在用于基于浏览器的应用程序,包括视频聊天。谷歌Chrome操作系统也支持WebRTC。

Last updated