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

一种OpenCL J2K压缩方法 Download PDF

Info

Publication number
CN103260034B
CN103260034B CN201310176403.7A CN201310176403A CN103260034B CN 103260034 B CN103260034 B CN 103260034B CN 201310176403 A CN201310176403 A CN 201310176403A CN 103260034 B CN103260034 B CN 103260034B
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.)
Active
Application number
CN201310176403.7A
Other languages
English (en)
Other versions
CN103260034A (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

本发明公开一种OpenCL J2K压缩方法,包括,上传待压缩图像到GPU;对图像进行5级小波行变换;对图像进行5级小波列变换;对5级小波列变换后的图象进行量化处理;对量化处理的结果进行Tier1压缩,压缩结果存在GPU内存中;下载步骤5压缩结果到CPU内存中,在CPU上实现Tier2压缩、存储JP2文件到硬盘。本发明连续进行5级小波行变换和列变换,减少了OpenCL内核的切换次数;在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 (2)

1.一种OpenCL J2K压缩方法,其特征在于,包括如下步骤:
步骤1,上传待压缩图像到GPU;
步骤2,对图像进行5级小波行变换;
步骤3,对小波行变换所得结果图像进行5级小波列变换;
步骤4,对5级小波列变换后的图象进行量化处理;
步骤5,对量化处理的结果进行Tier1压缩,压缩结果存在GPU内存中;
步骤6,下载步骤5压缩结果到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小波变换第六步,结果存储目标图像。
2.如权利要求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 CN103260034A (zh) 2013-08-21
CN103260034B true 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)

Families Citing this family (1)

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

Citations (1)

* 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的交互方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130032482A (ko) * 2011-09-23 2013-04-02 엘지전자 주식회사 이동 단말기 및 근거리 통신을 위한 이동 단말기의 인코딩 수행 방법

Patent Citations (1)

* 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的交互方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
计算机软件及计算机应用;卢睿;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215;第二、四章 *

Also Published As

Publication number Publication date
CN103260034A (zh) 2013-08-21

Similar Documents

Publication Publication Date Title
US20140108481A1 (en) Universal fpga/asic matrix-vector multiplication architecture
CN109889846B (zh) 一种Demura表数据的压缩与解压方法、装置及编解码系统
CN102158694B (zh) 一种基于gpu的遥感图像解压缩方法
Zhou et al. UDC 2020 challenge on image restoration of under-display camera: Methods and results
WO2022095797A1 (zh) 图像的压缩方法、装置、智能终端及计算机可读存储介质
CN101415117B (zh) 基于gpgpu的高真实感图像的传输方法
Kumar et al. Near lossless image compression using parallel fractal texture identification
Kekre et al. ImageCompression Using Real Fourier Transform, Its Wavelet Transform And Hybrid Wavelet With DCT
CN103260034B (zh) 一种OpenCL J2K压缩方法
Zhang et al. Deep network-based image coding for simultaneous compression and retrieval
WO2021120713A8 (zh) 一种数据处理方法、解码电路及处理器
US20170097981A1 (en) Apparatus and method for data compression
US9819969B2 (en) Generalization of methods and systems for image compression while encoding at least one extra bit
CN104185030A (zh) 基于gpu的jpeg2000图像解压缩实现方法
CN101064844A (zh) 一种使用旋转压缩码书对图像进行匹配压缩的方法
CN102547281A (zh) 基于dsp的jpeg图像压缩并行控制方法
CN108712655A (zh) 一种用于相似图像集合并的群体图像编码方法
Koc et al. Application of pseudo-distance to lossless coding of color-mapped images
CN107172425B (zh) 缩略图生成方法、装置及终端设备
CN1250009C (zh) 高速逆离散余弦变换方法和装置
Hong et al. Design, implementation and evaluation of a task-parallel JPEG decoder for the libjpeg-turbo library
CN102932001A (zh) 运动捕获数据压缩、解压缩方法
CN101964912A (zh) 一种在mpeg2中游程编码快速计算游程长度的方法
US9384410B2 (en) Method and system for image compression while encoding at least one extra bit
Borusyak et al. Compression algorithm for indexed images with the use of context-based modeling

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