メインメニューを開く

差分

プラナー方式

2,755 バイト追加, 2014年10月3日 (金) 14:31
ページの作成:「'''プレーナー'''(英語:Planar)とは、コンピューターグラフィックスにおける二次元画像の表現方式のひとつである。 =...」
'''プレーナー'''([[英語]]:Planar)とは、[[コンピューターグラフィックス]]における二次元画像の表現方式のひとつである。

==概要==
プレーナーはある画像を表現する際に、[[色空間]]の色成分ごとに分離した状態で保持している形式のことをいう。

たとえば[[RGB]]であれば以下のように分離された形式で[[データ]]が保持されているものをプレーナー方式という。
*RRRRRRRRRRRRRRRR〜
*GGGGGGGGGGGGGGG〜
*BBBBBBBBBBBBBBBB〜
[[Photoshop]]などでいえば[[原色]]ごとに[[レイヤー]]があるような感じである。


逆に分離されていないものを[[パックドピクセル]]方式という。
*RGBRGBRGBRGBRGB〜

==利点==
プレーナーは色ごとに処理したい[[アルゴリズム]]において扱いやすい形式であるとされる。
これには画像圧縮や画像認識などの多くが該当する。

有名なところでは[[JPEG]]などのが採用している。
JPEGでは、赤色を圧縮する、緑色を圧縮する、青色を圧縮するという感じで色ごとに処理するようになっている。

==欠点==
一方で[[ピクセル]]単位で処理したい場合には、たとえばRGBのプレーナーだと1ピクセルを得るのに3カ所もの[[データ]]にアクセスして、さらに合成した値を使用せねばならず、非常に効率が悪い。
<source lang="csharp">
Pixel GetPixel(x, y)
{
return R[x,y] << 16
| G[x,y] << 8
| B[x,y]
}
</source>

最近の多くのプラットフォームでは[[ディスプレイ]]への表示は[[パックドピクセル]]方式が一般的である。
[[DirectX]]や[[OpenGL]]などを駆使した[[コンピューターグラフィックス]]を表示することに主眼をおいているひとたちには[[パックドピクセル]]が一般的である。

==主な採用事例==
===PC-9801シリーズ===
[[PC-9801シリーズ]]の[[GRAM]](今でいう[[VRAM]])はプレーナー形式が採用されており、合成処理は[[ハードウェア]]内部で自動的に行われていた。
しかもRGB各色1ビットと濃淡1ビットというバイト単位ではなくビット単位という鬼のように面倒な代物であった。

プレーナー形式で[[疑似スプライト]]を実現しようとするとアホみたいに面倒な処理が必要であり、[[ゲーム]]などには不向きであったため、多くのプログラマーは手軽にパックドピクセル形式で扱えるようにするライブラリを作っていた。

==関連項目==
*[[パックドピクセル]]

==参考文献==
{{reflist}}

{{stub}}
匿名利用者