1.一种支持多源流媒体的同步播放控制方法,其特征在于:采用流媒体 同步播放控制装置实现,该装置包括分离器、解码器组、多源流媒体同步模 块、多源视频流融合模块、屏幕显示模块以及音频滤镜;分离器接收来自多 个本地媒体文件或网上多路流媒体中的媒体数据,并实时地将每路媒体流中 的视音频数据进行分离,分离后的数据各自进入相应队列;解码器组从队列 中接收到视音频数据,根据所采用的多媒体编码算法,调用相应的解码器, 以多进程方式并行地完成多路视音频数据的解码,并将解码后媒体数据送至 多源流媒体同步模块;多源流媒体同步模块接收到多路媒体流数据后,采用 多粒度分层同步控制方法对媒体对象之间以及媒体对象内的多路媒体流进行 同步控制;同步后的多路视频与多路音频数据分别送至多源视频流融合模块 与音频滤镜;多源视频流融合模块采用基于图像融合的视频融合算法将多路 同步视频融合为一路视频;融合过程中,该模块还能实现主次媒体对象视频 的切换,并重新进行融合;屏幕显示模块接收到融合后的视频数据后,将音 量大小、当前播放时间或字幕信息叠加到视频上,并进行输出;最终实现多 路视频流的同步播放控制;音频滤镜到融合后的音频数据后,进行格式转 变,重采样,并进行线性叠加,最终实现多路音频流的同步播放控制;所述 的多粒度分层同步控制方法,是将同步问题分解为媒体层、流层和对象层的 三个层次;在流层,根据音频、视频、字幕的优先级顺序,首先,基于呈现 时间戳实现视音频的同步,其次,基于参考点实现字幕与视频的同步,流层 媒体数据的同步解决了媒体对象内的同步;在流层同步的基础上,在对象 层,采用多进程间的管道通信机制实现媒体对象间的同步。
2.根据权利要求1所述的一种支持多源流媒体的同步播放控制方法,其 特征在于:在多源视频融合模块采用的基于图像融合的视频融合算法是将多 个视频窗口在一个虚拟背景中进行图像融合:首先,对同步后的多路视频流 中的视频帧进行色度空间的转换,将YUV格式统一化为RGB格式,其次,根 据用户选择确定主从视频;第三,根据主从关系对视频帧大小进行映射变 换,并确定在虚拟背景上的位置;第四,在虚拟背景上进行像素级的融合, 生成“画中画”效果的融合视频。
所属领域\n本发明属于计算机设计与应用技术领域,涉及计算机软件、多媒体技术 以及视音频处理技术,特别涉及一种支持多源流媒体的同步播放控制方法。\n背景技术\n多媒体技术的飞速发展促使人们对复杂媒体呈现需求的不断提高,并已 逐渐成为人们获取和传递信息、进行网络化自主学习的最有效手段。因此, 各操作系统一直都力求能够对多媒体达到完美的支持。\n多源流媒体是一种支持两路或者两路以上流媒体数据同步播放并以特定 方式(如“画中画”、多窗口)进行表现的复杂媒体类型。它进一步提高了媒 体的表现能力和信息含量,受到当前人们的普遍关注。\n申请人经过查新,检索到与本发明相关专利1个,国内文献4篇,国外相 关文献4篇:\n(一)相关专利1个:\n1.专利名称:基于UPNP协议的LINUX操作系统下的媒体播放器 专利申请人:海信集团有限公司\n(二)国内相关文献3篇:\n1.标题:H.323同步控制实现研究,通信学报.2004,25(5).-67-74\n2.标题:多媒体同步系统的缓冲区补偿技术\n刊名:计算机学报.2003,26(4).-484-490\n3.标题:一种新的媒体内同步控制算法\n刊名:计算机研究与发展.2002,39(12).-1675-1680\n4.标题:延时估计和实时数据的同步控制\n刊名:通信学报.1999,20(2).-46-52\n(三)国外相关文献4篇:\n1.Title:A synchronization and flow control scheme for interactive multimedia-on demand(MOD)systems\nAuthor(s):Chung-Ming Huang;Chian Wang;Hsu-Yang Kung\nSource:Proceedings Seventh International Conference on Parallel and Distributed Systems(Cat.No.PR00568):39-46,2000\n2.Title:A performance comparison of single-stream and multi-stream approaches to live media synchronization\nAuthor(s):Tasaka,S.;Ishibashi,Y.\nSource:IEICE Transactions on Communications vol.E81-B,no.11: 1988-97,11 1998\n3.Title:A synchronization scheme for distributed multimedia information systems\nAuthor(s):Lu,G.J.;Pung,H.K.;Chua,T.S.\nEditor(s):Ng,C.S.;Yeo,T.S.;Yeo,S.P.\nSource:Communications on the Move.Singapore.ICCS/ISITA′92(Cat. No.92TH0479-6):1-5 vol.1,1992\n4.Title:A fast,multi-platform open source SMIL player Conference:ACM Multimedia 2004-proceedings of the 12th ACM International Conference on Multimedia\nPublisher:Association for Computing Machinery\n对上述文献分析如下:\n在专利1中,发明人提出了一种基于UPNP协议的LINUX操作系统下 的媒体播放器,其应用程序模块主要包括有内容传输子系统、格式解码子系 统,以及音视频传输服务模块、连接管理服务模块和播放器控制服务模块, 其特征在于:在应用程序模块中设置有UPNP协议栈。该发明所提到的基于 UPnP协议的媒体播放器,主要实现了网络中媒体播放器自动发现和互操作 的功能,提供用户间共享使用网络资源的功能。\n国内文献[1]中,提出并实现了一种H.323多媒体通信系统音视频同步控 制算法,算法以正常语音播放为基准,利用H.263码流语法信息,通过调整 视频播放帧率实现媒体间同步,不增加通信冗余度。\n国内文献[2]中,主要针对时延抖动这一影响多媒体信息连续播放质量的 重要因素,通过在播放端设置缓冲区以抵消时延抖动,从而保证媒体内及媒 体间的同步。\n国内文献[3]中,提出的媒体同步播放方案,是基于发送方的媒体同步控 制,根据缓冲区的占用情况来检测失步,并将其反馈给发送方,发送方利用 给出的控制函数对发送帧率进行调整,来保持接收方媒体的同步播放。\n国内文献[4]中,提出的同步控制算法,针对常见分组网缺乏QoS业务的 特点,借助于RTP的数据传输机制,通过对报文延时及延时抖动的估计,来 调节和维持实时媒体数据的同步。\n国外文献[1]中,主要论述了媒体点播系统对VCR交互的响应方式。针 对分布式多媒体环境下的媒体交互,提出了一些同步控制方法,但这些方法 很不具体。\n国外文献[2]中,论述了视音频之间的单流与多流传输问题。由于视频流 和音频流的分开传输,导致在传输过程中产生的唇音不同步的问题,论文提 出施行动态分流传输控制可以改善同步质量。\n国外文献[3]中,论述了流内同步及流间同步问题及用户交互对多流呈现 的影响;提出流内的同步主要依靠媒体和呈现媒体之间的时间关系,对流间 的同步是根据媒体的同步属性来建立和维护它们之间的同步。\n国外文献[4]中,论述了一种以新的SMIL引擎为核心的、跨平台的媒体 播放器。该播放器未对SMIL文件中多路媒体进行同步控制,也未对多个视 频窗口进行融合。\n从国内、外数据库检索和文献分析看,主要是对单路媒体流的流内同步 讨论较多,关于多源流媒体的同步控制方法与多路媒体数据融合方法并未涉 及。对流内同步方法主要有两种,一是调整播放端缓冲区的大小,保证媒体 间的同步;基于传输协议,来调节和维护媒体数据的同步。\n发明内容\n为了克服上述现有技术存在的缺陷或不足,本发明提供支持多源流媒体 的同步播放控制方法,可将来自媒体服务器或媒体文件的多路时序相关的异 构媒体进行同步控制,并在多路视频融合后进行播放。\n本发明的技术方案是这样实现的:\n流媒体同步播放控制,采用流媒体同步播放控制装置实现,该装置包括 分离器、解码器组、多源流媒体同步模块、多源视频流融合模块、OSD模块 以及音频滤镜;分离器接收来自多个本地媒体文件或网上多路流媒体中的媒 体数据,并实时地将每路媒体流中的视音频数据进行分离,分离后的数据各 自进入相应队列;解码器组从队列中接收到视音频数据,根据其所采用的多 媒体编码算法,调用相应的解码器,以多进程方式并行地完成多路视音频数 据的解码,并将解码后媒体数据送至多源流媒体同步模块;多源流媒体同步 模块接收到多路媒体流数据后,采用多粒度分层同步控制机制对媒体对象之 间以及媒体对象内的多路媒体流进行同步控制;同步后的多路视频与多路音 频数据分别送至多源视频流融合模块与音频滤镜;多源视频融合模块采用基 于图像融合的视频融合算法将多路同步视频融合为一路视频,以避免多个视 频窗口重叠显示;融合过程中,该模块还能实现主次媒体对象视频的切换, 并重新进行融合;OSD模块接收到融合后的视频数据后,将音量大小、当前 播放时间或字幕信息叠加到视频上,并进行输出;最终实现多路视频流的同 步播放控制;音频滤镜到融合后的音频数据后,进行格式转变,如增益,重 采样,并进行线性叠加,最终实现多路音频流的同步播放控制。\n在多源流媒体同步模块,采用了一种多粒度分层同步控制机制,是将同 步问题分解为媒体层、流层和对象层的三个层次;在流层,根据音频、视频、 字幕的优先级顺序,首先,基于呈现时间戳PTS实现视音频的同步,其次, 基于参考点RP实现字幕与视频的同步,流层媒体数据的同步解决了媒体对 象内的同步;在流层同步的基础上,在对象层,采用多进程间的管道通信机 制实现了媒体对象间的同步。\n在多源视频融合模块,采用基于图像融合的视频融合算法;该算法是将 多个视频窗口在一个虚拟背景中的进行图像融合:首先,对同步后的多路视 频流中的视频帧进行色度空间的转换,将YUV格式统一转化为RGB(Red Green Blue)格式,其次,根据用户选择确定主从视频;第三,根据主从关 系对视频帧大小进行映射变换,并确定在虚拟背景上位置;第四,在虚拟背 景上进行像素级的融合,生成“画中画”效果的融合视频。\n采用本发明,可以实现一种支持多源流媒体的播放器,该播放器支持各 种媒体流及本地媒体文件的播放;并能支持它们之间组合形成的异构多源媒 体同步播放。该播放器可广泛应用于网上课件点播、多场景监控、多录像回 放、多视频点播等领域。\n附图说明\n图1为本发明体系结构及数据流示意图;\n图2为本发明多源流媒体播放过程中同步问题的描述示意图;\n图3为本发明多粒度分层同步参考模型示意图;\n图4为本发明媒体对象间同步模型示意图;\n图5为本发明多源视频流图像分屏融合的原理示意图;\n图6为本发明图像大小的映射变化过程示意图;\n图7为本发明分频融合区域示意图;\n图8为本发明象素级“画中画”视频融合过程示意图;\n图9为本发明多源视频流融合效果。\n具体实施方式\n下面结合附图对本发明作进一步的详细描述。\n同步播放控制机制的组成与工作机理\n参照图1所示,流媒体同步播放控制装置包括分离器、解码器组、多源 流媒体同步模块、多源视频流融合模块、OSD模块以及音频滤镜。\n分离器用于接收来自多个本地媒体文件或网上多路流媒体中的媒体数 据,并对其进行格式识别、分离。媒体文件开头部分有一段数据可用于识别 媒体格式,这部分数据包括文件类型,包含的数据流数量,数据流类型,数 据流的编码算法,根据这些信息,可将媒体分离为单独的视频流、音频流及 字幕流;分离后的数据各自进入相应队列。\n解码器组从队列中接收到视音频数据,根据其所采用的多媒体编码算法, 调用相应的解码器,以多进程方式并行地完成多路视音频数据的解码,视频 数据被解码成BMP或YUV格式的图像帧,音频数据被解码成线性格式;解 码后媒体数据被送至多源流媒体同步模块。\n多源流媒体同步模块接收到多路媒体流据后,采用多粒度分层同步控制 机制对媒体对象之间以及媒体对象内的多路媒体流进行同步控制;在媒体对 象内(流层),根据音频、视频、字幕的优先级顺序,首先,基于PTS实现 视音频的同步,其次,基于RP实现字幕与视频的同步;在流层同步的基础 上,在对象层,采用多进程间的管道通信机制实现了媒体对象间的同步。同 步后的多路视频与多路音频数据分别送至多源视频流融合模块与音频滤镜。\n多源视频流融合模块采用图像融合技术实现将多路同步视频融合为一路 视频,以避免多个视频窗口重叠显示;融合过程中,该模块还能实现主次媒 体对象视频的切换,并重新进行融合。OSD模块接收到融合后的视频数据后, 将音量大小、当前播放时间或字幕信息叠加到视频上,并进行输出;最终实 现多路视频流的同步播放控制。\n音频滤镜到融合后的音频数据后,将其转化为适合输入的格式,并进行 线性叠加,最终实现多路音频流的同步播放控制。\n关键技术\n多粒度分层的多源流媒体同步控制方法\n(1)多源流媒体同步问题描述\n参照图2所示,多源流媒体同步问题,图2中有媒体对象1与2两个媒 体对象,每个媒体对象包含视频流、音频流、字幕流。其中ta是指一个媒体 流内部媒体数据包的时态关系;tb与tc是指一个媒体对象内部的不同媒体流 之间的时态关系,这里分别是媒体对象1中视频与音频、视频与字幕的时态 关系。根据在同步过程中对时序要求的严格程度,还可以将流间同步再一步 细分为动态同步和静态同步两种。tb所描述的音、视频唇音同步是一种动态 同步过程,它要求音视频在播放过程中的任何时刻保持同步;tc所描述的字 幕和视频的的同步则是一个静态同步过程,对于特定的一屏字幕,它对应了 一段显示时间区间,只要保证在区间点时刻(或称为参考点)与视频流的同 步即可,而对这段时间区间内的任何时刻,并没有同步操作。\n如果媒体对象内是严格同步的,则有:\nta=1/fps,tb=0,tc=0\n其中,fps为视频帧速率。\n两个或者两个以上媒体对象之间的同步关系,用tM描述,图2中tM表 示媒体对象1与媒体对象2中音频数据之间的时序关系,同样,如果媒体对 象间是严格同步的,则有:\ntM=0\n在多源流媒体播放过程中,流内同步的同步粒度最小,它是解决媒体对 象内同步的基础和前提,媒体对象间的同步则是在媒体对象内同步的基础上 多个媒体对象间的时序关系,它的同步粒度最大。一般情况下,ta依赖于媒 体文件本身或流媒体传输的结果,而且基本上已经能满足多源流媒体同步需 求,所以,在本发明的研究重点是:\n通过一系列有效的同步机制,使tb、tc和tM的值最小。\n(2)多粒度分层同步参考模型\n针对多源流媒体播放中的各种同步问题,提出了面向多源流媒体播放的 多粒度分层同步参考模型。\n参照图3所示,在分层同步模型中,我们将不同的同步需求分为三层: 媒体层、流层和对象层,在模型图中右侧给出的是每层对应的同步操作对象。\n媒体层:其目的是实现流内各个媒体单元的同步,媒体单元包括视频帧、 音频采样以及字幕段。目前,该层的同步机制主要是在多媒体数据在网络传 输过程中,通过在发送端或本地接收端设置相应的缓冲区、改变发送端发送 速率并采取ARQ反馈机制实现的,该过程发生在媒体数据网络传输阶段, 不属于本发明范畴之内,因此,对媒体层的同步不进行说明。对于流层和同 步层,其同步过程是透明的。ta是该层的同步状态描述参数。\n流层:其目的是实现了媒体流之间同步。媒体流包括视频流、音频流、 字幕流,根据音频、视频、字幕的优先级,我们采用了基于时间戳的流间同 步机制。这里,对于音频、视频,时间戳是媒体数据的PTS,表示一个数据 包期望被呈现的静态时间标记,对于字幕,时间戳是是字幕的RP,即字幕期 望被显示、隐藏的静态时间标记。tb和tc是该层的同步状态描述参数,分别 描述视音频之间以及视频与屏幕之间的同步。\n对象层:其目的是实现媒体对象间的同步。我们通过运用管道实现多个 媒体对象进程间的通讯功能,提出了基于管道通信的媒体对象间同步机制。 tM是该层同步状态描述参数。\n其中,媒体层的同步是实现流层同步的基础,而流层的同步又是实现对 象层同步的前提。在上述的三层同步模型中可以看到,在每一同步层内,我 们通过相应的同步机制,解决了该层同步操作对象的同步问题。\n(3)同步基准的建立\n由于各同步层的同步粒度差异较大,具体来说,流层的同步粒度小,对 象层的同步粒度大,因此,各同步层中的同步基准也具有差异性。\n■流层的同步基准\n流层同步的主要操作对象是视频流、音频流以及字幕流等,要确定流层 的同步基准,其实就是根据媒体对象内部上述三种流的优先级关系而确定主 媒体流。\n由于人耳对声音停顿、重复或播放速率的调整较为敏感,因此通常将音 频流作为主媒体流,而将视频流及其它媒体流作为从媒体流,通过调整播放 时间实现流层的流间同步。\n视音频的同步是一种动态同步过程,对同步的性能要求比较高,而字幕 流的同步是一种静态同步的过程,对同步的性能要求并不是很高。根据上述 分析可以确定三种主要媒体流具有“音频>视频>字幕”的优先级关系。所以, 音频流是流层的同步基准。特别地,如果流层处理的媒体对象没有音频流, 根据优先级,可以确定视频流为同步基准。\n■对象层的同步基准\n对象层的同步情况分为两类:一、无需同步,即组成多源流媒体播放中 的多个媒体对象之间,几乎没有依赖性,不用进行同步处理,阈值空间的值 为无限大。如多个无关的媒体对象的多源流播放。二、精确同步,即组成多 源流媒体播放中的多个媒体对象之间,同步要求较高,同步阈值空间较小。 如一场体育比赛中在多个不同角度拍摄到的赛场视频的全景回放过程,其同 步阈值需设置在1s以下。\n根据上述分析,我们提出了能够唯一描述媒体对象的7元向量模型:\nMO=\n其中,\nMO:Media Object,是指媒体对象;\nID:唯一标识该媒体对象的一个正整数;\nTs:TimeStamp,记录该媒体对象的播放位置,由流层的接口提供,一 般为该媒体对象中的主媒体流的PTS值;\nWeight:权重,是一个正整数,标记该媒体对象同步性能要求的高低, 规定其值越小同步要求就越高,默认主媒体对象的权重值为1;\nThRank:Threshold Rank,阈值等级,是一相对值,表示该媒体对象和 主媒体对象之间同步性能要求的高低。根据实际应用需要,我们确定如下阈 值等级列表:\n\nMRL:指该媒体对象的资源路径,它可以是本地路径或者网络流路径;\nFusion:视频融合的标识位,值为Major、Minor或None;\nInfo:用于描述该媒体对象的一些附加信息。\n如果对象层要处理N个媒体对象间的同步问题,我们用向量 M=(MO0,MO1,…MON),来记录对象层同步元素集。\n在M中,我们把权重值最小的媒体对象定义为对象层的同步基准。\n(4)媒体对象内同步\n媒体对象内同步包括视音频的同步与字幕、视频的同步。\n■基于PTS的视音频同步\n基于PTS的视音频同步的主要思想为:音频按照正常速度播放,视频帧 控制程序根据同步状态检测程序的输出结果对视频帧进行正常播放或丢帧处 理,在每播完一视频帧后,A/V PTS校正程序对音频延时做相应处理并将结 果反馈到同步状态检测程序,从而完成对当前不同步情况的修正。\n设:\naudio_delay:音频延时,是同步状态检测程序判断当前同步状态的重要 依据,初始值为0;\ntimer:当前视频的播放位置,初始值为0;\nplaysize:声卡Buffer中可以填入数据的空间大小;\no_bps:一秒钟未压缩音频字节数;\nfps:frame per second,视频帧速率;\nTh:音、视频同步阈值空间,取值100ms;\nv_pts:当前视频PTS;\na_pts:当前音频PTS;\nT1:自当前音频pts到当前读取的音频数据的播放延时;\nT2:音频流的输入缓冲区存放的音频数据的播放延时;\nT3:解压后尚未送进声卡的音频数据的播放延时;\nT4:声卡中尚未播放的音频数据的播放延时;\nAV_delay:由A/V PTS校正程序计算出来的当前正在播放的音、视频间 存在的实际延时,通过修正跨度因子S,对audio_delay进行修正;\nS:修正跨度因子,在算法实现中,取值为0.1。如果我们得到AV_delay 值为1s,则A/V PTS校正程序经过多次完成对该AV_delay的全部 修正,这样就避免了因修正值过大对视频播放产生明显的“抖动”现 象。\n基于PTS的音、视频同步算法:\nStep1开始,初始化audio_delay=0,timer=0;\nStep2若文件播放完毕,转Step13,否则,获得声卡Buffer中可以填入 数据的空间大小playsize,继续;\nStep3解压缩playzise大小的音频数据并送入声卡播放;\nStep4修改audio_delay的值;\naudio_delay=audio_delay+playsize/o_bps\nStep5读取一帧未解码的视频帧数据,修改audio_delay和timer的值;\ntimer=timer+1/fps\naudio_delay=audio_delay-1/fps\nStep6同步状态检测程序计算audio_delay-T4值,如果该值大于音、视频 同步阈值空间Th值,则出现了不同步现象,转Step12,否则,继 续;\nStep7视频帧控制程序解压该视频帧,sleep(1/fps-上面操作所用时间), 显示;\n*********A/VPTS校正程序对audio_delay值进行修正******\nStep8获取a_pts和v_pts值,并修改a_pts为当前正在播放音频的时刻;\na_pts=a_pts+T1-T2-T3-T4\nStep9计算AV_delay值;\nAV_delay=a_pts-v_pts\nStep10修正audio_delay值;\naudio_delay=audio_delay+AV_delay*S\n***********A/V PTS校正程序修正结束**************\nStep11返回Step2;\nStep12视频帧控制程序不解压此视频帧,做丢弃处理,返回Step2;\nStep13结束。\n■基于“参考点”的字幕、视频同步\n字幕的显示与隐藏需要与视频帧的PTS保持同步,每一个“参考点”其实 都对应着一个视频PTS,当视频PTS到达的时候,字幕显示控制程序就可以 确定是否当前的字幕内容是否需要显示或者隐藏。由此可知,只要保证第一 个参考点与视频的PTS保持同步,其他参考点都相对于第一个参考点的固定 延时而保持了同步,因为每段字幕内容的的显示时间都是确定的。这样,就 很简单的实现了字幕与视频的同步。\n(5)对象层同步\n对象层同步需要确定同步交互信息格式和维护各种基础同步信息。\n■同步交互信息格式\n我们确定对象层同步交互信息格式如下:\nSyncMsg=ID+Ts+Weight+ThRank+Action+Param\n在上式中,共有6部分数据组成,其中前4部分数据与媒体对象模型中 信息一致,后两部分数据说明如下:\nAction:表示该消息的接收媒体对象进程所需要采取的动作,即主媒体 对象进程给从媒体对象进程的执行命令;\nParam:一般是执行Action命令时所需要附加信息。\n其中Action和Param相对应的值如下表所示:\n\n■基础同步信息\n为了实现多源媒体的同步,系统需要建立并维护以下同步信息数据:\n①媒体对象链表:PlayTree\n记录当前正在播放的多个媒体对象的基本信息,是一个动态链表。\n②阈值等级矩阵:TRM(Threshold Rank Matrix)\nTRM=(ThR21,ThR31,...ThRN1)T\n它是一个N-1维的向量,记录所有从媒体对象与主媒体对象间的阈值 等级。\n③同步偏离矩阵:SSM(Synchronization Skew Matrix)\n理论上,N个媒体对象间的同步关系是一个二维的关系,即N×N的矩阵 SSM1:\n\n其中ssij(i,j=0,1,...,N)是第i个媒体对象和第j个媒体对象间的同步偏 离值(Tsi-Tsj)。\n由于SSM1是一个反对称阵,而我们只要知道其中上半部分或下半部分 的数据,就完全可以进行媒体对象的同步处理,所以我们可以将SSM1简化 为下式上三角矩阵SSM2:\n\n实际上,根据对象层同步基准的确立过程可以知道,在媒体对象间同步 中,从媒体对象间的同步可以不作关心,关键是处理好主媒体对象和从媒体 对象之间的同步关系,由此,我们还可以将SSM2简化下式同步偏离矩阵 SSM:\nSSM=(ss21,ss31,...,ssN1)\n它也是一个N-1维的向量,由此我们得到了在媒体对象间同步过程中 非常重要的同步偏离矩阵SSM。并且,通过这种方式,我们将对象层较为复 杂的二维同步问题简化为一维同步问题。\n■媒体对象间同步模型\n有了对象层能同步元素集M,同步交互信息格式SyncMsg,以及基础同 步信息PlayTree、TRM、SSM,对象层同步的基本思想:\n首先,根据M获得PlayTree,并构建TRM和SSM;\n其次,以SyncMsg为基础进行进程间通信交互各媒体对象进程的同步信 息,更新PlayTree、SSM并进行动态维护;\n最后,同步偏离程序根据PlayTree、TRM、SSM信息检测当前的不同步 状态,并进行同步处理:主媒体对象按照正常速度播放,从媒体对象的播放 可能要做跳过或暂停操作(接收主媒体对象命令信息),由此完成媒体对象间 同步。\n由此可见,媒体对象间同步相比于音视频的同步,需要处理的对象多, 粒度大,动态性强。\n参照图4所示,我们对于基于管道通信的媒体对象间同步过程说明如下:\n(1)多源流媒体播放程序开始,根据输入媒体的相关信息,确定主媒体对 象,初始化Ts、Weight、ThRank等参数,创建PlayTree,启动主媒体对象播 放进程并按常速播放,同时启动各从媒体对象播放进程。\n(2)由PlayTree生成阈值等级矩阵TRM。\n(3)通过进程间的管道通信,主媒体对象播放进程所获得的所有从媒体对 象的状态信息,及时更新PlayTree中Ts参数值,完成对PlayTree的动态维 护。\n(4)完成三项功能:I保持和主媒体对象进程的管道通信,将从媒体对象 自身的状态信息及时反馈给主媒体对象进程;II接受主媒体对象进程的命令 信息,执行同步操作;III接收用户对从媒体对象的VCR控制信息。\n(5)根据PlayTree生成并动态维护同步偏离矩阵SSM。\n(6)同步检测程序通过比较SSM和TRM中对应位的值,即如果发现其中 的一个从媒体对象的SSj1值超过了其相应的Thj1值,产生不同步信息。\n(7)将不同步信息通知主媒体对象进程,主媒体对象进程采用管道通信向 不同步的从媒体对象进程发送命令信息SyncMsg,完成同步操作。\n(8)用户对主媒体对象进行VCR控制。\n(9)用户对从媒体对象进行VCR控制。\n对于该同步模型,需要说明以下几点:\n步骤(3)~(7)构成一个闭环过程,它是实现媒体对象间同步的核心环 路。\n在该同步模型中,还有一个Clock模块,它不是系统参考时间SCR (System Clock Reference),而是由TRM中最小值和SCR共同得到 的一个时钟参数,是该同步模型的“全局时钟”,由此“统一领导”同步 情况的检测和纠正。\n如果同步检测程序检测结果有多个不同步信息,系统将首先处理其 ThRank值较低(优先级较高)的不同步情况。如果媒体对象的ThRank 值为-1,同步检测程序将忽略对此媒体对象的同步处理。\n主媒体对象和从媒体对象的用户VCR控制的实现稍有不同。对于 主媒体对象,直接将VCR控制信息通知从媒体对象进程并采取相应 VCR操作;对于从媒体对象,首先将该信息发送至主媒体对象进程, 并由主媒体对象进程将信息发送到其他从媒体对象进程。\n在进行Seek操作和VCR操作的时候,都有一个全局同步的过程, 此操作由主媒体对象进程实现。\n这样,我们已经完整的提出了面向多源流媒体播放的同步解决方案,多 源流媒体的同步问题得到了解决。\n基于图像融合的视频融合机制\n多源视频流融合的目的就是使前景在选定融合中心点或区域实现前景与 背景的覆盖(Overlay),并在边界处做一些流畅和平滑过渡处理。\n首先,我们对背景和前景进行预处理,为进行象素级融合打好基础,然 后,在背景中选取要融合的中心位置或区域,最后应用融合算法达到我们的 融合要求,完成融合过程。\n参照图5所示,预处理完成了对不同格式的图像进行色度空间的转换、 图像维数的标准化、图像大小的映射变换等工作。融合位置的选择确定了前 景和背景的相对位置。融合算法完成了图像的象素级融合。以上步骤完成了 图像融合的基本功能,在此基础上实现多源流视频的融合,但是,多源流视 频的融合过程较之两个图像的融合过程更具复杂性,所以,需要将上述流程 进行扩展(图5中虚框所示)。\n多源流视频分频融合所处理的是多个前景在一个虚拟背景中的图像融合 过程,这些前景都互不覆盖,因此在视频解码器输出形成视频帧之后我们还 需要完成主次前景的选择过程,复杂的融合位置的定位过程等,而且,对于 不同视频输出设备对色度空间的支持情况各异,我们需要对融合输出做适当 “后处理”,以便于灵活适应,如为了实现前景到背景的平滑过渡,在图像的 渐变区域内,融合后的每个象素既包括了来自背景的信息,又存在前景的信 息。\n■多源流视频融合算法\n设:在多源流的播放过程中获得视频帧序列Fi,i∈[1,N],解码后为图像文 件序列Bi,i∈[1,N]:\nS1.开始\n接收图像文件序列Bi,作为图像融合的输入,多源流视频分频流融合开 始。\nS2.生成虚拟背景\n根据最后视频输出设备分辨率大小(设为U×V),生成图像融合的虚拟 背景bgB(background Bitmap),格式为RGB24,每个象素填充值0xFFFFFF (黑色)。如何媒体文件播放结束,转S12,否则继续。\nS3.确定主次前景\n根据接收到的Bi,选取其中的一个图像文件Bj,j∈[1,N]作为图像融合的主 前景MajorFB(Major Frontground Bitmap),其余的都作为图像融合次前景 MinorFBk,k∈[1,N-1](Minor Frontground Bitmap)。\n根据能够唯一标识媒体对象的7元向量模型,在这个模型中有一个 Fusion域,它是视频融合的标识位,值可以为Major、Minor或None,各值 的意义如下:\nMajor:标识媒体对象为视频融合中的主前景;\nMinor:标识媒体对象为视频融合中的次前景;\nNone:标识媒体对象不进行视频融合。\n一般情况下,系统默认主媒体对象的Fusion值为Major,从媒体对象的 Fusion值为Minor,媒体对象的Fusion值接受用户的修改。这样,就确定了 一个主前景MajorFB,N-1个次前景MinorFBk,k∈[1,N-1]。\n如果所有媒体对象的Fusion值为None,则不进行视频融合,采用多窗 口方式显示,转S12。\nS4.色度空间的转换\n由于确定的MajorFB和MinorFBk,k∈[1,N-1]可能采用了不同的色度空间, 格式不一致,因此需要将上述图像进行色度空间(图像格式)的转换,为了 便于进一步的图像融合处理,通过下式将所有的图像转换到RGB空间上来, 其转换结果都为RGB24的无压缩BMP位图文件格式。\n\nS5.图像维数的标准化\n将MajorFB和MinorFBk,k∈[1,N-1]的分辨率标准化为U×V,为MajorFB、 MinorFBk,k∈[1,N-1]和bgB进行象素级的融合奠定基础。\nS6.图像大小的映射变换\n进行融合前,需要对MajorFB和MinorFBk,k∈[1,N-1]进行图像大小的转换, 这是一个象素映射变换的过程,其变换函数记为f。我们对该过程进行简单 叙述,一般图像的宽与高之比为4∶3,不失一般性,假设我们需要将原始的 图像MajorFB和MinorFBk,k∈[1,N-1](U×V)缩小为原来的1/z,缩小后图像 MajorFB和MinorFBk,k∈[1,N-1]的维数为m×n,正整数z称为图像缩放倍率。 不妨设:\nU=zm+I,V=zn+r\n故,对MajorFB和MinorFBk,k∈[1,N-1]可采用丢弃部分边缘象素(图中1×r 区域),正比缩小的方法转换图像大小,其中对原图象素每z×z方阵象素区中 取一点作为MajorFBz和MinorFBkz,k∈[1,N-1]的象素,即存在以下的象素映射关 系:\nMajorFBz=f(z,MajorFB)\nMinorFBkz=f(z,MinorFBk),k∈[1,N-1]\n参照图6所示其转换过程:\n这样,就确定了前景MajorFBz或MinorFBkz,k[1,N-1]在虚拟背景bgB中的 融合区域m×n.\n参照图7所示:\nS7.融合位置的计算\n根据U、V和图像缩放倍率z分别对主次前景的大小进行了变换,并且 由此得到了变换后主次前景在背景中的融合区域Q:m×n。但我们还需确定 MajorFBz和MinorFBkz,k∈[1,N-1]的第一个象素在bgB中的位置P:P(x,y)和 Pk(xk,yk)之后,才能完全确定各前景在背景中的融合位置。\n在多源视频流的融合过程中,我们采用“画中画”形式,Pk(xk,yk)之间使用 简单的线性关系表示,即:\nPk+1(xk+1,yk+1)=Pk(xk,yk+n)\n如果MajorFBz不存在,即S3中所有媒体的Fusion值都为Minor,则将 MinorFBkz在bgB“平均布局”。\nS8.象素级“画中画”视频融合\n假设融合后的输出为bgB’,在已有bgB、MajorFBz和MinorFBkz,k∈[1,N-1]、 P、Q的基础上,给出视频融合的过程。\n参照图8所示视频融合的过程:\n把融合过程记为F。bgB’是通过象素级图像融合过程F将bgB和MajorFBz 和MinorFBkz,k∈[1,N-1]进行N次融合的结果。\n设bgB、MajorFBz和MinorFBkz,k[1,N-1]都是线性地址保存,即:\nbgB=byte[0..3*U*V-1]\nMajorFBz,MinorFBkz=byte[0..3*m*n-1],k∈[1,N-1]\n以MinorFBkz,k∈[1,N-1]和bgB的融合过程为例,融合过程F可以用以下算 法描述:\n***********************多源视频流融合算法********************\n001 for I=0 to N-1do //连续执行N次融合过程\n002 for J=0 to m-1 do //替换Q中的第J+1行象素\n003 for K=0 to n-1 do //替换Q中的第J+1行、第K+1列所对应\n的象素\n004 begin\n005 bgB{[(xI+1-1)*n+yI+1-1]*3}=MinorFB(I+1)z[(J*n+K)*3];\n //替换象素中的R分量\n006 bgB{[(xI+1-1)*n+yI+1-1]*3+1}=MinorFB(I+1)z[(J*n+K)*3+1];\n //替换象素中的G分量\n007 bgB{[(xI+1-1)*n+yI+1-1]*3+2}=MinorFB(I+1)z[(J*n+K)*3+2];\n //替换象素中的B分量\n008 end.\n*************************************************************\n到此,通过F完成了多源视频流“画中画”象素级融合。\nS9.后处理\n根据不同的视频输出设备支持的色度空间的差异,对bgB’进行类似S4的 色度空间转换和类似S5的图像大小缩放处理。\nS10.视频输出\n通过Video Out将在一个视频窗口中以“画中画”方式呈现给用户。\nS11.用户窗口控制\n在多源视频的播放过程中,接受用户窗口操作(如将主前景全屏,切换 主前景和次前景等),程序修改媒体对象的Fusion域的值,返回S2,系统重 新启动新的多源视频流融合过程。\n参照图9所示视频融合后的效果图。\n■窗口控制策略\n由于视频窗口比较小,细节信息无法看清,为此引入了窗口控制策略, 实现主次前景媒体对象视频的灵活切换。\n策略:融合后的视频窗口bgB’是一个U×V维的窗口,其中每一个象素都 对应着视频窗口中的一个坐标p(u,v),如图8所示,根据bgB、MajorFBz和 MinorFBkz,k∈[1,N-1],我们可以判断点p(u,v)是在当前的主前景媒体对象 MajorFBz,还是在次前景媒体对象MinorFBkz,k∈[1,N-1]区域内,进而通过修改 相应媒体对象的Fusion域的值,重新启动多源流视频融合算法,完成主次前 景媒体对象视频的切换功能。\n定义消息evFusion,用户在次前景窗口中双击时产生,当多源视频窗口 接收到该消息后,程序修改当前主前景媒体对象的Fusion值为Minor,而修 改次前景媒体对象的Fusion值为Major。
法律信息
- 2014-12-10
未缴年费专利权终止
IPC(主分类): H04N 5/44
专利号: ZL 200510096215.9
申请日: 2005.10.21
授权公告日: 2007.11.28
- 2007-11-28
- 2006-06-28
- 2006-05-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2004-02-04
|
2002-07-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |