高动态范围图像的快速并行压缩方法

文档序号:7919671阅读:184来源:国知局

专利名称::高动态范围图像的快速并行压缩方法
技术领域
:本发明涉及图像处理领域,特别涉及一种高动态图像(HDRI-highdynamicrangeimage)的快速并行压縮方法。
背景技术
:具有高度真实感光照的高动态范围图像(HDRI-highdynamicrangeimage)的使用已经彻底改变了计算机图形学领域,成为虚拟漫游领域中不可缺少的部分。以前,只能使用低动态范围的图像,这种图像格式通常只是每个颜色通道存储8位,即每个像素24位。这些图像只能代表真实世界场景中一些很有限的信息,因此为了能够很好地再现现实生活中丰富的亮度级别,产生逼真的效果,高动态范围图像通过一系列不同曝光度的照片生成,每个颜色通道有16位,这样每个像素便增大到48倍。但是数据冗余浪费了许多字节,使得原始的HDRI(highdynamicrangeimage)图片大小令人吃惊,为了减轻存储和传输的负担,数据压縮是必要的,这也是本发明的目的之一。目前,对于HDR图片还没有标准的压縮技术。一些早期的研究已经提出了一些解决办法,如RLE、LZW等。这些压縮算法基本上只提供了大约50%的压縮量,而且他们并没有采用在标准图像压縮中所通用的有损压縮技术。RGBE是目前一种很流行的HDR图片表示格式。它用四个字节表示一个HDR图像像素数据,同时使用RLE方法获得了50%的压縮量。ILM的0penEXR是最近很流行的一种HDR图片格式。它支持每个通道16位的使用,其中一位表示符号,五位表示指数,十位表示尾数。同时,它支持PIZ、RLE等压縮技术,获得最多35%的压縮量。在HDR有损压縮技术中存在的主要问题是HDR图像中视觉无关信息的识别和提取,这方面的工作目前还进展缓慢。JPEG2000标准(Rabbanietat.,AnOverviewoftheJPEG2000StillImageCompressionStandard.InSignalProcessing:ImageCommunication,17(3)(2002),pages3-48.)可以说综合了图像方面所有的现代技术,可在JPEG基础上再提高30%,而且压縮后的图像显得更加细腻平滑,而且JPEG2000在码率下降的同时率失真(Rate-Distortion)性能仍能保持最优,这样在同样的网络带宽下,对于图片下载的等待时间将大大縮短。JPEG2000的另外一个重要特征是渐进传输,即它在同一影像文件中融合不同质量级别的数据,这一特性允许图像重建根据目标设备的需求进行,从而在传输和带宽利用上具有更大的灵活性。也就是说,它先传输图像的大体轮廓,然后逐步传输其他数据,不断地提高图像质量。这样图像就由朦胧到清晰显示出来,从而节约、充分利用有限的带宽。而传统的JPEG无法做到这一点,只能是从上到下逐行显示。随着G80显卡架构的出现,GPU图形处理器(GraphicProcessingUnit)在存储访问以及并行计算能力方面都得到了巨大的改进,出现了通用GPU(GPGPU)的编程思想,得到了广泛的应用。GPU在并行计算方面的出色表现使其成为图像处理领域的新热点,许多新的算法已经被提出。CUDA(ComputeUnifiedDeviceArchitecture)为GPU编程提供了一种类C语言的编程接口,并且为编程者提供了一些针对数据并行计算的新的硬件特性。
发明内容本发明方法是在利用GPU新性能和编程思想的基础上提出的,在保证图像质量的前提下,进一步压缩了图像的大小,加快了图像压縮和解压的速度,从而使得基于WEB的高动态范围图像的传输效率得到了极大的提高,可快速而高质量地完成了图像的压縮,另外本发明通过渐进式的传输方式极大地降低了系统对于网络带宽的要求,进一步提高高动态范围图像的网络传输效率和传输质量。通过将图像块并行分割,利用CUDA在GPU上并行处理,同时按照贪婪算法思想,通过设立信号量,尽可能使GPU各处理核尽可能处于工作状态,极大地提高了其并行单元的利用率,同时通过设置锁,解决了处理核访问冲突的问题。一种高动态范围图像的快速并行压縮方法,包括利用CUDA在GPU中并行执行如下步骤(1)将原始的HDR图像分割成若干图像块;(2)将每一个图像块分为RGB通道部分和E通道部分;(3)将RGB通道部分的颜色数据利用颜色去相关性的方法,线性地从对数形式的RGB空间转换到YCbCr空间,再采用JPEG2000压縮方法进行压縮,得到压縮后的RGB通道部分的颜色数据;(4)将E通道部分的数据进行量化(指通用的图像压縮方法流程中的量化阶段),得到量化数据;(5)将步骤(3)的压縮后的RGB通道部分的颜色数据和步骤(4)的量化数据进行熵编码,得到压縮后的数据。大多数HDR存储格式,如RGBE、XYZE格式,都是由基颜色和公指数两部分组成的。因此,本发明将原始HDRI图像分成两部分,即RGB通道部分和E通道部分。其中,由于RGB通道部分可以看成是一个标准的图像格式,目前的图像压縮方法都可以用来处理这一部分,因此本发明采用优化的JPEG2000处理技术来处理这一部分基颜色部分,步骤(3)中处理RGB通道部分的颜色数据时,与标准的JPEG2000压縮方法不同的是,本发明利用了颜色去相关性的方法,将颜色值线性地从对数形式的RGB空间转换到YCb(;空间,之后再采用JPEG2000压縮方法进行处理。因为如果非线性地转换对数形式RGB空间,很可能会导致色度和亮度某种程度上的混合,从而无法采用在LDR图像编码中常用的色度低采样方法,这种方法依赖于色度和亮度的分离程度。为了进一步提高压縮率,步骤(3)中将RGB通道部分的颜色数据从对数形式的RGB空间转换到YCbCr空间时,考虑到相对于色度,人眼对亮度更加敏感,这样色度就可以丢弃掉更多的信息,即丢弃一些RGB通道部分中的视觉无关信息,因此本发明在转换时对色度采用低采样(downsample)。步骤(3)中将RGB通道部分的颜色数据从对数形式的RGB空间转换到YC&空间后,根据JPEG2000压縮方法进行压縮时,需要将YCbCr空间的图像数据被转换到小波空间。转换到小波空间时本发明使用一个量化因子Act(使用公式(a)计算得出),量化小波中的每个子带a。<formula>formulaseeoriginaldocumentpage6</formula>这里,Ya代表子带a的能量权因子,y,x代表所有子带的最大能量权因子。本发明量化方法不同于标准JPEG2000压縮方法中的量化方法,本发明中的量化方法通过移除一些视觉相关因子,维持了显示画面和注视角度的独立性。步骤(4)中,将E通道部分的数据进行量化时,由于HDRI(highdynamicrangeimage)图像的质量与公指数部分的有损压縮所产生的性能损失密切相关,因此本发明使用无损压縮技术处理公指数部分。同时,由于各个像素的公指数部分的数据存在相似性,从而产生了很大的压縮空间,因此压縮后的HDR图像跟普通的非HDRI(highdynamicrangeimage)图像的大小差不多。本发明所有步骤均利用CUDA在GPU上并行处理,同时按照贪婪算法思想,通过设立信号量,尽可能使GPU各处理核尽可能处于工作状态,极大地提高了其并行单元的利用率,同时通过设置锁,解决了处理核访问冲突的问题。需要注意的是,同一个并行处理数据块中的像素可能有不同的指数值,有较高公指数的像素将会面临更多的信息丢失,其正比与2^(aE是公指数的差)。为了补偿同在一个数据处理块中具有较高公指数的像素的精度损失,本发明采用一些补偿系数Qc对量化值进行处理,如等式(b)所示。这其实是一种自适应的量化系数处理办法,并且由于等式(b)是一个线性增长函数,不存在突变,因此本发明使用的补偿系数可以获得更好的结果。本发明方法提供快速便捷精美的高真实感效果展示,同时解决了在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络査看高高动态范围图像(highdynamicrangeimage)展示,其有益效果主要表现在1、在高动态范围图像(HDRI-highdynamicrangeimage)数据高效合理的压縮之后,极大减轻了网络传输的负担,对于提高用户使用时的实时性有较大帮助。2、由于客户端只需要渲染二维图像,因此对于用户客户端的计算机性能要求并不高,降低了使用系统的门槛。采用基于浏览器的JavaApplet作为客户端,使得系统具有较高的可移植性和通用性。3、较低的带宽占用和硬件要求使得目前越来越普及的移动设备作为终端成为可能,这一点对野外或者运动过程中的参观浏览提供了方便。4、整个传输过程的构架是分单元设计的,做到单元内的高内聚和单元间的低耦合性,各个单元功能分工相对独立。图1为本发明的HDRI(highdynamicrangeimage)图像压縮流程图。图2为实现本发明方法的并行处理架构图。具体实施例方式为了充分利用G80架构的新特性,本发明的算法应该尽可能利用并行性。当前的G80系列高端GPU(GeForce8800GTX)有16个处理器,每个处理器又有8个SIMD处理核,768MB的显存,每个核16kB的共享存储空间。本实施例具体的实施环境是IntelXeon3.7GHz,NVIDIAGeForce8800ULTRA(768MB),4G内存。本发明高动态范围图像的快速并行压縮方法,包括利用CUDA在GPU中并行执行如下步骤-(1)首先将图像划分成16块,分送给16个处理核并行的进行处理。为了更快的执行压縮算法,本发明在显卡的全局存储空间内设置16个信号量,当处理核正在执行计算任务时置为1,当处理核执行完当前计算任务后将信号量置为0。这样,按照贪婪算法的思想,本发明要处理核尽可能的处于运算状态,从而最大限度的开发显卡的计算性能。当一个处理核获取一个图像块时,根据核内线程数量的多少,顺序地读取像素,分配到各个线程中,然后这些线程以SIMD架构对所分配到的像素进行处理,本发明的G80处理核可以最多执行768个线程。由于处理核在处理图像块时是顺序处理的,而HDR图像有很大的数据量,因此处理核并不能通过一次并行计算就处理好所分配的图像块。这样,处理核再次处理剩余的图像块时,首先要查询全局存储空间的信号量,如果发现空闲的处理核,则将空闲的处理核信号量置为1,使这些处理核共同处理剩余图像块。当然,当剩余图像块已经很小时,本发明没有必要再投入很多的处理核,因为此时每个处理核所分配到的图像块己经无法充分利用其庞大的并行处理单元,导致很多线程闲置。因此,本发明设置了一个阈值E,这里取E400,当低于这个阈值时,该图像块将只由一个处理核来处理。还有一点需要注意的是,当多个处理核同时向全局存储空间中的信号量查询时,如果一个处理核处于空闲状态,这样会出现分配冲突的情况,因此本发明在全局存储空间中设置了一把锁,每次只允许一个处理核进行查询,从而避免了访问冲突的发生,同时设置一个等待队列,按照先进先出的原则将暂时被禁止査询信号量的处理核编号记录在这里,从而避免了处理核不停的发送査询信号,有效地减少了带宽需求,整个过程如图2所示。(2)将步骤(1)中划分后的每一个图像块分成两部分,目卩RGB通道部分和E通道部分,在读入HDR图像的时候直接把HDR图像像素中的RGBE部分中的前三个字(RGB部分)单独提取出来作为RGB通道部分,剩下的一个字(E部分)作为图像像素的指数部分。这两个部分将分别按照不同的压縮算法进行压縮。(3)将RGB通道部分(基颜色部分)的颜色数据利用RGB通道编解码器采用优化的JPEG2000处理技术来处理,通过小波变换和低采样量化,丢弃一些RGB通道部分中的视觉无关信息。与标准的JPEG2000压縮方法不同的是,本发明利用了颜色去相关性的方法,将颜色值线性地从对数形式的RGB空间转换到YCb(;空间。因为如果非线性地转换对数形式RGB空间,很可能会导致色度和亮度某种程度上的混合,从而无法采用在LDR图像编码中常用的色度低采样方法,这种方法依赖于色度和亮度的分离程度。当YC二空间的图像数据被转换到小波空间以后,本发明使用一个量化因子Aa(使用公式(a)计算得出),量化小波中的每个子带a。公式(a)这里,ivf戈表子带a的能量权因子,Y^^代表所有子带的最大能量权因子。这种量化方法不同于JPEG2000压縮标准所推荐的量化方法,它通过移除一些视觉相关因子维持了显示画面和注视角度的独立性。小波变换将Yc;c;空间的当前处理数据块转换到频率空间。在量化阶段,本发明使用量化系数产生频率系数,然后再将结果化成整形,最后送到编码器,如图1所示。RGB转换到YCbCr空间的公式如下Y二wrR+wgG+wbB,a=R-Y/Y,Cr=B-Y/Y(c)其中,wr,wg,wb表示RGB的权重系数,我们根据人眼对三种单色光的敏感度来适当的调整系数。另外,在转换到YCbCr空间以后,考虑到相对于色度,人眼对亮度更加敏感,这样色度就可以丢弃掉更多的信息,因此本发明对色度采用低采样(downsample),进一步压縮了空间。(4)E通道部分利用E通道编解码器直接送到量化阶段进行处理。由于HDR图像的质量与公指数部分的有损压縮所产生的性能损失密切相关,因此本发明使用无损压縮技术CABAC来处理公指数部分。由于各个像素的公指数部分的数据存在相似性,从而产生了很大的压縮空间,因此压縮后的HDR图像跟普通的非HDR图像的大小差不多。同一个并行处理数据块中的像素可能有不同的指数值,有较高公指数的像素将会面临更多的信息丢失,其正比与2AE(aE是公指数的差)。为了补偿同在一个数据处理块中具有较高公指数的像素的精度损失,本发明采用一些补偿系数Qc对量化值进行处理,如等式(b)所示。qc=(max〖Ei〗-min〖Ej+3)z等式(b)由于等式(2)是一个线性增长函数,不存在突变,因此本发明使用的补偿系数可以获得更好的结果。并且,通过对E通道部分的无损压縮处理,本发明避免了由量化损失所导致的锯齿现象。(5)将步骤(3)的压縮后的RGB通道部分的颜色数据和步骤(4)的量化数据进行熵编码,得到压縮后的数据。与现有RGBE和0penEXR相比,本发明的HDR有损压縮方法在没有视觉质量下降的前提下只使用了了1/10的存储量,而且本发明的方法在获得高压縮率和高质量画质的同时,压缩的速度也是很快的,因此有着明显的优势,具体的比较结果见表l。表l<table>tableseeoriginaldocumentpage11</column></row><table>注(a)原始的RGBE格式图像,大小为786KB;(b)无损压縮方法,压縮大小为181.0KB,压縮时间为O.36秒,解压时间为O.130秒;(c)本发明的方法,压縮大小为51.0KB,压縮时间为0.38秒,解压时间为0.046秒(其中HDR图像的大小为4096*2048,动态范围为0.001,200.875)。权利要求1、一种高动态范围图像的快速并行压缩方法,包括利用CUDA在GPU中并行执行如下步骤(1)将原始的HDR图像分割成若干图像块;(2)将每一个图像块分为RGB通道部分和E通道部分;(3)将RGB通道部分的颜色数据利用颜色去相关性的方法,线性地从对数形式的RGB空间转换到YCbCr空间,再采用JPEG2000压缩方法进行压缩,得到压缩后的RGB通道部分的颜色数据;(4)将E通道部分的数据进行量化,得到量化数据;(5)将步骤(3)的压缩后的RGB通道部分的颜色数据和步骤(4)的量化数据进行熵编码,得到压缩后的数据。2、根据权利要求1所述的方法,其特征在于,步骤(3)中将RGB通道部分的颜色数据从对数形式的RGB空间转换到YC&空间时,对色度釆用低采样。3、根据权利要求1所述的方法,其特征在于,步骤(3)中采用JPEG2000压縮方法进行压縮过程中,将YCbCr空间的图像数据被转换到小波空间时使用量化因子Aa量化小波中的每个子带a;其中Ycc代表子带"的能量权因子,y^s代表所有子带的最大能量权因子。全文摘要本发明一种高动态范围图像的快速并行压缩方法,包括利用CUDA在GPU中并行执行如下步骤(1)将原始的HDR图像分割成若干图像块;(2)将每一个图像块分为RGB通道部分和E通道部分;(3)将RGB通道部分的颜色数据线性地从对数形式的RGB空间转换到YCbCr空间,再进行压缩;(4)将E通道部分的数据进行量化,得到量化数据;(5)将步骤(3)的压缩后的颜色数据和步骤(4)的量化数据进行熵编码,得到压缩后的数据。本发明方法提供快速便捷精美的高真实感效果展示,同时解决了在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络查看高高动态范围图像展示。文档编号H04N7/26GK101431691SQ20081016258公开日2009年5月13日申请日期2008年12月4日优先权日2008年12月4日发明者任崇辉,朱文峤,鑫杨,许端清,磊赵申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1