基于GPU的JPEG压缩算法实现 联系客服

发布时间 : 星期五 文章基于GPU的JPEG压缩算法实现更新完毕开始阅读f23c40be9f3143323968011ca300a6c30c22f1c4

龙源期刊网 http://www.qikan.com.cn

基于GPU的JPEG压缩算法实现

作者:李杰 刘灏 马恩财 刘明锋 来源:《电脑知识与技术》2014年第26期

摘要:图形处理器(Graphic Processing Unit),简称GPU,是针对多线程程序对吞吐量进行优化的处理器,在硬件设计上属于众核架构,非常适合于大规模并行计算任务。JPEG图像压缩作为计算密集型的矩阵数据运算,用GPU技术对JPEG算法进行实现,能充分发挥GPU的并行处理能力,极大提高编码效率。 关键词:GPU;CUDA;JPEG

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)26-6158-03 1 概述

在计算机系统中,GPU起初用于计算机图像的加速,为了适应图形图像应用中并行度高且计算量大的需要,优化硬件架构,相比CPU具有更多的流水线和内存吞吐量,使其非常适合于大规模并行计算[1]。CUDA 是NVIDIA推出的统一计算设备架构,是一种将GPU作为数据并行计算设备的软硬件体系,CUDA采用类C语言编程,掌握并行算法就可以控制GPU进行并行运算开发[2]。 2 CUDA编程方法

CUDA包含CUDA指令集架构以及GPU内部的并行计算引擎,使GPU能够解决复杂的计算问题[3][4]。GPU相当于拥有成千上百个核的CPU,对于并行计算任务,通过CUDA将相同计算逻辑的任务封装成kernel,然后控制所有的核同时运行kernel,就能展现GPU的高性能多任务并行处理能力。 4 结束语

本文用1024*1024大小的图像对程序进行测试。硬件平台:GPU为NVIDIA GT630;CPU为intel Q9550。软件平台:VS2008、CUDA3.2版驱动和工具开发包。运算时间测试结果如表1所示。可以看出,JPEG压缩算法在CPU和GPU两种不同平台的实现上速度差别非常明显,GPU运算占有极大的速度优势;同时由于图像文件较大,主机和GPU设备的数据传输占用时间较多,相对拖后了GPU带来的并行运算速度优势。

在序列图像持续产生的环境中,只要在两帧图像的间隔内完成数据传输和压缩过程,就可显著降低序列图像的数据流量,当压缩数据流小于硬盘写入带宽时,就可实现图像数据流的无失帧写入硬盘。由此可见,JPEG算法在GPU平台进行实现,可以应用在高速图像采集存储领域。