Results 1 to 4 of 4

Thread: Oodle Texture compression

  1. #1
    Member SolidComp's Avatar
    Join Date
    Jun 2015
    Location
    USA
    Posts
    370
    Thanks
    133
    Thanked 57 Times in 40 Posts

    Oodle Texture compression

    Charles Bloom posted about Oodle's new texture compression last week. It looks interesting. Did someone say that Oodle compression was used in the upcoming Sony PS5? I thought I saw something about its disk IO being crazy fast, and I wonder if the compression was part of the reason why.

    A big part of the Oodle Texture story seems to be Rate Distortion Optimization (RDO):

    For distortion, you could easily just measure the squared distance error of the encoding (aka RMSE, SSD or PSNR), but that's not actually what we care about. We care about the visual quality of the block, and the human eye does not work like RMSE, it sees some errors as objectionable even when they are quite numerically small. For RDO BCN we need to be able to evaluate distortion millions of times on the possible encodings, so complex human-visual simulations are not possible. We use a very simple approximation that treats errors as more significant when they occur in smooth or flat areas, because those will be more jarring to the viewer; errors that occur in areas that were already noisy or detailed will not be as noticeable, so they get a lower D score. Getting this right has huge consequences, without a perceptual distortion measure the RDO can produce ugly visible blocking artifacts even when RMSE is quite low.
    This randomly reminds me that I don't know why we don't use GPU texture formats as our mainstream image formats, since they compress a lot better. (By the way, JPEG-XL looks a lot like Bloom's description of the ideal JPEG successor from a couple of years ago.)

  2. #2
    Member
    Join Date
    May 2020
    Location
    Berlin
    Posts
    76
    Thanks
    21
    Thanked 25 Times in 20 Posts
    Hardware-based compression

    Compression is a huge part of the PlayStation 5's data management. The console will have a powerful new compression system that essentially shrinks data and reduces the overall install size of data on your SSD. So not only will games have less redundant assets, they can be smaller, too.

    Like the Xbox Series X, the PlayStation 5 will have its own hardware-based compression block that's situated on the 7nm SoC.

    Basically this means a section on the console's main chip will be dedicated to decompressing data. This will help the CPU in decompressing the compressed data from downloads, installs, and discs.

    Decompression is very taxing on a CPU and causes lots of overhead, so this will free up the CPU to other in-game tasks like higher frame rates.

    The PS5 uses a derivative of RAD Tool's potent Kraken decompression technology, which offers 10% better compression--that's about 10% more installations or data on a Blu-ray disc. Without the dedicated decompressor, it would take 9 Zen 2 CPU cores to decompress Kraken-level data.
    Source: https://www.tweaktown.com/news/71340...ech/index.html

  3. #3
    Member
    Join Date
    May 2020
    Location
    Berlin
    Posts
    76
    Thanks
    21
    Thanked 25 Times in 20 Posts
    Somehow I missed Charles' article about the Kraken compression: cbloom rants: How Oodle Kraken and Oodle Texture supercharge the IO system of the Sony PS5

    Teaser:
    Click image for larger version. 

Name:	image.png 
Views:	68 
Size:	81.6 KB 
ID:	8212

    Edit: This blog posting was even cited in wccftech's article in the other recent Oodle related thread.

  4. #4
    Member
    Join Date
    Dec 2015
    Location
    US
    Posts
    62
    Thanks
    2
    Thanked 124 Times in 38 Posts
    We don't use GPU texture formats as our mainstream image formats because they're really not great in terms of either quality or compression ratio.

    They're not terrible, but they typically target either 4 (BC1, BC4) or 8 (BC2-3, BC5-7) bits per pixel, which is not exactly spectacular, and they often have visible artifacts at those rates.

    GPU texture formats are the way they are because they need to support random access and fit, depending on the details of the GPU sampler design, into either their main memory load pipeline or their cache miss pipeline. Fixed (pow2) block size is essential for quick random access without needing extra memory accesses to locate the block data, and then decoding the values for a pixel after the memory fetch returns should ideally fit into a single-digit or low double-digit number of clock cycles.

Similar Threads

  1. Oodle Lossless Image compression
    By skal in forum Data Compression
    Replies: 5
    Last Post: 25th September 2018, 12:02
  2. "Open" texture compression
    By Ivan in forum Data Compression
    Replies: 0
    Last Post: 29th November 2017, 14:48
  3. State of the art for texture compression ?
    By boxerab in forum Data Compression
    Replies: 7
    Last Post: 9th September 2017, 17:47
  4. texture tool compressor
    By GOZARCK in forum Data Compression
    Replies: 4
    Last Post: 13th November 2013, 12:06
  5. Replies: 5
    Last Post: 23rd July 2012, 17:44

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •