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

图形处理器的图像格式转换方法、装置、设备及存储介质与流程

2022-02-22 22:20:24 来源:中国专利 TAG:
图形处理器的图像格式转换方法、装置、设备及存储介质与流程

本申请涉及图像处理技术领域,具体而言,涉及一种图形处理器的图像格式转换方法、装置、设备及存储介质。

背景技术

通常用户所观看的网络视频是通过在设备本地进行画面渲染后,远程发送至用户终端进行显示。传统的RGB(红绿蓝)像素格式所渲染的画面失真最小,适合进行屏幕显示,但是在网络视频传输的过程中,其对带宽以及速率的超高要求不能适应当前网络技术条件的限制,而YUV(亮度色度)像素格式允许对UV分量进行一定程度的压缩,从而在保证一定的图像还原度的情况下还能提高传输速率,因此,在网络视频传输的过程中,不可避免的需要进行RGB至YUV像素格式的转换。

现有技术中,多使用运行效率较高的编程语言(C/C )配合高主频CPU来进行RGB至YUV的像素格式转换,并配合多线程技术,以提高转换的并发度,缩短转换时间。

但是,像素转换计算是完全的浮点数运算,而CPU的浮点运行能力较弱,且CPU的物理数量十分有限,即便使用多线程技术,算法并发程度依然有限,从而导致像素格式转换效率较低。



技术实现要素:

本申请的目的在于,针对上述现有技术中的不足,提供一种图形处理器的图像格式转换方法、装置、设备及存储介质,以便于解决现有技术中存在的图像像素格式转换效率较低的问题。

为实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种图形处理器的图像格式转换方法,应用于图形处理器,所述方法包括:

从中央处理器获取当前帧画面对应的原始的渲染贴图;

从所述原始的渲染贴图中读取所述当前帧画面中各像素点的第一数据格式的像素值;

将各像素点的所述第一数据格式的像素值转换为第二数据格式的像素值,并根据所述第二数据格式的像素值生成新的渲染贴图;

采用所述新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。

可选地,所述第一数据格式为红绿蓝格式,所述第二数据格式为亮度色度格式;所述将各像素点的所述第一数据格式的像素值转换为第二数据格式的像素值,包括:

根据红绿蓝值与亮度分量的值的映射关系,确定各像素点在亮度分量上的像素值;

将各像素点划分为多个像素区域;

根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值;

根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值。

可选地,所述根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值,包括:

根据第一像素区域中各像素点的坐标,确定所述第一像素区域的中心像素点,所述第一像素区域为各像素区域中任一像素区域;

根据所述中心像素点的红绿蓝值与第一色度分量的值的第一映射关系,确定所述第一像素区域在第一色度分量上的像素值。

可选地,所述根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值,包括:

根据第一像素区域中各像素点的坐标,确定所述第一像素区域的中心像素点,所述第一像素区域为各像素区域中任一像素区域;

根据所述中心像素点的红绿蓝值与第二色度分量的值的第二映射关系,确定所述第一像素区域在第二色度分量上的像素值。

可选地,所述根据所述第二数据格式的像素值生成新的渲染贴图之前,所述方法还包括:

根据所述原始的渲染贴图的尺寸参数,确定待创建的新的渲染贴图的尺寸参数,所述尺寸参数包括:宽度和高度,所述待创建的新的渲染贴图的高度为所述原始的渲染贴图的预设倍数,所述待创建的新的渲染贴图的宽度与所述原始的渲染贴图的宽度相同;

根据所述待创建的新的渲染贴图的尺寸参数,创建贴图模板;

创建新的缓存空间,并将所述缓存空间与所述贴图模板进行绑定,所述新的缓存空间用于存储所述第二数据格式的像素值;

将转换得到的所述第二数据格式的像素值存储至所述新的缓存空间中。

可选地,所述根据所述第二数据格式的像素值生成新的渲染贴图,包括:

从所述新的缓存空间中读取所述第二数据格式的像素值;

将所述第二数据格式的像素值传入所述贴图模板中,得到所述新的渲染贴图。

可选地,所述采用所述新的渲染贴图进行图像渲染,生成当前帧画面对应的目标画面之后,所述方法还包括:

分别生成至少一帧画面对应的至少一帧目标画面;

将所述至少一帧目标画面发送至用户终端。

第二方面,本申请实施例还提供了一种图形处理器的图像格式转换装置,应用于图形处理器,所述装置包括:获取模块、读取模块、转换模块、生成模块;

所述获取模块,用于从中央处理器获取当前帧画面对应的原始的渲染贴图;

所述读取模块,用于从所述原始的渲染贴图中读取所述当前帧画面中各像素点的第一数据格式的像素值;

所述转换模块,用于将各像素点的所述第一数据格式的像素值转换为第二数据格式的像素值,并根据所述第二数据格式的像素值生成新的渲染贴图;

所述生成模块,用于采用所述新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。

可选地,所述第一数据格式为红绿蓝格式,所述第二数据格式为亮度色度格式;所述转换模块,具体用于:

根据红绿蓝值与亮度分量的值的映射关系,确定各像素点在亮度分量上的像素值;

将各像素点划分为多个像素区域;

根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值;

根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值。

可选地,所述转换模块,具体用于

根据第一像素区域中各像素点的坐标,确定所述第一像素区域的中心像素点,所述第一像素区域为各像素区域中任一像素区域;

根据所述中心像素点的红绿蓝值与第一色度分量的值的第一映射关系,确定所述第一像素区域在第一色度分量上的像素值。

可选地,所述转换模块,具体用于

根据第一像素区域中各像素点的坐标,确定所述第一像素区域的中心像素点,所述第一像素区域为各像素区域中任一像素区域;

根据所述中心像素点的红绿蓝值与第二色度分量的值的第二映射关系,确定所述第一像素区域在第二色度分量上的像素值。

可选地,所述装置还包括:创建模块;

所述创建模块,用于根据所述原始的渲染贴图的尺寸参数,确定待创建的新的渲染贴图的尺寸参数,所述尺寸参数包括:宽度和高度,所述待创建的新的渲染贴图的高度为所述原始的渲染贴图的预设倍数,所述待创建的新的渲染贴图的宽度与所述原始的渲染贴图的宽度相同;

根据所述待创建的新的渲染贴图的尺寸参数,创建贴图模板;

创建新的缓存空间,并将所述缓存空间与所述贴图模板进行绑定,所述新的缓存空间用于存储所述第二数据格式的像素值;

将转换得到的所述第二数据格式的像素值存储至所述新的缓存空间中。

可选地,所述生成模块,具体用于

从所述新的缓存空间中读取所述第二数据格式的像素值;

将所述第二数据格式的像素值传入所述贴图模板中,得到所述新的渲染贴图。

可选地,所述装置还包括:发送模块;

所述生成模块,还用于分别生成至少一帧画面对应的至少一帧目标画面;

所述发送模块,用于将所述至少一帧目标画面发送至用户终端。

第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面中提供的方法的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的方法的步骤。

本申请的有益效果是:

本申请提供一种图形处理器的图像格式转换方法、装置、设备及存储介质,该方法包括:从中央处理器获取当前帧画面对应的原始的渲染贴图;从原始的渲染贴图中读取当前帧画面中各像素点的第一数据格式的像素值;将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,并根据第二数据格式的像素值生成新的渲染贴图;采用新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。本方法中,通过从中央处理器获取当前帧画面的原始渲染贴图,在图形处理器中进行图像画面数据格式的转换,基于图形处理器浮点数据计算的优势,以及特有的图形并行计算能力,能够处理大批量像素点的数据格式并行转换计算,从而有效的提高了图像数据格式转换的计算效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的业务场景示意图;

图2为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图一;

图3为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图二;

图4为本申请实施例提供的一种RGB格式转换为YUV格式的示意图;

图5为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图三;

图6为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图四;

图7为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图五;

图8为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图六;

图9为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图七;

图10为本申请实施例提供的一种图形处理器的图像格式转换装置的示意图;

图11为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。

首先对本申请可能涉及的名词术语进行解释:

RGB:使用红绿蓝表示的像素格式。

YUV:使用亮度Y色度UV表示的像素格式。

CPU:中央处理器。

GPU:图形处理器。

GLSL:OpenGL着色语言。

图1为本申请实施例提供的业务场景示意图。以本方法应用于云游戏业务场景为例,如图1所示,业务场景可包括:游戏应用、系统界面、图像合成器、屏幕图像、亮度色度格式编码器(YUV编码器)、流媒体服务器、网络。游戏应用画面从生成到发送到网络,可经历如下几个阶段:

