图片压缩格式

1、DXT 压缩格式:only texture with width/heightbeing multiple of 4 can be compressed

DXT1压缩格式可以提供高达8:1的压缩比例,分辨率的宽高为4的倍数

DXT5压缩格式可以提供4:1的压缩比例

S3TC(DXTn/DXTC) - S3纹理压缩(S3TC)有很多变种格式(DXT1到DXT5),而且被支持的不够广泛.它支持4-bit或8-bit带alpha通道的RGB纹理.此格式可能被下列扩展名字所表示:

 

2、ETC压缩格式。onlytexture with width/height being multiple of 4 can be compressed

Ericsson 纹理压缩或 ETC 是由 Khronos 支持的开放标准,在移动平台中广泛采用。 它是一种为感知质量设计的有损算法,其依据是人眼对亮度改变的反应要高于色度改变。

ETC1格式是OpenGL ES图形标准的一部分,并且被所有的Android设备所支持。扩展名为:GL_OES_compressed_ETC1_RGB8_texture,不自持透明通道,所以仅能用于不透明纹理。

 

3、ATITC(ATC) - ATI 纹理压缩onlytexture with width/height being multiple of 4 can be compressed

 (ATITCor ATC)被设备广泛支持,它支持固定帧率的RGB纹理压缩,RGB纹理有无alpha通道都可以.本格式可能被多种OpenGL扩展名字所表示,比如:

GL_AMD_compressed_ATC_texture

GL_ATI_texture_compression_atitc

 

4、PVRTC- PowerVR 纹理压缩Only POT texture canbe compressed to PVRTC format2的幂次方图片

texturecompression (PVRTC) 也是被设备广泛支持,它支持2-bit和4-bit带或不带alpha通道的像素纹理.这种格式被下面的OpenGL扩展名字所表示:

GL_IMG_texture_compression_pvrtc

 

5、ASTC压缩格式destWidth %4 == 0 && destHeight % 4 == 0

自适应可伸缩纹理压缩(ASTC)是一种基于像素块的有损纹理压缩算法,最先进的纹理压缩之一

 

常见的压缩纹理格式

基于OpenGL ES的压缩纹理有常见的如下几种实现:

1)ETC1(Ericsson texture compression)

2)PVRTC (PowerVR texturecompression)

3)ATITC (ATI texturecompression)

4)S3TC (S3 texturecompression)

 

ETC1:

ETC1格式是OpenGL ES图形标准的一部分,并且被所有的Android设备所支持。
扩展名为: GL_OES_compressed_ETC1_RGB8_texture,不支持透明通道,所以仅能用于不透明纹理。

当加载压缩纹理时,<internal format>参数支持如下格式:
    GL_ETC1_RGB8_OES(RGB,每个像素0.5个字节)

PVRTC:

支持的GPU为ImaginationTechnologies的PowerVR SGX系列。

OpenGL ES的扩展名为:GL_IMG_texture_compression_pvrtc。

当加载压缩纹理时,<internal format>参数支持如下几种格式:

GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG (RGB,每个像素0.5个字节)

GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG (RGB,每个像素0.25个字节)

GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG (RGBA,每个像素0.5个字节)

GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG (RGBA,每个像素0.25个字节)

 

ATITC:(ATC)

支持的GPU为Qualcomm的Adreno系列。

支持的OpenGL ES扩展名为:GL_ATI_texture_compression_atitc。

当加载压缩纹理时,<internal format>参数支持如下类型的纹理:

GL_ATC_RGB_AMD (RGB,每个像素0.5个字节)

GL_ATC_RGBA_EXPLICIT_ALPHA_AMD (RGBA,每个像素1个字节)

GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD (RGBA,每个像素1个字节)

 

S3TC

也被称为DXTC,在PC上广泛被使用,但是在移动设备上还是属于新鲜事物。支持的GPU为NVIDIA Tegra系列。

OpenGL ES扩展名为:

GL_EXT_texture_compression_dxt1和GL_EXT_texture_compression_s3tc。

当加载压缩纹理时,<internal format>的参数有如下几种格式:

GL_COMPRESSED_RGB_S3TC_DXT1 (RGB,每个像素0.5个字节)

GL_COMPRESSED_RGBA_S3TC_DXT1 (RGBA,每个像素0.5个字节)

GL_COMPRESSED_RGBA_S3TC_DXT3 (RGBA,每个像素1个字节)

GL_COMPRESSED_RGBA_S3TC_DXT5 (RGBA,每个像素1个字节)

 

由此可见,Mali系列GPU只支持ETC1格式的压缩纹理,而且该纹理不支持透明通道,有一定局限性。

以上压缩纹理格式每个像素大小相对A8R8G8B8格式的比例,最高压缩比是16:1,最低压缩比是4:1对于减小纹理的数据容量有明显作用,相应在显存带宽上也有明显优势,从而提高游戏的运行效率(此特性没有绝对数值,根据每个游戏的用法和瓶颈点不同而有差别)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值