首页 | DV动态 | 数码产品 | 视频采编 | 网站建设 |
【收藏DV】
  最近3月排行
·华为的冬天
·北国之春-任正非
MPEG-4系统交互性原理与实现
2005/10/2 10:12:00
 

关键词:交互性 场景描述 对象描述符 BIFS

一 引言

MPEG-4允许用户和呈现内容进行交互。这种交互主要分为两类:客户端本地交互和客户—服务器端交互。客户端本地交互包括内容的操纵,特别是一个场景描述节点属性的改变,如对象位置的改变、使其可见或消失、改变一个合成文本节点的字体大小等,都能够通过激发用户事件而实现。一个用户事件可以是鼠标的点击或键盘命令,以更新场景描述。服务器端交互包含发生在传送终端由用户动作引发的对内容的操纵,它需要一个回传通道。

MPEG-4本地交互的多媒体系统的关键问题是交互式多媒体场景的描述、对象描述符的概念,以及场景描述和基本码流的关联。


二 交互式的场景描述

MPEG-4最大的特点是基于对象,即将媒体元素作为对象来进行单独编码。为了在终端重新构建一个多媒体场景,只传输这些原始的视听数据是不够的,需要额外的信息在接收端来组合这些视听数据,并创建和显示一个有意义的多媒体场景。而场景描述就是用来说明如何根据AV对象的时间和空间属性有效地将它们组织起来的,是实现交互性的重中之重。

1. 场景描述的概念

场景描述作为MPEG-4系统规范的一部分,规定了场景中AV对象的组织方式,描述了用于传输时空位置的信息格式,这样的信息足以将各个解码重构后的AV对象组合和重现。为什么要将场景描述信息与AV对象分开呢?这是因为场景描述信息是场景结构的属性而不是单个AV对象的属性,因此,它也要单独编码并用单独的流和编码对象一起传输。这对于比特流的编辑和基于对象的MPEG-4的功能实现,以及终端用户对场景修改的参与,即交互性,都是非常重要的。

场景描述的表示称为二进制格式场景(Binary Format for Scenes,BIFS),其是基于VRML的,表示预定义的视听对象和行为及时空关系的集合。BIFS的目的就是携带场景描述信息,它首先是一个协议:规定了如何重现MPEG-4对象的场景图,实现对象的动画和交互行为,以及对这些元素的发送加以时序化和同步化;其次,它定义了事件处理、对象组合的节点和运行规则;另外,它还是一种有效的对数据进行重现和发送的压缩工具。

2. 场景描述的特征



a.场景结构

一个场景描述带有一个可以用图表示的层次结构。图节点构成了视听对象,如图1所示。

场景描述采用如图1所示的树状结构,是为了便于增加场景的编辑和交互功能。树的每个叶节点都是一个基本节点,它对应于一个基本流,任何一个子节点(叶子)的父节点都是复合节点,复合节点主要用于场景的编辑和组合。在实际应用中,这种结构并不是静态结构而是动态结构,即用户能够实施添加、删除和改变节点等操作。

b.节点和域

BIFS场景描述由节点集合组成,这些节点用来描述场景结构,因此MPEG-4的场景图也可以称为节点图。场景中的一个视听对象用一个或者多个节点描述,它们可能被集合在一起(使用组节点)。MPEG-4主要定义了以下节点类型:

(1)分组节点:创建场景结构。

(2)子节点:组节点的子节点,用来表示场景中的多媒体对象。

(3)可捆绑子节点:一种特殊类型子节点,用来表示一组节点类型,这些节点类型一次只有一个有效,例如3D场景的视点节点(Viewpoint),可以包含多种视点,但一次只有一个视点有效。

(4)内插器节点:子节点的另一种类型,用来表示进行帧动画制作的插入数据。

(5)传感器节点:检测用户的动作和环境的变换以创作交互的场景。

BIFS由一个分层树状的节点集组成,每个节点用来表示变换场景中的一个视听对象;节点又由表示节点特性的一组域组成。

节点域有时表示一个值,如球节点的半径域;有时表示许多值,如定义一个多边形的顶点的列表。节点用包含一个节点名和节点中域的列表的语法形式来定义,列表中规定了每个域标示、类型、名称和默认值。许多节点都包含其它节点的域,这就是场景描述构成树状结构的原因。

3. 场景描述的交互

a.基于VRML的事件模式

为了描述场景对象的交互性和行为,使用传感器和路由来描述这些交互行为。传感器节点产生基于用户交互和场景变化的事件,这些事件被传输给插值器和其余节点以改变这些节点的属性,如果事件被传输到一个插值器,则根据输入值插入一个新的参数,并最终传输给处理该事件的节点。

b. 流式场景描述的更新:



BIFS-Command

在MPEG-4中,场景描述的基本思路及模型是在客户端先下载一个初始化场景,然后再接收,所以场景可以看作流式场景描述更新。

BIFS-Command机制使得场景图中的属性可以改变,如场景图节点和行为。BIFS-Command用来修改场景在某个给定时间的一系列属性。为了能够在一个单一访问单元中发送几个命令,命令被组合到CommandFrames中。BIFS-Command定义了4个基本命令:Replacement of an entire scene;Insertion;Deletion;Replacement。

c. 场景的外部动画:BIFS-Anim

BIFS-Anim提供了场景图中节点的某些域的连续更新,它被用来组合各种动画。尽管BIFS-Anim和BIFS-Command都有相同的基本码流类型,但它们不会在同一个基本码流中传输。BIFS-Anim信息在一个独立的基本码流中传输,它独立于传输BIFS-Command元素的码流。

4. 场景描述的压缩和流化

作为压缩工具,BIFS对场景使用了紧致的表示方法,即场景描述节点使用一系列参数,通过对参数编码而大大提高压缩比。

在节点编码中,引入了节点数据类型(Node Data Type,NDT)的概念。每个节点可以属于一个或者一个以上的NDT。每个NDT有一张NDT表,列出了所有属于该NDT的节点。对该节点编码时,只需要知道节点在NDT表中的位置。

使用量化参数节点可以获得量化的BIFS场景。量化参数节点将影响在它前后出现的所有节点的域值量化。BIFS域值的量化非常复杂,因为无法从信源数据获得准确的统计数据,所以要找到一个折中的机制,既能够令使用量化参数节点花费的开销最低,又能获得最佳量化。为此,提出了域值量化类型的概念,一共划分为14个域值量化类型,每个节点的每个域都属于一种量化类型,量化类型中包含了域值的变化范围数据(即最大和最小值)及该域值线性量化所需比特数。当一个域要编码时,首先要在该域所在节点的节点编码表(Node Coding Table,NCT)中找到该域的量化类型,然后根据量化参数节点中对这种量化类型所作的说明(包括使用比特数和域值变化范围)对域值进行量化。

三 对象描述框架


图3展示的是MPEG-4标准中描述的一个完整的多媒体系统。从图中可以看到,MPEG-4将AV对象、场景描述信息、对象描述符等作为基本码流进行传输,依靠场景描述信息和对象描述符将AV对象组合、生成多媒体交互式场景。MPEG-4系统为此规范了一个对象描述框架,以把基本流和场景描述连接起来组成MPEG-4场景。

对象描述框架由一系列描述符组成,这些描述符可以识别、描述并将有关的基本码流联系起来,还可以将基本码流和在场景描述中使用的视听对象联系起来。对象描述符代码是数字识别符,它将对象描述符和场景描述中合适的节点联系起来。对象描述符包含在基本码流中,并有时间戳指示其有效性。

1. 与MPEG-2的联系和区别

MPEG-4对象描述符(Object Descriptor,OD)是对象描述框架的核心概念,其是一个容器结构,封装了一系列基本流的设置和相关信息的所有内容。包含在对象描述符中的一系列子描述符描述了媒体流终端解码器所需的配置信息,以及用于此流的同步层语法。反过来,从场景描述的观点来看,每一个对象描述符将许多流聚集在一起而被看作一个独立的实体。场景描述中的OD被指定了唯一的ID识别符,这样可以在单独的流中传输而能被识别出来,场景描述就可以不直接对媒体基本流进行描述,而是借用每一基本流相关联的对象描述符进行场景的描述。也就是说,场景描述用对象描述符代替媒体流进行场景的描述。

MPEG-4系统中的描述符与MPEG-2系统中的描述符在形式上差不多,都是以8位标签值开始,用以表示描述符唯一的标识;标签值之后是各自的数据字段,只是少了描述符长度这一字段。两者无论在作用上、还是在使用的重要性上,都有很大的不同。MPEG-2系统中的描述符称作原始流描述符,用来说明原始流定义的结构,提供了一种可扩展定义的识别方式,为传输的媒体或数据作一些补充说明,或者由于应用的需要而附加一些必要的信息,如条件访问(CA)。

MPEG-2的描述符并不是一定要有,而是根据应用的需要而采用;而MPEG-4系统中所用到的描述符是必不可少的,例如初始化描述符。时钟参考和时间标记等重要信息,在MPEG-2中并不用描述符来说明,而是放在打包基本流(PES)中;但在MPEG-4系统中,这些重要信息及对解码器的配置信息都需要描述符来说明,一旦少了描述符,解码器就无法对媒体流进行解码。同时,对象描述符提供了一种间接的机制,以便将场景结构、媒体对象同所用传输设备分开,使得它们之间的运行不会相互影响。这些描述符用来识别、描述基本码流,并将基本码流和场景描述中的AV对象联系起来。

2. 对象描述符对场景描述和基本码流的联结

每个对象描述符都是描述符集合,它们描述一个或多个和一个节点(场景描述)有关的基本码流。这些基本码流和单一视听对象有关,它允许可扩展的内容表示。

