基于Linux的XviD编码多核并行化的研究与实现

基于Linux的XviD编码多核并行化的研究与实现

论文摘要

随着多媒体技术的迅速发展和计算机的不断普及,计算机的性能也在不断发生变化。计算机运行速度快、运算量大、计算能力强等特点不断增强。同时,高质量视频的快速传输和共享已成为当前多媒体计算机用户主要的需求。大多数的视频编解码器在设计初始阶段都是在单核环境下进行设计的,现阶段,随着家用电脑、笔记本电脑等微型计算机性能的不断增强,多核计算机的大量出现,开发与多核相适应的软件就变得迫切且实际,同时视频编解码器如何在多核条件下更加高效、合理的处理大量的视频数据已成为亟待解决的问题。本文针对应用程序多核并行开发,在Linux环境下运用并行开发模型TBB(Intel Thread Building Blocks),结合Intel VTune Amplifier XE2011(性能分析器)对XviD视频编码中的串行程序进行并行化分析,找到应用程序代码中所谓的"热点”。在Intel同构多核平台上,运用Intel并行库TBB对不同的“热点”进行相应的并行化改造,主要包括循环并行化、内存并行化、数据并行化、流水线并行化和任务级并行化等几个部分。运用Intel线程检测器检测并行改进的程序,并利用并行程序重新测试视频测试序列,与在串行程序环境中的运行速度进行比较和分析。本文首先对多核并行软件的研究现状和发展前景进行了介绍,接着介绍了在Linux环境下Intel并行开发模型TBB的使用方法和本设计开发所需的开发工具,以及本设计的软硬件开发环境。重点研究了并行开发模型TBB在Linux环境下的运行机制、实现方法和编程方法。随后,对XviD视频编码的串行程序进行分析和研究,介绍了串行程序的结构特征,描述了XviD代码的总体架构,对各个模块的解码过程和模块之间的工作关系进行了阐述。之后,根据解码程序的特征和结构,对源程序进行并行化改进。最后在构建的实验环境下对改进后的程序进行了相关测试,并对实验结果和实验数据进行了分析。结果表明,应用程序进行并行化改造后,性能得到了明显的提升。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 引言
  • 1.2 本课题研究背景
  • 1.2.1 多核并行软件开发的研究现状和发展前景
  • 1.2.2 多核并行软件的应用领域
  • 1.2.3 本课题的研究现状
  • 1.2.4 本课题的研究目的和意义
  • 1.3 本课题的预期目标和主要工作内容
  • 1.3.1 预期目标
  • 1.3.2 主要工作内容
  • 1.3.3 课题的重点和难点
  • 1.3.4 课题的创新点
  • 第2章 关键技术与研究平台
  • 2.1 并行化模型工具
  • 2.1.1 并行化模型TBB
  • 2.1.2 并行开发工具
  • 2.2 Amdahl定律
  • 2.3 开发环境
  • 2.3.1 开发平台
  • 2.3.2 软件环境
  • 2.4 总体设计
  • 2.4.1 设计分析
  • 2.4.2 并行编程模型的选择
  • 2.4.3 并行化开发工具的选择
  • 2.4.4 并行程序开发模型
  • 2.4.5 并行程序开发步骤
  • 2.5 本章小结
  • 第3章 串行程序可并行化研究
  • 3.1 传统解决方案
  • 3.1.1 Linux POSIX多线程库并行方案
  • 3.1.2 OpenMP并行方案
  • 3.1.3 MPI并行方案
  • 3.1.4 TBB并行方案
  • 3.2 串行程序的结构特征
  • 3.2.1 串行程序总体架构
  • 3.2.2 XviD视频解码器的软件编译实现
  • 3.2.3 解码程序实现流程分析
  • 3.2.4 本文解码器性能测试
  • 3.2.5 串行程序的并行化条件
  • 3.2.6 串行程序的并行化可能性
  • 3.3 串行程序的解码性能分析
  • 3.4 原始程序的并行化方案
  • 3.4.1 原始程序的数据并行化和循环并行化
  • 3.4.2 原始程序的功能并行化分析
  • 3.5 原始程序的并行化分析总体解决方案
  • 3.6 本章小结
  • 第4章 串行程序并行化实现
  • 4.1 并行环境的构建
  • 4.2 并行设计模型的整体架构
  • 4.3 粒度划分和循环并行化实现
  • for循环并行化实现'>4.3.1 parallelfor循环并行化实现
  • 4.3.2 并行粒度划分设计
  • 4.3.3 粒度的划分实现
  • 4.4 内存并行化实现
  • 4.5 数据并行化实现
  • 4.6 流水线并行化实现
  • 4.7 任务级并行化实现
  • init任务调度设计'>4.7.1 TBB/schedulerinit任务调度设计
  • 4.7.2 TBB/task设计
  • 4.8 本章小结
  • 第5章 并行程序的调试与运行
  • 5.1 利用Intel C++Compiler调试程序
  • 5.2 Intel thread checker调试
  • 5.3 并行程序评测
  • 5.3.1 评测条件
  • 5.3.2 串行程序评测
  • 5.3.3 并行程序评测
  • 5.4 本章小结
  • 第6章 结论
  • 6.1 本文的工作总结
  • 6.2 进一步工作展望
  • 参考文献
  • 致谢
  • 攻读硕士学位期间发表的论文
  • 相关论文文献

    • [1].面向过程的任务并行化设计方法[J]. 计算机系统应用 2015(09)
    • [2].“地理计算并行化”专辑导言[J]. 地球信息科学学报 2015(05)
    • [3].“地理计算并行化”专辑征稿[J]. 地球信息科学学报 2014(06)
    • [4].迎接并行化的明天[J]. 软件世界 2009(06)
    • [5].并行化改进遗传算法的FPGA高速实现方法[J]. 信息与电子工程 2012(01)
    • [6].设计结合建造——我国建筑运作模式的“并行化”操作研究[J]. 建筑学报 2019(04)
    • [7].图染色算法的并行化[J]. 电脑编程技巧与维护 2018(03)
    • [8].交通网络微观仿真并行化实现方法[J]. 系统管理学报 2014(04)
    • [9].有限差分法的并行化计算实现[J]. 电脑知识与技术 2008(07)
    • [10].有限差分法的并行化计算实现[J]. 微型电脑应用 2008(05)
    • [11].装箱问题近似算法的并行化研究[J]. 中国科技信息 2009(17)
    • [12].面向场景的人群疏散并行化仿真[J]. 系统仿真学报 2008(18)
    • [13].C形状分析在函数和路径层次上的并行化[J]. 电子技术 2015(08)
    • [14].提升小波并行化处理研究[J]. 价值工程 2011(34)
    • [15].聚类分析的并行化实现技术研究[J]. 电子设计工程 2015(02)
    • [16].太赫兹通信中高速数字信号处理并行化算法[J]. 太赫兹科学与电子信息学报 2017(06)
    • [17].人体姿势估计中随机森林训练算法的并行化[J]. 计算机应用研究 2014(05)
    • [18].基于深度学习的文本情感分析并行化算法[J]. 西南交通大学学报 2019(03)
    • [19].自优化转导支持向量机并行化[J]. 计算机应用 2017(S2)
    • [20].基于海量日志的入侵检测并行化算法研究[J]. 现代电子技术 2016(19)
    • [21].电力通信大数据并行化聚类算法研究[J]. 电子技术应用 2018(05)
    • [22].全景监控视频并行化处理[J]. 软件导刊 2015(11)
    • [23].基于MapReduce的主成分分析算法研究[J]. 计算机科学 2017(02)
    • [24].基于Spark平台的热点话题发现算法并行化研究[J]. 软件导刊 2016(09)
    • [25].云平台下全维度电力设备监测数据并行化处理技术[J]. 电测与仪表 2020(09)
    • [26].基于Spark的分布式大数据并行化聚类方法研究[J]. 湖北第二师范学院学报 2019(08)
    • [27].基于ATM并行化采样优化算法的研究[J]. 长春师范大学学报 2018(06)
    • [28].面向非规则Doacross循环的反馈式编译框架[J]. 信息工程大学学报 2018(01)
    • [29].基于Geant4的射线探测仿真并行化研究[J]. 核电子学与探测技术 2011(11)
    • [30].不同操作平台上的MCNP并行化计算[J]. 中国原子能科学研究院年报 2009(00)

    标签:;  ;  ;  

    基于Linux的XviD编码多核并行化的研究与实现
    下载Doc文档

    猜你喜欢