Current Generation Hardware Speculation with a Technical Spin [post GDC 2020] [XBSX, PS5]

Status
Not open for further replies.

http://www.radgametools.com/oodletexture.htm

Reduces the size of block-compressed BC1-BC7 textures for GPUs. Oodle Texture RDO can reduce texture file sizes by up to 50%.

Oodle Texture Rate Distortion Optimization (RDO), sometimes known as "super compression", lets you encode BCN textures with your choice of size-quality tradeoff. Oodle Texture RDO searches the space of possible ways to convert your source texture into BCN, finding encodings that are both high visual quality and smaller after compression. RDO can often find near lossless encodings that save 10% in compressed size, and with only small visual difference can save 20-50%.

 
Last edited by a moderator:
You're assuming that Sony didn't already know about this and factor it into their calculations when stating 8-9GB/s. It stands to reason that they would have already known about it at the time of the PS5 reveal given the statement from the tweet "Sony has been evaluating Oodle Texture closely during dev".


Ofc, he doesn't know whether it has been factored or not. But he thinks it hasn't.

Edit: From his blog
https://cbloomrants.blogspot.com/2020/06/oodle-texture-slashes-game-sizes.html

For an example of what Oodle Texture can do, on a real game data test set :

127 MB block compressed GPU textures, mix of BC1-7

78 MB with zip/zlib/deflate

70 MB with Oodle Kraken

40 MB with Oodle Texture + Kraken

Modern games use a huge amount of BCN texture data. Many games are reaching 100 GB, and 80% or more of that size is in BCN textures. Shrinking the BCN textures to half their previous compressed size will make a dramatic difference in game sizes. While Kraken is a huge technological advance over zip/zlib, it only saved 8 MB in the example above (this is partly because BCN texture data is difficult for generic compressors to work with), while Oodle Texture saved an additional 30 MB, nearly 4X more than Kraken alone. The size savings possible with Oodle Texture are huge, much bigger than we've seen from traditional compressors, and you don't need to accept painful quality loss to get these savings.
 
Last edited by a moderator:
Looks like a very promising Tech.
https://cbloomrants.blogspot.com/2020/06/oodle-texture-slashes-game-sizes.html

For an example of what Oodle Texture can do, on a real game data test set :

127 MB block compressed GPU textures, mix of BC1-7

78 MB with zip/zlib/deflate

70 MB with Oodle Kraken

40 MB with Oodle Texture + Kraken

Modern games use a huge amount of BCN texture data. Many games are reaching 100 GB, and 80% or more of that size is in BCN textures. Shrinking the BCN textures to half their previous compressed size will make a dramatic difference in game sizes. While Kraken is a huge technological advance over zip/zlib, it only saved 8 MB in the example above (this is partly because BCN texture data is difficult for generic compressors to work with), while Oodle Texture saved an additional 30 MB, nearly 4X more than Kraken alone. The size savings possible with Oodle Texture are huge, much bigger than we've seen from traditional compressors, and you don't need to accept painful quality loss to get these savings.
 
How does this fit in with the hardware decompression? The decompressor is able to accommodate a new type of compression within Kraken?
 
How does this fit in with the hardware decompression? The decompressor is able to accommodate a new type of compression within Kraken?

To me it seems to "re-organize" the texture file content so that Zlib and Kraken etc will compress it better ergo they can also decompress it. But the "re-organized" BCn file is still a valid BCn file for the GPU.
 
So Oodle Texture + Kraken compresses down to ~32% the size of the already-compressed texture files that the GPU uses, and the PS5's hardware already supports Oodle texture.
And all PS5 devkits have an Oodle license in them, purchased by Sony, so there's very little reason for 3rd party devs not to use Oodle Texture + Kraken.

Now we'd have to know if the PS5's hardware decodes Oodle Texture without creating an overhead to the Kraken decompressor.
If it does, this increases the effective texture throughput towards 5.5GB / 0.32 = 17.46GB/s.

Seems weird that Cerny wouldn't mention this in the Road to PS5 though.


This is also another factor that contain the growth of game sizes. Not only are the repeated assets gone, but textures now occupy a little more than half the size they had with zlib compression.
 
So Oodle Texture + Kraken compresses down to ~32% the size of the already-compressed texture files that the GPU uses, and the PS5's hardware already supports Oodle texture.
And all PS5 devkits have an Oodle license in them, purchased by Sony, so there's very little reason for 3rd party devs not to use Oodle Texture + Kraken.

Now we'd have to know if the PS5's hardware decodes Oodle Texture without creating an overhead to the Kraken decompressor.
If it does, this increases the effective texture throughput towards 5.5GB / 0.32 = 17.46GB/s.

Seems weird that Cerny wouldn't mention this in the Road to PS5 though.


