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

图片映射方法、压缩方法、解码方法、电子设备与流程

2023-01-17 12:41:24 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种图片映射方法、压缩方法、解码方法、电子设备及计算机存储介质。


背景技术:

2.在扩展现实(extended reality,简称xr)、数字孪生、3d游戏等虚拟化应用场景中,在图形渲染(rendering)、三维建模(3d modeling)、图片传输(picture transfer)和视频流(video flow)等技术处理环节之前,一般需要对图片的原始数据进行压缩处理得到该图片的压缩数据,再对该压缩数据进行解压处理,得到该图片的原始数据。
3.但是,已有的图片压缩方案中,一些压缩方案需要经过颜色转换、dc电平偏移(又称之为dc level offset)、子采样、离散余弦变换、量化编码等处理过程,由于处理环节较多,容易造成数据失真,实际上是一种有损处理。


技术实现要素:

4.有鉴于此,本技术实施例提供一种图片处理方案,以至少部分解决上述问题。
5.根据本技术实施例的第一方面,提供了一种图片映射方法,包括:获取目标图片;对所述目标图片进行分块处理,以得到若干图片子块;针对每个图片子块,比较不同像素间的相似性,确定出若干组相似像素和若干个非相似像素;针对所述每个图片子块中任一组相似像素,基于设定的映射关系,对所述相似像素的颜色通道值进行映射处理,得到对应的映射数据,以在同一组相似像素的相似像素之间复用;针对所述每个图片子块中的所述非相似像素,基于所述设定的映射关系,对其中每个所述非相似像素的颜色通道值进行映射处理,得到对应的映射数据。
6.根据本技术实施例的第二方面,提供了一种图片压缩方法,其中,包括:获取针对目标图片的每个图片子块中每个像素生成的映射数据,所述映射数据根据第一方面任一项所述方法生成;针对所述每个图片子块,根据其中每个像素对应的映射数据,对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储;根据所述每个图片子块的编码数据存储地址及编码数据位宽、所述每个图片子块中单像素的映射数据位宽,生成所述目标图片的压缩数据。
7.根据本技术实施例的第三方面,提供了一种图片解码方法,其中,包括:对目标图片的压缩数据进行解析,以得到所述目标图片中每个图片子块的编码数据存储地址、编码数据位宽、所述每个图片子块中单像素的映射数据位宽,所述压缩数据根据第二方面任一项所述方法生成;
针对所述每个图片子块,根据其编码数据位宽,从其编码数据存储地址获取编码数据;针对所述每个图片子块,根据其中单像素的映射数据位宽,从其编码数据中获取所述每个像素的映射数据;针对所述每个图片子块,根据其中每个像素的映射数据,得到所述每个像素的颜色通道值,以生成所述目标图片的解码数据。
8.根据本技术实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面或者第二方面或者第三方面所述方法对应的操作。
9.根据本技术实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或者第二方面或者第三方面所述的方法。
10.根据本技术实施例的第六方面,提供了一种计算机程序产品,其包括计算机指令,该计算机指令指示计算设备执行如第一方面或者第二方面或者第三方面所述的方法对应的操作。
11.根据本技术实施例提供的图片处理方案,在基于图片子块进行处理得到每个图片子块的映射数据时,任一图片子块中,对于任一组像素中的相似像素,基于相似像素的颜色通道值进行映射处理,得到对应的映射数据,但同一组相似中的所述相似像素之间复用映射数据;而对于所述非相似像素,基于所述设定的映射关系,对其中每个所述非相似像素的颜色通道值进行映射处理,得到对应的映射数据,为此,在避免数据失真的同时,实现了对所述目标图片的无损处理。
附图说明
12.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
13.图1示出了一种适用本技术实施例的图片处理方法的示例性系统。
14.图2a示出了一种图片映射方法的流程示意图。
15.图2b示出了一种分块处理时考虑像素边界因素的分块示意图。
16.图2c示出了一种分块处理时不考虑像素边界因素的分块示意图。
17.图2d提供了一种mipmap纹理贴图的示意。
18.图3a示出了一种图片压缩方法的流程示意图。
19.图3b示出了一种编码处理流程示意图。
20.图3c示出了一种生成压缩数据的流程示意图。
21.图3d示出了一种生成压缩数据的流程示意图。
22.图4示出了一种图片解码方法流程示意图。
23.图5为本技术实施例中一种电子设备的结构示意图。
具体实施方式
24.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
25.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
26.图1示出了一种适用本技术实施例的图片处理方法的示例性系统。如图1所示,该系统100可以包括云服务端102、通信网络104和/或一个或多个用户设备106,图1中示例为多个用户设备。
27.云服务端102可以是用于存储信息、数据、应用程序和/或任何其他合适类型的内容的任何适当的设备,包括但不限于分布式存储系统设备、服务器集群、计算云服务端集群等。在一些实施例中,可以将本技术下述实施例提供的图片处理方法集成在应用程序中,并存储在云服务端102上。
28.在一些实施例中,通信网络104可以是一个或多个有线和/或无线网络的任何适当的组合。例如,通信网络104能够包括以下各项中的任何一种或多种:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步转移模式(atm)网络、虚拟专用网(vpn)和/或任何其它合适的通信网络。用户设备106能够通过一个或多个通信链路(例如,通信链路112)连接到通信网络104,该通信网络104能够经由一个或多个通信链路(例如,通信链路114)被链接到云服务端102。通信链路可以是适合于在用户设备106和云服务端102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。
29.用户设备106通过通信网络将应用程序下载到本地,以在所述用户设备本地执行本技术下述实施例提供的图片处理方法。
30.在一些实施例中,用户设备106可以包括任何合适类型的设备。例如,在一些实施例中,用户设备106可以包括移动设备、平板计算机、膝上型计算机、台式计算机、可穿戴计算机、游戏控制台、媒体播放器、车辆娱乐系统和/或任何其他合适类型的用户设备。
31.当然,此处需要说明的是,图1实施例中,是以在用户设备本地执行图片处理方法为例进行说明,但是,并非唯一性限定只能在用户设备本地执行。实际上,在一些应用场景中,也可以在云服务端执行,再将执行的结果推送给用户设备。
32.为此,以下实施例中,对本技术提供的图片处理方案逐一进行示例性说明。
33.图2a为示出了一种图片映射方法的流程示意图。如图2a所示,其包括如下步骤s201-s204b:s201、获取目标图片;示例性地,所述目标图片的来源、格式或者大小不做任何限制,只要是可以满足应用场景的需求即可。
34.示例性地,比如在图形渲染(rendering)处理环节,需要将三维的光能传递处理转换为二维图像。而其中,场景和实体用三维形式表示,该三维形式表示通常包括物体的几何信息和其对应的材质信息,使得该三维形式表示更接近于现实世界,便于进行转换处理。其中,材质信息通常包括多个或多组材质属性及其对应的纹理图片,因此,在一具体应用场景
中,该目标图片可以为纹理图片(或者又称之为纹理贴图)。
35.示例性地,所述纹理图片比如可以为多级渐远纹理图片,或者又称为mipmap图片。
36.此处,上述对所述目标图片的说明,仅仅是示例,并非唯一性限定,在其他应用场景中,所述目标图片可能为其他格式,比如jpg、png。
37.s202、对所述目标图片进行分块处理,以得到若干图片子块;示例性地,所述步骤s202中对所述目标图片进行分块处理,以得到若干图片子块,包括:对所述目标图片进行均匀分块处理,以得到若干图片子块。此处,每个图片子块是目标图片的像素构成,因此,图片子块又可以称之为像素格。
38.示例性地,可以通过tile-based image processing(基于分块的图像处理)算法,对所述目标图片进行均匀分块处理,比如按照设定的子块大小,将目标图片具体分块为长宽为2的幂次方的图片子块。此处,2的幂次方仅仅是示例,并非唯一限定。
39.此处,在进行上述均匀分块处理时,可能会出现均匀分块处理得到的图片子块的像素边界超出所述目标图片的像素边界,可以针对这些像素边界超出所述目标图片的图片子块,只保留位于所述目标图片的像素边界内的像素。当然,在其他一些应用场景中,也可以无考虑是否超出所述目标图片的像素边界。
40.示例性地,图2b示出了一种分块处理时考虑像素边界因素的分块示意图。如图2b所示,目标图片的像素边界如图2b中c1所示。按照均匀分块处理后,对目标图片进行均匀分块处理得到6个图片子块,分别标示为s1-s6,其中,s1和s2的尺寸相同,而对于s3-s6,由于超过了目标图片的像素边界,对于s3-s6,只保留这些图片子块中位于所述目标图片内的像素,为此,s3-s6的像素边界如图2b中点划线所示,图片子块的像素总边界与目标图片的像素边界对齐。
41.图2c示出了一种分块处理时不考虑像素边界因素的分块示意图。如图2c所示,对于s3-s6,不考虑超过了目标图片的像素边界,为此,s3-s6的像素边界如图2b中点划线所示。或者,图片子块的像素总边界超过了目标图片的像素边界。对于s3-s6超过目标图片的像素边界的,可以进行像素补齐处理,从而使得各个图片子块的尺寸是相同的。
42.此处,需要说明的是,上述具体使用的分块算法,以及对所述目标图片进行均匀分块处理,分块处理得到的图片子块的数量,仅仅示例,并非唯一性限定。在其他实施例中,也可以使用其他分块算法,以及对所述目标图片进行不均匀分块处理。
43.通过上述分块处理,可以在后续步骤中针对每个图片子块进行映射处理,从而实现了目标图片的局部处理,提高了数据处理的速度和效率。
44.s203、针对每个图片子块,比较不同像素间的相似性,以确定出若干组相似像素和若干个非相似像素;其中,每组相似像素包括至少两个相似像素,但不同组相似像素之间,包括的相似像素的数量可以不同。
45.示例性地,所述步骤s203中针对每个图片子块,比较不同像素间的相似性,确定出其中的相似像素和非相似像素,包括:针对每个图片子块,根据其中所述每个像素的颜色通道值,比较不同像素间的相似性,确定出其中的相似像素和非相似像素。
46.示例性地,如果所述目标图片的颜色空间为rgba(即red,green,blue,alpha),则
针对每个像素,存在4个颜色通道,分别为r通道、g通道、b通道、a通道,为此,可以基于r通道、g通道、b通道、a通道的颜色通道值进行相似性判断。
47.为此,比如,在所述根据所述每个颜色通道值,比较不同像素间的相似性,确定出其中的相似像素和非相似像素,包括:判断不同像素之间所述颜色通道值的差值是否在设定的差值阈值范围内,若是,则判定为相似像素;否则,判定为非相似像素。
48.示例性地,比如两个像素的r通道、g通道、b通道、a通道的颜色通道值对应比对,分别得到r颜色通道差值、g颜色通道差值、b颜色通道差值、a颜色通道差值,如果r颜色通道差值、g颜色通道差值、b颜色通道差值、a颜色通道差值分别在设定的r颜色通道差值阈值范围、g颜色通道差值阈值范围、b颜色通道差值阈值范围、a颜色通道差值阈值范围,则判定该两个像素为满足像素相似性判定条件的相似像素;否则,判定该两个像素为非相似像素。
49.此处,上述是以所述目标图片的颜色空间为rgba进行相似像素判断的示例性说明,并非唯一性限定所述目标图片的颜色空间只能为rgba。实际上,在其他一些应用场景中,所述目标图片的颜色空间还可以为yuv、或者rgb。
50.另外,上述是以颜色通道值直接进行比对来示例性说明如何判断相似像素,并非唯一性限定只能通过颜色通道值的比对来判断相似像素。但是,实际上,在其他一些实施例中,还可以将所述图片子块划分为多个像素区域,基于像素区域来快速确定相似像素。比如,具体通过统计两个像素区域中相同颜色通道的不同颜色通道值的数量,该数量用来反映两个像素区域中的颜色通道值丰富度,若两个像素区域的所有颜色通道丰富度均小于设定丰富度阈值,则该两个像素区域内的像素判定为相似像素;否则判定为非相似像素。比如,一个像素区域中,r通道的颜色通道值只出现了4,68,237这三种值,那么r通道的颜色通道值丰富度就是3,以此类推,得到该像素区域中g通道、b通道、a通道的颜色通道值丰富度,以分别与另外一个像素区域中r通道、g通道、b通道、a通道的颜色通道值丰富度;如果两个像素区域的各个通道的颜色通道值丰富度均小于设定的丰富度阈值,则判定该两个像素区域的像素为相似像素。此处,需要说明的是,针对r通道、g通道、b通道、a通道,可以设置统一的丰富度阈值,也可以分别设置不同的丰富度阈值,只要可以匹配应用场景的精度即可。
51.在其他一些示例中,所述颜色通道丰富度的维度如果较高的话,为了便于比较,也可以对所述颜色通道丰富度进行映射处理得到低维数据,与设定丰富度阈值在所述低维空间中对应的低维阈值进行比对。
52.示例性地,不同组相似像素之间,包括的相似像素的数量可能会不同,比如某一组相似像素包括的相似像素数量为2个,另一组相似像素包括的像素数量为3个。此处,具体数量仅仅是示例,并非唯一性限定。
53.s204a、针对所述每个图片子块中的任一组相似像素,基于设定的映射关系,对其中的相似像素的颜色通道值进行映射处理,得到对应的映射数据,以在同一组相似像素的相似像素之间复用;s204b、针对所述每个图片子块中的所述非相似像素,基于所述设定的映射关系,对其中每个所述非相似像素的颜色通道值进行映射处理,得到对应的映射数据。
54.示例性地,在步骤s204a中,可以针对任一组相似像素中的每一相似像素进行映射处理,而在存储映射数据时,只存储一份即可。当然,可替代地,针对任一组相似像素,从中选择一个相似像素,对其颜色通道值进行映射处理即可,可不用该组内的所有相似像素进
行映射处理,从而提高了数据处理的速度以及效率。所有的相似像素复用同一映射数据,从而节省了存储空间。
55.示例性,针对上述步骤s204a、s20b,基于所述设定的映射关系,在对所述相似像素中之一像素的颜色通道值,或者所述非相似像素的每一像素进行映射时,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行映射处理,以得到对应的映射数据。
56.示例性地,比如,对于上述对上述r通道、g通道、b通道、a通道的颜色通道值按照设定的映射关系进行映射处理,得到r通道、g通道、b通道、a通道分别对应的映射数据。
57.进一步地,示例性地,所述对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行映射处理,以得到对应的映射数据可以包括:基于所述设定的数据降维映射关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行降维映射处理,以得到对应的映射数据。
58.可替代地,在其他一些示例中,也可以基于设定的数据升维映射关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行升维映射处理,以得到对应的映射数据,从而提高分辨率,降低噪声。比如通过与颜色通道值与数据维度大于所述颜色通道值的卷积矩阵进行卷积运算以实现升维映射处理。
59.具体的数据降维映射关系可以根据应用场景选择,本技术不做限定。比如,基于数据降维映射关系,对每个颜色通道对应的颜色通道值进行映射处理,一方面实现对所述颜色通道值的降维处理,节省存储空间。比如,颜色通道值的范围为0-255,一般占用8bits,与数据降维映射矩阵进行乘积运算实现降维处理后,映射数据占用2bits。另外,通过上述降维映射处理,还可以实现对所述颜色通道值加密,从而保证了数据的安全性。
60.示例性地,所述对基于所述设定的数据降维映射关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行降维映射处理,以得到对应的映射数据,包括:基于设定的哈希运算关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行哈希运算处理,以得到对应的映射数据。
61.具体地哈希运算关系不做特别限定,可以根据应用环境来确定。
62.示例性地,所述基于设定的哈希运算关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行哈希运算处理,以得到对应的映射数据,包括:基于用于进行数据降维处理的哈希运算关系,对所述相似像素或者所述非相似像素的每个颜色通道对应的颜色通道值进行哈希运算处理,以得到对应的映射数据,所述映射数据的数据维度小于所述颜色通道值的数据维度。
63.通过对所述相似像素或者所述非相似像素的每个颜色通道值进行哈希运算,在实现数据降维处理的同时,保证了数据的安全性。
64.可替代地,在其他一些示例中,数据降维映射关系也可以通过主成分分析算法(principal component analysis,pca)来体现。
65.参见上述实施例,由于在图片映射方案中,基于图片子块进行处理得到每个图片子块的映射数据,所有图片子块的映射数据组合在一起即可形成整张目标图片的映射数据,从而便于后续在应用时,可以以图片子块为单位进行映射数据的后续处理,比如指定某一图片子块对应的映射数据进行后续处理,为此,相当于可以实现局部应用的能力。其中,
在基于图片子块进行处理得到每个图片子块的映射数据时,任一图片子块中,对于相似像素,比如可以只针对其中之一像素的颜色通道值进行映射处理,得到对应的映射数据,所有所述相似像素之间即可复用同一映射数据;而对于所述非相似像素,基于所述设定的映射关系,对其中每个像素的颜色通道值进行映射处理,得到对应的映射数据,为此,可以实现对所述目标图片的无损且快速地映射处理,同时所述相似像素之间复用映射数据,从而提高了数据的映射率,并节省了存储空间,降低了数据处理的io和内存开销。
66.示例性地,在上述任一实施例的基础上,比如,在步骤s101之前,所述的方法还包括:获取待处理图片,所述待处理图片由多张子图片拼接形成;从所述待处理图片中选择任一子图片作为所述目标图片,以生成所述待处理图片上每个像素对应的映射数据。
67.所述待处理图片由多张子图片拼接形成,相当于形成了一张大图。
68.示例性地,比如在图形渲染领域,常用基于多级渐远纹理图片(又称之为mipmap纹理贴图),其实在原始纹理图片上,按照分辨率依次减半的生成了一系列纹理图片(或者又称之为纹理贴图)系列,该分辨率不同的一系列纹理图片拼接在一起形成一张大图,即mipmap纹理贴图。为此,包括原始纹理图片在内的每个纹理图片,相当于mipmap纹理图片的一张子图片。
69.为此,在一些示例中,可以将本技术实施例的方案应用于mipmap纹理贴图,即所述待处理图片为多级渐远纹理图片,对应地,划分子图片的基准是基于分辨率(即划分子图片的图片特征为分辨率),对应地,多张子图片为分辨率不同的多张纹理贴图。图2d提供了一种mipmap纹理贴图的示意,各级纹理贴图均对应不同分辨率的卫星纹理图片。
70.通过对mipmap纹理贴图中的每张子图片依次作为所述目标图片,得到每张子图片进行上述分块处理、相似性判断、映射处理等,得到每张子图片对应的映射数据,得到所有子图片的映射数据,即可得到mipmap纹理贴图的映射数据。
71.进一步,示例性地,在得到目标图片中所有图片子块对应的映射数据,可以基于映射数据的相似性进行,对相似图片子块进行合并后处理,以进一步节省存储空间。为此,所述的方法还包括:对所述若干图片子块进行相似性判断,以将符合图片子块相似性判断条件的相似图片子块对应的映射数据进行合并处理。该步骤可以在上述得到所有图片子块的映射数据之后执行。
72.比如,比对两个图片子块的映射数据得到映射数据差值,如果该映射数据差值在设定的映射数据差值范围内,则判定该两个图片子块为相似图片子块,为此存储其中一张图片子块的映射数据,以共享给其他相似图片子块。
73.当然,在其他一些实施例中,可以在分块处理后、映射处理之前,对所有的图片子块进行相似性判断,对相似的图片子块进行合并处理。此处相似性判断的条件可以根据应用场景来确定。
74.基于上述实施例提供的图片映射处理方案,应用到后续图片压缩处理环节为例进行说明。
75.图3a示出了一种图片压缩方法的流程示意图。如图3a所示,图片压缩方法包括如下步骤s301-s303:
s301、获取针对目标图片的每个图片子块中每个像素生成的映射数据。
76.示例性地,所述映射数据比如根据本技术实施例任一项所述图片映射方法生成。
77.由于在上述图片映射方案中,基于图片子块进行处理得到每个图片子块的映射数据,所有图片子块的映射数据组合在一起即可形成整张目标图片的映射数据,从而便于后续在应用时,可以以图片子块为单位进行映射数据的后续处理,比如指定某一图片子块对应的映射数据进行后续处理,为此,相当于可以实现局部应用的能力。其中,在基于图片子块进行处理得到每个图片子块的映射数据时,任一图片子块中,对于相似像素,只针对其中之一像素的颜色通道值进行映射处理,得到对应的映射数据,所有所述相似像素之间即可复用;而对于所述非相似像素,基于所述设定的映射关系,对其中每个像素的颜色通道值进行映射处理,得到对应的映射数据,为此,可以实现对所述目标图片的无损且快速地映射处理,同时所述相似像素之间复用映射数据,从而提高了压缩率,节省了存储空间,降低了数据处理的io和内存开销s302、针对所述每个图片子块,根据其中每个像素对应的映射数据,对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储。
78.示例性地,所述步骤s302中,针对所述每个图片子块,根据其中每个像素对应的映射数据,对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储,包括:针对所述每个图片子块,建立其中每个像素与其对应映射数据的逆映射关系,以对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储。
79.如前所述,所述映射数据通过对像素的颜色通道值,基于设定的映射关系进行映射处理(比如哈希运算)生成。为了节省存储空间,映射处理的同时,对颜色通道值进行了降维处理得到维度小于所述颜色通道值的映射数据,具体对每个图片子块对应的所有像素的映射数据及其与像素、图片子块的对应关系进行存储得到每个图片子块的编码数据。其中,为了能编码数据获得映射数据对应的颜色通道值,建立像素的映射数据到颜色通道值的映射关系,即像素与其对应映射数据的逆映射关系,以实现通过映射数据得到颜色通道值。
80.示例性地,图3b示出了一种编码处理流程示意图。如图3b所示,所述s302中,针对所述每个图片子块,建立其中每个像素与其对应映射数据的逆映射关系,以对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储,包括如下步骤s312-s322:s312、针对所述每个图片子块,基于其中每个像素对应的映射数据,建立映射数据表;示例性地,针对每个图片子块,对所有像素的映射数据以映射数据表进行体现。但是,需要说明的是,映射数据表仅仅是示例,并非唯一性限定。在其他实施例中,也可以通过数组或者其他形式来体现。
81.示例性地,比如对每个图片子块,按照逐行或者阵列遍历像素的方式,将每个像素对应的映射数据存储到映射数据表中。
82.s322、基于所述映射数据表以及所述映射关系,建立其中每个像素与其对应映射数据的逆映射关系,以对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储。
83.示例性地,如前所述,为了能在后续解压处理过程中,针对每个图片子块,能通过映射数据得到颜色通道值,对实现颜色通道值到映射数据的映射关系进行逆变换得到从映射数据到颜色通道值的逆映射关系,同时,为编码数据分配存储地址,以实现对编码数据的存储。映射数据表存储在对应编码数据存储地址指向的存储位置。
84.示例性地,在进行编码数据存储地址分配时,针对所述每个图片子块,可以根据其编码数据位宽,确定所述编码数据存储地址。
85.示例性地,由于所述目标图片包括多个图片子块,为了便于存储编码数据,按照设定的图片子块顺序,依次存储每个图片子块的编码数据,针对首个图片子块的编码数据制定存储的初始地址,再考虑其编码数据位宽,确定出基于该初始地址的偏移量,即可间接得到该首个图片子块的编码数据存储地址,对于第二个图片子块的编码数据,在该首个图片子块的编码数据存储地址基础上,考虑第二个图片子块的编码数据位宽,确定相对于首个图片子块的编码数据存储地址的偏移量,即可间接得到第二个图片子块的编码数据存储地址。
86.s303、根据所述每个图片子块的编码数据存储地址及编码数据位宽、所述每个图片子块中单像素的映射数据位宽,生成所述目标图片的压缩数据。
87.图3c示出了一种生成压缩数据的流程示意图。如图3c所示,示例性地,所述根据所述每个图片子块的编码数据存储地址及编码数据位宽、所述每个图片子块中单像素的映射数据位宽,生成所述目标图片的压缩数据,包括:s313、针对所述每个图片子块,将其编码数据存储地址、编码数据位宽、其中每个像素对应映射数据位宽,存放在为该图片子块构建的表头中;示例性地,所述表头比如又可以称之为tile head,在为每个图片子块创建的表头中,依次存储编码数据存储地址、编码数据位宽、其中每个像素对应映射数据位宽。为此,由于存在若干个图片子块,对应存在数量对等的若干个表头。
88.编码数据存储地址比如用于后续处理环节获取编码数据,编码数据位宽用于基于前一个图片子块的编码存储地址,确定下一个图片子块的编码存储地址。每个像素对应的映射数据位宽便于在后续应用时,遍历同一图片子块的所有像素对应的映射数据。
89.如前所述,由于可以通过地址偏移量的方式确定编码数据存储地址,因此,在表头中存储编码数据存储地址时,只要存储可得到该编码数据存储地址的地址偏移量即可,从而进一步节省存储空间。
90.示例性地,在其他一些实施例中,也可以通过键值对的方式来存储编码数据存储地址、编码数据位宽、其中每个像素对应映射数据位宽,比如,将存储编码数据存储地址作为键值对的键,编码数据位宽、其中每个像素对应映射数据位宽作为键值对的键值。
91.s323、根据所有图片子块对应的表头,生成所述目标图片的压缩数据。
92.示例性地,在步骤s323中,所述根据所有存放了对应压缩数据的表头,生成所述目标图片的压缩数据,包括:按照指定的图片子块顺序,将所有图片子块对应的表头进行拼接处理,得到所述目标图片的压缩数据。
93.示例性地,所述指定的图片子块顺序比如是按照图片子块的行方向。
94.由于表头包括编码数据存储地址,因此,通过该编码数据存储地址即可区分不同
的表头,或者又称之为表头界限,进一步区分图片子块。
95.在上述图片压缩方案中,由于在存储目标图片的压缩数据时,是以每个图片子块对应的表头进行处理,因此,可以实现对目标图片的局部压缩处理,从而提高了图片压缩的灵活性,可以实现按需快速压缩。
96.类似地,若所述目标图片为待处理图片中的一子图片,所述待处理图片由多张所述子图片拼接形成;则所述的方法还包括:遍历每个子图片以逐一作为所述目标图片,将所述目标图片的压缩数据位宽、所述压缩数据的存储地址存放到为该目标图片构建的表头中;根据所有子图片对应的表头,生成所述待处理图片的压缩数据。
97.如前所述,所述待处理图片比如为mipmap纹理贴图,其由按照分辨率依次减半的生成了一系列纹理图片以及原始纹理图片组成,因此,将每一张纹理图片可视为mipmap纹理贴图的子图片,为此,可以将mipmap纹理贴图上的纹理图片依次作为所述目标图片,从而得到每张纹理图片对应的表头,进一步得到对应的压缩数据。为了区分不同分辨率的纹理图片的压缩数据,可以将所述压缩数据存放为每一张纹理图片创建的表头(或者又称之为级头)中。对于mipmap纹理贴图,该表头比如称之为map head。
98.示例性地,比如将所有纹理图片的表头拼接在一起,生成所述mipmap纹理贴图的压缩数据。
99.图3d示出了一种生成压缩数据的流程示意图。如图3d所示,所述待处理图片为mipmap纹理贴图,该mipmap纹理贴图由多级分辨率的多张纹理图片形成的一张大图,每张纹理图片相当于一张子图片,遍历所述多张纹理图片中每一张纹理图片,依次作为目标图片(比如记为目标图片1、目标图片2、目标图片3等等),执行分块处理步骤,比如得到4个图片子块,分别记为图片子块1、图片子块2、图片子块3、图片子块4;针对每个图片子块,执行同一图片子块内像素的局部相似性判断,确定不同像素间的相似性,从而得到若干组相似像素、若干个非相似像素,针对若干组相似像素、若干个非相似像素,以像素为单位生成映射数据步骤得到同一图片子块内所有像素的映射数据,再执行以图片子块为单位生成编码数据步骤等,以及以目标图片为单位生成压缩数据步骤,得到每张纹理图片对应的压缩数据。由于每张纹理图片对应有一份压缩数据,多张纹理图片共计多份压缩数据,比如记为目标图片1的压缩数据、目标图片2的压缩数据、目标图片3的压缩数据,依次类推。该多份压缩数据拼接形成该mipmap纹理贴图的压缩数据。
100.此处,有关分块处理步骤、同一目标图片内像素的局部相似性判断步骤、以像素为单位生成映射数据步骤、以图片子块为单位生成压缩数据步骤可参见上述实施例记载。
101.图4示出了一种图片解码方法流程示意图。如图4所示,其包括如下步骤s401-s404:s401、对目标图片的压缩数据进行解析,以得到所述目标图片中每个图片子块的编码数据存储地址、编码数据位宽、所述每个图片子块中单像素的映射数据位宽;示例性地,所述目标图片的压缩数据可以基于本技术上述实施例提供的压缩方法生成。
102.示例性地,如果所述目标图片的压缩数据是根据所有图片子块的表头生成,而针对每个图片子块,其对应表头中包括有编码数据存储地址、编码数据位宽、该图片子块中每
个像素对应映射数据位宽,因此,可以对所述压缩数据进行解析,获取到每个图片子块对应的表头,进一步从该表头中获取编码数据存储地址、编码数据位宽、所述每个图片子块中单像素的映射数据位宽。
103.示例性地,由于在生成目标图片的压缩数据时,可以按照指定的图片子块顺序生成,因此,在对压缩数据进行解析时,可以按照指定的图片子块顺序,从所述压缩数据中依次得到对应的表头,进一步从该表头中获取编码数据存储地址、编码数据位宽、所述每个图片子块中单像素的映射数据位宽。
104.s402、针对所述每个图片子块,根据其编码数据位宽,从其编码数据存储地址获取编码数据;如前所述,如果基于地址偏移量的方式来表述所述编码数据存储地址,则通过对压缩数据进行解析,得到当前图片子块对应编码数据存储地址相对于上一个图片子块对应编码数据存储地址的地址偏移量,在当前图片子块对应编码数据存储地址基础加上所述地址偏移量,即可得到当前图片子块对应编码数据存储地址。如前所述,地址偏移量是根据编码数据位宽来确定。因此,在上一个图片子块对应编码数据存储地址的基础上,考虑当前图片子块对应编码数据位宽得到地址偏移量,即可得到当前图片子块对应编码数据存储地址。
105.由于对于目标图片的压缩数据是按照图片子块对应编码数据进行管理的,因此,在上述步骤s402时,可以实现局部编码数据的获取,可以实现按需获取。
106.s403、针对所述每个图片子块,根据其中单像素的映射数据位宽,从其编码数据中获取所述每个像素的映射数据;示例性地,对于每个图片子块对应的编码数据,是由其包括的多个像素的映射数据组成,因此,在执行步骤s403时,以所述单像素的映射数据位宽为数据遍历的步长,从而可逐一获取到每个像素对应的映射数据。比如,访问编码数据存储地址指向的存储位置,以获取映射数据表中,基于所述单像素的映射数据位宽,按照像素在图片子块上逐行(或者逐列)的顺序,逐一获取每个像素对应的映射数据。
107.由于对于图片子块的编码数据是按照像素对应映射数据进行管理的,因此,在上述步骤s403时,可以实现局部映射数据的获取,可以实现按需获取。
108.s404、针对所述每个图片子块,根据其中每个像素的映射数据,得到所述每个像素的颜色通道值,以生成所述目标图片的解码数据。
109.示例性地,步骤s404中,根据其中每个像素的映射数据,得到所述每个像素的颜色通道值时,可以基于上述逆映射关系,对每个像素的映射数据进行逆映射处理,从而得到每个像素的颜色通道值。遍历完每个图片子块的所有像素,完成逆映射处理,从而得到所述目标图片的解码数据,该解码数据包括该目标图片上所有像素的颜色通道值。
110.由于对于图片子块的编码数据是图片子块为单位进行管理的,因此,在上述步骤s404时,可以进行所述目标图片的局部解码,比如指定其中某个图片子块的编码数据进行解码,从而实现按需获取,可以提高后续应用比如渲染时的数据加载效率。
111.示例性地,在将上述图片解码方法应用到mipmap纹理贴图应用场景时,针对该mipmap纹理贴图中的每一级纹理贴图执行上述图片解码方法,得到对应纹理贴图的解码数据,遍历完所有级纹理贴图,从而得到所述mipmap纹理贴图的解码数据,以满足3d渲染器的
按需渲染需求。
112.对应上述实施例提供的方法,本技术实施例还提供了对应的装置,详细如下。
113.示例性地,提供了一种图片映射装置,其包括:图片获取单元,用于获取目标图片;图片分块单元,用于对所述目标图片进行分块处理,以得到若干图片子块;像素比较单元,用于针对每个图片子块,比较不同像素间的相似性,确定出若干组相似像素和若干个非相似像素,每组相似像素包括至少两个相似像素;数据映射单元,用于针对所述每个图片子块中的任一组相似像素,基于设定的映射关系,对其中所述相似像素的颜色通道值进行映射处理,得到对应的映射数据,以在同一组相似像素的相似像素之间复用;以及针对所述每个图片子块中的所述非相似像素,基于所述设定的映射关系,对其中每个所述非相似像素的颜色通道值进行映射处理,得到对应的映射数据。
114.该图片映射装置实施例中,有关各个单元的示例性解释可参见上述实施例记载。
115.示例性地,提供了一种图片压缩装置,其中,包括:数据获取单元,用于获取针对目标图片的每个图片子块中每个像素生成的映射数据,所述映射数据根据本技术任一项所述图片映射方法生成;数据编码单元,用于针对所述每个图片子块,根据其中每个像素对应的映射数据,对对应的图片子块进行编码处理得到编码数据并分配编码数据存储地址进行存储;以及根据所述每个图片子块的编码数据存储地址及编码数据位宽、所述每个图片子块中单像素的映射数据位宽,生成所述目标图片的压缩数据。
116.该图片压缩装置实施例中,有关各个单元的示例性解释可参见上述实施例记载。
117.示例性地,提供了一种图片解码装置,其中,包括:数据解析单元,用于对目标图片的压缩数据进行解析,以得到所述目标图片中每个图片子块的编码数据存储地址、编码数据位宽、所述每个图片子块中单像素的映射数据位宽,所述压缩数据根据权利要求1-10任一项所述图片压缩方法生成;数据解码单元,用于针对所述每个图片子块,根据其编码数据位宽,从其编码数据存储地址获取编码数据;针对所述每个图片子块,根据其中单像素的映射数据位宽,从其编码数据中获取所述每个像素的映射数据;以及针对所述每个图片子块,根据其中每个像素的映射数据,得到所述每个像素的颜色通道值,以生成所述目标图片的解码数据。
118.该图片解码装置实施例中,有关各个单元的示例性解释可参见上述实施例记载。
119.参照图5,为本技术实施例中一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
120.如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
121.其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
122.通信接口504,用于与其它电子设备或服务器进行通信。
123.处理器502,用于执行程序510,具体可以执行上述图片处理方法实施例中的相关步骤。
124.具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
125.处理器502可能是cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
126.存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
127.程序510具体可以用于使得处理器502执行前述多个方法实施例中任一实施例所描述的图片处理方法、模型训练方法、图片搜索方法对应的操作。
128.程序510中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,并具有相应的有益效果,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
129.本技术实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述多个方法实施例中的任一方法对应的操作。
130.本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一方法对应的操作。
131.需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
132.上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
133.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
134.以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献