PVRTC (PowerVRテクスチャ圧縮)およびPVRTC2は、 PowerVRのMBX(PVRTCのみ)、SGX、およびRogueテクノロジーで使用される、非可逆固定レートのテクスチャ圧縮形式です。PVRTCアルゴリズムは、Graphics Hardware 2003で発表されたSimon Fenneyの論文「Texture Compression using Low-Frequency Signal Modulation」(スライド)に記載されています。
これらは、 S3TCやEricssonテクスチャ圧縮(ETC)などの厳密にブロックベースのテクスチャ形式とは異なり、圧縮された画像は2つの低解像度画像で表現され、それらは双線形にアップスケールされ、その後、低精度のピクセル単位の重みに従ってブレンドされます。また、4bppモードと2bppモードの両方で ARGBデータをサポートする点でも異なります。
PVRTCは、 Nokia N9および全世代のiPhone、iPod Touch、iPadで使用されている圧縮テクスチャフォーマットです。また、 PowerVR GPUを搭載した一部のAndroidデバイスで もサポートされています[1] 。
データ構造
PVRTCとPVRTC2の両方において、テクスチャデータはブロック単位で保存されます(ただし、2x2のテクセルセットをデコードするには、これらのブロックのうち4つにアクセスする必要があることに注意してください)。データブロックは常に64ビット(8バイト)のストレージ/メモリ空間を占有するため、4ビットモード(4bpp)では4x4ピクセルごとに1つのブロックが存在します。2ビットモード(2bpp)では8x4ピクセルごとに1つのブロックが存在します。
例えば、1024×1024 4bpp PVRTCテクスチャは65,536ブロックで構成され、524,288バイトのストレージ/メモリ空間を占有します。一部のハードウェア実装では、ブロックはモートン順序の変形で配置されます。
PVRTCでは、各ブロックに6つの異なる変数[2]が格納されています。変調データ(32ビット)、パンチスルーアルファフラグ(1ビット)、カラーA(15ビット)、カラーA不透明フラグ(1ビット)、カラーB(14ビット)、カラーB不透明フラグ(1ビット)。
PVRTC2では、1つのブロックに6つの異なる変数[3]が格納されます:変調データ(32ビット)、変調フラグ(1ビット)、カラーB(14ビット)、ハードトランジションフラグ(1ビット)、カラーA(15ビット)、不透明度フラグ(1ビット)。
PVRTC では不透明度フラグを A 色と B 色に対して個別に設定できますが、PVRTC2 では色 A と色 B の両方が同じ形式 (つまり、両方とも RGB または両方とも RGBA) である必要があります。
参照
参考文献
- ^ 「スマートフォン、タブレット、スマートテレビ、携帯ゲーム機、ウルトラブック、コンバーチブルなど、10億以上の製品」。2016年10月12日時点のオリジナルよりアーカイブ。
- ^ 「PVRTCデータワード(64ビット)」。2014年9月2日時点のオリジナルよりアーカイブ。
- ^ 「PVRTC2 データワード (64 ビット)」。2014年11月1日時点のオリジナルよりアーカイブ。
- Simon Fenneyの3Dグラフィックスページは、Wayback Machineで2008年4月19日にアーカイブされています。
- PVRTC2でテクスチャ圧縮を新たな次元へ Archived 2014-04-29 at the Wayback Machine
- PVRTC: モバイルグラフィックスの世界で最も効率的なテクスチャ圧縮規格 2014年7月3日アーカイブ - Wayback Machine