第一:游戏应用生成画面帧,送达图像合成器(Composer)。

游戏应用可指任意的游戏应用程序,可在安装有游戏应用的终端本地生成游戏画面帧,终端设备可将游戏画面帧发送至图像合成器。

第二:图像合成器将游戏画面与系统界面结合,生成最终的上屏画面。

其中,系统界面可以指除了所要展示的游戏画面之外的一些系统菜单、状态栏等画面,例如:系统的设置栏、控制栏、时间、网络等的显示,系统界面与游戏界面共同构成完整的画面帧。

需要说明的是,本方法中仅了关注游戏画面部分,采集到游戏画面数据进行格式转换即可,系统界面可不作为关注重点。

以安卓系统为例,可采用SurfaceFlinger进程作为合成器,在采用函数doComposition合成所有层的图像阶段,采用函数postFramebuffer处理画面上屏之前,此时渲染缓存中已经将游戏画面和系统界面进行了合并,此时通过挂载钩子函数进行拦截,可以获取到完整的上屏画面。

第三:画面上屏的同时,图形处理器的YUV编码器拦截到上屏画面,进行YUV格式转换。

可选地,上述步骤一和二可以是在终端本地进行执行,执行主体可以是终端的中央处理器,而本步骤中,图形处理器可从中央处理器处获取上屏画面,也即获取需要进行像素格式转换的图像,对其进行预设格式的转换。

第四:格式转换完成后得到的YUV格式画面被传递给流媒体服务器(Media Server)。

图形处理器对原始的RGB格式画面转换为YUV格式画面后,可将转换后的画面发送至流媒体服务器,其中,流媒体服务器可以为用户终端所在的服务器,以能够在用户终端进行画面显示。

第五:流媒体服务器将独立的画面帧进一步封装成流媒体格式进行网络传输。

可选地,由于上述是针对每一帧游戏画面进行执行的,每转换得到一帧YUV格式的画面,将被发送至流媒体服务器,而在流媒体服务器则可将一帧帧的画面进行封装,从而生成视频,并进一步地通过网络传输,传输给用户终端的浏览器,以供用户进行视频观看。

上述对本申请所应用于的业务场景进行了简单说明。需要说明的是,本申请提供的图形处理器的图像格式转换方法则是对上述步骤三的具体实现的说明,如下,将通过多个实施例进行详细说明。

图2为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图一,本方法的执行主体可以为图形处理器,如图2所示,该方法可包括:

S201、从中央处理器获取当前帧画面对应的原始的渲染贴图。

中央处理器可先从应用程序中获取当前帧画面的原始数据,其中,应用程序可以指任意类型的应用程序,不限于游戏应用程序,不同应用程序对应生成的画面可以是不同的,例如有游戏画面、影视画面等。

可选地,基于所获取的原始数据,中央处理器可调用函数glCopyTexImage2将从图像合成器渲染缓存中获取的原始数据生成原始的渲染贴图,也即生成材质对象,以供图形处理器处理使用。

图形处理器则可从中央处理器处获取当前帧画面对应的原始的渲染贴图,并进行后续处理。

S202、从原始的渲染贴图中读取当前帧画面中各像素点的第一数据格式的像素值。

在一些实施例中,由于图形处理器是用于对图形进行处理,图形处理器的输入则为上述当前帧画面对应的原始的渲染贴图,图形处理器可先从原始的渲染贴图中读取到当前帧画面的原始数据,也即读取到当前帧画面中各像素点的第一数据格式的像素值。

S203、将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,并根据第二数据格式的像素值生成新的渲染贴图。

图形处理器可调用相应的函数进行处理,以将各像素点的第一数据格式的像素值转换为第二数据格式的像素值。本实施例中,可以GLSL(OpenGL Shading Language,着色器语言)语言编写核心算法,最终实现通过图形处理器进行第一数据格式至第二数据格式像素转换的目标。

需要说明的是,上述的第一数据格式和第二数据格式可以为任意的数据格式,第一数据格式与第二数据格式不同即可,本方法可实现任意数据格式之间的相互转换,针对不同数据格式的转换所使用的函数存在区别。

可选地,由于图形处理器的输入输出均为图像信息,那么,基于转换得到的第二数据格式的像素值,可将其生成新的渲染贴图,也即,将第二数据格式的像素值以贴图的形式进行存储。

