《基于Xilinx FPGA的多核嵌入式系统设计基础》课件第6章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《基于Xilinx FPGA的多核嵌入式系统设计基础》课件第6章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Xilinx FPGA的多核嵌入式系统设计基础 基于Xilinx FPGA的多核嵌入式系统设计基础课件第6章 基于 Xilinx FPGA 多核 嵌入式 系统 设计 基础 课件
- 资源描述:
-
1、第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.1 图像格式介绍图像格式介绍6.2 RGB与与YCrCb颜色模型颜色模型6.3 RGB2YCrCb算法设计实验算法设计实验6.4 DCT算法设计实验算法设计实验6.5 单核执行图像处理算法以及时间测量单核执行图像处理算法以及时间测量6.6 多核执行图像处理算法以及时间测量多核执行图像处理算法以及时间测量6.7 本章小结本章小结 第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.1.1 BMP图片格式图片格式BMP(Bitmap)是Windows操作系统中的标准图像文件格式,能被多种Windows应用程序支持。其特点在于包
2、含的图像信息较为丰富,几乎不进行任何压缩,这点恰为后期的软件算法开发所充分利用。图6.1.1是名为“image01.bmp”的图片使用UltraEdit软件打开后的效果图。6.1 图像格式介绍图像格式介绍第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.1.1 image01.bmp采用UltraEdit打开后的效果图第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.1.2 JPEG图片格式图片格式JPEG(Joint Photographic Experts Group,联合图像专家组),是最常用的图像文件格式,也是一种有损压缩格式,能够将图像压缩在很小的存储空间,
3、图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。如果使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,就不宜采用过高压缩比例。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.2.1 RGB颜色模型颜色模型RGB(Red,Green,Blue)模型也称为加色法混色模型,它是以RGB三色光互相叠加来实现混色的方法,颜色模型如图6.2.1所示,适合于显示器等发光体的显示。其配色方程可以描述为F(物体颜色)=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)6.2 RGB与与YCrCb颜色模型颜色模型第第6章章 多核嵌入式系统软件开发多
4、核嵌入式系统软件开发 图6.2.1 RGB混色原理第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.2.2 YCrCb颜色模型颜色模型YCrCb模型与YIQ、YUV模型同为视频显示设备中常用的三种彩色空间。尤其分量视频的国际标准ITU-R BT.601-4使用的是YCrCb彩色空间,用于JPEG图像和MPEG视频压缩,也用于传输高质量的彩色视频信号。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.3.1 在双核通信系统上添加软件应用在双核通信系统上添加软件应用在双核通信系统上添加软件应用的具体步骤如下:(1)利用Software Add Software Applic
5、ation Project为基于Shared Memory机制的通信系统添加应用程序,也可以直接修改原工程上的shm.c文件,援用之前在MB0与MB1上的shm_on0和shm1工程。(2)援用原工程的方案,双击Project:shm_on0的Sources下的shm.c文件,如图6.3.1所示,直接对源文件做出设计和修改。6.3 RGB2YCrCb算法设计实验算法设计实验第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.1 双击Sources下的shm.c源文件第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.3.2 重要宏定义、数据结构设计重要宏定义、数据结构
6、设计重要宏定义、数据结构设计的具体步骤如下:(1)在RGB2YCrCb处理中,涉及到对很多内存地址的操作,下面对这些内存地址进行了预先的宏定义,以便在后续的代码中对内存进行相应的操作。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发(2)在RGB2YCrCb处理中,为了数据处理的中间结果存放,还需要定义很多数组,目的在于作为缓存区存放中间数据,设计如下:signed char pixelmatrixMACRO_BLOCK_SIZEMACRO_BLOCK_SIZE*3;/该二维数组用于存放划分的宏块,其中MACRO_BLOCK_SIZE在头/文件ejpgl.h中定义,如图6.3.2所示。
7、第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.2 ejpgl.h头文件的定义第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发(3)为了能够进行RGB2YCrCb处理,需要事先了解读入的BMP格式图片的信息头,故需要设计有关BMP图片信息头的数据结构以及其信息获取函数getbmpheader(),设计如下:int getbmpheader(FILE*file,INFOHEADER*header);/该函数用于读取BMP格式图片的文件头,在第6.1.1节中已经介绍了BMP格式/中前54个字节的意义,分别对应的是14字节的文件头信息块,40字节的图像描/述信息块。第第6
8、章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 Void get_MB(int mb_row,int mb_col,signed char pixelmatrixMICRO_BLOCK_SIZEMICRO_BLOCK_SIZE*3)/每次处理均以宏块作为一个单位,而函数get_MB则主要根据get_bmpheader函/数按行、按列将宏块数据存放于pixelmatrix二维数组中。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 typedef struct unsigned int size;/以字节表示的文件头大小 int width,height;/图像的宽度和高度 unsi
9、gned short int planes;/彩色平面个数 unsigned short int bits;/每像素占用的比特数 unsigned int compression;/压缩类型 unsigned int imagesize;/以字节数表示的图形大小 int xresolution,yresolution;/每米像素数,即水平与垂直分辨率 unsigned int ncolours;/颜色种类个数 unsigned int importantcolours;/重要的颜色数 unsigned char palette1024;/palette 的存储空间 INFOHEADER;第第6
10、章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 typedef struct unsigned int row;/宏块中图像的高度 unsigned int col;/宏块中图像的宽度 BLOCKINFO;第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.3.3 算法设计、编译与部署算法设计、编译与部署算法设计、编译与部署的具体步骤如下:(1)设计RGB2YCrCb的核心代码以及相关辅助函数。shm_write_ycrcb与shm_read_ycrcb函数设计。在介绍核心算法之前,这里先给出shm_write_ycrcb()函数,如图6.3.3所示。该函数主要用来将CPU0进行
11、RGB2YCrCb处理之后的数据写入共享区域中。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.3 shm_write_ycrcb函数设计第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 同理,如果有CPU0上的shm_write_ycrcb()函数,就该有对应的CPU1上的shm_read_ycrcb()函数,其定义和设计与写函数类似,如图6.3.4所示。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.4 shm_read_ycrcb函数设计第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 shm_clear_core0_to_core
12、1与shm_dump_core0_to_core1函数设计。每一个宏块处理其实分为6个区域,分别为4个Y分量区域、1个Cr分量区域以及1个Cb分量区域。在这里另外构造两个函数shm_clear_core0_to_core1()和shm_dump_core0_to_core1(),分别用于每次宏块处理前后清空6个区域块和每次RGB2YCrCb处理完之后打印出处理后的结果。函数定义如图6.3.5所示。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.5 用于清空和显示6块分量区域数据的函数设计第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 RGB2YCrCb核心代码设计
13、。RGB2YCrCb算法的核心部分如图6.3.6所示,主要是基于对一个宏块的处理。对于每个Y、Cr、Cb分量进行对应的RGB2Y、RGB2Cr、RGB2Cb操作,处理完成之后将结果存储至YMatrix、CrMatrix和CbMatrix二维数组中。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.6 RGB2YCrCb的函数定义和设计第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 (2)保存修改后的shm.c文件,并对其进行编译,点击按钮。编译中提示的错误可以依赖于本书附带光盘中给出的shm.c工程文件来修改,注意:该源文件用到的诸多头文件,光盘中同样给出了,读者只
14、需要双击Project:shm_on0下的header头文件进行添加,如图6.3.7所示。第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 图6.3.7 头文件的添加第第6章章 多核嵌入式系统软件开发多核嵌入式系统软件开发 6.3.4 下载比特流,配置下载比特流,配置FPGA下载比特流,配置FPGA的具体步骤如下:(1)正确连接好Virtex2Pro开发板,并给板子上电。(2)打开一个超级终端或是PuTTY工具,注意设置匹配的波特率、奇偶校验位以及流控制位等。(3)对于需要运行的应用程序,右键单击选中以初始化内存块。(4)在Device Configuration中点击下载比特流,配置
展开阅读全文