基于GPGPU的高真实感图像的传输方法转让专利

申请号 : CN200810122314.3

文献号 : CN101415117B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许端清王婉飞赵磊杨鑫

申请人 : 浙江大学

摘要 :

本发明公开了一种基于GPGPU的高真实感图像的传输方法,包括如下步骤:(A)采用像素编码器将原始HDR图像数据转换成对数域形式,再对数域形式的数值转换成n位无符号整数,得到的无符号整数形式存储的图像数据;(B)将无符号整数形式存储的图像数据发送到图像编码器进行图像压缩编码得到压缩的HDR图像数据;(C)解码时将压缩的HDR图像数据先用图像解码器解码,然后再将结果送到像素解码器进行解码,转换成原始的HDR图像数据。本发明通过利用具有高度并行特性和强计算能力的GPU,在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络查看高真实感图像展示。

权利要求 :

1.一种基于GPGPU的高真实感图像的传输方法,包括如下步骤:(A)采用像素编码器将原始HDR图像数据转换成对数域形式,再利用公式(1)将对数域形式的数值转换成n位无符号整数,得到的无符号整数形式存储的图像数据;

[r,g,b]=f([r,g,b]:n),公式(1)其中:

[r`,g′,b`]=log([r,g,b]);

f(x:n)=[(x-xmin)/(xmax-xmin)·(2n-1)];

r,g,b代表着在RGB颜色空间中原始的32位浮点数颜色值;

r`,g`,b`分别代表r,g,b的对数域形式;

代表着n位无符号整数的颜色值;

xmin和xmax代表着对数域空间里每个通道的最小值和最大值;

x代表着对数域空间里每个通道的数值;

n代表无符号整数的位数;

将原始HDR图像数据转换成对数域形式时量化损失的值εc用公式(2)来计算;

εc=(xmax-xmin)/(2n+1-2)公式(2);

其中:

公式(3);

Xmin和Xmax代表着对数域空间里每个通道的最小值和最大值;

n代表无符号整数的位数;

εc代表量化损失的值;

ε代表量化损失的极限;

通过设定n的数值,来限制对数转换过程中产生的最大量化损失值。

(B)将无符号整数形式存储的图像数据发送到图像编码器进行图像压缩编码得到压缩的HDR图像数据;

(C)解码时将压缩的HDR图像数据用图像解码器解码,然后再将结果送到像素解码器,通过公式(5)进行解码,转换成原始的HDR图像数据;

公式(5);

其中:

[r,g,b]exp([r,g,b]);f′(x:y)=x/(2y-1)·(xmax-xmin)+xmin;

代表着在RGB颜色空间中原始的32位浮点数颜色值;

r″,g″,b″分别代表r,g,b的对数域形式;

代表着n位无符号整数的颜色值;

xmin和xmax代表着对数域空间里每个通道的最小值和最大值;

x代表着对数域空间里每个通道的数值;

n代表无符号整数的位数。

2.根据权利要求1所述的传输方法,其特征在于:步骤(B)的图像压缩编码时将颜色值线性地从对数形式的RGB空间转换到YCbCr空间,YCbCr空间的图像数据再转换到小波空间,使用公式(4)计算得出量化因子Δb,量化因子Δb用来量化小波中的每个子带b;

Δb=γmax/γb公式(4)公式(4)中:

γb代表子带b的能量权因子;

γmax代表所有子带的最大能量权因子。

说明书 :

技术领域

本发明涉及图像处理领域,特别涉及一种基于GPGPU实现的高动态图像传输方法。

背景技术

具有高度真实感光照的高动态范围图像(HDR)的使用已经彻底改变了计算机图形学领域,成为虚拟漫游领域中不可缺少的部分。以前,我们只能使用低动态范围的图像,这种图像格式通常只是每个颜色通道存储8位,即每个像素24位。这些图像只能代表真实世界场景中一些很有限的信息,因此为了能够很好地再现现实生活中丰富的亮度级别,产生逼真的效果,高动态范围图像通过一系列不同曝光度的照片生成,每个颜色通道有16位,这样每个像素便增大到48倍。
但是数据冗余浪费了许多字节,使得原始的HDR图片大小令人吃惊,为了减轻存储和传输的负担,数据压缩是必要的,这也是本发明的目的之一。目前,对于HDR图片还没有标准的压缩技术。一些早期的研究已经提出了一些解决办法,如RLE、LZW等。这些压缩算法基本上只提供了大约50%的压缩量,而且他们并没有采用在标准图像压缩中所通用的有损压缩技术。RGBE是目前一种很流行的HDR图片表示格式。它用四个字节表示一个HDR图像像素数据,同时使用RLE方法获得了50%的压缩量。ILM的OpenEXR(http://www.openexr.org/.2004.)是最近很流行的一种HDR图片格式。它支持每个通道16位的使用,其中一位表示符号,五位表示指数,十位表示尾数。同时,它支持PIZ、RLE等压缩技术,获得最多35%的压缩量。在HDR有损压缩技术中存在的主要问题是HDR图像中视觉无关信息的识别和提取,这方面的工作目前还进展缓慢。
JPEG2000标准(Rabbani et at.,An Overview of the JPEG2000 Still ImageCompression Standard.In Signal Processing:Image Communication,17(3)(2002),pages 3-48).可以说综合了图像方面所有的现代技术,可在JPEG基础上再提高30%,而且压缩后的图像显得更加细腻平滑,而且JPEG2000在码率下降的同时率失真(Rate-Distortion)性能仍能保持最优,这样在同样的网络带宽下,我们的对于图片下载的等待时间将大大缩短。JPEG2000的另外一个重要特征是渐进传输,即它在同一影像文件中融合不同质量级别的数据,这一特性允许图像重建根据目标设备的需求进行,从而在传输和带宽利用上具有更大的灵活性。也就是说,它先传输图像的大体轮廓,然后逐步传输其他数据,不断地提高图像质量。这样图像就由朦胧到清晰显示出来,从而节约、充分利用有限的带宽。而传统的JPEG无法做到这一点,只能是从上到下逐行显示。

发明内容

随着G80显卡架构的出现,GPU图形处理器(Graphic ProcessingUnit)在存储访问以及并行计算能力方面都得到了巨大的改进,出现了通用GPU(GPGPU)的编程思想,得到了广泛的应用。GPU在并行计算方面的出色表现使其成为图像处理领域的新热点,许多新的算法已经被提出。CUDA(Compute Unified Device Architecture)为GPU编程提供了一种类C语言的编程接口,并且为编程者提供了一些针对数据并行计算的新的硬件特性。本发明提供了一种基于GPGPU的高并行度图像处理方法,从而加快了图像处理的速度。
本发明的传输方法便是在利用GPU新性能和编程思想的基础上提出的,在保证图像质量的前提下,进一步压缩了图像的大小,加快了图像压缩和解压的速度,从而使得基于WEB的高动态范围图像的传输效率得到了极大的提高。
一种基于GPGPU的高真实感图像的传输方法包括以下步骤:
像素编码器首先通过公式(1)将原始较大的HDR图像数据转换成对数域形式,并且将对数域形式的数值转换成n位无符号整数。
[r,g,b]=f([r,g,b]:n)公式(1);
其中,[r′,g′,b′]=log([r,g,b]);
f(x:n)=[(x-xmin)/(xmax-xmin)·(2n-1)];
这里,r,g,b代表着在RGB颜色空间中原始的32位浮点数颜色值;
r`,g`,b`分别代表r,g,b的对数域形式;
代表着n位无符号整数的颜色;
xmin和xmax代表着对数域空间里每个通道的最小值和最大值;
x代表着对数域空间里每个通道的数值;
n代表无符号整数的位数。
需要说明的是,在对数转换过程中使用了浮点数,因此在转换过程中,会有一些量化损失,但是这对于单纯的HDR编解码要求是可以接受的,并且能够通过GPU改善性能。这个量化损失的值εc可以用公式(2)来计算。
εc=(xmax-xmin)/(2n+1-2)                     公式(2)
xmin和xmax代表着对数域空间里每个通道的最小值和最大值;
n代表无符号整数的位数;
εc代表量化损失的值;
ε代表量化损失的极限。
通过设定n的数值,来限制对数转换过程中产生的最大量化损失值。
这里,使用者可以通过n手工来控制量化损失εc,通过使用n来限制对数转换过程中产生的最大量化损失值,计算n值的公式如公式(3)所示。
公式(3)
像素编码器一个很重要的作用就是通过公式(1)将原始的三个32位浮点数形式的像素值映射到三个n位整型值形式,很好的保留了色饱和度和原始HDR图像的动态范围,同时只在对数域形式转换的过程中引进了一些数据损失。
同时,本发明使用了非负形式的RGB颜色空间,其色饱和度已经覆盖了常用的颜色,在当前的计算机图形硬件上很容易实现。
在像素编码器将以浮点型格式存储的原始HDR图像转换成以无符号整数形式存储的图像数据后,将得到的图像数据发送到图像编码器。
图像编码器采用优化的JPEG2000的图像压缩编码方式,与标准的JPEG2000压缩方法不同的是,利用了颜色去相关性的方法,将颜色值线性地从对数形式的RGB空间转换到YCbCr空间。因为如果非线性地转换对数形式RGB空间,很可能会导致色度和亮度某种程度上的混合,从而无法采用在LDR图像编码中常用的色度次采样方法,这种方法依赖于色度和亮度的分离程度。
YCbCr空间的图像数据然后被转换到小波空间,使用一个量化因子Δb(使用公式(4)计算得出),量化小波中的每个子带b。
Δb=γmax/γb公式(4)
这里,γb代表子带b的能量权因子,γmax代表所有子带的最大能量权因子。这种量化方法不同于JPEG2000压缩标准所推荐的量化方法,它通过移除一些视觉相关因子维持了显示画面和注视角度的独立性。
在解码阶段,压缩的HDR图像数据首先使用图像解码器解码(即上述图像编码算法的逆过程),然后再将结果送到像素解码器,通过公式(5)进行解码,最终转成原始的HDR图像数据。
公式(5)
在这里,[r,g,b]=exp([r,g,b])
f′(x:y)=x/(2y-1)·(xmax-xmin)+xmin
公式(5)中的参数xmin和xmax均和公式(1)中的参数意义一样。
在当前具有最新性能的G80系列GPU上实现本算法,通过将图像块并行分割,利用CUDA在GPU上并行处理,同时按照贪婪算法思想,通过设立信号量,尽可能使GPU各处理核尽可能处于工作状态,极大地提高了其并行单元的利用率,同时通过设置锁,解决了处理核访问冲突的问题。
本发明中各公式中,相同的参数表示的意义相同。
本发明的基于GPGPU实现的高动态范围图像传输方法,有别于传统的高动态范围图像传输方法,本发明是在利用GPU新性能和编程思想的基础上提出的,通过这种传输方法,快速而高质量地完成了HDR图像的压缩,同时压缩后的HDR图像尽可能的保留色饱和度和原始HDR图像的动态范围,另外本发明通过渐进式的传输方式极大地降低了系统对于网络带宽的要求,进一步提高高动态范围图像的网络传输效率和传输质量。
本发明通过利用具有高度并行特性和强计算能力的GPU,通过像素编解码器、图像编解码器,向广泛的普通用户提供快速便捷精美的高真实感效果展示,同时解决了在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络查看高真实感图像展示,其有益效果主要表现在:
1、在高真实感图像数据高效合理的压缩之后,极大减轻了网络传输的负担,对于提高用户使用时的实时性有较大帮助。
2、由于客户端只需要渲染二维图像,因此对于用户客户端的计算机性能要求并不高,降低了使用系统的门槛。采用基于浏览器的Java Applet作为客户端,使得系统具有较高的可移植性和通用性。
3、较低的带宽占用和硬件要求使得目前越来越普及的移动设备作为终端成为可能,这一点对野外或者运动过程中的参观浏览提供了方便。
4、整个传输过程的构架是分单元设计的,做到单元内的高内聚和单元间的低耦合性,各个单元功能分工相对独立。