S204、采用新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。

可选地,基于所生成的新的渲染贴图,可采用常规的图像渲染方式,进行渲染处理,从而生成当前帧画面对应的目标画面,也即,生成当前帧画面转换后的第二数据格式的目标画面。

综上,本实施例提供的图形处理器的图像格式转换方法,包括:从中央处理器获取当前帧画面对应的原始的渲染贴图;从原始的渲染贴图中读取当前帧画面中各像素点的第一数据格式的像素值;将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,并根据第二数据格式的像素值生成新的渲染贴图;采用新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。本方法中,通过从中央处理器获取当前帧画面的原始渲染贴图,在图形处理器中进行图像画面数据格式的转换,基于图形处理器浮点数据计算的优势,以及特有的图形并行计算能力,能够处理大批量像素点的数据格式并行转换计算,从而有效的提高了图像数据格式转换的计算效率。

图3为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图二,图4为本申请实施例提供的一种RGB格式转换为YUV格式的示意图。可选地,第一数据格式为红绿蓝格式,第二数据格式为亮度色度格式;步骤S203中,将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,可以包括:

S301、根据红绿蓝值与亮度分量的值的映射关系,确定各像素点在亮度分量上的像素值。

本实施例中,所涉及的第一数据格式可以为红绿蓝格式,也即指RGB格式,第二数据格式为亮度色度格式,也即指YUV格式。本方法用于实现从RGB格式的图像至YUV格式图像的转换。

需要说明的是,在YUV格式中的三个分量中,Y表示亮度,而U和V则表示色度,由于人类的感知能力对亮度的敏感度最高,而对色度的敏感度相对较低,YUV格式在对照片或视频编码时,仅完全保留Y分量,而对UV分量允许一定程度的压缩,从而在保证一定的图像还原度的情况下有效的降低传输带宽,提高传输速率。

可选地,由于YUV格式的上述特性,在将RGB格式转换为YUV格式时,如图4所示,以4*4的图像为例,亮度分量也即Y分量可以保持像素点数量不变,进行1:1采样,可根据RGB格式图像中各像素点的RGB值分别确定YUV格式中各像素点在Y分量上的像素值。

S302、将各像素点划分为多个像素区域。

另外,对于色度分量的确定,由于UV分量可以进行一定程度上的压缩,可以先将RGB格式中各像素点划分为多个像素区域。如图4所示展示了一种可实现的划分方式,可以相邻的4个像素点为一个像素区域,将RGB格式中各像素点划分为4像素区域。

当然,图中仅示例性的列举了一种了划分的方式,实际应用中,可根据RGB格式的图像比例,所包含的像素点数量,存在其他不同的划分方式。

S303、根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值。

可选地,第一色度分量可以指YUV格式中的U分量。不同的像素区域可对应于转换后的YUV格式中的U分量,4个像素区域可分别对应一转换后的U分量,转换后的U分量可由16个像素点压缩为4个。

S304、根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值。

可选地,第二色度分量可以指YUV格式中的V分量。与上述U分量的处理类似,不同的像素区域可对应于转换后的YUV格式中的V分量,4个像素区域可分别对应一转换后的V分量,转换后的V分量可由16个像素点压缩为4个。

上述根据映射关系,确定了RGB格式中各像素点与YUV格式中各像素点的映射关系后,可进一步地根据RGB格式中各像素点的像素值进行转换计算,分别得到YUV格式中各像素点的像素值。

在一些实施例中,可通过GLSL中texture2D调用进行颜色采样,获得各像素点的RGB分量,此时即可计算出对应的YUV分量。

对于Y分量的计算,可采用公式:Y=0.95*(0.299*R 0.587*G 0.114*B)进行计算,也即,针对每一个像素点的Y分量,可分别采用与其对应的像素点的RGB分量值计算得到。

图5为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图三,可选地,步骤S303中,根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值,可以包括:

S501、根据第一像素区域中各像素点的坐标,确定第一像素区域的中心像素点,第一像素区域为各像素区域中任一像素区域。

而针对U分量的计算,可先根据每个U分量对应的像素区域中各像素点的坐标,确定中心像素点。

以如图4所示的第一像素区域为例,其中,第一像素区域中各像素点的坐标可直接获取,根据各像素点的坐标,即可计算得到第一区域的中心像素点。

S502、根据中心像素点的红绿蓝值与第一色度分量的值的第一映射关系,确定第一像素区域在第一色度分量上的像素值。

可选地,以第一像素区域对应于第一U分量为例,可采用公式:U=-0.169*R-0.331*G 0.5*B 0.502,确定第一像素区域在第一色度分量上的像素值,也即计算得到第一U分量的像素值。

其中,公式中的RGB分量可取第一像素区域的中心像素点的RGB分量。同理,对于每个像素区域,均可对应计算出相应的U分量的像素值。

图6为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图四,可选地,步骤S304中,根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值,可以包括:

S601、根据第一像素区域中各像素点的坐标,确定第一像素区域的中心像素点,第一像素区域为各像素区域中任一像素区域。

与上述U分量的计算类似,针对V分量的计算,可先根据每个V分量对应的像素区域中各像素点的坐标,确定中心像素点。

S602、根据中心像素点的红绿蓝值与第二色度分量的值的第二映射关系,确定第一像素区域在第二色度分量上的像素值。

可选地,以第一像素区域对应于第一V分量为例,可采用公式:V=0.5*R-0.419*G-0.081*B 0.502,确定第一像素区域在第二色度分量上的像素值,也即计算得到第一V分量的像素值。

其中,公式中的RGB分量可取第一像素区域的中心像素点的RGB分量。同理,对于每个像素区域,均可对应计算出相应的V分量的像素值。

图7为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图五,可选地,步骤S203中,根据第二数据格式的像素值生成新的渲染贴图之前,本申请的方法还可包括:

S701、根据原始的渲染贴图的尺寸参数,确定待创建的新的渲染贴图的尺寸参数,尺寸参数包括:宽度和高度,待创建的新的渲染贴图的高度为原始的渲染贴图的预设倍数,待创建的新的渲染贴图的宽度与原始的渲染贴图的宽度相同。

以图4所示的图像尺寸为例,假设原始的渲染贴图为4*4的比例,待创建的新的渲染贴图也即转换后的YUV格式渲染贴图,可根据原始的渲染贴图的尺寸,使用glTexImage2D调用创建一张新的渲染贴图(单通道材质对象),新的渲染贴图的尺寸参数可以包括:高度和宽度,高度可以为原始渲染贴图高度的1.5倍,宽度不变。

S702、根据待创建的新的渲染贴图的尺寸参数,创建贴图模板。

由于还未完成对像素数据格式的转换,还未得到对应的YUV格式数据,那么,此时,创建的即为贴图模板,贴图模板中不含像素数据。

S703、创建新的缓存空间,并将缓存空间与贴图模板进行绑定,新的缓存空间用于存储第二数据格式的像素值。

可选地,可通过glGenFramebuffers函数调用创建新的缓存空间,并通过glFramebufferTexture2D函数调用将新的缓存空间与贴图模板进行绑定。新的缓存空间用于存储转换之后的像素数据,也即存储转换得到的第二数据格式的像素值。

S704、将转换得到的第二数据格式的像素值存储至新的缓存空间中。

需要说明的是,上述将新的缓存空间与贴图模板进行绑定的目的是转换得到的YUV格式的像素值可以直接被从新的缓存空间中读取并存储至贴图模板中,以生成新的渲染贴图。

图8为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图六,可选地,步骤S203中,根据第二数据格式的像素值生成新的渲染贴图,可以包括:

S801、从新的缓存空间中读取第二数据格式的像素值。

可选地,由RGB格式转换得到的YUV格式的像素值可先存储在新的缓存空间中,从而可从新的缓存空间中读取YUV格式的像素值。

S802、将第二数据格式的像素值传入贴图模板中,得到新的渲染贴图。

在一些实施例中,可将读取的YUV格式的像素值传入贴图模板中的对应像素通道中,从而生成新的渲染贴图,新的渲染贴图则可以用于进行图像渲染,以渲染得到YUV数据格式的画面。

图9为本申请实施例提供的图形处理器的图像格式转换方法的流程示意图七,可选地,步骤S204中,采用新的渲染贴图进行图像渲染,生成当前帧画面对应的目标画面之后,本申请的方法还可包括:

S901、分别生成至少一帧画面对应的至少一帧目标画面。

上述步骤可用于对一帧画面进行像素格式的转换,得到的分别为一帧画面对应的转换后的目标画面。

S902、将至少一帧目标画面发送至用户终端。

