基于HyperX平台的5/3小波变换方法技术

技术编号:12732402 阅读:52 留言:0更新日期:2016-01-20 15:42
一种基于多核处理器HyperX的平台的5/3小波变换方法,其步骤为:转化原始图像格式、按行读取数据、发送左右边缘扩展后的数据段、判断是否是第一次接收数据块、判断接收行数是否等于34、判断接收行数是否等于32、组成数据块、扩展上下边缘、5/3小波变换、发送数据至接收单元、按行写入全局内存、判断是否所有的图像数据块均写入全局内存、将全局内存中的数据拷贝到主机硬盘。本发明专利技术通过预存图像块的数据扩展边缘,减少数据重复传输;通过按行读取原始数据,减少地址跳变提高读取速度;通过对图像块的进行5/3小波变换提高数据的访问速度,避免了图像数据反复与全局内存的交互。

【技术实现步骤摘要】

本专利技术涉及图像处理
,更进一步涉及图像压缩
中的一种基于多核处理器HyperX平台实现5/3小波变换的方法。本专利技术利用多核处理器HyperX平台独特的通信模式和高度并行的处理架构,并行低功耗地实现5/3小波变换,解决了小波变换速度慢,开发难度高,功耗大的问题,本专利技术可用于对各种数字设备的图像压缩编码及视频数据的网络传输等领域。
技术介绍
小波变换已经广泛应用于信号分析、图像处理、模式识别、医学成像与诊断、数字水印等领域,尤其在图像压缩算法中发挥重要作用。联合图像专家组推出的JPEG2000图像压缩标准和太空数据系统咨询委员会推出的CCSDS图像压缩标准都使用了离散提升小波变换。基于离散提升小波变换算法的图像压缩系统出现在学术、科研以及工业等领域,而研究这些算法的高效实现一直是各领域面临的重要任务之一。图形处理单元GPU、通用信号处理器DSP、现场可编程门阵列FPGA等都已经被用于实现高效的小波变换。图形处理单元GPU和通用信号处理器DSP的速度高,开发难度低,但是功耗较高;现场可编程门阵列FPGA功耗低,但是开发难度高,为了快速实现小波变换的高速、低功耗处理,本专利技术使用基于多核处理器HyperX的平台加速小波变换。西安电子科技大学在其申请的专利“基于FPGA的多级复用小波变换器”(专利申请号:CN201310476968.7,公开号:CN103533357A)中公开了一种基于FPGA的多级复用小波变换器。该小波变换器包括第一级行变换器、第一级列变换器、时分复用行变换器、时分复用列变换器、小波系数分离器和中间缓存器。该小波变换器技术主要解决了变换器大部分时间空闲,没有充分利用的问题。该专利技术仍然存在的不足是,数据的行变换处理结束之后,才能进行列处理,数据要反复地与全局内存交互,处理速度慢,而且现有FPGA器件工作频率越高,稳定性越差,开发难度高,开发周期长。西安电子科技大学在其申请的专利“一种用GPU通过分块实现快速小波变换的方法”(专利申请号:CN201310055242.6,公开号:CN103198451A)中公开了一种用GPU通过分块实现快速小波变换的方法。该方法将数据分块并行处理,包括拷贝原始图像、数据分块、数据扩展、拷贝数据到共享内存、行变换、列变换、取消数据扩展、拷贝变换后数据到主机内存的步骤。该方法主要解决了现有技术小波变换速度慢的问题,通过将数据分块,避免了数据与全局内存的交互,提高了图像并行处理的速度。但是,该专利技术仍然存在的不足是,将数据按块从内存读取,频繁地址跳变导致数据读入速度变慢,而且使用图形处理单元GPU实现小波变换,开发难度较高,功耗较大。
技术实现思路
本专利技术的目的在于克服上述已有技术的不足,提出一种基于多核处理器HyperX平台实现5/3小波变换的方法,利用平台独特的通信模式和高度并行的处理架构,按行读取原始数据,分段扩展后发送给多个并行处理单元,在并行处理单元中组成图像块后进行5/3小波变换,开发周期短,复杂度低。本专利技术通过预存上一个图像块的数据扩展边缘,减少数据的重复传输,提高传输速度;通过按行读取原始数据,减少地址跳变提高数据读取速度;通过在每个并行处理单元PE中对图像数据块的进行5/3小波变换提高数据的访问速度,避免了图像数据反复与全局内存的交互;通过图像块与图像块的并行提高了整幅图像的处理速度。为实现上述目的,本专利技术的步骤包括如下:(1)转化原始图像的格式:(1a)从图像集中选取一幅后缀为.png格式的原始图像,将该原始图像转化为后缀为.txt格式的文件;(1b)在双倍速率同步动态随机存储器DDR中,分配两块全局内存A和B;(1c)将后缀为.txt格式的文件中的原始图像数据拷贝至全局内存A中;(2)按行读取数据:(2a)在多核处理器HyperX平台的数据读取单元上,创建一个数组C;(2b)多核处理器HyperX平台的数据读取单元,从全局内存A中依次读取一行数据,将所读取的行数据存入数组C中;(3)发送左右边缘扩展后的数据段:(3a)将数组C中的行数据分成M个数据段,每个数据段的长度是N,其中M表示5/3小波变换并行处理单元的总数;(3b)将每个数据段向左右各延伸两个像素,对处于原行数据两端不能延伸的数据段,则以边缘的像素为中心,镜像复制像素,扩展两个像素,扩展后的数据段长度变为(N+4);(3c)将扩展后的数据段依次发送给多核处理器HyperX平台的各个并行处理单元,每个数据段发送给对应的一个并行处理单元;(4)判断是否是第一次接收数据块,若是,则执行步骤(5),否则,执行步骤(6);(5)判断接收行数是否等于34,若是,则执行步骤(7),否则,执行步骤(2);(6)判断接收行数是否等于32,若是,则执行步骤(7),否则,执行步骤(2);(7)组成数据块:(7a)多核处理器HyperX平台的每个并行处理单元,顺序接收数据段组成数据块;(7b)在多核处理器HyperX平台的并行处理单元中创建一个数组E,用于存储数据块的最后四行边缘数据;(8)扩展上下边缘:(8a)如果数据块是多核处理器HyperX平台的并行处理单元接收的第一个数据块,则对称扩展上边缘;(8b)如果数据块是多核处理器HyperX平台的并行处理单元接收的最后一个数据块,则对称扩展下边缘;(8c)如果数据块不是多核处理器HyperX平台的并行处理单元接收的第一个数据块和最后一个数据块,则将数组E中的数据添加到数据块的最前面,实现扩展数据块的上下边缘;(8d)用扩展后数据块的最后四行数据更新数组E;(9)5/3小波变换:(9a)多核处理器HyperX平台的并行处理单元对扩展后的图像块进行5/3小波处理;(9b)删除图像块的上下各两行数据、左右各删除两列数据,得到5/3小波变换后大小为N*32个像素分为四个子带块的图像数据块,其中,N表示图像数据块的列数,*表示相乘操作;(10)发送数据至接收单元:(10a)将多核处理器HyperX平台每个并行处理单元第一个子带块的一行数据,发送至多核处理器HyperX平台中的接收单元;(10b)依次发送所有并行处理单元第一个子带块中的一行数据;(10c)依次发送所有并行处理单元第一个子带块中的其余行数据;(10d)依次发送另外三个子带块的行数据;(11)按行写入全局内存:(11a)在多核本文档来自技高网
...

