PVRTC Texture Compression as seen on the iPhone

PVRTC is a block-based texture compression, that means that it works with groups of pixels. Problems mostly show up in high contrast areas where too many different extremes meet.

“It uses a representation that is based on the blending of two ‘low frequency’ signals using a high frequency but low precision modulation signal.” So when compressing, it takes your image, creates two small blurry versions and a modulation image. When putting it back together it calculates the value of each pixel like this: It scales the 2 small images back up and samples the 2 colors from the right location, and then decides which shade in between the 2 values to take based on the modulation image.

There’s an example on page 4 here, just look at Figure 3 and Figure 2:
(This is the doc I quoted above)

So the solution is very simple, isn’t it? Just try not to use more than 3 different colors in each 4×4 pixel block… ;]

Bookmark the permalink. Follow any comments here with the RSS feed for this post. Trackbacks are closed, but you can post a comment.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>