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 block
result
threads
synchronous
image
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
US20140108481A1 (en) Universal fpga/asic matrix-vector multiplication architecture
CN102396219A (zh) 对于具有稀疏直方图的图像的嵌入式图形编码
Kumar et al. Near lossless image compression using parallel fractal texture identification
WO2021120713A8 (zh) 一种数据处理方法、解码电路及处理器
Zhang et al. Deep network-based image coding for simultaneous compression and retrieval
CN103260034B (zh) 一种OpenCL J2K压缩方法
US20170097981A1 (en) Apparatus and method for data compression
CN102404561A (zh) 在cuda上实现mpeg4i帧编码的方法
Zhou et al. Efficient image compression based on side match vector quantization and digital inpainting
He et al. Fast and accurate lane detection via frequency domain learning
US9819969B2 (en) Generalization of methods and systems for image compression while encoding at least one extra bit
Das et al. An LSB based novel data hiding method using extended LBP
Abdulmunem et al. Advanced Intelligent Data Hiding Using Video Stego and Convolutional Neural Networks
WO2012065447A1 (zh) 一种亚像素插值方法及系统
CN104185030A (zh) 基于gpu的jpeg2000图像解压缩实现方法
CN101064844A (zh) 一种使用旋转压缩码书对图像进行匹配压缩的方法
Wu et al. Sift feature extraction algorithm for image in dct domain
CN107172425B (zh) 缩略图生成方法、装置及终端设备
CN105472395B (zh) 一种基于离散Krawtchouk正交多项式的图像无损压缩方法
CN108712655A (zh) 一种用于相似图像集合并的群体图像编码方法
Koc et al. Application of pseudo-distance to lossless coding of color-mapped images
CN102932001A (zh) 运动捕获数据压缩、解压缩方法
CN1250009C (zh) 高速逆离散余弦变换方法和装置
Hong et al. Design, implementation and evaluation of a task-parallel JPEG decoder for the libjpeg-turbo library
CN101964912A (zh) 一种在mpeg2中游程编码快速计算游程长度的方法

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