【技术保护点】
一种基于HyperX平台的5/3小波变换方法,在基于多核处理器HyperX的平台上实现5/3小波变换,具体步骤包括如下:(1)转化原始图像的格式:(1a)从图像集中选取一幅后缀为.png格式的原始图像,将该原始图像转化为后缀为.txt格式的文件;(1b)在双倍速率同步动态随机存储器DDR中,分配两块全局内存A和B;(1c)将后缀为.txt格式的文件中的原始图像数据拷贝至全局内存A中;(2)按行读取数据:(2a)在多核处理器HyperX平台的数据读取单元上,创建一个数组C;(2b)多核处理器HyperX平台的数据读取单元,从全局内存A中依次读取一行数据,将所读取的行数据存入数组C中;(3)发送左右边缘扩展后的数据段:(3a)将数组C中的行数据分成M个数据段,每个数据段的长度是N,其中M表示5/3小波变换并行处理单元的总数;(3b)将每个数据段向左右各延伸两个像素,对处于原行数据两端不能延伸的数据段,则以边缘的像素为中心,镜像复制像素,扩展两个像素,扩展后的数据段长度变为(N+4);(3c)将扩展后的数据段依次发送给多核处理器HyperX平台的各个并行处理单元,每个数据段发送给对应的一个并行处理单元;(4)判断是否是第一次接收数据块,若是,则执行步骤(5),否则,执行步骤(6);(5)判断接收行数是否等于34,若是,则执行步骤(7),否则,执行步骤(2);(6)判断接收行数是否等于32,若是,则执行步骤(7),否则,执行步骤(2);(7)组成数据块:(7a)多核处理器HyperX平台的每个并行处理单元,顺序接收数据段组成数据块;(7b)在多核处理器HyperX平台的并行处理单元中创建一个数组E,用于存储数据块的最后四行边缘数据;(8)扩展上下边缘:(8a)如果数据块是多核处理器HyperX平台的并行处理单元接收的第一个数据块,则对称扩展上边缘;(8b)如果数据块是多核处理器HyperX平台的并行处理单元接收的最后一个数据块,则对称扩展下边缘;(8c)如果数据块不是多核处理器HyperX平台的并行处理单元接收的第一个数据块和最后一个数据块,则将数组E中的数据添加到数据块的最前面,实现扩展数据块的上下边缘;(8d)用扩展后数据块的最后四行数据更新数组E;(9)5/3小波变换:(9a)多核处理器HyperX平台的并行处理单元对扩展后的图像块进行5/3小波处理;(9b)删除图像块的上下各两行数据、左右各删除两列数据,得到5/3小波变换后大小为N*32个像素分为四个子带块的图像数据块,其中,N表示图像数据块的列数,*表示相乘操作;(10)发送数据至接收单元:(10a)将多核处理器HyperX平台每个并行处理单元第一个子带块的一行数据,发送至多核处理器HyperX平台中的接收单元;(10b)依次发送所有并行处理单元第一个子带块中的一行数据;(10c)依次发送所有并行处理单元第一个子带块中的其余行数据;(10d)依次发送另外三个子带块的行数据;(11)按行写入全局内存:(11a)在多核处理器HyperX平台接收单元上创建数组F;(11b)多核处理器HyperX平台接收单元,接收从并行处理单元发送的第一个子带的第一个数据段,将接收的数据段写入数组F;(11c)依次接收所有并行处理单元发送的第一个子带的第一个数据段,将接收的数据段写入数组F;(11d)将数组F中的数据写入全局内存B中;(11e)依次将第一个子带的其余数据段写入全局内存B中;(11f)依次将其余三个子带的所有数据段写入全局内存B中;(12)判断是否所有的图像数据块均写入全局内存,若是,则执行步骤(13),否则,执行步骤(2);(13)将全局内存中的数据拷贝到主机硬盘:(13a)将全局内存B中的数据写入后缀为.txt格式的文件中;(13b)将后缀为.txt格式的文件拷贝到主机硬盘中。...

