Motion-JPEG-实验讲义

上传人:新** 文档编号:488168599 上传时间:2022-10-16 格式:DOC 页数:26 大小:1.54MB
返回 下载 相关 举报
Motion-JPEG-实验讲义_第1页
第1页 / 共26页
Motion-JPEG-实验讲义_第2页
第2页 / 共26页
Motion-JPEG-实验讲义_第3页
第3页 / 共26页
Motion-JPEG-实验讲义_第4页
第4页 / 共26页
Motion-JPEG-实验讲义_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《Motion-JPEG-实验讲义》由会员分享,可在线阅读,更多相关《Motion-JPEG-实验讲义(26页珍藏版)》请在金锄头文库上搜索。

1、实验基于ESL设计方法的Motion-JPEG视频解码器设计 本实验是在SoCLib仿真平台上完成的。 SoCLib是一个由法国TIMA Lab、Lip6等研究机构与ST Microelectronics等知名企业联合开发的,用于多核SoC系统架构设计的ESL建模仿真平台。SoCLib仿真平台所包含的全部IP模型、工具以及各种文档均遵循GNU Lesser General Public License(LGPL)开源协议,可免费下载使用。本实验参考了法国TIMA Lab用于研究生SoC设计课程的大作业“Integration of a Motion-JPEG Video Decodera pr

2、actical study”。实验总体目标: 以Motion-JPEG(MJPEG)视频解码算法为应用范例,借助SoCLib建模仿真平台1,通过ESL设计方法,使学生了解并掌握多核SoC(Multi-processor SoC,MPSoC)的系统架构设计与及软件设计方法。实验内容与学时安排:实验分为四个部分,由浅入深,从单核到多核,从单一任务执行到多线程并行执行,涵盖完整的SoC系统架构设计及软件设计过程。实验一 构建基于SoCLib的单核SoC(4学时)l 了解SoCLib电子系统级仿真平台l 学会如何在SoCLib平台上添加新的硬件模块l 编写简单C程序验证所添加的模块的正确性l 在所构建

3、的单核SoC上实现串行MJPEG解码应用,验证所搭建的SoC的正确性实验二 构建基于SoCLib的MPSoC(4学时)l 在单核SoC架构之上添加若干处理器构成MPSoCl 了解基于MPSoC的并行应用设计需求l 完成MJPEG解码的并行程序设计,移植到MPSoC之上,验证MPSoC的正确性l 修改MPSoC中的各种系统参数,比较在不同配置下并行MJPEG的运行性能实验三 系统软件开发 - 嵌入式操作系统及设备驱动设计(4学时)l 了解SoC的软件开发流程l 掌握简单的嵌入式操作系统的工作原理以及设备驱动设计方法l 编写帧缓存(framebuffer)的设备驱动程序l 通过MJPEG应用验证所

4、编写的驱动程序的正确性实验四 面向MJPEG解码的MPSoC系统架构的优化(4学时)l 添加DMA模块l 编写IDCT硬件模块的ESL高抽象层次模型,集成到MPSoC之上l 编写IDCT设备驱动l 通过MJPEG应用验证所优化的MPSoC的正确性实验准备工作:实验环境:Ubuntu 9.04注:其他Linux操作系统也可,但Windows操作系统不可使用实验平台:实验平台下载地址:libtool-1.5下载地址:http:/www.gnu.org/software/libtool/实验平台安装与测试:1 对压缩包libtool-1.5解压缩,然后安装libtool2 对压缩包projet_so

5、c解压缩,得到文件夹projet_soc3 设置环境变量SOCLIB_DIR=projet_soc文件夹所在的路径4 在主目录/home下创建一个工程目录,如/home/soclib_exp5 将文件夹projet/TP/TP0/HW复制到所创建的工程目录(注:该文件夹中包含了如图2所示的基于SoCLib构建的单核SoC ESL高层次抽象模型,即硬件部分)6 将文件夹projet/TP/TP0/SW/hello_world复制到所创建的工程目录(注:该文件夹中包含了在单核SoC上需要运行的helloworld测试程序,即软件部分)7 打开Shell控制台,进入projet/TP文件夹,输入so

6、urce install_env.sh设置系统环境变量8 进入/home/soclib_exp/hello_world文件夹,输入source install.sh configurations/mips运行脚本,然后输入make对软件部分进行编译9 进入/home/soclib_exp/HW文件夹,输入make对硬件部分进行编译10在HW文件夹下,输入ln -s ./hello_world/APP.x11输入./simulation.x -1,若出现如图1所示情况,则表示实验平台安装测试成功注:每次重新启动一次Shell控制台,均要重新运行一下步骤7中的脚本“install_env.sh”。

7、图1 实验平台测试结果实验平台目录结构: 本实验平台projet_soc的目录结构如图2所示。图2 实验平台projet_soc目录结构实验平台projet_soc包含两个子文件夹:PLATFORM和TP。其中PLATFORM为实验平台,TP为4个实验内容。PLATFORM文件夹包含两个子文件夹:l HW_PLATFORM:实验平台的硬件部分,又包含两个子文件夹,SoCLib和utils。SoCLib为本次实验所依赖的SoCLib ESL建模与仿真环境。utils包括了实验所需的工具,如仿真内核Systemcass、调试工具CDB。l SW_PLATFORM:实验平台的软件部分,又包含两个子文