This is also another factor that contain the growth of game sizes. Not only are the repeated assets gone, but textures now occupy a little more than half the size they had with zlib compression.

 
So Oodle Texture + Kraken compresses down to ~32% the size of the already-compressed texture files that the GPU uses, and the PS5's hardware already supports Oodle texture.
And all PS5 devkits have an Oodle license in them, purchased by Sony, so there's very little reason for 3rd party devs not to use Oodle Texture + Kraken.

Now we'd have to know if the PS5's hardware decodes Oodle Texture without creating an overhead to the Kraken decompressor.
If it does, this increases the effective texture throughput towards 5.5GB / 0.32 = 17.46GB/s.

Seems weird that Cerny wouldn't mention this in the Road to PS5 though.


This is also another factor that contain the growth of game sizes. Not only are the repeated assets gone, but textures now occupy a little more than half the size they had with zlib compression.
Very good feature...
 
So is Oodle simply, or cleverly, modifying the original texture to allow Kraken to compress more efficiently, or is it another level of compression?
 
To me it seems to "re-organize" the texture file content so that Zlib and Kraken etc will compress it better ergo they can also decompress it. But the "re-organized" BCn file is still a valid BCn file for the GPU.

Mmm... so this could help with memory bandwidth as well? Or only for moving files from the SSD to memory?

Even if they can achieve a 10-15% reduction on average in game size it would be pretty awesome. That SSD is going to need all the optimization it can get.
 
Mmm... so this could help with memory bandwidth as well? Or only for moving files from the SSD to memory?

Even if they can achieve a 10-15% reduction on average in game size it would be pretty awesome. That SSD is going to need all the optimization it can get.

According to the twitter posts it saves everything. Memory footprint, bandwidth; so it pretty much seems like a win win for games using it
 

Ofc, he doesn't know whether it has been factored or not. But he thinks it hasn't.

Edit: From his blog
https://cbloomrants.blogspot.com/2020/06/oodle-texture-slashes-game-sizes.html

That's a really interesting blog, thanks for the link.

Just looking into the numbers a bit more though, I'm still not convinced that Sony's 8-9 GB/s didn't already account for at least some form of RDO compression. RDO isn't brand new with Oodle Texture Compression, and has been around for some time (see: Crunch).

So Sony will have been fully aware of this method of further decreasing BCn texture size long before the PS5 conference. Heck it may even be that the PS4 datasets used for the Kraken evaluation mentioned above were already using RDO, just not Oodle RDO.

Note from the blog posts that BC7 which is apparently being used more an more in modern games thanks to it's high quality compresses very poorly with Kraken alone. Usually to above 90% of its original size. And given textures make up 80+% of game data, Sony's claim of getting their data down to around 60% of original size doesn't square with that. Granted the one example given in the blog would equal that, but that example itself is contradicted by the numerous texture examples provided here, so may be a best case scenario and unrepresentative of next gen games which Sony may be expecting to lean more heavily on BC7.

I guess we'll have to wait and see if Sony revises up their numbers or not, but IMO it would have been pretty remiss of them not to include RDO based estimates in the original reveal when they would have been both aware of them, and at that point, likely at the very least, well on their way to signing the agreement to use RAD Games implementation.
 
8-9 GB/s with up to 22 GB/s. 8-9 GB/s is less than <2x doubling the 5.5 GB/s raw max speed, which is very in keeping with general data compression averages. Just taking the above data:

127 MB block compressed GPU textures, mix of BC1-7
70 MB with Oodle Kraken​

70/127 = 0.55

5.5 gb/s / 0.55 = 10 GB/s.

So that 8-9 GB/s is very in keeping with basic Kraken compression.

40 MB with Oodle Texture + Kraken
40/127 = 0.31

5.5 / 0.31 = 17 GB/s

So possibly the texture repacking is included with Cerny's peak 22 GB/s figure, or that figure is for best case compression like text files. It certainly doesn't look like the 8-9 GB/s figure can include texture repacking as that's in line with the basic Kraken level compression ratio.
 
8-9 GB/s with up to 22 GB/s. 8-9 GB/s is less than <2x doubling the 5.5 GB/s raw max speed, which is very in keeping with general data compression averages. Just taking the above data:

127 MB block compressed GPU textures, mix of BC1-7
70 MB with Oodle Kraken​

70/127 = 0.55

5.5 gb/s / 0.55 = 10 GB/s.

So that 8-9 GB/s is very in keeping with basic Kraken compression.

40 MB with Oodle Texture + Kraken
40/127 = 0.31

5.5 / 0.31 = 17 GB/s

So possibly the texture repacking is included with Cerny's peak 22 GB/s figure, or that figure is for best case compression like text files. It certainly doesn't look like the 8-9 GB/s figure can include texture repacking as that's in line with the basic Kraken level compression ratio.

But compare those compression rates, with the rates RAD Games supplies here for Oodle Textre + Kraken. There's a massive difference:

http://www.radgametools.com/oodletextureexamples.htm

These examples would support the 8-9GB/s already accounting for RDO.
 
Status
Not open for further replies.
Back
Top