对象描述符框架定义了所有必需的描述符,并留有扩展余地,它提供了一个完善的识别、描述和关联AV场景各种数据类型基本流的框架。描述符信息作为一个单独的基本流进行传输。常用到MPEG-4中的描述符主要有四个:

(1)初始对象描述符:用于首次对话时传送终端必需的配置和场景信息,有自己的ID识别(即可在独立基本流中传输)。

(2)基本流对象描述符:用于标识一个基本流,有自己的ID-ES_ID(即可在独立基本流中传输)。

(3)解码配置描述符:它嵌套在基本流对象描述符中,用以描述该基本流终端解码器的配置情况。

(4)同步层配置描述符:它嵌套在基本流对象描述符中,用以描述所在基本流如何打包。

对象描述符在专门的基本流中传输,即对象描述符流。将其进行适当的包装,即成为可以遍及每一个对象描述符的OD命令,它能够以适当的方式动态地更新和删除每一个对象描述符。描述符的有无,决定了MPEG-4终端关联的基本码流是否可用。

除了提供场景描述和基本流之间关系的基本信息外,对象描述符框架还提供了用来描述流之间层次关系的机制,以反映内容的可分级编码和指示多种可选择的内容表现形式的方法。此外,关于内容项目原文的描述符,称作对象内容信息(OCI)和用作知识产权管理和保护(IPMP)的描述符也都定义了。

MPEG-4标准中规定的基本流主要有三种:对象描述符基本流(OD流)、场景描述基本流(BIFS流)和媒体数据基本流(音/视频等媒体数据流)。

最先传输的初始对象描述符包含两个基本流对象描述符。根据它们的ID(ES_ID),可以找到对应的基本流:一个是场景描述流,一个是对象描述符流。终端对场景描述流解码建立场景,一旦遇到场景的组成元素是某种类型的媒体,就通过描述中指示的对象描述符ID,从对象描述符流中取得对应此媒体流的对象描述符。对此对象描述符进行解析,可以最终获得指示该媒体流的ES_ID及对该媒体流解复用和解码所需要的信息。最终完成场景的重建。

3. 对象描述符命令

一个单独的MPEG-4画面或节目,可能由多种数据类型的许多基本流组成。对象描述符框架从场景描述中分离出来,就是为了解决这一实际问题:内容服务提供商希望通过简单的方式就可以重新部署流。这种重新部署只需改变对象描述符,而不会影响场景描述。因而大大增强了内容的管理功能。

为了对场景进行更新,还特别定义了对象描述符命令来完成这一功能。对象描述符和其组件都作为OD命令的一部分进行传输,命令执行了对这些对象描述符和其部件的更新或删除操作。每个命令都影响一个或者多个对象描述符或者基本流描述符和IPMP描述符等。

四 MPEG-J

MPEG-J是MPEG-4的扩展,它是一个可编程系统,允许在MPEG-4内容中使用Java语言。其为带有Java代码的MPEG-4媒体播放器的互操作性定义了API。Java代码可以修改场景,部分参与场景交互机制及控制媒体的解码。

通过组合MPEG-4媒体和安全的可执行代码,内容创作者可以嵌入更复杂的控制和数据处理机制到其媒体数据中,从而智能地管理视/音频会话操作,以实现复杂的应用和增强的交互性能。

五 交互性的实现


在14496-5测试程序的基础上实现基于MPEG-4的多媒体互动系统(主要是在2D范围内实现的)。图4是一个交互性实现的例子。

图中4个不停旋转的黄色矩形是通过场景描述中内嵌Java-let实现的,可以是台标等信息。上面是一行滚动的字幕。右边是可选的频道或节目,它们是自上而下滚动的,当用鼠标点击某一个时,它将铺平整个背景,作为观看的主节目,如电视频道的电视剧等。左边是一些校园信息、天气预报等个人定义的信息类节目,这类节目并不经常观看,只是偶尔察看一下,所以是这样设计的:当点击某一个时,它将扩大4倍移动到屏幕的中间以便于观看;之后,可以点击左下角的小按钮让它回到左边;或者嫌它碍事的话,可以点击右下角的小按钮让它消失,再点击左下角的小按钮又可以让它出现;当鼠标放在这些节目或信息之上而没有点击时,会在下面出现字幕形式的介绍。当然,不管是电视频道或信息都不止这4种,但用户经常看的或喜欢的也就某几个。因此,用户可以自己编制场景描述文件,从而把自己喜欢或常看的节目和信息以这样的方式显示出来,便于选择。 (DVOL本文转自:中国DV传媒 http://www.dvol.cn)

欢迎关注微信公众账号:手机烟台(mYantai)

 

  上一篇:MPEG基本码流测试
  下一篇:MPEG的发展动态及其未来预测
      更多...
::打印本页 ::      ::关闭窗口::


版权所有© 数码在线网站 DV OnLine©  鲁ICP备12016322号-1