DXT is not Enough


- texture footprint matters for games
- retail moving to 17GB of DVDs
- not ok for distrib and consumers

Quality - Size - Decompression speed


This way is done
 - zip for DXT
 - Memcpy right to the GPU

Why do I care?
 - shouldn't keep full zip archive in memory
   -  only keep around what's streamed.
   Though to bin-sort assets in to proper archives
      - so instead, leave textures  to ??


IDTech5
 - RAGE different texture requirement
   - Tons more texture data
  - store as hyper compressed
  - convert to DXT runtime

Down-sides
   - very processor intensive
   - introduces 2x noise ( DCT )
   - DXT color quality is very low

Different idea
   - why we post-compress DXT data?
      - no error introduce
      - can store in memory hyper compressed
Data set
   - Random collection of images
   - some from games
   - some from public
    - some from img library
   -  includes DDS headers

DXT
   - orig 37 mb
   - dxt1 7.63 mb
   - dxt1 + zip 4.82
   - dx1 + zip(indv)  - 5.1

Tricks - lossy
 - De-interleaving:  let low together, hi together



DXTi ( de-interleaving)
 - Dxt1i 7.63
- Dxt1i 7.63

Huffman compression
 - ditionary system
 - AAAABBBC  56 bit
 - 0000 11 10  8 bit

DXTih ( huffman )



Delta encoding
  - creates duplicate symbols  for easy compression

DXT1ihd( + delta encoding )

Code book
    - code book of colors ( unique)
        - delta encode them
        - store 256 bit index into codebook
        - slide window



Expanding blocks

DX1Tihc8

Timings



CRUNCH codec!!!

-spend offiine compression

Comments

Popular posts from this blog

Drawing textured cube with Vulkan on Android

glTF loader for Android Vulkan

C++ unit testing & CI integration in GitHub (I/2)