CN117611693A - 数据处理方法、装置、计算机可读存储介质和电子装置 - Google Patents

数据处理方法、装置、计算机可读存储介质和电子装置 Download PDF

Info

Publication number
CN117611693A
CN117611693A CN202311389316.XA CN202311389316A CN117611693A CN 117611693 A CN117611693 A CN 117611693A CN 202311389316 A CN202311389316 A CN 202311389316A CN 117611693 A CN117611693 A CN 117611693A
Authority
CN
China
Prior art keywords
data
value
processing
block
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311389316.XA
Other languages
English (en)
Inventor
牛兴帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202311389316.XA priority Critical patent/CN117611693A/zh
Publication of CN117611693A publication Critical patent/CN117611693A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

本申请公开了一种数据处理方法、装置、计算机可读存储介质和电子装置,涉及计算机技术领域。该方法包括:获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。

Description

数据处理方法、装置、计算机可读存储介质和电子装置
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、计算机可读存储介质和电子装置。
背景技术
在大型游戏世界中,地图范围通常会制作的十分广阔,尤其是在战略模拟游戏(Strategy and Simulation Game,SLG)中,地图范围广阔至409600平方公里或更大。游戏中通过地形数据描述地形的高度信息,通常以高度图(Heightmap)的方式进行存储。由于地图范围的广阔,地形数据通常会占用游戏的大量存储空间,因此为了节省游戏存储空间,需要在不失美术效果的同时压缩地形数据。
目前,在存储地形数据时,通常会采用差分编码法的方式压缩地形数据,从而减少地形数据的存储空间,但是差分编码法的压缩率较低,且会导致地形数据丢失,无法完成还原地形地貌特征。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请至少部分实施例提供了一种数据处理方法、装置、计算机可读存储介质和电子装置,以至少解决相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
根据本申请其中一实施例,提供了一种数据处理方法,该方法包括:获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
根据本申请其中一实施例,还提供了一种数据处理装置,该装置包括:获取模块,用于获取第一数据,其中,第一数据为三维数据;处理模块,用于对第一数据进行灰度补偿处理,得到第二数据;分块模块,用于对第二数据进行数据分块处理,得到至少一个第一分块数据;压缩模块,用于对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
根据本申请其中一实施例,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为在计算机或处理器上运行时执行上述实施例中的数据处理方法。
根据本申请其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述实施例中的数据处理方法。
在本申请至少部分实施例中,通过获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请实施例中的数据可以为游戏中的地形数据,通过上述方法达到了对庞大的地形数据在大倍率压缩的同时仍能够保留地形数据细节的目的,从而能够实现在不损失地形地貌特征的同时极限压缩游戏包体的技术效果,有效减少了地形数据所占用的存储空间,增强了地形图像的细节,进而解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种数据处理的移动终端的硬件结构框图;
图2是根据本申请其中一实施例的数据处理方法的流程图;
图3是根据本申请其中一可选实施例的数据处理装置的结构框图;
图4是根据本申请实施例的一种电子装置的示意图。
具体实施方式
为了便于理解,示例性地给出了部分与本申请实施例相关概念的说明以供参考。
如下所示:
16bit:16表示图像的位深度(Bit Depth),也就是每个像素所占用的比特数。16bit高度图是一种地形数据的表示方式,其中每个像素的值表示地面相对于某个参考点的高度值。16位精度意味着每个像素可以存储的高度值范围为0到65535,可以提供更精确的地形表示。
对比度限制自适应直方图均衡化(Contrast Limited Adaptive HistogramEqualization,CLAHE)算法:一种图像增强算法,是直方图均衡化(HistogramEqualization)算法的改进方法,能够在增强图像对比度的同时避免过度增强导致的噪声放大。
CLAHE算法的基本思想是将图像分成多个小块,对每个小块进行直方图均衡化,并且为了避免过度增强,CLAHE算法对直方图进行了限制,通过对每个小块的直方图进行裁剪,将超过一定阈值的像素进行削减,然后再将剩下的像素进行均衡化,从而能够在不同区域进行自适应的直方图均衡化,使得整体图像的对比度得到增强,同时能够避免过度增强导致的噪声放大。为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在一种可能的实施方式中,针对计算机技术领域下,在存储游戏中的地形数据时,通常采用16bit精度的高度图来存储地形数据,由于采用16bit格式存储,每个像素需要占用16个二进制位,导致地形数据所占存储空间较大,因此采用差分编码法的方式对地形数据进行压缩数据。先将16bit地形数据隔行隔像素直接保存下来,然后对于其余的像素,将其值与前一个像素的值之间的差值进行编码,从而减少地形数据的存储空间。
发明人经过实践并仔细研究后,发现上述方法仍然存在会造成地形数据大量丢失,地形数据精度缺失,无法完整还原地形地貌特征,且压缩率不高,压缩后的地形数据所占存储空间依旧较大的问题。基于此,本申请实施例应用的游戏场景可以是游戏中图像处理领域,提出了一种数据处理方法,通过获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请实施例中的数据可以为游戏中的地形数据,通过上述方法达到了对庞大的地形数据在大倍率压缩的同时仍能够保留地形数据细节的目的,从而能够实现在不损失地形地貌特征的同时极限压缩游戏包体的技术效果,有效减少了地形数据所占用的存储空间,增强了地形图像的细节,进而解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
本申请涉及到的上述方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机、掌上电脑以及移动互联网设备、平板电脑(Personal Access Display,PAD)、游戏机等终端设备。图1是本申请实施例的一种数据处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)、数字信号处理(digital signal processing,DSP)芯片、微处理器(microcontroller unit,MCU)、可编程逻辑器件(field-programmable gate array,FPGA)、神经网络处理器(neural networkprocessing unit,NPU)、张量处理器(tensor processing unit,TPU)、人工智能(artificial intelligent,AI)类型处理器等的处理装置)和用于存储数据的存储器104,在本申请其中一实施例中,还可以包括:传输设备106、输入输出设备108以及显示设备110。
在一些以游戏场景为主的可选实施例中,上述设备还可以提供具有触摸触敏表面的人机交互界面,该人机交互界面可以感应手指接触和/或手势来与图形用户界面(Graphical User Interface,GUI)进行人机交互,该人机交互功能可以包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
本领域技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
根据本申请其中一实施例,提供了一种数据处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种可能的实施方式中,本申请实施例提供了一种数据处理方法,图2是根据本申请其中一实施例的数据处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S20,获取第一数据,其中,第一数据为三维数据;
第一数据可以理解为待压缩的数据,是一种三维数据,具有深度信息。
可以理解的是,本申请实施例提供的数据处理方法可以应用在游戏领域,则第一数据可以为用于表示游戏中地形高度信息的地形数据,此处不予限制。后文中均以第一数据为游戏中的地形数据为例进行描述。
在第一数据表示地形数据时,第一数据可以采用高度图的方式进行存储。高度图中的每个像素都代表了地形表面的一个高度值,这些高度值可以被转换为三维(Three-dimensional,3D)坐标系中的坐标,进而在游戏地图中构建出3D的顶点起伏效果。
通常情况下,为了避免高度信息精度不够造成的明显色带和噪点误差,以及为了更好的表现地形中更大的高度差,游戏中会采用16bit高度图来存储地形数据。由于16bit高度图的每个像素能够表示约0.00001526的高度变化,即每个像素能够表示1/(216-1)的高度变化,而8bit高度图的每个像素只能表示约0.00392的高度变化,即每个像素能够表示1/(28-1)的高度变化,因此16bit高度图相对于8bit高度图在高度精度上具有更高的分辨率,能够提供更精确的地形表示,但相应地,16bit高度图所占用的存储空间将会更大。
在本申请实施例中,待压缩的第一数据可以为16bit高度图格式表示的地形数据,由于所占用的存储空间较大,因此需要对第一数据进行压缩,从而减小其所占用的存储空间。
示例性地,本申请实施例所提供的数据处理方法可以通过编辑代码脚本执行,本申请实施例中以Python脚本为例,可以使用cv2.imread()函数读取游戏中待压缩的16bit地形数据,例如img=cv2.imread(‘gray16bit.png’,cv2.IMREAD_UNCHANGED),即为使用cv2库中的imread函数读取名为‘gray16bit.png'的图像文件,并将其存储在img变量中,此处不予限制。
步骤S22,对第一数据进行灰度补偿处理,得到第二数据;
获取到待压缩的地形数据后,可以对地形数据进行灰度补偿处理,调整地形数据的灰度值,增强地形数据的细节信息,提高数据的可视化效果,从而得到第二地形数据。
示例性地,可以使用对比度限制自适应直方图均衡化(CLAHE)函数对地形数据进行灰度补偿处理,图像分成小块,对每个小块进行直方图均衡化,此处不予限制。
步骤S24,对第二数据进行数据分块处理,得到至少一个第一分块数据;
将灰度补偿后的地形数据进行分块处理,得到地形数据的多个分块,即得到至少一个第一分块数据,通过对第二数据进行分块处理,从而后续能够针对每个分块的特征进行更加精确的处理,以提高数据处理效率。
步骤S26,对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
对得到的至少一个第一分块数据进行像素均衡化处理,可以理解为对每个第一分块数据分别确定像素平均值,从而压缩每个第一分块数据,得到第三数据,进而能够减少压缩算法的计算量和时间复杂度,提高压缩效率。
可以理解的是,对第二数据进行分块压缩后,得到的由压缩后的多个分块构成的第三数据所占用的存储空间,将会远小于最初获得的第一数据所占用的存储空间,也即可以理解为第三数据的体积远小于第一数据的体积。
得到第三数据之后,还可以基于第三数据渲染得到的游戏中的地形图像,从而能够在不损失地形精度的情况下,有效压缩游戏的内存空间,为游戏包体节省大量存储空间。
示例性地,在根据第三数据渲染地形图像时,可以对第三数据中的经过像素均衡化后得到的平均像素值进行扩大处理,可以理解为基于平均像素值计算出像素均衡化之前的像素值,从而进行渲染得到地形图像。由此,即能够实现通过存储较少像素数据,减小数据的内存占比,但依旧得到高精度高分辨率的地形图像,且保留地形起伏效果,还原目标地貌形态的技术效果。
可以理解的是,本申请实施例所提供的数据处理方法能够应用在有大量地形数据存储的游戏中,也能够对具有与地形数据相同类型的其他数据进行处理,此处不予限制。
通过上述步骤,通过获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请实施例中的数据可以为游戏中的地形数据,通过上述方法达到了对庞大的地形数据在大倍率压缩的同时仍能够保留地形数据细节的目的,从而能够实现在不损失地形地貌特征的同时极限压缩游戏包体的技术效果,有效减少了地形数据所占用的存储空间,增强了地形图像的细节,进而解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
在一种可能的实施方式中,步骤S22中,对第一数据进行灰度补偿处理,得到第二数据可以包括以下执行步骤:
步骤S220,基于对比度限制自适应直方图均衡化算法对第一数据进行灰度补偿处理,得到第二数据。
对比度限制自适应直方图均衡化(CLAHE)是一种图像增强的算法,是对自适应直方图均衡化(AHE)算法的改进,用于提高图像的对比度。CLAHE算法通过将图像分成小块,然后在每个块上进行直方图均衡化,从而使每个块内的对比度增强,同时通过限制像素值的最大值能够避免对比度过度增强。
基于CLAHE算法能够对第一数据进行灰度补偿处理,从而能够提高地形数据的可视化效果和细节表达能力。
在一种可能的实施方式中,步骤S220中,基于对比度限制自适应直方图均衡化算法对第一数据进行灰度补偿处理,得到第二数据可以包括以下执行步骤:
步骤S2200,将第一数据的数据类型转换为浮点类型,并对第一数据进行归一化处理,得到第四数据;
步骤S2201,确定对比度限制自适应直方图均衡化算法的目标参数,其中,目标参数用于确定对比度限制阈值和分块大小;
步骤S2202,基于目标参数对第四数据进行灰度补偿处理,得到第二数据。
在基于CLAHE算法对第一数据进行灰度补偿处理时,可以先将第一数据转换为浮点类型(float),从而减少数据计算过程中的误差,便于进行地形数据的计算。之后为了避免数据溢出,再对转换为浮点类型的第一数据进行归一化处理,将地形数据中每一像素的高度值缩放值[0,1]范围内,得到第四数据,从而方便后续对地形数据进行压缩处理,控制数据的误差。
得到经过归一化处理的第四数据后,需要创建一个CLAHE对象,并确定CLAHE对象的目标参数,其中,目标参数包括clipLimit参数和tileGridSize参数,clipLimit参数用于确定对比度限制的阈值,也即用于确定对比度所能增强的最高值,避免对比度过度增强,tileGridSize参数用于确定每个局部区域的大小,即每个分块的大小。可以理解的是,CLAHE对象的目标参数可以基于实际处理要求设置,此处不予限制。
确定了CLAHE对象的目标参数后,即创建完成了CLAHE对象,进而可以将第四数据作为CLAHE对象的输入参数,对进行第四数据进行CLAHE处理,从而得到CLAHE处理后的第二数据。可以理解为调整了第四数据中不同灰度级之间的亮度差异,进而得到了第二数据,从而增强了第二数据的细节信息,提高第二数据的可视化效果。
示例性地,可以使用astype函数定义第一数据的数据类型,将第一数据的数据类型转换为浮点类型,例如img_float=img.astype(np.float32),即将第一数据从img转换为32位float类型(float32)。再基于img_float/=65535.0将float类型的第一数据的像素值范围从0-65535映射到0-1,进行归一化处理,得到第四数据。之后可以使用cv2.createCLAHE()函数创建一个CLAHE对象,并对clipLimit参数和tileGridSize参数进行设置,例如clahe=cv2.createCLAHE(clipLimit=3.0,tileGridSize=(8,8))。再对第四数据进行CLAHE处理,例如img_clahe=clahe.apply((img_float*255).astype(np.uint8)),可以先将浮点类型的第四数据的像素值范围映射到[0,255]之间,并将数据类型转换为8位无符号整数类型(uint8),从而将其作为CLAHE算法的参数,得到CLAHE处理后的第二数据,此处不予限制。
在一种可能的实施方式中,步骤S26中,对至少一个第一分块数据进行像素均衡化处理,得到第三数据可以包括以下执行步骤:
步骤S260,确定至少一个第一分块数据的平均像素值,得到至少一个目标像素值;
步骤S261,基于至少一个目标像素值和缩放比例确定第三数据。
本申请实施例中的数据可以通过矩阵的形式表示,对第二数据进行分块处理后得到至少一个第一分块数据也可以通过矩阵的形式表示,第一分块数据可以由矩阵中的一个或多个数值构成。
在对至少一个第一分块数据进行像素均衡化处理,即压缩处理时,可以确定至少一个第一分块数据的平均像素值,即得到每个第一分块数据中所有像素值的平均值,得到至少一个目标像素值。至少一个目标像素值与至少一个第一份块数据对应。
缩放比例可以预先设置,用于对像素进行缩放。确定至少一个目标像素值后,可以基于得到的至少一个目标像素值和缩放比例确定第三数据,将至少一个目标像素值根据预设的缩放比例再次进行压缩并保存,从而得到第三数据,以降低第三数据所占用的存储空间。
示例性地,对第二数据进行分块压缩处理(包括分块处理和像素均衡化处理),得到至少一个目标像素值时,可以使用numpy.zeros()函数创建一个大小为(len(data)/CHUNK_SIZE,len(data)/CHUNK_SIZE)的全零矩阵,即创建一个行数和列数都等于len(data)/CHUNK_SIZE的矩阵,用于存储标准化的数据,矩阵中的所有元素初始化为零。例如standard_data=numpy.zeros((len(data)/CHUNK_SIZE,len(data)/CHUNK_SIZE)),其中,data即为第二数据。之后可以通过两个嵌套的循环,将第二数据划分成大小为CHUNK_SIZE的小块,并计算每个小块的平均值,将这些平均值存储在standard_data矩阵中的相应位置。例如for iin xrange(0,len(data),CHUNK_SIZE):for j in xrange(0,len(data[i]),CHUNKSIZE):standard_data[i/CHUNK_SIZE][j/CHUNK_SIZE]=nu mpy.sum(data[i:i+CHUNK_SIZE,j:j+CHUNK_SIZE])/(CHUNK_SIZE*CHUNK_SIZE),从而能够对第二数据进行分块,得到至少一个目标像素值,此处不予限制。
在得到至少一个目标像素值后,可以设置一个缩放比例multi_ratio,例如multi_ratio=1000.0/STANDARD_RATIO,即将multi_ratio设置为1000.0除以STANDARD_RATIO的结果。再将standard_data与multi_ratio进行元素级相乘,例如standard_data=numpy.multiply(standard_data,multi_ratio),从而对standard_data进行缩放操作,即对至少一个目标像素值进行压缩。压缩之后,还需要对数据类型进行转换,并再次执行归一化操作,例如img_clahe=img_clahe.astype(np.float32)/255.0,从而将数据类型转换为float32类型,并将像素值除以255.0映射到范围[0,1]之间,得到第三数据,此处不予限制。
在一种可能的实施方式中,步骤S261中,基于至少一个目标像素值和缩放比例确定第三数据可以包括以下执行步骤:
步骤S2610,基于至少一个目标像素值和缩放比例确定第五数据;
步骤S2611,对第五数据进行数据分块处理,得到至少一个第二分块数据;
步骤S2612,对至少一个第二分块数据进行像素均衡化处理,得到第三数据。
对第二数据进行分块压缩处理,得到第三数据时,可以执行多次分块压缩处理,以提高数据压缩比率,更大幅度降低所得到的第三数据的体积占比。
此处以执行两次分块压缩处理为例进行说明,基于至少一个目标像素值和缩放比例可以先得到第五数据,然后对第五数据进行分块处理,得到至少一个第二分块数据,之后对至少一个第二分块数据进行像素均衡化处理,最终得到第三数据。在执行第二次分块压缩处理时,为了后续保存方便,还可以对数据类型进行转换,将第三数据的数据类型可以为无符号16位整数类型(uint16),从而方便后续进行数据保存。
示例性地,在得到第五数据之后,对第五数据进行分块处理可以使用numpy.zeros()函数创建一个大小为(len(data),len(data))的全零矩阵bias_data,用于存储处理后的数据。例如bias_data=numpy.zeros((len(data),len(data))),其中,data即为第五数据,也即该bias_data为与第五数据的行列长度相同的矩阵。之后,通过对bias_data进行遍历,将standard_data中对应位置的值进行缩放和转换后,将结果保存在bias_data中,例如for i in xrange(len(data)):for j in xrange(len(data[i])):bias_data[i][j]=int(standard_data[i/CHUNK_SIZE][j/CHUNKSIZE])/1000,即将standard_data中对应位置的值除以1000后转换为整数,并将结果存储在bias_data中。最后,将bias_data赋值给standard_data,例如standard_data=bias_data,从而对第五数据进行分块处理,得到至少一个第二分块数据,此处不予限制。
在得到至少一个第二分块数据后,可以将至少一个第二分块数据的数据类型进行转换,从浮点型转换为uint16类型,例如img_clahe=(img_clahe*65535.0).astype(np.uint16),即将img_clahe的像素值从浮点型的范围[0,1]映射到无符号16位整数类型的范围[0,65535]之间,并将其结果存储在img_clahe中。之后可以再次设置缩放比例multi_ratio,例如multi_ratio=1.0/BIAS_1_RATIO,即将multi_ratio设置为1.0除以BIAS_1_RATIO的结果。然后使用numpy.subtract函数计算data和bias_data之间的差值,再使用numpy.dot函数将得到的差值矩阵与multi_ratio矩阵进行矩阵乘法运算,并将上述矩阵乘法的结果赋值给bias_data,从而得到第三数据。例如bias_data=numpy.dot(numpy.subtract(data,bias_data),multi_ratio),从而能够使得第三数据为方便保存的uint16类型,同时还对数据进行了偏差校正和调整,此处不予限制。
在一种可能的实施方式中,该方法还可以包括以下执行步骤:
步骤S2613,对第三数据进行误差修正处理,得到第六数据。
由于在通过分块压缩得到第三数据时,数据可能存在误差,因此可以对第三数据进行误差修正处理,从而矫正地形数据,同时可以将地形数据转换为uint8类型,得到第六数据。
在一种可能的实施方式中,步骤S2613中,对第三数据进行误差修正处理,得到第六数据可以包括以下执行步骤:
步骤S26130,遍历第三数据中的第一数值,响应于第一数值满足预设条件,保持第一数值不变;
步骤S26131,响应于第一数值小于第一阈值且大于等于第二阈值,将第一数值更新为第一预设数值;
步骤S26132,响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;
步骤S26133,响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;
步骤S26134,将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
在对第三数据进行修正处理时,可以根据选择的检查模式选择不同的修正方式。示例性地,若在第一检查模式下,可以通过两个嵌套的循环遍历第三数据中的第一数值,例如for iin range(len(bias_data)):for j in range(len(bias_data[i])):value=bias_data[i,i]。对于满足预设条件,即绝对值大于等于第一阈值150的第一数值,输出其索引和自身数值,即保持该第一数值不变,例如if abs(value)>=150:print i,j,value。否则,对于小于第一阈值150且大于等于第二阈值128的第一数值,将该数值更新为第一预设数值127。对于小于第二阈值128且大于第三阈值-128的第一数值,保持该第一数值不变,例如bias_data[i,j]=127if value>=128else value。对于小于等于第三阈值-128的第一数值,将该数值更新为第二预设数值-128,例如bias_data[i,j]=value if value>-128else-128,从而得到更新后的第三数据,此处不予限制。
在通过上述方式对第三数据进行误差修正处理,得到更新后的第三数据之后,还需要将第三数据转换为0到255的整数,即转换为uint8类型。因此将bias_data中的所有元素加上目标数值128,例如bias_data=numpy.add(bias_data,128),从而得到第六数据,此处不予限制。
在另一种可能的实施方式中,步骤S2613中,对第三数据进行误差修正处理,得到第六数据可以包括以下执行步骤:
步骤S26135,遍历第三数据中的第一数值,响应于第一数值大于等于第二阈值,将第一数值更新为第一预设数值;
步骤S26136,响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;
步骤S26137,响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;
步骤S26138,将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
示例性地,在对第三数据进行修正处理时,若在第二检查模式下,可以循环遍历第三数据中的第一数值,使用numpy库的where函数对第一数值进行处理,对于大于等于第二阈值128的第一数值,将该第一数值更新为第一预设数值127,对于小于第二阈值128且大于第三阈值-128的第一数值,保持该第一数值不变,例如bias_data=numpy.where(bias_data>=128,127,bias_data)。对于小于等于第三阈值-128的第一数值,将该第一数值更新为赋值为第二预设数值-128,例如bias_data=numpy.where(bias_data>-128,bias_data,-128),从而得到更新后的第三数据,此处不予限制。
在通过上述方式对第三数据进行误差修正处理,得到更新后的第三数据之后,同样需要将第三数据转换为uint8类型,具体方式可参见上述步骤S26130-步骤S26134中的描述,此处不予赘述。
在一种可能的实施方式中,该方法还可以包括以下执行步骤:
步骤S280,将第三数据的数据类型转换为目标数据类型,得到第七数据,其中,第七数据的数据范围大于第三数据的数据范围;
步骤S281,将第七数据以目标数据类型进行保存。
在确定压缩后的地形数据(第三数据)后,可以直接对压缩后的地形数据进行保存,即通过对最初获得的第一数据经过数据类型转换和数据压缩后,在不损失地形精度的情况下,有效压缩了地形数据所占的存储空间。示例性地,能够实现将原始1.4GB的地形数据压缩到169MB,即所占存储空间缩小到了原始的1/8,从而能够为游戏包体节省大量存储空间。
示例性地,对第三数据进行保存时,可以将第三的数据类型转换为目标数据类型uint16类型,例如img_clahe=(img_clahe*65535.0).astype(np.uint16),即通过将img_clahe乘以65535,并转换为uint16类型,得到第七数据。可以理解的是,在对第三数据进行误差修正后,将其数据类型转换成了uint8类型(即第六数据),因此此处需要将其转换为uint16类型以方便保存。之后,可以将第七数据以目标数据类型uint16类型进行保存,例如cv2.imwrite(‘gray16bit_clahe.png',img_clahe),即使用cv2库中的imwrite函数将img_clahe保存为名为gray16bit_clahe.png的图像文件,此处不予限制。此外,保存地形数据时,可以保存该地形数据的深度数据和对应的点噪声灰度数据,此处不予限制。
此外,还可以判断存储第七数据的目录是否存在,若不存在则创建目标用以存储第七数据,若存在则可以使用shutil库中的rmtree函数覆盖该目录及其内容,此处不予限制。
在一种可能的实施方式中,该方法还可以包括以下执行步骤:
步骤S282,将第三数据的数据类型转换为目标数据类型,得到第八数据,其中,第八数据的数据范围大于第三数据的数据范围;
步骤S283,将第八数据扩大预设倍数,得到第九数据,其中,第九数据的图像尺寸大于第八数据的图像尺寸;
步骤S284,将第九数据的数据类型转换为预设数据类型,得到第十数据,其中,第十数据的数据范围小于第九数据的数据范围;
步骤S285,将第十数据以目标数据类型进行保存。
在确定压缩后的地形数据(第三数据)后,还可以对压缩后的地形数据进行还原,在对地形数据进行还原时,可以使用Scipy库中的ndimage模块来实现双线性插值算法和图像缩放等操作。
示例性地,首先读取待处理的压缩后的地形数据,即第三数据,并将其转换为16bit数据,得到第八数据,然后通过双线性插值算法将地形数据扩大到原来的预设倍数,即扩大两倍,得到第九数据,最后将16bit的第九数据重新缩放至8bit,得到第十数据,并保存为新的地形数据。此处所保存的第十数据以16bit进行保存,但本质上该第十数据仍是8bit数据,也即还原得到的第十数据所占用的存储空间仍小于最初获得的第一数据所占用的存储空间,示例性地,还原后的地形数据所占存储空间能够缩小至原始的1/4,从而依旧能够为游戏包体节省大量存储空间。
示例性地,在对压缩后的地形数据进行还原时,可以导入scipy库的ndimage模块,首先使用imread函数读取被存储在变量image中的压缩后的地形数据,例如image=ndimage.imread(‘8bit_heightmap.png',mode=‘L')。之后,创建了一个与压缩后的地形数据大小相同的全零矩阵image_16bit,并将其数据类型设置为uint16,例如image_16bit=np.zeros(image.shape,np.uint16)。然后,通过将压缩后的地形数据的每个像素值乘以256,将压缩后的地形数据中的像素值放大到0-65535的范围内,然后将结果存储在image_16bit矩阵中,例如image_16bit[:,:]=image[:,:]*256。之后使用ndimage中的zoom函数,采用双线性插值算法将image_16bit矩阵中的数据扩大两倍,例如image_16bit=ndimage.zoom(image_16bit,2,order=1)。接着,创建了一个与压缩后的地形数据大小相同的全零矩阵image_8bit,并将其数据类型设置为uint8,例如image_8bit=np.zeros(image.shape,np.uint8)。将image_16bit矩阵中的数据除以256,从而将放大后的数据缩小回0-255的范围内,并将结果存储在image_8bit矩阵中,例如image_8bit[:,:]=image_16bit[:,:]/256。最后,使用ndimage库中的imsave函数将名为image_16bit的16位高度图保存为名为16bit_heightmap.png的PNG文件,例如ndimage.imsave(‘16bit_heightmap.png',image_16bit)。从而能够将8bit的第十数据以16bit进行保存,此处不予限制。此外,保存地形数据时,可以保存该地形数据的深度数据和对应的点噪声灰度数据,此处不予限制。
在一种可能的实施方式中,该方法还可以包括以下执行步骤:对保存的数据进行误差修正处理。
在通过上述步骤S280-步骤S281或者步骤S282-步骤S285中任一方法对地形数据进行保存后,还可以对保存地形数据进行误差修正处理,从而提高地形数据精度,具体误差修正方式此处不予限制。
由此,通过本申请实施例所提供的数据处理方法,能够对游戏中庞大复杂的地形数据进行极限压缩的同时还保留了大量的细节,同时可进行回溯转换,将压缩后的地形数据进行还原。能够实现在不损失地貌效果的同时极限压缩游戏包体,减少游戏存储空间的技术效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请其中一实施例的数据处理装置的结构框图,如图3所示,以数据处理装置300为例,该数据处理装置300包括获取模块301,用于获取第一数据,其中,第一数据为三维数据;处理模块302,用于对第一数据进行灰度补偿处理,得到第二数据;分块模块303,用于对第二数据进行数据分块处理,得到至少一个第一分块数据;压缩模块304,用于对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
可选地,处理模块302还用于:基于对比度限制自适应直方图均衡化算法对第一数据进行灰度补偿处理,得到第二数据。
可选地,处理模块302还用于:将第一数据的数据类型转换为浮点类型,并对第一数据进行归一化处理,得到第四数据;确定对比度限制自适应直方图均衡化算法的目标参数,其中,目标参数用于确定对比度限制阈值和分块大小;基于目标参数对第四数据进行灰度补偿处理,得到第二数据。
可选地,压缩模块304还用于:确定至少一个第一分块数据的平均像素值,得到至少一个目标像素值;基于至少一个目标像素值和缩放比例确定第三数据。
可选地,压缩模块304还用于:基于至少一个目标像素值和缩放比例确定第五数据;对第五数据进行数据分块处理,得到至少一个第二分块数据;对至少一个第二分块数据进行像素均衡化处理,得到第三数据。
可选地,该装置还包括:第一修正模块,用于对第三数据进行误差修正处理,得到第六数据。
可选地,第一修正模块还用于:遍历第三数据中的第一数值,响应于第一数值满足预设条件,保持第一数值不变;响应于第一数值小于第一阈值且大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,第一修正模块还用于:遍历第三数据中的第一数值,响应于第一数值大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,该装置还包括:第一保存模块,用于将第三数据的数据类型转换为目标数据类型,得到第七数据,其中,第七数据的数据范围大于第三数据的数据范围;将第七数据以目标数据类型进行保存。
可选地,该装置还包括:第二保存模块,用于将第三数据的数据类型转换为目标数据类型,得到第八数据,其中,第八数据的数据范围大于第三数据的数据范围;将第八数据扩大预设倍数,得到第九数据,其中,第九数据的图像尺寸大于第八数据的图像尺寸;将第九数据的数据类型转换为预设数据类型,得到第十数据,其中,第十数据的数据范围小于第九数据的数据范围;将第十数据以目标数据类型进行保存。
可选地,该装置还包括:第二修正模块,用于对保存的数据进行误差修正处理。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:
步骤S20,获取第一数据,其中,第一数据为三维数据;
步骤S22,对第一数据进行灰度补偿处理,得到第二数据;
步骤S24,对第二数据进行数据分块处理,得到至少一个第一分块数据;
步骤S26,对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:基于对比度限制自适应直方图均衡化算法对第一数据进行灰度补偿处理,得到第二数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:将第一数据的数据类型转换为浮点类型,并对第一数据进行归一化处理,得到第四数据;确定对比度限制自适应直方图均衡化算法的目标参数,其中,目标参数用于确定对比度限制阈值和分块大小;基于目标参数对第四数据进行灰度补偿处理,得到第二数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:确定至少一个第一分块数据的平均像素值,得到至少一个目标像素值;基于至少一个目标像素值和缩放比例确定第三数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:基于至少一个目标像素值和缩放比例确定第五数据;对第五数据进行数据分块处理,得到至少一个第二分块数据;对至少一个第二分块数据进行像素均衡化处理,得到第三数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:对第三数据进行误差修正处理,得到第六数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:遍历第三数据中的第一数值,响应于第一数值满足预设条件,保持第一数值不变;响应于第一数值小于第一阈值且大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:遍历第三数据中的第一数值,响应于第一数值大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:将第三数据的数据类型转换为目标数据类型,得到第七数据,其中,第七数据的数据范围大于第三数据的数据范围;将第七数据以目标数据类型进行保存。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:将第三数据的数据类型转换为目标数据类型,得到第八数据,其中,第八数据的数据范围大于第三数据的数据范围;将第八数据扩大预设倍数,得到第九数据,其中,第九数据的图像尺寸大于第八数据的图像尺寸;将第九数据的数据类型转换为预设数据类型,得到第十数据,其中,第十数据的数据范围小于第九数据的数据范围;将第十数据以目标数据类型进行保存。
可选地,上述计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:对保存的数据进行误差修正处理。
在该实施例的计算机可读存储介质中,提供了一种数据处理的技术方案,通过获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请实施例中的数据可以为游戏中的地形数据,通过上述方法达到了对庞大的地形数据在大倍率压缩的同时仍能够保留地形数据细节的目的,从而能够实现在不损失地形地貌特征的同时极限压缩游戏包体的技术效果,有效减少了地形数据所占用的存储空间,增强了地形图像的细节,进而解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本申请实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的步骤。
根据本申请的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本申请实施例的程序产品不限于此,在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only Memory,EPROM)或闪存、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
步骤S20,获取第一数据,其中,第一数据为三维数据;
步骤S22,对第一数据进行灰度补偿处理,得到第二数据;
步骤S24,对第二数据进行数据分块处理,得到至少一个第一分块数据;
步骤S26,对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于对比度限制自适应直方图均衡化算法对第一数据进行灰度补偿处理,得到第二数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:将第一数据的数据类型转换为浮点类型,并对第一数据进行归一化处理,得到第四数据;确定对比度限制自适应直方图均衡化算法的目标参数,其中,目标参数用于确定对比度限制阈值和分块大小;基于目标参数对第四数据进行灰度补偿处理,得到第二数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定至少一个第一分块数据的平均像素值,得到至少一个目标像素值;基于至少一个目标像素值和缩放比例确定第三数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于至少一个目标像素值和缩放比例确定第五数据;对第五数据进行数据分块处理,得到至少一个第二分块数据;对至少一个第二分块数据进行像素均衡化处理,得到第三数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:对第三数据进行误差修正处理,得到第六数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:遍历第三数据中的第一数值,响应于第一数值满足预设条件,保持第一数值不变;响应于第一数值小于第一阈值且大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:遍历第三数据中的第一数值,响应于第一数值大于等于第二阈值,将第一数值更新为第一预设数值;响应于第一数值小于第二阈值且大于第三阈值,保持第一数值不变;响应于第一数值小于等于第三阈值,将第一数值更新为第二预设数值;将更新后的第三数据中的任一数值与目标数值相加,得到第六数据。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:将第三数据的数据类型转换为目标数据类型,得到第七数据,其中,第七数据的数据范围大于第三数据的数据范围;将第七数据以目标数据类型进行保存。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:将第三数据的数据类型转换为目标数据类型,得到第八数据,其中,第八数据的数据范围大于第三数据的数据范围;将第八数据扩大预设倍数,得到第九数据,其中,第九数据的图像尺寸大于第八数据的图像尺寸;将第九数据的数据类型转换为预设数据类型,得到第十数据,其中,第十数据的数据范围小于第九数据的数据范围;将第十数据以目标数据类型进行保存。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:对保存的数据进行误差修正处理。
在该实施例的电子装置中,提供了一种数据处理的技术方案,通过获取第一数据,其中,第一数据为三维数据;对第一数据进行灰度补偿处理,得到第二数据;对第二数据进行数据分块处理,得到至少一个第一分块数据;对至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,第三数据所占用的存储空间小于第一数据所占用的存储空间。本申请实施例中的数据可以为游戏中的地形数据,通过上述方法达到了对庞大的地形数据在大倍率压缩的同时仍能够保留地形数据细节的目的,从而能够实现在不损失地形地貌特征的同时极限压缩游戏包体的技术效果,有效减少了地形数据所占用的存储空间,增强了地形图像的细节,进而解决了相关技术中采用差分编码法压缩地形数据,压缩率较低,且会导致地形数据丢失,无法完整还原地形地貌特征的技术问题。
图4是根据本申请实施例的一种电子装置的示意图。如图4所示,电子装置400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,电子装置400以通用计算设备的形式表现。电子装置400的组件可以包括但不限于:上述至少一个处理器410、上述至少一个存储器420、连接不同系统组件(包括存储器420和处理器410)的总线430和显示器440。
其中,上述存储器420存储有程序代码,所述程序代码可以被处理器410执行,使得处理器410执行本申请实施例的上述方法部分中描述的根据本申请各种示例性实施方式的步骤。
存储器420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
在一些实例中,存储器420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子装置400。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器410或者使用多种总线结构中的任意总线结构的局域总线。
显示器440可以例如触摸屏式的液晶显示器(Liquid Crystal Display,LCD),该液晶显示器可使得用户能够与电子装置400的用户界面进行交互。
可选地,电子装置400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置400交互的设备通信,和/或与使得该电子装置400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口450进行。并且,电子装置400还可以通过网络适配器460与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器460通过总线430与电子装置400的其它模块通信。应当明白,尽管图4中未示出,可以结合电子装置400使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Array ofIndependent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
上述电子装置400还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(I/O接口)、网络接口、电源和/或相机。
本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置400还可包括比图4中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器420可用于存储计算机程序及对应的数据,如本申请实施例中的数据处理方法对应的计算机程序及对应的数据。处理器410通过运行存储在存储器420内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (14)

1.一种数据处理方法,其特征在于,所述方法包括:
获取第一数据,其中,所述第一数据为三维数据;
对所述第一数据进行灰度补偿处理,得到第二数据;
对所述第二数据进行数据分块处理,得到至少一个第一分块数据;
对所述至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,所述第三数据所占用的存储空间小于所述第一数据所占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,对所述第一数据进行灰度补偿处理,得到第二数据包括:
基于对比度限制自适应直方图均衡化算法对所述第一数据进行灰度补偿处理,得到所述第二数据。
3.根据权利要求2所述的方法,其特征在于,所述基于对比度限制自适应直方图均衡化算法对所述第一数据进行灰度补偿处理,得到第二数据包括:
将所述第一数据的数据类型转换为浮点类型,并对所述第一数据进行归一化处理,得到第四数据;
确定所述对比度限制自适应直方图均衡化算法的目标参数,其中,所述目标参数用于确定对比度限制阈值和分块大小;
基于所述目标参数对所述第四数据进行灰度补偿处理,得到所述第二数据。
4.根据权利要求1所述的方法,其特征在于,所述对所述至少一个第一分块数据进行像素均衡化处理,得到第三数据包括:
确定所述至少一个第一分块数据的平均像素值,得到至少一个目标像素值;
基于所述至少一个目标像素值和缩放比例确定所述第三数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述至少一个目标像素值和缩放比例确定所述第三数据包括:
基于所述至少一个目标像素值和所述缩放比例确定第五数据;
对所述第五数据进行数据分块处理,得到至少一个第二分块数据;
对所述至少一个第二分块数据进行像素均衡化处理,得到所述第三数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
对所述第三数据进行误差修正处理,得到第六数据。
7.根据权利要求6所述的方法,其特征在于,所述对所述第三数据进行误差修正处理,得到第六数据包括:
遍历所述第三数据中的第一数值,响应于所述第一数值满足预设条件,保持所述第一数值不变;
响应于所述第一数值小于第一阈值且大于等于第二阈值,将所述第一数值更新为第一预设数值;
响应于所述第一数值小于所述第二阈值且大于第三阈值,保持所述第一数值不变;
响应于所述第一数值小于等于所述第三阈值,将所述第一数值更新为第二预设数值;
将更新后的所述第三数据中的任一数值与目标数值相加,得到所述第六数据。
8.根据权利要求6所述的方法,其特征在于,所述对所述第三数据进行误差修正处理,得到第六数据包括:
遍历所述第三数据中的第一数值,响应于所述第一数值大于等于第二阈值,将所述第一数值更新为第一预设数值;
响应于所述第一数值小于所述第二阈值且大于第三阈值,保持所述第一数值不变;
响应于所述第一数值小于等于所述第三阈值,将所述第一数值更新为第二预设数值;
将更新后的所述第三数据中的任一数值与目标数值相加,得到所述第六数据。
9.根据权利要求1-8中任一项所述的方法,其特征在于,还包括:
将所述第三数据的数据类型转换为目标数据类型,得到第七数据,其中,所述第七数据的数据范围大于所述第三数据的数据范围;
将所述第七数据以所述目标数据类型进行保存。
10.根据权利要求1-8中任一项所述的方法,其特征在于,还包括:
将所述第三数据的数据类型转换为目标数据类型,得到第八数据,其中,所述第八数据的数据范围大于所述第三数据的数据范围;
将所述第八数据扩大预设倍数,得到第九数据,其中,所述第九数据的图像尺寸大于所述第八数据的图像尺寸;
将所述第九数据的数据类型转换为预设数据类型,得到第十数据,其中,所述第十数据的数据范围小于所述第九数据的数据范围;
将所述第十数据以所述目标数据类型进行保存。
11.根据权利要求10所述的方法,其特征在于,还包括:
对保存的数据进行误差修正处理。
12.一种数据处理装置,其特征在于,所述装置包括:
获取模块,用于获取第一数据,其中,所述第一数据为三维数据;
处理模块,用于对所述第一数据进行灰度补偿处理,得到第二数据;
分块模块,用于对所述第二数据进行数据分块处理,得到至少一个第一分块数据;
压缩模块,用于对所述至少一个第一分块数据进行像素均衡化处理,得到第三数据,其中,所述第三数据所占用的存储空间小于所述第一数据所占用的存储空间。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为在计算机或处理器上运行时,执行上述权利要求1至11任一项中所述的数据处理方法。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述权利要求1至11任一项中所述的数据处理方法。
CN202311389316.XA 2023-10-24 2023-10-24 数据处理方法、装置、计算机可读存储介质和电子装置 Pending CN117611693A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311389316.XA CN117611693A (zh) 2023-10-24 2023-10-24 数据处理方法、装置、计算机可读存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311389316.XA CN117611693A (zh) 2023-10-24 2023-10-24 数据处理方法、装置、计算机可读存储介质和电子装置

Publications (1)

Publication Number Publication Date
CN117611693A true CN117611693A (zh) 2024-02-27

Family

ID=89950496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311389316.XA Pending CN117611693A (zh) 2023-10-24 2023-10-24 数据处理方法、装置、计算机可读存储介质和电子装置

Country Status (1)

Country Link
CN (1) CN117611693A (zh)

Similar Documents

Publication Publication Date Title
US10776982B2 (en) Systems and methods for providing non-parametric texture synthesis of arbitrary shape and/or material data in a unified framework
CN112884875B (zh) 图像渲染方法、装置、计算机设备和存储介质
US20140354666A1 (en) Vertex parameter data compression
US20210027526A1 (en) Lighting estimation
CN110533594B (zh) 模型训练方法、图像重建方法、存储介质及相关设备
CN111597003B (zh) 一种画面渲染方法、装置、计算机设备和介质
JP2023029984A (ja) 仮想イメージを生成するための方法、装置、電子機器及び可読記憶媒体
CN109544668B (zh) 纹理坐标处理方法、终端设备及计算机可读存储介质
CN110214338B (zh) 增量颜色压缩到视频的应用
CN117292039B (zh) 顶点坐标生成方法、装置、电子设备及计算机存储介质
CN109697748A (zh) 模型压缩处理方法、模型贴图处理方法装置、存储介质
CN116824092A (zh) 三维模型生成方法、装置、计算机设备和存储介质
CN114820972A (zh) 等值线和/或等值面生成方法、系统、设备及存储介质
CN112215739B (zh) 一种用于AutoCAD的正射影图文件处理方法、装置及存储介质
CN117611693A (zh) 数据处理方法、装置、计算机可读存储介质和电子装置
CN116468839A (zh) 模型渲染方法、装置、存储介质及电子装置
US11869123B2 (en) Anti-aliasing two-dimensional vector graphics using a compressed vertex buffer
CN116843736A (zh) 场景渲染方法及装置、计算设备、存储介质和程序产品
CN111506680B (zh) 地形数据生成、渲染方法及装置、介质、服务器、终端
CN117957577A (zh) 用于神经渲染的多核系统
CN116883575B (zh) 建筑群渲染方法、装置、计算机设备和存储介质
CN118229830B (zh) 一种地理信息数据要素比例尺变换方法和装置
CN117557711B (zh) 可视域的确定方法、装置、计算机设备、存储介质
AU2023274149B2 (en) Method for 3D visualization of sensor data
US11875445B2 (en) Seamless image processing of a tiled image region

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination