現在地

ディスプレイ・ビデオ

パーソナルなコンピュータのグラフィック事情 (第8回: 高速化)

解像度が上がり色数が増えると書き換えなければならないメモリが増え、相対的に速度が低下します。もちろんCPUに余裕があればよいのですが、そうも言っていられません。ここでは当時の工夫や仕掛けをいくつか見ていきます。

まずソフトウェアだけでできる方法です。直線や円などの描画アルゴリズムの選択はもちろん重要ですが、場合によっては続・80系アセンブラのテクニックのような小手先のテクニックが有効な場合もありました。
当初グラフィック描画には(BASIC用に)ROMに搭載されたルーチンを呼び出すことが多かったのですが、各機種用の高速描画ルーチンが雑誌等に発表されるようになりました。同機能で最適化したもの、頻繁に使う機能に絞ってさらなる高速化を実現したもの、より多機能化したものなどいろいろありましたね。ソフトメーカも独自に作っていたはずです。

パーソナルなコンピュータのグラフィック事情 (第7回: 色数を求めて)

640×200, 640×400ドットが実現すると、次なる改良の方向は使える色数の拡大へと向かいます。

  • さらなる解像度の向上には専用モニタが必要で、ハードルが高いこと
  • テレビ放送程度の画像を再現できるほどの解像度を既に達成していること
  • しかし8色という色数では自然画表現にはまったく不足であること

あたりが理由でしょう。

最初はソフトウェアだけでできるタイルが使われました。
当時大きな画像は線を繋げて輪郭を作り、その中を塗りつぶすという手法がよく用いられました。

パーソナルなコンピュータのグラフィック事情 (第6回: 640x400)

さらに一部の機種では640×400ドットが使えるようになりました。

日本語(漢字)を表示したときに12行ではやはり不便であること、ドットが極端(約1:2)な縦長では使いにくかったことが理由だったのではないかと思います。
これには大きく2通りのアプローチがありました。

一つはFP-1100などで使われた方式です。モニタは640×200で使われていた水平同期周波数が15.7kHzのものをそのまま使用し、インターレススキャンすることにより縦方向の解像度を倍にするのです。実質的な垂直同期周波数が半分になるので若干のちらつきが発生しますが、使えないほどではありませんでした。またインターレスで使うことを想定した長残光性のモニタもありました。

パーソナルなコンピュータのグラフィック事情 (第5回: 640x200)

前回書いた専用モニタの登場で640×200ドットのグラフィックスの実現は目前となりました。残るはメモリ容量とその大容量メモリを書き換えるCPUパワーの問題です。

この頃サードパーティーからグラフィック機能を追加するハードウェアがいろいろと発売されました。
HAL研究所のPCG (Programmable Character Generator)は文字フォントを自由に定義できるようにしたものです。定義できるのは128個までなのでTMS9918のグラフィック2モードのように画面中に並べることはできませんでしたが、ゲームのキャラクタを表示するのに都合よく、対応したソフトウェアも多くありました。
PC-8001用にはFGU-8000/8200というモノクロですが640×200ドットのグラフィックを実現するユニットもありました。

メモリ容量の進歩は早いので解決は時間の問題です。1981年ごろからは富士通のFM-8やNECのPC-8801といった640×200ドットでドット毎に(制約なく)8色が使えるパソコンが発売されます。そしてこれが日本のパソコンの標準的なグラフィックとなり、その後の多くの機種が追従していくことになります。

パーソナルなコンピュータのグラフィック事情 (第4回: 専用モニタ)

2回にわたりテレビに表示する話を書きましたが、やはり実用的に使おうと考えるとテレビではうまくありません。32桁×24行では文字数が不足ですし、滲みもひどく長時間の使用には向きません。

パソコン本体価格がある程度以上の機種では専用モニタの使用を前提に、テキスト表示が40桁×25~80桁×25程度のものが多くありました。1文字は8×8ドットが普通でしたから640×200ドットに相当しますが、まだメモリが高価でそれだけのグラフィック機能はつめません。やはり1文字のエリアをいくつかのタイルに分割するセミグラフィックが主流でした。

