1.本技术涉及图像处理技术领域,特别是涉及一种图像压缩方法、电子设备和计算机可读存储介质。
背景技术:2.现有的图像显示设备的动态范围通常较低,例如:灰度图像的显示位宽为8位、彩色图像的显示位宽为24位,但是图像采集设备在采集图像时为尽可能采集到完整的图像信息,一般采用高动态范围的位宽来存储原始图像,因此,原始图像在图像显示设备上进行显示之前需要对原始图像进行压缩,现有的图像压缩方案普遍存在细节信息丢失且对比度不佳的问题。有鉴于此,如何减少图像压缩时的细节丢失,提高压缩后的目标图像的对比度成为亟待解决的问题。
技术实现要素:3.本技术主要解决的技术问题是提供一种图像压缩方法、电子设备和计算机可读存储介质,能够减少图像压缩时的细节丢失,提高压缩后的目标图像的对比度。
4.为解决上述技术问题,本技术第一方面提供一种图像压缩方法,该方法包括:获得待压缩的原始图像,对所述原始图像的rgb数据进行插值运算;基于插值运算后的所述rgb数据确定所述原始图像中每个像素点的第一亮度数据;对每个所述像素点的所述第一亮度数据进行滤波,得到第一灰度直方图并将所述第一灰度直方图的范围进行拓展得到第二灰度直方图;以及,将每个所述像素点的所述第一亮度数据转换至对数域并进行非线性调整,将非线性调整后的第一亮度数据转换至常数域,得到第二亮度数据;基于各个像素点对应的所述第二亮度数据与所述第一亮度数据的比值和所述第二灰度直方图,确定所述原始图像压缩后的目标图像。
5.为解决上述技术问题,本技术第二方面提供一种电子设备,该电子设备包括:相互耦接的存储器和处理器,其中,所述存储器存储有程序数据,所述处理器调用所述程序数据以执行上述第一方面所述的方法。
6.为解决上述技术问题,本技术第三方面提供一种计算机存储介质,其上存储有程序数据,所述程序数据被处理器执行时实现上述第一方面所述的方法。
7.上述方案,在获得待压缩的原始图像后,对原始图像的rgb数据首先进行插值运算以便于对图像进行压缩和重构,提高图像的存储和传输效率,基于插值运算后的rgb数据获取原始图像中每个像素点的第一亮度数据,对每个像素点的第一亮度数据进行滤波从而得到第一灰度直方图,将第一灰度直方图的范围拓展后得到第二灰度直方图,从而扩展了原始图像的亮度范围,将每个像素点的第一亮度数据转换至对数域进行非线性调整,并分成至少两个数据段来进行调整,以便调整后转换至常数域得到的第二亮度数据更加均匀,将每个像素点对应的第二亮度数据和第一亮度数据的比值作为增益系数,基于每个像素点的增益系数和第二灰度直方图确定压缩后的目标图像,其中,第二灰度直方图经过范围拓展
从而拉伸了目标图像的对比度,通过非线性调整确定压缩的增益从而减少目标图像的细节丢失,提高压缩后的目标图像的质量。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术图像压缩方法一实施方式的流程示意图;
10.图2是图1中步骤s103对应的一实施方式的应用场景示意图;
11.图3是本技术图像压缩方法一实施方式的流程示意图;
12.图4是图3中步骤s301对应的一实施方式的应用场景示意图;
13.图5是图3中步骤s304对应的一实施方式的应用场景示意图;
14.图6是本技术电子设备一实施方式的结构示意图;
15.图7是本技术计算机存储介质一实施方式的结构示意图。
具体实施方式
16.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
17.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
18.请参阅图1,图1是本技术图像压缩方法一实施方式的流程示意图,该方法包括:
19.s101:获得待压缩的原始图像,对原始图像的rgb数据进行插值运算。
20.具体地,待压缩的原始图像由图像采集设备获取,原始图像从真实的自然环境中采集,图像采集设备为了尽可能完整地采集到自然场景中的亮度信息,采用高动态范围来存储原始图像,在获得原始图像后对原始图像的rgb数据进行插值运算,以便于对图像进行压缩和重构,提高图像的存储和传输效率。
21.在一应用方式中,基于最近邻插值、双线性插值和双立方插值中的至少一种插值运算方法对原始图像的r通道和b通道进行插值运算,基于梯度信息对原始图像的g通道进行插值运算,以使g通道在插值运算时保留更多高频信息,减少细节丢失。
22.s102:基于插值运算后的rgb数据确定原始图像中每个像素点的第一亮度数据。
23.具体地,基于插值运算后的rgb数据计算得到原始图像中每个像素点的第一亮度数据。
24.在一应用方式中,基于插值运算后的rgb数据中g像素周围的加权平均得到每个像素点的第一亮度数据,其中,人眼对绿色较为敏感,基于g像素来计算亮度数据能够更精确
地反馈出每个像素点的亮度信息。
25.在一具体应用场景中,基于插值运算后的rgb数据中g像素周围的均值或中值计算得到每个像素点的第一亮度数据。
26.s103:对每个像素点的第一亮度数据进行滤波,得到第一灰度直方图并将第一灰度直方图的范围进行拓展得到第二灰度直方图。
27.具体地,请参阅图2,图2是图1中步骤s103对应的一实施方式的应用场景示意图,对每个像素点的第一亮度数据进行滤波,得到如图2中上半部分所示的第一灰度直方图,拓展第一灰度直方图的范围,将原本的动态范围拓展至更大的灰度级,得到新建立的如图2中下半部分所示的第二灰度直方图以拓展灰度直方图的动态范围,从而拉伸了基于第二灰度直方图获得的目标图像的对比度。
28.在一应用方式中,对每个像素点的第一亮度数据进行低通滤波,将第一亮度数据的低频信息和高频信息分离,以基于高频信息得到第一灰度直方图,将第一灰度直方图的初始范围分成多个k个部分,得到如图2中所示k为4,将第一灰度直方图分成四个灰度子直方图,将原本的动态范围扩展至l个灰度级,每一个灰度子直方图通过l及面积比例求得,并重新建立新的灰度直方图得到第二灰度直方图。
29.s104:将每个像素点的第一亮度数据转换至对数域并进行非线性调整,将非线性调整后的第一亮度数据转换至常数域,得到第二亮度数据。
30.具体地,将每个像素点的第一亮度数据进行转换,得到第一亮度数据在对数域的对数域数据,基于对数域数据进行非线性调整,并分成至少两个数据段来进行调整,将调整后的第一亮度数据转换至常数域得到第二亮度数据,通过非线性调整使调整后得到的第二亮度数据的变化更平稳,进而基于第二亮度数据与第一亮度数据的比值调整后得到的目标图像对比度更均匀,降低伪轮廓现象出现的概率。
31.在一应用场景中,将第一亮度数据记为y,将y转换到对数域并对logy做非线性调整,非线性调整由多个数据段组成的曲线来做映射,每个数据段对应一个曲线,相邻的曲线之间设置平滑拐点使映射后的低动态范围图像对比度更均匀。
32.需要说明的是,上述步骤s103和步骤s104之间可以并行执行也可以两者之间互为先后关系执行。
33.s105:基于各个像素点对应的第二亮度数据与第一亮度数据的比值和第二灰度直方图,确定原始图像压缩后的目标图像。
34.具体地,基于各个像素点对应的第二亮度数据与第一亮度数据的比值确定增益系数,将每个像素点与对应的增益系数以及第二灰度直方图相乘,得到压缩后的低动态范围的目标图像,通过非线性调整的方法确定每一级灰度压缩的增益系数,对比一般全局动态范围映射方法减少了细节丢失,相较于局部动态范围映射方法降低了计算复杂度,减少了运算时间。
35.在一应用方式中,每个像素点对应的第二亮度数据的数值小于第一亮度数据,将各个像素点对应的第二亮度数据与第一亮度数据的比值作为每个像素点的增益系数,将每个像素点与其对应的增益系数以及第二灰度直方图相乘,从而将高动态范围的原始图像压缩为低动态范围的目标图像。
36.上述方案,在获得待压缩的原始图像后,对原始图像的rgb数据首先进行插值运算
以便于对图像进行压缩和重构,提高图像的存储和传输效率,基于插值运算后的rgb数据获取原始图像中每个像素点的第一亮度数据,对每个像素点的第一亮度数据进行滤波从而得到第一灰度直方图,将第一灰度直方图的范围拓展后得到第二灰度直方图,从而拓展了原始图像的亮度范围,将每个像素点的第一亮度数据转换至对数域进行非线性调整,并分成至少两个数据段来进行调整,以便调整后转换至常数域得到的第二亮度数据更加均匀,将每个像素点对应的第二亮度数据和第一亮度数据的比值作为增益系数,基于每个像素点的增益系数和第二灰度直方图确定压缩后的目标图像,其中,第二灰度直方图经过范围拓展从而拉伸了目标图像的对比度,通过非线性调整确定压缩的增益从而减少目标图像的细节丢失,提高压缩后的目标图像的质量。
37.请参阅图3,图3是本技术图像压缩方法一实施方式的流程示意图,该方法包括:
38.s301:获得待压缩的原始图像,基于梯度信息对原始图像的g通道进行插值运算,基于非自适应性插值运算算法对原始图像的r通道和b通道进行插值运算,得到插值运算后的rgb数据。
39.具体地,原始图像为经过解压模块或者合成模块的高bit图像数据,获得待压缩的原始图像后,基于梯度信息对原始图像的g通道进行插值运算,其中,梯度信息包括水平方向、竖直方向的梯度和色度,在插值运算g通道时考虑梯度信息可减少插值运算后图像高频信息的丢失,利用非自适应性插值运算算法对r通道和g通道进行插值运算,以便于对图像进行压缩和重构,提高图像的存储和传输效率。
40.在一应用场景中,请参阅图4,图4是图3中步骤s301对应的一实施方式的应用场景示意图,原始图像为高bit位图像,原始图像为rggb的bayer格式,对g通道基于梯度信息的方式进行插值运算,对r通道和b通道基于双线性方法进行插值运算,以丰富原始图像的数据,便于对图像进行压缩和重构。
41.s302:基于插值运算后的rgb数据确定原始图像中每个像素点的第一亮度数据。
42.具体地,通过每个像素点rgb数据计算该点的第一亮度数据,提取出第一亮度数据后对第一亮度数据进行优化可提高压缩后图像的对比度。
43.在一应用方式中,基于插值运算后的rgb数据中的g通道的加权均值确定每个像素点的第一亮度数据,其中,加权均值可以为平均值、中值或基于梯度信息加权后获得,以便基于人眼较为敏感的绿色计算亮度数据,从而提高计算效率。
44.在另一应用方式中,将插值运算后的rgb数据转换成yuv数据,提取转换后的yuv数据中的y通道,确定每个像素点的第一亮度数据。其中,rgb数据转换为yuv数据后,其中,yuv数据中y通道能够准确反馈出亮度数据,从而提高数据的准确性。
45.s303:对每个像素点的第一亮度数据进行滤波,得到第一灰度直方图并将第一灰度直方图的范围进行拓展得到第二灰度直方图。
46.具体地,对每个像素点的第一亮度数据进行低通滤波,得到插值运算后的原始图像对应的第一灰度直方图,基于第一灰度直方图的起始值和终止值,将第一灰度直方图均分成多个灰度子直方图,基于预设系数对每个灰度子直方图进行拓展,合并扩展后的各个灰度子直方图得到第二灰度直方图。
47.在一应用场景中,请再次参阅图2,对每个像素点的第一亮度数据进行低通滤波,得到第一灰度直方图,确定第一灰度直方图中的起始值和终止值,将起始值与终止值之间
的数据进行均分,从而在第一灰度直方图上得到多个灰度子直方图,将每个灰度子直方图乘以预设系数,从而将每个灰度子直方图的面积进行拓展,得到拓展后的灰度子直方图,将拓展后的灰度子直方图合并后得到第二灰度直方图,其中,第二灰度直方图的起始值和终止值之间的动态范围大于第一灰度直方图,进而基于第二灰度直方图得到的目标图像的对比度得到拉伸,提高目标图像的对比度。
48.在一具体应用场景中,对每个像素点的第一亮度数据进行低通滤波,得到插值运算后的原始图像对应的第一灰度直方图的步骤,包括:基于非局部均值滤波、双边滤波、导向滤波中的至少一种滤波方法,对第一亮度数据进行低通滤波,汇总每个像素点的滤波结果得到保留有高频信息的第一灰度直方图。其中,非局部均值滤波、双边滤波、导向滤波等具有保持边缘特性的滤波方法或多种滤波方法的组合,尽可能地保留了更多的高频信息,减少原始图像的细节丢失。
49.s304:将每个像素点的第一亮度数据转换至对数域,得到对数域数据。
50.具体地,将每个像素点的第一亮度数据向对数域转换,得到每个像素点对应的对数域数据以便于对第一亮度数据进行调整。
51.s305:将对数域数据分成多个数据段进行非线性调整,得到调整后的对数域数据。
52.具体地,将对数域数据划分得到多个数据段,从而对多个数据段分别进行调整,实现对数域数据的非线性调整,得到调整后的对数域数据,其中,至少一个数据段基于对数域数据的幂函数加权求和后的参数进行调整。
53.进一步地,将每个像素点的第一亮度数据转换至对数域,得到对数域数据的步骤之后,还包括:基于原始图像的动态范围对应的目标压缩率,确定对数域数据的取值上限值;其中,取值上限值与原始图像的动态范围对应的目标压缩率呈正比。
54.具体地,请参阅图5,图5是图3中步骤s304对应的一实施方式的应用场景示意图,其中,mc即为对数域数据的取值上限值,取值上限值取决于原始图像的动态范围对应的目标压缩率,目标压缩率数值越大则取值上限值越高,以使目标压缩率与对数域数据的取值上限相关联,从而通过改变取值上限值来调整原始图像向目标图像转换的压缩率,其中,目标压缩率的取值为0-1。
55.在一具体应用场景中,将对数域数据分成多个数据段进行非线性调整,得到调整后的对数域数据的步骤,包括:将对数域数据分成两个数据段来分别进行调整;其中,数据段中包括小于取值中间值的第一数据段,以及取值中间值和取值上限值之间的第二数据段;基于第一数据段内的对数域数据及其对应的第一系数的乘积,确定第一数据段内调整后的对数域数据,基于第二数据段内的对数域数据的不同次幂的幂函数及其各自对应的第二系数的乘积,确定第二数据段内调整后的对数域数据。
56.其中,上述过程利用公式表示如下:
[0057][0058]
其中,y
in
为对数域数据,y
out
为调整后的对数域数据,tc为取值中间值,mc为取值上限值,a、b、c、d为第二系数,第一系数为1。
[0059]
具体地,通过取值中间值在对数域数据中将对数域数据分成小于取值中间值的第一数据段和处于取值中间值和取值上限值之间的第二数据段,将第一系数与第一数据段内
的对数域数据相乘,得到第一数据段内调整后的对数域数据,将第二数据段内的对数域数据分别求取0次方、1次方、2次方和三次方对应的幂函数数据,并将得到的幂函数数据分别与对应的第二系数相乘后再相加,得到第二数据段内调整后的对数域数据。其中,取值中间值即为分段调整的拐点,通过设置平滑拐点使调整后的低动态范围图像对比度更均匀,降低伪轮廓出现的概率,通过目标压缩率调整对数域数据的取值上限值,使压缩后不同位宽的低动态范围的图像均有较好的表现。
[0060]
s306:将调整后的对数域数据取反对数,得到每个像素点的第二亮度数据。
[0061]
具体地,将调整后的对数域数据取反对数,从而得到每个像素点转换至常数域的第二亮度数据。
[0062]
s307:基于各个像素点对应的第二亮度数据与第一亮度数据的比值和第二灰度直方图,确定原始图像压缩后的目标图像。
[0063]
具体地,基于各个像素点对应的第二亮度数据与第一亮度数据的比值确定增益系数,利用每个像素点与对应的增益系数以及第二灰度直方图的乘积确定压缩后的目标图像,以使目标图像具有较优的对比度。
[0064]
在本实施例中,对原始图像的g通道基于梯度信息进行插值运算,从而减少插值运算后图像高频信息的丢失,基于插值运算后的原始图像确定第一亮度数据,利用具有保持边缘特性的滤波方法或多种滤波方法的组合对第一亮度数据进行滤波得到第一灰度直方图,尽可能地保留了更多的高频信息,减少原始图像的细节丢失,将第一灰度直方图拓展为第二灰度直方图以提高目标图像的对比度,将第一亮度数据转换至对数域进行非线性调整,通过设置平滑拐点使调整后的低动态范围图像对比度更均匀,降低伪轮廓出现的概率。
[0065]
请参阅图6,图6是本技术电子设备一实施方式的结构示意图,该电子设备60包括相互耦接的存储器601和处理器602,其中,存储器601存储有程序数据(图未示),处理器602调用程序数据以实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
[0066]
请参阅图7,图7是本技术计算机存储介质一实施方式的结构示意图,该计算机存储介质70存储有程序数据700,该程序数据700被处理器执行时实现上述任一实施例中的方法,相关内容的说明请参见上述方法实施例的详细描述,在此不再赘叙。
[0067]
需要说明的是,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0068]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0069]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施
方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0070]
以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。