CN103260034A - 一种OpenCL J2K压缩方法 - Google Patents

一种OpenCL J2K压缩方法 Download PDF

Info

Publication number
CN103260034A
CN103260034A CN2013101764037A CN201310176403A CN103260034A CN 103260034 A CN103260034 A CN 103260034A CN 2013101764037 A CN2013101764037 A CN 2013101764037A CN 201310176403 A CN201310176403 A CN 201310176403A CN 103260034 A CN103260034 A CN 103260034A
Authority
CN
China
Prior art keywords
thread
result
stored
thread block
compression
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.)
Granted
Application number
CN2013101764037A
Other languages
English (en)
Other versions
CN103260034B (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201310176403.7A priority Critical patent/CN103260034B/zh
Publication of CN103260034A publication Critical patent/CN103260034A/zh
Application granted granted Critical
Publication of CN103260034B publication Critical patent/CN103260034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本发明公开一种Open CLJ2K压缩方法,包括,上传待压缩图像到GPU;对图像进行5级小波行变换;对图像进行5级小波列变换;对5级小波列变换后的图象进行量化处理;对量化处理的结果进行Tier1压缩,压缩结果存在GPU内存中;下载步骤5压缩结果到CPU内存中,在CPU上实现Tier2压缩、存储JP2文件到硬盘。本发明连续进行5级小波行变换和列变换,减少了Open CL内核的切换次数;在GPU上进行Tier1压缩,降低了CPU的负荷。

Description

一种OpenCL J2K压缩方法
 
技术领域
本发明涉及一种OpenCL J2K压缩方法,属于计算机图像压缩处理技术领域。
背景技术
JPEG 2000是一个基于小波的图像压缩标准。JPEG 2000的目的不仅是改善JPEG的压缩性能,它也增添(或改善)了很多例如可扩展性和可修改性的功能。JP2压缩包括四个步骤:小波变换,量化,Tier1压缩和Tier2压缩。
JPEG 2000的压缩比更高,而且不会产生原先的基于离散余弦变换的JPEG标准产生的塊狀模糊瑕疵。缺点是压缩速度比较慢。JP2压缩包括四个步骤:小波变换,量化,Tier1压缩和Tier2压缩;切换次数较多,压缩效率低。传统的GPU加速的JP2压缩算法主要是在将小波变换移植到GPU上,其他的处理仍然在CPU上进行,加重了CPU的负荷。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种OpenCL J2K压缩方法。
技术方案:一种OpenCL J2K压缩方法,包括 CPU程序和四个 GPU内核程序。四个GPU内核程序分别是:
1.小波行变换内核程序K1,用于对图像的一行进行小波变换。
2.小波列变换内核程序K2,用于对图像的一列进行小波变换。
3.量化处理内核程序K3,用于在GPU上进行量化处理。
4.Tier1压缩内核程序K4,用于在GPU上进行Tier1压缩。
本方法的主要特点为:
1.   连续进行5级小波行变换和列变换,减少了OpenCL内核的切换次数。
2.   在GPU上进行Tier1压缩,降低了CPU的负荷。
具体包括如下步骤:
步骤1:上传待压缩图像到GPU;
步骤2:5级小波变换,循环5次,n = 5;
步骤3:对待压缩图像进行小波行变换;
步骤4:n = n -1,如果n > 0,转步骤3;
步骤5:对小波行变换所得结果图像进行5级小波列变换;
步骤6:对5级小波列变换后的图像进行量化处理;
步骤7:对量化处理的结果进行Tier1压缩,压缩结果存在GPU内存中;
步骤8:下载步骤7的压缩结果到CPU;
步骤9:在CPU上实现Tier2压缩、存储JP2文件到硬盘。
所述小波行变换内核程序K1的主要步骤为(每个线程块处理一行图像):
步骤301:线程块读取该线程块对应的图像行,存储在共享内存;
步骤302:线程块内所有线程同步;
步骤303:9-7小波变换第一步,结果存储在共享内存;
步骤304:线程块内所有线程同步;
步骤305:9-7小波变换第二步,结果存储在共享内存;
步骤306:线程块内所有线程同步;
步骤307:9-7小波变换第三步,结果存储在共享内存;
步骤308:线程块内所有线程同步;
步骤309:9-7小波变换第四步,结果存储在共享内存;
步骤310:线程块内所有线程同步;
步骤311:9-7小波变换第五步,结果存储在共享内存;
步骤312:线程块内所有线程同步;
步骤313:9-7小波变换第六步,结果存储目标图像。
小波列变换内核程序K2的主要步骤为(每个线程块处理一列图像):
步骤501:线程块读取该线程块对应的图像列,存储在共享内存;
步骤502:线程块内所有线程同步;
步骤503:9-7小波变换第一步,结果存储在共享内存;
步骤504:线程块内所有线程同步;
步骤505:9-7小波变换第二步,结果存储在共享内存;
步骤506:线程块内所有线程同步;
步骤507:9-7小波变换第三步,结果存储在共享内存;
步骤508:线程块内所有线程同步;
步骤509:9-7小波变换第四步,结果存储在共享内存;
步骤510:线程块内所有线程同步;
步骤511:9-7小波变换第五步,结果存储在共享内存;
步骤512:线程块内所有线程同步;
步骤513:9-7小波变换第六步,结果存储目标图像。
Tier1压缩内核程序K4主要步骤为(每个线程处理一个码块):
步骤701:寻找一个线程所处理码块中的所有像素点的最大值,计算该最大值所在的位平面m;
步骤702:清除编码(Cleanup coding);
步骤703:符号编码(Sign coding); 
步骤704:幅度细化编码(Refinement coding);
步骤705:清除编码(Cleanup coding);
步骤706:m = m - 1,如果 m >= 0,转步骤703。
本发明采用上述技术方案,具有以下有益效果:大幅度提高了JP2 图像压缩的速度,能在30毫秒能实现100像素16位图像的压缩,可以在微机上实现高清晰图像的实时压缩,可广泛地用于医疗图像图像处理和航空测量等领域。 
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
OpenCL J2K压缩方法,包括如下步骤:
对图像进行5级小波行变换。
对图像进行5级小波列变换。
对变换后的图象进行量化处理。
对处理的结果进行Tier1压缩,压缩结果存在GPU内存中。
下载上一步结果到CPU,在CPU上实现Tier2压缩、存储JP2文件到硬盘。
其中,
所述小波行变换的主要步骤为(每个线程块处理一行图像):
步骤301:线程块读取该线程块对应的图像行,存储在共享内存;
步骤302:线程块内所有线程同步;
步骤303:9-7小波变换第一步,结果存储在共享内存;
步骤304:线程块内所有线程同步;
步骤305:9-7小波变换第二步,结果存储在共享内存;
步骤306:线程块内所有线程同步;
步骤307:9-7小波变换第三步,结果存储在共享内存;
步骤308:线程块内所有线程同步;
步骤309:9-7小波变换第四步,结果存储在共享内存;
步骤310:线程块内所有线程同步;
步骤311:9-7小波变换第五步,结果存储在共享内存;
步骤312:线程块内所有线程同步;
步骤313:9-7小波变换第六步,结果存储目标图像。
小波列变换的主要步骤为(每个线程块处理一列图像):
步骤501:线程块读取该线程块对应的图像列,存储在共享内存;
步骤502:线程块内所有线程同步;
步骤503:9-7小波变换第一步,结果存储在共享内存;
步骤504:线程块内所有线程同步;
步骤505:9-7小波变换第二步,结果存储在共享内存;
步骤506:线程块内所有线程同步;
步骤507:9-7小波变换第三步,结果存储在共享内存;
步骤508:线程块内所有线程同步;
步骤509:9-7小波变换第四步,结果存储在共享内存;
步骤510:线程块内所有线程同步;
步骤511:9-7小波变换第五步,结果存储在共享内存;
步骤512:线程块内所有线程同步;
步骤513:9-7小波变换第六步,结果存储目标图像。
Tier1压缩的主要步骤为(每个线程处理一个码块):
步骤701:寻找该线程所处理码块中的最大值,计算该最大值所在的位平面n;
步骤702:清除编码(Cleanup coding);
步骤703:符号编码(Sign coding); 
步骤704:幅度细化编码(Refinement coding);
步骤705:清除编码(Cleanup coding);
步骤706:n = n-1,如果 n >= 0,转步骤703。

Claims (4)

1. 一种OpenCL J2K压缩方法,其特征在于,包括如下步骤:
步骤1,上传待压缩图像到GPU;
步骤2,对图像进行5级小波行变换;
步骤3,对图像进行5级小波列变换;
步骤4,对5级小波列变换后的图象进行量化处理;
步骤5,对量化处理的结果进行Tier1压缩,压缩结果存在GPU内存中;
步骤6,下载步骤5压缩结果到CPU内存中,在CPU上实现Tier2压缩、存储JP2文件到硬盘。
2. 如权利要求1所述的OpenCL J2K压缩方法,其特征在于,所述小波行变换的主要步骤为,其中每个线程块处理一行图像,
步骤301:通过线程块读取该线程块对应的图像行,存储在共享内存;
步骤302:线程块内所有线程同步;
步骤303:9-7小波变换第一步,结果存储在共享内存;
步骤304:线程块内所有线程同步;
步骤305:9-7小波变换第二步,结果存储在共享内存;
步骤306:线程块内所有线程同步;
步骤307:9-7小波变换第三步,结果存储在共享内存;
步骤308:线程块内所有线程同步;
步骤309:9-7小波变换第四步,结果存储在共享内存;
步骤310:线程块内所有线程同步;
步骤311:9-7小波变换第五步,结果存储在共享内存;
步骤312:线程块内所有线程同步;
步骤313:9-7小波变换第六步,结果存储目标图像。
3. 如权利要求1所述的OpenCL J2K压缩方法,其特征在于,小波列变换的主要步骤为,其中每个线程块处理一列图像
步骤501:通过线程块读取该线程块对应的图像列,存储在共享内存;
步骤502:线程块内所有线程同步;
步骤503:9-7小波变换第一步,结果存储在共享内存;
步骤504:线程块内所有线程同步;
步骤505:9-7小波变换第二步,结果存储在共享内存;
步骤506:线程块内所有线程同步;
步骤507:9-7小波变换第三步,结果存储在共享内存;
步骤508:线程块内所有线程同步;
步骤509:9-7小波变换第四步,结果存储在共享内存;
步骤510:线程块内所有线程同步;
步骤511:9-7小波变换第五步,结果存储在共享内存;
步骤512:线程块内所有线程同步;
步骤513:9-7小波变换第六步,结果存储目标图像。
4. 如权利要求1所述的OpenCL J2K压缩方法,其特征在于,Tier1压缩的主要步骤为,其中每个线程处理一个码块
步骤701:寻找一个线程所处理码块中的最大值,计算该最大值所在的位平面n;
步骤702:清除编码;
步骤703:符号编码; 
步骤704:幅度细化编码;
步骤705:清除编码;
步骤706:n = n-1,如果 n >= 0,转步骤703。
CN201310176403.7A 2013-05-14 2013-05-14 一种OpenCL J2K压缩方法 Active CN103260034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310176403.7A CN103260034B (zh) 2013-05-14 2013-05-14 一种OpenCL J2K压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310176403.7A CN103260034B (zh) 2013-05-14 2013-05-14 一种OpenCL J2K压缩方法

Publications (2)

Publication Number Publication Date
CN103260034A true CN103260034A (zh) 2013-08-21
CN103260034B CN103260034B (zh) 2016-12-07

Family

ID=48963694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310176403.7A Active CN103260034B (zh) 2013-05-14 2013-05-14 一种OpenCL J2K压缩方法

Country Status (1)

Country Link
CN (1) CN103260034B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389571A (zh) * 2023-12-11 2024-01-12 芯动微电子科技(武汉)有限公司 一种基于opencl的jpeg2000中t1并行解码方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908035A (zh) * 2010-07-30 2010-12-08 北京华傲精创科技开发有限公司 视频编解码方法、gpu及其与cpu的交互方法及系统
KR20130032482A (ko) * 2011-09-23 2013-04-02 엘지전자 주식회사 이동 단말기 및 근거리 통신을 위한 이동 단말기의 인코딩 수행 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908035A (zh) * 2010-07-30 2010-12-08 北京华傲精创科技开发有限公司 视频编解码方法、gpu及其与cpu的交互方法及系统
KR20130032482A (ko) * 2011-09-23 2013-04-02 엘지전자 주식회사 이동 단말기 및 근거리 통신을 위한 이동 단말기의 인코딩 수행 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卢睿: "计算机软件及计算机应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 December 2011 (2011-12-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389571A (zh) * 2023-12-11 2024-01-12 芯动微电子科技(武汉)有限公司 一种基于opencl的jpeg2000中t1并行解码方法和装置
CN117389571B (zh) * 2023-12-11 2024-04-12 芯动微电子科技(武汉)有限公司 一种基于opencl的jpeg2000中t1并行解码方法和装置

Also Published As

Publication number Publication date
CN103260034B (zh) 2016-12-07

Similar Documents

Publication Publication Date Title
Zheng et al. Implicit dual-domain convolutional network for robust color image compression artifact reduction
CN102396219B (zh) 对于具有稀疏直方图的图像的嵌入式图形编码
Zhou et al. UDC 2020 challenge on image restoration of under-display camera: Methods and results
CN101431691B (zh) 高动态范围图像的快速并行压缩方法
CN101076125A (zh) 图像压缩中RGB与YCbCr转换计算的优化算法
CN101415117B (zh) 基于gpgpu的高真实感图像的传输方法
Zhang et al. Deep network-based image coding for simultaneous compression and retrieval
CN103260034A (zh) 一种OpenCL J2K压缩方法
CN115409697A (zh) 一种图像处理方法及相关装置
CN116977169A (zh) 数据处理方法、装置、设备、可读存储介质及程序产品
Chandra Data bandwidth reduction in deep neural network SoCs using history buffer and Huffman coding
Wu et al. Sift feature extraction algorithm for image in dct domain
CN101064844A (zh) 一种使用旋转压缩码书对图像进行匹配压缩的方法
Hong et al. Design, implementation and evaluation of a task-parallel JPEG decoder for the libjpeg-turbo library
CN101964912A (zh) 一种在mpeg2中游程编码快速计算游程长度的方法
Li et al. Rate pre-allocated compression for mapping image based on wavelet and rate-distortion theory
CN1520186A (zh) 高速逆离散余弦变换方法和装置
Sikka Various Algorithms Used for Image Compression
Borusyak et al. Compression algorithm for indexed images with the use of context-based modeling
Han et al. Digital watermark encryption algorithm based on Arnold and DCT transform
CN117459727B (zh) 一种图像处理方法、装置、系统、电子设备及存储介质
US9384410B2 (en) Method and system for image compression while encoding at least one extra bit
CN103402095A (zh) 扫描方法及装置、反扫描方法及装置
He et al. Soft decoding of JPEG 2000 compressed images using bit-rate-driven deep convolutional neural networks
Jafari et al. A New Compression Method based on Jpeg2000 and Contourlet Transform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant