一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像压缩方法及装置与流程

2022-06-05 06:49:13 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体而言,涉及一种图像压缩方法及装置。


背景技术:

2.实时虚拟纹理技术可以将纹理图像分页,计算机设备在进行画面渲染时仅需要加载少数页面在图形处理器的内存中,其他页面则存储在硬盘当中。为了节约图形处理器的内存空间,通常需要将虚拟纹理图像进行压缩,然后将压缩的信息进行熵编码,从而进一步降低存储空间的占用。
3.熵编码通常需要利用到编码表,在熵编码的过程中,通常需要根据要压缩的数据进行查表,利用查找到的数据表示需要压缩的数据,而熵编码所查找的表本身内容较多,占用较多的内存,查表过程较为复杂,在一些性能较低的图形处理器上效果较差。


技术实现要素:

4.本公开实施例至少提供一种图像压缩方法及装置。
5.第一方面,本公开实施例提供了一种图像压缩方法,包括:
6.获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;
7.针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;
8.针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;
9.基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。
10.一种可选的实施方式中,所述目标描述信息包括五个描述数据,所述五个描述数据按照在所述目标描述信息中的顺序排列依次为第一描述数据、第二描述数据、第三描述数据、第四描述数据及第五描述数据;所述基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据,包括:
11.基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值;
12.基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据。
13.一种可选的实施方式中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
14.在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据不全等于第一标准值,则对所述第一描述数据和第一预设值进行按位或运算,利用得到的值对所述目标变量进行重新赋值。
15.一种可选的实施方式中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
16.在所述第三描述数据等于第一标准值,且所述第二描述数据不等于所述第一标准值的情况下,若所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则利用第二预设值对所述目标变量进行重新赋值;
17.否则,分别对所述第二描述数据和所述第一描述数据进行对应的二进制位移计算,并对所述第二描述数据的位移结果、所述第一描述数据的位移结果与第三预设值进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
18.一种可选的实施方式中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
19.在所述第三描述数据不等于第一标准值的情况下,分别对所述第三描述数据和所述第二描述数据进行对应二进制位移计算,并对所述第三描述数据的位移结果、所述第二描述数据的位移结果以及所述第一描述数据进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
20.一种可选的实施方式中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,包括:
21.在所述第五描述数据等于第一标准值,且所述第四描述数据等于所述第一标准值的情况下,若所述第三描述数据等于所述第一标准值、所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则将第四预设值作为所述图像块数据对应的压缩数据;
22.否则,则对所述目标变量的值与第三预设值进行按位并计算,得到第一中间值;对所述目标变量的值进行对应的二进制位移计算,并对得到的值与第五预设值进行按位并计算,得到第二中间值;对所述第一中间值、第二中间值以及第六预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
23.一种可选的实施方式中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,包括:
24.在所述第五描述数据等于第一标准值,且所述第四描述数据不等于所述第一标准值的情况下,对所述第四描述数据进行对应的二进制位移计算,得到第三中间值;对所述第三中间值、第七预设值与所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
25.一种可选的实施方式中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,还包括:
26.在所述第五描述数据不等于第一标准值的情况下,分别对所述第五描述数据和所述第四描述数据进行对应的二进制位移计算,并确定所述第五描述数据的位移结果、所述第四描述数据的位移结果之和,得到第四中间值;对所述第四中间值和所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
27.一种可选的实施方式中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,包括:
28.在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据都等于第一标准值,则对所述第一描述数据与第八预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
29.第二方面,本公开实施例还提供一种图像压缩装置,包括:
30.获取模块,用于获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;
31.压缩模块,用于针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;
32.初始化模块,用于针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;
33.熵编码模块,用于基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。
34.一种可选的实施方式中,所述目标描述信息包括五个描述数据,所述五个描述数据按照在所述目标描述信息中的顺序排列依次为第一描述数据、第二描述数据、第三描述数据、第四描述数据及第五描述数据;所述熵编码模块在基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据时,用于:
35.基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值;
36.基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据。
37.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
38.在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据不全等于第一标准值,则对所述第一描述数据和第一预设值进行按位或运算,利用得到的值对所述目标变量进行重新赋值。
39.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
40.在所述第三描述数据等于第一标准值,且所述第二描述数据不等于所述第一标准值的情况下,若所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则利用第二预设值对所述目标变量进行重新赋值;
41.否则,分别对所述第二描述数据和所述第一描述数据进行对应的二进制位移计算,并对所述第二描述数据的位移结果、所述第一描述数据的位移结果与第三预设值进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
42.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息以及所述各个
描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
43.在所述第三描述数据不等于第一标准值的情况下,分别对所述第三描述数据和所述第二描述数据进行对应二进制位移计算,并对所述第三描述数据的位移结果、所述第二描述数据的位移结果以及所述第一描述数据进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
44.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,用于:
45.在所述第五描述数据等于第一标准值,且所述第四描述数据等于所述第一标准值的情况下,若所述第三描述数据等于所述第一标准值、所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则将第四预设值作为所述图像块数据对应的压缩数据;
46.否则,则对所述目标变量的值与第三预设值进行按位并计算,得到第一中间值;对所述目标变量的值进行对应的二进制位移计算,并对得到的值与第五预设值进行按位并计算,得到第二中间值;对所述第一中间值、第二中间值以及第六预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
47.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,用于:
48.在所述第五描述数据等于第一标准值,且所述第四描述数据不等于所述第一标准值的情况下,对所述第四描述数据进行对应的二进制位移计算,得到第三中间值;对所述第三中间值、第七预设值与所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
49.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,还用于:
50.在所述第五描述数据不等于第一标准值的情况下,分别对所述第五描述数据和所述第四描述数据进行对应的二进制位移计算,并确定所述第五描述数据的位移结果、所述第四描述数据的位移结果之和,得到第四中间值;对所述第四中间值和所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
51.一种可选的实施方式中,所述熵编码模块在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,用于:
52.在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据都等于第一标准值,则对所述第一描述数据与第八预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
53.第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或
第一方面中任一种可能的实施方式中的步骤。
54.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
55.本公开实施例提供的图像压缩方法及装置,首先获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;然后,针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;之后,针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;最后,基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。本公开实施例通过目标变量确定目标描述信息对应的压缩数据,不需要通过查表来进行熵编码,有效降低图形处理器的内存占用,并提高图像压缩效率。
56.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
57.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
58.图1示出了本公开实施例所提供的一种图像压缩方法的流程图;
59.图2示出了本公开实施例所提供的一种图像压缩装置的示意图;
60.图3示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
61.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
62.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
63.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至
少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
64.为了解决虚拟纹理图像熵编码需要查表占用过多内存、效率较低的问题,本公开提供了一种图像压缩方法,通过目标变量确定目标描述信息对应的压缩数据,不需要通过查表来进行熵编码,有效降低图形处理器的内存占用,并提高图像压缩效率。
65.为便于对本实施例进行理解,首先对本公开实施例所公开的一种图像压缩方法进行详细介绍,本公开实施例所提供的图像压缩方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备上部署有图形处理器。在一些可能的实现方式中,该图像压缩方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
66.参见图1所示,为本公开实施例提供的图像压缩方法的流程图,所述方法包括步骤s101~s104,其中:
67.s101、获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据。
68.该步骤中,待压缩图像数据可以为虚拟纹理数据,可以将虚拟纹理数据切分为多个图像块数据,该方法可以由计算机设备上部署的图形处理器执行,图像块数据可以被切分为预设分辨率,预设分辨率可以设置多个档位,如4*4、5*4、5*5乃至12*12,通过将虚拟纹理图像数据分页并压缩存储,可以使用少量存储空间,并清晰显示画面的效果。
69.s102、针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分。
70.为了减少图像块数据占用图像处理器内存的存储空间,可以将图像块数据压缩后再将其存储至图像处理器的内存中,具体的,可以将图像块数据压缩为描述信息,将图像数据转换为字符数据,可以有效降低存储空间的占用。
71.示例性的,压缩图像块数据可以使用自适应可伸缩纹理压缩格式(adaptive scalable texture compression,astc),使用该格式,可以先根据图像块数据中各个像素点的颜色值,对图像块的像素点进行分类,确定图像块数据匹配的图像分割模式,然后利用图像分割模式所对应的压缩方式,将图像块数据压缩为描述信息,描述信息可以包括图像块数据中各个像素点对应的基准颜色信息及权重,其中,基准颜色信息包括第一颜色信息和第二颜色信息,该权重可以为0至1中的任意值,从第一颜色信息均匀渐变到第二颜色信息之间,需要经历多种颜色,该权重即标识从第一颜色信息均匀渐变至第二颜色信息之间的任意颜色,也即,通过权重和基准颜色信息,即可得到一个颜色值,该颜色值即为上述像素点的颜色值信息。
72.在得到描述信息后,通常需要将其以二进制的形式存储。上述第一颜色信息及第二颜色信息可以理解为线段的端点,上述权重可以理解为线段上一点占整个线段的位置。
73.s103、针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值。
74.在得到描述信息之后,可以对描述信息进行熵编码,从而将压缩后得到的描述信息进一步压缩,熵编码可以将描述信息中的目标描述信息压缩在8bit的存储空间内,上述目标描述信息即为5个二进制代码,8bit刚好能够编码到一个字节中,转换后的8位二进制代码占用的存储空间比转换之前更低。在进行转换的过程中,通常需要查一个五维的编码
表来得到熵编码结果,熵编码的编码表通常包含27组数组,每组数组包含三个字符串,每个字符串又包含三个字符,内容量极大,在移动设备上随机访问性能会存在较大幅度的降低,并且占用较多存储空间。
75.为了优化压缩性能,本公开实施例采用不进行查表的熵编码方式,可以先创建目标变量,并根据目标描述信息的特征对目标变量进行赋值,然后再根据目标描述信息及目标变量进行计算,得到目标描述信息对应的压缩数据,完成熵编码。
76.在进行熵编码的过程中,可以先创建一目标变量,然后,为目标变量进行初始化赋值,用于在后续计算中使用,示例性的,初始化赋值可以将目标变量的值设置为0,然后根据目标描述信息及目标变量的值进行熵编码。
77.s104、基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。
78.这里,上述目标描述信息按照顺序排列依次可以为第一描述数据t0、第二描述数据t1、第三描述数据t2、第四描述数据t3及第五描述数据t4,上述描述数据为待压缩的二进制数,需要将上述五个二进制数压缩为一个8位的二进制数。
79.在初始化赋值之后,可以基于目标描述信息及各个描述数据在描述信息中的顺序,对目标变量进行重新赋值,然后基于目标描述信息、描述数据的顺序及目标变量的值,确定图像块数据对应的压缩数据。
80.具体的,若第三描述数据t2与第二描述数据t1都等于第一标准值,则可以判断第五描述数据t4与第四描述数据t3是否都等于第一标准值,若不全等于第一标准值,则可以对第一描述数据t0进行按位或运算,并利用得到的值对目标变量进行重新赋值,其中,第一标准值可以为2,第一预设值可以为0x0c;若第五描述数据t4与第四描述数据都等于第一标准值,则可以对第一描述数据与第八预设值进行按位或计算,直接将计算得到的值作为图像块数据对应的压缩数据,其中,第八预设值可以为0xfc。
81.进一步的,若第三描述数据t2等于第一标准值,且第二描述数据t1不等于第一标准值,则可以判断第二描述数据是否等于第二标准值,且第一描述数据是否等于第一标准值,若两者的判断结果皆为是,则可以利用第二预设值对目标变量进行重新赋值;其中,第二标准值可以为0,第二预设值可以为0x0f;若两者的判断结果不全为是,则可以对第二描述数据t1进行二进制位移计算,整体左位移4位数,再对第一描述数据t0进行二进制位移计算,整体左位移2位数,然后,对第一描述数据t0、第二描述数据t1、第三预设值进行按位或计算,利用上述三者进行按位或计算得到的值对目标变量重新赋值。其中,第三预设值可以为0x03。
82.再进一步的,若第三描述数据t2不等于第一标准值,则可以对第三描述数据和第二描述数据进行二进制位移计算,将第三描述数据t2整体左位移4位,将第二描述数据t1整体作为以2位,然后计算第三描述数据t2的位移结果、第二描述数据t1的位移结果以及第一描述数据t0进行按位或计算,并利用计算结果对目标变量进行重新赋值。
83.示例性的,上述判断过程可以利用下述逻辑执行:
[0084][0085]
其中,temp即为上述目标变量。
[0086]
在经过上述步骤之后,可以得到重新赋值后的目标变量,之后,可以基于目标描述信息、各个描述数据在目标描述信息中的顺序,以及目标变量的值,确定图像块数据对应的压缩数据。
[0087]
具体的,在得到上述重新赋值后的目标变量之后,若第五描述数据t4等于第一标准值,且第四描述数据t3也等于第一标准值,则可以判断第三描述数据t2是否等于第一标准值、第二描述数据t1是否等于第二标准值、以及第一描述数据t0是否等于第一标准值,若上述三者的判断结果皆为是,则可以将第四预设值作为图像块数据对应的压缩数据,这里,第二标准值可以为1,第四预设值可以为0xff;若上述三者的判断结果不全为是,则可以对重新赋值后的目标变量与第三预设值进行按位并计算,得到第一中间值,以及,对重新赋值后的目标变量进行二进制位移计算,整体左位移3位,并对得到的值与第五预设值进行按位并计算,得到第二中间值,最后,对第一中间值、第二中间值、第六预设值进行按位或计算,将得到的值作为图像块数据对应的压缩数据。其中,第五预设值可以为0xe0,第六预设值可以为0x1c。
[0088]
进一步的,若第五描述数据t4等于第一标准值,且第四描述数据t3不等于第一标准值,则可以对第四描述数据t3进行二进制位移计算,整体左位移7位,然后进行第四描述数据t3的位移结果与第七预设值、重新赋值后的目标变量按位或计算,将得到的值作为图像块数据对应的压缩数据。其中,第一预设值可以为0x60。
[0089]
在第五描述数据t4不等于第一标准值的情况下,可以分别对第五描述数据t4和第四描述数据t3进行二进制位移计算,将第五描述数据t4整体左位移7位、将第四描述数据t3整体左位移5位,并计算两个位移结果之和,得到第四中间值,然后,对第四中间值和重新赋值之后的目标变量进行按位或计算,将得到的值作为图像块数据对应的压缩数据。
[0090]
示例性的,上述判断过程可以利用下述逻辑执行:
[0091][0092]
这样,通过上述计算,即可在不进行查表的情况下,将目标描述信息压缩为一个8位的二进制数,极大提高了图形处理器在进行图像压缩时的效率。
[0093]
这里,上述压缩过程可以根据astc格式中对压缩图像的解压公式逆推得到。在熵编码的解压公式中,需要根据8位二进制数中各个位置的字节内容,来将其还原为5个二进制数,因此,可以通过逆推的方式,来确定将5个二进制数,也即目标描述信息压缩为1个8位二进制数的过程。
[0094]
需要指出的是,上述压缩的过程能够在一定程度上进行化简,在不超出本公开原理的基础上,化简后的压缩过程同样属于本公开的一种可能实施方式。
[0095]
本公开实施例提供的图像压缩方法,首先获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;然后,针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;之后,针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;最后,基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。本公开实施例通过目标变量确定目标描述信息对应的压缩数据,不需要通过查表来进行熵编码,有效降低图形处理器的内存占用,并提高图像压缩效率。
[0096]
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0097]
基于同一发明构思,本公开实施例中还提供了与图像压缩方法对应的图像压缩装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述图像压缩方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
[0098]
参照图2所示,为本公开实施例提供的一种图像压缩装置的示意图,所述装置包括:
[0099]
获取模块210,用于获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;
[0100]
压缩模块220,用于针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;
[0101]
初始化模块230,用于针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;
[0102]
熵编码模块240,用于基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。
[0103]
一种可选的实施方式中,所述目标描述信息包括五个描述数据,所述五个描述数据按照在所述目标描述信息中的顺序排列依次为第一描述数据、第二描述数据、第三描述数据、第四描述数据及第五描述数据;所述熵编码模块240在基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据时,用于:
[0104]
基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值;
[0105]
基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据。
[0106]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
[0107]
在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据不全等于第一标准值,则对所述第一描述数据和第一预设值进行按位或运算,利用得到的值对所述目标变量进行重新赋值。
[0108]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
[0109]
在所述第三描述数据等于第一标准值,且所述第二描述数据不等于所述第一标准值的情况下,若所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则利用第二预设值对所述目标变量进行重新赋值;
[0110]
否则,分别对所述第二描述数据和所述第一描述数据进行对应的二进制位移计算,并对所述第二描述数据的位移结果、所述第一描述数据的位移结果与第三预设值进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
[0111]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值时,用于:
[0112]
在所述第三描述数据不等于第一标准值的情况下,分别对所述第三描述数据和所述第二描述数据进行对应二进制位移计算,并对所述第三描述数据的位移结果、所述第二描述数据的位移结果以及所述第一描述数据进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
[0113]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对
应的压缩数据时,用于:
[0114]
在所述第五描述数据等于第一标准值,且所述第四描述数据等于所述第一标准值的情况下,若所述第三描述数据等于所述第一标准值、所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则将第四预设值作为所述图像块数据对应的压缩数据;
[0115]
否则,则对所述目标变量的值与第三预设值进行按位并计算,得到第一中间值;对所述目标变量的值进行对应的二进制位移计算,并对得到的值与第五预设值进行按位并计算,得到第二中间值;对所述第一中间值、第二中间值以及第六预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0116]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,用于:
[0117]
在所述第五描述数据等于第一标准值,且所述第四描述数据不等于所述第一标准值的情况下,对所述第四描述数据进行对应的二进制位移计算,得到第三中间值;对所述第三中间值、第七预设值与所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0118]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,还用于:
[0119]
在所述第五描述数据不等于第一标准值的情况下,分别对所述第五描述数据和所述第四描述数据进行对应的二进制位移计算,并确定所述第五描述数据的位移结果、所述第四描述数据的位移结果之和,得到第四中间值;对所述第四中间值和所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0120]
一种可选的实施方式中,所述熵编码模块240在基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据时,用于:
[0121]
在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据都等于第一标准值,则对所述第一描述数据与第八预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0122]
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
[0123]
对应于图1中的图像压缩方法,本公开实施例还提供了一种电子设备300,如图3所示,为本公开实施例提供的电子设备300结构示意图,包括:
[0124]
处理器31、存储器32、和总线33;存储器32用于存储执行指令,包括内存321和外部存储器322;这里的内存321也称内存储器,用于暂时存放处理器31中的运算数据,以及与硬盘等外部存储器322交换的数据,处理器31通过内存321与外部存储器322进行数据交换,当所述电子设备300运行时,所述处理器31与所述存储器32之间通过总线33通信,使得所述处理器31执行以下指令:
[0125]
获取待压缩图像数据,将所述待压缩图像数据切分为多个图像块数据;
[0126]
针对每个图像块数据,对所述图像块数据进行压缩,得到所述图像块数据进行压缩后的描述信息;所述描述信息包括所述图像块数据中各个像素点对应的基准颜色信息及权重;所述描述信息包括目标描述信息,所述目标描述信息为所述描述信息中的至少部分;
[0127]
针对所述目标描述信息,创建目标变量,并基于所述目标描述信息为所述目标变量进行初始化赋值;
[0128]
基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据。
[0129]
一种可选的实施方式中,所述处理器31执行的指令中,所述目标描述信息包括五个描述数据,所述五个描述数据按照在所述目标描述信息中的顺序排列依次为第一描述数据、第二描述数据、第三描述数据、第四描述数据及第五描述数据;所述基于所述目标描述信息,以及所述目标变量的值,确定所述目标描述信息对应的压缩数据,包括:
[0130]
基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值;
[0131]
基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据。
[0132]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
[0133]
在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据不全等于第一标准值,则对所述第一描述数据和第一预设值进行按位或运算,利用得到的值对所述目标变量进行重新赋值。
[0134]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
[0135]
在所述第三描述数据等于第一标准值,且所述第二描述数据不等于所述第一标准值的情况下,若所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则利用第二预设值对所述目标变量进行重新赋值;
[0136]
否则,分别对所述第二描述数据和所述第一描述数据进行对应的二进制位移计算,并对所述第二描述数据的位移结果、所述第一描述数据的位移结果与第三预设值进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
[0137]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,对所述目标变量进行重新赋值,包括:
[0138]
在所述第三描述数据不等于第一标准值的情况下,分别对所述第三描述数据和所述第二描述数据进行对应二进制位移计算,并对所述第三描述数据的位移结果、所述第二描述数据的位移结果以及所述第一描述数据进行按位或计算,利用得到的值对所述目标变量进行重新赋值。
[0139]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图
像块数据对应的压缩数据,包括:
[0140]
在所述第五描述数据等于第一标准值,且所述第四描述数据等于所述第一标准值的情况下,若所述第三描述数据等于所述第一标准值、所述第二描述数据等于第二标准值,且所述第一描述数据等于所述第一标准值,则将第四预设值作为所述图像块数据对应的压缩数据;
[0141]
否则,则对所述目标变量的值与第三预设值进行按位并计算,得到第一中间值;对所述目标变量的值进行对应的二进制位移计算,并对得到的值与第五预设值进行按位并计算,得到第二中间值;对所述第一中间值、第二中间值以及第六预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0142]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,包括:
[0143]
在所述第五描述数据等于第一标准值,且所述第四描述数据不等于所述第一标准值的情况下,对所述第四描述数据进行对应的二进制位移计算,得到第三中间值;对所述第三中间值、第七预设值与所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0144]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息、所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,还包括:
[0145]
在所述第五描述数据不等于第一标准值的情况下,分别对所述第五描述数据和所述第四描述数据进行对应的二进制位移计算,并确定所述第五描述数据的位移结果、所述第四描述数据的位移结果之和,得到第四中间值;对所述第四中间值和所述目标变量的值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0146]
一种可选的实施方式中,所述处理器31执行的指令中,所述基于所述目标描述信息以及所述各个描述数据在所述目标描述信息中的顺序,以及所述目标变量的值,确定所述图像块数据对应的压缩数据,包括:
[0147]
在所述第三描述数据与所述第二描述数据都等于第一标准值的情况下,若所述第五描述数据与所述第四描述数据都等于第一标准值,则对所述第一描述数据与第八预设值进行按位或计算,将得到的值作为所述图像块数据对应的压缩数据。
[0148]
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的图像压缩方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
[0149]
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的图像压缩方法的步骤,具体可参见上述方法实施例,在此不再赘述。
[0150]
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0151]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0152]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0153]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0154]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0155]
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献