見出し画像

カラーパレットという仕組み

元々は白と黒の2色しかなかったパソコンの画面ですが、アップル][がテレビ信号の特性を上手に活かして6色(最初は4色)の色を表現するようになりました。その後PC-8001が文字単位ではありますが8つの色(RGBそれぞれのオンとオフで2の3乗で8色)を出せるようになりました。その後しばらくは、この8色のカラー表示が標準的なものとなりました。

8色を出すためにはVRAMの容量が白黒に比べて3倍必要となります。まだまだメモリが安いとは言えない中、オイソレと増やすわけにもいきません。コストの問題だけではなく、処理するメモリの量が増えれば、それだけ遅くなります。そのような中、より表現力を豊かにするためには、隣り合ったドットの色を組み合わせて擬似的に多くの色を「見せる」ことでお茶を濁していました。また当時にディスプレイはPCとの接続にRGBそれぞれの信号のオンとオフだけを送るケーブルを採用していたために、中間色を表示させるには端子も変えなければならないという事情もありました。

そんな状況でしたが、まずFM-7(1982年11月発売)がRGB3つのVRAMのオンオフと出力する色の組み合わせを変更することが出来るカラーパレットという仕組みを採用しました。もしかしたら、もっと早い時期にパレットが使える機種が出ていたかもしれませんが、調べた範囲ではこれが一番最初のようです。

そしてMSX(1983年)が登場すると、幸いにしてディスプレイにテレビもしくはTVモニタを使うようになっていたこともあり、この方式であれば中間色を表示することも出来るので、16色を出すことが出来るようになりました。但しFM-7のようなカラーパレット機能はありませんでした。

さて1985年になると状況が一変します。もっとも有名なのはPC-9801VMが同時に出すことが出来るのは8色ですが、その8色を4096色から選ぶことが出来るカラーパレットを搭載しました。PC-8801もmkIISRからは512色中の8色が出せるようになりました。FMシリーズも77AVを出し解像度によりますが最大で4096色から64色を出せるようになりました。もちろん、この機能を活かすためには中間色を表示できる端子を持つアナログRGB対応を謳ったディスプレイに繋ぐ必要はありました。

そしてMSXもMSX2からはカラーパレットを採用し、画面モードにもよりますが512色から16色を選んで表示することができるようになりました。もっともMSX2の場合は高価なアナログRGBに繋ぐことは珍しく、相変わらすTVモニタを使うか、その頃から普及し始めたRGBマルチ端子を持つテレビを使っていました。

カラーパレットを使うメリットとしては、少ないメモリで多くの色を表現することはもちろんですが、パレットの設定を変更することで多くのメモリを書き換えること無く、事実上一瞬で画面を変更できることにあります。機種によって同じ色に複数のパレットを割り当てられるかは違いがありますが、001と010のデータを共に赤に割り当てておいて、このうち001のデータだけを青に変えれば赤かった部分の一部だけをあっという間に青に変えることなどが出来たわけです。これをパレットアニメーションと呼んで、ゲームなどの速い動きを表現したいときにはとても便利な機能でした。

https://commons.wikimedia.org/wiki/File:Pal_anime.gif

この機能が普及すると、そもそもVRAMが3つの組み合わせから作られているのは、いろいろな意味で半端なので4つの組み合わせを持つ、すなわち16色表示が一般的になりました。そしてディスプレイもアナログRGBが当たり前という環境になっていきます。

さて、このあたりでWindowsなどのGUIを持つOSの時代が始まります。Windowsといっても表示には元々そのPCが持っているグラフィックを使うのですから、カラーの表示能力が変わるわけではありません。PC及びPC互換機においては、元々のPCがビジネス向けに設計されていたために文字しか表示することが出来ず、グラフィックを出すには拡張スロットにビデオカードを刺す必要がありました。このため性能の良いカードを使えば本体はそのままで表示能力だけを良くすることが出来るようになりました。

とはいえ今までと同じ問題は残ります。色の表現力を高めれば当然多くのメモリが必要となるので、同じCPUを使っているのであれば、それだけ描画に時間がかかります。このため無闇に色数を増やすことは好ましくなく、カラーパレットの仕組みは残りました。そこで8ビット分の色である256色が使える画面モード(インデックスカラー)が最もポピュラーなものとなりましたが、同時に15または16ビット分の色が使えるモード(ハイカラー)、そしてRGBそれぞれに8ビットが使える(トルゥーカラー)が使い分けられるようになりました。ゲームなどの速度が要求される用途にはほぼインデックスカラーが使われていました。

インデックスカラー

その後の半導体の進歩で、メモリも多く搭載できるようになり処理も速くなったので、インデックスカラーは使われなくなりました。今ではもう特別なソフトなどを併用しないと古いWindows向けのゲームを起動することすらできなくなりましたが、少し前までは古いゲームも動かそうと思えば動いたのですが「画面モードを256色モードにしてください」というダイアログが出たものもありました。それはパレットを使っていたからで「もうそんな画面モードは無いよ」と悲しんでいた時代もありました。パレットを駆使して動きの速い画面を作っていた時代は、すっかり過去のものとなってしまいました。

ヘッダ画像は、以下のものを使わせて頂きました。https://www.irasutoya.com/2013/03/blog-post_8569.html

#グラフィック #色 #カラーパレット #インデックスカラー #PC9801VM #FM77 #ビデオカード #アナログRGB #ディスプレイ

この記事が気に入ったらサポートをしてみませんか?