一种用于Degamma转换数据的压缩方法及系统与流程

专利查询8天前  4


本发明是关于一种图像压缩算法,属于图像处理领域,且特别是有关于一种用于degamma转换数据的压缩方法及系统。


背景技术:

1、在图像显示技术领域,很多算法需要在线性域进行数据处理,如色域映射算法、子像素渲染算法等。在此类线性域算法做数据处理前,我们需要将输入的图像数据从非线性域转换至线性域,此过程称之为degamma转换。

2、degamma转换过程涉及数据的幂次方运算,为了降低计算复杂度,节省硬件开支,通常将degamma转换曲线以一维查找表的形式存储在硬件存储器中,图像处理过程中使用查表插值的方式来代替原本的曲线映射计算。

3、为了保证经过degamma模块、线性域算法模块处理后的各灰阶均不缺失,处理过程中图像数据通常需要尽可能地保留较高的精度。例如,待处理的输入图像数据通常以8bit或10bit精度表示,经过degamma模块/线性域算法模块处理后的输出数据通常为12bit或者更高的数据精度。degamma模块输出数据的精度越高,意味着查找表所需存储空间越大,后端的线性域算法模块计算过程中所需的开销也随之增加。因此亟需一种既能保留较高的计算精度、又能提高存储效率的数据压缩方法。


技术实现思路

1、本发明提供一种用于degamma转换数据的压缩方法,包括:

2、步骤一、获取待处理图像数据精度及degamma模块输出精度;

3、步骤二、根据预设的gamma参数,计算各输入灰阶对应的degamma初始输出值;

4、步骤三、基于degamma初始输出值的统计信息对degamma初始输出值进行第一次压缩编码,得到degamma一次编码输出值;

5、步骤四、评估第一次压缩编码产生的精度误差,根据预设的压缩误差阈值,对degamma初始输出值进行第二次压缩编码,得到degamma二次编码输出值;

6、步骤五、基于degamma二次编码输出值,得到degamma查找表,将查找表存储在硬件寄存器中;

7、步骤六、读取存储的查找表数据,解压后对输入图像数据进行处理。

8、步骤一中,假定待处理图像数据的精度为mbit,degamma模块输出精度为nbit,则degamma模块的各输入灰阶可表示为in=0,1,…,2m-1,其中,n>m。

9、步骤二中,degamma转换过程可近似表示为一个以gamma为幂的指数函数,gamma参数的设定取决于待处理图像所属的颜色空间,不同颜色空间的gamma参数设定不同,我们常用的srgb颜色空间的gamma参数设定为2.2,

10、根据预设的gamma参数,计算出各输入灰阶对应的degamma初始输出值:

11、

12、步骤三包括:

13、(1)假定每个degamma初始输出值deouti对应的压缩精度均为xbit,x为预先设定的初始压缩精度,应满足x<m

14、(2)将每个degamma初始输出值deouti都划分为相应的数据子块1:hblocki及数据子块2:lblocki,具体计算如下:

15、

16、

17、其中,floor表示向下取整操作,round表示四舍五入取整操作

18、(3)根据得到的数据子块hblocki、lblocki及压缩精度x,对degamma初始输出值deouti进行第一次压缩编码,得到degamma一次编码输出值:

19、deout_enc1i=hblocki×2x+lblocki;其中,i=0,1,…,2m-1

20、(4)检查所有degamma一次编码输出值中是否存在重复值:

21、若不存在重复值,直接输出deout_enc1i作为degamma一次编码输出值,其中,i=0,1,…,2m-1;

22、若存在重复值,则对各个degamma初始输出值deouti重新进行第一次压缩编码:4-1、更新每个degamma初始输出值deouti的压缩精度:

23、x=x+1

24、4-2、基于更新后的压缩精度重新计算数据子块1、数据子块2以及degamma一次编码输出值:

25、

26、

27、

28、其中,i=0,1,…,2m-1

29、4-3、再次执行步骤(4),检查更新后的deout_enc1i中是否存在重复值,直至所有degamma一次编码输出值中不存在重复值,输出当前的deout_enc1i作为degamma一次编码输出值,其中,i=0,1,…,2m-1。

30、步骤四包括:

31、基于步骤三得到的压缩精度x、数据子块1:hblocki、数据子块2:lblocki,进行如下解压计算:

32、

33、计算第一次压缩编码所产生的实际压缩误差:

34、er1i=|deout_dec1i-deouti|

35、其中,i=0,1,…,2m-1

36、若所有数据的实际压缩误差er1i均不大于预设的压缩误差阈值ε,直接输出当前的deout_enc1i作为degamma二次编码输出值deout_enc2i,i=1,2,…,2m-1

37、若存在某些数据的实际压缩误差大于压缩误差阈值ε的情况,则对各个degamma初始输出值deouti进行第二次压缩编码:

38、(1)更新每个degamma初始输出值deouti的压缩精度:

39、x=x+1

40、(2)基于更新后的压缩精度重新计算数据子块1、数据子块2以及degamma一次编码输出值

41、

42、

43、

44、其中,i=0,1,…,2m-1

45、(3)再次执行步骤四,计算更新后的degamma一次编码输出值deout_enc1i对应的实际压缩误差。直至所有数据的实际压缩误差均不大于压缩误差阈值ε,输出当前的deout_enc1i作为作为degamma二次编码输出值deout_enc2i,i=1,2,…,2m-1。

46、步骤五包括:

47、degamma查找表可表示为

48、

49、步骤六包括:

50、读取硬体所存储的查找表数据,对压缩数据deout_enc2i进行解码分析,根据相应的数据子块1:hblock2i、数据子块2:lblock2i及压缩精度x2,按下式进行解压计算:

51、

52、其中,i=1,…,2m-1

53、利用解压后的deout_dec2i数据对输入的待处理图像数据进行degamma查表插值计算及线性域处理等操作即可。

54、本发明还提供一种用于degamma转换数据的压缩系统,包括degamma初始值计算模块、第一次压缩编码模块、第二次压缩编码模块、degamma查找表生成模块;

55、degamma初始值计算模块:根据输入图像数据精度、degamma输出精度以及预设的gamma参数,计算各输入灰阶对应的degamma初始输出值;

56、第一次压缩编码模块:分析degamma初始输出值的实际分布情况,确定相应的压缩精度及数据子块拆分方式,进行第一次压缩编码,得到degamma一次编码输出值;

57、第二次压缩编码模块:评估第一次压缩编码产生的精度误差,根据预设的压缩误差阈值,对degamma初始输出值进行第二次压缩编码,得到degamma二次编码输出值;

58、degamma查找表生成模块:基于degamma二次编码输出值,经离散采样后得到最终的degamma查找表,将查找表存储在硬件寄存器中。


技术特征:

1.一种用于degamma转换数据的压缩方法,其特征在于,包括:

2.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤一中,假定待处理图像数据的精度为mbit,degamma模块输出精度为nbit,则degamma模块的各输入灰阶表示为in=0,1,…,2m-1,其中,n>m。

3.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤二中,degamma转换过程可近似表示为一个以gamma为幂的指数函数,gamma参数的设定取决于待处理图像所属的颜色空间,不同颜色空间的gamma参数设定不同,srgb颜色空间的gamma参数设定为2.2,

4.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤三包括:

5.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤四包括:

6.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤五包括:

7.根据权利要求1所述的一种用于degamma转换数据的压缩方法,其特征在于,所述步骤六包括:

8.一种用于degamma转换数据的压缩系统,根据权利要求1-7所述的任意一种用于degamma转换数据的压缩方法,其特征在于,包括degamma初始值计算模块、第一次压缩编码模块、第二次压缩编码模块、degamma查找表生成模块;


技术总结
本发明公开了一种用于Degamma转换数据的压缩方法及系统,该方法包括以下步骤:获取待处理图像数据精度及Degamma模块输出精度;根据预设的gamma参数,计算各输入灰阶对应的Degamma初始输出值;基于Degamma初始输出值的统计信息对Degamma初始输出值进行第一次压缩编码,得到Degamma一次编码输出值;评估第一次压缩编码产生的精度误差,根据预设的压缩误差阈值,对Degamma初始输出值进行第二次压缩编码,得到Degamma二次编码输出值;基于Degamma二次编码输出值,得到Degamma查找表,将查找表存储在硬件寄存器中;读取存储的查找表数据,解压后对输入图像数据进行处理。

技术研发人员:秦良,符丹钰,吴樟福
受保护的技术使用者:合肥昇创微电子有限公司
技术研发日:
技术公布日:2024/12/5

最新回复(0)