本发明涉及图像压缩处理领域,具体涉及一种基于四列列向量分块奇异值分解的图像压缩方法。
背景技术:
1、矩阵奇异值分解在信号处理领域占据重要作用,其广泛用于图像压缩、数据挖掘、信号处理、推荐算法等场景。尤其是在图像压缩领域,基于奇异值分解的图像压缩技术通过对原始输入图像进行矩阵奇异值分解,得到奇异值以及对应的奇异向量,然后仅保留前面最重要的奇异值及其对应的奇异向量进行逆向构建,在不丢失重要的视觉信息情况下,实现图像压缩、缓减存储容量和传输带宽的压力。此外,基于奇异值分解的图像压缩方法,能根据压缩质量要求,决定逆向构建原图的奇异值及其对应的奇异向量的个数,具有良好的弹性调节功能,因而成为当前图像压缩领域研究热点之一。
2、但是,基于奇异值分解实现的图像压缩技术,由于奇异值分解本身具有计算密集型和存储密集型的提点,其计算复杂度呈指数增长,漫长的迭代运算导致其收敛速度异常缓慢。单边雅克比算法由于其具有简洁性和高并行属性,适合包括fpga在内的基于超大规模集成电路(very large scale integration circuit,vlsi)实现奇异值分解功能,进而实现高性能实时的图像压缩技术。目前,单边雅克比算法在序列循环调度过程中,采用的是两两遍历组合的方式,当列维度n很大时,导致列向量两两组合显著增长,每一“扫”(sweep)需要n-1轮的循环遍历,且每一轮对应n/2对列向量的雅克比旋转计算,使得收敛迭代过程中频繁的数据访存和计算,加之行维度m的递增,导致数据访存和计算的时钟节拍数量成比例递增。由于单边雅克比算法不满足交换律,每次迭代过程只能是按照确定序列调度规则,在各自列向量对之间进行计算,即使该列向量对已相互正交或者接近相互正交,仍旧执行单边雅克比旋转计算过程所包括的二阶范数、内积、givens矩阵生成以及givens旋转更新等操作,从而造成大量低效收敛计算行为的发生。
技术实现思路
1、为减少基于奇异值分解图像压缩过程中低效计算行为的数量,提升矩阵奇异值分解收敛速度,本发明提出一种基于四列列向量分块奇异值分解的图像压缩方法,对输入的待压缩图像,以4列像元为一个分块的基4策略代替传统的以2列像元为一个分块的基2策略,对输入图像矩阵进行平均分块,每一分块内的4列像元即4列列向量两两组合可以有3种组合方式,每种组合包括2对列向量,并提出以单位向量内积γ/的排序作为低效收敛行为的判决条件,由γ/排序规则决定循环迭代过程中每个分块最终的列向量对组合方式。另外,针对图像尺寸中行维度m过大,采用s分段式数据结构,将图像的像元元素均匀分配到s块sram中进行存储,使得s块sram间并发同步访存和计算,根据s分段数据结构形成的片内分布式sram存储架构,在各sram宏单元间嵌入计算电路,实现近存计算硬件电路架构。
2、本发明的目的通过如下的技术方案来实现:
3、一方面,一种基于四列列向量分块奇异值分解的图像压缩方法,输入图像的像元为m行×n列,以矩阵形式作为奇异值分解压缩电路的输入,每4列图像元素为一组,4列图像元素对应4列列向量,对输入图像进行平均分组,若n/4不能整除,则预先对待压缩图像的末尾增补1列全0元素的操作,使其整除且共有个列向量分块,表示向上取整;每个列向量分块由4列列向量组成2×2的结构,每个列向量分块的左下角的列向量表示为ai,左上角的列向量表示为aj,右下角的列向量表示为ap,右上角的列向量表示为aq;
4、每个列向量分块的块内计算步骤如下:
5、s1:计算ai、aj、ap、aq各自的二阶范数αi、αj、αp、αq,并将四个列向量两两组合,计算每种组合内的两个列向量间的内积γij与γpq,γip与γjq,γiq与γjp,以及对应的单位向量内积与,与,与;
6、s2:对列向量分块内的6个单位向量内积进行排序,若绝对值最小的两个单位向量内积分布在其中的2个候选组合中,则以剩下候选组合作为最终组合;若绝对值最小和次小的两个单位向量内积分布在同一个候选组合中,则排除绝对值为次次小的单位向量内积所在的候选组,选择最后剩下的那一个候选组合作为最终组合;
7、s3:若最终组合是ai与aj,ap与aq,则不需要对源头输入执行交换数据操作;若最终组合ai与aq,ap与aj,此时第i列与第p列列向量数据源头交换;若最终组合ai与ap,aq与aj,此时第p列与第j列列向量数据源头交换;
8、s4:根据经典单边雅克比算法执行列向量分块内部2对列向量的givens旋转计算操作;
9、s5:根据s3中列向量输入数据源头交换规则,givens旋转计算更新的结果输出也按照相应规则写回并覆盖原有的列向量数据;
10、s6:反复执行s1~s4,直至达到收敛条件,对获得的奇异值降序排序,选取前k个奇异值,从而将原始m行n列的像元矩阵的存储变换为仅存储k个奇异值,以及m行k列的左奇异矩阵和k行n列的右奇异矩阵,将输入图像的存储压缩将至原来的(m+n+1)*k /(m*n)。
11、另一方面,一种基于四列列向量分块奇异值分解的图像压缩方法的列向量存储电路,对于每一列列向量,定制s分段的数据结构,s分段对应s块sram,以第i列列向量为例,该列列向量元素即a(1,i),a(2,i),a(3,i),…,a(m,i)按行优先方式依次存储到s块sram中。
12、再一方面,一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现基于四列列向量分块奇异值分解的图像压缩方法。
13、本发明的有益效果如下:
14、(1)本发明通过基4策略代替传统的基2策略,在同等访存次数条件下增加了列向量对组合选项,通过单位向量内积γ/排序并作为低效收敛行为的判决条件,减少低效收敛计算行为,进而实现奇异值分解整体计算量的缩减。
15、(2)针对可能的3种列向量对组合方式,采用名义列索引方法,只交换参与givens旋转计算的输入源和输出结果,保持了round-robin序列策略的简洁性和易实现性。
16、(3)本发明可以显著降低大型稠密矩阵奇异值分解的低效收敛计算量,减少数据访存和计算所需的时钟周期数,并且提高整体电路时序,从而明显提高收敛速度。
17、(4)本发明可以根据压缩比调节提取前k个奇异值及其对应奇异向量的比率,实现弹性压缩。
1.一种基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,输入图像的像元为m行×n列,以矩阵形式作为奇异值分解压缩电路的输入,每4列图像元素为一组,4列图像元素对应4列列向量,对输入图像进行平均分组,若n/4不能整除,则预先对待压缩图像的末尾增补1列全0元素的操作,使其整除且共有个列向量分块,表示向上取整;每个列向量分块由4列列向量组成2×2的结构,每个列向量分块的左下角的列向量表示为ai,左上角的列向量表示为aj,右下角的列向量表示为ap,右上角的列向量表示为aq;
2.根据权利要求1所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,每执行完一轮givens旋转计算,列向量分块内的列交换规则为:
3.根据权利要求1所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,每执行完一轮givens旋转计算,列向量分块的块间列交换规则为:前一个列向量分块的右下交换成当前列向量分块的左下,当前列向量分块的左上交换成前一个列向量分块的右上。
4.根据权利要求1所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,所述s4中的givens旋转计算的公式如下:
5.根据权利要求1所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,所述s5的写回规则为:
6.根据权利要求1所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,待压缩图像的列像元数量n≥100。
7.根据权利要求6所述的基于四列列向量分块奇异值分解的图像压缩方法,其特征在于,待压缩图像的行像元数量大于等于列像元数量,即m≥n。
8.一种如权利要求1~7中任意一项所述的基于四列列向量分块奇异值分解的图像压缩方法的列向量存储电路,其特征在于,
9.根据权利要求8所述的列向量存储电路,其特征在于,对于定制的s分段数据结构形成的片内分布式sram存储,在各sram宏单元间嵌入包括列向量二阶范数、各列列向量内积、单位向量内积以及givens旋转变换在内的计算逻辑电路,实现近存计算硬件电路架构。
10.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现权利要求1~7中任意一项所述的基于四列列向量分块奇异值分解的图像压缩方法。