I420格式纹理图像的转换方法、存储介质、电子设备及系统技术方案

技术编号:19826109 阅读:24 留言:0更新日期:2018-12-19 16:17
本发明专利技术公开了一种I420格式纹理图像的转换方法、存储介质、电子设备及系统,涉及纹理图像转换领域。该方法的步骤为:根据需要转换的I420格式的纹理图像,创建3幅像素格式相同的输入纹理图像:PY、PU和PV;根据I420格式的纹理图像创建输出纹理图像;确定PY的Y像素值,PU的U像素值,PV的V像素值;根据Y像素值、V像素值和U像素值,计算输出纹理图像的R、G和B通道值;将A、R、G和B通道值赋值至输出纹理图像。本发明专利技术能够通过GPU执行工作量最大的格式转换操作,显著降低了CPU的工作压力和系统内存,进而大幅度增大像素格式转换时的数据传输带宽,即缩短了像素格式转换的计算过程,提高了转换效率。

【技术实现步骤摘要】
I420格式纹理图像的转换方法、存储介质、电子设备及系统
本专利技术涉及纹理图像转换领域,具体涉及一种I420格式纹理图像的转换方法、存储介质、电子设备及系统。
技术介绍
Direct3D10(图形加速接口)在WIN7系统下显示I420格式的纹理图像时,需要先将I420格式的图像转换为A8R8G8B8格式的图像。I420格式是YUV(颜色编码方法)格式的一种,YUV格式分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV格式主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV格式传输数据占用的频宽极少。YUV码流的存储格式与其采样的方式密切相关,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0。YUV格式有两大类:planar平面格式和packed打包格式。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U和V是连续交错存储的。I420是YUV4:2:0采样格式中的一种格式,在其存储格式中是按三个平面进行存储像素的,第一个平面是Y像素平面,第二个平面是U像素平面,第三个平面是V像素平面。假设某幅I420格式的图像的宽是W,高是H;那么Y像素平面的宽是W,高是H,Y像素平面中每个像素大小是1字节,在不考虑内存对齐的情况下,那么Y平面所有像素所占的字节大小就是W·H。而U像素平面的宽是W/2,高是H/2,U像素平面中每个像素大小同样是1字节,同样在不考虑内存对齐的情况下,那么U平面所有像素所占的字节大小就是W/2·H/2=W·H/4。而V像素平面的排列与U像素平面一致,宽同样是W/2,高同样是H/2,其所占的字节大小同样是W·H/4。由此可知,整幅I420格式的图像所占的总内存大小就是Y平面像素的内存大小加上U、V平面所占的内存大小,利用上面的公式就是W·H+W·H/4+W·H/4也就是W·H·3/2个字节大小。A8R8G8B8格式是RGB颜色格式(Red、Green、Blue,红、绿、蓝三色色彩格式)的一种,A8R8G8B8表示该RGB图像共有4个通道:A(Alpha,透明度)通道,R(Red,红色)通道,G(Green,绿色)通道,B(Blue,蓝色)通道;每个通道占8位,也就是1个字节大小,即该图像中每个像素所占的字节大小就是4,所以一幅宽度为W,高度为H的此种格式图像,其所占的内存大小为W·H·4个字节。目前,将I420格式的图像转换为A8R8G8B8格式的图像的方法一般为:利用转换函数,CPU在系统内存中将I420格式的图像转换为A8R8G8B8的图像。由于CPU是计算机的工作核心,因此CPU进行像素格式转换的同时,必然会进行其他工作;也就是说像素格式转换的数据传输带宽难以在CPU上达到最大,进而延长了像素格式转换的计算过程,降低了像素格式转换的转换效率;尤其当需要转换的图像的宽高非常大时,转换效率更为低下。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:如何缩短纹理图像的格式由I420转换为A8R8G8B8时的计算过程。本专利技术能够通过GPU执行工作量最大的格式转换操作,显著降低了CPU的工作压力和系统内存,进而大幅度增大像素格式转换时的数据传输带宽,即缩短了像素格式转换的计算过程,提高了转换效率。为达到以上目的,本专利技术提供的I420格式纹理图像的转换方法,包括以下步骤:步骤A:根据需要转换的I420格式的纹理图像,创建3幅相同像素格式的输入纹理图像:PY、PU和PV;PY用于承载I420格式的纹理图像的Y像素平面,PU用于承载I420格式的纹理图像的U像素平面,PV用于承载I420格式的纹理图像的V像素平面;根据I420格式的纹理图像,创建用于承载A8R8G8B8格式的输出纹理图像,转到步骤B;步骤B:将PY、PU和PV输入至GPU;GPU通过HLSL语言,确定PY在坐标(i,j)处的Y像素值、PU在坐标(i,j)处的U像素值、以及PV在坐标(i,j)处的V像素值;根据Y像素值和V像素值,计算输出纹理图像的R通道值target.r;根据Y像素值、V像素值和U像素值,计算输出纹理图像的G通道值target.g;根据Y像素值和U像素值,计算输出纹理图像的B通道值target.b,输出纹理图像的A通道值target.a自定义设置,转到步骤C;步骤C:GPU将target.r、target.g、target.b和target.a,赋值至步骤A中所述A8R8G8B8格式的输出纹理图像。本专利技术提供的存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述I420格式纹理图像的转换方法。本专利技术提供的电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述I420格式纹理图像的转换方法。本专利技术提供的I420格式纹理图像的转换系统,包括纹理图像创建模块、像素格式转换模块和纹理图像显示模块;纹理图像创建模块用于:根据需要转换的I420格式的纹理图像,创建3幅相同像素格式的输入纹理图像:PY、PU和PV;PY用于承载I420格式的纹理图像的Y像素平面,PU用于承载I420格式的纹理图像的U像素平面,PV用于承载I420格式的纹理图像的V像素平面;根据I420格式的纹理图像,创建用于承载A8R8G8B8格式的输出纹理图像,向像素格式转换模块发送像素格式转换信号;像素格式转换模块用于:收到像素格式转换信号后,将PY、PU和PV输入至GPU;控制GPU通过HLSL语言,确定PY在坐标(i,j)处的Y像素值、PU在坐标(i,j)处的U像素值、以及PV在坐标(i,j)处的V像素值;根据Y像素值和V像素值,计算输出纹理图像的R通道值target.r;根据Y像素值、V像素值和U像素值,计算输出纹理图像的G通道值target.g;根据Y像素值和U像素值,计算输出纹理图像的B通道值target.b,输出纹理图像的A通道值target.a自定义设置,向纹理图像显示模块发送纹理图像显示信号;纹理图像显示模块用于:收到纹理图像显示信号后,控制GPU将target.r、target.g、target.b和target.a,赋值至纹理图像创建模块创建的A8R8G8B8格式的输出纹理图像。与现有技术相比,本专利技术的优点在于:本专利技术并未采用现有技术中通过CPU进行像素格式转换方法,而是根据HLSL语言(HighLevelShaderLanguage,高阶着色器语言)结合自主研发的转换算法,在GPU(GraphicsProcessingUnit,图形处理器)上纹理图像的格式由I420转换为A8R8G8B8。因此,本专利技术能够通过GPU执行工作量最大的格式转换操作,显著降低了CPU的工作压力和系本文档来自技高网
...

