还是拯救了quake3的强银J.M.P. van Waveren写的。
http://software.intel.com/file/17248/
主要介绍了压缩解压缩的算法,和streaming没有太大关系,这个结合上一个id的virtual tex,可以理解他们为什么研究这个了。
而且这个就和transcode那一步对应的。
基本数据一目了然:
所以把数据存成jpeg系列,然后load进来,在解压成dxt的texture,对于virtual texture这种巨耗带宽的技术有着相当大的意义。
jpeg的压缩基本算法挺有意思的,首先把rgb转到另一个color space,进而将亮度(luma)和颜色(chroma)分开。
因为人眼对亮度比较敏感,而对于颜色的高频数据不敏感,所以可以滤掉chroma的高频部分,保留低频部分,那么低频部分就是
数据量小多了。
这个和spherical harmonics保存低频光照信息很像。
这也是jpeg能在图像质量不错的基础上保持高压缩比的原因。
然后是个名词:DCT----Discrete Cosine Transform。
这个用来将一个kernel(比如8*8的block)的颜色数据转到一个frequency map,然后将高频数据去掉。
id siggraph09的文章里面直接就用DCT来代表jpeg这样的贴图压缩了。
在后面就是讲有simd指令做高效的解压缩了,这个就不记了,用的时候直接查就好。
另外cuda上倒是有解压缩的sample。