(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf_第1页
(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf_第2页
(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf_第3页
(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf_第4页
(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(信号与信息处理专业论文)移动多媒体广播码流解复用及播放技术的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 移动多媒体广播技术的发展是未来广播电视技术发展的一个必然趋势。国外 已经提出七种能够实现手持移动多媒体广播的技术和方案即t - d m b 技术、d v b h 技术、m e d i a f l o 技术、s d 船技术、i s d b - t 技术、阿尔卡特手机电视方案和 m b m s ( m u l t i m e d i ab r o a d c a s t i n g m u l t i c a s ts e r v i c e ) 方案。我国于2 0 0 6 年1 0 月2 4 日颁布了我国自主研发的移动多媒体广播标准( 简称c 删b ) ,我国的移动多 媒体广播产业的发展进入到一个崭新的阶段。对于处在c 删b 产业链的核心部分 的c 删b 终端系统来说,很重要的一个研究内容就是对c 岫复用帧码流的解码显 示的研究。本文主要的工作就是解决c 删b 复用帧码流的解码显示的问题。 由于c 埘b 复用帧码流的特殊性,目前大多数主流播放器都不能支持其播放。 d i r e c t s h o w 技术是一个微软开发的基于w i n d o w s 平台上的一个流媒体框架。 d i r e c t s h o w 技术提供了高质量的播放、多媒体流采集、格式转换、回放等功能。 同时它可以支持多种多样的媒体文件格式功能很强大。对于用户自定义的解决方 案来说,它也提供了底层流控制框架,从而使用户可以很方便的自行创建支持新 的文件格式或其它用途的d i r e c t s h o w 组件。所以本文所设计的解码播放技术方 案是主要基于d i r e c t s h o w 技术的来完成的。 本文首先详细的介绍了移动多媒体广播技术的发展和中国移动多媒体的发 展现状;接着介绍了c m m b 码流的解复用的关键技术并设计出解复用的软件设计 方案、c o m 技术以及基于c o m 技术的d i r e c t s h o w 技术,并在此基础上设计出了 可以播放两路实时流的c m m b 播放器。最后对c m m b 播放器的性能进行了测试,并 进行了总结和展望。 关键词:移动多媒体广播c m m b 解复用d i r e c t s h o w a b s t r a c t t h ed e v e l o p m e n to fm o b i l em u l t i m e d i ab r o a d c a s t i n gt e c h n o l o g yi s i sa l l i n e v i t a b l et r e n do fb r o a d c a s tt e l e v i s i o nt e c h n o l o g yi nt h ef u t u r e t h e r ea r es e v e n s t a n d a r d sn o ws u c ha st - d m b ,d v b h ,m e d i a f l o ,s d m b ,i s d b t m b m sa n d m o b i l et vp r o g r a m sp r o p o s e db ya l c a t e li nt h ef o r e i g n c h i n ai s s u e do u rm o b i l e m u l t i m e x t i ab r o a d c a s t i n gs t a n d a r dw h i c ho w n si n t e l l e c t u a lp r o p e r t yr i g h t so no c t o b e r 2 4 ,2 0 0 6 c m m bi n d u s t r i e sc o m e si n t oan e ws t a g e t h ed e v e l o p m e n to fc m m b t e r m i n a ls y s t e mi si nt h ec o r ep a r to fc m m bi n d u s t r i e s o n ei m p o r t a n tr e s e a r c hi st h e d e c o d i n ga n dd i s p l a y i n go fc m m b s t r e a m t h i si sw h a tt h i sp a p e rw a n t st od e a lw i t h a st h es p e c i a ls t r u c t u r eo fc m m b m u l t i p l e x i n gf r a m e ,m o s to ft h em a j o rp l a y e r s c a nn o ts u p p o r tt h i sf o r m a t d i r e c t s h o wt e c h n o l o g yp r o v i d e sas t r e a m i n gm e s a f r a m e w o r kw h i c hi sb a s e do nw i n d o w sp l a t f o r m d i r e c t s h o wt e c h n o l o g yp r o v i d e s h i g h q u a l i t yp l a y i n g ,t h ea c q u i s i t i o no fm u l t i m e d i as t r e a m i n g ,t r a n s e o d i n ga n d p l a y b a c ka n d s oo n i t s u p p o r t sa l l k i n d so ff o r m a t i ti s v e r yp o w e r f u l f o r u s e r - d e f i n e df o r m a t , i ta l s op r o v i d e sal o w l e v e lf l o wc o n t r o lf i m n e w o r k s ou s e rc a n c r e a t ed i r e c t s h o wc o m p o n e n tt os u p p o r tt h i sf o r m a to rf o ro t h e l p u r p o s e s t h e r e f o r e , t h et e c h n i c a lp r o g r a mi sm a i n l yb a s e do nd i r e e t s h o wt e c h n o l o g y t h i sp a p e rd e s c r i b e st h ed e v e l o p m e n to fm o b i l em u l t i m e d i ab r o a d c a s t i n g t e c h n o l o g yi nd e t a i la n dt h ed e v e l o p m e n ts t a t u so fc m m b t h e ni ti n t r o d u c e st h ek e y t e c h n o l o g i e so ft h ed e m u l t i p l e x i n ga n dt h es o f t w a r es o l u t i o n s i ta l s oi n t r o d u c e sc o m t e c h n o l o g ya n dd i r e e t s h o wt e c h n o l o g yw h i c hi sb a s e do nc o mt e c h n o l o g y a tl a s t w od e s i g n e dac m m bp l a y e rw h i c hc a ns u p p o r tt h ed i s p l a y i n go ft w or e a l - t i m e c m m bs t r e a m s w ea l s ot e s t e dt h ep e r f o r m a n c eo fc m m bp l a y e ra n dm a d ea s u m m a r yf o rt h et e s t a n dw eg a v es o m en o t i o n sf o r t h ef u t u r er e s e a r c h k e yw o r d s :m o b i l em u l t i m e d i a , b r o a d c a s t i n g ,c m m b ,d e m u l t i p l e x i n g , d i r e c t s h o w 第一章绪论 第一章绪论 1 1 中国移动多媒体广播( c m m b ) 技术 1 1 1 移动多媒体广播技术介绍 移动多媒体广播技术主要是指面向移动终端设备如车载接收机、p d a 、手机、 便携电子设备广播等,主要传送实时的音视频内容、数据、多媒体增值业务等内 容的广播电视新技术。目前,移动多媒体广播技术的发展已引起了业界的高度重 视,而且这项新技术的应用已成为一个新的业务增长点,成为带动通讯产业和广 电发展的一个新的链条,成为近年来广播电视技术发展的一个必然趋势。移动多 媒体广播技术最大的优点在于它已突破了原有的看电视必须在固定地点的局限。 目前,亚洲、欧洲、美洲是全球移动多媒体广播业务的三大重点市场,它们各自 呈现出不同的发展趋势和特征:目前,欧洲手机电视采用的主流标准是d v b h 数 字广播标准:而亚洲的日本是最早提出的并实践手机电视概念的国家之一,亚洲 的韩国则推出了d m b 移动多媒体广播技术,该项技术是以欧洲d a b 广播为基础的; 相比较欧洲和亚洲,美洲的移动多媒体技术发展稍缓一些,但近几年也已经呈现 出迅猛发展的势头。 移动多媒体广播系统的技术特点一般可以概括以下几个方面:在播出的内容 方面,要求移动多媒体播出的内容应尽量同时满足多种不同的终端的显示的需 要,而且它的应用应建立在使用近年来各种新兴的i t 技术的基础上;同时要求 支持内容的交互、内容的交换、内容的保护、条件接收等多方面的需要;同时要 求移动多媒体广播技术能够同时满足不同的接收条件如室内接收机固定接收条 件、各种室外便携接收机的接收条件以及车载接收机高速移动接收的条件;最后 要求在接收机方面,应该尽量优化显示格式、节目切换时间、功耗等方面来满足 延长播放时间和交互业务的需要。 从移动多媒体广播技术标准方面来看,国外已经提出的并且能够实现手持移 动多媒体广播的技术和方案主要有以下七种,即t - d m b 技术、d v b h 技术、 m e d i a f l o 技术、s - d m b 技术、i s d b - t 技术、阿尔卡特手机电视方案和 m b m s ( m u l t i m e d i ab r o a d c a s t i n g m u l t i c a s ts e r v i c e ) 方案。其中阿尔卡特手机 电视方案以及s - d m b 技术是基于卫星传输方案的移动多媒体广播技术;而t - d m b 技术、m e d i a f l o 、d v b - h 技术和i s d b - t 技术是基于地面广播网的移动多媒体技 第一章绪论 术;m b m s 是基于移动通信网络的移动多媒体技术。 我国的移动多媒体广播技术的发展也很迅速,我国也在2 0 0 6 年1 0 月2 4 日, 正式的颁布了中国移动多媒体广播的行业标准,并确定采用我国拥有自主知识产 权的移动多媒体广播技术做为行业标准。中国移动多媒体广播( c h i n am o b i l e m u l t i m e d i ab r o a d c a s t i n g ) 简称为c m m b 。中国移动多媒体广播规定了在广播业 务频率范围内,移动多媒体广播系统广播信道传输信号的帧结构、信道编码和调 制,该标准适用于3 0 m h z 到3 0 0 0 m h z 频率范围内的广播业务频率,通过卫星和 或地面无线发射电视、广播、数据信息等多媒体信号的广播系统,可以实现全国 漫游。 1 1 2 中国移动多媒体技术 1 1 2 1 中国移动多媒体技术的发展 中国移动多媒体广播系统是国内自主研发的第一套移动多媒体广播系统,该 系统主要面向手机、数码相机、m p 3 、p d a 、m p 4 、笔记本电脑等多种移动终端的。 该系统利用s 波段信号来实现“天地”一体的覆盖及全国漫游的,它支持3 0 套 广播节目及2 5 套电视节目。 c m m b 系统原理如下:中国移动多媒体广播技术采用大功率s 波段卫星信号来 覆盖全国的,对于卫星信号盲区则主要采用地面增补转发器转发同频同时同内容 的卫星信号补点技术来覆盖的。同时采用无线移动通信网络来构建回传通道的, 这样就组成了双向交互和单向广播相结合的移动多媒体广播网络的。首先地面发 射中心将信号发射给s 波段的同步卫星,接着同步卫星转发接收到的信号,最后 地面的接收终端直接接收转发后的s 波段信号。对于卫星信号盲区的地面的接收 终端可以接收通过增补转发器处理后的信号。事实上:地面的接收终端可以接收 到四种信号:s 波段的卫星信号、u 波段的地面覆盖信号、s 波段的地面增补的信 号、u 波段的地面覆盖的同频的转发的信号晗1 。 移动多媒体广播系统主要由以下几部分组成的:节目的集成与播出系统、地 面覆盖网络系统、卫星传输系统、加密授权系统、双向交互网络系统、运营支撑 系统、终端系统等1 。如图1 - 1 移动多媒体广播电视系统示意图,展示了一个移 动多媒体系统框图。 中国移动多媒体的发展是很迅速的。国家广电总局子2 0 0 6 年1 0 月2 4 日, 正式颁布了中国移动多媒体广播的行业标准,同时确定采用由我国自主研发移动 多媒体广播标准作为行业标准。 自2 0 0 7 年8 月起,c m m b 已在北京、沈阳、青岛、秦皇岛、上海、天津6 个 第一章绪论 奥运城市,以及广州、深圳一共8 个城市开通了c m m b 发射基站,开展了地面网 络的覆盖工作。而2 0 0 8 年7 月1 1 日,西藏拉萨c m m b 节目的正式播出,标志着 全国3 7 个城市的c 删b 网络覆盖工程已经顺利的完成。随着时间的推移,c 删b 的网络会不断地得到优化、前端到终端设备会得到不断的完善。 图1 1 移动多媒体广播电视系统示意图 目前已有1 8 0 多家企业参与c m m b 项目中来。其中仅芯片供应商就有几十家 企业如创毅视讯、展讯、泰合志恒、s i a n o 等,终端方面也有许多i t 行业的巨 头参与进来,如联想、中兴通讯、移动、华旗资讯等。c 帅的产业化进程正在 如火如荼的进行中,其中在产业化进程中至关重要的因素是解调芯片的研发、网 络及终端的支持。在2 0 0 7 年时,创毅视讯首次研制出支持c m m b 标准的终端信道 解调芯片,c 删b 产业发展进入到一个新的时期。在2 0 0 8 年科博会上,包括上海 展讯、泰合志恒、s i a n o 和中科院微电子所等的多家单位都展示了自己研发的 c m m b 解调芯片。伴随着解调芯片的成功研制,包括手机、g p s 、p m p 、s d - d o n g l e 、 u s b - d o n g l e 等多种类型的终端接收机相继研发成功,c m m b 产业的发展得到了进 一步的发展。 在终端技术研究的同时,国家广电总局也于2 0 0 8 年7 月2 2 日起,正式启动 对移动多媒体广播接收解码终端的质量认定工作。截至当年8 月底,已有6 家企 业共9 个型号的接收终端通过了广电总局的质量认定。 而在2 0 0 8 年北京奥运会期间,国家广电总局在奥运场馆及周边提供了完善 的c m m b 服务。同时围绕奥运这个主题,开展了多项c 删b 技术的推广活动如c m m b 知识普及、终端体验。人们从对c m m b 认识有了进一步的提高,逐渐由陌生到有 第一章绪论 了初步的了解。还有一部分人已经亲身体验了c m m b 终端所带来的享受。c m m b 终 端作为c m m b 产业链中的核心环节的一部分,它的发展正受到了越来越多的人们 的关注。目前,前期的多种技术储备已经转化成了试用产品,c m m b 产业的运营 正蓄势待发。在这样的大环境下,c m m b 产业会迎来更加迅速的发展。 1 1 2 2 中国移动多媒体广播技术的特点 作为中国移动多媒体标准的c m m b 和其他国际的移动多媒体标准相比较,有 自己的一些特点。中国移动多媒体广播技术的主要特点有:( 1 ) c 删b 是数字电 视技术的一种,和其他数字电视技术一样,它也采用先进的编码、调制、压缩等 数字技术。但是它面向的终端设备是主要是7 寸以下的小尺寸屏幕的便携接收终 端。并且为其提供音视频及数据广播等服务。具有传统数字电视所不具备的技术 特点如移动接收、高效省电等。( 2 ) c m m b 面向终端种类广泛且经济实用。只要 在各种小屏幕便携终端如手机、m p 3 、数码相机、p d a 、m p 4 、笔记本电脑等或者 在汽车、轮船、火车、飞机上的小型接收终端中加装了接收c m m b 信号的功能模 块,就可享受c m m b 所提供的各种服务,随时随地的看电视。( 3 ) c m m b 是我国自 主研发的移动多媒体广播电视技术,具有自己的自主知识产权。和国外的其他的 一些手机电视技术如美国的m e d i a f l o 、韩国的t - d m b 、欧洲的d v b h 等相比,c m m b 具有图像清晰流畅、支持多种业务、组网方便灵活等众多优点。c m m b 的多项技 术特别是在终端省电方面的技术已经达到国际先进水平。( 4 ) c m m b 技术组网方 式简单、建网的成本比较低,基本上利用现在已有广播电视覆盖网的基础设施来 建设地面的覆盖网的,然后通过卫星和地面网络形成了“天地一体”的覆盖网 络,最终达到无缝覆盖的目标,容易迅速普及。( 5 ) c m m b 系统具备双向式、广 播式服务的功能,不仅可以提供综合信息、数字广播电视节目及紧急广播服务, 还可以进行点播、电子杂志、推送等业务,而且还可以提供股票、缴费、购物、 游戏等多种增值服务。c m m b 系统可以具备加密授权控制管理的体系,采用中央 和地方相结合,全国统一标准和统一运营,从而支持用户全国的漫游。 1 2 选题的背景和意义 对于处在迅速发展的c m m b 产业链来说,c m m b 终端系统的发展是处在产业的 核心地位。而c m m b 终端系统的很重要的一个研究内容就是c m m b 复用码流的解码 显示。因为解码及显示部分是直接和c m m b 用户进行交互的,对于用户的体验至 关重要。对这个方面的内容的研究和实现,既可以为c m m b 用户观看c m m b 节目提 供一个观看的工具。也可以为芯片研发厂家调试芯片提供一个调试工具,甚至还 第一章绪论 可以作为c 删b 终端信号监测的一个工具。同时由于中国移动多媒体码流复用结 构的特殊性,目前大多数主流播放器都不能支持其播放。因此,本课题是一个有 一定挑战意义的课题。所以对c e v l b 复用码流解码显示的研究具有十分重要意义 的,对推动终端技术的发展有十分重要的意义。 1 3 课题主要内容 本文主要分为五章,各个章节的主要内容安排如下: 第一章:主要讲述了移动多媒体技术的发展、技术特点、存在的几种标准和 中国移动多媒体广播系统构成、特点及发展现状。 第二章:主要讲了中国移动多媒体广播标准复用部分,讲述了复用的结构、 音视频r t p 负载结构及解复用的流程。 第三章:主要讲述了c o m 技术,d i r e c t s h o w 技术的架构、f il t e r 原理及一 般d i r e c t s h o w 应用程序开发的流程,并设计出基于d i r e c t s h o w 的多媒体播放器。 第四章:主要讲述软件解码库的设计、s i a n o 的解调芯片及软件开发包的使 用、基于s i a n o 解调芯片和软件开发包的简单播放器的设计、多路解码播放器的 设计。 第五章:主要讲了测试结果,并对实验结果进行了总结和展望。 第二章c m m b 码流解复用关键技术 第二章c m m b 码流解复用关键技术 2 1c m m b 系统层复用技术 复用技术主要应用在移动多媒体广播的前端系统中。复用的功能是完成音 频、视频、数据、电子业务指南等信息的封装和排列,使这些信息能够在移动多 媒体广播信道上传送,系统框图见图2 - 1 。同一复用子帧中封装着同一个业务的 音视频原始流和数据流。一些辅助信息如电子业务指南、用户管理等,被分别封 装在不同的复用子帧中去,控制信息则被封装在专用的复用帧中。 r 一一一一i i l i i i i i i i i i i i 1 一- - j l i i i i : i 信道处理i 。 i i i i 一1 i i l i i i i i i i i i i i l i j 图2 1 复用在移动多媒体广播前端系统中的位置 一般来说1 秒有1 个广播信道帧,多个复用帧构成1 个广播信道帧。1 个广 播信道帧支持4 0 个时隙n 3 。1 个复用帧可以包含整数个时隙,所以1 个广播信道 帧可以包含最多4 0 个复用帧,复用帧和广播信道帧的关系见图2 - 2 。 一个复用帧由复用帧头、复用帧净荷和填充部分组成的,每个复用帧由m f i d 唯一标识哺1 。由于1 个广播信道帧最多支持4 0 个复用帧,所以m f _ i d 取值范围为 0 - 3 9 ,其中虹i d = = 0 的复用帧用于承载控制信息,其它的复用帧用于承载c m m b 业务信息,填充部分使用0 x f f 填充。复用帧净荷由一个或多个复用子帧组成, 最多包括1 5 个复用子帧。通常情况下一个子帧对应一个业务,封装着同一业务 的音视频e s 流和数据流,复用帧的结构如图2 - 2 所示,复用帧头的结构如图2 - 3 第一二章c m m b 码流解复用关键技术 所示。 复用子帧l复用子帧2复用子帧n 复用帧头 复用帧净荷填充 一 复用帧0复用帧i复用帧0 控制信息业务数据 复用帧n 业务数据 控制信息 广播信道讯 n t r a n s f o r mf i l t e r s d r e n d e r i n gf i l t e r s ,注 意这里设s o u r c ef i l t e r s 是一个工作在推模式的非实时源情况下的f i l t e r 。当 f i l t e r 链路从停止状态向暂停状态转换时,s o u r c ef i l t e r s 首先启动数据线程, 且会调用t r a n s f o r mf il t e r s 的输入p i n 的i m e m i n p u t p i n :r e c e i v e 函数把码流 数据传递给t r a n s f o r mf i l t e r s ,当然数据之间的传递是以s a m p l e 的形式传递 的。一般来说t r a n s f o r mf il t e r s 会借助s o u r c ef il t e r s 的数据线程或者自己 创建自己的工作线程处理码流数据,并把数据传递下去。此时v i d e or e n d e r 已经 处于暂停状态,接收到第一个s a m p l e 后,它首先把线程阻塞住,然后将这个 s a m p l e 视频帧显示在窗口。当f il t e r 链路从暂停转向运行时,v i d e or e n d e r 只 需要把数据线程脱离阻塞状态即可,整个f il t e r 链路会继续转起来。此时v i d e o r e n d e r 会首先显示在暂停状态下阻塞接收的s a m p l e 帧,然后接收到新的s a m p l e 时会按照s a m p l e 上打的时间戳来安排显示。如果s a m p l e 上的时间戳和当前链路 的参考时间一比较,s a m p l e 的数据超前的话,则v i d e or e n d e r e r 会将阻塞输入 的p i n 的r e c e i v e 函数一直到当前s a m p l e 的开始时间,如果滞后的话,应该加 快播放。对f i l t e r 链路状态转换来说,f i l t e r 的状态转换的顺序是一个很重要 的方面,处理不好会造成f i l t e r 链路的死锁或者s a m p l e 的丢失。实际上 d i r e c t s h o w 采用了一种自下而上的回溯的方法,即首先是上游的r e n d e r i n g f i l t e r s 的状态转换,然后是t r a n s f o r mf i l t e r s 最后是s o u r c ef i l t e r s 。 具体分析其过程如下:从停止状态到暂停状态,首先是r e n d e r i n gf i l t e r 进入暂停状态的转换,所有的f il t e r 都会调用自己所有的p i n 上的a c t i v e 函数 完成s a m p l e 内存的分配和初始化,同时s o u r c ef i l t e s 会启动自己的数据线程, 向下游的f il t e r 发送一个s a m p l e ,一旦r e n d e r i n gf i l t e r 接收到第一个s a m p l e 就把整个线程阻塞住,到此整个状态的转换就完成了,整个f il t e r 链路处于一 种就绪的状态。从暂停到停止,当f il t e r 进入到停止状态和进入暂停的状态相 反,所有的f i l t e r 调用自己所有的p i n 上的i n a c t i v e 函数,释放s a m p l e 的内 存,s o u r c ef il t e r s 销毁自己的数据线程。前提条件是:从r e n d e r i n gf i l t e r s 到s o u r c ef i l t e r s 一级一级脱离阻塞等的状态,所有的阻塞等的r e c e i v e 函数 都能返回,同时拒绝接收新的s a m p l e 。 多媒体处理。音视频的同步问题是一个不可避免的问题。在d i r e c t s h o w 技术 第三章多媒体数据播放技术 中也有对音视频同步的处理的部分。基本原理如下:在d i r e c t s h o w 系统中最为核 心的部分是f i l t e rg r a p hm a n a g e r 。它起到一个承上启下的作用,向下对f i l t e r 链路中的所有f i l t e r 的工作状态进行控制,向上为应用程序模块提供编程所需的 接口。对音视频的同步处理,就是f il t e rg r a p hm a n a g e r 实现的众多功能之一。 通俗的说,先要选定一个公用的参考时钟,同时要求f i l t e r 之间的数据传递时必 须包含时间信息,也就是说每个s a m p l e 都必须打上时间戳。最后,a u d i or e n d e r e r 或v i d e or e n d e r e r 会根据接收到的s a m p l e 的时间戳控制播放。如果到达的s a m p l e 和参考时间相比,提前到达了,就阻塞等待到时间戳上的时间再播放,反之就加 快s a m p l e 的播放,在这个过程中还包含着一个p 4 q u a li t yc o n t r o l 的反馈机制。 q u a l i t yc o n t r o l 基本原理是r e n d e r i n gf i l t e r s 发现数据线程发送数据速度太慢 时,需要向上游的f i l t e r 发送一个消息,要求加快发送速度,反之如果太快的话 要求降低发送速度,从而达到一种适度的速度。参考时钟的计时精度是l o o n s 。 所有能够提供参考时钟的对象必须支持i r e f e r e n c ec l o c k 接口。 d i r e c t s h o w 技术中参考时钟的选取遵循下列原则:第一,如果应用程序模块 提供了参考时钟,则会直接使用这个参考时钟。第二,如果f i l t e r 链路中有l i v e s o u r c e ,并且这个l i v es o u r c e 支持i r e f e r e n c e c l o c k 接口,那么就选择此l i v e s o u r c e 来作为参考时钟。第三,如果没有l i v es o u r c e ,则从r e n d e r i n gf i l t e r s 开始往上游依次寻找第一个实现i r e f e r e n c e c l o c k 接口的f il t e r ,如果还是找 不到的话,则考虑从没有连接的f i l t e r 中选择一个。如果f i l t e r 链路中含有 a u d i or e n d e r ,则直接选择a u d i or e n d e r e r 作为参考时钟。第四,如果上述的 方法都不能找到一个合适的f i l t e r ,则需要自己创建一个c l s i d _ s y s t e m c l o c k 的c o m 组件,作为参考时钟。关于s a m p l e 的时间戳( t i m es t a m p ) 问题,在 d i r e c t s h o w 技术中,每个s a m p l e 上可以设置的时间戳分为两种,一种通过调用 i m e d i a s a m p l e :s e t t i m e 来设置的,r e n d e r i n gf i l t e r s 主要是依据这个时间戳 来控制码流数据的播放的,和另一种是通过调用i m e d i as a m p l e :s e t m e d i a t i m e 来设置的,这个时间戳的意义不大,主要是告诉下游的f i l t e r 是否有s a m p l e 丢 失,通常情况下是依次打上递增的序号就可以了。事实上并非所有的s a m p l e 都 必须打上时间戳的。比如说对于一些压缩的码流数据来说,打时间戳是一件很困 难的且意义也不大的事情。在码流数据到达r e n d e r i n gf il t e r 之前,一般都已 经打上了时间戳。当r e n d e r i n gf i l t e r s 接收到s a m p l e 时,首先将s a m p l e 的开 始时间和当前的参考时间相比。如果来得早了就调用i r e f e r e n c e c l o c k 接口的 i r e f e r e n c e c l o c k :a d v i s e t i m e 等函数进行调整,等到达s a m p l e 的开始时间时 播放这个s a m p l e 。如果来晚了,则马上播放当前的s a m p l e 。s a m p l e 上的时间戳 一般由推模式的s o u r c ef i1 t e r 或拉模式的p a r s e rf il t e r 来设置。 第三章多媒体数据播放技术 3 2 3d i r e c t s h o w 的软件开发的流程 因为d i r e c t s h o w 技术是基于c o m 技术的,所以d i r e c t s h o w 应用程序的开发 也就是c o m 的客户程序的开发。在调用任何c o m 函数或者开发任何c o m 组件之前 需要做的一件事,就是通过调用函数c o i n i t i a l i z e ( e x ) 对c o m 库进行初始化。 同时在结束c o m 使用时调用c o u n i n i t i a l i z e 进行反初始化。d i r e c t s h o w 应用程 序的开发一般可分为三步: 第一步,创建f i l t e rg r a p hm a n a g e r 组件,一般通过调用函数 c o c r e a t e l n s t a n c e 即可完成创建; 第二步:创建一条完整的f i i t e r 链路。 第三步,调用各个接口方法对f i l t e r 链路进行控制,并且完成应用程序与 f ilt e rg r a p hm a n a g e r 间的事件交互。 对于第二步,组建f il t e r 链路的过程,就是寻找合适的f il t e r ,添加到 f i i t e r g r a p h ,并对f i l t e r 进行顺序连接的过程。方法1 ,已知源文件名和已经 注册的必要的f i l t e r ,调用i g r a p h b u i l d e r :r e n d e r f i l e 函数,该方法会根据 文件源格式自动寻找并加入必要的f i l t e r ,构成f il t e r 链路;方法2 ,已知部 分f i l t e r 链路,也即没有构成完整的f i l t e r 链路缺少r e n d e r i n gf i l t e r s 等, 和这个链路最下游的f i l t e r 的输出p i n ,可以调用i g r a p h b u i l d e r :r e n d e r 函 数,该方法能自动完成未完成的f i l t e r 链路。方法3 ,已知所有的f i l t e r 对象 和输入、输出p i n ,可以通过两两f i l t e r 相连构成链路,具体方法是,首先调 用i f i l t e r g r a p h :a d d f i l t e r 函数将所有的f i l t e r 加入到f i l t e rg r a p h ,然 后按照f i l t e r 的顺序,调用i f i l t e r g r a p h :c o n n e c t 将上游f i l t e r 的输出p i n 和下游f i l t e r 的输入p i n 连接起来,构成完整的链路。对于第三步来说,d i r e c t s h o w 技术是以c o m 技术为基础的,所具有的功能、服务只能通过相应的c o m 接 口来执行实现,以下是d i r e c t s h o w 提供的一些重要接口: i f i i t e r g r a p h 接口,主要为构建和控制f il t e r 链路提供了一个方法。 i g r a p h b u i l d e r 接口,作用基本上同i f i l t e r g r a p h 上,从i f i i t e r g r a p h 继承而来能够提供更多的接口方法。 i c a p t u r e g r a p h b u i l d e r 2 接口,主要用于创建并控制捕获图。 i s a m p l e g r a b b e r c b 接口,是捕获图像接口,主要用于抓图控制,用于当 码流数据通过f i l t e r 时进行采样以获得帧图像。 i m e d i a c o n t r o l 接口。主要用来提供播放控制接口,如停止、暂停、播 放等。 i m e d i a e v e n t e x 接口,主要用来捕获f i l t e r 链路的一些消息,应用层通 第三章多媒体数据播放技术 过此接口可以获取f i l t e r g r a p h 的消息。 i m e d i a p o s i t i o n 接口,主要提供播放速度、播放位置的控制接口。 i b a s e f i l t e r 接口,d i r e c t s h o w 所有的f 订t e r 都必须支持的接口。 i b a s e a u d i o 接口,声音控制接口如音量大小等信息的控制。 i b a s e y i d e o 接口,基本视频控制接口,提供视频的比特率、分辨率等信 息。 i e n u m p i n s 接口,用来枚举f il t e r 上所有的p i n 。 i p i n 接口,所有的p i n 必须支持的基本接口。 i v i d e o w i n d o w 接口,用于控制视频窗口的属性,如窗口位置等。 3 3 基于d i r e c t s h o w 技术多媒体播放器设计 本篇将介绍一个简单的多媒体播放器的设计过程,多媒体播放器主要提供以 下功能:打开、播放、暂停、停止、抓图、全屏等。播放器的界面如图3 - 5 所示: 打开:打开一个媒体文件,并播放。具体实现流程如下: 1 ) 从界面获取文件名和路径名。 2 ) 创建播放控制类的实例,创建i g r a p h b u i l d e r 、i m c d i a e v e n t e x 、i m c d i a c o n t r o l ,i b a s i c v i d e o ,i b a s i c a u d i o ,i v i d e o w i n d o w ,i m e d i a s e e k i n g 接口实例。 3 ) 调用i g r a p h b u i l d e r 接口的r e n d e r f i l e 函数,创建播放链路。 4 1 调用i v i d e o w i n d o w 接口的相关函数设置视频窗口的大小、位置等属 性。调用i m e d i a e v e n t e x 接口的s e t n o t i f y r w i n d o w 来注册一个窗口 处理f i l t e r 链路传过来的消息。 5 ) 调用i m c d i a c o n t r o l 接口的p a u s e 函数,暂停播放链路的播放。 矿 矿 矿 矿 矿 y y 第三章多媒体数据播放技术 圈鱼划j 堕卫生墨旦堂 图3 - 5 多媒体播放器示意图 播放停止暂停:启动停止暂停播放器的播放。主要调用i m c d i a c o n t r o l 接 口的r u n s t o p p a u s e 函数来实现的。 全屏:主要控制播放的全屏播放和退出全屏播放。调用i v i d e o w i n d o w 接口 的p u t函数实现的。fullscreenmode 抓图:完成对播放的媒体文件的视频抓图。主要调用i b a s i c v i d e o 接口的 g e t c u r r e n t l m a g e 函数实现的。 从理论上讲,只要系统内有足够的解码f i1 t e r 的支持,该简单播放器可以 播放所有格式的媒体文件。对于c m m b 的复用流来说,由于没有对应的解复用的 f i l t e r ,所以本播放器不能支持对c 删b 复用流的播放。第四章将重点来解决c m m b 复用流的播放问题。 第四章c m m b 软件播放器设计 第四章c m m b 软件播放器设计 4 1 软件解码模块整体设计 软件解码模块的基本要求是,提供以下接口:创建播放模块实例、播放、停 止、暂停、全屏、设置视频窗口位置、控制音量大小、同步注入码流数据并播放 等接口。提供以下功能:播放c m m b 的码流文件;同步注入码流播放;播放的开 始、停止、暂停和全屏控制;音量的控制等功能,在这里将解码库的接口部分封 装成一个c + + 的类。 首先考虑要实现中国移动多媒体复用码流文件也即m f s 文件的解码播放。按 照d i r e c t s h o w 标准,对于文件流需要构建以下的f i l t e r 的链路: a a c 码流p c m 码漉 a a c a u d i o r c n & r d e c o m p r e s s o r 图4 - 1m f s 文件流的f i l t e r 链路 各部分f il t e r 的功能如下:f il es o u r c e 是工作在拉模式的文件流的s o u r c e f i l t e r s ,主要负责获取从文件中读取m f s 码流数据并把码流数据以s a m p l e 的形 式发送到下一级f i l t e r :而m f ss p l i t e r 主要负责接收m f s 码流,并分离出音 视频数据,把音视频数据以s a m p l e 的形式分别推到下一级的f i l t e r ,注意这个 m f ss p l i t e r 需要支持拉模式;2 6 4d e c o m p r e s s o r 主要负责将2 6 4 码流解码成 y u v 视频流以s a m p l e 的形式推到下一级的f il t e r ;a r cd e c o m p r e s s o r 负责将a a c 码流解码成p c m 音频流并将其封装成s a m p l e 包,推到下一级f il t e r :最后v i d e o r e n d e r 负责接收已解码的视频码流并显示;a u d i o r e n d e r 负责接收已解码的音频 并播放。 对于实时码流的解码播放应该构建以下的f il t e r 链路: 第四章c m m b 软件播放器设计 m f s 码流 2 6 4 码流 a a c 码 y u v 码流 p c m 码流 图4 - 2 实时流的f i l t e r 链路 各部分f i l t e r 的功能如下:l i v es o u r c e 主要负责获取实时码流,并把m f s 码流以s a m p l e 的形式推下去,需要注意l i v es o u r c e 工作在推的模式下:m f s s p l i t t e r 和文件模式的m f ss p l i t t e r 的功能是一样的,但实现是不同的,这里 的m f ss p l i t t e r 需要支持推模式:后续的f i l t e r 跟文件流的f i l t e r 的功能是 一致的。在这里,需要清楚l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论