基于PXA27X的嵌入式视频解码终端的研究与实现.pdf_第1页
基于PXA27X的嵌入式视频解码终端的研究与实现.pdf_第2页
基于PXA27X的嵌入式视频解码终端的研究与实现.pdf_第3页
基于PXA27X的嵌入式视频解码终端的研究与实现.pdf_第4页
基于PXA27X的嵌入式视频解码终端的研究与实现.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

基于PXA27X的嵌入式视频解码终端的研究与实现.pdf.pdf 免费下载

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

文档简介

南京航空航天大学硕士学位论文基于pxa27x的嵌入式视频解码终端的研究与实现姓名:王琉申请学位级别:硕士专业:电路与系统指导教师:吴宁2011-01南京航空航天大学硕士学位论文 i 摘 要 视频解码终端可以运用在多个领域,比如消费电子产品、网络远程教育的终端、无线视频监控终端、网络视频会议等。嵌入式视频解码终端结合了嵌入式系统体积小、成本低和使用灵活的特点,具有很强的适应性,应用领域广阔,研究价值和意义显著。 论文的主要工作是设计和实现一个嵌入式视频解码终端并重点对解码性能进行优化。设计过程中选用基于 xscale 内核的 pxa270 处理器,其内部集成了 intel wireless mmx 技术,可以有效的加快视频、3d 图像的处理。同时采用高性能的 h.264 视频解码技术作为软件解码器,利用其解码效率高的特点提高解码器性能。论文在现有 pxa270 核心板的基础上,扩展了部分硬件接口和电路形成扩展板,扩展板上集成了视频解码终端所需的必要模块。基于核心板和扩展板构成的硬件平台,完成了 windows ce 嵌入式操作系统的内核定制、编译和移植。论文详细阐述了 windows ce 下驱动程序开发、内存管理等内容,重点实现了 sd 卡驱动和电量计量模块驱动的设计。在解码器方面,介绍了基于 h.264 的 ffmpeg libavcodec 解码器以及常用的优化方法,其中重点利用 wmmx 对解码器进行优化,实现了解码器中去块效应滤波、插值以及反变换和重建等模块的优化。最后在 vs2005 中完成了播放器应用程序的设计,并且通过播放器程序实现了视频的播放功能,并且对优化的性能进行了详细分析。 通过对各个功能模块以及最终实现结果的测试和分析,验证了本文设计的嵌入式视频解码终端方案的正确性和可行性。 关键词:关键词:pxa27x,wmmx,h.264,windows ce,解码,优化 基于 pxa27x 的嵌入式视频解码终端的研究与实现 ii abstract video decoding terminal can be applied in many fields, such as consumer electronics, distance education, wireless video monitoring, video session, etc. combining embedded systems features, such as small size, low cost and flexibility, the embedded video decoding terminal has strong adaptability, wide application field, and valuable research significance. the main work of this thesis is to design and realize an embedded video decoding terminal and optimize it. the terminal selects the pxa27x processor which is based on xscale kernel and intergrates intel wireless mmx technology. wmmx technology can speed up the processing of video and 3d image. meanwhile the terminal makes use of h.264, an advanced video decoding technology, as software decoder to enhance the terminals decoding efficiency. on the basis of the existing pxa270 core board, the terminal expands some hardware interfaces and circuits to form expanding board which include some necessary modules for the video decoding terminal. the core board and the expanding board form the hardware platform. this thesis completes windows ce kernel customization, compilation and transplantation, and detailedly introduces the driver development such as sd card. in the aspect of decoder, the thesis introduces the ffmpeg libavcodec decoder and some common optimization methods, focuseing on the principle and process of using wmmx technology to optimize the modules of decoder, such as deblocking filter, interpolation algorithm and reconstruction. at last, the thesis describes the process and procedure to realize the video player in vs2005. through the testing and analysis on various functional modules in both functional and performance aspect, it is validated that the design of embedded video decoding terminal is correct and practical. keywords: pxa27x, wmmx, h.264, windows ce, decoding, optimize 基于 pxa27x 的嵌入式视频解码终端的研究与实现 vi 图表清单 图 2.1 终端系统总体结构示意图.4 图 2.2 pxa270 的内部框架及主要资源.6 图 2.3 wmmx 数据类型.7 图 2.4 simd 示意图 .7 图 2.5 wmmx 寄存器结构.8 图 2.6 xscale 体系架构.11 图 2.7 wmmx 体系结构.11 图 2.8 windows ce 发展简史.13 图 2.9 windows ce 系统构架图 .13 图 2.10 windows ce 系统调用示意图 .15 图 3.1 系统硬件结构框图.17 图 3.2 核心板物理实现示意图.18 图 3.3 扩展板物理实现示意图.19 图 3.4 lcd 控制器与 pt035tn01 的连接电路图.20 图 3.5 系统供电示意图.21 图 3.6 bcm 系统内部结构.21 图 3.7 lm3658 引脚分布及典型电路.21 图 3.8 电量计量电路的典型应用.23 图 3.9 电池充电及电量计量模块电路图.23 图 3.10 电阻触摸屏结构图.24 图 3.11 四线电阻触摸屏结构图.25 图 3.12 触摸屏坐标计算示意图.25 图 3.13 ucb1400 实现触摸屏接口、音频接口和 a/d 接口电路.26 图 3.14 lan91c113 硬件电路设计图.27 图 3.15 sd 卡接口示意图 .28 图 3.16 protel dxp 的操作界面 .29 图 4.1 基于 windows ce 的嵌入式系统开发流程 .30 图 4.2 添加和删除 feature.32 图 4.3 正在烧写 eboot.34 南京航空航天大学硕士学位论文 vii 图 4.4 以太网下载镜像.34 图 4.5 windows ce 虚拟内存分布 .35 图 4.6 单体驱动和分层驱动.36 图 4.7 windows ce 中断处理流程 .38 图 4.8 pxa27x dmac 框架.39 图 4.9 windows ce 操作系统下 sd 卡的架构 .40 图 5.1 h.264 解码器方框图.45 图 5.2 修改后的 ffmpeg libavcodec 解码器解码流程图.47 图 5.3 两种逆扫描方式.51 图 5.4 4 阶矩阵转置 .61 图 5.5 4 阶整数余弦反变换.61 图 5.6 各测试码流优化前后对比.63 图 6.1 基于 windows ce 的应用程序开发流程 .64 图 6.2 visual studio 2005 下查看所有已安装的 sdk.65 图 6.3 visual studio 2005 新建 windows ce 项目.66 图 6.4 播放程序工作流程图.68 图 6.5 播放界面 .69 图 6.6 播放器的显示效果.70 图 6.7 优化前后平均解码速率比较.71 图 6.8 优化前后平均峰值信噪比比较.71 图 6.9 优化前后 cpu 平均开销百分比.72 表 2.1 wmmx 兼容指令.9 表 2.2 新的 wmmx 指令.10 表 2.3 协处理器数据传输指令和协处理器寄存器装载存储指令.10 表 2.4 对象存储所支持的永久性存储器的类型.15 表 3.1 电池状态表 .22 表 3.2 控制器信号功能及引脚表.28 表 4.1 windows ce 流接口函数列表 .36 表 5.1 wmmx 优化效果测试.63 表 6.1 几种应用程序开发工具的比较.64 表 6.2 优化前解码程序的播放器性能参数.70 表 6.3 优化后解码程序的播放器性能参数.71 基于 pxa27x 的嵌入式视频解码终端的研究与实现 viii 注释表 bsp: board support package 板级支持包 ist: interrupt service thread 中断服务线程 isr: interrupt service routine 中断服务例行程序 mmu: memory management uint 内存管理单元 oal: oem abstract layer,oem 抽象层 ddi: device driver interface 设备驱动接口 ddsi: device driver service provider interface 设备驱动程序提供器接口 dma: direct memory access 直接内存访问 mdd: model device driver 模型设备驱动程序层 pdd: platform dependent driver 平台相关驱动程序 qci: quick capture interface 快速捕捉接口 itu: international telegraph union 国际电报联盟 wmmx: wireless multi media extension 无线多媒体扩展指令集 承诺书 本人声明所呈交的硕士学位论文是本人在导师指导下进行的研究工作及取得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得南京航空航天大学或其他教育机构的学位或证书而使用过的材料。 本人授权南京航空航天大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本承诺书) 作者签名: 日 期: 南京航空航天大学硕士学位论文 1 第一章 绪论 随着社会的不断发展,人们对于信息的需求也越来越丰富。从早期的文字、图画到现在的音频、视频,人们总是希望随时随地通过各种方式进行交流。其中,对于视频信息的追求是人们最渴望的交流方式。有研究表明,人类大约有 70%的信息是通过视觉的方式采集的1。视频信号方便、直观和形象的特点使得视频处理技术运用到越来越多的场合,越来越多的技术人员投身到视频处理技术的研究中,越来越多的新技术与视频处理技术进行融合,得到了广泛的关注和研究。 1.1 课题研究背景及意义 在诸多新技术中,嵌入式技术与视频解码技术的结合无疑具有极大的应用空间。通过嵌入式技术移动性好、功耗低、成本低的特点2,使得视频解码技术可以应用在手机、数码相机、pda 等便携式设备中,从而摆脱过去视频解码必须借助 pc 机的局限性,大大扩展了视频技术的发展空间。 目前基于嵌入式系统的视频解码方案种类繁多,从宏观上区别,主要可以分为 2 种,一种是利用专用解码芯片实现视频解码功能,称为硬件解码;另外一种是在高性能的嵌入式系统中移植软件解码器,称为软件解码。其中,硬件解码方案主要是基于硬件解码芯片,设计过程简单,只需要按照一定的电路组成解码模块,配置底层驱动即可完成解码功能。但是目前解码芯片成本较高,存在功耗问题,并且很多解码芯片只针对某一特定视频解码标准。随着越来越多的新视频标准的出现,单纯的依靠在硬件系统中增加更多的解码芯片显然无法解决问题,只能寻求更加复杂的单芯片多标准的芯片设计方案。 对于软件解码方案,软件解码器具有灵活性高、与硬件设备无关、成本低、升级方便等特点,并且可以很容易的实现在不同视频标准之间的切换。随着目前嵌入式处理器性能的不断提升,操作系统功能的更加强大以及系统存储容量的快速扩大,基于嵌入式的软件解码性能得到了很大的提升,实时性和解码效率显著提高,可以实现视频解码终端的主流应用。并且,随着各种优化技术的出现和应用,进一步提升了软件解码器的性能。同时,即使在硬件解码方案中,在设计时也需要在软件上对视频解码标准进行优化和改进。因此,软件解码器可以应用在各种视频解码终端,对软件解码器进行研究和优化具有重要的实际价值和普遍意义3。 从设计成本、实用性以及可移植性等角度考虑,本课题采用的是软件解码方案,并且重点对解码器的各种优化方法进行了讨论。设计中采用了高性能的 pxa27x 嵌入式处理芯片,利用其内部集成的 wmmx 技术对解码器进行优化,有效地提升了软件解码器的效率和视频解码终端的性能。 基于 pxa27x 的嵌入式视频解码终端的研究与实现 2 1.2 视频编解码技术的发展现状 视频编解码技术是从图像编码技术发展而来的。从 1948 年提出数字化电视信号以来,图像压缩编码技术不仅取得了重大的理路研究成果,也拓展了丰富的实际应用。随着近 10 年来,图像编码技术的广泛应用和日臻成熟,为了促进图像编码技术的发展,国际上制定了多个关于图像编码的国际标准,包括 iso(国际标准化组织)和 iec(国际电工委员会)关于静止图像的编码标准 jpeg/jpeg2000,关于活动图像的编码标准 mpeg-1、mpeg-2、mpeg-4(2)、mpeg-4(10)等,以及国际电信联盟(itu)制定的视频编码标准 h.26x 系列。这些标准将各种优秀的图像编码算法融合在一起,不断的促进着图像编码技术向前发展4。 所有的视频编码标准都在追求者一个共同的目标,就是用最低的码率或存储容量获得最好的图像质量。而且,随着视频应用领域的不断扩展和人们对于视频要求的不断提高,视频编解码技术将面临着很多新的问题, 比如怎样适应不同信道传输特性的问题等。 为了解决这些问题,一种新的视频新标准-h.264 也就应运而生。 h.264 采用的也是差分脉冲编码调制(dpcm)加变换编码的混合编码模式。但是在混合编码器的基本框架下,对主要关键部件进行了重大改进,追求实用,采用成熟的技术,追求更高的编码效率和简洁的表现形式,同时注重对移动和 ip 网络的适应,采用分层技术,从形式上是将编码和信道隔离开来,实质上是在源编码器算法中更多的考虑信道的特点5。 从技术上来说,h.264 标准中有很多闪光之处,比如统一的 vlc 符号编码,高精度、多模式的位移估计,基于 44 块的整数变换,以及分层的编码语法等。这些措施使得 h.264 算法具有很高的编码效率,在相同的重建图像质量下,能够比 h.263 节约 50%左右的比特率。而且,h.264 的码流结构对网络的适应性很强,增加了差错恢复能力,能够很好地适应 ip 和无线网络的应用。正因为 h.264 运用了大量不同的技术,使得其视频编码性能远远优于任何其他标准6。 当然也要看到,h.264 性能的改进是以增加复杂性为代价而获得的,其计算复杂度大的问题随着编码性能的提高一同出现。据统计,h.264 编码的计算复杂度大约相当于 h.263 的3 倍,解码复杂度大约相当于 h.263 的 2 倍。因此,在使用软件解码器的过程中,必须考虑采用各种优化措施。目前在 pc 机上已有很多针对 h.264 的优化措施,但是由于嵌入式系统的种类繁多,要求各异,还没有形成统一的或者主流的优化手段,因此利用本系统嵌入式处理器的特点对 h.264 进行合理的优化也是本课题需要重点研究的问题。 1.3 主要研究内容及章节安排 本课题的主要内容是研究并设计一个嵌入式视频解码终端系统。该系统选用基于 xscale架构的 pxa27x 系列嵌入式 arm 处理器,利用本实验室已有的基于 pxa270 的核心模块,扩展外部硬件接口和必要的外围设备,作为本系统的硬件平台。嵌入式操作系统操作系统选用微南京航空航天大学硕士学位论文 3 软公司的 windows ce 5.0,对其进行定制、编译和烧写,同时对必要的驱动程序进行编写。在visual studio 2005 开发环境中设计视频播放程序,其中采用高性能的 h.264 视频解码器 ffmpeg libavcodec, 重点利用 pxa27x 所特有的 wmmx 技术对 h.264 算法进行优化, 最终实现在 lcd显示器上的流畅播放。 论文主要进行以下几个方面的研究: 1在现有 pxa270 核心板的基础上,扩展部分硬件接口和硬件电路形成扩展板。扩展板包括 lcd 接口电路,电池充电电路,以太网模块以及触摸屏模块等。核心板和扩展板之间通过插针连接组成系统研究的硬件平台。 2实现 windows ce 嵌入式操作系统的内核定制、编译和移植。研究了 windows ce 下驱动程序开发、内存管理等内容,并且重点对 sd 卡驱动和电量计量模块驱动进行设计。 3 研究基于 h.264 的 ffmpeg libavcodec 解码器以及常用的优化方法, 其中重点研究 wmmx技术以及利用 wmmx 对解码器进行优化的原理和过程。 4研究 vs2005 中播放器应用程序的设计流程和步骤,并且通过播放器程序实现视频的播放功能。 论文章节安排及主要内容如下: 第一章绪论,综述了视频编解码技术的发展概况,提出了基于嵌入式技术的视频处理终端系统的研究背景和现实意义。 第二章描述了嵌入式视频解码系统的总体设计,详细介绍了 pxa27x 处理器、wmmx 技术以及 windows ce 的特点和优势。 第三章介绍了嵌入式视频解码系统的硬件结构设计,分别介绍了核心板的硬件结构以及扩展板的组成和各个模块电路和接口的设计。 第四章分析了 windows ce 系统驱动程序开发涉及的内存管理、中断处理及 dma 传输;讨论了 sd 卡和电路计量模块的驱动程序设计。 第五章介绍了 h.264 的解码技术, 介绍了常用的优化方式, 并重点分析了如何利用 wmmx技术对 h.264 进行优化。 第六章研究基于 windows ce 的应用程序开发,给出了播放器的总体框架设计,并最终实现了播放器对视频的流畅播放。 第七章总结了本课题的工作内容,并对本系统存在的问题和可以做出的改进做出了展望。 基于 pxa27x 的嵌入式视频解码终端的研究与实现 4 第二章 系统总体设计 本课题最终实现的视频解码终端由硬件部分和软件部分组成。 其中, 硬件部分是以 pxa27x为核心处理器,同时扩展必要的外围设备和接口而形成。软件部分以 windows ce 嵌入式操作系统为核心,同时采用了先进的 h.264 视频解码技术对终端采集来的视频数据进行解码。本章主要内容是从硬件和软件两个方面描述系统的总体架构设计,并详细介绍本系统需要用到的关键技术。 2.1 终端系统总体结构 本系统由硬件和软件两部分组成。硬件系统是基于 arm 的嵌入式硬件平台。选用的 arm芯片是 intel 的 pxa27x 系列。软件系统是 windows ce 嵌入式操作系统以及必要的驱动程序,应用软件等组成。终端系统总体结构示意图如图 2.1 所示。 jtag接口usb接口网口串口音频模块lcd显示模块sd卡硬件平台nor flashnand flashsdram应用程序windows ce嵌入式操作系统底层驱动程序系统软件h.264解码器 图 2.1 终端系统总体结构示意图 如图 2.1 所示,终端系统的硬件平台是以嵌入式处理器 pxa27x 为核心,外接了常用的接口, 如 jtag 接口, usb 接口, 网络接口, 串口等。 同时还扩展了本视频解码系统所必须的 lcd南京航空航天大学硕士学位论文 5 显示模块,音频模块等。 系统软件主要由底层驱动、嵌入式操作系统、h.264 视频解码模块及应用软件组成。本课题中选用的嵌入式操作系统是微软推出的 windows ce, 它是一个可裁剪的 32 位实时操作系统。而 h.264 是一种高性能的视频编解码技术,具有很高的数据压缩比率。如果图像质量相同的话,h.264 的压缩比是 mpeg-4 的 1.52 倍,是 mpeg-2 的 2 倍以上。 2.2 pxa27x 处理器简介 本系统采用的嵌入式处理器芯片是基于 intel xscale 架构的 pxa27x 芯片。intel xscale 微系统架构是一种基于 armv5t 体系结构的全新的、高性价比、低功耗的解决方案,广泛应用在手机、便携式终端(pda) 、网络存储设备、骨干网路由器等领域。相比于一般 arm 处理器,xscale 功耗更低,系统伸缩性更好,同时核心频率也得到提高。这种处理器还支持高效通讯指令,可以和同样架构处理器之间达到高速传输。2006 年 6 月,marvell 公司以 6 亿美元的价格收购了 intel 的 xscale 产品线7。 pxa27x 提供了丰富的接口资源和可靠的性能支持,是目前监控终端,pda,手机等移动通信设备等的首选主流嵌入式处理器之一。同时,pxa27x 内部集成的 wmmx 技术,可以为软件解码器优化提供有力的支持。因此本系统将 pxa27x 作为硬件系统的主处理器芯片。 2.2.1 pxa27x 处理器的特点 pxa27x 是一款主要针对高端无线手持及移动设备的基于 xscale 内核的处理器,最高主频达 624mhz,内部开发代号为 bulverde。pxa27x 主要具有有以下几个技术特点: 1内部集成了 intel wireless mmx 技术,这是一种 64 位的 simd 指令集,可以有效的加快视频、3d 图像、音频以及其他 simd 传统元素处理,使得该处理器在支持 3d 游戏和高级视频应用方面具有很高的性能。本系统中就是利用了 pxa27x 的 wmmx 技术对 h.264 视频解码器进行了优化。 2 speedstep 技术是一项创新性的技术, 它可以让处理器在两种工作模式之间随意地切换,即通电状态时的最高性能模式和电池状态时的电池优化模式。由于采用了 speedstep 低功耗技术,pxa27x 根据需要自动改变工作频率和电压,可以在空闲、待机和深层睡眠三种低功耗状态间智能切换,提高了动态电压管理性能。由于采用了 speedstep 低功耗技术,通过智能管理频率变化和电压变化,可以实现节省高达 55%的功耗8。 3quick capture 是 pxa27x 另一个重要的技术。它最高可以支持 20482048 的 400 万像素的照片拍摄和处理器,同时也支持在这个分辨率下的高速实时回放功能。因为 pxa27x 最高25mb/s 的传输和处理速度足够应付这种分辨率下任何照片拍摄和传输工作9。 同时 pxa27x 具有丰富的外设和接口支持, 如 i2s、 i2c、 usb、 红外、 键盘接口和 wifi(ieee 基于 pxa27x 的嵌入式视频解码终端的研究与实现 6 802.11)传输等,并广泛支持众多公司提供的嵌入式操作系统和开发系统,包括 windows ce,palmsource,symbian,montavista,linux 和 java 环境。pxa27x 系列处理器根据封装、最高频率以及是否整合 flash 或 sdram 的不同,分为 pxa270、pxa271 和 pxa272 三款产品。本系统选用的 pxa270 的最高工作频率为 520mhz,没有整合 sdram 或 flash。其内部框架结构如图 2.2 所示10。 图 2.2 pxa270 的内部框架及主要资源 2.2.2 wmmx 技术 wmmx 指的是 wireless multi-media extension(无线多媒体扩展)技术,是在 xscale 架构下扩展的mmx汇编指令, 也是simd技术在pxa平台上的延伸。 这项技术源自x86体系的mmx,但是却全面超越了 mmx,为手持设备设计的 xscale 微架构实现了以往只有 pc 机才具有的 64位多媒体并行处理能力。利用 xscale 的 wmmx 技术对 h.264 代码进行并行处理优化,可以极大的提高运行速度,达到很好的优化效果。 南京航空航天大学硕士学位论文 7 1wmmx 的特点 wmmx支持全部的mmx指令以及sse指令的整数运算部分 (xscale没有浮点运算单元) ,实现了和 pc 平台的兼容,降低了软件从 pc 机移植到嵌入式平台的难度。mmx 技术主要用于加快多媒体和通信应用的运行速度,提高应用的能力。wmmx 技术的特点如下: (1)兼容 mmx 技术,使用了一套基本的、通用的紧缩整形指令。 所谓紧缩整形数据,是指将多个 8/16/32 位的整形数据组合成为一个 64 位的数据,这样,一条指令就可以处理 8 个 8 位、 4 个 16 位或者 2 个 32 位的数据运算, 图 2.3 表示的就是 wmmx支持的数据类型。这就是所谓的 simd(单指令多数据结构)技术,如图 2.4 所示,使用一条simd 指令可以完成多条复杂的运算。同时,这也是 mmx 技术能够极大提高机器性能的主要原因。 图 2.3 wmmx 数据类型 图 2.4 simd 示意图 基于 pxa27x 的嵌入式视频解码终端的研究与实现 8 (2)多个随机存取的 mmx 寄存器。 为了方便使用 mmx 技术和 mmx 指令集, 处理器提供了多个 64 位的 mmx 寄存器, 并且所有的寄存器支持随机存取,可以方便的实现指令优化。图 2.5 表示的就是 wmmx 寄存器结构。 图 2.5 wmmx 寄存器结构 (3)饱和计算功能。 mmx 技术的另一个特征是在计算结果超过实际处理能力的时候也能进行正常处理。传统的 x86 指令计算结果一旦超出了 cpu 处理数据的限度,数据就要被截掉变成较小的数,或者产生溢出错误。mmx 利用所谓的“饱和(saturation) ”功能,圆满的解决了这一问题。计算结果一旦超过了数据大小的限度,就能在可处理范围内自动变换成最大值。 (4)wmmx 指令集特殊指令表。 wmmx 除了具有和 mmx 一样的指令集以及部分 sse 指令集外, 还具有很多独特的指令。wmmx 指令单元使用了 arm 架构的两个协处理器:cp0 和 cp1,用来支持 wmmx 扩展的指令和数据类型,以及使用标准的协处理器数据传输指令。wmmx 指令集可以分为四类: ? 兼容指令 ? 新的 wmmx 指令 ? 协处理器数据传输指令 ? 协处理器寄存器装载存储指令 这四种指令集的具体指令表如表 2.1、表 2.2 和表 2.3 所示. 南京航空航天大学硕士学位论文 9 表 2.1 wmmx 兼容指令 指令 描述 wadd / wsub 并行加/减 8 个字节,4 个 16-bit 半字,2 个 32-bit 字 wcmpeq / wcmpgt 并行比较 8 个字节,4 个 16-bit 半字,2 个 32-bit 字,相应位置的结果为 1 表示真,为 0 表示假 wmull / wmulm 并行乘 4 个有符号的 16-bit 字。32-bit 乘法结果的低 16-bit 或高16-bit 由该指令产生 wmadd 并行 16-bit 半字乘加操作 wror/wsra/wsll/wsrl 并行循环右移,算数右移,逻辑右移和左移 4 个 16-bit 半字,2个 32-bit 字或 1 个 64-bit 双字 wunpck 将一个 64-bit 源 wmmx 寄存器中的数据按照 8 个字节,4 个16-bit 半字,2 个 32-bit 字 3 种形式分解到目标 wmmx 寄存器中 wpack 将两个源 wmmx 寄存器中的双字(或字)打包到目标 wmmx寄存器中的字(或半字) wand,wandnwor,wxor 64-bit 逻辑操作 wmax/wmin 在两个 wmmx 寄存器中的元素中选最大/小的 8-bit、16-bit、32-bit 向量 tmovmsk 将 wmmx 寄存器的每个 simd 区间的 msb 位转移到 arm 寄存器中 wavg2 将两个无符号的 8-bit 或者 16-bit 数据元素求平均 tinsr 将 arm 寄存器中的 8/16/32-bit 数据转插入到 wmmx 的数据寄存器中 textrm 从 wmmx寄存器中提取转移 8/16/32-bit 数据到 arm 寄存器中wsad 计算 8/16-bit 无符号数据差绝对值的总和 wshufh 根据 8-bit 立即数来对 wmmx 寄存器中的 16-bit 数据重新排列组合 tmia 对arm寄存器中的两个有符号的32-bit操作数执行乘累加运算tmiaxy 对arm寄存器中的两对有符号的16-bit操作数执行乘累加运算tmiaph 对两个arm寄存器中对应的两个有符号的16-bit操作数执行乘累加运算 基于 pxa27x 的嵌入式视频解码终端的研究与实现 10 表 2.2 新的 wmmx 指令 指令 描述 wmac 并行完成 4 个有符号或无符号 16-bit 半字乘法运算,并累加到 64-bit 的wmmx 寄存器中 wacc 并行完成一个 wmmx 寄存器中的 8 个字节, 4 个 16-bit 半字, 2 个 32-bit的无符号数据累加运算 walign / waligni 在任意字节边界上对两个 wmmx 寄存器的数据做对其处理 tandc/torc 对simd psr (wcasf) 寄存器的多个域做逻辑操作后将结果存放到arm处理器核的 cpsr 寄存器中 textrc 根据 3-bit 立即数的值将 simd psr(wcasf)寄存器中特定 4/8/16-bit域的值存放到 arm 处理器核的 cpsr 寄存器中 tbcst 将arm源寄存器rn的一个8/16/32-bit数据存放到simd目的寄存器wrd的每个对应域中 表 2.3 协处理器数据传输指令和协处理器寄存器装载存储指令 指令 描述 tmrrc 将 64-bit 的 wmmx 数据寄存器 wrn 中的内容转移到两个 arm 核心的目标寄存器中(rdhi, rdlo)中 tmcrr 将 arm 核心的目标寄存器中(rdhi, rdlo)中的内容转移到 wrn 中tmrc 将 32-bit 的 wmmx 控制寄存器的内容转移到 arm 核心的目标寄存器中tmcr 将 arm 核心的寄存器 rn 中的内容转移到 32-bit 的 wmmx 控制寄存器wcx 中 wldr / wstr 数据装载和存储指令 2wmmx 的硬件架构 wmmx 的实现需要专门的 xscale 硬件架构,如图 2.6 所示。这一技术的实现并非通过提高系统运作频率、增加处理单元或者采用更大的片内缓存来完成的,而是基于四个前提条件,通过一系列整体规划和体系布局来实现整个架构的高效运作11。 (1)基于 xscale 内核的流水线技术,通过提高运行效率,从而提高多媒体处理性能。 (2)增强相关性,减少内核停顿。针对内核流水线中的指令之间可能存在的相关性,如果相关性出现冲突,就有可能导致处理器内核停顿。 (3)对流水线中的指令,通过运行结果和执行延迟进行分类处理。同类指令可以进行预测南京航空航天大学硕士学位论文 11 和分支操作。 (4) 对于确切知道可以预知指令运行结果的特定指令码, 就可以重新排列代码的执行顺序,避免处理器停顿,提高性能。 图 2.6 xscale 体系架构 所有的 wmmx 指令都可以按照 arm 指令的标准进行分类,并且,wmmx 实质上就是作为 arm 处理器的协处理器来实现的,所有对 wmmx 进行操作的过程都可以通过 arm 标准cdp 指令完成,而 wmmx 指令只不过是提供了一种更加容易理解的助记符,用于实现 cdp指令。 图 2.7 wmmx 体系结构 wmmx 的体系结构如图 2.7 所示。 xscale 架构使得 wmmx 协处理器成为了系统一个很好的扩展, 并且在整个系统中平衡了普通的控制指令和多媒体运算指令,提高了整体的平均执行效率。对于便携式系统,无疑有着更优的成本和低功耗。 基于 pxa27x 的嵌入式视频解码终端的研究与实现 12 2.3 windows ce 嵌入式操作系统 windows ce 是微软公司嵌入式移动计算平台的基础,它是一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。它是精简的 windows 95,具有相当出色的图形用户界面。 windows ce 满足了便携式设备、移动设备和嵌入式设备对操作系统的需求,支持多处理器体系结构,能适用于多种设备,如智能手机、掌上电脑、机顶盒、瘦客户端设备、数码相机、dvr、网络电话、无线投影仪、工业自动化等。windows ce 的设计目标是:模块化及可延展性、实时性好、通信能力强大、支持多种 cpu12。 相比较其他嵌入式操作系统,windows ce 的优势主要体现在以下几个方面 ? windows ce 开发相对较容易,开发周期短,内核完善,主要是应用层开发,其他嵌入式系统,尤其是嵌入式 linux 开发难度较高,需要很高的技术实力。 ? windows ce 的 gui 丰富,开发工具强大,而 linux 等系统核心调试工具不全,调试不太方便,没有很好的用户图像界面。 ? windows ce 系统容易维护。linux 占用较大的内存,系统维护难度大。 基于以上的比较以及本课题的实际需要,从本实验室原有的经验积累,成熟的开发资源,开发难度和效率以及良好的交互界面等方面考虑, 本课题选择了 windows ce 5.0 嵌入式操作系统。 2.3.1 windows ce的发展 作为一个使用在数字移动电话、 个人数字助理和网络产品等场合的完整系统, 软件是必不可少的部分。当嵌入式处理器的计算能力足够强大的时候,就需要操作系统来对各种资源进行管理。当前比较主流的嵌入式操作系统有:嵌入式 linux、windows ce、vxworks、symbian、qnx、palmos 和 android 等。其中 windows ce 操作系统是由世界软件巨头微软为嵌入式系统专门开发的操作系统,是一个 32 位抢占式,多线程多任务实时操作系统13。 windows ce 是一个模块化的操作系统, 这就意味着其具有可选择、 组合和配置 windows ce的不同模块和组件来创建面向用户需求的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的各种设备进行定制。操作系统的最小基本内核可以只要 256k 的 rom,即可完成系统的启动和基本驱动加载任务。 windows ce 是微软公司在嵌入式操作系统市场上的一个重要产品,它的第一版于 1996 年就已经发布,但直到 windows ce 3.0 它才真正被人们接受,并逐步取得了成功。2002 年微软发布了 windows ce .net 4.l 版, 这是一个非常成功的版本。 迄今为止, 微软的 windows ce 的版本先后经过了 windows ce 3.0 / 4.1 / 4.2 / 5.0 / 6.0 等多版本14。如图 2.8 所示。 南京航空航天大学硕士学位论文 13 图 2.8 windows ce 发展简史 2.3.2 windows ce 体系结构 windows ce 系统构架如图 2.9 所示: internet客户端服务驱动程序配置文件hard wareboot loaderoem抽象层kernel多媒体技术对象存储coredllapplication & server用户界面(国际化)wince应用程序开发第三方应用gwes设备管理网络applicationosoem 图 2.9 windows ce 系统构架图 从宏观的角度来看,系统的软件组件有 coredll、nk、设备管理模块、数据存储模块、基于 pxa27x 的嵌入式视频解码终端的研究与实现 14 gwes 模块、通信模块、oal 模块以及驱动程序模块和 win32 系统服务模块。windows ce 核心进程包括15: ? nk.exe:提供内核服务,是操作系统的核心。程序代码位于privatewindows ceoscoreosnk 目录下。 ? coredll:在系统中具有非常重要的地位,它将应用程序与操作系统的其它模块分隔开来,保证系统的稳定运行。同时,它具有两类功能:一类是作为外部应用程序的代理;其二是支持了随机数生成、类似字符串处理、时间计算等基本函数。最主要的是第一类功能,负责系统应用程序接口的管理和应用程序的安装。这个模块是透过coredll.dll 执行的,代码位于privatewindows ceoscoreoscore 目录下。 ? gwes.exe:提供用户界面服务和消息管理。windows ce 通过这个接口提供基本的绘图引擎、窗口管理、接口的事件机制等。主要代码位于 privatewindows ceoscoreosgwes 目录下。 ? device.exe:加载和维护设备驱动程序。它是设备管理核心,提供系统范围内基本的设备列表管理、即插即用管理、电源管理、i/o 资源管理,并提供了设备驱动程序运作的基本机制。代码位于privatewindows ceoscoreosdevice 目录下。 ? filesys.exe:文件管理进程,负责文件系统的管理。 ? 通信模块:网络通信模块是系统中最为独立的部分,它通过一系列的动态链接库来运作,这一部分因为牵涉到较多的 windows 平台公用特性,所有原始程序代码开放的程度也最低。位于 privatewindows ceoscomm 目录下。 ? oal 模块:没有确定的形态,主要包括和硬件相关的若干功能,例如总线控制器的驱动、处理器专用支持线程的代码、系统引导程序和初始化程序等。一般来说 oal 模块没有可移植性。 ? 驱动程序模块:严格意义上不是一个单独的软件实体,而是将很多驱动程序实体集合在一起,作为其他模块的底层。 ? 服务 services.exe:win32 系统服务。它是 windows ce 对应用程序提供的接口,多数公用的系统管理函数,如产生进程等,都是由 nk 负责。 下面介绍一下几个主要的模块功能: 1 系统运行时, windows ce 的内核表现为 nk.exe 进程16。 nk.exe 是所有 windows ce的系统中都存在的核心进程,它实现了 win32 api 核心中创建加载进程、线程调度、中断处理和内在管理等核心功能。nk.exe 由 nk.lib 与 oal.lib 组成。nk.lib 是由微软提供的,它的代码与 cpu 指令体系结构相关而与具体的外设无关, 此种设计可使 oal 尽可能小; oal.lib是 oem 层中的 oal 代码编译后的输出。 南京航空航天大学硕士学位论文 15 2coredll.dll 不是一个单独的进程,它是一个会被所有用户进程都加载的动态链接库。所有的应用程序都不能直接与操作系统或硬件打交道,如果用户程序希望访问 windows ce 所提供的服务,那么只能通过 coredll.dll 进行。调用示意图如图 2.10 所示。 应用程序win32api 代理本地函数coredll.dllnk.exe中断处理中断处理nk.liboal.libfilesys.exegwes.exedevice.exe硬件dll接口进程边界 图 2.10 windows ce 系统调用示意图 3windows ce 将应用编程接口、用户界面和图形设备接口组合在一起,组成了图形窗口事件子系统,也就是 gwes 模块,它包含了 windows ce 大部分的核心功能,是操作系统、应用程序以及用户之间的接口,同时,还负责部分驱动程序的加载(主要是和用户交互界面相关的驱动) ,比如键盘,鼠标,显示和触摸屏等驱动,此外还 gwes 还包含了电源管理和 led 等驱动程序。 4filesys 模块负责文件系统以及所有与文件相关的 api,它实现了对象存储和存储管理,允许自定义文件系统,筛选器和多种不同的块设备类型。用户数据和应用程序数据通过对象存储存入文件或者注册器。表 2.4 表示的是对象存储所支持的永久性存储器的类型17。 表 2.4 对象存储所支持的永久性存储器的类型 存储器类型 说明 文件系统 包含应用程序和数据文件 系统注册表 存储应用程序必须快速访问的系统配置信息以及其它任何信息 windows ce 数据库 提供结构化存储 基于 pxa27x 的嵌入式视频解码终端的研究与实现 16 windows ce 是高度模块化的嵌入式操作系统,用户可以根据各自的需要对操作系统进行定制,可裁剪性强,并且体积也小,充分适应一些硬件资源不足的嵌入式设备。同时 windows ce 具有多硬件平台支持,支持有线和无线的网络连接,稳健的实时性支持,丰富的多媒体和多语言支持和强大的开发工具等特点。由于 windows ce 的上述特性,它的应用极为广泛,几乎覆盖了生活中的所有电子设备如 pda、掌上电脑、stb、数字电视、数码相机、车载电脑、消费电子产品、家庭自动化产品、工控仪表与医疗器械等18。 南京航空航天大学硕士学位论文 17 第三章 系统硬件设计 本章主要介绍了系统硬件平台的设计, 分别描述了核心板的硬件结构和扩展板的硬件设计,并对扩展板上的各个模块进行了详细设计分析。 3.

温馨提示

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

评论

0/150

提交评论