CN107483964A - 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法 - Google Patents

一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法 Download PDF

Info

Publication number
CN107483964A
CN107483964A CN201710666792.XA CN201710666792A CN107483964A CN 107483964 A CN107483964 A CN 107483964A CN 201710666792 A CN201710666792 A CN 201710666792A CN 107483964 A CN107483964 A CN 107483964A
Authority
CN
China
Prior art keywords
thread
block
wavelet transform
mrow
inverse wavelet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710666792.XA
Other languages
English (en)
Inventor
倪翠
王海波
李哲
王朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Jiaotong University
Original Assignee
Shandong Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Jiaotong University filed Critical Shandong Jiaotong University
Priority to CN201710666792.XA priority Critical patent/CN107483964A/zh
Publication of CN107483964A publication Critical patent/CN107483964A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公布了一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法。首先利用GPU共享存储器访问速度快的优势,在共享存储器中优化存储逆小波变换系数;然后根据逆小波变换过程中行与行、列与列处理相互独立的特点,采用一个block处理一行(列)像素的并行处理方式,根据同一行(列)像素处理时虽然有依赖性,但部分处理过程仍可并行的特点,采用一个线程处理若干个像素的并行处理方式,完成水平方向和垂直方向的逆小波变换。本发明所提出的逆小波变换加速方法,充分利用了GPU内核数多、适于并行运算的优势,能够有效提高JEPG2000的解压缩速度,且算法结构简单合理,易于在GPU上实现。

Description