この頃の代表機種としてNECのPC-8001とシャープのMZ-80Kについて説明したいと思います。

PC-8001のテキスト表示は最大で80桁×25行表示、文字色は8色から選べ背景色は黒に固定でした。この表示のためにメインメモリから約3kBが使われます。セミグラフィック表示は文字フォントの代わりに2×4分割したタイル(文字コードは8ビットなので8つのタイルのOn/Offを表現できます)を表示します。色は文字単位で黒ともう1色が使用可能、また文字単位でテキストとセミグラフィックを混在させることもできます。

パーソナルなコンピュータのグラフィック事情 (第3回: テレビの利用《後編》)

前回はハードウェアが中心でしたが、今回はソフトウェア的な面について書きたいと思います。

さてテレビに文字表示を行なうコントローラICにグラフィック機能も搭載されていたと書きましたが、どの程度の機能があったでしょうか。

解像度は64×32~256×192程度まで、今から考えるとお話にならないようなものですが、もちろんこれには理由がありました。まず256×192はテレビを使用することからくる制限で、テキスト表示を構成する文字のドットもこの程度です。これが表示できるなら何故解像度を下げた表示があるのかというと、それはメモリの制限です。モノクロで256×192を表示するためには6kBのメモリが必要で、カラーにしようと思えば2~3倍必要になるでしょう。RAMのアクセスタイムも450nsなどというものが普通にあった時代なので帯域の配慮も必要になります。CPUも遅いので必要以上に解像度を上げると描画に時間がかかります。

色数も2~8程度でした。これも同じくメモリの問題が大きかったのです。しかも後述のように色の使用には制限が多く、ドット毎に自由な色をつけることはできませんでした。

パーソナルなコンピュータのグラフィック事情 (第2回: テレビの利用《前編》)

7セグメント表示器8桁程度ではアドレス・データを表示して1バイトずつ書き込むモニタプログラムの実行は可能でも、BASIC言語のようなシステムを動かすには英数字・記号をある程度の文字数表示できる環境が必要になります。テレタイプでもこの条件は満たせますが、高価で大きく家庭に持ち込めるようなものではありません。

やはりCRT (Cathode Ray Tube)モニタを使いたいということになるわけですが、簡単に手に入るものはテレビだけです。そこで何とかテレビに文字を表示することになります。
当時のテレビには外部入力端子はありませんので、放送電波の形式でアンテナ端子から信号を入れることになります。

ビデオデッキやテレビゲームなども初期の頃は同様の方式で接続していました。そのうちにテレビにも外部入力端子が付くようになり、アンテナ端子への接続は減っていきました。

この方式では電波の帯域制限・Y/C分離・ドットピッチなどの問題から実用になるのは1文字8×8ドットで横に32~40文字程度、縦に16~25行程度となります。これなら1文字1バイトとして512~1kBのメモリですみますから当時のメモリ事情でも無理なく実現できます。

パーソナルなコンピュータのグラフィック事情 (第1回: はじめに)

これまで「メモリ事情」「サウンド事情」と書いてきましたが、今度はグラフィック事情について取り上げてみたいと思います。

本当の初期、まだパソコン用のディスプレイがなかったころは以下のような涙ぐましい努力がされたようです。

VGA 切替・分配器

テーマ:

これはVGAの切替・分配器です。私はもっぱら切替器として使っていました。キーボード・マウスも連動で切り替えられるものを入手してからはあまり使っていません。

切替・分配器
入力はIN 1, IN 2の2系統、出力もOUT 1, OUT2の2系統です。中央のシーソースイッチによってIN 1あるいはIN 2のどちらかを選択し、選ばれた入力がOUT 1, OUT 2の両方に出力されます。IN 1⇒OUT 1, IN 2⇒OUT 2のようなことはできず、OUT 1とOUT 2には常に同じものが出力されます。

ページ