了解图像文件压缩格式

时间:2018-09-09 12:41:34

标签: image compression

我目前正在尝试了解/反向工程游戏的纹理文件格式,该游戏即将停产,以便在关闭游戏之前“抢救”尽可能多的数据。

纹理文件本身实际上是一种带有标题的容器格式,然后是许多不同格式的每个Mip级别的数据。标头指定在文件中使用27种可能的格式中的哪一种。它们大多数都非常简单(纯DXTn,未压缩的ARGB,单通道,立方体纹理等),但是我在第一种可能的格式上遇到了麻烦,并且想知道是否有人知道适合它的算法。

使用Intel GPA,我能够弄清楚那些纹理最终以DXT5(BC3_UNORM)的形式出现,因此我假定它将文件中的DXT5压缩,因为它的{{ 1}}。

我现在暂时要做的其他事情:

  • 压缩率不是固定的,相同尺寸的纹理具有明显不同的文件大小
  • 只有使用此格式时,标题中才会显示其他字段。一个显然是重复的Mip级别数,另一个是4个3字节值,通常是以下模式:unknown format -> ARGB -> DXT5,另一个经常发现的模式是4B 00 00 4B 00 00 4B 00 00 4B 00 00
  • 1x1 mip层似乎总是6个字节(用5C 00 00 5C 00 00 4B 00 00 4B 00 00填充以填充16个字节)
  • 1x1图片中没有通用的前缀,因此它们的值完全不同

我曾经认为可能是对DXT5进行了压缩处理,但是我不确定标头中的其他5个32位值是否足以表示该格式的信息,或者不确定压缩数据的外观。

有人可以通过某种算法从上方识别模式吗?

0 个答案:

没有答案