一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速 方法
技术领域
本发明属于多媒体编解码领域,具体涉及一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法。
背景技术
随着多媒体技术和网络通信技术的快速发展,人们迫切需要一种压缩效果更佳优越,支持更多图像格式,并能够提供更多新特性的静态图像压缩标准。在2000年12月,联合图像专家组(Joint Photographic Experts Group,JPEG)推出了新一代静态图像压缩标准—JPEG2000。JPEG2000采用了小波变换、优化截取内嵌块编码和高效的码流组织形式,适用于各种类型的静态图像。JPGE2000的编码系统流程如图1所示。在编码过程中,首先对图像进行预处理(包括图像分块、电平位移和分量变换),其次是小波变换,然后是量化,最后对量化后的小波系数采用率失真优化截取的内嵌块编码算法EBCOT。EBCOT分为Tier-1(简称T1)和Tier-2(简称T2)两部分:T1由内嵌比特平面编码和MQ算术编码组成,T2由码率控制、质量分层和打包组成。
在小波变换部分,JPEG2000采用了离散小波变换。首先将原始图像按行进行水平方向的一维小波变换,经过水平变换后每一行数据都分解成沿水平方向分布的低频和高频分量,再将图像数据按列进行垂直方向的一维小波变换。经过一级分解,原始图像分解为四个尺寸为原始图像四分之一的子图,分别称为LL1子带、HL1子带、LH1子带和HH1子带,这些子带系数反映了图像在水平和垂直方向上的空间频率特性,并且每一个子带都可以描述原始图像。LL1子带系数反映了图像在水平和垂直方向的低频特性,对LL1子带继续进行水平和垂直方向的一维离散小波变换,LL1子带就被替换为LL2子带、HL2子带、LH2子带和HH2子带,如图2所示。同样LL2子带、HL2子带、LH2子带和HH2子带的尺寸都为LL1子带的四分之一,并且这四个子带也都可以描述原始图像。这样对图像进行多级小波变换,就可以得到不同尺寸的图像逼近。小波变换去除了图像内部像素之间的相关性,将大部分信息集中在较少的变换系数上,而大部分的变换系数含有较少的信息。后面的量化可将携带信息少的系数量化为0来达到图像压缩的目的。
JPEG2000采用了两种滤波器:LeGall(5,3)滤波器和Dauhechies(9,7)滤波器,前者适用于无损压缩,后者适用于近无损压缩和有损压缩。小波滤波器可采用卷积或者提升结构实现。提升结构包括分裂、预测和更新。分裂是将图像数据分成奇数集合和偶数集合,预测是用偶数集合预测奇数集合,然后用奇数集合减去偶数集合预测出的值,得到差值并用该差值替换奇数集合,该差值是高通小波系数,反映的是图像的细节成分。更新是用预测得到的高通小波系数跟偶数集合做运算,运算结果就是低通小波系数,反映的是图像的平滑部分。预测和更新可以重复多次。合成是将预测和更新后的奇偶集合重新合并成一个集合。
JPEG2000优秀的压缩性能是通过高复杂度的算法实现的,其解压缩算法的复杂度也相对较高,这在一定程度上制约了JPEG2000的应用,尤其是在实时性要求高的系统中的应用。本发明提出一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法,利用GPU内核数多、适于并行运算的有点,加速逆小波变换处理,提高JPEG2000的解压缩速度。
GPU(Graphic Processing Unit)是图形处理单元的简称。近年来,GPU发展速度极快,其单精度和双精度浮点计算能力均已上升到Teraflop级水平,单精度计算能力是同期CPU的10倍。GPU采用了跟CPU完全不同的硬件结构,将大部分晶体管用来完成计算,而不是用于构建缓存和控制电路。GPU的关键概念有SM、SP和存储器类型等。SM(StreamMultiprocessor)是流多处理器的简称,是GPU硬件架构的基本单元。一块GPU显卡包含多个SM,各SM之间相对独立。SP(Stream Processor)是SM的主要执行单元,一个SM包含多个SP,各SP之间也相对独立。存储器类型共有6种,分别是寄存器、局部存储器、共享存储器、全局存储器、常数存储器和纹理存储器,其中,寄存器的访问速度最快,共享存储器的访问速度和寄存器几乎一样快,且每个SM都有自己独立的共享存储器。
CUDA是NVIDIA发布的运行在GPU上的一种软件编程语言,类似于C语言。运行CUDA编写的程序时,运行在GPU上的函数称为kernel,kernel以线程网络Grid的形式组织线程,Grid由多个线程块(block)组成,每个block又由多个线程(thread)组成。在执行时,block被分发到SM上,一个SM可以执行多个block。各block相互独立并行执行,没有执行顺序。在block内部,32个thread组成一个线程束(warp),warp里面的thread是由SM中的SP并行执行,各warp也没有执行顺序。CUDA可以有效地利用GPU的计算资源和存储器资源,已经被广泛应用于图像处理、人工智能、数值计算等多个领域。
本发明通过对JPEG2000压缩算法中的小波变换部分进行分析发现,在JPEG2000压缩过程中,采用先按行进行水平方向的一维小波变换,再按列进行垂直方向的一维小波变换的方式。解压缩是压缩的逆过程,解压缩的小波变换部分也包含行处理和列处理。行处理是压缩过程按行小波变换的逆运算,列处理是压缩过程中按列小波变换的逆运算。在行处理时,每一行的处理方式都是一样的,行与行之间可以并行处理。同样,在列处理时,列与列之间也可以并行处理。且在处理每一行或每一列的像素时,像素点之间的依赖性很小,也可以采用并行处理的方式。由此可以看出,逆小波变换中的运算可并行度较高,特别适合于利用GPU实现。因此,本发明提出一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法,利用共享存储器对逆小波变换系数优化存储,针对行处理和列处理,分别设计高并行度的计算方法,达到加速解压缩的目的。
发明内容:
本发明要解决的技术问题是提供一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法,合理利用共享存储器优化存储逆小波变换系数,提高逆小波变换的计算并行性,达到提高JPEG2000解压缩速度的目的。
本发明采用如下技术方案实现发明目的:
一种利用GPU实现JPEG2000解压缩算中逆小波变换的加速方法,其特征在于,该方法的步骤如下:
(1)、根据JPEG2000压缩算法中采用的小波变换级数,计算当前待解压缩子带的宽度width;
(2)、根据JPEG2000压缩算法中采用的小波变换级数,计算当前待解压缩子带的高度height;
(3)、利用GPU的共享存储器优化存储逆小波变换系数,设计行与行之间的并行策略,对图像按行进行水平方向的一维逆小波变换;
(4)、利用GPU的共享存储器优化存储逆小波变换系数,设计列与列之间的并行策略,对图像按列进行垂直方向的一维逆小波变换;
(5)、将逆小波变换后的数据从GPU的共享存储器拷贝到全局存储器。
作为对本技术方案的进一步限定,所述步骤(3)具体包括如下步骤:
(31)、根据步骤(2)计算的子带高度height,在GPU中启动height个线程块block,每个线程块block负责对当前子带的一行数据进行水平方向的一维逆小波变换;
(32)、在每个线程块block中,启动个线程,每个线程负责对该行相邻的num个像素进行一维逆小波变换,其中,num表示每个线程所要处理的像素个数;
(33)、设置GPU的共享存储器,大小为width字节,并将逆小波变换系数从全局存储器拷贝到共享存储器中;
(34)、根据线程块block编号和线程thread编号,计算每个线程所要处理的像素位置:
其中,pixi,j(n)表示第j个线程块block中第i个线程所要处理的第n个像素在当前子带中的位置;blockj表示第j个线程块block;threadi表示第j个线程块block中的第i个线程;
(35)更新对应位置的逆小波变换系数。
作为对本技术方案的进一步限定,所述步骤(4)具体包括如下步骤:
(41)、根据步骤(2)计算的子带宽度width,在GPU中启动width个线程块block,每个线程块block负责对当前子带的一列数据进行垂直方向的一维逆小波变换;
(42)、在每个线程块block中,启动个线程,每个线程负责对该列相邻的num个像素进行一维逆小波变换;
(43)、设置GPU的共享存储器,大小为height字节,并将逆小波变换系数从全局存储器拷贝到共享存储器中;
(44)、根据线程块block编号和线程thread编号,计算每个线程所要处理的像素位置:
其中,pixi,j(n)表示第j个线程块block中第i个线程所要处理的第n个像素在当前子带中的位置;blockj表示第j个线程块block;threadi表示第j个线程块block中的第i个线程;
(45)更新对应位置的逆小波变换系数。
作为对本技术方案的进一步限定,所述步骤(5)具体包括如下步骤:
(51)、根据压缩过程中采用的分量变换形式,采用一个线程块block处理一列像素,每个线程块block启动多个线程,每个线程处理num个像素的并行方式,对逆小波变换后的数据进行分量逆变换;
(52)、分量逆变换之后,将数据从GPU的共享存储器拷贝到全局存储器。
与现有技术相比,本发明的优点和积极效果是:本发明提出一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法,该方法合理利用GPU中大小有限但访问速度较快的共享存储器,在对子带进行逆小波变换之前,将逆小波变换系数从全局存储器拷贝到共享存储器,提高了在计算过程中的数据访问速度;通过对JPEG2000解压缩中的逆小波变换进行深入分析,充分利用GPU内核数多、适于并行运算的特点,设计高并行度的行与行、列与列、像素与像素间的运算方法,极大提高了逆小波变换速度。本发明所提出的逆小波变换加速方法能够有效提高JPEG2000的解压缩速度,算法结构简单合理,易于在GPU中实现。
附图说明
图1为JPEG2000编码框架。
图2为二级小波变换的子带分布示意图。
具体实施方式:
下面结合实施例,进一步说明本发明。
为了提高JPEG2000的解压缩速度,本发明提出一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法。该方法首先根据逆小波变换级数,计算当前子带的宽度和高度。然后根据子带宽度设置共享存储器,存储逆小波变换系数,设计行与行、像素与像素并行处理的逆小波变换方法,对子带进行水平方向的逆小波变换,并更新逆小波变换系数。水平方向的逆小波变换结束后,再根据子带高度设置共享存储器,存储逆小波变换系数,设计列与列、像素与像素并行处理的逆小波变换方法,对子带进行垂直方向的逆小波变换,并更新逆小波变换系数。最后,对逆小波变换后的数据进行分量逆变换,从GPU的共享存储器拷贝到全局存储器中,完成逆小波变换过程。
本发明通过分析JPEG2000解压缩算法中的逆小波变换过程,发现其行与行、列与列之间在进行逆小波变换运算时,不存在相互间的依赖性,可以并行计算;像素与像素之间在进行逆小波变换运算时,虽然存在相互间的依赖性,但部分过程也可以采用并行计算。针对上述特点,提出一种利用GPU实现JPEG2000解压缩算法中逆小波变换的加速方法。
在介绍具体实施方式前,首先对本发明用到的参数进行说明。
pixi,j(n):第j个线程块block中第i个线程所要处理的第n个像素在当前子带中的位置;
blockj:第j个线程块block;
threadi:第j个线程块block中的第i个线程;
height:当前子带高度;
width:当前子带宽度;
num:每个线程所要处理的像素个数,本发明中取值为2。
下面对本发明展开具体说明。
JPEG2000压缩算法的稳定性和抗干扰性较好,能够实现高性能压缩,可以利用其在有限的信道带宽和存储空间上传输和存储大尺寸的数字图像。但是该算法具有很高的复杂度,利用传统的CPU进行JPEG2000解压缩时,要实现实时码流解压缩就需要有非常先进的硬件支持,以及复杂的解压缩系统设计。而GPU由于具有大量计算单元、适于并行运算的优势,且基于CUDA架构设计,相对比较容易进行并行程序的实现。通过对JPEG2000解压缩算法中逆小波变换部分进行分析,发现该部分尤其适合利用GPU进行并行设计。通过改善逆小波变换算法并行度,高效利用GPU硬件资源,不仅可以大大提高JPEG2000的解压缩速度,节省硬件成本,还可以极大缩短软件开发周期。
在JPEG2000中,二维图像的离散小波变换采用Mallat分解结构,先按行进行水平方向的一维小波变换,再按列进行垂直方向的一维小波变换。解压缩是压缩的逆过程,解压缩中的逆小波变换部分也包含行处理和列处理。通过对逆小波变换部分进行深入分析发现,在行处理时,每一行的处理方式都是一样的,且行与行之间的处理没有依赖性,可以并行处理;同样,在列处理时,每一列的处理方式都一样,且列与列之间的处理也没有依赖性,也可以并行处理。因此,在逆小波变换部分,可以利用GPU的全部资源,设计高并行度算法,对一幅图像进行逆小波变换。
在进行行处理时,为了提高处理并行度,采用一个线程块block处理一行数据的方式,共启动height个block。block与block之间的处理是相互独立的,恰好满足行与行并行处理的需求。在对每一行进行处理时,通过分析可以发现,像素与像素之间的处理虽然有一定的依赖关系,但是部分处理过程也可以采用并行处理方式。因此,本发明在进行行处理时,每个block中启动个线程,每个线程负责处理num个相邻像素。在处理像素时,如果不使用GPU的共享存储器,就会产生大量和全局存储器之间的交互,严重影响处理速度。因此,需要使用共享存储器来做中间过渡。由于GPU的共享存储器很小(不同型号的GPU共享存储器大小不同,较大的也只有48KB),对于较大尺寸的图像,不能一次将整幅图像全部放入共享存储器。本发明中,采用一个block处理一行数据的方式,为了利用共享存储器访问速度快的优势,每次先将一行数据全部放入共享存储器。这样,每个线程在处理数据时,就可以直接从共享存储器读取数据,大大提高了数据处理速度。在行处理中,根据block编号和线程编号,就可以根据公式(1)计算出每个线程所要处理的像素位置:
上述处理结束后,对逆小波变换系数进行更新。至此,行处理结束,再进行列处理。
本发明在进行列处理时,每个线程块block中启动个线程,每个线程负责处理垂直方向排列的num个像素。同样,需要使用共享存储器来做中间过渡。本发明中,采用一个block处理一列数据的方式,为了利用共享存储器访问速度快的优势,每次先将一列数据全部放入共享存储器。在列处理中,根据block编号和线程编号,就可以根据公式(2)计算出每个线程所要处理的像素位置:
上述处理结束后,对逆小波变换系数进行更新。至此,逆小波变换处理结束。之后,根据压缩时采用的分量变换方法(可逆分量变换RCT或不可逆分量变换ICT),对逆小波变换后的数据进行相应的分量逆变换,再将数据从GPU的共享存储器拷贝到全局存储器。
以上公开的仅为本发明的具体实施例。根据本发明提供的技术思想,本领域的技术人员所能思及的变化,都应落入本发明的保护范围内。