可选地,得到的每帧目标画面可被实时的传输给用户终端,也即传输至用户终端的流媒体服务器,以在流媒体服务器侧进行多帧画面的封装,其中,可以是将连续的多帧画面进行封装,从而得到视频画面,得到的视频画面则可通过网络进行传输,从而在用户的浏览器端进行播放。

综上所述,本实施例提供的图形处理器的图像格式转换方法,包括:从中央处理器获取当前帧画面对应的原始的渲染贴图;从原始的渲染贴图中读取当前帧画面中各像素点的第一数据格式的像素值;将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,并根据第二数据格式的像素值生成新的渲染贴图;采用新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。本方法中,通过从中央处理器获取当前帧画面的原始渲染贴图,在图形处理器中进行图像画面数据格式的转换,基于图形处理器浮点数据计算的优势,以及特有的图形并行计算能力,能够处理大批量像素点的数据格式并行转换计算,从而有效的提高了图像数据格式转换的计算效率。

下述对用以执行本申请所提供的图形处理器的图像格式转换方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。

图10为本申请实施例提供的一种图形处理器的图像格式转换装置的示意图,该图形处理器的图像格式转换装置实现的功能对应上述方法执行的步骤。该装置可以理解为上述的图形处理器,如图10所示,该装置可包括:获取模块110、读取模块120、转换模块130、生成模块140;

获取模块110,用于从中央处理器获取当前帧画面对应的原始的渲染贴图;

读取模块120,用于从原始的渲染贴图中读取当前帧画面中各像素点的第一数据格式的像素值;

转换模块130,用于将各像素点的第一数据格式的像素值转换为第二数据格式的像素值,并根据第二数据格式的像素值生成新的渲染贴图;

生成模块140,用于采用新的渲染贴图进行渲染处理,生成当前帧画面对应的目标画面。

可选地,第一数据格式为红绿蓝格式,第二数据格式为亮度色度格式;转换模块130,具体用于:

根据红绿蓝值与亮度分量的值的映射关系,确定各像素点在亮度分量上的像素值;

将各像素点划分为多个像素区域;

根据各像素区域中的各像素点的红绿蓝值与第一色度分量的值的映射关系,确定各像素区域在第一色度分量上的像素值;

根据各像素区域中的各像素点的红绿蓝值与第二色度分量的值的映射关系,确定各像素区域在第二色度分量上的像素值。

可选地,转换模块130,具体用于

根据第一像素区域中各像素点的坐标,确定第一像素区域的中心像素点,第一像素区域为各像素区域中任一像素区域;

根据中心像素点的红绿蓝值与第一色度分量的值的第一映射关系,确定第一像素区域在第一色度分量上的像素值。

可选地,转换模块130,具体用于

根据第一像素区域中各像素点的坐标,确定第一像素区域的中心像素点,第一像素区域为各像素区域中任一像素区域;

根据中心像素点的红绿蓝值与第二色度分量的值的第二映射关系,确定第一像素区域在第二色度分量上的像素值。

可选地,该装置还包括:创建模块;

创建模块,用于根据原始的渲染贴图的尺寸参数,确定待创建的新的渲染贴图的尺寸参数,尺寸参数包括:宽度和高度,待创建的新的渲染贴图的高度为原始的渲染贴图的预设倍数,待创建的新的渲染贴图的宽度与原始的渲染贴图的宽度相同;

根据待创建的新的渲染贴图的尺寸参数,创建贴图模板;

创建新的缓存空间,并将缓存空间与贴图模板进行绑定,新的缓存空间用于存储第二数据格式的像素值;

将转换得到的第二数据格式的像素值存储至新的缓存空间中。

可选地,生成模块140,具体用于

从新的缓存空间中读取第二数据格式的像素值;

将第二数据格式的像素值传入贴图模板中,得到新的渲染贴图。

可选地,该装置还包括:发送模块;

生成模块140,还用于分别生成至少一帧画面对应的至少一帧目标画面;

发送模块,用于将至少一帧目标画面发送至用户终端。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。

需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。

图11为本申请实施例提供的一种电子设备的结构示意图,该设备可以是上述的图形处理器。

该设备可包括:处理器801、存储器802。

存储器802用于存储程序,处理器801调用存储器802存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

其中,存储器802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的方法中的各种步骤。

处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

再多了解一些

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

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

相关文献