已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)基于blackfin平台的嵌入式播放器的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着嵌入式与数字多媒体技术的发展,嵌入式播放器已经成为当前研究的一 个技术热点,但由于嵌入式设备资源的有限性使得嵌入式播放器的开发难度远远 高于p c 播放器。目前国内自主研发的嵌入式播放器分辨率低,流畅度差,而国外 n 公司提供的高质量嵌入式播放器虽然在分辨率和流畅度上都有很大的优势,但 是价格相对太高。基于这些原因,提供一种价格低廉的高性能嵌入式播放器的解 决方案成为了本项目的出发点。 本文设计的嵌入式播放器解决方案采用了高性能的d s p 处理芯片b l a c k f i n 5 6 1 做嵌入式处理器,u c l i n u x 做嵌入式操作系统,实现了a v i ( 视频为m p e g 4 ,音 频为m p 3 ) 文件与r e a l m e d i a ( 蹦和r m v b ) 文件在中等分辨率( 5 1 2 3 8 4 ) 的 流畅播放和在d 1 画质( 分辨率7 2 0 5 7 6 ) 的较流畅播放。 本文首先对嵌入式播放器框架进行了整体的分析,根据播放器软件的需求, 对播放器软件的各个模块进行了分析和设计,实现了播放器音视频的分离、解码 和同步播放。然后对播放器软件和音视频解码器进行优化。最后搭建了完整的嵌 入式播放器系统。 本文的主要工作如下: ( 1 ) 对r e a l m e d i a 文件格式和a v i 文件格式进行了深入的研究,设计并实现 了a v i 文件解析器和多媒体播放器。 ( 2 ) 深入研究了m p e g 4 编解码原理,为解码器的优化提供了理论知识。 ( 3 ) 研究了b l a c k f i n 相关知识和b l a c k f r o 平台下代码优化的原理,然后针对 b l a c k f i n 平台进行了多媒体播放器和音视频解码库的c 语言级和汇编级的代码优 化。 ( 4 ) 根据硬件特性编写了f r a m e b u f f e r 驱动,进行了b o o f l o a d e r 和u c l i n u x 的 移植,完成了完整的嵌入式播放器系统。 关键词:嵌入式,播放器,b l a c k f i n 5 6 1 ,优化 a b s t r a c t a b s tr a o t w i t ht h ed e v e l o p m e n to fe m b e d d e dt e c h n o l o g ya n dd i g i t a lm u l t i m e d i at e c h n o l o g y , t h er e s e a r c ho fe m b e d d e dm e d i ap l a y e r sh a sb e c o m eah o tf i e l d d e v e l o p i n gm e d i a p l a y e r sf o re m b e d d e dd e v i c e si sm u c hm o r ed i f f i c u l tt h a np cp l a t f o r mb e c a u s eo f l i m i t e dr e s o u r c e so ne m b e d d e dd e v i c e s n o w a d a y s ,t h ee m b e d d e dm e d i ap l a y e r s d e v e l o p e db yd o m e s t i cc o m p a n i e so n l yc a np l a yl o w r e s o l u t i o nv i d e o ,a n di t sf l u e n c yi s p o o r h o w e v e r , t h ep r o d u c t i o n sd e v e l o p e db yf o 崩印i tc o m p a n i e sh a v eag r e a t a d v a n t a g eo nr e s o l u t i o na n df l u e n c y , b u tt h o s ep r i c e sa r et o oh i 曲f o rt h e s er e a s o n s ,t o p r o v i d eas o l u t i o no fe m b e d d e dm e d i ap l a y e r sw i t hl o wp r i c ea n dh i g hp e r f o r m a n c e i s t h eg o a lo ft h i sp r o je c t t h es o l u t i o nw ed e s i g n e di nt h i st h e s i st a k e sh i g h - p e r f o r m a n c ed s pc h i p b l a c k f i n 5 61a st h ee m b e d d e dp r o c e s s o r , a n du c l i n u xa st h ee m b e d d e do s i ti sa b l et o p l a yt h ea v i ( v i d e oe n c o d e da sm p e g - 4 ,a u d i oe n c o d e da sm p 3 ) a n dr e a l m e d i a ( r m a n dr m v b ) f i l e so ft h em e d i u mr e s o l u t i o n ( 512 宰3 8 4 ) f l u e n t l y f u r t h e r m o r e ,i ta l s oh a s g o o dp e r f o r m a n c ew h e np l a y i n gt h em e d i af i l eo f t h ed 1 ( 7 2 0 书5 7 6 ) r e s o l u t i o n f i r s t l y , w ea n a l y z et h ef r a m e w o r ko fe m b e d d e dm e d i ap l a y e r s ,d e s i g ne a c hm o d u l e o ft h em e d i ap l a y e ra c c o r d i n gt ot h er e q u i r e m e n t s ,a n di m p l e m e n tt h ed e m u l t i p l e x i n g , d e c o d i n ga n ds y n c h r o n o u sp l a y b a c ko fa u d i oa n dv i d e o t h e n ,w eo p t i m i z et h em e d i a p l a y e ra n dt h ed e c o d e r so fa u d i oa n dv i d e o f i n a l l y , w eb u i l da ni n t e g r a t e ds y s t e mo f t h ee m b e d d e dm e d i ap l a y e r i nc o n c l u s i o n ,t h i st h e s i s sc o n t r i b u t i o n sf o c u so n : i d e e p l yr e s e a r c ho nt h er e a l m e d i aa n da v if i l ef o r m a t ,a n dd e s i g nad e m u xf o r t h ea v i f i l e ,t h e nd e s i g na n di m p l e m e n tt h em u l t i m e d i ap l a y e r 2 d e e p l yr e s e a r c ho nt h ec o d e ct h e o r i e so fm p e g - 4i no r d e rt oo p t i m i z ed e c o d e r 3 r e s e a r c ho nr e l a t e dk n o w l e d g ea n dt h ep r i n c i p l eo f o p t i m i z a t i o no nt h eb l a c k f i n p l a t f o r m ,t h e no p t i m i z et h em u l t i m e d i ap l a y e ra n dt h ed e c o d e ro fa u d i oa n dv i d e oa tc l a n g u a g el e v e la n da s s e m b l el a n g u a g el e v e l 4 d e v e l o pt h ef r a m e b u f f e rd r i v e rf o rb l a c k f i n 5 61 ,t r a n s p l a n tt h eb o o t l o a d e ra n d u c l i n u x ,a n df i n i s ht h ee m b e d d e dm e d i ap l a y e rs y s t e m n a b s t r a c t k e y w o r d s :e m b e d d e ds y s t e m ,m e d i ap l a y e r , b l a c k f i n 5 61 ,o p t i m i z a t i o n i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:巧年月多日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:翌趁导师签名: 日期:沙9 7 年彳月夕日 第一章绪论 1 1研究背景及意义 第一章绪论弟一早珀下匕 随着科学技术的发展和人民生活水平的提高,家庭娱乐设施的功能得到了不 断的增强,人们开始慢慢不满足现有便携式娱乐产品的功能。各大便携式设备厂 商都推出了各种功能更多、速度更快的便携式娱乐电子产品,比如:带数字娱乐 功能的高端手机、p d a ( 个人数字助理) 和各种便携式多媒体播放器( p m p ) 产品, 其中目前最流行的为m p 3 音频播放器和m p 4 视频播放器等。伴随着这些新产品 的推出,人们也开始有了更多的要求,比如希望播放器的尺寸更小,价格更低, 能够更流畅的播放多媒体文件,实时性好等【l 】 目前很多公司都推出了各种各样的p c 平台播放器,这些播放器大多都有各 种强大的播放功能,而且提供给用户各种漂亮易用的操作界面。但是在嵌入式平 台,因为其资源的有限性,比如嵌入式处理器的运算速度不够高,运行内存不够 大等,造成了嵌入式媒体播放器的设计难度远远大于p c 平台。目前市场上由国 内r r 公司自主开发的嵌入式媒体播放器虽然价格低廉,但是分辨率都比较低,播 放速度不太流畅,用户体验较差;而使用国外i t 公司解决方案的嵌入式媒体播放 器在分辨率和播放速度上都比国内嵌入式播放器有很大的提高,但是缺点是价格 偏高。 因此开发出一个价格低廉,功能实用,运行速度快,支持主流多媒体格式的 嵌入式播放器就成为了实验室立项本项目的出发点。本文在研究现有多媒体播放 器的基础上,选用a d i 公司的b l a c k f m 5 6 1 做嵌入式处理器,u c l i l l l i x 做为嵌入式 操作系统,m i n i g u i 做用户界面支持系统进行嵌入式多媒体播放器的开发,实现 了a v i ( 视频为m p e g 4 ,音频为m p 3 ) 文件与r e a l m e d i a ( i 泓和r m v b ) 文 件在中等分辨率( 5 1 2 3 8 4 ) 的流畅播放和在d 1 画质( 分辨率7 2 0 5 7 6 ) 的较 流畅播放。 1 2国内外研究现状 自从1 9 9 9 年全球第一台m p 3 播放器问世以来,全世界的电子消费市场便开 电子科技大学硕士学位论文 始飞速增长,自此以后各种便携式娱乐产品层出不穷。2 0 0 2 年,法国爱可视公司 推出了全球第一款便携式m p 4 播放器,它在m p 3 功能的基础上增加了视频播放 器功能,因此在市场上大受欢迎。各硬件厂商为了在p m p 市场上获取更多的利益, 不断的推出了各种速度更快,支持音视频格式更多,功能更强大的嵌入式播放器 解决方案。 本项目立项之初,项目组分析了许多国内外的嵌入式播放器的解决方案,其 中最为流行的解决方案有以下几个: ( 1 ) s i g m a d e s i g n s 公司的8 5 x x 解决方案【z j s i g r n a d e s i g n s 公司根据p m p 产品的需求设计并生产了e m 8 5 x x 系列的视频 解码芯片,该芯片采用了双核技术与硬解压技术,而且还同时具有硬盘接口和 c o m p a c tf l a s h 接k i ,是硬盘p m p 的优先选择对象。e m 8 5 x x 方案支持多种多媒 体音视频文件的解码,包括m p e g 1 ,m p e g 2 ,以及使用d i v x 编码器或x v i d 编码器进行编码的m p e g 4 文件。该芯片解码性能非常突出,可以实现以3 0 帧 秒的速度进行d 1 画质的m p e g 2 解码。e m 8 5 x x 整套方案的总成本为1 9 4 美元 左右。但是,该系列芯片不含编码器,所以不能录制视频。如果要在该方案上实 现视频录制,则必须增加额外的编码芯片。该方案还有一点不足之处,解码芯片 不支持r e a l m e d i a 格式的音视频文件,因此无法播放目前非常流行的r m ,r m v b 格式的多媒体文件。 ( 2 ) t id m 3 2 0d s p + a r m 处理器的解决方案【3 j 该方案使用d m 3 2 0 执行音视频编解码工作,但是由于该芯片只具有解码功 能,无法完成系统所需的其它处理功能,所以需要加上一个a r m 芯片来完成上 述功能。该方案可以录制和播放许多不同种类的多媒体文件格式,包括简单框架 的m p e g 4 、高级简单框架的m p e g 4 、w m v 和h 2 6 4 等。采用该方案的播放 器能够以3 0 帧秒的速度录制d 1 画质的简单框架集的m p e g - 4 视频,并且能以 3 0 帧秒的速度播放多种格式的d 1 画质视频文件。另外,该方案还支持多种不同 的存储方式。不过由于该方案需要同时使用d s p 芯片与a r m 处理器,因此它的 成本并不比其它方案便宜,整套方案的总成本为2 0 0 美元左右。而且和其它许多 方案一样,没有提供对目前网络上十分流行的媒体文件r m 和r m v b 格式的支持。 ( 3 ) 飞思卡尔i m x 3 1 解决方案【4 j 飞思卡尔为嵌入式播放器市场推出了基于a r m l l 的i m x 3 1 系列芯片,其多 媒体加速器能够完成独立的预前和预后处理模块。该方案提供对电源的智能管理; 处理器内通过时钟分频进行能量控制;支持m p e g 一4 和h 2 6 3 的编解码,支持播 2 第一章绪论 放速度为3 0 帧秒的c i f ( 分辨率为3 5 2 x 2 8 8 的视频) 和q v g a ( 分辨率为2 4 0 3 2 0 的视频) ,支持图像大小、质量转换的预处理和后处理。该方案为用户提供 了优秀的视频体验,还为用户提供了丰富的外围设备接口。飞思卡尔利用其优秀 的智能速度技术可以增加时钟周期内实际执行指令的条数,使主频为5 3 2m h z 的 处理器可以获得3 g h z 处理器的性能。i m x 3 1 内部还具有一个矢量浮点协处理器 和二级缓存,进一步为系统性能的提升提供了支持。i m x 3 1 系列整套方案的总成 本为1 9 0 美元左右。但是因为i m x 3 1 最初是针对手机而设计的,因此其对音视 频数据解码的性能有限,不能流畅播放m p e g 4 视频,更不能播放m p e g 一2 视频。 ( 4 ) a m da l c h e m y 的解决方案p 1 a m d 推出了基于a l c h e m y a u l 2 0 0 处理器的嵌入式播放器解决方案,该方案 是为了满足用户在便携式设备上观看高质量的音视频文件的要求。该处理器针对 p m p 做了很多的优化,通过这些优化能够为嵌入式播放器提供许多新功能,比如 能够在不降低视频质量的前提下将视频显示到更大的显示屏上。该处理器也提供 对多种音视频文件格式的支持。a u l 2 0 0 方案的优点包括:高性能的处理器,集 成了媒体加速引擎,功耗低。整套方案的成本比其它方案稍微便宜一些,约为1 8 0 美元。缺点是它不支持r m 和r m v b 格式的多媒体文件。 通过分析以上主流嵌入式播放器解决方案发现国外能支持高分辨率多媒体文 件播放的嵌入式播放器成本都较高,而且大多数嵌入式播放器都不支持 r e a l m e d i a 文件格式,因此本项目的目的就是开发一个价格低廉,支持高分辨率 的嵌入式播放器,并且该播放器能够支持流行的r e a l m e d i a 文件格式。 1 3本论文研究内容 本文设计的嵌入式播放器是采用a d i 公司的高端d s p 芯片b l a c k f m 5 6 1 作为 嵌入式微处理器,通过其s p o r t 接口进行音频部分的输出,p p i 接口进行视频部 分的输出,播放的音视频文件存储在外挂的u s b 或者n f s ( 网络文件系统) 中, 多媒体文件目标格式为a v i 和r e a l m e d i a ,其中a v i 的视频流格式为m p e g - 4 , 音频流为m p 3 。本嵌入式多媒体播放器项目使用的嵌入式操作系统为u c l i n u x , 用户界面开发系统使用的是m i n i g u i 。播放器设计的目标是能够以2 5 帧s 的流畅 速度播放c i f 格式的a v i 文件和r e a l 多媒体文件,对中等分辨率( 5 1 2 x3 8 4 ) 的a v i 文件和r e a l 多媒体文件播放也能够达到2 5 帧s 的流畅速度,并尽量实现 对d 1 画质视频2 0 帧s 的较流畅播放。 3 电子科技大学硕士学位论文 本论文研究的主要内容包括: ( 1 ) 对标准的a v i 文件格式和o p e n d m l 扩展的a v i 文件格式进行深入的 研究和分析,设计并实现了a v i 的音视频分离器。 ( 2 ) 对音视频编解码和播放器流程进行研究,设计并实现p c 平台的多媒体 播放器。 ( 3 ) 通过阅读b l a c k f i n 相关文献,了解b l a c k f i n 平台下代码优化的原理;研 究m p e g - 4 的编解码原理,然后针对b l a c k f i n 平台进行播放器和音视频解码库的 代码的优化,使播放器能够在嵌入式平台达到设计目标的性能要求。 ( 4 ) 根据硬件平台编写f r a m e b u f f e r 驱动,对b o o t l o a d e l 和u c l i n u x 进行移 植,最后实现完整的嵌入式播放器系统。 1 4 论文组织 第一章,介绍了课题的背景和研究意义,概述了嵌入式播放器的国内外研究 现状,并介绍了本论文研究的主要内容。 第二章,介绍了嵌入式播放器的相关知识,对m p e g 4 的编解码和a v i 文件 的格式进行了详细的介绍,最后简要分析了r e a l m e i d a 文件格式。 第三章,简要概述了本嵌入式播放器系统,对系统的总体框架和软硬件开发 平台做了简要介绍,最后介绍了播放器软件的整体结构。 第四章,先介绍了嵌入式播放器软件的总体设计,然后详细介绍了每个模块 的设计与实现。 第五章,先介绍了播放器v i s u a ld s p 上的移植,然后详细介绍了本文对播放 器和音视频解码库的优化,特别是对m p e g 4 解码的c 语言级优化和汇编优化。 第六章,介绍了播放器系统环境的搭建和播放器在p c 平台和嵌入式环境下 的测试结果。其中系统环境搭建包括f r a m e b u f f e r 驱动的编写和b o o t l o a d e r 与 u c l i n u x 的移植。 第七章,总结论文的工作并进行了展望。 4 第二章嵌入式媒体播放的相关知识 第二章嵌入式媒体播放的相关知识 2 1m p e g 4 视频编码技术 2 1 1m p e g 4 简介 m p e g - 4 是基于内容的数据压缩标准,它对数据的压缩是基于对象而进行的 【6 】,因此方便以对象为单位进行操作和控制,而传统的压缩方法是基于帧的,无 法实现对对象的操作。在比特流比较低的时候使用传统的压缩方法,整帧图像的 质量都会下降。而m p e g 4 可以对一帧图像内的不同对象的比特率进行控制,因 此即使在比特率较低时,也可以为重要的对象多分配一些比特率,为不重要的对 象少分配一些比特率,这样即使在比特率较低时也能够保证图像的主观质量。 在m p e g - 4 将一个完整的场景分成很多不同的视觉对象,每个视觉对象对应 于一个特定的物体,最简单情况下就是一个矩形框。视觉对象在某一时刻的采样 叫做视觉对象平面( v o p ) 。v o p 是m p e g 4 的基本编码单位r m j 。 通常v o p 包含了一个视频对象时间采样的编码视频数据,它由运动信息、形 状信息和纹理信息组成。这些数据都是以宏块来编码【9 】。在m p e g 4 中每个宏块 由4 个亮度块和2 个色度块构成。每块又包含有8 8 个像素,它们内部都是通过 d c t 变换( 离散余弦变换) 进行编码。 2 1 2m p e g 4 视频的编码分析 由前文的分析可以知道,m p e g - 4 是以v o p 为基本的单位而编码的。其完整 的编码过程如图2 1 所示。 m p e g 一4 中使用形状编码是为了对任意形状的视频对象进行编码。但是目前 的绝大多数m p e g 4 编解码器的视频对象都是按照矩形框进行划分的,因此都没 有使用对形状的编解码,本文也略去对其的介绍,重点介绍运动编码与纹理编码。 5 电子科技大学硕士学位论文 图2 - 1m p e g - 4 中v o p 编码不恿图 2 1 2 1运动信息编码 运动信息编码包括运动估计和运动预测。在帧间预测模式中,m p e g 一4 中采 用运动估计和运动补偿去除图像信息的时间冗余成分。通过运动估计找出该像素 块在参考帧中的位置,然后再计算出该像素块的运动矢量。将参考帧中的该像素 块进行运动补偿移动到运动矢量指定的位置作为当前像素块在这一位置的预测, 这一过程就是以运动矢量计算预测帧图像的过程。然后将预测帧中宏块的预测值 与当前帧中实际图像的值求差,最后将差值进行纹理编码,这样使编码的数据量 极大的减小了。 m p e g 4 的运动编码的对象可以是1 6 1 6 像素宏块,也可以是8 8 像素块。 在m p e g 。4 中有三种类型的v o p ,即帧内编码v o p ,帧间预测编码v o p 和帧间 双向预测编码v o p 。 在运动编码中有以下一些比较重要的技术【l o 】: ( 1 ) 块匹配 块匹配的思想是将子块内中每个像素的运动矢量都看做是一样的。在第r l 帧 时,对于帧间编码模式的一个子块在第n 1 帧中搜索与它最相似的一个子块,这 个搜索的过程就叫做搜索匹配块。目前使用得最多的匹配规则是求绝对误差和 ( s a d ) 1 1 】。其计算公式如2 1 所示。 占 s a d ,( i ,_ ,) = i f ( a ,b ) - f 。一。( 口+ f ,6 + 州 ( 2 1 ) 其中( i ,j ) 表示子块的运动矢量,矗b ) 表示当前帧在( a ,b ) 的灰度值,毛1 ( a 村, 6 第二章嵌入式媒体播放的相关知识 b “) 表示前一参考帧在( 州,b + j ) 的灰度值,a b 表示宏块的大小。一般情况下取 1 6 1 6 做为计算s a d 的宏块。在运动估计的搜索范围内,当n 一1 帧中某点的运 动矢量( d x ,d y ) 使s a d 取得它的最小值s a d l 。( 工,y ) ,这时候( d x ,d y ) 就是宏块的整 像素运动矢量矿0 。在v 0 附近还能找到4 个运动矢量矿1 ,y 2 ,y 3 ,y 4 使得宏 块中的4 个子块的s a d s ( x ,y ) 最小。设: 黝= s a d s ( x ,少) ( 2 2 ) l 因此可以求出宏块的目标运动矢量如公式2 3 所示。 s a d i m 仃= n l i r l ( s a o l 6 ( z ,y ) ,s ) ( 2 - 3 ) ( 2 ) 编码模式选择 在编码模式为帧间编码的v o p 里并非所有宏块都必须采用帧间预测编码。帧 间像素块的编码模式是由宏块分散度决定的。宏块分散度的计算是在整像素运动 估计后进行的。在1 6 1 6 的宏块中,其分散度的计算公式为2 4 所示。 1 6 1 6 m b m e a n = ( z ( 口,b ) ) n o a = l ,b = l ( 2 - 4 ) c 表示一帧中像素点个数,= u c 2 船一缈一删_ 8 ,当a 乙,此时视频的播放比音频落后,音视频不同步, 4 1 电子科技大学硕士学位论文 需对视频播放进行调整。本文采用的操作就是丢弃该视频帧,直至后续某帧 a b s ( t 妇。一尸碱) 毛加,再次实现音视频同步; ( 7 ) 如果( 。一。) 瓦,保存当前相对时钟的值,= k ,返回步骤2 , 否则返回步骤3 ; 其中t m i i l 为系统允许音视频同步事最大的时间差值,a b s ( ) 表示取表达式的绝 对值,t c 为更新相对时钟的时间间隔。 4 6 3音视频时间戳的获取 本文音视频同步的基础就是音视频时间戳。对于时间戳的获取不同来源的数 据有不同的方法。 r e a l m e i d a 格式的文件在压缩时便把时间戳和音视频数据一起放在了文件 里,因此直接从解码后的数据中便可以获得音视频的时间戳。 a v i 中没有定义时间戳,只能靠在解码时计算时间戳。因为顺序播放与搜索 播放( 快进或快退) 的机制不同,所以时间戳的计算方法也不同。下面分别对两 种情况下时间戳的计算方法进行讨论。 在顺序播放时因为a v i 中的视频是以恒定速率播放的,每帧的播放数据相同, 所以可以按帧号计算视频的显示时间戳( p t s v ) ,而音频的时间戳( p t s 。) 可以 通过已经放入播放缓冲区中音频的播放时间进行计算。顺序播放时计算间戳的方 法如下: 当m = 0 时,p 弼,( 聊) = v s t a r t ,尸碍。( 1 ) = a s t a r t 。 当m 0 时,p 弼,( m ) = ( ( m 一1 ) 宰1 0 0 0 ) v o b p s + 尸碍,( 0 ) p t s 。( m ) = l e n o f a ( n 一1 ) ( n c h a n n e l 木8 木s a m p l e r a t e 木s a m p l e s i z e ) + p t s 。( 0 ) 其中v s t a r t 表示第一帧视频的开始时间,a s t a r t 表示第一帧音频的开始时间, m 表示当前视频帧或者音频帧的编号,p t s v ( m ) 表示第m 帧视频的显示时间戳, p t s 。( m ) 表示第m 帧音频的编号,v o b p s 表示视频的输出帧率,l c no fa ( n 一1 ) 表示 前n 1 帧解码音频的字节数,n c h a n n e l 表示音频的声道数,s a m p l e r a t e 表示解码后 音频的采样频率,s a m p l e s i z e 表示每个音频采样的大小。 当执行搜索播放时,其时间戳的计算方法如下: ( 1 ) 先根据当前相对时钟k 。与前进或者快退的时间差t 计算下一个应 该播放的视频块的显示时间戳p 四,= k 一丁。 ( 2 ) 根据视频块的显示时间戳计算出视频块的块号。根据视频块的块号在 4 2 第四章嵌入式播放器软件的设计与实现 a v i 的索引数据中找出视频流中与之最近的关键帧。 ( 3 ) 根据关键帧的帧号更新搜索后的第一个视频帧的显示时间戳 p 界,= p t s ,。 ( 4 ) 根据计算出的视频时间戳计算搜索后的音频帧的位置。 ( 5 ) 计算搜索后音频帧的位置与视频帧位置之间的视频帧数,视频帧数决定 了音视频时间差t 。根据时间差,计算出音频帧精确的显示时间戳 p t s 4 = p t s 。一a t to 当执行搜索命令后,音频数据将声卡缓冲区重新填充到音频数据可以开始播 放的位置时,更新相对时钟轧= p 碣。 通过该方法就能计算出搜索后精确的视频显示时间戳和音频显示时间戳。在 数据解码后将音视频的时间戳和音视频数据一起写入播放缓冲区,该时间戳用于 在播放时进行音视频同步。 4 6 4 视频播放模块 本播放器音视频同步后的视频的播放是通过将解码后的视频写入显卡中的帧 缓冲区( f r a m e b u f f e r ) 实现的。利用f r a m b u f f e r 的进行视频播放的流程如图4 1 1 所示。主要分为以下几个步骤: ( 1 ) 获取帧缓冲区属性 以底层i o 方式打开f r a m e b u f f e r ,获取f r a m e b u f f e r 的能显示图片的宽度、 高度和颜色深度。 ( 2 ) 设置帧缓冲区的内存映射 f r a m e b u f f e r 将显卡设备抽象为帧缓冲区,为了将视频数据以图形的方式显示 出来,必须要先创建帧缓冲区到内存的映射。 4 3 电子科技大学硕士学位论文 获取底层帧缓 冲区属性 j i 设置帧缓冲区 i 的内存映射 上 i 将显示的视频 l 数据进行转换 上 显示图像 是i 士 ( , 结束 图4 11 视频播放模块流程图 ( 3 ) 颜色转换 因为播放器硬件支持图片的颜色空间为4 :2 :2 的格式,而r e a l m e d i a 文 件解码出来图像的颜色空间为4 :2 :0 ,因此在视频数据写入f r a m e b u f f e r 之前 必须对图像的颜色空间进行格式转换。 ( 7 ) 显示图像 当图像格式转换完毕后,将y u v 4 :2 :0 格式的视频传送到帧缓冲区,同时还 需要指定显示图像的高度和宽度,而且还应该根据压缩视频流中的信息选择使用 n s t c 制式或者p a l 制式进行视频的显示,最后再将图像显示到屏幕上。 4 6 5音频播放模块 利用l i n u x 上的统一音频接口进行音频的播放,主要分为以下几个步骤: ( 1 ) 打开音频设备 在l i n u x 下把设备都当做文件,在音频播放前必须打开声卡设备。 ( 2 ) 设置音频的播放参数 根据在前面获得的音频数据信息,设置音频播放的声道数目,采样速率和采 样格式。 ( 3 ) 播放音频 将从音频缓冲队列读出的解码后音频数据写入声卡缓冲区,进行音频的播放。 4 4 第四章嵌入式播放器软件的设计与实现 4 7主控模块 主控模块主要是用于创建其它线程,接收从g u i 传来是消息,控制其它线程 的运行。消息的传递是通过消息队列实现的,消息队列里的消息结构体为: t y p e d e f s t r u c t m t t y p e : m t t i m e : i n tv o l u m e ; i n t f d ; c h a r 卑矗l e n a m e ; c o n t o r li n f o r ; t y p e 表示消息的类型,如前进、后退,控制音量等,t i m e 表示前进或者后退 的时间,v o l u m e 表示音量调整的大小。 主控模块的流程图如图4 1 2 所示。 图4 1 2 主控模块流程图 当接受到前进或者后退命令时,主控线程清空音频解码缓冲区、视频解码缓 冲区、音频播放缓冲区和视频播放缓冲区,并向分离线程发送控制消息,控制分 离模块的定位操作,当分离模块完成定位后,向主控线程发送音视频定位后的精 4 5 电子科技大学硕士学位论文 确时间戳,主控线程再将精确时间戳信息发送给音视频解码线程,更新音视频解 码线程的时间戳设置。当接收到暂停或恢复播放消息时,只需向音视频播放线程 发送控制消息即可。当接收到结束播放命令时,结束主控线程、分离线程、音视 频解码线程和音视频播放线程。 4 8小结 本章先对播放器软件进行了总体设计,然后分别对辅助模块、数据获取模块、 音视频分离模块、音视频解码模块、音视频同步模块和主控模块进行了详细设计 和实现,其中重点介绍了a v i 文件的分离,索引的重建,r e a l m e d i a 文件音视频 分离和音视频同步播放的实现。 第五章插放嚣在嵌 式平台上的优化 第五章播放器在嵌入式平台上的优化 播放器软件系统实现以后为了提高其在嵌入式平台上播放的流畅性,需要 对其进行b l a c k f i n 5 6 1 平台j :的优化。播放嚣音视频播放中擐耗费时间的是解码操 作,而解码库又是针对的是p c 平台,因此在播放器的优化过程中,解码库是优 化中的重点。本文的优化步骤是先进行整体优化,再针对耗费时间比较多的函数 进行局部优化。 5 1解码库在v i s u a ld s p + 十4 5 下的移植 本文的优化过程是在v i s u a l d s p + + 4 5 开发环境上进行的, v i s u a l d s p + + 4 5 开发环境如图5 - 1 所示。 j 1 i n ”l 。p “h “, m1 ”i r ft _ f _ h t j f“a o 。 #l*if + “+ 1 + “哪 4 。 一in i # c ;:3 一 x 一。一一 p 醣 酬 罄 r 一一p 一 ! 正= 二二二二二二二二二二二:= = 二二二二二二二二二二二- 二二二坐至童匹鲨鎏五! :二兰= 圈5 - 1v i s u a l d s p + + 4 5 开发环境 v i s u a ld s p 十十是美国模拟器件公司为其生产的系列d s p 芯片而开发的一种 4 7 电子科技大学硕士学位论文 集成开发平台。v i s u a ld s p 集成了开发环境和调试器,为处理器应用程序和项目 开发提供了一整套工具 3 2 。3 1 。v i s u a ld s p 提供了对代码中使用b l a c k f m 汇编代码 语言与c 代码的支持。该集成环境能模拟b l a c k f i n 硬件进行调试,而且也可以外 接开发板进行联调。 在v i s u a ld s p + + 4 5 上优化解码库之前,需要先在v i s u a ld s p + + 4 5 下建立 一个可以运行的工程。因为解码库是在p c 平台的l i n u x 上运行的,因此移植到 v i s u a ld s p 上运行前有许多地方需要修改。 因为解码库是在l i n u x 下开发的,而v i s u a ld s p 是在w i n d o w s 平台上编译文 件,所以有许多头文件和库函数无法在v i s u a ld s p 中使用,需要将不存在的头文 件重新指定为v i s u a ld s p 上的头文件,将不存在的库函数用v i s u a ld s p 上的相同 功能的库函数代替。而且解码库中还有许多针对p c 平台而使用的m m x 、s s e 等多媒体指令,但是b l a c k f i n 平台并不支持这些指令,因此也应该将这些指令去 除。 经过修改以后,第三方的解码库便可以在v i s u a ld s p 上编译链接成能够运行 的文件。 5 2基于编译器的整体优化 基于编译器的整体优化是利用设置v i s u a ld s p 中的不同的编译参数进行优 化。编译器优化的目的是产生执行快速并且占用内存空间比较小的代码。使用 v i s u a ld s p 编译代码时,在默认情况下编译器不会进行任何优化,需要将编译器 开关打开才能进行编译器优化【3 4 。35 1 。 打开v i s u a ld s p 上工程选项中的编译设置页面,选择不同的优化开关,能够 实现不同的优化。v i s u a ld s p 有提供以下几种优化选项: ( 1 ) 过程优化。当打开这个编译选项,在编译文件时,v i s u a ld s p 会主动对 程序的每个函数执行优化,这些优化能够直接提高程序的执行速度和缩减程序在 内存中的占用空间。 ( 2 ) 自动内联。当打开这个编译选项后,编译器会自动检测工程中的每个函 数,如果发现内联这个函数能够减少程序的执行时间而且不会造成代码的过度膨 胀,便将该函数进行自动内联。 ( 3 ) 过程间优化。当打开这个编译选项后,编译器首先要对每个函数执行过 程优化,然后再分析整个项目过程间的关系,根据分析的结果对项目进行相应的 第五章播放器在嵌入式平台上的优化 过程间高级优化。 本文通过对每种优化选项进行不同的测试,最后选择对本项目最优效率的过 程间优化作为编译器优化。经过编译器优化后进行测试,其测试结果如表5 1 所 示。 表5 1 整体优化结果 片源码率 优化前解码整体优化后解 性能提高百分 帧数码帧数 比 c i f 格式r e a l 3 0 0 k b p s 5 4 帧s9 6 帧s7 7 8 c i f 格式a v i 3 5 6 k b p s 5 1 帧s8 4 帧s6 4 7 d 1 格式r e a l s 9 3 k b p s 2 6 帧s3 6 帧s3 8 5 d 1 格式a v ll1 0 0 k b p s2 4 帧s3 5 帧s4 5 8 5 3 局部优化对象的确定 因为第三方的音视频解码库代码非常庞大,如果对解码库中的每个函数都进 行优化,那么工作量相当巨大,而且很多代码编译器都已经做了很好的优化,如 果再进行人工优化,工作量增加了但是效果却不明显。因此需要缩小优化的范围, 把优化集中在耗费时间最多的函数中。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地名-布局B-考试-补中文-随机版
- 2025年汽车行业就业前景
- 2026年急救知识试题及答案
- DB23-T 4057-2026 黑龙江省既有建筑绿色低碳改造技术标准
- 全国执业兽医考试畜牧兽医法规复习题附答案详解
- 2026年门卫安全教育培训考核附答案
- 2025年度风险研判校园安全排查报告
- 建筑施工职业健康安全作业指导培训
- 2026中国电子纸显示屏零售价签市场爆发条件分析预测报告
- 2026中国数字经济市场发展现状投资布局规划分析研究报告
- 2026秋人教版(新教材)小学数学五年级上册(全册)教学设计(附目录p273)
- 苏州工业园区娄葑街道2026年社工招聘考试【结构化面试题库+高分答题模板】(含考官评分要点)
- 预制构件生产与运输作业指导书
- DG-TJ08-2495-2026 桥梁改扩建技术标准
- 钢结构、网架和索膜结构安装工程专项施工方案
- 2026年生态环境局工作人员岗位高频面试题包含详细解答
- 普通高中美术课程标准(2017年版2025年修订)
- 2026年执业医师加试院前急救考试试题与参考答案
- 2026中国机场免税店客单价影响因素及品类结构调整建议
- 2026零碳园区绿电直连系统规划建设方案
- 电玩城安全生产责任制度
评论
0/150
提交评论