附图说明

图1为本发明方法的流程图。
图2为实施本发明方法的并行处理架构图。

具体实施方式

参见附图,为了充分利用G80架构的新特性,本发明方法应该尽可能利用并行性。当前的G80系列高端GPU(GeForce8800GTX)有16个处理器,每个处理器又有8个SIMD处理核,768MB的显存,每个核16kB的共享存储空间。实验环境是Intel Xeon 3.7GHz,NVIDIA GeForce 8800ULTRA(768MB),4G内存。
首先将图像划分成16块,分送给16个处理核并行的进行处理。为了更快的执行压缩算法,在显卡的全局存储空间内设置16个信号量,当处理核正在执行计算任务时置为1,当处理核执行完当前计算任务后将信号量置为0。这样,按照贪婪算法的思想,要处理核尽可能的处于运算状态,从而最大限度的开发显卡的计算性能。当一个处理核获取一个图像块时,根据核内线程数量的多少,顺序地读取像素,分配到各个线程中,然后这些线程以SIMD架构对所分配到的像素进行处理,G80处理核可以最多执行768个线程。
由于处理核在处理图像块时是顺序处理的,而HDR图像有很大的数据量,因此处理核并不能通过一次并行计算就处理好所分配的图像块。这样,处理核再次处理剩余的图像块时,首先要查询全局存储空间的信号量,如果发现空闲的处理核,则将空闲的处理核信号量置为1,使这些处理核共同处理剩余图像块。当然,当剩余图像块已经很小时,没有必要再投入很多的处理核,因为此时每个处理核所分配到的图像块已经无法充分利用其庞大的并行处理单元,导致很多线程闲置。因此,设置了一个阈值E,这里取E=100,当低于这个阈值时,该图像块将只由一个处理核来处理。还有一点需要注意的是,当多个处理核同时向全局存储空间中的信号量查询时,如果一个处理核处于空闲状态,这样会出现分配冲突的情况,因此在全局存储空间中设置了一把锁,每次只允许一个处理核进行查询,从而避免了访问冲突的发生,同时设置一个等待队列,按照先进先出的原则将暂时被禁止查询信号量的处理核编号记录在这里,从而避免了处理核不停的发送查询信号,有效地减少了带宽需求。
基于GPGPU的高真实感图像的传输方法包含以下几个步骤:
(1)首先将原始的HDR图像发送到像素编码器,将其编码成一种图像编码器可以处理的格式。通过公式(1)将原始较大的HDR图像数据转换成对数域形式,并且将对数域形式的数值转换成n位无符号整数。
[r,g,b]=f([r,g,b]:n),公式(1)
其中,[r′,g′,b′]=log([r,g,b]),
f(x:n)=[(x-xmin)/(xmax-xmin)·(2n-1)]
这里,r,g,b代表着在RGB颜色空间中原始的32位浮点数颜色值,r`,g`,b`分别代表r,g,b的对数域形式,代表着n位无符号整数的颜色,xmin和xmax代表着对数域空间里每个通道的最小值和最大值。
这里取n=16,使用JPEG2000中的R-D优化技术来自动将压缩的数据规约到一个合理的比特率。需要注意的是,一些原始像素值很可能是零,这给将原始图像向对数域形式转换提出了一个问题。本发明通过用最小的非零通道值替换这些像素值来解决这个问题。
需要说明的是,在对数转换过程中使用了浮点数,因此在转换过程中,会有一些量化损失,但是这对于单纯的HDR编解码要求是可以接受的,并且能够通过GPU改善性能。这个量化损失的值εc可以用公式(2)来计算。
εc=(xmax-xmin)/(2n+1-2)                    公式(2)
这里,使用者可以通过n手工来控制量化损失εc。
通过使用n来限制对数转换过程中产生的最大量化损失值,计算n值的公式如公式(3)所示。
公式(3)
因此当动态范围区间是12,n值为16,由公式(5)所得的量化损失值为12/(216+1-2)=0.01%,这个值要比在OpenEXR中使用的16位数据类型所产生的精度0.1%小得多。本发明的像素编码器之所以能获得比OpenEXR更高的精度,原因在于我们使用了实际的动态范围,而不是16位数据类型表面上的动态范围。
在像素编码器将以浮点型格式存储的原始HDR图像转换成以无符号整数形式存储的图像数据后,将得到的图像数据发送到图像编码器。采用优化的JPEG2000的图像压缩编码方式,与标准的JPEG2000压缩方法不同的是,本发明利用了颜色去相关性的方法,将颜色值线性地从对数形式的RGB空间转换到YCbCr空间。
由于人眼在注视HDR图像时并不是处于一个固定的适应度级别,因此对于小波系数应该有一个自适应性的量化。本发明在图像编码器中考虑了这一细节,在将YCbCr空间的图像数据转换到小波空间后,我们使用一个量化因子Δb(使用公式(4)计算得出),量化小波中的每个子带b。
Δb=γmax/γb公式(4)
这里,γb代表子带b的能量权因子,γmax代表所有子带的最大能量权因子。这种量化方法不同于JPEG2000压缩标准所推荐的量化方法,它通过移除一些视觉相关因子维持了显示画面和人眼适应度的独立性。
在解码阶段,压缩的HDR图像数据首先使用图像解码器解码,然后再将结果送到像素解码器,通过公式(5)进行解码,最终转成原始的HDR图像数据。
公式(5)
其中:
[r,g,b]=exp([r,g,b])
f′(x:y)=x/(2y-1)·(xmax-xmin)+xmin
代表着在RGB颜色空间中原始的32位浮点数颜色值;
r″,g″,b″分别代表r,g,b的对数域形式;
代表着n位无符号整数的颜色值;
xmin和xmax代表着对数域空间里每个通道的最小值和最大值;
x代表着对数域空间里每个通道的数值;
n代表无符号整数的位数。
本发明的方法相比于现有的其他压缩方法,有着明显的优势,具体的比较结果见对比例。
以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
至此,本发明HDR图像压缩方法通过丢弃一些视觉无关信息节省了大量的存储空间,同时利用当前最新GPU架构所带来的编程思想和性能提升,极大的加快了图像压缩和解压的速度,同时本发明还具有渐进传输的特性,使得在有限带宽、状况复杂的因特网环境下大多数用户都可以快速便捷地通过网络查看高真实感图像展示,从而使基于WEB的高动态范围图像的传输效率得到了极大的提高。
对比例
利用本发明方法与现有技术中Ward的子带方法以及Mantiuk的方法进行数据处理效果对比,结果如下表:
  压缩方法名称   压缩大小   VDP值   Ward子带方法   50.2KB   79*10-3   Mantiuk的方法   52.7KB   73*10-3   本发明的方法   46.0KB   63*10-3
表中可见:相比Ward子带方法和Mantiuk的方法,本发明方法高质量的完成了图像的压缩,压缩率比ward方法提高20%,比Mantiuk方法提高13;VDP也证实了当图像压缩到同样大小的时候,我们的方法可以获得最好的效果;同时,由于本发明方法还具有渐进传输的特性,使得网络传输性能进一步得到加强。
Ward子带方法:Ward,G.and Simmons,M.,Subband Encoding of HighDynamic Range Imagery.In APGV’04:Proceedings of the 1st Symposium onApplied Perception in Graphics and Visualization,ACM Press,2004,pages83-90.2004b.
Mantiuk的方法:Mantiuk,R.,Krawczyk,G,Myszkowski,K.,andSeidel,H.-P.,Perception-Motivated High-Dynamic-Range Video Encoding.InProceedings of ACM SIGGRAPH,pages 733-741.2004.
VDP值:Lubin,J.A.,Visual Discrimination Model for Imaging SystemDesign and Evaluation.In Visual Models for Target Detection and Recognition,World Scientific Publishers,Peli,E.(ed.),pages 245-283.1995.