Claims (4)

1.一种利用GPU实现JPEG2000解压缩算中逆小波变换的加速方法,其特征在于,该方法的步骤如下:
(1)、根据JPEG2000压缩算法中采用的小波变换级数,计算当前待解压缩子带的宽度width;
(2)、根据JPEG2000压缩算法中采用的小波变换级数,计算当前待解压缩子带的高度height;
(3)、利用GPU的共享存储器优化存储逆小波变换系数,设计行与行之间的并行策略,对图像按行进行水平方向的一维逆小波变换;
(4)、利用GPU的共享存储器优化存储逆小波变换系数,设计列与列之间的并行策略,对图像按列进行垂直方向的一维逆小波变换;
(5)、将逆小波变换后的数据从GPU的共享存储器拷贝到全局存储器。
2.根据权利要求1所述的利用GPU实现JPEG2000解压缩算中逆小波变换的加速方法,其特征在于,所述步骤(3)具体包括如下步骤:
(31)、根据步骤(2)计算的子带高度height,在GPU中启动height个线程块block,每个线程块block负责对当前子带的一行数据进行水平方向的一维逆小波变换;
(32)、在每个线程块block中,启动个线程,每个线程负责对该行相邻的num个像素进行一维逆小波变换,其中,num表示每个线程所要处理的像素个数;
(33)、设置GPU的共享存储器,大小为width字节,并将逆小波变换系数从全局存储器拷贝到共享存储器中;
(34)、根据线程块block编号和线程thread编号,计算每个线程所要处理的像素位置:
pixi,j(0)=blockj*width+threadi*num
pixi,j(1)=blockj*width+threadi*num+1
......
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>pix</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>block</mi> <mi>j</mi> </msub> <mo>*</mo> <mi>w</mi> <mi>i</mi> <mi>d</mi> <mi>t</mi> <mi>h</mi> <mo>+</mo> <msub> <mi>thread</mi> <mi>i</mi> </msub> <mo>*</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mo>+</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mfrac> <mrow> <mi>w</mi> <mi>i</mi> <mi>d</mi> <mi>t</mi> <mi>h</mi> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> </mrow> </mfrac> <mo>;</mo> <mi>j</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>h</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </mtd> </mtr> </mtable> </mfenced>
其中,pixi,j(n)表示第j个线程块block中第i个线程所要处理的第n个像素在当前子带中的位置;blockj表示第j个线程块block;threadi表示第j个线程块block中的第i个线程;
(35)更新对应位置的逆小波变换系数。
3.根据权利要求1所述的利用GPU实现JPEG2000解压缩算中逆小波变换的加速方法,其特征在于,所述步骤(4)具体包括如下步骤:
(41)、根据步骤(2)计算的子带宽度width,在GPU中启动width个线程块block,每个线程块block负责对当前子带的一列数据进行垂直方向的一维逆小波变换;
(42)、在每个线程块block中,启动个线程,每个线程负责对该列相邻的num个像素进行一维逆小波变换;
(43)、设置GPU的共享存储器,大小为height字节,并将逆小波变换系数从全局存储器拷贝到共享存储器中;
(44)、根据线程块block编号和线程thread编号,计算每个线程所要处理的像素位置:
pixi,j(0)=(threadi*num)*width+blockj
pixi,j(1)=((threadi*num)+1)*width+blockj
......
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>pix</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mo>(</mo> <mrow> <msub> <mi>thread</mi> <mi>i</mi> </msub> <mo>*</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> </mrow> <mo>)</mo> <mo>+</mo> <mi>n</mi> <mi>u</mi> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>*</mo> <mi>w</mi> <mi>i</mi> <mi>d</mi> <mi>t</mi> <mi>h</mi> <mo>+</mo> <msub> <mi>block</mi> <mi>j</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mfrac> <mrow> <mi>h</mi> <mi>e</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> <mrow> <mi>n</mi> <mi>u</mi> <mi>m</mi> </mrow> </mfrac> <mo>;</mo> <mi>j</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>w</mi> <mi>i</mi> <mi>d</mi> <mi>t</mi> <mi>h</mi> </mrow> </mtd> </mtr> </mtable> </mfenced>
其中,pixi,j(n)表示第j个线程块block中第i个线程所要处理的第n个像素在当前子带中的位置;blockj表示第j个线程块block;threadi表示第j个线程块block中的第i个线程;
(45)更新对应位置的逆小波变换系数。
4.根据权利要求1所述的利用GPU实现JPEG2000解压缩算中逆小波变换的加速方法,其特征在于,所述步骤(5)具体包括如下步骤:
(51)、根据压缩过程中采用的分量变换形式,采用一个线程块block处理一列像素,每个线程块block启动多个线程,每个线程处理num个像素的并行方式,对逆小波变换后的数据进行分量逆变换;
(52)、分量逆变换之后,将数据从GPU的共享存储器拷贝到全局存储器。
CN201710666792.XA 2017-08-07 2017-08-07 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法 Pending CN107483964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710666792.XA CN107483964A (zh) 2017-08-07 2017-08-07 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710666792.XA CN107483964A (zh) 2017-08-07 2017-08-07 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法