【技术保护点】
1.一种I420格式纹理图像的转换方法,其特征在于,该方法包括以下步骤:步骤A:根据需要转换的I420格式的纹理图像,创建3幅像素格式相同的输入纹理图像:PY、PU和PV;PY用于承载I420格式的纹理图像的Y像素平面,PU用于承载I420格式的纹理图像的U像素平面,PV用于承载I420格式的纹理图像的V像素平面;根据I420格式的纹理图像,创建用于承载A8R8G8B8格式的输出纹理图像,转到步骤B;步骤B:将PY、PU和PV输入至GPU;GPU通过HLSL语言,确定PY在坐标(i,j)处的Y像素值、PU在坐标(i,j)处的U像素值、以及PV在坐标(i,j)处的V像素值;根据Y像素值和V像素值,计算输出纹理图像的R通道值target.r;根据Y像素值、V像素值和U像素值,计算输出纹理图像的G通道值target.g;根据Y像素值和U像素值,计算输出纹理图像的B通道值target.b;输出纹理图像的A通道值target.a自定义设置,转到步骤C;步骤C:GPU将target.r、target.g、target.b和target.a,赋值至步骤A中所述A8R8G8B8格式的输出纹理图像。

【技术特征摘要】
1.一种I420格式纹理图像的转换方法,其特征在于,该方法包括以下步骤:步骤A:根据需要转换的I420格式的纹理图像,创建3幅像素格式相同的输入纹理图像:PY、PU和PV;PY用于承载I420格式的纹理图像的Y像素平面,PU用于承载I420格式的纹理图像的U像素平面,PV用于承载I420格式的纹理图像的V像素平面;根据I420格式的纹理图像,创建用于承载A8R8G8B8格式的输出纹理图像,转到步骤B;步骤B:将PY、PU和PV输入至GPU;GPU通过HLSL语言,确定PY在坐标(i,j)处的Y像素值、PU在坐标(i,j)处的U像素值、以及PV在坐标(i,j)处的V像素值;根据Y像素值和V像素值,计算输出纹理图像的R通道值target.r;根据Y像素值、V像素值和U像素值,计算输出纹理图像的G通道值target.g;根据Y像素值和U像素值,计算输出纹理图像的B通道值target.b;输出纹理图像的A通道值target.a自定义设置,转到步骤C;步骤C:GPU将target.r、target.g、target.b和target.a,赋值至步骤A中所述A8R8G8B8格式的输出纹理图像。2.如权利要求1所述的I420格式纹理图像的转换方法,其特征在于,步骤B中:所述target.r=Y+1.402·(V–0.5);所述target.g=Y–0.344·(U–0.5)–0.714·(V–0.5);所述target.b=Y+1.772(U–0.5);所述target.a=1.0。3.如权利要求1或2所述的I420格式纹理图像的转换方法,其特征在于:步骤B中所述i和j均为归一化的浮点值。4.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至3任一项所述的方法。5.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:处理器执行计算机程序时实现权利要求1至3任一项所述的方法。6.一种I420格式纹理图像的转换系统,其特征在于:该系统包括纹理图像创建模块、像素格式转换模块和纹理图像显示模块;纹理图像创建模块用于:根据需要转换的I420格式的纹理图像,创建3幅像素格式相同的输入纹理图像:PY、PU和PV;PY用于承载I420...

【专利技术属性】
技术研发人员:杨亮张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1