CN113096233B - 图像处理方法、装置、电子设备及可读存储介质 - Google Patents
图像处理方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113096233B CN113096233B CN202110655426.0A CN202110655426A CN113096233B CN 113096233 B CN113096233 B CN 113096233B CN 202110655426 A CN202110655426 A CN 202110655426A CN 113096233 B CN113096233 B CN 113096233B
- Authority
- CN
- China
- Prior art keywords
- texture
- image data
- image
- target
- coordinate
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/54—Extraction of image or video features relating to texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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 a colour or a chrominance component
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Signal Processing (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种图像处理方法、装置、电子设备及可读存储介质,涉及图像处理、游戏、云技术以及区块链等领域。该方法包括:获取待处理图像的图像尺寸和图像数据,待处理图像的图像数据对应的颜色编码格式为源编码格式;根据图像尺寸创建第一纹理,并将待处理图像的图像数据存储至第一纹理中;根据图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,目标图像数据对应的编码格式为目标编码格式;将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各纹理坐标对应的目标图像数据存储至第二纹理中相应的存储位置。
Description
技术领域
本申请涉及图像处理、游戏、云技术以及区块链等领域,尤其涉及一种图像处理方法、装置、电子设备及可读存储介质。
背景技术
目前,随着图像处理技术的发展,出现了多种颜色空间来表示图像颜色,例如,红绿蓝RGB颜色空间、亮度色度YUV颜色空间等。
在实际的很多应用场景中,经常会存在需要将一种颜色空间下编码的图像转换为另一种颜色空间下编码的图像,现有技术中,在进行不同颜色编码格式的图像数据转换时,通常都是采用对源编码格式的图像中的每个像素点进行逐个遍历的方式,逐个计算得到另一种编码格式的像素值。虽然采用目前的方式能够完成转换,但是存在转换效率低的问题。
发明内容
本申请实施例提供了一种图像处理方法、装置、电子设备及可读存储介质,提高了将源编码格式的图像数据转换为目标编码格式的目标图像数据的效率。
一方面,本申请实施例提供一种图像处理方法,该方法包括:
获取待处理图像的图像尺寸和图像数据,上述待处理图像的图像数据对应的颜色编码格式为源编码格式;
根据上述图像尺寸创建第一纹理,并将上述待处理图像的图像数据存储至上述第一纹理中;
根据上述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,上述目标图像数据对应的编码格式为上述目标编码格式;
将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各上述纹理坐标对应的目标图像数据存储至上述第二纹理中相应的存储位置。
一方面,本申请实施例提供了一种图像处理装置,该装置包括:
源数据获取模块,用于获取待处理图像的图像尺寸和图像数据,上述待处理图像的图像数据对应的颜色编码格式为源编码格式;
第一纹理处理模块,用于根据上述图像尺寸创建第一纹理,并将上述待处理图像的图像数据存储至上述第一纹理中;
第二纹理处理模块,用于根据上述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,上述目标图像数据对应的编码格式为上述目标编码格式;
目标数据获取模块,用于将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各上述纹理坐标对应的目标图像数据存储至上述第二纹理中相应的存储位置。
在一种可选的实施例中,目标数据获取模块,具体用于:
将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过GPU调用着色器执行以下操作,得到各上述纹理坐标所对应的目标图像数据:
对于任一纹理坐标,确定该纹理坐标在上述第二纹理中对应的第一存储位置;
根据上述第一纹理和上述第二纹理的存储位置对应关系,确定该纹理坐标在上述第一纹理中对应的第二存储位置;
根据上述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至上述第一存储位置。
在一种可选的实施例中,上述源编码格式为红绿蓝RGB编码格式,上述目标编码格式为亮度色度YUV编码格式,上述第二纹理包括YUV编码格式中亮度分量对应的第一存储区域和色度分量所对应的第二存储区域,其中,上述第一存储区域和上述第二存储区域连续,上述第一存储区域中每一行所存储的亮度分量与上述第二存储区域中所存储的第一色度分量和第二色度分量相对应,上述第一色度分量的目标图像数据和上述第二色度分量的目标图像数据在上述第二存储区域中连续存储。
在一种可选的实施例中,上述第一存储区域的尺寸与上述图像尺寸相同,上述第二存储区域包括对应于第一色度分量的第一子区域和对应于第二色度分量的第二子区域,上述第一子区域和上述第二子区域尺寸相同,上述第一存储区域、上述第一子区域和上述第二子区域的宽高比相同,且上述第一子区域和上述第二子区域的宽度是由上述目标编码格式确定的。
在一种可选的实施例中,目标数据获取模块,具体用于:
确定该纹理坐标在上述第二纹理中对应的第一存储位置;
确定上述第一存储位置所属的目标存储区域;
根据上述第一纹理和上述第二纹理的存储位置对应关系、以及上述目标存储区域,将该纹理坐标转换为对应于上述第一纹理的纹理坐标,得到转换后的纹理坐标;
确定上述转换后的纹理坐标在上述第一纹理中第二存储位置。
在一可选的实施例中,目标数据获取模块,具体用于:
根据上述第二存储位置对应的待处理图像的图像数据,采用上述目标存储区域所对应的图像数据转换公式,计算得到该纹理坐标对应的目标图像数据。
在一种可选的实施例中,目标数据获取模块,具体用于:
通过图形处理器GPU调用着色器并行计算得到各纹理坐标所对应的目标图像数据。
在一种可选的实施例中,上述待处理图像为游戏场景中的虚拟场景图像,该装置还包括图像展示模块,该模块用于:
从上述第二纹理中读取目标图像数据;
将所读取的上述目标图像数据转换为对应于上述源编码格式的待展示图像数据;
基于上述待展示图像数据展示上述虚拟场景图像。
在一种可选的实施例中,上述待处理图像为云游戏中至少一张虚拟场景图像中的每一图像,上述装置还包括视频流生成模块,该模块用于:
从上述至少一张虚拟场景图像中各图像对应的第二纹理中读取目标图像数据;
对所读取的目标图像数据进行图像编码处理,得到视频流;
将上述视频流发送至用户终端,以使该用户终端播放上述视频流。
一方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,该处理器和存储器相互连接;该存储器用于存储计算机程序;该处理器被配置用于在调用上述计算机程序时,执行上述图像处理方法的任一种可能的实现方式提供的方法。
一方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上图像处理方法的任一种可能的实现方式提供的方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图像处理方法的任一种可能的实现方式提供的方法。
本申请提供的技术方案带来的有益效果是:本申请实施例所提供的图像处理方法、装置、电子设备及存储介质,对于需要转换编码格式的待处理图像,会根据待处理图像的图像尺寸创建用于存储待处理图像的图像数据的第一纹理,并根据该图像尺寸和目标编码格式创建用于存储目标图像数据的第二纹理,在进行编码格式转换时,将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理,通过图形处理器(Graphics Processing Unit,简称GPU)调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各纹理坐标对应的目标图像数据存储至第二纹理中相应的存储位置。采用上述技术方案,在将源编码格式的图像数据转换为目标编码格式的目标图像数据时,通过创建纹理来存储图像数据的方式,使得可以通过GPU调用着色器的方式对待转换的图像数据进行处理,避免了采用逐像素计算的方式,可以快速完成图像转换,大大提高了将源编码格式的图像数据转换为目标编码格式的目标图像数据的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种图像处理系统在一种应用场景下的结构示意图;
图2是本申请实施例提供的一种图像处理方法的流程示意图;
图3是本申请实施例提供的一种第二纹理的布局示意图;
图4是本申请实施例提供的一种存储目标图像数据的示意图;
图5是本申请实施例提供的一种第一纹理和第二纹理的空间坐标的示意图;
图6是本申请实施例提供的另一种图像处理方法的流程示意图;
图7是本申请实施例提供的一种图像编码格式转换的原理示意图;
图8是本申请实施例提供的一种图像编码格式转换的流程的示意图;
图9是本申请实施例提供的一种图像处理装置的结构示意图;
图10是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的图像处理方法涉及云技术的多种领域,如云技术(Cloudtechnology)中的云计算、云服务、云游戏等。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。本申请实施例所提供的图像处理方法可基于云技术中的云计算(cloud computing)实现。
云计算是指通过网络以按需、易扩展的方式获得所需资源,是网格计算(GridComputing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏逻辑并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
其中,如本申请所公开的图像处理方法或装置,其中涉及到的用户终端、服务器(如云游戏服务器)可组成为一区块链,而用户终端、服务器(如云游戏服务器)为区块链上的节点,本申请实施例中图像处理方法或装置中涉及到的数据,如待处理图像的图像数据、目标图像数据可保存于区块链上。
本申请实施例中的图像处理方式的适用场景不作限定,实际应用中,本申请实施例可以适用于需要将一种颜色空间下编码的图像转换为另一种颜色空间下编码的图像的各种场景,包括但不限于游戏类应用场景,例如,在游戏场景中,将RGB颜色空间下编码的图像转换为YUV颜色空间下编码的图像的场景,等等。
对于本申请实施例中的待处理图像具体是什么应用场景下的图像,本申请实施例不作任何限定,例如,可以是游戏类应用场景下的待处理图像。本申请实施例对于游戏类应用具体是什么应用不作限定,该游戏类应用可以是云游戏,也可以是需要安装客户端的游戏,用户可以通过该用户终端体验网络游戏。该客户端可以为该游戏类应用的web客户端、小程序客户端或者游戏客户端,本申请实施例在此不作限定。
作为一个示例,图1中示出了本申请实施例所适用的一种应用于图像处理系统在一种应用场景下的结构示意图,可以理解的是,本申请实施例所提供的图像处理方法可以适用于但不限于应用于如图1所示的应用场景中。在该示例中,以待处理图像为云游戏场景中至少一张虚拟场景图像中的每一图像为例进行说明。
本申请实施例中的图像处理系统可以包括用户终端和服务器,如图1中所示,该示例中的图像处理系统可以包括但不限于用户终端101、网络102、服务器103。用户终端101(如用户的智能手机)可以通过网络102与服务器103通信,服务器103用于将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据。
以下结合上述应用场景对本申请一可选实施例中的图像处理方法进行说明,该方法的实施过程可以包括以下步骤:
步骤S11,获取待处理图像的图像尺寸和图像数据,待处理图像的图像数据对应的颜色编码格式为源编码格式。
步骤S12,根据图像尺寸创建第一纹理,并将待处理图像的图像数据存储至第一纹理中。
步骤S13,根据图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,目标图像数据对应的编码格式为目标编码格式。
步骤S14,将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器并行计算得到各纹理坐标所对应的目标图像数据,并将各纹理坐标对应的目标图像数据存储至第二纹理中相应的存储位置。
步骤S15,从至少一张虚拟场景图像中各图像对应的第二纹理中读取目标图像数据;对所读取的目标图像数据进行图像编码处理,得到视频流;通过网络102向用户终端101发送该视频流。
步骤S16,用户终端101接收服务器103发送的视频流,在该用户终端101中播放该视频流。
其中,上述步骤S11至步骤S14的执行主体为服务器103。
可理解,上述仅为一种示例,本申请实施例在此不作任何限定。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、Wi-Fi及其他实现无线通信的网络。用户终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile InternetDevices,移动互联网设备)、PDA(个人数字助理)、台式计算机、车载终端(例如车载导航终端)、智能音箱、智能手表等,用户终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。具体也可基于实际应用场景需求确定,在此不作限定。
参见图2,图2是本申请实施例提供的一种图像处理方法的流程示意图,该方法可以由用户终端完成,可以由服务器完成,也可以由用户终端和服务器交互完成,可选的,该方法可以由服务器完成,如图2所示,本申请实施例提供的图像处理方法包括如下步骤:
步骤S201,获取待处理图像的图像尺寸和图像数据,上述待处理图像的图像数据对应的颜色编码格式为源编码格式。
步骤S202,根据上述图像尺寸创建第一纹理,并将上述待处理图像的图像数据存储至上述第一纹理中。
步骤S203,根据上述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,上述目标图像数据对应的编码格式为上述目标编码格式。
步骤S204,将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各上述纹理坐标对应的目标图像数据存储至上述第二纹理中相应的存储位置。
可选的,待处理图像可以是各种场景下获取的图像,本申请实施例在此不作任何限定,例如,待处理图像可以是游戏场景下,通过游戏引擎调用虚拟相机所获取到的图像。对于该待处理图像的图像尺寸,可以根据需要设定,本申请实施例在此不作任何限定,例如,该待处理图像的图像尺寸可以为Width*Height,其中,Width表示宽度,Height表示高度。待处理图像的图像数据对应的颜色编码格式为源编码格式,本申请实施例对于该源编码格式具体是什么格式不作限定,可以为各种形式的颜色空间对应的编码格式,例如,该源编码格式可以为RGB编码格式。
其中,纹理(即第一纹理和第二纹理)实际上是一个二维数组,它的元素是一些颜色值,以第一纹理为例,该第一纹理的元素即为待处理图像的各像素点的颜色值。单个的颜色值被称为纹理元素(texture elements)或纹理像素(texel)。每一个纹理像素在纹理中都有一个唯一的地址。这个地址可以被认为是一个列(column)和行(row)的值,它们分别由U和V来表示。
其中,纹理坐标也就是通常所说的UV坐标(贴图坐标),可以理解为图像的百分比坐标,水平方向叫做U,垂直方向叫做V,UV坐标的水平方向和垂直方向的坐标取值范围均是[0,1],与纹理尺寸无关,与纹理宽高比也无关,是一个相对坐标。当把纹理图像应用于图元时,需要为图元的每个顶点指定一组纹理坐标,标明该顶点在纹理图像中的位置,从而建立起图元和纹理图像之间的映射关系。本申请实施例中,纹理图像即待处理图像,纹理坐标与待处理图像中的图像坐标相对应,比如,待处理图像的宽和高分别为W和H,以图像的左下角为图像的原点,则纹理坐标(0,0)对应该图像的原点,纹理坐标(0.5,0.5)则对应待处理图像的像素点坐标(0.5W,0.5H),相应的。也就是说,本申请实施例中的各纹理坐标指的是在将待处理图像作为纹理图像时,该图像中所要作用于任意图元的像素值的像素点的坐标所对应的纹理坐标,比如需要将上述像素点坐标(0.5W,0.5H)的像素值作用于一个图元上,该像素点坐标(0.5W,0.5H)对应的纹理坐标就是(0.5,0.5)。
在获取到该待处理图像后,根据该待处理图像的图像尺寸,创建一个和该图像尺寸相同尺寸的第一纹理(还可以称为RGB纹理),即该第一纹理的尺寸为Width*Height,该第一纹理用于存储待处理图像的图像数据,可以将待处理图像的图像数据写入该第一纹理中,即将待处理图像的图像数据存储至该第一纹理中。
然后,根据待处理图像的图像尺寸和目标编码格式,创建第二纹理,在目标编码格式为YUV编码格式的情况下,该第二纹理的尺寸的宽度可以与该图像尺寸的宽度相同,该第二纹理的尺寸的高度可以为该图像尺寸的高度的1.5倍。例如,该第二纹理的尺寸为Width*1.5Height。其中,该第二纹理用于存储目标图像数据,该目标图像数据的编码格式为目标编码格式,本申请实施例对于目标编码格式具体是什么格式不作限定,例如,该目标编码格式可以为YUV编码格式。
在一可选的实施例中,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,包括:
通过图形处理器GPU调用着色器并行计算得到各纹理坐标所对应的目标图像数据。
在创建好第一纹理和第二纹理之后,将第一纹理中存储的待处理图像的图像数据作为采样源,采样源的意思也就是将待处理图像的图像数据作为待转换图像格式的图像数据,并将第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器,以并行计算的方式,得到各纹理坐标对应于目标编码格式的目标图像数据,并将该目标图像数据存储至第二纹理中相应的存储位置。
其中,着色器:是指游戏引擎中,使用计算机动画(Computer Graphics,简称CG)、高阶着色器语言(High Level Shader Language,简称HLSL)等着色器(Shader)语言编写、用于描述物体渲染方式的代码,大多数主流游戏引擎都支持着色器功能。其中,计算机动画CG是通过计算机软件所绘制的一切图形的总称,随着以计算机为主要工具进行视觉设计和生产的一系列相关产业的形成。高阶着色器语言HLSL的主要作用为将一些复杂的图像处理,快速而又有效率地在显示卡上完成。着色器Shader应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务时使用的指令,用于计算图像的颜色或明暗。
通过本申请实施例,对于需要转换编码格式的待处理图像,会根据待处理图像的图像尺寸创建用于存储待处理图像的图像数据的第一纹理,并根据该图像尺寸和目标编码格式创建用于存储目标图像数据的第二纹理,在进行编码格式转换时,将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理,通过图形处理器(Graphics Processing Unit,简称GPU)调用着色器并行计算得到各纹理坐标所对应的目标图像数据,并将各纹理坐标对应的目标图像数据存储至第二纹理中相应的存储位置。采用上述技术方案,在将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据时,通过创建纹理来存储图像数据的方式,使得可以通过GPU调用着色器的方式对待转换的图像数据进行并行处理,避免了采用逐像素计算的方式,可以快速完成图像转换,大大提高了将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据的处理效率。
为了便于更加直观的理解第二纹理,以下结合一示例进行详细说明。
在一种可选的实施例中,上述源编码格式为红绿蓝RGB编码格式,上述目标编码格式为亮度色度YUV编码格式,上述第二纹理包括YUV编码格式中亮度分量对应的第一存储区域和色度分量所对应的第二存储区域,其中,上述第一存储区域和上述第二存储区域连续,上述第一存储区域中每一行所存储的亮度分量与上述第二存储区域中所存储的第一色度分量和第二色度分量相对应,上述第一色度分量的目标图像数据和上述第二色度分量的目标图像数据在上述第二存储区域中连续存储。
可选的,源编码格式可以为红绿蓝RGB编码格式,在RGB编码格式下,图像的每个像素由红绿蓝三个通道组成。目标编码格式可以为亮度色度YUV编码格式,可以对RGB编码格式的图像进行有损压缩,减小占用空间,通常用于视频编码过程。第二纹理包括第一存储区域和第二存储区域。如图3所示,第一存储区域是YUV编码格式中亮度分量(即Y分量)对应的存储区域,也就是图中所示的Y区域,第二存储区域是YUV编码格式中色度分量(即U分量和V分量)对应的存储区域,也就是图中所示的U区域和V区域。
其中,在使用着色器进行编码格式的转换时,需要保证第一存储区域和第二存储区域连续,其中,第一存储区域中每一行所存储的亮度分量的目标图像数据所对应的第一色度分量(即U分量)的目标图像数据和第二色度分量(即V分量)的目标图像数据,在第二存储区域中连续存储。换言之,Y区域、U区域和V区域在存储数据时是连续的。
如图4所示,假设第二纹理中存储的目标图像数据按照图4所示的方式进行存储,可以看出,Y区域用于存储颜色分量Y的颜色值,即Y1至Y24,U区域用于存储颜色分量U的颜色值,即U1至U6,V区域用于存储颜色分量V的颜色值,即V1至V6。其中,每4个Y分量共用一组UV分量,其中,Y1、Y2、Y7和Y8共用U1和V1,Y3、Y4、Y9和Y10共用U2和V2,Y5、Y6、Y11和Y12共用U3和V3,Y13、Y14、Y19和Y20共用U4和V4,Y15、Y16、Y21和Y22共用U5和V5,Y17、Y18、Y23和Y24共用U6和V6。
通过本申请实施例,这种采用第一色度分量的目标图像数据和第二色度分量的目标图像数据在第二存储区域中连续存储的存储方式,能够极大程度与着色器的工作方式相适配,提高了适配性。
在一种可选的实施例中,上述第一存储区域的尺寸与上述图像尺寸相同,上述第二存储区域包括对应于第一色度分量的第一子区域和对应于第二色度分量的第二子区域,上述第一子区域和上述第二子区域尺寸相同,上述第一存储区域、上述第一子区域和上述第二子区域的宽高比相同,且上述第一子区域和上述第二子区域的宽度是由目标编码格式确定的。
可选的,本申请实施例对于第二纹理的第一存储区域的尺寸和第二存储区域的尺寸不作限定。在一可选的示例中,第二纹理的布局如图3所示,可以看出,第一存储区域即为图中所示的Y区域,该Y区域用于存储亮度分量Y分量对应的颜色值,该第一存储区域的尺寸可以与待处理图像的图像尺寸相同。第二存储区域包括第一子区域和第二子区域,其中,第一子区域即为图中所示的U区域,第二子区域即为图中所示的V区域,U区域用于存储第一色度分量(即U分量)对应的颜色值,V区域用于存储第二色度分量(即V分量)对应的颜色值。U区域和V区域的尺寸相同。在实际应用中,需要保证第一存储区域、第一子区域和第二子区域的高宽比相同,也就是说,需要保证Y区域、U区域和V区域的高宽比相同。可选的,第一子区域的宽度和第二子区域的宽度均为第一存储区域的宽度的1/2。也就是说,U区域的宽度和V区域的宽度均为Y区域的宽度的1/2。
通过本申请实施例,按照上述方式布局第一存储区域和第二存储区域,能够极大程度与着色器的工作方式相适配,提高了适配性。
在一种可选的实施例中,上述将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各上述纹理坐标对应的目标图像数据存储至上述第二纹理中相应的存储位置,包括:
将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过GPU调用着色器执行以下操作,得到各上述纹理坐标所对应的目标图像数据:
对于任一纹理坐标,确定该纹理坐标在上述第二纹理中对应的第一存储位置;
根据上述第一纹理和上述第二纹理的存储位置对应关系,确定该纹理坐标在上述第一纹理中对应的第二存储位置;
根据上述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至上述第一存储位置。
可选的,可以将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理,可以通过GPU调用着色器,通过并行计算的方式一次性的确定出每个纹理坐标所对应的目标图像数据,为便于描述,以下以其中任意一个纹理坐标为例进行说明。
对于任一纹理坐标,确定该纹理坐标在第二纹理中对应的第一存储位置,然后,根据第一纹理和第二纹理的存储位置对应关系,确定出该纹理坐标在第一纹理中对应的第二存储位置。换言之,确定当前纹理坐标在第二纹理中所在的第一存储位置,然后在第一纹理中,确定与该第一存储位置对应的第二存储位置。最后,根据该第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至第一存储位置。
其中,关于第一存储位置和第二存储位置,以下结合一示例进行说明:
举例来说,假设第一纹理的尺寸为Width*Height,第二纹理的尺寸为Width*1.5Height,其中,Width表示图像宽度,Height表示图像高度,图5左边所示的部分为第一纹理的存储位置的空间坐标,本例中的坐标均使用纹理坐标来表述(即坐标取值范围在[0,1]中的UV坐标),其中,对于第一纹理,纹理坐标(0,0)表示其实际宽度为0、实际高度为0所在的位置;纹理坐标(1,0)表示其实际宽度为Width、实际高度为0所在的位置;纹理坐标(0,1)表示实际宽度为0、实际高度为Height所在的位置;纹理坐标(1,1)表示实际宽度为Width、实际高度为Height所在的位置。图5右边所示的部分为第二纹理的存储位置的空间坐标,其中,对于第二纹理,纹理坐标(0,0)表示实际宽度为0、实际高度为0所在的位置;纹理坐标(1,0)表示实际宽度为Width、实际高度为0所在的位置;纹理坐标(0,1)表示实际宽度为0、实际高度为1.5Height所在的位置;纹理坐标(1,1)表示实际宽度为Width、实际高度为1.5Height所在的位置。
以纹理坐标(0,1/3)为例,该纹理坐标(0,1/3)中的0表示当前要渲染的位置的宽度占第二纹理的宽度的比值为0,该纹理坐标(0,1/3)中的1/3表示当前要渲染的位置的高度占第二纹理的高度的比值为1/3,也就是说,纹理坐标(0,1/3)表示的是第二纹理的Y区域的左下角(即图中所示的点1)所在的位置,该位置即为第一存储位置,根据第一纹理和第二纹理的存储位置的对应关系,在第一纹理中,与该第一存储位置对应的第二存储位置即为第一纹理的(0,0)所在的位置(即图中所示的点2)。
需要说明的是,上述示例中,在将第一纹理中存储的待处理图像的图像数据作为采样源、将第二纹理作为待渲染的目标纹理进行处理时,第一纹理的尺寸与第二纹理中的第一存储区域的尺寸是相同的。实际应用中,第一纹理的尺寸与第二纹理中的第一存储区域的尺寸也可以不相同,此时在处理过程中,需要保证第一纹理的尺寸和第二纹理中的第一存储区域的尺寸在同一尺寸比例下进行处理,以保证存储位置的相互对应。
通过本申请实施例,通过GPU调用着色器的方式对待转换的图像数据进行处理,避免了采用逐像素计算的方式,可以快速完成图像转换,大大提高了将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据的处理效率。
为了更加清楚的解释如何确定第一存储位置以及第二存储位置,以下结合一示例进行详细说明。
在一种可选的实施例中,对于任一纹理坐标,上述确定该纹理坐标在上述第二纹理中对应的第一存储位置,以及根据上述第一纹理和上述第二纹理的存储位置对应关系,确定该纹理坐标在上述第一纹理中对应的第二存储位置,包括:
确定该纹理坐标在上述第二纹理中对应的第一存储位置;
确定上述第一存储位置所属的目标存储区域;
根据上述第一纹理和上述第二纹理的存储位置对应关系、以及上述目标存储区域,将该纹理坐标转换为对应于上述第一纹理的纹理坐标,得到转换后的纹理坐标;
确定上述转换后的纹理坐标在上述第一纹理中第二存储位置。
在一可选的实施例中,上述根据上述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,包括:
根据上述第二存储位置对应的待处理图像的图像数据,采用上述目标存储区域所对应的图像数据转换公式,计算得到该纹理坐标对应的目标图像数据。
可选的,对于任一纹理坐标,确定该纹理坐标在第二纹理中对应的第一存储位置,以及根据第一纹理和上述第二纹理的存储位置对应关系,确定该纹理坐标在第一纹理中对应的第二存储位置,可以按照以下方式实现:
确定该纹理坐标在第二纹理中对应的第一存储位置,然后确定该第一存储位置应该属于第二纹理的哪个存储区域,即确定第一存储位置应该属于第一存储区域(即Y区域)、第一子区域(即U区域)或者第二子区域(即V区域)中的哪个区域。将该纹理坐标所对应的第一存储位置所属的存储区域记为目标存储区域。然后根据该目标存储区域所对应的转换方式,以及第一纹理和上述第二纹理的存储位置对应关系,将该纹理坐标转换为对应于第一纹理的纹理坐标,得到转换后的纹理坐标,确定该转换后的纹理坐标在第一纹理中的第二存储位置。该转换后的纹理坐标在第一纹理所对应的第二存储位置、与转换前的纹理坐标在第二纹理对应的第一存储位置相对应。
也就是说,当前纹理坐标对应于第二纹理上的第一存储位置,根据第一纹理和第二纹理的映射关系(即存储位置对应关系)对当前纹理坐标进行转换,得到转换后的纹理坐标,转换后的纹理坐标对应于第一纹理上的第二存储位置,那么,第一纹理的第二存储位置与第二纹理的第一存储位置是相对应的。
可选的,各个纹理坐标用于表示当前要渲染的目标纹理(即第二纹理)的各个位置。在确定第二存储存储位置时,以下是几种可能出现的情形:
将任一纹理坐标视为当前纹理坐标,其中,将纹理坐标的中用于表示水平方向的轴作为X轴,X轴方向的坐标记为横坐标X,将纹理坐标中用于表示垂直方向轴作为Y轴,Y轴方向的坐标记为纵坐标Y。其中,以下示例中,第一纹理的实际尺寸(即图像尺寸)为Width*Height,第二纹理的实际尺寸为Width*1.5Height。
情形1:本情形中纹理坐标均使用UV坐标表示,UV坐标的范围是[0,1],纹理坐标按照左下角为(0,0)、右上角为(1,1)的标准,根据当前纹理坐标UV1的纵坐标Y与第一阈值(如1/3)判断当前纹理坐标是属于第二纹理的哪个区域,若纵坐标Y大于或等于第一阈值,则表明该纹理坐标属于Y区域。根据第一纹理和第二纹理的存储位置对应关系、以及该Y区域对应的转换方式,将纵坐标Y减去1/3,再乘以3/2,并保持UV1的横坐标X不变,可以得到转换后的纹理坐标UV2,该转换后的纹理坐标UV2在第一纹理(RGB纹理)所对应的第二存储位置、与转换前的纹理坐标UV1在第二纹理(YUV纹理)对应的第一存储位置是相对应的。
例如,假设当前纹理坐标为(0.2,0.5),由于当前纹理坐标的纵坐标Y(即0.5)大于第一阈值1/3,表明当前纹理坐标属于YUV纹理中的Y区域,根据第一纹理和第二纹理的存储位置的对应关系、以及该Y区域对应的转换方式,将当前纹理坐标的纵坐标0.5减去1/3,再乘以3/2,并保持横坐标0.2不变,可以得到转换后的纹理坐标为(0.2,1/4),纹理坐标(0.2,1/4)在RGB纹理所对应的存储位置、与纹理坐标(0.2,0.5)在YUV纹理对应的存储位置是相对应的。
情形2:同样的,本情形中纹理坐标均使用UV坐标表示,UV坐标的范围是[0,1],纹理坐标按照左下角为(0,0)、右上角为(1,1)的标准,根据当前纹理坐标UV1的纵坐标Y与第一阈值(如1/3)判断当前纹理坐标UV1是属于第二纹理的哪个区域,若纵坐标Y小于第一阈值则该纹理坐标UV1属于第二纹理的第二存储区域,进一步根据当前纹理坐标UV1的横坐标X与第二阈值(如1/2)进行判断,若横坐标X小于第二阈值则该纹理坐标属于U区域。根据第一纹理和第二纹理的存储位置对应关系、以及该U区域对应的转换方式,将当前纹理坐标的横坐标X乘以2、纵坐标Y乘以3,可以得到转换后的纹理坐标UV2,UV2在第一纹理所对应的第二存储位置、与UV1在第二纹理对应的第一存储位置是相对应的。
例如,假设当前纹理坐标为(0.1,0.2),由于其纵坐标Y(即0.2)小于第一阈值1/3,表明当前纹理坐标属于第二纹理中的第二存储区域,由于横坐标X(即0.1)小于第二阈值1/2,则该纹理坐标属于U区域。根据第一纹理和第二纹理的存储位置的对应关系、以及该U区域对应的转换方式,将横坐标0.1乘以2,将纵坐标0.2乘以3,可以得到转换后的纹理坐标为(0.2,0.6),纹理坐标(0.2,0.6)在第一纹理所对应的存储位置、与纹理坐标(0.1,0.2)在第二纹理中对应的第一存储位置是相对应的。
情形3:同样的,本情形中纹理坐标均使用UV坐标表示,UV坐标的范围是[0,1],纹理坐标按照左下角(0,0)右上角为(1,1)的标准,根据当前纹理坐标UV1的纵坐标Y与第一阈值(如1/3)判断当前纹理坐标UV1是属于第二纹理的哪个区域,若纵坐标Y小于第一阈值则该纹理坐标属于第二纹理的第二存储区域,进一步根据UV1的横坐标X与第二阈值(如1/2)进行判断,若横坐标X大于或等于第二阈值则该纹理坐标属于V区域。根据第一纹理和第二纹理的存储位置对应关系、以及该V区域对应的转换方式,将横坐标X乘以减去1/2再乘以2,并将纵坐标Y乘以3,可以得到转换后的纹理坐标UV2,UV2在第一纹理所对应的第二存储位置、与UV1在第二纹理对应的第一存储位置是相对应的。
例如,假设当前纹理坐标为(0.8,0.2),由于当前纹理坐标的纵坐标Y(即0.2)小于第一阈值1/3,表明当前纹理坐标属于第二纹理中的第二存储区域,由于横坐标X(即0.1)大于第二阈值1/2,则该纹理坐标属于V区域。根据第一纹理和第二纹理的存储位置的对应关系、以及该V区域对应的转换方式,将横坐标0.8减去1/2再乘以2,将纵坐标0.2乘以3,可以得到转换后的纹理坐标为(0.6,0.6),纹理坐标(0.6,0.6)在第一纹理所对应的存储位置与纹理坐标(0.8,0.2)在第二纹理对应的第二存储位置是相对应的。
其中,上述三种情形对应的部分代码如下:
//定义三个颜色分量的Flag,标记当前处理的纹理坐标在YUV纹理(即第二纹理)中对应的存储区域
inty=0;//Y分量对应的Flag
intu=0;//U分量对应的Flag
intv=0;//V分量对应的Flag
//对纹理坐标进行缩放,采样结果映射到YUV纹理的指定区域
if(i.uv.y>=1.0/3.0)//如果纹理坐标中的纵坐标Y大于或等于1/3,则将纹理上面的2/3作为Y分量的存储区域
{
i.uv.y=(i.uv.y-1.0/3.0)*3.0/2.0;//将纹理坐标中的纵坐标Y减去1/3再乘以3/2
y=1;//当前要处理的纹理坐标对应于Y区域
}
else
{
i.uv.y=i.uv.y *3.0;//将纹理坐标中的纵坐标Y缩放到[0,1]范围
//纹理下面的1/3作为U分量和V分量的存储区域
if(i.uv.x<0.5)//如果纹理坐标中的横坐标X小于1/2,在YUV纹理的下面1/3部分的左半部分存储,即在U区域存储U分量
{
i.uv.x=i.uv.x*2.0;//将纹理坐标中的横坐标乘以2
u=1;//当前要处理的纹理坐标对应于U区域
}
else//在YUV纹理的下面1/3部分的右半部分存储,即在V区域存储V分量
{
i.uv.x =(i.uv.x-0.5)*2.0;//将纹理坐标中的横坐标减去1/2再乘以2
v=1;//当前要处理的纹理坐标对应于V区域
}
}
其中,上述i.uv.y表示纹理坐标中的纵坐标Y,上述i.uv.x表示纹理坐标中的横坐标X。
可理解,以上仅为一种示例,本申请实施例在此不作限定。
在根据上述方式确定各纹理坐标在第一纹理中所对应的第二存储位置后,可以获取该第二存储位置所对应的待处理图像的图像数据,即获取该第二存储位置所对应的颜色值,采用该纹理坐标所属的目标存储区域对应的图像数据转换公式,计算得到该纹理坐标对应的目标图像数据。
在一可选的示例中,当将待处理图像的图像数据应用于视频编码领域时,需要先将源编码格式(即RGB编码格式)的待处理图像的图像数据转换目标编码格式(即YUV编码格式)的目标图像数据,由于视频编码器要求YUV4:2:0格式的视频输入,在对将待处理图像的图像数据作为采样源进行采样时,可以采用YCbCr 4:2:0的采样格式。其中,YCbCr是在世界数字组织视频标准研制过程中作为数字电视标准(ITU - R BT.601)建议的一部分,其中的ITU=International Telecommunication Union(联合国)国际电信联盟,R=Radiocommunication Sector无线电部,BT=Broadcasting service (television)广播服务(电视),是YUV经过缩放和偏移的翻版。其中Y与YUV中的Y含义一致,Cb,Cr都指色彩。YCbCr中的Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。
其中,图像数据转换公式即为RGB编码格式转换为YUV编码格式的公式,也就是YCbCr与RGB的相互转换的公式,主要包括三个公式,分别为Y公式、U公式和V公式,具体如下:
Y公式为:Y=0.257*R+0.504*G+0.098*B+16。
U公式为:U=-0.148*R-0.291*G+0.439*B+128。
V公式为:V=0.439*R-0.368*G-0.071*B+128。
通过本申请实施例,可以通过坐标转换的方式,确定待渲染的目标纹理在第一纹理中的各颜色值,并根据相应的图像数据转换公式进行相应的转换,在这个过程中,由于对各个纹理坐标的处理是GPU通过调用着色器以并行处理的方式进行的,处理速度很快,极大地提高了转换效率。
在一种可选的实施例中,上述待处理图像为游戏场景中的虚拟场景图像,上述方法由用户终端执行,上述方法还包括:
从上述第二纹理中读取目标图像数据;
将所读取的上述目标图像数据转换为对应于上述源编码格式的待展示图像数据;
基于上述待展示图像数据展示上述虚拟场景图像。
可选的,以游戏场景为例,该游戏场景可以为普通游戏场景也可以为云游戏场景,在此不作限定。此时,一张待处理图像即为游戏场景中的一张虚拟场景图像,当存在虚拟场景图像的编码格式为RGB编码格式、以及需要在目标终端显示RGB编码格式的图像的需求时,可以按照以下方式实现在目标终端显示虚拟场景图像。
按照前文描述,可以将源编码格式的待处理图像的图像数据(即RGB编码格式的虚拟场景图像数据)转换为目标编码格式的目标图像数据(即YUV编码格式的图像数据),也就是说,可以将游戏场景中的RGB图像转换为YUV图像。然后,从第二纹理中将目标图像数据读取出来,即从第二纹理中读取YUV图像数据,并将读取的该YUV图像数据转换为对应于源编码格式(即RGB编码格式)的待展示图像数据,基于该待展示图像数据展示该虚拟场景图像(即游戏画面)。
其中,将YUV图像数据转换为RGB图像数据的方法,可以参考前文描述的将RGB图像数据转换为YUV图像数据的方法,即逆向使用将RGB图像数据转换为YUV图像数据的方法,在此不再详述。
通过本申请实施例,可以根据需要将目标编码格式的目标图像数据转换为源编码格式的待展示图像数据,能够根据需要灵活的转换图像的编码格式,满足多种需求,提高了适用性。
在一种可选的实施例中,上述待处理图像为云游戏场景中至少一张虚拟场景图像中的每一图像,上述方法由云游戏服务器执行,上述方法还包括:
从上述至少一张虚拟场景图像中各图像对应的第二纹理中读取目标图像数据;
对所读取的目标图像数据进行图像编码处理,得到视频流;
将上述视频流发送至用户终端,以使上述用户终端播放上述视频流。
可选的,在云游戏场景中,云游戏服务器在将游戏内的场景画面编码成视频流的过程中,例如,该视频流的数字视频压缩格式为H264格式,由于在该过程中需要用到YUV编码格式的图像数据,而游戏内的场景画面是RGB编码格式的图像数据,因此,需要将RGB编码格式的图像数据转换成YUV编码格式的图像数据。
其中,待处理图像为云游戏场景中至少一张虚拟场景图像中的每一图像,每一虚拟场景图像的编码格式为RGB编码格式,按照前文描述的方式,得到各虚拟场景图像在各自对应的第二纹理存储的目标图像数据,该目标图像数据还可以理解为渲染完毕后的游戏画面,然后,云游戏服务器从各虚拟场景图像各自对应的第二纹理中读取目标图像数据,并将读取的各目标图像数据进行图像编码处理,即进行视频压缩处理,得到视频流,其中,每一虚拟场景图像对应于视频流中的一帧图像,将该视频流发送至用户终端,该用户终端可以不需要任何高端处理器和显卡,只需要基本的视频解压能力,即用户终端只需将接收到的视频流进行解压播放即可。
通过本申请实施例,云游戏服务器可以基于渲染完毕后的游戏画面压缩得到视频流,将该视频流通过网络传送给用户终端,用户终端可以不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以播放云游戏服务器发送的视频流,在这个过程中,云游戏服务器可以利用本申请实施例中的图像处理方法更高效地转换编码方式,加快游戏视频流的处理速度,降低服务器中的CPU的运算压力,大大提高了云游戏的承载量,优化游戏体验的同时也降低了云游戏服务器的成本。
为了更加清楚的理解本申请实施例中的图像处理方法,以下结合云游戏场景为例进行详细说明。在云游戏场景中,云服务端器在将游戏内的场景画面编码成视频流的过程中,由于在该过程中需要用到YUV编码的图像,而游戏内的场景画面是RGB编码的图像,因此,需要将RGB编码的图像转换成YUV编码的图像,可以采用本申请实施例中的图像处理方法将RGB编码的图像转换成YUV编码的图像,如图6所示,详细过程如下:
步骤601,创建一张RGB编码格式的图像数据对应的RenderTexture纹理,该纹理是一个存储区域,用RT_RGB表示,该RT_RGB即前文描述的第一纹理,用于存储游戏引擎的场景相机捕获到的游戏画面,其中,本申请实施例对于游戏引擎具体是什么引擎不作限定,例如该游戏引擎可以为游戏引擎Unity,该游戏画面是RGB编码格式的图像数据,即前文描述的待处理图像的图像数据。其中,该存储区域RT_RGB的尺寸与游戏画面的图像尺寸一致,例如,该存储区域RT_RGB的尺寸和游戏画面的图像尺寸均是Width*Height。可理解,本申请实施例对于该游戏画面的图像尺寸不作限定,可以根据实际需要确定,如可以与对应的用户终端的屏幕尺寸适配,可选的,该游戏画面的图像尺寸为1920*1080。本申请实施例对于该RT_RGB存储区域的格式不作限定,例如该RT_RGB存储区域的格式可以为BGRA32、ARGB32等。
步骤602,创建一张YUV编码格式的图像数据对应的RenderTexture纹理,该纹理是一个存储区域,用RT_YUV表示,该RT_YUV即前文描述的第二纹理,用于存储由RGB编码格式的图像数据转换成的YUV编码格式的图像数据(即前文描述的目标编码格式的目标图像数据)。其中,该存储区域RT_YUV的尺寸为Width*1.5Height,该存储区域RT_YUV的高度是存储区域RT_RGB的高度的1.5倍。假设游戏画面的图像尺寸为1920*1080,那么该存储区域RT_YUV的尺寸为1920*1620。本申请实施例对于该RT_YUV存储区域的格式不作限定,例如该RT_YUV存储区域的格式可以为R8格式(即只包含一个颜色通道)等。
参见图3,图3为存储区域RT_YUV的布局示意图,可以看出,存储区域RT_YUV包含三个区域,即图中所示的Y区域、U区域和V区域,Y区域的高宽比和U区域、V区域的宽高比需要保持一致。其中,Y区域的高度为RT_YUV的高度的2/3,Y区域的宽度和RT_YUV的宽度一致,U区域和V区域的高度均为RT_YUV的高度的1/3,U区域和V区域的宽度均为RT_YUV的宽度的1/2。
步骤603,将游戏引擎Unity的虚拟相机渲染目标设置为RT_RGB,并执行相机的渲染操作,得到一张包含游戏场景内容的RGB编码格式的图像,即当前游戏画面,将该当前游戏画面捕获并存储到存储区域RT_RGB内。即图中所示的调用虚拟相机进行渲染,将得到的游戏画面写入RGB纹理(RT_RGB)。
步骤604,游戏引擎Unity通过纹理重采样操作,在显卡GPU中,将RT_RGB作为采样源,RT_YUV作为渲染目标(即目标纹理,也即第二纹理),GPU通过调用着色器将RGB图像数据转换成YUV图像数据(即图中所示的使用着色器对纹理重采样)。其中,RT_YUV中的各个纹理点(可以理解为YUV编码格式下的一个图像点)的位置与RT_RGB中的RGB图像数据的各像素点具有映射关系,主要过程为,GPU通过调用着色器,一次性(并行的)的将RT_YUV的各个纹理点对应于RT_RGB中的各像素点、通过转换公式转换为相应的颜色值。
主要过程如图7所示,使用Y公式,将RT_RGB中的一整张纹理通过着色器的计算,采样到Y区域,使用U公式,将RT_RGB中的一整张纹理通过着色器的计算,采样到U区域,使用V公式,将RT_RGB中的一整张纹理通过着色器的计算,采样到V区域。
具体地,将RGB编码格式的游戏画面转换为YUV编码格式的图像的过程如图8所示,为便于描述,可以将游戏画面称为原始图像,渲染目标称为目标图像,具体过程如下:
步骤1,以RT_RGB为采样源,RT_YUV为渲染目标,GPU调用着色器进行重采样,向着色器输入渲染目标的纹理坐标(即UV坐标)。也就是GPU为着色器输入目标图像的纹理坐标,即UV坐标。
其中,该UV坐标是指GPU当前执行的着色器要渲染的位置是目标图像的哪个位置。其中,UV坐标中的U是水平方向,V是垂直方向,将UV坐标中用于表示水平方向的轴作为X轴,X轴方向的坐标记为横坐标X,将UV坐标中用于表示垂直方向轴作为Y轴,Y轴方向的坐标记为纵坐标Y。
步骤S2,根据UV坐标判断出着色器当前要渲染的是RT_YUV中的哪个位置。
可以根据图3所示中的YUV布局来判断,当前输入的UV坐标所对应的渲染的区域,即判断当前应该渲染Y区域、U区域和V区域中的哪个区域,然后,根据RT_RGB和RT_YUV的映射关系,根据该映射关系,获取当前UV坐标对应于RT_RGB的图像数据,并使用所对应的区域的转换公式(即Y公式、U公式和V公式)进行计算,得到当前UV坐标所对应的颜色分量的值。以下是几种可能的情形:
情形1:使用将RGB图像数据转换为YUV图像数据中Y分量对应的Y公式,将RT_RGB的一整张纹理通过着色器的计算,采样到Y区域。
可选的,若UV坐标中的纵坐标Y大于或等于1/3,则表明当前的UV坐标对应于Y区域,需要使用Y公式进行计算。将纵坐标Y缩放到[0,1]的范围,使用UV坐标对RT_RGB进行采样,得到当前UV坐标对应的RGB颜色,即从原始图像中获取当前UV坐标所对应的RGB图像数据。然后,使用RGB图像数据转YUV图像数据中的Y公式进行计算,将当前UV坐标所对应的RGB图像数据,根据该Y公式,得到相应的Y值。
其中,Y公式为:Y=0.257*R+0.504*G+0.098*B+16。
举例来说,在如图5所示的RT_YUV(即图中所示的第二纹理)的布局图中,左下角为(0,0),向右为UV坐标X轴的正方向,向上为UV坐标Y轴的正方向,以UV坐标(0,1/3)为例,UV坐标(0,1/3)就是RT_YUV的Y区域的0点,该UV坐标(0,1/3)对应于RT_RGB的(0,0)点,此时,需要对RT_RGB的(0,0)点进行采样。
情形2:使用将RGB图像数据转换为YUV图像数据中的U分量对应的U公式,将RT_RGB的一整张纹理通过着色器的计算,采样到U区域。
可选的,若UV坐标中的纵坐标Y小于1/3,将纵坐标Y缩放到[0,1]的范围,并进一步判断横坐标X,若横坐标X小于或等于1/2,则表明当前的UV坐标对应于U区域,需要使用U公式进行计算。将横坐标X缩放到[0,1]的范围,使用UV坐标对RT_RGB进行采样,得到当前UV坐标对应的RGB颜色,即从原始图像中获取当前UV坐标所对应的RGB图像数据。然后,使用RGB图像数据转YUV图像数据中的U公式进行计算,将当前UV坐标所对应的RGB图像数据,根据该U公式,得到相应的U值。
其中,U公式为:U=-0.148*R-0.291*G+0.439*B+128;
情形3,使用将RGB图像数据转换为YUV图像数据中V分量对应的V公式,将RT_RGB的一整张纹理通过着色器的计算,采样到V区域。
可选的,若UV坐标中的纵坐标Y小于1/3,将纵坐标Y缩放到[0,1]的范围,并进一步判断横坐标X,若横坐标X大于1/2,则表明当前的UV坐标对应于V区域,需要使用V公式进行计算。将横坐标X缩放到[0,1]的范围,使用UV坐标对RT_RGB进行采样,得到当前UV坐标对应的RGB颜色,即从原始图像中获取当前UV坐标所对应的RGB图像数据。然后,使用RGB图像数据转YUV图像数据中的V公式进行计算,将当前UV坐标所对应的RGB图像数据,根据该V公式,得到相应的V值。
V公式为:V=0.439*R-0.368*G-0.071*B+128。
按照上述方式,当Y区域、U区域和V区域的数据全部采样完毕之后,将重采样结果写入RT_YUV纹理中,其中,重采样结果即为得到的目标图像数据(即YUV编码格式的图像数据)。
步骤S605,按照上述过程可以得到YUV编码格式的图像数据,继续执行后续的程序逻辑,从RT_RGB中读取出YUV编码格式的图像数据,并通过视频编码器基于YUV编码格式的图像数据,得到视频流,在客户端播放该视频流。其中,该客户端是上述用户终端中的客户端,可以为各种形式的客户端,在此不作限定。
可选的,从RT_RGB中读取出YUV编码格式的图像数据时,可以按照图3所示的布局图,按块读取Y区域的数据,按行读取U、V区域的数据,具体过程如下:
假设得到的YUV图像数据按照图4所示的方式存储于RT_YUV中,在读取Y区域的数据时,按块读取Y区域的数据,在读取U区域和V区域的数据时,按行读取U区域和V区域的数据。例如,Y1至Y12所在的区域构成一个区域块,记为区域块1,Y13至Y24所在的区域构成一个区域块,记为区域块2。U1至U3和V1至V3所在的行,记为行1,U4至U6和V4至V6所在的行,记为行2。按块读取区域块1的数据,按行读取行1的数据,可以得到Y1至Y12的数据,以及所共用的UV分量,即U1至U3和V1至V3。按块读取区域块2的数据,按行读取行2的数据,可以得到Y13至Y24的数据,以及所共用的UV分量,即U4至U6和V4至V6。
通过本申请实施例,在将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据时,通过创建纹理来存储图像数据的方式,使得可以通过GPU调用着色器的方式对待转换的图像数据进行并行处理,避免了采用逐像素计算的方式,可以快速完成图像转换,大大提高了将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据的处理效率。
参见图9,图9是本申请实施例提供的一种图像处理装置的结构示意图。本申请实施例提供的图像处理装置1包括:
源数据获取模块11,用于获取待处理图像的图像尺寸和图像数据,上述待处理图像的图像数据对应的颜色编码格式为源编码格式;
第一纹理处理模块12,用于根据上述图像尺寸创建第一纹理,并将上述待处理图像的图像数据存储至上述第一纹理中;
第二纹理处理模块13,用于根据上述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,上述目标图像数据对应的编码格式为上述目标编码格式;
目标数据获取模块14,用于将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各上述纹理坐标对应的目标图像数据存储至上述第二纹理中相应的存储位置。
在一种可选的实施例中,目标数据获取模块,具体用于:
将上述第一纹理中存储的上述待处理图像的图像数据作为采样源、将上述第二纹理作为待渲染的目标纹理,通过GPU调用着色器执行以下操作,得到各上述纹理坐标所对应的目标图像数据:
对于任一纹理坐标,确定该纹理坐标在上述第二纹理中对应的第一存储位置;
根据上述第一纹理和上述第二纹理的存储位置对应关系,确定该纹理坐标在上述第一纹理中对应的第二存储位置;
根据上述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至上述第一存储位置。
在一种可选的实施例中,上述源编码格式为红绿蓝RGB编码格式,上述目标编码格式为亮度色度YUV编码格式,上述第二纹理包括YUV编码格式中亮度分量对应的第一存储区域和色度分量所对应的第二存储区域,其中,上述第一存储区域和上述第二存储区域连续,上述第一存储区域中每一行所存储的亮度分量与上述第二存储区域中所存储的第一色度分量和第二色度分量相对应,上述第一色度分量的目标图像数据和上述第二色度分量的目标图像数据在上述第二存储区域中连续存储。
在一种可选的实施例中,上述第一存储区域的尺寸与上述图像尺寸相同,上述第二存储区域包括对应于第一色度分量的第一子区域和对应于第二色度分量的第二子区域,上述第一子区域和上述第二子区域尺寸相同,上述第一存储区域、上述第一子区域和上述第二子区域的宽高比相同,且上述第一子区域和上述第二子区域的宽度是由上述目标编码格式确定的。
在一种可选的实施例中,目标数据获取模块,具体用于:
确定该纹理坐标在上述第二纹理中对应的第一存储位置;
确定上述第一存储位置所属的目标存储区域;
根据上述第一纹理和上述第二纹理的存储位置对应关系、以及上述目标存储区域,将该纹理坐标转换为对应于上述第一纹理的纹理坐标,得到转换后的纹理坐标;
确定上述转换后的纹理坐标在上述第一纹理中第二存储位置。
在一可选的实施例中,目标数据获取模块,具体用于:
根据上述第二存储位置对应的待处理图像的图像数据,采用上述目标存储区域所对应的图像数据转换公式,计算得到该纹理坐标对应的目标图像数据。
在一种可选的实施例中,目标数据获取模块,具体用于:
通过图形处理器GPU调用着色器并行计算得到各纹理坐标所对应的目标图像数据。
在一种可选的实施例中,上述待处理图像为游戏场景中的虚拟场景图像,该装置还包括图像展示模块,该模块用于:
从上述第二纹理中读取目标图像数据;
将所读取的上述目标图像数据转换为对应于上述源编码格式的待展示图像数据;
基于上述待展示图像数据展示上述虚拟场景图像。
在一种可选的实施例中,上述待处理图像为云游戏中至少一张虚拟场景图像中的每一图像,上述装置还包括视频流生成模块,该模块用于:
从上述至少一张虚拟场景图像中各图像对应的第二纹理中读取目标图像数据;
对所读取的目标图像数据进行图像编码处理,得到视频流;
将上述视频流发送至用户终端,以使该用户终端播放上述视频流。
通过本申请实施例,在将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据时,通过创建纹理来存储图像数据的方式,使得可以通过GPU调用着色器的方式对待转换的图像数据进行处理,避免了采用逐像素计算的方式,可以快速完成图像转换,大大提高了将源编码格式的待处理图像的图像数据转换为目标编码格式的目标图像数据的处理效率。
具体实现中,上述图像处理装置1可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上文主要介绍说明了执行主体为硬件,来实施本申请中的图像处理方法,但是本申请的图像处理方法的执行主体并不仅限于硬件,本申请中的图像处理方法的执行主体还可以为软件,上述图像处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该图像处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。
在一些实施例中,本申请实施例提供的图像处理装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的图像处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的图像处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在另一些实施例中,本申请实施例提供的图像处理装置可以采用软件方式实现,图9示出的图像处理装置1,其可以是程序和插件等形式的软件,并包括一系列的模块,包括源数据获取模块11、第一纹理处理模块12、第二纹理处理模块13和目标数据获取模块14,用于实现本申请实施例提供的图像处理方法。
参见图10,图10是本申请实施例提供的一种电子设备的结构示意图。如图10所示,本实施例中的电子设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述电子设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的电子设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的计算机程序。
应当理解,在一些可行的实施方式中,上述处理器1001可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
具体实现中,上述电子设备1000可通过其内置的各个功能模块执行如上述图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,被处理器执行以实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的任务处理装置的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。上述计算机可读存储介质还可以包括磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2中任一种可能的实施方式所提供的方法。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (11)
1.一种图像处理方法,其特征在于,包括:
获取待处理图像的图像尺寸和图像数据,所述待处理图像的图像数据对应的颜色编码格式为源编码格式;
根据所述图像尺寸创建第一纹理,并将所述待处理图像的图像数据存储至所述第一纹理中;
根据所述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,所述目标图像数据对应的编码格式为所述目标编码格式;
将所述第一纹理中存储的所述待处理图像的图像数据作为采样源、将所述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各所述纹理坐标对应的目标图像数据存储至所述第二纹理中相应的存储位置,包括:
将所述第一纹理中存储的所述待处理图像的图像数据作为采样源、将所述第二纹理作为待渲染的目标纹理,通过GPU调用着色器执行以下操作,得到各所述纹理坐标所对应的目标图像数据:
对于任一纹理坐标,确定该纹理坐标在所述第二纹理中对应的第一存储位置;
根据所述第一纹理和所述第二纹理的存储位置对应关系,确定该纹理坐标在所述第一纹理中对应的第二存储位置;
根据所述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至所述第一存储位置。
2.根据权利要求1所述的方法,其特征在于,所述源编码格式为红绿蓝RGB编码格式,所述目标编码格式为亮度色度YUV编码格式,所述第二纹理包括YUV编码格式中亮度分量对应的第一存储区域和色度分量所对应的第二存储区域,其中,所述第一存储区域和所述第二存储区域连续,所述第一存储区域中每一行所存储的亮度分量与所述第二存储区域中所存储的第一色度分量和第二色度分量相对应,所述第一色度分量的目标图像数据和所述第二色度分量的目标图像数据在所述第二存储区域中连续存储。
3.根据权利要求2所述的方法,其特征在于,所述第一存储区域的尺寸与所述图像尺寸相同,所述第二存储区域包括对应于第一色度分量的第一子区域和对应于第二色度分量的第二子区域,所述第一子区域和所述第二子区域尺寸相同,所述第一存储区域、所述第一子区域和所述第二子区域的宽高比相同,且所述第一子区域和所述第二子区域的宽度是由所述目标编码格式确定的。
4.根据权利要求2或3所述的方法,其特征在于,对于任一纹理坐标,所述确定该纹理坐标在所述第二纹理中对应的第一存储位置,以及根据所述第一纹理和所述第二纹理的存储位置对应关系,确定该纹理坐标在所述第一纹理中对应的第二存储位置,包括:
确定该纹理坐标在所述第二纹理中对应的第一存储位置;
确定所述第一存储位置所属的目标存储区域;
根据所述第一纹理和所述第二纹理的存储位置对应关系、以及所述目标存储区域,将该纹理坐标转换为对应于所述第一纹理的纹理坐标,得到转换后的纹理坐标;
确定所述转换后的纹理坐标在所述第一纹理中第二存储位置。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,包括:
根据所述第二存储位置对应的待处理图像的图像数据,采用所述目标存储区域所对应的图像数据转换公式,计算得到该纹理坐标对应的目标图像数据。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,包括:
通过图形处理器GPU调用着色器并行计算得到各纹理坐标所对应的目标图像数据。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述待处理图像为游戏场景中的虚拟场景图像,所述方法由用户终端执行,所述方法还包括:
从所述第二纹理中读取目标图像数据;
将所读取的所述目标图像数据转换为对应于所述源编码格式的待展示图像数据;
基于所述待展示图像数据展示所述虚拟场景图像。
8.根据权利要求1至3中任一项所述的方法,其特征在于,所述待处理图像为云游戏中至少一张虚拟场景图像中的每一图像,所述方法由云游戏服务器执行,所述方法还包括:
从所述至少一张虚拟场景图像中各图像对应的第二纹理中读取目标图像数据;
对所读取的目标图像数据进行图像编码处理,得到视频流;
将所述视频流发送至用户终端,以使所述用户终端播放所述视频流。
9.一种图像处理装置,其特征在于,包括:
源数据获取模块,用于获取待处理图像的图像尺寸和图像数据,所述待处理图像的图像数据对应的颜色编码格式为源编码格式;
第一纹理处理模块,用于根据所述图像尺寸创建第一纹理,并将所述待处理图像的图像数据存储至所述第一纹理中;
第二纹理处理模块,用于根据所述图像尺寸和目标编码格式,创建用于存储目标图像数据的第二纹理,其中,所述目标图像数据对应的编码格式为所述目标编码格式;
目标数据获取模块,用于将所述第一纹理中存储的所述待处理图像的图像数据作为采样源、将所述第二纹理作为待渲染的目标纹理,通过图形处理器GPU调用着色器计算得到各纹理坐标所对应的目标图像数据,并将各所述纹理坐标对应的目标图像数据存储至所述第二纹理中相应的存储位置,该模块具体用于:
将所述第一纹理中存储的所述待处理图像的图像数据作为采样源、将所述第二纹理作为待渲染的目标纹理,通过GPU调用着色器执行以下操作,得到各所述纹理坐标所对应的目标图像数据:
对于任一纹理坐标,确定该纹理坐标在所述第二纹理中对应的第一存储位置;
根据所述第一纹理和所述第二纹理的存储位置对应关系,确定该纹理坐标在所述第一纹理中对应的第二存储位置;
根据所述第二存储位置对应的待处理图像的图像数据,计算得到该纹理坐标对应的目标图像数据,并将该目标图像数据存储至所述第一存储位置。
10.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接;
所述存储器用于存储计算机程序;
所述处理器被配置用于在调用所述计算机程序时,执行如权利要求1至8任一项中所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至8任一项中所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655426.0A CN113096233B (zh) | 2021-06-11 | 2021-06-11 | 图像处理方法、装置、电子设备及可读存储介质 |
PCT/CN2022/094621 WO2022257750A1 (zh) | 2021-06-11 | 2022-05-24 | 图像处理方法、装置、电子设备、程序及可读存储介质 |
US18/299,157 US20230252758A1 (en) | 2021-06-11 | 2023-04-12 | Image processing method and apparatus, electronic device, program, and readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655426.0A CN113096233B (zh) | 2021-06-11 | 2021-06-11 | 图像处理方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113096233A CN113096233A (zh) | 2021-07-09 |
CN113096233B true CN113096233B (zh) | 2021-08-27 |
Family
ID=76662705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110655426.0A Active CN113096233B (zh) | 2021-06-11 | 2021-06-11 | 图像处理方法、装置、电子设备及可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230252758A1 (zh) |
CN (1) | CN113096233B (zh) |
WO (1) | WO2022257750A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113096233B (zh) * | 2021-06-11 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备及可读存储介质 |
CN114040246A (zh) * | 2021-11-08 | 2022-02-11 | 网易(杭州)网络有限公司 | 图形处理器的图像格式转换方法、装置、设备及存储介质 |
CN115767126A (zh) * | 2022-11-29 | 2023-03-07 | 上海众源网络有限公司 | 一种yuv纹理生成方法、装置及电子设备 |
CN117472592B (zh) * | 2023-12-27 | 2024-03-19 | 中建三局集团有限公司 | 基于顶点着色器与纹理映射的三维模型爆炸方法及系统 |
CN117750025B (zh) * | 2024-02-20 | 2024-05-10 | 上海励驰半导体有限公司 | 一种图像数据处理方法、装置、芯片、设备及介质 |
CN118279138B (zh) * | 2024-05-29 | 2024-09-06 | 北京智芯微电子科技有限公司 | 图像处理方法、装置、电子设备、存储介质及芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102800122A (zh) * | 2012-06-20 | 2012-11-28 | 广东威创视讯科技股份有限公司 | 基于Direct3D技术的图像处理方法及其装置 |
CN106210883A (zh) * | 2016-08-11 | 2016-12-07 | 浙江大华技术股份有限公司 | 一种视频渲染的方法、设备 |
CN108154539A (zh) * | 2017-12-18 | 2018-06-12 | 北京酷我科技有限公司 | 一种基于Opengl ES的颜色空间数据转化算法 |
CN110177287A (zh) * | 2019-06-11 | 2019-08-27 | 广州虎牙科技有限公司 | 一种图像处理和直播方法、装置、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467803B1 (en) * | 2018-09-11 | 2019-11-05 | Apple Inc. | Techniques for providing virtual lighting adjustments utilizing regression analysis and functional lightmaps |
CN111093096A (zh) * | 2019-12-25 | 2020-05-01 | 广州酷狗计算机科技有限公司 | 视频编码方法及装置、存储介质 |
CN113096233B (zh) * | 2021-06-11 | 2021-08-27 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、电子设备及可读存储介质 |
-
2021
- 2021-06-11 CN CN202110655426.0A patent/CN113096233B/zh active Active
-
2022
- 2022-05-24 WO PCT/CN2022/094621 patent/WO2022257750A1/zh unknown
-
2023
- 2023-04-12 US US18/299,157 patent/US20230252758A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102800122A (zh) * | 2012-06-20 | 2012-11-28 | 广东威创视讯科技股份有限公司 | 基于Direct3D技术的图像处理方法及其装置 |
CN106210883A (zh) * | 2016-08-11 | 2016-12-07 | 浙江大华技术股份有限公司 | 一种视频渲染的方法、设备 |
CN108154539A (zh) * | 2017-12-18 | 2018-06-12 | 北京酷我科技有限公司 | 一种基于Opengl ES的颜色空间数据转化算法 |
CN110177287A (zh) * | 2019-06-11 | 2019-08-27 | 广州虎牙科技有限公司 | 一种图像处理和直播方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113096233A (zh) | 2021-07-09 |
WO2022257750A1 (zh) | 2022-12-15 |
US20230252758A1 (en) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113096233B (zh) | 图像处理方法、装置、电子设备及可读存储介质 | |
CN109983757B (zh) | 全景视频回放期间的视图相关操作 | |
CN106611435B (zh) | 动画处理方法和装置 | |
CN113041617B (zh) | 一种游戏画面渲染方法、装置、设备及存储介质 | |
CN111681167A (zh) | 画质调整方法和装置、存储介质及电子设备 | |
CN113457160B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109983500A (zh) | 重新投影全景视频图片的平板投影以通过应用进行渲染 | |
CN111899322A (zh) | 视频处理方法、动画渲染sdk和设备及计算机存储介质 | |
JP2005519382A (ja) | 集中型対話グラフィカルアプリケーションサーバ | |
CN110636305B (zh) | 图像渲染和编码方法及相关装置 | |
CN107465939B (zh) | 视频图像数据流的处理方法及装置 | |
CN114040246A (zh) | 图形处理器的图像格式转换方法、装置、设备及存储介质 | |
EP4290464A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
WO2023011033A1 (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110049347B (zh) | 在直播界面配置图像的方法、系统、终端和装置 | |
CN114222185B (zh) | 视频播放方法、终端设备及存储介质 | |
CN110858388B (zh) | 一种增强视频画质的方法和装置 | |
CN112991497B (zh) | 一种对黑白动漫视频的着色方法、装置、存储介质及终端 | |
CN117611703A (zh) | 弹幕字符的渲染方法、装置、设备、存储介质及程序产品 | |
CN112653905B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN110858389B (zh) | 一种增强视频画质的方法、装置、终端及转码设备 | |
CN106331532A (zh) | 一种数据转换方法、装置及电子设备 | |
CN114247138B (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN116966546A (zh) | 图像处理方法、装置、介质、设备和程序产品 | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40048694 Country of ref document: HK |