一般に、圧縮されていない画像データは 24bpp (RGB) または 32bpp (RGBA) のフラットレートです。PVRTC は 4bpp (または 2bpp) フラットレートであるため、これに比べて 6 または 8 (12 または 16) 倍の圧縮があります。
グラフィックス ハードウェアがテクスチャをネイティブに使用するための要件は、ハードウェアがテクスチャの形式にランダムにアクセスできる必要があることです。PVRTC はこの種の形式であり、PNG はそうではありません。これが、PNG がより高い圧縮率を達成できる理由です。PVRTC は実行時の展開形式です。PNG は保存形式です。
PVRTC 圧縮は、一度に 4x4 ブロックのピクセルに対してフラット ビット レートで実行されるため、特定のテクセル値を取得するために必要なデータをメモリ内のどこから取得するかを簡単に計算でき、必要なメモリへのアクセスは 1 回だけです。グラフィックス コアには、この 4x4 ブロックをデコードし、テクセル値をシェーダー/テクスチャ コンバイナーなどに提供する専用回路があります。
PNG 圧縮はフラット ビットレートでは機能せず、特定の値を取得するのがより複雑になります。単一のカラー値を取得するために複数の場所からメモリにアクセスする必要があり、テクスチャの読み取りが発生するたびに、はるかに多くのメモリと処理が必要になります。そのため、ネイティブ テクスチャ フォーマットとして使用するのには適していません。これが、グラフィック ハードウェアが使用する前にテクスチャを解凍する必要がある理由です。これにより、圧縮解除を必要としない PVRTC と比較して帯域幅の使用が増加します。
そのため、オフライン ストレージ (ディスク上のアプリケーションのサイズ) の場合、PNG は PVRTC よりも小さく、完全に圧縮されていないものよりも小さくなります。実行時のメモリ フットプリントとパフォーマンスについては、PVRTC は PNG よりも小さく高速です。PNG は圧縮解除する必要があるため、圧縮されていないテクスチャと同じくらい大きくて低速です。ディスク アクセスの初期化時に PNG を使用すると、ある程度の利点が得られる可能性がありますが、解凍の時間が失われます。
PVRTC のストレージ フットプリントを減らしたい場合は、テクスチャ ファイルで zip スタイルの圧縮を試し、ディスクからロードするときにこれらを展開することができます。