实时网络视频设计方案
扫描二维码
随时随地手机看文章
在某个层面上,On2 科技有限公司 (On2 Technologies) 的 TrueMotion VP7 技术实现这一目标的方式与其它视频编解码器几乎相同。不过,On2 的VP7技术却包含了多项使其与众不同、脱颖而出的创新性技术,而且这些技术目前正在申请专利。
黄金帧 (Golden Frame)
对 On2 TrueMotion 编解码器的新用户而言,最令人惊喜的功能之一是黄金帧。就象其它压缩器一样,TrueMotion 也保留一个最新解压的帧作为当前帧的预测器。TrueMotion 编解码器和 VP7 则特别改为保留过去任意一个解压数据的帧。这种编解码器能够更新某个帧在未来任一点的任何部分。我们称这种二级参考帧为黄金帧,并已发掘出它的众多用途。
数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题 。
图1:On2 VP7的帧类型
帧--就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。 一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。 我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。 关键帧--任何动画要表现运动或变化,至少前后要给出两个不同的关键状态,而中间状态的变化和衔接电脑可以自动完成,在Flash中,表示关键状态的帧叫做关键帧。
注:这些帧类型仅供参考。利用 VP7 入门开发工具包,用户可以准确控制帧何时使用或更新黄金帧或最后的帧参考缓冲器。
前景影响大
我们发现黄金帧的第一个用途是前景和背景视频的分割。例如,大多数视频会议应用中,总是有一个人在静态的背景前面讲话。这个发言人遮蔽了背景,但随着他在座位上的移动,会显露出局部背景。TrueMotion编解码器利用非移动的高质模块来更新黄金帧,即使前景快速移动,也可以保持高质量的背景图像。
丢包恢复
我们还可以在丢包情况下采用黄金帧。在一般的视频会议系统中,接收器在发现丢包时,会用信号通知发送者。发送者一接收到这个信号,就会对一个独立于前面各帧的帧 (即‘关键帧’) 进行编码来恢复。该帧由于必须从头开始编码,故往往非常大,这会导致视频的播放断断续续。另一种情况是,这是一个低质量的帧,看起来比周边的帧要模糊,而且产生视觉干扰脉冲。
VP7恢复帧
帧0是关键帧
帧1到6都只根据前一个帧来构建预测器
帧7只以帧0为参考
即使帧1到6中的任一个丢失了,VP7仍然能够对帧7进行解码,因为它只以帧0为参考
图2:利用恢复帧来处理丢包问题
视频会议
电视会议是用电视和电话在两个或多个地点的用户之间举行会议,实时传送声音、图像的通信方式。它同时还可以附加静止图像、文件、传真等信号的传送。参加电视会议的人,可以通过电视发表意见,同时观察对方的形象、动作、表情等,并能出示实物、图纸、文件等实拍的电视图像或者显示在黑板、白板上写的字和画的图,使在不财点参加会议的人感到如同和对方进行“面对面”的交谈,在效果上可以代替现场举行的会议。
多方视频会议也可以采用黄金帧。在多方会议系统中,各个用户的连接带宽都不同。一般的解决方案是把带宽减小到一个假定的最小公分母:所有用户都以最慢的连接都能接收的速度来收取数据。
基于On2 VP7技术的系统则采用了一种新颖的替代方案。通过使用黄金帧、普通帧和可抛弃帧,VP7 可获得四个级别的有限时间可调性。这意味着我们可以根据每一方的需要生成不同的比特流 (参见图3)。这样,会议中的高清方就不会受到较低速连接的影响。最重要的是,这种方案无需额外的CPU成本。
图3:采样时间可调性模式和On2 VP7 [!--empirenews.page--]
每一个比特流都需要较低的帧速率来解码。因此,带宽最低的用户可以接收 5 fps 的比特流;而带宽最大的用户可接收全 30fps。
黄金质量
On2 VP7技术还利用黄金帧来提高质量。在极缓慢地移动的镜头或变焦中,一个周期性的高质量黄金帧会恢复在重复应用环路滤波器或亚像素运动 (sub-pixel motion) 时所丢失的细节,从而保持图像的质量,而结果可以相当明显 (见图4)。在另一些情况下,黄金帧还可作为一个良好的预测器,预测屏幕上的某些图像何时返回到先前的位置。
竖:平均峰值信噪比 (分贝) 横:数据率 (每秒千比特)
图4:采用与不采用黄金帧的移动及日历的峰值信噪比 (PSNR) 之对比
实时质量
在最简单的模式下,On2 VP7编码器使用的周期数只比解码器多 30%,但仍然保持出色的质量。当有大量可用周期时,实时 VP7 更能够产生媲美最佳离线编码的质量。而且,这是自动实现的:VP7 乘以每一个编码帧,并自动调节其复杂性,以确保尽可能利用可用周期来获得最佳质量。
能够达到这样,是因为 TrueMotion VP7 采用了一套自适应算法 (adaptive algorithms) 和探试性 (heuristics) 方法。这些算法决定哪些运动向量和模式最可能产生最佳结果。当VP7工作顺利时,对模式的探试便更频繁。
在VP7拥有多余时间的极端情况下,它会回复到最低和最佳模式,甚至回到允许完全搜索和速率失真优化的某一点。在相反的极端情况下,VP7 可能在整个帧上只进行5或6次运动搜索,而每个宏模块 (macroblock) 只检查2或3个不同模式,就会产生结果。
实时模式
为了确保静态相机的视频会议具有出色的实时模式,On2 VP7 充分利用了预测有时是接近完美的这项特点。如果VP7 (通过运动或模式搜索) 发现预测器与它将进行编码的原始帧非常匹配,它会避免进行大量工作。在这种情况下,VP7放弃了正向变换、量化、令牌化(tokenization)、逆量化、逆向变换和重组代码等操作。唯一需要保留的是在比特流中加入一套代表所有0的令牌 (token),并直接把预测器拷贝到帧缓冲器中。如果这种情况时常发生,编码器实际上比解码器运行得快,故无法缩短从比特流读取令牌的时间。
这种技术可能对感知视频流质量有重大的影响。它可通过忽略较小的变化 (由相机噪声引起的波动) 来消除背景噪声。另外,它让编码器把所有可用周期都集中用在包含显着变化 (移动的部分) 的小部分视频屏幕上。因此,观者最关心的图像部分,亦即发言者的面孔,将获得最多的周期。
解码器的复杂度
解码器是一个重要前端控制设备。在主机的控制下,可使前端设备产生相应的动作。解码器,国外称其为接收器/驱动器(Receiver/Driver)或遥控设备(Telemetry),是为带有云台、变焦镜头等可控设备提供驱动电源并与控制设备如矩阵进解码器(Decoder)行通讯的前端设备。通常,解码器可以控制云台的上、下、左、右旋转,变焦镜头的变焦、聚焦、光圈以及对防护罩雨刷器、摄像机电源、灯光等设备的控制,还可以提供若干个辅助功能开关,以满足不同用户的实际需要。高档次的解码器还带有预置位和巡游功能
为了确保解码速度,On2 VP7比特流采用了一种创新性的简单设计。
象其它编解码器一样,VP7也采用了一个环内去块效应滤波器 (一般称为环路滤波器),以解决模块边缘的方块效应问题。这种方案在模块边界上运用了一个自适应的一维 (one-dimensional) 模糊/低通滤波器。VP7 的滤波器可在字符算法中单独工作,任何可能溢出 (超出字符边界0-255) 的中间操作都会被钳位。这就确保了 SIMD 指令使用的最大宽度,并意味着,如果一个处理器能支持64位SIMD,则VP7的环路滤波器比相同的C操作快了将近8倍。
On2 VP7 的预测滤波器比许多其它编解码器简单。预测器总是由单一帧创建,而且在正向和后向参考帧之间绝没有插补。如果使用了任何亚像素运动,则可在该单一帧上运用单阶滤波器来完成。
简化的熵逻辑
On2 VP7还采用了一种比其它先进编解码器更简单的熵 (entropy) 编码技术。熵解码包含了简单的字符算法,可利用乘法或几种查找算法进行计算。虽然VP7使用了精密的自适应内容建模技术,但若每一比特位都根据比特流进行解析,则不适合。
灵活的解码实现方案
用特定方法把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程。解码在无线电技术和通讯等方面广泛应用。
On2 VP7的比特流划分方法在构建快速解码器时保留了许多选项。所有模式和运动向量信息都存储在一个子流中;所有剩余信息则被存储在另一个单独的子流中。VP7 解码器可采用较传统的运行方法,一次处理一个宏模块,从一个子流中取出单个模式和运动向量,然后从另一个子流的该宏模块中取出剩余信息。两个极端选择之间可进行折衷,以确保低数据率和低指令缓存失效率。
总结
由于On2的VP7 专有压缩技术具有种种优势,因此获得了市场的广泛采纳。黄金帧、出色的实时质量和解码器的简易性,都让On2 VP7成为目前网络视频及未来可能应用的理想选择。