Publications (1)

Publication Number Publication Date
CN107483964A true CN107483964A (zh) 2017-12-15

Family

ID=60597783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710666792.XA Pending CN107483964A (zh) 2017-08-07 2017-08-07 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法

Country Status (1)

Country Link
CN (1) CN107483964A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491261A (zh) * 2018-01-19 2018-09-04 西安电子科技大学 基于众核并行处理器的多路帧序列排序方法
CN109451322A (zh) * 2018-09-14 2019-03-08 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN114710677A (zh) * 2022-01-12 2022-07-05 华芯算科学技术(苏州)有限公司 图像压缩方法、装置、存储介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080186313A1 (en) * 2007-02-06 2008-08-07 Samsung Electronics Co., Ltd. Method and apparatus for high-speed image processing based on graphic processing unit
US20140043347A1 (en) * 2012-08-10 2014-02-13 Electronics And Telecommunications Research Institute Methods for jpeg2000 encoding and decoding based on gpu
CN104185030A (zh) * 2014-09-05 2014-12-03 西安电子科技大学 基于gpu的jpeg2000图像解压缩实现方法
CN105120293A (zh) * 2015-08-26 2015-12-02 中国航空工业集团公司洛阳电光设备研究所 基于cpu和gpu的图像协同解码方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080186313A1 (en) * 2007-02-06 2008-08-07 Samsung Electronics Co., Ltd. Method and apparatus for high-speed image processing based on graphic processing unit
US20140043347A1 (en) * 2012-08-10 2014-02-13 Electronics And Telecommunications Research Institute Methods for jpeg2000 encoding and decoding based on gpu
CN104185030A (zh) * 2014-09-05 2014-12-03 西安电子科技大学 基于gpu的jpeg2000图像解压缩实现方法
CN105120293A (zh) * 2015-08-26 2015-12-02 中国航空工业集团公司洛阳电光设备研究所 基于cpu和gpu的图像协同解码方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈玮青: "《基于GPU的JPEG2000算法研究—小波算法在GPU上的实现》", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
韩小晴: "《基于Kakadu的JPEG2000解码系统GPU并行优化》", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491261A (zh) * 2018-01-19 2018-09-04 西安电子科技大学 基于众核并行处理器的多路帧序列排序方法
CN109451322A (zh) * 2018-09-14 2019-03-08 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN109451322B (zh) * 2018-09-14 2021-02-02 北京航天控制仪器研究所 用于图像压缩的基于cuda架构的dct算法和dwt算法的加速实现方法
CN114710677A (zh) * 2022-01-12 2022-07-05 华芯算科学技术(苏州)有限公司 图像压缩方法、装置、存储介质及终端
CN114710677B (zh) * 2022-01-12 2023-07-18 华芯算科学技术(苏州)有限公司 图像压缩方法、装置、存储介质及终端

Similar Documents

Publication Publication Date Title
van der Laan et al. Accelerating wavelet lifting on graphics hardware using CUDA
CN110163370A (zh) 深度神经网络的压缩方法、芯片、电子设备及介质
CN102158694B (zh) 一种基于gpu的遥感图像解压缩方法
DE102018110687A1 (de) Dynamisches Genauigkeitsmanagement für Deep-Learning-Ganzzahlprimitive
US8325197B2 (en) Method and apparatus for high-speed image processing based on graphic processing unit
CN103905831B (zh) 基于图形处理器的条带波变换图像压缩方法
CN107483964A (zh) 一种利用gpu实现jpeg2000解压缩算法中逆小波变换的加速方法
CN105847800A (zh) 基于全相位离散正弦双正交变换的图像压缩方法及系统
CN101917622B (zh) 14bit位宽图像压缩硬件编码器
Le et al. A novel parallel Tier-1 coder for JPEG2000 using GPUs
CN103414901A (zh) 一种快速jpeg2000图像压缩系统
Quan et al. A fast discrete wavelet transform using hybrid parallelism on GPUs
Bernabé et al. Parallel implementations of the 3D fast wavelet transform on a Raspberry Pi 2 cluster
Haweel et al. Fast approximate DCT with GPU implementation for image compression
Liu et al. Image compression based on octave convolution and semantic segmentation
DE102022125600A1 (de) Eingabefilterung und abtaster-beschleunigung für supersampling
ZainEldin et al. A modified listless strip based SPIHT for wireless multimedia sensor networks
Matela GPU-based DWT acceleration for JPEG2000
Rubino et al. Real-time rate distortion-optimized image compression with region of interest on the ARM architecture for underwater robotics applications
Sharma et al. Parallel discrete wavelet transform using the open computing language: A performance and portability study
CN107170017A (zh) 基于cpu/gpu协同处理的遥感数据快速入库方法
Datla et al. Parallelizing motion JPEG 2000 with CUDA
Matela et al. GPU-based sample-parallel context modeling for EBCOT in JPEG2000
Galiano et al. Fast 3D wavelet transform on multicore and many-core computing platforms
Shahbahrami Improving the performance of 2D discrete wavelet transform using data-level parallelism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171215