01--基于ARM9嵌入式视频播放的设计与实现 - 图文

更新时间:2023-12-29 06:54:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

基于ARM9嵌入式视频播放的设计与实现

姓 名 系 别、 专 业

导 师 姓 名、职 称 完 成 时 间

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

目 录

摘要 ................................................................ I ABSTRACT........................................................... II 1 绪论.............................................................. 1 1.1 论文研究的背景................................................. 1 1.2 国内外动态..................................................... 3 1.3 研究的主要内容................................................. 4 2 嵌入式系统介绍 .................................................. 5 2.1 Linux的特点: ................................................ 5 2.2 ARM9的简介 .................................................... 6 2.3 MPEG-4基本介简介 .............................................. 7 2.4 MPEG-4视频编码核心思想及关键技术 .............................. 9 2.5 MPEG-4解码器的软件实现 ....................................... 11 3 系统总体结构..................................................... 12 3.1 总体结构综述 ................................................. 12 3.2 Linux系统 ................................................... 12 3.3 MPlayer简介 ................................................. 13 3.4 ARM9开发板介绍 ............................................... 14 4 系统具体实现..................................................... 17 4.1 编译环境...................................................... 17 4.2 下载安装MPLAYER .............................................. 20 4.3 测试与运行.................................................... 23 4.4 设计心得...................................................... 24 5 总结............................................................. 26 参考文献........................................................... 27 致谢............................................................... 28 附录............................................................... 30

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

摘 要

在详细研究MPEG-4 SP视频解码的算法原理和标准的基础上,分析总结出未经优化的软件在ARM9处理器上的性能瓶颈和优化思路;然后结合ARM9系列处理器架构的特点,对程序的整体结构及各个功能模块展开优化,尽可能地提高处理器效率;最后在实际的硬件平台MINI2440上实现了一个简单的MPEG-4视频回放系统。尽管实验使用的ARM平台性能较低,但经过视频解码核和播放系统的全面优化实现后,基于ARM的MPEG-4视频播放系统仍然达到了较高的系统性能和播放速度,具有一定的应用价值,为嵌入式MPEG-4媒体播放器的产品开发奠定了基础。

关键词:MPEG-4;视频解码播放系统;MINI2440;ARM

I

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

ABSTRACT

On the basis of understanding the theories and standards of MPEG-4 VideoSimple Profile, this thesis analyses the bottleneck on the non-optimized decodersoftware on ARM9 platform and summarizes the aspects that need optimizing. Thencombined with the architechture of ARM processor, MPEG-4 video decoder softwareis optimized to improve the efficiency of the CPU. The optimization work focus onthe overall structure and various functional modues. In the last part, theimplementation of a simple MPEG-4 video real-time playback system on MINI2440 platform is discussed. The test results show that the QCIFs with various motioncomplexities can be displayed smoothly after the decoder core and the playbacksystem being fully optimized. Although the hardware performance of theexperimental ARM platform is limited, ARM-based MPEG-4 Video Player Systempresents reasonably high system performance and playing speed after fulloptimization of both video decoding core and player system, which is a solidfoundation for further product implementation of Embedded MPEG-4 Media Player.

Key Words: MPEG-4;Video Decoding;MINI2440;ARM

II

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

1 绪论

1.1论文研究的背景

1.1.1 MPEG-4

人类社会的发展使人们对视频信息的需求日益增长,尤其是在视频通信、消费类娱乐电子和互联网视频领域。同时,电子技术、通信和互联网技术、尤其是视频压缩等信号处理技术的持续进步使实时或非实时地制作、传播和播放高质量的视频信息日益成为现实。

MPEG组织制订的一系列标准为此做出了巨大贡献(MPEG标准不仅包括视频标准,还包括音频、系统等标准。但本文只涉及视频标准,而且码流中绝大部分是视频信息,故本论文所称MPEG标准仅指其视频标准,除非另有说明)。MPEG-1已应用于成千上万的VCD,让大众第一次体验到了数字影音的优越性。它是码率大约为1.5Mbps的中等质量视频的标准,一部电影一般需要2张700MB的CD光盘。MPEG-2更是造就了一个新兴而繁荣的DVD产业,并使高清晰度数字电视成为可能。MPEG-2的视频质量远远高于MPEG-1,其码率可达lOMbps,它是一个高质量高码率的视频标准。一部电影一般需要1张4.7GB的DVD光盘。

然而,对于互联网视频(播放或下载)和移动无线多媒体等新兴多媒体应用而言,上述标准的码率还是太高,视频文件还是太大。新一代MPEG-4视频标准为此提供了可能。MPEG于1999年初发表了MPEG第一版本,并于2001年发表了第二版本,2003年又加入了第三版本和AVC标准。MPEG-4至今还在不断发展中,不时还有新的技术加入。

MPEG-4视频的特点是低码率和可交互性,在提出基于内容的视频对象和VLBV(Very LowBit-rate Video,甚低比特率视频)核的基础上,MPEG-4引入大量的新技术,从而具有比MPEG-1/2明显优越的压缩性能,并且第一次具备了对具体的视频对象进行交互式访问和操作的能力,同时具有更强的抗错能力。 新兴多媒体应用领域的发展,要求新的视频压缩技术能在保证高质量的同时具有更低的码率。近年来MPEG-4以其低码率、基于对象的交互性等优点在多媒体领域表现出巨大的应用潜力。其中,基于简单框架(Simple Profile, SP)的MPEG-4视频标准兼顾了码率与视频质量的要求,能在低码率、高压缩比的情况下获得较高的图像质量,并且其计算复杂度较其他框架低,因此己经成为MPEG一应用的主流。

2001年,一种称为“DivX”的视频压缩技术的兴起引起了业界的轰动。使用DivX技术压缩的电影其图像质量只比DVD逊色一点甚至接近,远远好于VCD,

1

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

然而其文件大小只有DVD的十分之一,VCD的二分之一,只需要一张CD光盘就可以存放,甚至码率可低至384~128 Kbps,这意味着一张CD光盘可存放3~6小时的中等质量视频节目(包含视频和音频)。DivX的出现使互联网下载或播放高质量电影大量涌现(就像MP3技术使音乐下载或播放大量涌现一样),而且一张CD光盘竟能存放接近DVD质量的视频。DivX由此被称为“视频MP3 \(甚至被称为“DVD杀手”)。而DivX的实质就是MPEG-4 SP视频技术,它已经成为新一代视频压缩技术的事实标准,也充分展示了MPEG-4标准的优越性。

MPEG-4的应用是当今视频领域的研究热点之一。国际标准制定出来后,应用(实现)就是关键,是竞争的场地,也是难点。日前MPEG-4的主要应用模式是“MPEG-4 SP视频+MP3音频”。MPEG-4的广泛应用和市场推广,很大程度上依赖于MPEG-4播放器的大量推广和普及。虽然PC平台的MPEG-4播放软件已有不少,但是嵌入式产品的MPEG-4播放器仍处于起步阶段。由于大量的MPEG一电影以CD光盘方式存贮,因此播放CD光盘上的MPEG-4视频具有很大的市场需求,也可以作为VCD/DVD播放机的一个新增功能和利润点。 1.1.2 ARM

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。

ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。

ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。

ARM商品模式的强大之处在于它在世界范围有超过100个的合作伙伴(Partners)。ARM 是设计公司,本身不生产芯片。采用转让许可证制度,由合作伙伴生产芯片。

当前ARM体系结构的扩充包括:

·Thumb 16位指令集,为了改善代码密度; ·DSP DSP应用的算术运算指令集; ·Jazeller 允许直接执行Java字节码。 ARM处理器系列提供的解决方案有:

·无线、消费类电子和图像应用的开放平台;

2

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

·存储、自动化、工业和网络应用的嵌入式实时系统; ·智能卡和SIM卡的安全应用。

ARM处理器本身是32位设计,但也配备16位指令集。一般来讲存储器比等价32位代码节省达35%,然而保留了32位系统的所有优势。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。 ARM架构是面向低预算市场设计的第一款RISC微处理器。

1.2 国内外研究动态

嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Interlnet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。

嵌入式Linux有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如Montavista Lineo Emi等,有行业协会如Embedded Linux Consortum等,得到世界著名计算机公司和OEM板级厂商的支持,例如IBM Motorola Intel等。传统的嵌入式系统厂商也采用了Linux策略,如Lynxworks Windriver QNX等,还有Internet上的大量嵌入式Linux爱好者的支持。嵌入式Linux支持几乎所有的嵌入式CPU和被移植到几乎所有的嵌入式OEM板。

嵌入式Linux的应用领域非常广泛,主要的应用领域有信息家电、PDA 、机顶盒、Digital Telephone、Answering Machine、Screen Phone 、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay 、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天领域等。

本设计的研究具有重要的实用价值。首先,它可以作为新型VCD/DVD播放机的一部分。另外,由于ARM在嵌入式32位处理平台中居于世界领先地位,智能

3

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

手机、PDA等移动手持设备超过半数都使用ARM处理器,研究成果对于移动手持设备的MPEG-4视频播放具有直接的借鉴意义。而在2003年开始微软和英特尔力推的PMP(便携式媒体播放器)计划中,MPEG-4视频播放更是其中的关键技术之一。

1.3 研究的主要内容

本论文主要研究视频播放在ARM嵌入式平台上的实现,所以论文中主要介绍了MPEG-4视频压缩编码的标准和ARM9的部分知识。 论文章节安排如下:

1.绪论对MPEG的发展历史和应用做了简要的回顾,对ARM的基本知识做了介绍,并对作者的工作做了介绍。

2.简要介绍了嵌入式系统的基本知识,对Linux和ARM9做了基本的介绍,详细介绍了MPEG-4的特点和视频编码的核心。

3.对系统的总体结构做了详细的介绍,对所用的系统、软件、开发板各个模块进行简要的介绍。

4.主要对设计的具体实现,比如安装Linux、配置MPlayer和移植MPlayer进行详细的介绍。

4

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

2 嵌入式系统介绍

2.1 Linux的特点:

1.低廉性

基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数位摄影机使用了经过定制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。 2.广泛性

采用Linux的超级电脑亦愈来愈多,根据2005年11月号的TOP500超

级电脑列表,显示世上最快速的两组超级电脑都是使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了371组(即74.2%),其中的前十位者,有7组是使用Linux的。 3.灵活性

Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window图形用户界面,如同使用Windows NT一样,允许使用窗口、图标和菜单对系统进行操作。 4.倍受青睐的原因

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是

它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。

运行Linux需要的配置并不高,支持众多的PC周边设备,并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。Linux核心程序的著作权归Linus本人所有,其它应用程序归各自的作者所有,但按照GNU授权,任何人都可以采取收费或免费方式来发行Linux,

5

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

并在符合该授权的规范下做修改。这样就有了一大批的免费程序移植到了Linux上,包括GNU Emacs、XFree86、Mozilla等经典软件,并且在不断壮大中。由于源代码是公开的,任何一个使用Linux的人在添置了新硬件后都能自己编写驱动程序,所以Linux对新硬件的支持已经超过了许多专业UNIX系统。Linux的成功如果没有Internet是不可能的,因为Linux实际上是世界各地众多程序员共同开发的结果。

2.2 ARM9的简介

图2.1 ARM9的结构

ARM系列处理器是目前应用非常广泛的低功耗、32位高性能RISC处理器, 其特点是:

1.体积小、低功耗、低成本、高性能;

6

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

2.支持Thumb(16位)和ARM(32位)指令集,能够较好的兼顾系统性 能和代码密度;

3.大量使用寄存器,指令执行速度更快; 4.大多数数据操作都在寄存器中完成; 5.寻址方式灵活简单,执行效率高; 6.指令长度固定;

7.装载/存储指令可以成批量传输数据; 8.所有指令都可以条件执行。

ARM9系列于1997年问世。由于采用了5级指令流水线,ARM9处理器能 够运行在比ARM7更高的时钟频率上,处理器的整体性能得到增强,存储系统 采用哈佛结构,在Cache层次上区分数据总线和指令总线ARM9系列中的 ARM920T, ARM922T和ARM940T都使用v4T架构指令集,它们都是由 ARM9TDMI衍生出来的变种,而ARM926EJ-S, ARM946E-S和ARM966E-S都 是基于ARM9E-S内核的,执行v5T架构指令。

2.3 MPEG-4基本介简介

2.3.1 MPEG-4 特点

MPEG-4是为在国际互联网络上或移动通信设备(例如移动电话)上实时传输音/视频讯号而制定的最新MPEG标准,MPEG-4采用Object Based方式解压缩,压缩比指标远远优于以上几种,压缩倍数为450倍(静态图像可达800倍),分辨率输入可从320×240到1280×1024,这是同质量的MPEG-1和MJEPG的十倍多。

MPEG-4使用「图层」(layer)方式,能够智能化选择影像的不同之处,是可根据图像内容,将其中的对象(人物、物体、背景)分离出来分别进行压缩,使图文件容量大幅缩减,而加速音/视频的传输,这不仅仅大大提高了压缩比,也使图像探测的功能和准确性更充分的体现出来。

在网络传输中可以设定MPEG-4的码流速率,清晰度也可在一定的范围内作相应的变化,这样便于用户根据自己对录像时间、传输路数和清晰度的不同要求进行不同的设置,大大提高了系统使用时的适应性和灵活性。也可采用动态帧测技术,动态时快录,静态时慢录,从而减少平均数据量,节省存储空间。而且当在传输有误码或丢包现象时,MPEG-4受到的影响很小,并且能迅速恢复。

MPEG-4的应用前景将是非常广阔的。 它的出现将对以下各方面产生较

7

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

大的推动作用:数字电视、动态图像、万维网(WWW)、实时多媒体监控、低比特率下的移动多媒体通信、于内容存储和检索多媒系统、Internet/Intranet上的视频流与可视游戏、基于面部表情模拟的虚拟会议、DVD上的交互多媒体应用、基于计算机网络的可视化合作实验室场景应用、演播电视等。

当然,除了MPEG-4外,还有更先进的下一个版本MPEG-7,准确来说, MPEG-7并不是一种压缩编码方法,而是一个多媒体内容描述接口。继MPEG-4之后,要解决的矛盾就是对日渐庞大的图像、声音信息的管理和迅速搜索。MPEG-7就是针对这个矛盾的解决方案。MPEG-7力求能够快速且有效地搜索出用户所需的不同类型的多媒体材料。预计这个方案于2001年初最终完成并公布。按照以往 MPEG-4的经验,MPEG-7起码要再过两年才能进入实际应用阶段。 2.3.2 MPEG-4优点 (1) 基于内容的交互性

MPEG-4提供了基于内容的多媒体数据访问工具,如索引、超级链接、上传、下载、删除等。利用这些工具,用户可以方便地从多媒体数据库中有选择地获取自己所需的与对象有关的内容,并提供了内容的操作和位流编辑功能,可应用于交互式家庭购物,淡入淡出的数字化效果等。MPEG-4提供了高效的自然或合成的多媒体数据编码方法。它可以把自然场景或对象组合起来成为合成的多媒体数据。 (2) 高效的压缩性

MPEG-4基于更高的编码效率。同已有的或即将形成的其它标准相比,在相同的比特率下,它基于更高的视觉听觉质量,这就使得在低带宽的信道上传送视频、音频成为可能。同时MPEG-4还能对同时发生的数据流进行编码。一个场景的多视角或多声道数据流可以高效、同步地合成为最终数据流。这可用于虚拟三维游戏、三维电影、飞行仿真练习等。 (3) 通用的访问性

MPEG-4提供了易出错环境的鲁棒性,来保证其在许多无线和有线网络以及存储介质中的应用,此外,MPEG-4还支持基于内容的的可分级性,即把内容、质量、复杂性分成许多小块来满足不同用户的不同需求,支持具有不同带宽,不同存储容量的传输信道和接收端。

这些特点无疑会加速多媒体应用的发展,从中受益的应用领域有:因特网多媒体应用;广播电视;交互式视频游戏;实时可视通信;交互式存

8

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

储媒体应用;演播室技术及电视后期制作;采用面部动画技术的虚拟会议;多媒体邮件;移动通信条件下的多媒体应用;远程视频监控;通过ATM网络等进行的远程数据库业务等。

2.4 MPEG-4视频编码核心思想及关键技术

2.4.1 MPEG-4简介

MPEG-4是新一代基于内容的多媒体数据压缩编码国际标准,它与传统

视频编码标准的最大不同在于第一次提出了基于对象的视频编码新概念。基于内容的交互性是MPEG-4标准的核心思想,这对于视频编码技术的发展方向及广泛应用都具有特别重要的意义。

人类获取的信息中70%来自于视觉,视频信息在多媒体信息中占有重要地位;同时视频数据冗余度最大,经压缩处理后的视频质量高低是决定多媒体服务质量的关键因素。因此数字视频技术是多媒体应用的核心技术,对视频编码的研究已成为信息技术领域的热门话题。

视频编码的研究课题主要有数据压缩比、压缩/解压速度及快速实现算法三方面内容。以压缩/解压后数据与压缩前原始数据是否完全一致作为衡量标准,可将数据压缩划分为无失真压缩(即可逆压缩)和有失真压缩(即不可逆压缩)两类。

传统压缩编码建立在仙农信息论基础之上的,以经典集合论为工具,用概率统计模型来描述信源,其压缩思想基于数据统计,因此只能去除数据冗余,属于低层压缩编码的范畴。

伴随着视频编码相关学科及新兴学科的迅速发展,新一代数据压缩技术不断诞生并日益成熟,其编码思想由基于像素和像素块转变为基于内容 (content-based)。它突破了仙农信息论框架的束缚,充分考虑了人眼视觉特性及信源特性,通过去除内容冗余来实现数据压缩,可分为基于对象(object-based)和基于语义(semantics-based)两种,前者属于中层压缩编码,后者属于高层压缩编码。

与此同时,视频编码相关标准的制定也日臻完善。视频编码标准主要由ITU-T和ISO/IEC开发。ITU-T发布的视频标准有H.261、 H.262、 H.263、 H.263+、H.263++,ISO/IEC公布的MPEG系列标准有MPEG-1、MPEG-2 、MPEG-4 和MPEG-7,并且计划公布MPEG-21。

MPEG即Moving Picture Expert Group(运动图像专家组),它是专门从事制定多媒体视音频压缩编码标准的国际组织。MPEG系列标准已成为

9

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

国际上影响最大的多媒体技术标准,其中MPEG-1和MPEG-2是采用以仙农信息论为基础的预测编码、变换编码、熵编码及运动补偿等第一代数据压缩编码技术;MPEG-4(ISO/IEC 14496)则是基于第二代压缩编码技术制定的国际标准,它以视听媒体对象为基本单元,采用基于内容的压缩编码,以实现数字视音频、图形合成应用及交互式多媒体的集成。MPEG系列标准对VCD、DVD等视听消费电子及数字电视和高清晰度电视(DTV&&HDTV)、多媒体通信等信息产业的发展产生了巨大而深远的影响。 2.4.2 核心思想

在MPEG-4制定之前,MPEG-1、MPEG-2、H.261、H.263都是采用第一

代压缩编码技术,着眼于图像信号的统计特性来设计编码器,属于波形编码的范畴。第一代压缩编码方案把视频序列按时间先后分为一系列帧,每一帧图像又分成宏块以进行运动补偿和编码,这种编码方案存在以下缺陷: · 将图像固定地分成相同大小的块,在高压缩比的情况下会出现严重的块效应,即马赛克效应;

· 不能对图像内容进行访问、编辑和回放等操作;

· 未充分利用人类视觉系统(HVS,Human Visual System)的特性。 MPEG-4则代表了基于模型/对象的第二代压缩编码技术,它充分利用了人眼视觉特性,抓住了图像信息传输的本质,从轮廓、纹理思路出发,支持基于视觉内容的交互功能,这适应了多媒体信息的应用由播放型转向基于内容的访问、检索及操作的发展趋势。

AV对象(AVO,Audio Visual Object)是MPEG-4为支持基于内容编码而提出的重要概念。对象是指在一个场景中能够访问和操纵的实体,对象的划分可根据其独特的纹理、运动、形状、模型和高层语义为依据。在MPEG-4中所见的视音频已不再是过去MPEG-1、MPEG-2中图像帧的概念,而是一个个视听场景(AV场景),这些不同的AV场景由不同的AV对象组成。AV对象是听觉、视觉、或者视听内容的表示单元,其基本单位是原始AV对象,它可以是自然的或合成的声音、图像。原始AV对象具有高效编码、高效存储与传输以及可交互操作的特性,它又可进一步组成复合AV对象。因此MPEG-4标准的基本内容就是对AV对象进行高效编码、组织、存储与传输。AV对象的提出,使多媒体通信具有高度交互及高效编码的能力,AV对象编码就是MPEG-4的核心编码技术。

10

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

MPEG-4不仅可提供高压缩率,同时也可实现更好的多媒体内容互动性及全方位的存取性,它采用开放的编码系统,可随时加入新的编码算法模块,同时也可根据不同应用需求现场配置解码器,以支持多种多媒体应用。 MPEG-4 采用了新一代视频编码技术,它在视频编码发展史上第一次把编码对象从图像帧拓展到具有实际意义的任意形状视频对象,从而实现了从基于像素的传统编码向基于对象和内容的现代编码的转变,因而引领着新一代智能图像编码的发展潮流。

2.5 MPEG-4解码器的软件实现

本设计使用的是号称linux下最强播放器的MPlayer来实现ARM的视频播放。MPlayer被评为Linux下的最佳媒体播放工具,又成功地移植到Windows下。它能播放几乎所有流行的音频和视频格式,相对其它播放器来说,资源占用非常少,不需要任何系统解码器就可以播放各种媒体格式,对于MPEG/XviD/DivX格式的文件支持尤其好,不仅拖动播放速度快得不可思议,而且播放破损文件时的效果也好得出奇,在低配置的机器上使用更是能凸显优势。

MPlayer本身编译自带了多种类型的解码器,不需要再安装xvid、ffdshow、ac3 filter、ogg、vobsub等等所谓看DVDrip必备解码器,也不会跟电脑原来所安装的解码器有任何冲突。 它支持大多数的媒体格式如: MPEG/VOB, AVI, ASF/WMA/WMV, RM, QT/MOV/MP4, Ogg/OGM, MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM 和 RoQ 文件。还能观看 VCD, SVCD, DVD, 3ivx, DivX 3/4/5, 甚至 WMV 电影。

MPlayer 广泛地支持音视频输出驱动。它不仅可以使用 X11,Xv,DGA, OpenGL,SVGAlib,fbdev,AAlib,libcaca,DirectFB,Quartz,Mac OS X CoreVideo,也能使用GGI,SDL(及它们的所有驱动),所有VESA兼容显卡上的 VESA(甚至不需要 X11),某些低级的显卡相关的驱动(如 Matrox, 3dfx 及 ATI) 和一些硬件MPEG解码器卡,比如 Siemens DVB,Hauppauge PVR(IVTV),DXR2和DXR3/Hollywood+。它们中绝大多数支持软件或硬件缩放,所以你可以享受全屏电影。

MPlayer具有 OSD(屏上显示)功能显示状态信息,有抗锯齿带阴影的漂亮大字幕和键盘控制的可视反馈。支持的字体包括欧洲语种(匈牙利语,英语,捷克语等等),西里尔语和韩语,可以播放 12 种格式的字幕文件(MicroDVD,SubRip,OGM,SubViewer,Sami, VPlayer, RT,SSA,AQTitle,JACOsub,PJS 及 MPsub)和DVD字幕(SPU 流,VOBsub及隐藏式CC字幕)。

11

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

3 系统总体结构

3.1 总体结构综述

本设计主要是在PC机上的Linux平台实现MPlayer播放器的编译,再将编译好的MPlayer通过USB接口移植进入ARM9的开发版中。

图3.1 总体结构图

3.2 Linux系统

3.2.1 fedora介绍

图3.1 Fedora 12

12

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

Fedora 是一个开放的、创新的、前瞻性的操作系统和平台,基于Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora项目由Fedora基金会管理和控制,得到了Red Hat,Inc.的支持。

Fedora是一个独立的操作系统,是Linux的一个发行版,可运行的体系结构包括x86(即i386-i686),x86_64和PowerPC。

Fedora Core(自第七版直接更名为Fedora)是众多Linux发行套件之一。它是一套从Red Hat Linux发展出来的免费Linux系统。现时Fedora最新的版本是Fedora 12,Fedora是linux发行版中更新最快的之一,通常每6个月发布一个正式的新版本。

Fedora和Redhat这两个Linux的发行版联系很密切。Redhat自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。Fedora 可以说是Redhat 桌面版本的延续,只不过是与开源社区合作。

Fedora 12新功能:引导分区支持 Ext4 文件系统;32位架构基于 i686 平台(包括 CMOV 支持),并为 Atom 处理器进行优化;更广泛的的摄像头支持,包括对罗技系列的内核驱动支持;用 Gnote 取代了Tomboy成为默认便签;用 Empathy取代Pidgin成为默认即时通讯客户端;Webkit取代Gecko成为 Epiphany默认渲染引擎;提供GNOME Shell作为GNOME 3的预览; NetworkManager 提供了IPv6支持;蓝牙服务将以按需载入,并在空闲30秒后自动停止;默认NFS版本为第四版,以前是第三版;GStreamer引入最新的Ogg Theora编码器支持;引入Fedora Studio多媒体软件包组;Dracut取代initrd 成为新的引导系统;Nvidia系列显卡KMS支持;Emacs升级至23;Eclipse升级至3.5 Galileo。

3.3 MPlayer简介

MPlayer是Linux上的非常强大的电影播放器(能跑运行在许多其它Unixs上,甚至非x86CPU上)。如今它也有了在微软视窗操作系统和苹果Mac OS中的版本。它能使用众多的本地的,XAnim,RealPlayer,和Win32 DLL编解码器,播放大多数MPEG,VOB,AVI,OGG,VIVO,ASF/WMV,QT/MOV,FLI,RM,NuppelVideo,yuv4mpeg,FILM,RoQ文件。能观看VideoCD,SVCD,DVD,3ivx,RealMedia,和DivX格式的电影。 3.3.1软件特色

13

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

MPlayer的另一个大的特色是广泛的输出设备支持。它可以在X11,Xv,

DGA, OpenGL,SVGAlib,fbdev,AAlib,DirectFB下工作,而且也能使用GGI和SDL(由此可以使用其支持的各种驱动模式) 和一些低级的硬件相关的驱动模式(比如Matrox,3Dfx和Radeon,Mach64,Permedia3)。它们大多数支持软件或者硬件缩放,因此能在全屏下观赏电影。MPlayer还支持通过硬件MPEG解码卡显示,诸如DVB 和DXR3与Hollywood+。可以使用清晰放大并且反锯齿的字幕(支持10种格式),和on screen display(OSD)。这个播放器能够稳如泰山的播放被破坏的MPEG文件(对一些VCD有用),而它能播放著名的windows media player 都打不开的的坏的AVI文件。 MEncoder(MPlayer's Movie Encoder)是一个简单的电影编码器,设计用来把MPlayer可以播放的电影

(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV /FLI/RM/NUV/NET/PVA)编码成别的MPlayer可以播放的格式。它可以使用各种编解码器进行编码,例如 DivX4(1或2 passes),libavcodec,PCM/MP3 /VBR MP3音频。同时也有强大的插件系统用于控制视频。

MPlayer是唯一支持P2P软件在线点播的万能、防毒播放器。它支持P2P点播(可在Vagaa、BT、电驴等软件中实现边下载边看),而且安全(播放时可过滤视频中携带的广告、病毒文件);低消耗(软件小、启动快,消耗内存和CPU非常少);兼容多格式(几乎可以播放所有当前流行的所有视频格式)。

3.4 ARM9开发板介绍

3.4.1 Mini2440的介绍:

14

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图3.1 MINI2440结构图

(1) 提供齐全BSP(基于Linux-2.6.29(当前为Linux-2.6.32.2)和Windows CE 6.0)的开发板,并全面配有图形界面实用应用程序。

(2)完美支持 USB 烧写更新Linux(support yaffs2)和 WindowsCE 5.0/6.0 的开发板,并且支持整片Nand Flash备份到PC。

(3)内核(含WinCE和Linux)同时支持大页和小页Nand Flash的开发板。 (4)在WindowsCE和Linux下通过简单直观的图形界面,就可设置各种程序 开机自动运行的开发板。

3.4.1 Mini2440 开发板硬件资源特性 CPU处理器

- Samsung S3C2440A,主频400MHz,最高533Mhz SDRAM内存 - 在板 64M SDRAM - 32bit 数据总线

- SDRAM 时钟频率高达 100MHz FLASH存储

在板256M/1GB Nand Flash,掉电非易失(用户可定制64M/128M/256M/512M/1G) 在板2M Nor Flash,掉电非易失,已经安装 BIOS LCD显示

- 板上集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏

- 支持黑白、4级灰度、16级灰度、256 色、4096色 STN液晶屏,尺寸从 3.5 寸到12.1寸,屏幕分辨率可 以达到 1024x768 象素;

- 支持黑白、4 级灰度、16 级灰度、256 色、64K 色、真彩色 TFT 液晶屏,尺寸从 3.5 寸到 12.1 寸,屏幕 分辨率可以达到 1024x768 象素;

- 标准配置为统宝 3.5” 真彩 LCD,分别率 240x320,带触摸屏; 接口和资源

- 1 个100M以太网 RJ-45 接口(采用DM9000 网络芯片)

15

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

- 3 个串行口 - 1 个USB Host

- 1 个USB Slave B 型接口 - 1 个SD卡存储接口

- 1 路立体声音频输出接口,一路麦克风接口; - 1 个2.0mm 间距 10 针 JTAG 接口 - 4 USER Leds

- 6 USER buttons(带引出座) - 1 个PWM控制蜂鸣器

- 1 个可调电阻,用于AD模数转换测试

- 1 个I2C 总线AT24C08芯片,用于I2C总线测试

16

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

4 系统具体实现

4.1 编译环境

4.1.1 硬盘安装LINUX

因为本机一开始没安装LINUX,所以要重新安装LINUX。选择安装Fedora最新版本Fedora 12。用的安装方式是GRUB引导的硬盘安装。

首先在Fedora官网下载最新的Fedora-12-i386-DVD.iso,再在网络中找到GRUB的资源grub4dos-0.4.3-2007-03-10。

解压Fedora-12-i386-DVD.iso中/images文件夹中的install.img和/images/pexboot下的initrd.img,vmlinuz,并将这三个文件放入新建文件夹fedora中,再将此文件夹与Fedora-12-i386-DVD.iso放入E盘根目录下。

解压grub4dos-0.4.3-2007-03-10并将解压后的文件放入C盘根目录下,修改启动项BOOT.INI,修改MENU.LST添加: title Fedora 12 install root (hd0,5)

#这是用来挂载那两个引导文件所放的分区的。放在硬盘第三个分区,所以是(hd0,5)

kernel (hd0,5)/fedora/vmlinuz #加载内核

initrd (hd0,5)/fedora/initrd.img #加载内核 boot

#启动安装了。

之后按照安装步骤一步步进行就能顺利装好Fedora12,安装好之后就可以开始准备下一步了。

17

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图4.1 fedora界面图

4.1.2 虚拟机安装LINUX

首先从网上找到虚拟机的资源,下载不需要安装的绿色版本VMwareWorkstation-v6.0。解压绿化后新建虚拟机,按照步骤设定虚拟机安装的配置:

新建虚拟机→自定义→workstation 6→linux:other linux 2.6.X kernel→命名该虚拟机并选择安装位置→处理器数量:1→内存大小推荐512M→使用桥接网络→I/O适配器的选择(随意)→创建一个新的虚拟磁盘→选择磁盘类型:IDE→设定磁盘大小:8G→设定磁盘文件的名字→完成。

18

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图4.2 虚拟机磁盘类型选择

开始时装不上LINUX,因为选择硬盘格式的时候选择的是虚拟机推荐的SCSI,这个格式的不支持LINUX的安装,改成IDE格式才能安装。

打开虚拟机的CD-ROM,加载LINUX的ISO镜像文件。

图4.3 虚拟机CD-ROM加载ISO

19

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

打开虚拟机,开始安装LINUX。按照硬盘安装LINUX的步骤就能实现虚拟机安装LINUX,功能也和硬盘安装的LINUX一样。

4.2 下载安装MPLAYER

4.2.1 本机安装MPLAYER

首先进入MPLAYER播放器的官网下载http://www.mplayerhq.hu选择下载MPLAYER,因为MPLAYER经常更新有许多的资源,所以选择以前最稳定的版本MPlayer-1.0rc2.tar.bz2。 首先进入root模式 #su #输入密码

解压MPlayer-1.0rc2.tar.bz2用命令 #tar -jxvf MPlayer-1.0rc2.tar.bz2 先在本机上装好MPLAYER,看看能不能使用。 #cd MPlayer-1.0rc2 #进入该文件夹 #./configure

#配置MPLAYER,因为在本机上安装不需要加上其他的参数 编译完成之后进行: #make

#make install 这时候就安装成功了。 使用mplayer播放文件: #mplayer test1.Wmv

使用mplayer运行test1.Wmv视频文件

20

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图4.4 MPlayer播放实现

4.2.2 移植MPLAYER

现在就开始配置MINI2440上的MPlayer播放了,这一步是关键,要是配置不对以后的步骤都不会成功。

首先从MINI2440自带的光盘中将arm-linux-gcc拷贝到本机上。当然,这一步可以用crosstools来完成,但是那样做费时,费事所以不考虑。 #tar -zxvf arm-linx-gcc-4.3.2.tgz -C / #将此文件解压到根目录下 #vim /root/.Bashrc 在其中添加一行

PATH=$PATH:/usr/local/arm/4.3.2/bin

这时候就能开始配置MINI2440中能运行的MPlayer

#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm --enable-static

--disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad --enable-libavcodec_a --language=zh_CN 2>&1 | tee logfile

各个选项如下:

--host-cc=gcc --cc=arm-linux-gcc --target=arm 这三个选项与交叉编译有

21

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

关,主要目的是使编译后的MPLAYER能够在MINI2440板子上运行。 --enable-static 生成静态的二进制链接 --disable-win32dll 禁用 Win32 DLL 支持 [有效] --disable-dvdread 禁用 libdvdread [自动检测] --disable-dvdread-internal 禁用内部 libdvdread [自动检测] --disable-dvdnav 禁用 libdvdnav [自动检测] --disable-libdvdcss-internal 禁用内部 libdvdcss [自动检测] --enable-fbdev FBDev 视频输出 [自动检测]

--disable-mencoder 不编译 mencoder(A/V 编码器) [有效] --disable-live 禁用 LIVE555 流媒体[自动检测] --disable-mp3lib 禁用内建 mp3lib [有效] --enable-mad 使用 libmad (MPEG 音频) --enable-libavcodec_a 使用静态 libavcodec [自动检测] --language=zh_CN 文件中。

配置需要的时间不多,但是接下来就算是本设计中耗费时间最多的一步了。 #make

其中会遇到两个.s编译不过去。

armv4l/dsputil_arm_s.o armv4l/dsputil_arm_s.S armv4l/dsputil_arm_s.S: Assembler messages:

armv4l/dsputil_arm_s.S:79: Error: selected processor does not support `pld [r1]'

................................ ............................

armv4l/dsputil_arm_s.S:466: Error: selected processor does not support `pld [r1]'

make[1]: *** [armv4l/dsputil_arm_s.o] Error 1

make[1]: Leaving directory `/root/MPlayer-1.0rc2/libavcodec' make: *** [libavcodec/libavcodec.a] 错误 2

错误原因是pld指令只在armv5te以上版本有效,在2440(armv4l)无效,预读取PLD指令,功能:cache预读取(PLD,PreLoad),使用PLD指示存储系统

使用中文

2>&1 | tee logfile 的意思是将执行的情况在输出到屏幕的同时记录到logfile

22

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

从后面几条指令所指定的存储器地址读取,存储系统可使用这种方法加速以后的存储器访问。

修改MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件和MPlayer-1.0rc2 /libavcodec/armv4l/dsputil_arm_s.S文件在前面添加上: #ifndef HAVE_PLD .macro pld reg .endm #endif

4.3 测试与运行

编译成功后找到MPLAYER的文件夹,在目标的文件夹下。将MPLAYER传输到MINI2440中。因为MINI2440的系统已经装好,所以可以使用几种方式将MPLAYER传输到MINI2440中。第一种是用U盘,第二种就是用网线,配置NFS传输。本次设计中,为了方便作者使用的是U盘传输方式。 先插上优盘,然后打开终端输入: #minicom #进入开发板 回车后进入命令行: #cp udisk/mplayer /usr/bin

#复制mplayer到MINI2440/usr/bin文件夹下

#mplayer test.avi -framedrop -vf rotate=1,scale=240:320 #使用240:320大小播放

测试了多种格式的test播放文件,执行命令后都能播放。

23

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图4.5 实际播放视频

4.4 设计心得

从上学期开始一直在实验室做这个设计,实验室的主机操作系统使用的是Fedora 5的老版本LINUX,使用起来相当的不方便。再加上其自带的编译器有问题,装新的编译器又不兼容,各种问题重重。上个学期最后的一个月时间本人一直在实验室做设计,想实现视频播放的功能,但是没有成功。这个学期向王刚老师请教后,王老师推荐使用RED HAT 9的系统来实现这个功能。之后在本机上装了RED HAT 9后,因为是老版本,用起来始终不顺手。使用Fedora 12的话又和原来准备使用的S3C2410的板子上自带的系统不兼容,好在有李沧海同学的开发板才能实现这个设计。

设计中已经硬盘安装好了LINUX,安装一般情况已经不需要虚拟机安装方式。但在一次意外之中不小心将硬盘安装LINUX的引导删掉了。之后硬盘被彻底的格式化,所有的资料都被格掉。好在移动硬盘中有备份,只需要修改少部分的资料。因为硬盘安装LINUX有如此大的风险,第二次安装LINUX就选择了更简单的虚拟机安装。

安装MPlayer到PC机上这一步使用的操作命令很简单,但实现起来根本不简单。在实验室曾经试过安装MPLAYER,但是用了十几天的时间都没编译成功。原因现在看来很是简单:GCC编译器版本不支持。因为实验室里面主机安装的LINUX版本太低了,是已经被淘汰很久的FEDORA 5,而设计所用的是最新的版本FEDORA 12。所以放弃了在实验室实现本设计的初衷。

交叉编译MPlayer这些步骤看上去简单,能实现本设计背后所花费的时间和汗水也只有作者知道。好在李沧海同学有一个MINI2440的开发板,如果在实验室里面用主机的编译器是很难实现这个设计。虽然有李沧海同学的帮助,但编译过程没有想象中的顺利。首先下载了各个版本的MPlayer,准备实现编译。开始时一直./configure 不成功,因为没有安装好交叉编译环境,后来安装好arm-linux-cross-2.95.3.tar之后又出现了版本不对的错误。后来从MINI2440自带的光盘里找到了专门配置好的交叉编译环境才最终成功。之后又开始出现make的问题了,一开始使用的最新的MPlayer,第一次就make成功了。传输到MINI2440开发板上,开始播放视频。只有声音没有画面的出现,能放MP3但是放视频没画面。这时候开始各个版本的MPlayer都开始编译了,没有一个能成功

24

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

的。这时候只能去网上寻找解决方式了,终于发现了论文中的修改方式,这才解决了。

使用编译好的MPLAYER播放能够成功,但是若要完美播放还得加入参数才能实现。测试的4种格式的视频文件wmv、avi、mp4、flv测试,都能正常进行播放,有视频有声音。实验成功,虽然走了不少弯路,但是这些都是宝贵的经验。

25

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

5 总结

在设计的过程中很好的回顾了MPEG的发展过程,了解国内外关于嵌入式系统的研究情况,对嵌入式视频播放在各个领域的应用有了新的认识。经过对Linux的安装和使用对Linux Fedora 12有了深入的了解,清楚了Linux的操作和系统运行情况。在对MPlayer进行编译和使用的过程中很好的学习了嵌入式系统的构成和软件编译的原理。

因为时间匆忙只能使用网络中的播放器MPlayer来实现视频播放功能,MPlayer经过了这么多年的开发已经是一款很成熟的播放软件了,希望以后能有机会自己设计一款播放软件。

(1) 未能在MINI2440上实现图形界面的播放效果,每次播放还得输入命令

行,很不方便,也不适合大众使用。

(2) 不能直接进行屏幕自适应,每次播放还需加入参数才能实现完美播放。 以上是这次设计留下的遗憾,希望在以后能够完善与改进。

26

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

参考文献

[1] 林晓飞,刘彬,张辉. 基于ARM嵌入式Linux应用开发与实例教程[M]. 北京:清华大 学出版社,2007

[2] 李锋垚. 基于ARM的MPEG-4视频解码播放系统设计[D] . 西北工业大学,2005 [3] 孙钟秀. 操作系统教程[M]. 北京:高等教育出版社,2008

[4] 顾梅花,张太悦. 基于ARM的MPEG-4视频解码器[D]. 单片机与嵌入式系统应用,2006 [5] 齐治昌,谭庆平,宁洪. 软件工程[M]. 北京:高等教育出版社,1997

[6] 梁浩. 基于MPEG-4的嵌入式播放系统的研究与实现[D]. 嵌入式系统及应用,2007 [7] 刘兵,吴煌煌. Linux实用教程[M]. 北京:中国水利水电出版社,2004

[8] 魏忠义,刘屹,王燕. 基于ARM的MPEG-4视频编码器[D]. 计算机工程与应用,2005 [9] 梁丹. 基于ARM的MPEG-4视频解码优化技术的研究与实现[D]. 计算机系统结构,2007 [10] 华清远见嵌入式培训中心. 嵌入式Linux系统开发标准教程[M]. 北京:人民邮电出版 社,2009

27

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

28

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

29

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

附 录

部分源代码

void init_vol_config(VolConfig *vol_config) {

vol_config->M = 1;

vol_config->frame_skip = 1; vol_config->quantizer = 8; vol_config->intra_quantizer = 8; vol_config->modulo_time_base[0] =0; vol_config->modulo_time_base[1] =0; vol_config->frame_rate = 30; vol_config->bit_rate = 800000;

}

void init_vop(Vop *vop) {

vop->quant_precision = 5; vop->bits_per_pixel = 8;

vop->time_increment_resolution = 30000; vop->intra_acdc_pred_disable = 0; vop->intra_dc_vlc_thr = 0; vop->sr_for = 512;

vop->fcode_for = get_fcode(512); vop->y_chan->type = SHORT_TYPE; vop->u_chan->type = SHORT_TYPE; vop->v_chan->type = SHORT_TYPE; vop->hor_spat_ref = 0; vop->ver_spat_ref = 0; }

int YUV2YUV (int x_dim, int y_dim, void *yuv,void *v_out) {

30

*y_out,*u_out, void void 精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

Int get_fcode (Int sr) { }

unsigned char *in; short int *out; long size; in = yuv;

out = y_out;

size = x_dim * y_dim;

while (size --) *(out ++) = *(in ++); out = u_out;

size = x_dim * y_dim / 4;

while (size --) *(out ++) = *(in ++); out = v_out;

size = x_dim * y_dim / 4;

while (size --) *(out ++) = *(in ++); return 0;

if (sr<=16) return 1; else if (sr<=32) return 2; else if (sr<=64) return 3; else if (sr<=128) return 4; else if (sr<=256) return 5; else if (sr<=512) return 6; else if (sr<=1024) return 7; else return (-1);

31

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

Int get_fcode (Int sr) { }

unsigned char *in; short int *out; long size; in = yuv;

out = y_out;

size = x_dim * y_dim;

while (size --) *(out ++) = *(in ++); out = u_out;

size = x_dim * y_dim / 4;

while (size --) *(out ++) = *(in ++); out = v_out;

size = x_dim * y_dim / 4;

while (size --) *(out ++) = *(in ++); return 0;

if (sr<=16) return 1; else if (sr<=32) return 2; else if (sr<=64) return 3; else if (sr<=128) return 4; else if (sr<=256) return 5; else if (sr<=512) return 6; else if (sr<=1024) return 7; else return (-1);

31

本文来源:https://www.bwwdw.com/article/2jqx.html

Top