阐述手机图像的贴图压缩技术标准及作用

来源:互联网 发布:手绘服装设计教程软件 编辑:程序博客网 时间:2024/05/16 04:48

贴图压缩技术不断发展,导致压缩品质和效率大大提高,从而使手机图像在2bpp和4bpp的分辨率下也能呈现无比伦比的效果,同时降低手机系统内存的使用率和GPU处理压力。

贴图在手机和电脑图像中无处不在。贴图使大量应用如游戏或导航应用显得更加逼真。智能机、平板和便携游戏机用户对图像品质、加载时间的要求比较高。一般来说,为了提高整体品质,贴图对分辨率的要求会越来越高。这意味着计算机系统必须能够正确结合特性、原图像、计算性能和软件工具,从而有效地利用所有可用资源。

内存、品质、电量、性能:贴图压缩的四个关键

现在的许多手机应用可以提供电脑级品质的图像,因此大多数开发者已经开始关注将支持OpenGL ES作为嵌入式设备的主要标准。这意味着必须使用占用更多内存和大量数据空间的细节贴图。开发者了解手机游戏市场的需求,自然会选择压缩贴图。

电量有限始终是嵌入式设备的主导因素。软件开发者和硬件工程师应该知道,内存访问是除了显示以外电量消耗的最重要原因。在PowerVR的基于拼图的延迟渲染的帮助下,Imagination已经成功地让大多数处理工作保持在芯片上,而且图像处理流程架构已经被优化至贴图解码水平,从而为行业提供最先进、最通用的贴图压缩执行办法。

现代计算平台有共享的、统一的内存架构。多核CPU、多线程GPU和其他处理单元都会争夺RAM资源,所以内存带宽对手机非常重要。贴图压缩留下的贴图痕迹更少,因此从主内存到GPU的传输量就减少了,这样渲染或其他计算任务(如用OpenCL做游戏物理或图像处理)完成的速度就会更快。

与台式电脑相比,嵌入式设备的存储器选项是相当有限的。贴图压缩不只减少应用的内存痕迹,而且能减少游戏对智能手机和平板台的存储占用量。因为内存和存储量越来越重要,用户更加期望游戏运行的同时还能处理多个任务。虽然文件压缩方案如PNG的尺寸通常更小,例如压缩后的贴图如PVRTC不必解压成完整大小,而应用仍然可以运行。另一个优势是,压缩后的贴图通常可以通过zip或其他文件压缩方案再进一步压缩。

PVRTC2_PVRTC_ETC1_ETC2(from gamasutra)

PVRTC2_PVRTC_ETC1_ETC2(from gamasutra)

(最常用的贴图压缩格式是:ETC1, ETC2, BC1, PVRTC和PVRTC2)

最后,对手机设备而言,视觉效果是另一个决定性因素。因为渲染系统如GPU可以接受有损压缩,大部分贴图压缩算法与像素块的固定尺寸的某些分层形式有关。但随着高分辨率显示成为便携设备的共同特征,在图像品质和压缩因素之间取得平衡成为编写优化手机的应用的必要步骤。

为什么使用贴图压缩?

核心OpenGL ES 2.0规格没有指定的压缩贴图格式,且支持加载多种压缩贴图数据。因为越来越应用支持在多个操作系统中(游戏邦注:包括iOS、Android、BlackBerry 10、Windows 8)中运行,所以必须使用统一的贴图压缩格式,以保证10亿部以上的设备上的体验操持一致。因为所有的PowerVR Series5/5XT和Series6都支持以上贴图压缩标准,所以开发者可以得到双重好处:相比于基于块的压缩技术,视觉效果大大提升,同时内存痕迹大大减少。

即使基于块的方式如S3TC和ETC1不能保持矩形区的连续性,但有其他格式可以解决这些问题,从而产生更好的视觉效果。例如,PVRTC不会把贴图当作独立的贴图块,而是将贴图显示为一组低分辨率图像。这些高级图像由一个完整分辨率但低精度、调制的图像以像素为基础混合起来

PVRTC2以我们之前的贴图压缩标准PVRTC为基础,但添加了若干重要改进如NPOT和贴图集支持。因此,如果你的目标平台有Series5XT或Series6 GPU,你应该使用PVRTC2,这样效果会比PVRTC更好得多。

NPOT(非2次方)贴图是与Series5XT or Series6 GPU一起引入的,它取消了象素表面必须匹配2次方的要求,特别是对于大型贴图:如1600×1200贴图本需要2048×2048象素表面,这会浪费大量内存。对于经常使用许多小贴图的应用,使用来自贴图集的子贴图可以更有效地使用图形硬件的资源。基于贴图的游戏非常适合使用贴图集。

手机贴图压缩类型的对比

目前有6种比较常见的、OpenGL ES支持的压缩类型:

- PVRTC,Imagination广泛运用的PowerVR贴图压缩

- PVRTC2,最近升级的PowerVR贴图压缩

- ETC1(Ericsson贴图压缩)和ETC2/EAC(用ETC1反向兼容,强制OpenGL ES 3.0图像标准)

- ASTC (自适应伸展贴图压缩), OpenGL和OpenGL ES新的可选择扩展

- ATITC (ATI贴图压缩)

- S3TC(S3贴图压缩)也叫作DXTn、DXTC或BCn

以下是结果:

PVRTC2_4bpp_2bpp_ETC1_ETC2_BC3(from gamasutra)

PVRTC2_4bpp_2bpp_ETC1_ETC2_BC3(from gamasutra)

PVRTC_ATITC_ETC1_BC1(from gamasutra)

PVRTC_ATITC_ETC1_BC1(from gamasutra)

贴图压缩技术可以提高缓存使用的效率。当在最后的渲染过程有需要时,PowerVR架构只解压贴图,从而极大减少芯片上的带宽和处理压力。这就是为什么贴图压缩格式是并且始终是所有手机图像架构的关键部分。

0 0
原创粉丝点击