8、件夹,APES和Toolchains。APES包括了本次实验所使用的嵌入式操作系统DNA。Toolchains包括了实验所需的MIPS处理器交叉编译链。TP文件夹包含五个子文件夹和一个脚本文件:l TP0TP2:分别对应了实验一、二、三的相关文件和说明。l vci_idct:对应实验四所需添加的idct模块的程序代码。l docs:包含了实现所需的文档,如CDB文档,VCI协议文档。l install_env.sh:设置各种环境变量的脚本。SoCLib ESL仿真平台及MJPEG解码流程的介绍1 SoCLib平台l SoCLib是一个由法国TIMA Lab、Lip6等研究机构与STMicrel

9、ectronics等知名企业联合开发的,用于多核SoC系统架构设计的ESL建模仿真平台。l SoCLib平台提供了用于SoC开发所需的丰富硬件IP模块的高抽象层次模型库,包括:ARM、MIPS、Nios等嵌入式微处理器、总线及片上网络、Cache、主存、各种外设等。所有的硬件IP模块均采用C+以及SystemC进行建模。此外SoCLib平台还提供了多个嵌入式操作系统和用于进行系统调试、监控、设计空间探测的工具。l SoCLib平台所提供的硬件IP模块均具有两种抽象层次模型,分别是:CABA(Cycle Accurate Bit Accurate)模型和TLM-DT(Transaction Le

10、vel Modeling with Distributed Time)模型。l SoCLib平台所提供的各种IP模块的高抽象层次模型均采用VISA组织(Virtual Socket Interface Alliance)的IP标准化接口VCI(Virtual Component Interface)进行封装,大大增加了IP模块的可复用性,可与任意的总线及片上网络协议进行互连。 l SoCLib平台所提供的所有模型以及工具均遵循LGPL开源协议,设计者可免费获取并根据设计需求对其进行修改、裁剪与扩充。更多关于SoCLib的细节,可浏览SoCLib主页进行了解与学习。主页地址:www. socli

11、b.fr2 Motion-JPEG解码流程Motion-JPEG是一种视频压缩编码格式,由一组连续的采用JPEG标准进行压缩的图像组成。由于相比其他视频格式占用相对较少的存储空间,因此MJPEG目前已被数码照相机、便携式摄像机广泛采用,用于视频短片的编码。在MJPEG中,每幅视频帧被单独捕获,并采用JPEG算法进行压缩。JPEG是由联合图像专家组(Joint Photographic Experts Group)提出的有损图像压缩算法2,使用有损压缩算法压缩所得图像质量将低于原始图像质量。但采用JPEG算法压缩的图像,其质量损失使用肉眼几乎无法识别,并能获得较高压缩比。JPEG压缩算法将图像分

12、割为以88个像素为单位的像素块,然后将每个像素块从时域转换到频域之上,采用滤波器去除高频分量,最后使用哈夫曼编码方法将像素块编码二进制码流。每个88的像素块称为宏块单元(MacroBlock Unit,MCU)。压缩的码流由一系列原始二进制数串组成,并使用标记进行分割。MJPEG的解码流程如图3所示。这个解码流程分为:哈夫曼解码(Huffman Decoding)、反锯齿扫描(Inverse Zigzag Scan)、反量化(Inverse Quantification)、块重排(Block Reordering)、反离散余弦变换(Inverse Discrete Cosine Transfo

13、rm,IDCT)五部分。 图3 MJPEG解码流程实验一 构建基于SoCLib的单核SoC实验目的与内容:1 了解SoCLib平台工作原理。2 掌握如何利用SoCLib定义一个单核SoC硬件平台,如何在该SoC平台之上添加其他硬件设备。3 学习如何编写简单C程序以控制各种硬件设备。4 在所定义的单核SoC上运行串行的Motion-JPEG程序。5 分析MJPEG解码每部分在单核上运行所需要的时间,思考对该算法进行并行化。实验步骤:1 首先,利用实验平台所提供的一个最基本的单核SoC熟悉SoCLib的工作原理。如图4所示,该单核SoC硬件平台由一个MIPS R3000处理器,一个存储器以及一个显

14、示终端TTY组成。这些硬件设备通过片上网络Generic Micronetwork(GMN)进行互连。图4 基本单核SoC硬件平台2 该基本单核SoC基于SoCLib实现的顶层文件top.cpp位于/projet_soc/TP/TP0/HW下。建议学生仔细阅读该顶层文件,了解如何通过该文件利用SoCLib所提供的各种ESL模型组件搭建SoC验证平台,如何定义声明各种设备模块以及各设备模块之间如何连接。3 在熟悉SoCLib工作原理和顶层文件top.cpp的组织形式后,在图5所示的单核SoC平台之上添加定时器VCI_TIMER、文件系统VCI_FDACCESS、帧缓存VCI_FRAMEBUFFE

15、R以及同步锁VCI_LOCKS等设备模块,修改后的单核SoC平台如图3所示。图5 修改后的单核SoC硬件平台 基于SoCLib添加各个设备模块时,应重点检查以下几个方面:l 设备模块与各种信号的声明是否正确?l 设备模块的初始化及各种参数的设置是否正确?l 各设备模块与互连网络及模块间信号的连接是否正确?l 各设备模块的内存映射(Memory Mapping)地址的设置是否正确?l 与互连网络连接的主设备、从设备数目设置是否正确?注意:使用SoCLib,每添加一个设备模块都会遇到上述问题,因此应该特别注意。4 编写简单的C程序,控制所添加的各种设备模块的功能,以验证SoC系统各设备工作的正确性。如何添加各设备模块以及如何使用请参见SoCLib主页中的相关信息:VCI_TIMER:http:/www.soclib.fr/trac/dev/wiki/Component/VciMultiTimerVCI_FDACCESS:http:/www.soclib.fr/trac/dev/wiki/Component/Vci

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号