CN115814406A - 虚拟场景的图像处理方法、装置及电子设备 - Google Patents
虚拟场景的图像处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115814406A CN115814406A CN202111616886.9A CN202111616886A CN115814406A CN 115814406 A CN115814406 A CN 115814406A CN 202111616886 A CN202111616886 A CN 202111616886A CN 115814406 A CN115814406 A CN 115814406A
- Authority
- CN
- China
- Prior art keywords
- image
- compressed
- virtual
- transparency
- color
- 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
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种虚拟场景的图像处理方法、装置、电子设备及计算机可读存储介质;方法包括:确定虚拟场景中的虚拟对象对应的对象图像;对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据;将压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。通过本申请,能够减少压缩处理过程中的信息损耗,提升最终得到的压缩对象图像的质量。
Description
优先权说明
本申请是申请号为202111093082.5,申请日为2021年09月17日,名称为:虚拟场景的图像处理方法、装置及电子设备的分案申请。
技术领域
本申请涉及计算机技术,尤其涉及一种虚拟场景的图像处理方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的快速发展,在游戏制作、动画制作及虚拟现实(VirtualReality,VR)等领域中广泛地应用到了虚拟建模技术,通过虚拟建模技术可以在屏幕中显示区别于现实世界的虚拟场景,从而实现具备立体感、真实感的场景显示。
虚拟场景包括大量的图像,因此通常会对图像进行压缩处理,以减少相关的处理压力。然而,在相关技术提供的方案中,通常是针对图像的所有通道进行无差别的压缩处理,这会导致压缩处理过程中的信息损耗过大,进一步导致压缩后的图像的质量差。
发明内容
本申请实施例提供一种虚拟场景的图像处理方法、装置、电子设备及计算机可读存储介质,能够在实现对对象图像的压缩的同时,提升得到的压缩对象图像的质量。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟场景的图像处理方法,包括:
确定虚拟场景中的虚拟对象对应的对象图像;
对所述对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;
对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据;
将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像。
本申请实施例提供一种虚拟场景的图像处理装置,包括:
确定模块,用于确定虚拟场景中的虚拟对象对应的对象图像;
通道分离模块,用于对所述对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;
压缩模块,用于对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据;
通道合并模块,用于将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的虚拟场景的图像处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的虚拟场景的图像处理方法。
本申请实施例具有以下有益效果:
对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据,然后对颜色数据以及透明度数据分别进行压缩处理,由于压缩处理会约束数据的存储空间,因此,相较于相关技术提供的方案中对所有通道进行无差别的压缩处理,本申请实施例能够减少颜色数据以及透明度数据在压缩处理过程中的信息损耗,提升最终得到的压缩对象图像的质量。
附图说明
图1是本申请实施例提供的压缩处理后的存储空间的示意图;
图2是相关技术提供的方案的压缩效果示意图;
图3是本申请实施例提供的虚拟场景的图像处理系统的架构示意图;
图4是本申请实施例提供的终端设备的架构示意图;
图5是本申请实施例提供的虚拟场景引擎的原理示意图;
图6A是本申请实施例提供的虚拟场景的图像处理方法的流程示意图;
图6B是本申请实施例提供的虚拟场景的图像处理方法的流程示意图;
图6C是本申请实施例提供的虚拟场景的图像处理方法的流程示意图;
图7是本申请实施例提供的非正方形的图像的示意图;
图8是本申请实施例提供的虚拟场景的图像处理方法的流程示意图;
图9是本申请实施例提供的通过尺寸扩充处理得到的图像的示意图;
图10是本申请实施例提供的通过尺寸扩充处理以及填充处理得到的图像的示意图;
图11是本申请实施例提供的压缩处理后的存储空间的示意图;
图12是本申请实施例提供的不同通道的对比示意图;
图13是本申请实施例提供的压缩效果示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)虚拟场景:利用电子设备输出的区别于现实世界的场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟环境。本申请实施例对虚拟场景的维度不加以限定,例如可以是三维虚拟场景。
3)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如,在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。虚拟场景可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
4)对象图像:用于表示虚拟对象的全部或部分形象的图像。例如,对象图像可以是用于表示虚拟对象表面细节的纹理(Texture)。
5)通道:图像的组成部分,一个图像可以是由多个通道组成的。在本申请实施例中,图像的通道可以包括颜色通道以及透明度通道(又称Alpha通道),颜色通道用于存储颜色数据,透明度通道用于存储透明度数据。值得说明的是,颜色通道的类型取决于所采用的颜色模式,例如,当采用RGB颜色模式时,颜色通道可以包括红色(Red)通道、绿色(Green)通道以及蓝色(Blue)通道;当采用CMYK颜色模式时,颜色通道可以包括青色(Cyan)通道、品红色(Magenta)通道、黄色(Yellow)通道以及黑色(blacK)通道。
6)虚拟场景引擎:为输出虚拟场景的电子设备所设计的、能够被该电子设备识别的代码(指令)集合,用于控制虚拟场景如何制作以及如何输出。从另一个角度来说,虚拟场景引擎可以是指封装了硬件操作和图像算法的虚拟场景开发环境。在本申请实施例中,可以利用虚拟场景引擎中的摄像机组件和着色组件来实现图像处理。
对于图像压缩,在相关技术提供的方案中,通常是针对图像的所有通道进行无差别的压缩处理,然而,由于压缩处理会约束数据的存储空间(如比特位数),故该方案会导致压缩处理过程中的信息损耗过大,进一步导致压缩后的图像的质量差。以PowerVR纹理压缩(PowerVR Texture Compression,PVRTC)算法下的RGBA Compressed PVRTC 4bits算法为例,结合图1所示,在对包括颜色通道以及透明度通道的图像进行压缩处理时,会约束使用3bits的空间来存储压缩透明度数据(指对图像中的透明度数据进行压缩处理得到的结果,以下同理),使用4bits的空间来存储压缩红色数据,使用4bits的空间来存储压缩绿色数据,使用4bits的空间来存储压缩蓝色数据,因此,受限于存储空间,RGB通道的颜色数据在压缩处理的过程中会产生较大的信息损耗,导致压缩得到的图像的质量差。
为了便于理解,本申请实施例提供了如图2所示的示意图,在图2中,图像21为压缩处理前的图像,包括颜色通道以及透明度通道;图像22为通过相关技术提供的方案对图像21进行压缩处理得到的图像。相较于图像21,图像22中出现了非常明显的毛刺以及边缘轮廓线,即图像22的质量不佳,相关技术提供的方案的压缩效果差。
本申请实施例提供一种虚拟场景的图像处理方法、装置、电子设备及计算机可读存储介质,能够在实现图像压缩的同时,提升得到的压缩对象图像的质量。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。
参见图3,图3是本申请实施例提供的虚拟场景的图像处理系统100的一个架构示意图,终端设备400通过网络300连接服务器200,其中,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,以电子设备是终端设备为例,本申请实施例提供的虚拟场景的图像处理方法可以由终端设备实现。例如,终端设备400确定虚拟场景中的虚拟对象对应的对象图像;对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据;将压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。终端设备400可以对压缩对象图像进行渲染,以借助图形输出硬件(如屏幕)输出压缩对象图像,例如,可以在智能手机的人机交互界面中显示压缩对象图像,其中,压缩对象图像能够产生对虚拟场景的视觉感知。
在一些实施例中,以电子设备是服务器为例,本申请实施例提供的虚拟场景的图像处理方法也可以由服务器实现。例如,服务器200可以对对象图像进行一系列处理,得到压缩对象图像。服务器200还可以对压缩对象图像进行进一步处理,例如对多个虚拟对象分别对应的压缩对象图像进行打包处理,得到虚拟场景的安装包(如游戏安装包),该安装包用于部署至终端设备400中,以使终端设备400能够根据该安装包来显示压缩对象图像。
在一些实施例中,本申请实施例提供的虚拟场景的图像处理方法也可以由终端设备及服务器协同实现。例如,终端设备400可以确定虚拟场景中的虚拟对象对应的对象图像,并将对象图像发送至服务器200。服务器200对接收到的对象图像进行一系列处理后得到压缩对象图像,并将压缩对象图像发送至终端设备400,以使终端设备400进行显示。或者,服务器200也可以在对接收到的对象图像进行一系列处理后,将得到的压缩颜色数据以及压缩透明度数据发送至终端设备400,以使终端设备400将接收到的压缩颜色数据以及压缩透明度数据进行通道合并处理,得到压缩对象图像。
在一些实施例中,可以将图像处理过程中涉及到的各种结果(如对象图像、压缩颜色数据、压缩透明度数据、压缩对象图像等)存储至区块链中,由于区块链具有不可篡改的特性,因此能够保证区块链中的数据的准确性。电子设备可以向区块链发送查询请求,以查询区块链中存储的数据,例如,在需要显示压缩对象图像时,终端设备400可以查询区块链中存储的压缩对象图像,并进行渲染处理。
在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申请实施例提供的虚拟场景的图像处理方法。例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如图3示出的客户端410;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序,该小程序可以由用户控制运行或关闭。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。在计算机程序为游戏应用程序的情况下,涉及的游戏包括但不限于第一人称射击(First-PersonShooting,FPS)游戏、第三人称射击(Third-Personal Shooting,TPS)游戏、多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏以及多人枪战类生存游戏,对此不做限定。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是虚拟场景的图像处理服务,供终端设备400进行调用。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图4中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图4,图4是本申请实施例提供的终端设备400的结构示意图,图4所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的虚拟场景的图像处理装置可以采用软件方式实现,图4示出了存储在存储器450中的虚拟场景的图像处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:确定模块4551、通道分离模块4552、压缩模块4553以及通道合并模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
参见图5,图5是本申请实施例提供的虚拟场景引擎的原理示意图,在虚拟场景是游戏虚拟场景的情况下,虚拟场景引擎可以是游戏引擎,如Unity3D游戏引擎。如图5所示,虚拟场景引擎包括但不限于编辑组件(如编辑器,用于编辑/制作虚拟场景)、底层算法、场景管理(用于管理虚拟场景中的多个子场景)、音效(用于管理虚拟场景对应的音频)、脚本引擎、摄像机组件以及着色组件。本申请实施例提供的虚拟场景的图像处理方法可以是由图4示出的虚拟场景的图像处理装置455中的各个模块调用图5示出的虚拟场景引擎的相关组件所实现的,下面进行示例说明。
例如,确定模块4551用于调用虚拟场景引擎中的摄像机组件,以摄像机组件;通道分离模块4552用于调用着色组件,以对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;压缩模块4553用于调用着色组件,以对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据;通道合并模块4554用于调用着色组件,以将压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。
当然,上述示例并不构成对本申请实施例的限定,虚拟场景引擎包括的各个组件、以及虚拟场景的图像处理装置455中的各个模块对虚拟场景引擎中的组件的调用关系,均可以根据实际应用场景进行调整。
将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的虚拟场景的图像处理方法。
参见图6A,图6A是本申请实施例提供的虚拟场景的图像处理方法的一个流程示意图,将结合图6A示出的步骤进行说明。
在步骤101中,确定虚拟场景中的虚拟对象对应的对象图像。
这里,对象图像用于表示虚拟对象的部分或全部形象,例如可以是用于表示虚拟对象表面细节的纹理。
值得说明的是,本申请实施例对虚拟场景的类型不做限定,例如可以是游戏虚拟场景等。对虚拟场景中的虚拟对象的数量不做限定,例如可以是一个或多个。此外,虚拟对象与对象图像之间可以是一对一的关系,也可以是一对多的关系,例如可以通过多个对象图像来表示同一个虚拟对象。
在一些实施例中,可以通过这样的方式来实现上述的确定虚拟场景中的虚拟对象对应的对象图像:通过虚拟场景中的虚拟对象对应的图像路径,获取虚拟对象对应的对象图像。
这里提供了确定虚拟对象对应的对象图像的一种示例。例如,可以在电子设备中预先存储与虚拟对象对应的对象图像,并存储虚拟对象与对象图像的图像路径(即存储路径)之间的对应关系。在图像处理的过程中,可以访问虚拟场景中的虚拟对象对应的图像路径,从而得到该虚拟对象对应的对象图像。通过该方式,能够保证得到的对象图像的准确无误。
在一些实施例中,可以通过这样的方式来实现上述的确定虚拟场景中的虚拟对象对应的对象图像:响应于针对虚拟场景的观测操作,确定观测操作对应的观测范围;通过虚拟场景引擎的摄像机组件对观测范围内的虚拟对象进行图像采集处理,得到虚拟对象对应的对象图像。
这里提供了确定虚拟对象对应的对象图像的另一种示例。例如,在接收到针对虚拟场景的观测操作时,确定该观测操作对应的观测范围。
观测操作可以是用户执行的,例如可以通过特定的设备(如键盘、鼠标、语音采集设备、姿势采集设备等)来接收用户的观测操作,并根据该观测操作来确定对应的观测范围。以游戏虚拟场景为例,用户可以操纵游戏虚拟场景中的虚拟人物来游玩游戏,此时,对虚拟人物的操纵操作(如移动鼠标的操作)即为观测操作,电子设备响应于该观测操作,以虚拟人物为第一人称视角,确定出虚拟人物实时的观测范围(视野范围)。
观测操作也可以是电子设备根据预先设定的观测策略自动执行的,观测策略如:先根据观测范围A进行观测,一段时间后再根据观测范围B进行观测。
在确定出观测范围的基础上,可以调用虚拟场景引擎的摄像机组件,以对观测范围内的虚拟对象进行图像采集处理,得到虚拟对象对应的对象图像。上述方式支持通过观测操作来调整观测范围,能够提升确定对象图像的灵活性,符合实际应用场景中的不同需求。
在步骤102中,对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据。
例如,通过步骤101得到的对象图像包括颜色通道以及透明度通道,在该情况下,为了提升图像压缩的效果,对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据。以颜色通道为RGB通道的情况为例,则颜色数据可以包括红色通道所存储的红色数据、绿色通道所存储的绿色数据、以及蓝色通道所存储的蓝色数据。
在一些实施例中,可以通过这样的方式来实现上述的对对象图像进行通道分离处理:当虚拟场景满足压缩条件时,对对象图像进行通道分离处理;其中,压缩条件包括以下至少之一:虚拟场景当前的子场景属于待压缩的子场景;其中,待压缩的子场景包括虚拟场景中的至少部分子场景;虚拟场景当前待压缩的虚拟对象的数量大于数量阈值;虚拟场景当前的场景参数大于场景参数阈值;其中,场景参数包括虚拟对象的交互参数、虚拟对象的数量、以及设备资源使用参数中的至少之一。
在本申请实施例中,可以设定压缩条件,当满足压缩条件时,开始进行图像压缩;当不满足压缩条件时,可以不进行图像压缩,例如可以直接对对象图像进行渲染处理,以在人机交互界面中显示对象图像。
压缩条件可以包括以下至少一种,将进行分别说明。
1)虚拟场景当前的子场景属于待压缩的子场景,其中,当前的子场景如当前被选中的子场景或者当前需要显示的子场景。值得说明的是,虚拟场景包括多个子场景,待压缩的子场景包括虚拟场景中的至少部分子场景。以游戏虚拟场景为例,游戏虚拟场景中存在多个副本,则每一个副本可以对应一个子场景;又例如,游戏虚拟场景中存在多个地图区域,则每一个地图区域可以对应一个子场景。
2)在虚拟场景当前待显示的多个虚拟对象中,待压缩的虚拟对象的数量大于数量阈值。其中,待压缩的虚拟对象即表示该虚拟对象对应的对象图像需要进行图像压缩。值得说明的是,在该情况下,后续的图像压缩可以是针对虚拟场景当前待显示的多个虚拟对象进行的,也可以是仅针对虚拟场景当前待压缩的虚拟对象进行的,前者能够进一步减少计算资源的消耗,后者能够提升最终的显示精度和显示效果。
3)虚拟场景当前的场景参数大于场景参数阈值。其中,场景参数包括虚拟对象的交互参数、虚拟对象的数量、以及设备资源使用参数中的至少之一,场景参数越大,表示处理压力越大,场景参数阈值可以根据场景参数的类型进行对应设定。这里的虚拟对象可以泛指所有的虚拟对象,可以是指特定的某种或若干种虚拟对象,如特指虚拟人物;交互参数可以包括交互操作的数量以及执行频率中的至少之一,交互操作可以包括攻击操作以及协同操作中的至少之一;设备资源使用参数可以包括电子设备的内存使用率、中央处理器(Central Processing Unit,CPU)使用率以及图形处理器(Graphics Processing Unit,GPU)使用率中的至少之一。
通过上述方式,在满足压缩条件时,证明处理压力较大,因此开启图像压缩,从而减少计算资源的开销;在不满足压缩条件时,证明处理压力处于可承受范围内,因此可以不进行图像压缩,从而提升最终的显示精度和显示效果。
在一些实施例中,在任意步骤之间,还包括:执行以下至少一种处理:响应于针对虚拟场景中的至少部分虚拟对象的压缩配置操作,将至少部分虚拟对象确定为待压缩的虚拟对象;根据虚拟场景中的多个虚拟对象分别对应的虚拟对象参数,对多个虚拟对象进行筛选处理,得到待压缩的虚拟对象;其中,虚拟对象参数包括体积以及复杂度中的至少之一。
在本申请实施例中,可以通过以下两种方式中的至少之一来确定待压缩的虚拟对象。
1)响应于针对虚拟场景中的至少部分虚拟对象的压缩配置操作,将该至少部分虚拟对象确定为待压缩的虚拟对象。如此,可以支持虚拟场景的相关人员(如开发人员)对待压缩的虚拟对象进行手动配置。例如,对于一些对画面效果影响不大的虚拟对象,可以配置为待压缩的虚拟对象,从而在保证画面效果的同时减少电子设备的计算资源消耗;又例如,对于一些需要耗费较多计算资源进行显示的虚拟对象,可以配置为待压缩的虚拟对象,从而大量减少电子设备的计算资源消耗。
2)获取虚拟场景中的多个虚拟对象(并不限于当前待显示的虚拟对象,例如可以是指所有虚拟对象)分别对应的虚拟对象参数,并根据该虚拟对象参数对多个虚拟对象进行筛选处理,得到待压缩的虚拟对象,其中,虚拟对象参数包括体积以及复杂度中的至少之一。虚拟对象对应的虚拟对象参数越大,表示该虚拟对象在显示时的难度越大,所消耗的计算资源越多,因此,筛选处理的目的可以是筛选出虚拟对象参数最大的一批虚拟对象,以作为待压缩的虚拟对象。例如,在筛选处理的过程中,可以按照虚拟对象参数从大到小的顺序依次选取虚拟对象,并将选取的虚拟对象作为待压缩的虚拟对象,直至选取的虚拟对象的数量达到筛选数量阈值,或者选取的虚拟对象的数量与所有虚拟对象的总数量之间的比例达到设定比例。如此,能够自动地确定待压缩的虚拟对象,减少人力成本。
通过以上两种方式,能够提升确定待压缩的虚拟对象的灵活性,可以根据实际应用场景中的需求选用其中至少一种方式。
在一些实施例中,虚拟场景包括多个子场景,在任意步骤之间,还包括:执行以下至少一种处理:响应于针对虚拟场景中的至少部分子场景的压缩配置操作,将至少部分子场景确定为待压缩的子场景;根据多个子场景分别对应的历史场景参数,对多个子场景进行筛选处理,得到待压缩的子场景。
本申请实施例提供了以下两种方式来确定待压缩的子场景。
1)响应于针对虚拟场景中的至少部分子场景的压缩配置操作,将该至少部分子场景确定为待压缩的子场景。虚拟场景的相关人员可以对虚拟场景中的每个子场景进行单独配置,即配置是否作为待压缩的子场景。例如,某个子场景(如某个大型副本或者大型地图区域)被设计为需要容纳非常多的虚拟对象,显示时的处理压力非常大,则可以将该子场景配置为待压缩的子场景。通过该方式,能够提升确定待压缩的子场景的自由度,支持相关人员根据实际的设计需求进行配置。
2)根据多个子场景分别对应的历史场景参数,对多个子场景进行筛选处理,得到待压缩的子场景。例如,对于虚拟场景中的每个子场景,获取在历史时间段内的场景参数,以作为历史场景参数。然后,可以将大于场景参数阈值的历史场景参数对应的子场景作为待压缩的子场景;或者,可以根据历史场景参数从大到小的顺序对多个子场景进行排序处理,并将排序后位于TOP K的子场景作为待压缩的子场景,或者将排序后位于前L%的子场景作为待压缩的子场景,其中,K为大于0的整数,L为大于0且小于100的数。该方式参考显示虚拟场景的历史经验,能够自动地确定待压缩的子场景,从而减少人力成本。
上述两种方式可以任选其一应用,也可以结合应用,能够提升灵活性。
在一些实施例中,可以通过这样的方式来实现上述的对对象图像进行通道分离处理:将对象图像存储至图像缓冲区;通过虚拟场景引擎的着色组件对图像缓冲区中的对象图像进行通道分离处理。
本申请实施例可以结合虚拟场景引擎实现,首先,将对象图像存储至图像缓冲区,再通过虚拟场景引擎的着色组件对图像缓冲区中的对象图像进行通道分离处理。
值得说明的是,缓冲区(Buffer)是指位于内存或显存中的存储空间,用于存储特定的数据,为了便于区分,将专用于存储对象图像的缓冲区命名为图像缓冲区。着色组件又称着色器(Shader),指用于对图像进行着色处理的可编辑程序,可以实现3D图形学的相关计算,由于着色组件具有可编辑性,因此可以预先在着色组件中添加通道分离处理的相关逻辑(逻辑可以通过代码形式来进行体现),以使着色组件具有通道分离处理的能力。
上述方式将通道分离处理的能力集成在了虚拟场景引擎中,如此,能够提升通道分离处理的简便性和易用性。
在步骤103中,对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据。
在经过通道分离处理得到颜色数据以及透明度数据后,对颜色数据进行压缩处理得到压缩颜色数据,同时对透明度数据进行压缩处理得到压缩透明度数据。其中,对压缩处理所采用的压缩算法不做限定,例如可以是PVRTC算法。
由于压缩处理会约束数据的存储空间(如比特位数),因此相较于相关技术提供的方案中对图像的所有通道进行无差别的压缩处理,本申请实施例通过分别对颜色数据以及透明度数据进行压缩处理,能够扩大压缩颜色数据的存储空间,即减少颜色数据在压缩处理过程中的信息损耗。
在一些实施例中,可以通过这样的方式来实现上述的对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据:通过虚拟场景引擎的着色组件对颜色数据进行压缩处理得到压缩颜色数据,通过着色组件对透明度数据进行压缩处理得到压缩透明度数据。这里,可以预先在着色组件中添加压缩处理的相关逻辑,以使着色组件具有压缩处理的能力。当然,压缩处理并不限于通过着色组件实现。
在步骤104中,将压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。
在分别对颜色数据以及透明度数据进行压缩处理之后,将得到的压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。压缩对象图像即为对对象图像进行图像压缩后得到的结果,相较于对象图像来说,压缩对象图像所占的存储空间更小,在显示时所耗费的计算资源也更少,同时,画面效果不会过度下降,即本申请实施例能够在一定程度上保证压缩后的图像的质量。其中,压缩对象图像与对象图像对应相同的尺寸。
在一些实施例中,可以通过这样的方式来实现上述的确定虚拟场景中的虚拟对象对应的对象图像:通过虚拟场景中的虚拟对象对应的图像路径,获取虚拟对象对应的对象图像;步骤104之后,还包括:根据压缩处理对应的压缩格式信息对图像路径中的格式信息进行更新处理,得到新的图像路径;其中,新的图像路径用于存储压缩对象图像。
这里,虚拟对象对应的图像路径包括有虚拟对象对应的对象图像的格式信息,该格式信息即为对象图像在图像压缩前的格式,例如,格式信息包括但不限于已标记图像(Tagged GrAphics,TGA)格式、联合图像专家组(Joint Photographic Experts Group,JPEG)格式、便携式网络图像(Portable Network Graphics,PNG)格式。
在通过图像压缩得到压缩对象图像的同时,可以根据压缩处理对应的压缩格式信息对图像路径中的格式信息进行更新处理,得到新的图像路径,该新的图像路径用于存储压缩对象图像。其中,压缩格式信息取决于压缩处理所采用的压缩算法,例如,当采用PVRTC算法时,压缩格式信息即为PVR格式。通过上述方式,能够在图像压缩的同时实现图像路径的适应更新,保证能够根据新的图像路径获取压缩对象图像,便于后续显示。
值得说明的是,新的图像路径可以用于替代原始的图像路径,即本申请实施例可以仅存储压缩对象图像,至于原始的对象图像则进行丢弃。在一些情况中,新的图像路径及原始的图像路径也可以同时存在,即本申请实施例可以同时存储压缩对象图像及原始的对象图像。
在一些实施例中,可以通过这样的方式来实现上述的将压缩颜色数据以及压缩透明度数据进行通道合并处理:通过虚拟场景引擎的着色组件将压缩颜色数据以及压缩透明度数据进行通道合并处理。这里,可以预先在着色组件中添加通道合并处理的相关逻辑,以使着色组件具有通道合并处理的能力。当然,通道合并处理并不限于通过着色组件实现。
在一些实施例中,步骤104之后,还包括:通过着色组件对图像缓冲区中的压缩对象图像进行渲染处理,以在人机交互界面中显示压缩对象图像。
例如,可以通过虚拟场景引擎中的着色组件将图像缓冲区中的压缩对象图像渲染至人机交互界面(即屏幕)中,以在人机交互界面中显示。如此,可以便于相关人员查看图像压缩的效果,当然,显示压缩对象图像的用处并不限于此。
在一些实施例中,步骤104之后,还包括:当虚拟场景引擎支持渲染符合压缩格式信息的图像时,通过虚拟场景引擎对压缩对象图像进行渲染处理,以在人机交互界面中显示压缩对象图像;在任意步骤之间,还包括:当虚拟场景引擎不支持渲染符合压缩格式信息的图像时,通过虚拟场景引擎对对象图像进行渲染处理,以在人机交互界面中显示对象图像。
这里,部分虚拟场景引擎能够支持渲染符合压缩格式信息的图像,而另一部分虚拟场景引擎则无法支持渲染符合压缩格式信息的图像,例如仅支持渲染符合TGA格式、JPEG格式或PNG格式的图像。
当虚拟场景引擎支持渲染符合压缩格式信息的图像时,可以通过该虚拟场景引擎(如该虚拟场景引擎中的着色组件)对压缩对象图像进行渲染处理,以在人机交互界面中显示压缩对象图像。如此,可以便于相关人员了解图像压缩的效果,有助于进行相关判断,例如判断是否根据压缩对象图像来替换对象图像,或者是否采用其他的压缩算法。
当虚拟场景引擎不支持渲染符合压缩格式信息的图像时,通过该虚拟场景引擎(如该虚拟场景引擎中的着色组件)对对象图像进行渲染处理,以在人机交互界面中显示对象图像。如此,可以便于相关人员进行相关判断,例如判断是否需要对显示的对象图像进行图像压缩,如当显示的对象图像较为重要、且对用户体验的影响较大时,可以选择不对该对象图像进行图像压缩,从而保证最好的画面效果。
在一些实施例中,步骤104之后,还包括:对虚拟场景中的多个虚拟对象分别对应的压缩对象图像进行打包处理,得到虚拟场景对应的安装包。
这里,在经图像压缩得到压缩对象图像后,可以对虚拟场景中的多个虚拟对象(如所有虚拟对象)分别对应的压缩对象图像进行打包处理,得到虚拟场景对应的安装包(如游戏安装包)。其他的电子设备可以下载并安装该安装包,从而显示该安装包内的压缩对象图像,即输出虚拟场景,如此,能够减少该电子设备的工作量。
值得说明的是,该安装包也可以同时包括虚拟场景中的多个虚拟对象分别对应的对象图像。对于下载并安装该安装包的电子设备来说,可以根据该电子设备自身的设备资源使用参数来选择显示虚拟对象对应的对象图像或压缩对象图像,例如,当设备资源使用参数大于第一参数阈值时,证明该电子设备的处理压力较大,因此为了降低负担,可以显示虚拟对象对应的压缩对象图像;当设备资源使用参数小于或等于第二参数阈值时,证明该电子设备的处理压力较小,因此为了提升画面效果,可以显示虚拟对象对应的对象图像,其中,第一参数阈值大于第二参数阈值。
在一些实施例中,步骤103之后,还包括:对虚拟场景中的多个虚拟对象分别对应的压缩颜色数据以及压缩透明度数据进行打包处理,得到虚拟场景对应的安装包。
这里,提供了安装包的另一种生成方式。例如,可以对虚拟场景中的多个虚拟对象分别对应的压缩颜色数据以及压缩透明度数据进行打包处理,得到虚拟场景对应的安装包,如此,能够提升安装包的生成效率,便于进行安装包的快速部署(安装)。其他的电子设备可以下载并安装该安装包,并在需要输出虚拟场景时,对该安装包内的压缩颜色数据以及压缩透明度数据(指同一虚拟对象对应的压缩颜色数据以及压缩透明度数据)进行通道合并处理,并显示通过通道合并处理得到的压缩对象图像。
值得说明的是,该安装包也可以同时包括虚拟场景中的多个虚拟对象分别对应的颜色数据以及透明度数据。对于下载并安装该安装包的电子设备来说,可以根据该电子设备自身的设备资源使用参数来选择显示对象图像或压缩对象图像,例如,当设备资源使用参数大于第一参数阈值时,证明该电子设备的处理压力较大,因此为了降低负担,可以对该安装包内的压缩颜色数据以及压缩透明度数据进行通道合并处理,并显示通过通道合并处理得到的压缩对象图像;当设备资源使用参数小于或等于第二参数阈值时,证明该电子设备的处理压力较小,因此为了提升画面效果,可以对该安装包内的颜色数据以及透明度数据(指同一虚拟对象对应的颜色数据以及透明度数据)进行通道合并处理,并显示通过通道合并处理得到的对象图像。
如图6A所示,本申请实施例通过对颜色数据以及透明度数据分别进行压缩处理,从而能够有效减少压缩处理过程中的信息损耗,保证得到的压缩对象图像的质量。
在一些实施例中,参见图6B,图6B是本申请实施例提供的虚拟场景的图像处理方法的一个流程示意图,图6A示出的步骤102可以通过步骤201至步骤202实现,将结合各步骤进行说明。
在步骤201中,对对象图像进行针对颜色通道的颜色提取处理,得到颜色图像;其中,颜色图像包括对象图像中的多个像素对应颜色通道的颜色数据。
这里,可以对对象图像进行针对颜色通道的颜色提取处理,即提取对象图像中各个像素对应颜色通道的颜色数据,以构成颜色图像。其中,颜色图像与对象图像对应相同的尺寸。
在步骤202中,对对象图像进行针对透明度通道的透明度提取处理,得到透明度图像;其中,透明度图像包括对象图像中的多个像素对应透明度通道的透明度数据。
同理,可以对对象图像进行针对透明度通道的透明度提取处理,即提取对象图像中各个像素对应透明度通道的透明度数据,以构成透明度图像。其中,透明度图像与对象图像对应相同的尺寸。
在图6B中,图6A示出的步骤103之前,还可以在步骤203中,对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像;其中,扩充颜色图像包括对应颜色图像的第一区域、以及区别于第一区域的第二区域。
这里,压缩处理的处理目标为符合设定尺寸比例的图像,设定尺寸比例取决于压缩处理所采用的压缩算法。例如,对于PVRTC算法来说,设定尺寸比例为1:1,即处理目标为正方形的图像。
通常来说,在对象图像的设计阶段,考虑到开发成本等问题,并不会严格按照设定尺寸比例进行设计,因此,步骤201得到的颜色图像可能不符合设定尺寸比例,针对该情况,可以对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像。其中,尺寸扩充处理的目标可以是对尺寸进行尽量小的改动;扩充颜色图像包括对应颜色图像的第一区域、以及区别于第一区域的第二区域。
以设定尺寸比例为1:1举例,某个颜色图像的尺寸为(height,width),且height=2*width,则尺寸扩充处理可以是指在该颜色图像的width的方向增加一个尺寸为(height,width)的第二区域,得到扩充颜色图像,该颜色图像在该扩充颜色图像中所占的区域即为第一区域。又例如,某个颜色图像的尺寸为(height,width),且width=2*height,则尺寸扩充处理可以是指在该颜色图像的height的方向增加一个尺寸为(height,width)的第二区域,得到扩充颜色图像,该颜色图像在该扩充颜色图像中所占的区域即为第一区域。
在步骤204中,将透明度图像填充至扩充颜色图像的第二区域。
这里,可以将透明度图像填充至扩充颜色图像的第二区域。如此,仅需对扩充颜色图像进行压缩处理即可,能够最大程度地减少电子设备的计算资源消耗。
在图6B中,图6A示出的步骤103可以通过步骤205至步骤206实现,将结合各步骤进行说明。
在步骤205中,对扩充颜色图像的第一区域中的颜色数据进行压缩处理,得到压缩颜色数据。
这里,扩充颜色图像的第一区域对应颜色图像,因此,对该第一区域中的颜色数据进行压缩处理,得到压缩颜色数据。
在步骤206中,对扩充颜色图像的第二区域中的透明度数据进行压缩处理,得到压缩透明度数据。
这里,扩充颜色图像的第二区域对应透明度图像,因此,对该第二区域中的透明度数据进行压缩处理,得到压缩透明度数据。如此,压缩颜色数据以及压缩透明度数据可以存储于同一个图像中,能够减少对电子设备的计算资源(如内存)的占用。
如图6B所示,本申请实施例将颜色图像以及透明度图像汇总在同一个图像中,并进行压缩处理,能够最大程度地减少电子设备的计算资源的消耗。
在一些实施例中,参见图6C,图6C是本申请实施例提供的虚拟场景的图像处理方法的一个流程示意图,图6A示出的步骤102可以通过步骤301至步骤302实现,将结合各步骤进行说明。
在步骤301中,对对象图像进行针对颜色通道的颜色提取处理,得到颜色图像;其中,颜色图像包括对象图像中的多个像素对应颜色通道的颜色数据。
步骤301的实现细节可以参见上述的步骤201,在此不做详述。
在步骤302中,对对象图像进行针对透明度通道的透明度提取处理,得到透明度图像;其中,透明度图像包括对象图像中的多个像素对应透明度通道的透明度数据。
步骤302的实现细节可以参见上述的步骤202,在此不做详述。
在图6C中,图6A示出的步骤103之前,还可以在步骤303中,对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像。
在压缩处理的处理目标为符合设定尺寸比例的图像的情况下,当颜色图像不符合设定尺寸比例时,可以对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像。
在步骤304中,对透明度图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充透明度图像。
同理,可以对透明度图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充透明度图像。
在图6C中,图6A示出的步骤103可以通过步骤305至步骤306实现,将结合各步骤进行说明。
在步骤305中,对扩充颜色图像中的颜色数据进行压缩处理,得到压缩颜色数据。
这里,压缩处理可以是分别针对两个图像进行的,例如,可以对扩充颜色图像中的颜色数据进行压缩处理,得到压缩颜色数据。
在步骤306中,对扩充透明度图像中的透明度数据进行压缩处理,得到压缩透明度数据。
同理,对扩充透明度图像中的透明度数据进行压缩处理,得到压缩透明度数据。如此,压缩颜色数据以及压缩透明度数据是分别存储于不同图像中的。
如图6C所示,本申请实施例通过对不同的图像进行压缩处理,能够在一定程度上减少电子设备的计算资源的消耗。
下面,将说明本申请实施例在实际的应用场景中的示例性应用。为了便于理解,以游戏虚拟场景为例进行说明,对于游戏虚拟场景来说,可以通过PVRTC算法来进行图像(如纹理)压缩,从而减少最终打包出的游戏安装包的大小,同时还能够减少内存的消耗。但是,PVRTC算法存在以下缺点:1)要求图像的宽度与高度必须相等(即为正方形图像),无法适用于如图7所示的非正方形的图像,其中,图7示出的是一整个图像;2)图像的宽度及高度必须满足2的幂;3)对带有Alpha通道的图像进行压缩后,图像的质量会大幅下降,如图2所示。
有鉴于此,本申请实施例在PVRTC算法的基础上,对图像处理的过程进行了优化,从而能够在实现图像压缩的同时,提升压缩后的图像的质量。为了便于理解,将结合图8示出的图像处理的流程示意图,以RGBA Compressed PVRTC 4bits算法为例进行说明,当然,PVRTC算法并不限于RGBA Compressed PVRTC 4bits,还可以如RGB Compressed PVRTC2bits、RGBA Compressed PVRTC 2bits、RGB Compressed PVRTC 4bits等。
1)选择图像(对应上文的对象图像)。例如,可以由游戏的开发人员选择游戏虚拟场景中的任意一个图像。
2)剥离Alpha通道。当选择的图像同时包括RGB通道以及Alpha通道时,可以剥离出Alpha通道。以便对RGB通道以及Alpha通道分别进行压缩处理。这里,可以对虚拟场景引擎(如Unity3D引擎)中的Shader进行相应修改,例如在Shader中设定使用MainTex表示图像中对应RGB通道的颜色数据,使用AlphaTex表示图像中对应Alpha通道的透明度数据,并在frag阶段从MainTex中提取颜色数据以构成颜色图像,同时从AlphaTex中提取透明度数据以构成透明度图像。
3)尺寸扩充处理及压缩处理。在许多游戏项目中都会出现图像的宽度与高度不相等的情况,如果在制作图像时限制宽度与高度相等,那么必然带来开发成本增加、图像制作变得繁琐的问题,并且,可能会导致图像填充不饱和(如图像中包括不必要的、单纯用于扩充尺寸的信息),进一步导致游戏安装包变大、内存占用增加等一系列问题。
因此,在本申请实施例中,可以通过尺寸扩充处理的方式来满足RGBACompressedPVRTC 4bits算法的要求,由于图像的宽度及高度通常都是2的幂,故在尺寸扩充处理时只需考虑是对高度进行扩充还是对宽度进行扩充。以图7示出的尺寸为1024*512(宽度为1024,高度为512)的图像为例,则在尺寸扩充处理时,可以将提取出的颜色图像的高度扩大成1024,得到扩充颜色图像,如图9所示。同理,可以得到扩充透明度图像。
图7示出的图像的内存占用为2兆(MB),在经剥离Alpha通道、尺寸扩充处理以及压缩处理后,得到的压缩后的图像的总内存占用是1MB,其中,压缩后的图像包括对扩充颜色图像进行压缩处理得到的图像(存储有压缩颜色数据)、以及对扩充透明度图像进行压缩处理得到的图像(存储有压缩透明度数据),这两个图像分别占用0.5MB的内存。如此,相较于原始的图像,压缩后的图像的内存占用会减少一半。
在此基础上,本申请实施例还可以进行进一步优化,即可以将透明度图像填充到扩充颜色图像中扩充出的区域(对应上文的第二区域),填充后得到的图像如图10所示。如此,可以对单个图像进行压缩处理,压缩后的图像占用的内存仅为0.5MB,是原始的图像占用的内存的1/4。
值得说明的是,在游戏虚拟场景中,设计的图像的尺寸通常包括width=height、width=2*height以及height=2*width这三种情况,因此能够有效地支持上述的尺寸扩充处理以及针对透明度图像的填充。
值得说明的是,对于没有Alpha通道的图像(或图像中的某个区域),如图11所示,在通过RGBA Compressed PVRTC 4bits算法进行压缩处理时,可以使用5bits的存储空间来存储红色通道的数据,使用5bits的存储空间来存储绿色通道的数据,使用4bits的存储空间来存储蓝色通道的数据,因此,相较于相关技术提供的方案,本申请实施例能够减少压缩处理过程中的信息损耗,提升压缩后的图像的质量。当然,以上的存储方式仅为示例,各个通道在压缩后的存储空间(如比特位数)可以根据实际应用场景进行调整。此外,对于没有RGB通道的图像来说,可以使用3bits或其他大小的存储空间来存储Alpha通道的数据。
完成压缩处理后,即可将得到的压缩颜色数据以及压缩透明度数据进行通道合并处理,得到压缩图像(对应上文的压缩对象图像),该压缩图像可以用于打包至游戏安装包中,能够有效减少游戏安装包的大小。
为了便于理解,本申请实施例还示出了图12,图12的左侧是对扩充颜色图像进行压缩处理得到的图像,图12的右侧是对扩充透明度图像进行压缩处理得到的图像,图12示出的“+”号即表示通道合并处理。
此外,还提供了图13所示的对比示意图,其中,图13示出的图像131为最开始选择的图像,图像132为通过本申请实施例提供的方案对图像131进行图像压缩后得到的压缩图像,由此可见,本申请实施例提供的方案能够在实现图像压缩的同时减少图像质量的损耗,保证良好的画面效果。
下面继续说明本申请实施例提供的虚拟场景的图像处理装置455实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器450的虚拟场景的图像处理装置455中的软件模块可以包括:确定模块4551,用于确定虚拟场景中的虚拟对象对应的对象图像;通道分离模块4552,用于对对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;压缩模块4553,用于对颜色数据进行压缩处理得到压缩颜色数据,对透明度数据进行压缩处理得到压缩透明度数据;通道合并模块4554,用于将压缩颜色数据以及压缩透明度数据进行通道合并处理,得到对象图像的压缩对象图像。
在一些实施例中,通道分离模块4552,还用于:对对象图像进行针对颜色通道的颜色提取处理,得到颜色图像;其中,颜色图像包括对象图像中的多个像素对应颜色通道的颜色数据;对对象图像进行针对透明度通道的透明度提取处理,得到透明度图像;其中,透明度图像包括对象图像中的多个像素对应透明度通道的透明度数据。
在一些实施例中,压缩处理的处理目标为符合设定尺寸比例的图像;虚拟场景的图像处理装置455还包括扩充模块,用于:对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像;其中,扩充颜色图像包括对应颜色图像的第一区域、以及区别于第一区域的第二区域;将透明度图像填充至扩充颜色图像的第二区域;压缩模块4553,还用于:对扩充颜色图像的第一区域中的颜色数据进行压缩处理,得到压缩颜色数据;对扩充颜色图像的第二区域中的透明度数据进行压缩处理,得到压缩透明度数据。
在一些实施例中,压缩处理的处理目标为符合设定尺寸比例的图像;虚拟场景的图像处理装置455还包括扩充模块,用于:对颜色图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充颜色图像;对透明度图像进行尺寸扩充处理,得到尺寸符合设定尺寸比例的扩充透明度图像;压缩模块4553,还用于:对扩充颜色图像中的颜色数据进行压缩处理,得到压缩颜色数据;对扩充透明度图像中的透明度数据进行压缩处理,得到压缩透明度数据。
在一些实施例中,通道分离模块4552,还用于:当虚拟场景满足压缩条件时,对对象图像进行通道分离处理;其中,压缩条件包括以下至少之一:虚拟场景当前的子场景属于待压缩的子场景;其中,待压缩的子场景包括虚拟场景中的至少部分子场景;虚拟场景当前待压缩的虚拟对象的数量大于数量阈值;虚拟场景当前的场景参数大于场景参数阈值;其中,场景参数包括虚拟对象的交互参数、虚拟对象的数量、以及设备资源使用参数中的至少之一。
在一些实施例中,虚拟场景的图像处理装置455还包括条件配置模块,用于执行以下至少一种处理:响应于针对虚拟场景中的至少部分虚拟对象的压缩配置操作,将至少部分虚拟对象确定为待压缩的虚拟对象;根据虚拟场景中的多个虚拟对象分别对应的虚拟对象参数,对多个虚拟对象进行筛选处理,得到待压缩的虚拟对象;其中,虚拟对象参数包括体积以及复杂度中的至少之一。
在一些实施例中,虚拟场景包括多个子场景;条件配置模块,还用于执行以下至少一种处理:响应于针对虚拟场景中的至少部分子场景的压缩配置操作,将至少部分子场景确定为待压缩的子场景;根据多个子场景分别对应的历史场景参数,对多个子场景进行筛选处理,得到待压缩的子场景。
在一些实施例中,确定模块4551,还用于:通过虚拟场景中的虚拟对象对应的图像路径,获取虚拟对象对应的对象图像;虚拟场景的图像处理装置455还包括路径更新模块,用于根据压缩处理对应的压缩格式信息对图像路径中的格式信息进行更新处理,得到新的图像路径;其中,新的图像路径用于存储压缩对象图像。
在一些实施例中,确定模块4551,还用于:响应于针对虚拟场景的观测操作,确定观测操作对应的观测范围;通过虚拟场景引擎的摄像机组件对观测范围内的虚拟对象进行图像采集处理,得到虚拟对象对应的对象图像。
在一些实施例中,通道分离模块4552,还用于:将对象图像存储至图像缓冲区;通过虚拟场景引擎的着色组件对图像缓冲区中的对象图像进行通道分离处理;虚拟场景的图像处理装置455还包括渲染模块,用于通过着色组件对图像缓冲区中的压缩对象图像进行渲染处理,以在人机交互界面中显示压缩对象图像。
在一些实施例中,压缩处理对应压缩格式信息;渲染模块还用于:当虚拟场景引擎支持渲染符合压缩格式信息的图像时,通过虚拟场景引擎对压缩对象图像进行渲染处理,以在人机交互界面中显示压缩对象图像;当虚拟场景引擎不支持渲染符合压缩格式信息的图像时,通过虚拟场景引擎对对象图像进行渲染处理,以在人机交互界面中显示对象图像。
在一些实施例中,虚拟场景的图像处理装置455还包括打包模块,用于执行以下任意一种处理:对虚拟场景中的多个虚拟对象分别对应的压缩对象图像进行打包处理,得到虚拟场景对应的安装包;对虚拟场景中的多个虚拟对象分别对应的压缩颜色数据以及压缩透明度数据进行打包处理,得到虚拟场景对应的安装包。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令(即可执行指令),该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行本申请实施例上述的虚拟场景的图像处理方法。
本申请实施例提供一种计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟场景的图像处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种虚拟场景的图像处理方法,其特征在于,所述方法包括:
确定虚拟场景中的虚拟对象对应的对象图像;
对所述对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;
对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据;
将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像。
2.根据权利要求1所述的方法,其特征在于,所述对所述对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据,包括:
对所述对象图像进行针对所述颜色通道的颜色提取处理,得到颜色图像;其中,所述颜色图像包括所述对象图像中的多个像素对应所述颜色通道的颜色数据;
对所述对象图像进行针对所述透明度通道的透明度提取处理,得到透明度图像;其中,所述透明度图像包括所述对象图像中的多个像素对应所述透明度通道的透明度数据。
3.根据权利要求2所述的方法,其特征在于,所述压缩处理的处理目标为符合设定尺寸比例的图像;所述对所述颜色数据进行压缩处理得到压缩颜色数据之前,所述方法还包括:
对所述颜色图像进行尺寸扩充处理,得到尺寸符合所述设定尺寸比例的扩充颜色图像;其中,所述扩充颜色图像包括对应所述颜色图像的第一区域、以及区别于所述第一区域的第二区域;
将所述透明度图像填充至所述扩充颜色图像的第二区域;
所述对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据,包括:
对所述扩充颜色图像的第一区域中的颜色数据进行压缩处理,得到压缩颜色数据;
对所述扩充颜色图像的第二区域中的透明度数据进行压缩处理,得到压缩透明度数据。
4.根据权利要求2所述的方法,其特征在于,所述压缩处理的处理目标为符合设定尺寸比例的图像;所述对所述颜色数据进行压缩处理得到压缩颜色数据之前,所述方法还包括:
对所述颜色图像进行尺寸扩充处理,得到尺寸符合所述设定尺寸比例的扩充颜色图像;
对所述透明度图像进行尺寸扩充处理,得到尺寸符合所述设定尺寸比例的扩充透明度图像;
所述对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据,包括:
对所述扩充颜色图像中的颜色数据进行压缩处理,得到压缩颜色数据;
对所述扩充透明度图像中的透明度数据进行压缩处理,得到压缩透明度数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述对象图像进行通道分离处理,包括:
当所述虚拟场景满足压缩条件时,对所述对象图像进行通道分离处理;
其中,所述压缩条件包括以下至少之一:
所述虚拟场景当前的子场景属于待压缩的子场景;其中,所述待压缩的子场景包括所述虚拟场景中的至少部分子场景;
所述虚拟场景当前待压缩的虚拟对象的数量大于数量阈值;
所述虚拟场景当前的场景参数大于场景参数阈值;其中,所述场景参数包括虚拟对象的交互参数、虚拟对象的数量、以及设备资源使用参数中的至少之一。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
执行以下至少一种处理:
响应于针对所述虚拟场景中的至少部分虚拟对象的压缩配置操作,将所述至少部分虚拟对象确定为待压缩的虚拟对象;
根据所述虚拟场景中的多个虚拟对象分别对应的虚拟对象参数,对所述多个虚拟对象进行筛选处理,得到待压缩的虚拟对象;其中,所述虚拟对象参数包括体积以及复杂度中的至少之一。
7.根据权利要求5所述的方法,其特征在于,所述虚拟场景包括多个子场景;所述方法还包括:
执行以下至少一种处理:
响应于针对所述虚拟场景中的至少部分子场景的压缩配置操作,将所述至少部分子场景确定为待压缩的子场景;
根据所述多个子场景分别对应的历史场景参数,对所述多个子场景进行筛选处理,得到待压缩的子场景。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述确定虚拟场景中的虚拟对象对应的对象图像,包括:
通过所述虚拟场景中的虚拟对象对应的图像路径,获取所述虚拟对象对应的对象图像;
所述将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像之后,所述方法还包括:
根据所述压缩处理对应的压缩格式信息对所述图像路径中的格式信息进行更新处理,得到新的图像路径;
其中,所述新的图像路径用于存储所述压缩对象图像。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述确定虚拟场景中的虚拟对象对应的对象图像,包括:
响应于针对所述虚拟场景的观测操作,确定所述观测操作对应的观测范围;
通过虚拟场景引擎的摄像机组件对所述观测范围内的虚拟对象进行图像采集处理,得到所述虚拟对象对应的对象图像。
10.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述对象图像进行通道分离处理,包括:
将所述对象图像存储至图像缓冲区;
通过虚拟场景引擎的着色组件对所述图像缓冲区中的所述对象图像进行通道分离处理;
所述将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像之后,所述方法还包括:
通过所述着色组件对所述图像缓冲区中的压缩对象图像进行渲染处理,以在人机交互界面中显示所述压缩对象图像。
11.根据权利要求1至4任一项所述的方法,其特征在于,所述压缩处理对应压缩格式信息;所述方法还包括:
当虚拟场景引擎支持渲染符合所述压缩格式信息的图像时,通过所述虚拟场景引擎对所述压缩对象图像进行渲染处理,以在人机交互界面中显示所述压缩对象图像;
当所述虚拟场景引擎不支持渲染符合所述压缩格式信息的图像时,通过所述虚拟场景引擎对所述对象图像进行渲染处理,以在所述人机交互界面中显示所述对象图像。
12.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
执行以下任意一种处理:
对所述虚拟场景中的多个虚拟对象分别对应的压缩对象图像进行打包处理,得到所述虚拟场景对应的安装包;
对所述虚拟场景中的多个虚拟对象分别对应的压缩颜色数据以及压缩透明度数据进行打包处理,得到所述虚拟场景对应的安装包。
13.一种虚拟场景的图像处理装置,其特征在于,所述装置包括:
确定模块,用于确定虚拟场景中的虚拟对象对应的对象图像;
通道分离模块,用于对所述对象图像进行通道分离处理,得到对应颜色通道的颜色数据以及对应透明度通道的透明度数据;
压缩模块,用于对所述颜色数据进行压缩处理得到压缩颜色数据,对所述透明度数据进行压缩处理得到压缩透明度数据;
通道合并模块,用于将所述压缩颜色数据以及所述压缩透明度数据进行通道合并处理,得到所述对象图像的压缩对象图像。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的虚拟场景的图像处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的虚拟场景的图像处理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021110930825 | 2021-09-17 | ||
CN202111093082 | 2021-09-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115814406A true CN115814406A (zh) | 2023-03-21 |
Family
ID=85515548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616886.9A Pending CN115814406A (zh) | 2021-09-17 | 2021-12-27 | 虚拟场景的图像处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115814406A (zh) |
-
2021
- 2021-12-27 CN CN202111616886.9A patent/CN115814406A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106611435B (zh) | 动画处理方法和装置 | |
US20100060652A1 (en) | Graphics rendering system | |
CN111899322B (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN111193876A (zh) | 视频中添加特效的方法及装置 | |
US10237563B2 (en) | System and method for controlling video encoding using content information | |
CN112307403A (zh) | 页面渲染方法、装置、存储介质以及终端 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN114494024B (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN114570020A (zh) | 数据处理方法以及系统 | |
US11593908B2 (en) | Method for preprocessing image in augmented reality and related electronic device | |
CN113470153A (zh) | 虚拟场景的渲染方法、装置及电子设备 | |
CN106293658B (zh) | 一种界面组件生成方法及其设备 | |
CN116758201B (zh) | 三维场景的渲染处理方法、设备、系统及计算机存储介质 | |
US20230343021A1 (en) | Visible element determination method and apparatus, storage medium, and electronic device | |
CN115439586B (zh) | 数据处理方法、设备、存储介质及计算机程序产品 | |
CN114222185B (zh) | 视频播放方法、终端设备及存储介质 | |
CN115814406A (zh) | 虚拟场景的图像处理方法、装置及电子设备 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
CN115082609A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN114217758A (zh) | 图像显示方法、装置、电子设备及计算机可读存储介质 | |
CN117065357A (zh) | 媒体数据处理方法、装置、计算机设备和存储介质 | |
CN112231029A (zh) | 应用于主题的帧动画处理方法 | |
WO2023202023A1 (zh) | 合批渲染方法、装置、设备及存储介质 | |
US20240005588A1 (en) | Image rendering method and apparatus, electronic device, computer-readable storage medium, and computer program product |
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 |