【技术特征摘要】
1.一种基于HyperX平台的5/3小波变换方法,在基于多核处理器HyperX的
平台上实现5/3小波变换,具体步骤包括如下:
(1)转化原始图像的格式:
(1a)从图像集中选取一幅后缀为.png格式的原始图像,将该原始图像转
化为后缀为.txt格式的文件;
(1b)在双倍速率同步动态随机存储器DDR中,分配两块全局内存A和
B;
(1c)将后缀为.txt格式的文件中的原始图像数据拷贝至全局内存A中;
(2)按行读取数据:
(2a)在多核处理器HyperX平台的数据读取单元上,创建一个数组C;
(2b)多核处理器HyperX平台的数据读取单元,从全局内存A中依次读取
一行数据,将所读取的行数据存入数组C中;
(3)发送左右边缘扩展后的数据段:
(3a)将数组C中的行数据分成M个数据段,每个数据段的长度是N,其
中M表示5/3小波变换并行处理单元的总数;
(3b)将每个数据段向左右各延伸两个像素,对处于原行数据两端不能延
伸的数据段,则以边缘的像素为中心,镜像复制像素,扩展两个像素,扩展后的
数据段长度变为(N+4);
(3c)将扩展后的数据段依次发送给多核处理器HyperX平台的各个并行处
理单元,每个数据段发送给对应的一个并行处理单元;
(4)判断是否是第一次接收数据块,若是,则执行步骤(5),否则,执行
步骤(6);
(5)判断接收行数是否等于34,若是,则执行步骤(7),否则,执行步骤
(2);
(6)判断接收行数是否等于32,若是,则执行步骤(7),否则,执行步骤
(2);
(7)组成数据块:
(7a)多核处理器HyperX平台的每个并行处理单元,顺序接收数据段组成
数据块;
(7b)在多核处理器HyperX平台的并行处理单元中创建一个数组E,用于
存储数据块的最后四行边缘数据;
(8)扩展上下边缘:
(8a)如果数据块是多核处理器HyperX平台的并行处理单元接收的第一个
数据块,则对称扩展上边缘;
(8b)如果数据块是多核处理器HyperX平台的并行处理单元接收的最后一
个数据块,则对称扩展下边缘;
(8c)如果数据块不是多核处理器HyperX平台的并行处理单元接收的第一
个数据块和最后一个数据块,则将数组E中的数据添加到数据块的最前面,实现
扩展数据块的上下边缘;
(8d)用扩展后数据块的最后四行数据更新数组E;
(...

【专利技术属性】
技术研发人员:张静刘金花李云松李珊珊江冰梁晨涛
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1