2.2.2 场景描述内容
MPEG—4根据VRML开发了一种自己的二进制语言用来进行场景描述,这就是BIFS—BInary Format for Scenes(二进制场景格式)。MPEG—4的BIFS就是VRML交互机制在MPEG—4中应用的体现。BIFS使用的是参数方法,场景描述由一些带有属性和其它信息(包括事件源和目标)的节点构成的编码层次(树)组成。树中的叶节点表示特定的AV对象(媒体对象),但是有一些媒介节点来实现分组,空间转移和其它操作(场景描述节点)。BIFS可以随着其更新升级而不断改进。BIFS目的就是携带场景描述信息,它实际上就是一个协议:首先它规定了如何重现MPEG—4对象的场景图(在任意时间和空间上放置MPEG—4对象),实现对象的动画和可交互行为以及对这些元素的发送加以时序化和同步化;其次,它还是一种有效的对数据进行重现和发送的压缩工具;另外,它还定义了事件处理、对象组合的节点和运行规则。
图3
图3显示了“BIFS内容”,从中我们可以看出BIFS进行场景描述的大体流程。这里值得注意的是,从图中“场景图管理”部分我们可以看到,BIFS在对VRML节点支持的基础上进行了扩充。MPEG—4传送的对象包括VRML节点和MPEG—4独有的MPEG—4节点,这就进一步说明了MPEG—4对VRML的兼容和改进。
BIFS采用了BIFS—Command机制,它能够改变场景图的任何属性。例如:Transform节点可以修改对象在空间中的移动,Material节点能够改变对象的外观,几何节点的域可以整体或部分的改变对象的几何外形等。总之,节点和行为可以增加和删除。为了修改场景,发端必须发送一BIFS—Command帧,其中包括一条或多条更新的命令,这其实就是图3中的BIFS-Update ES,它用于在给定的时刻及时地修改场景的一系列属性。BIFS提供了两种描述场景变化的机制,对于修改场景连续变化的参数就需要用到动画方案来解决——“BIFS—Anim”机制,这一机制可以对特殊节点的域作连续的更新,整合不同类型的动画,如对带有网格、2D/3D位置、旋转、伸缩因子和颜色属性的脸部模型完成动画的能力。
MPEG—4容许用户交互式地操作各种对象,这种交互式可以分为两类:客户端交互和服务端交互。客户端交互就是改变场景描述节点的属性,如使某个对象可见或消失、通过鼠标或键盘改变对象的位置或3D对象的视点以及文本对象的字体和尺寸等,这些操作都是在解码端完成,不需要改变码流的内容。客户端的交互性可以进一步分为简单目标操作类型和事件常规类型。前者(如重新定位,隐藏,改变属性等)不需要来自于MPEG—4的标准化支持。后者(如超链接.触发等)就需要MPEG—4的标准化支持。当服务端在终端和发送端间要求通信时,位于一个MPEG—4的本地终端的客户端就响应。服务器端交互是通过用户在解码端进行操作而服务端对该操作进行相应的反映来实现的,显然这种交互需要上行通道。注意,服务端的交互性也需要MPEG—4的支持。MPEG—4的系统组目前正致力于将需求特性最小化,且不限制应用场合和在主机上的应用不对操作环境有特殊要求,这样将有利于交互性更好的实现。这一切就正是使用了VRML模式的路由机制。
图4
图4展示了一个完整的MPEG—4多媒体系统,从图中可以看到,MPEG—4将AV对象、场景描述信息、对象描述子等作为基本码流进行传输,依靠场景描述信息和对象描述子将AV对象组合、生成多媒体交互式的场景。注意:场景描述仅仅描述场景的结构。将这些目标放置在同一显示空间的行为称作组合。将来自于同一显示空间的对象传输到专门的播放设备(即扬声器和显示窗口)的行为称作生成。但是在MPEG—4系统规范中,并没有规定专门的组合和重现算祛和结构,因为他们是依赖于具体的应用实现的,例如,就PC应用来说,在Windows系统下和在Linux系统下,不同软件应用都会有各自的组合生成算法实现。注意,图2所示的“场景描述树状结构”就是图4中的“场景描述信息”部分。(待续
摘自《中国CATV》