考察:VGA解像度は漢字表示やマルチメディアのために作られた?
冬の季節は考え事をするのにもってこいですね。しかし、このカテゴリーに投稿するのは久しぶりね。
数年前にゲストと交わした議論を読み返していてふと疑問がわいたけど、VGAやJEGAで使われている640×480という画面解像度の数字はどこから来たんだろう。UEFIが普及した今となってはVGAも完全に過去の遺物になってしまったが、これが調べてみると色んな繋がりが見えてきて興味深い。
VGAの縦480ラインの理由
VGAはIBMが1987年に発売したパソコン「IBM Personal System/2」の上位モデルに搭載されているVGA(Video Graphics Array)ビデオサブシステムを由来とする。これにはそれ以前のPC/ATなどで使われていたEnhanced Graphics Adapter (EGA)と互換性を保つ画面モードがある。画面解像度で言えば320×200や640×200、640×350などが該当する。幅640ピクセルはVGAより前のハードに倣っているのだろうか。
640×480(2色、16色)はVGAで新たに追加されたグラフィックモードの一つである。16色を4ビットとするとビデオメモリのサイズは約1.23Mビットと中途半端。となると、縦480ラインはどこから来たんだろう。当時の人に馴染みがあったアナログテレビ(写真も)の見た目の縦横比は4:3であり、640×480はちょうど4:3になるが果たして。
VGAの開発者の一人、Stephen Thompsonが当時のIBMの技報(IBM Systems Journal, Vol.27, No.2, 1988)に設計意図を書いていて、以下のような記述がある。
Mode 12 is unique to VGA, and supports the 640 × 480-pel screen addressability with 16 simultaneous colors. This mode is designed to provide support for entry-level computer-aided design (CAD) systems, high-resolution business graphics, and imaging. The 640 × 480-pel screen addressability was chosen because it provides square pels (picture elements) on the screen. Square pels permit circles to appear round on the screen instead of elliptical, as is the case in a 640 × 200-pel or a 640 × 350-pel screen addressability, where the pels are larger vertically than horizontally.
そうだった。これは忘れがちなのだが、CRT時代はピクセルの縦横比が必ずしも1:1(正方形)と限らない。640×200や640×350がもし正方形ピクセルだとしたら横長に潰れたような表示になるが、実際のCRTディスプレイ上はテレビの見た目と同じ4:3くらいに引き延ばされていたんだろう。これでは正確な縮小や回転を求められるCAD向きとは言えない。ちょうどMacintoshやWindowsが登場してWYSIWYGを理想に掲げるなど、GUIの時代に足を踏み入れた頃でもある。
実は640×480という画面解像度はIBM PCにとってVGAが初めてではない。1984年にEGAと同時にProfessional Graphics Controller (PGC)というビデオカードが発売され、ここで640×480の画面モードが出てくる。この製品自体はCAD向けをうたっていても尚高価で描画速度が遅いということで商業的に失敗したが、1987年にVGAが登場するまでの間に他社からEGA上位互換で640×480出力が可能な製品(Super EGA)が登場した。この技術を流用して日本市場向けに作られたのがJEGAである。
幅640ピクセルの理由
→ history - Why did 80x25 become the text monitor standard? - Retrocomputing Stack Exchange
幅640ピクセルが標準になった理由についてはここに長々と書いている方がいるが、私としてはテキストの80桁×25行と処理的に都合が良いという話が分かりやすくてしっくりくる。
プレーンメモリのグラフィック画面にテキストのフォントデータをコピーすることを考える場合、フォント幅が8ピクセルであれば8ビット単位で処理するシステムにとって最も合理的だ。幅がいくつだろうと8ビット単位で処理するのは変わらないのだから。幅が7ビットでも8ビットでも1サイクルで処理できることに変わりはないが、逆に9以上だと最低2サイクル必要になる。テキストをグラフィックで表示するColor Graphics Adapter (CGA)はこの方法をとったのだろう。ただ、CGAの縦200ラインというのはメモリの制約やカラーテレビに対応するためやむを得なかったとは言え、25行だと縦8ピクセルのフォントで行間なしのぎっしり状態。快適とは言えない。
テキストだけを映すのが目的なら、CRTCの仕様が許す限りフォントサイズはいくつでも構わないだろう。CPUは文字コードをメモリに書き込むだけで、そこから画面信号を生成するのはビデオカードの仕事だ。実際、初代IBM PCのMonochrome Display Adapterの文字サイズはフォントが7×11、ボックスが9×14で、有効解像度は720×350となっている。ただ、ビデオメモリのサイズは小さいと言っても、これ以上の高解像度では必然的にディスプレイのサイズが大きくなり、リフレッシュレートを下げない(=ちらつきを生じさせない)ために高周波のクロックとそれに応じた回路設計も必要になり、全体的にコストが上がると考えられる。
640×480は漢字を表示するのにとても都合が良い
PC-98のノーマルモードでの画面解像度はテキストもグラフィックも640×400。1990年代にDOS/Vとの比較でよくやり玉に挙げられていた所だ。
640×400の画面解像度というのは16×16の日本語フォントでちょうど40桁×25行になる大きさであり、グラフィックのメモリサイズで言えばちょうど256Kビットになる。
16×16のフォントサイズは1982年に発売されたPC-98より前から存在する。そもそも、漢字を表示するには24×24が理想とされていた。日本語ワープロは1978年9月に発表された「東芝 JW-10」以来24×24が主流で、オフィスコンピュータの漢字対応も24×24から始まっている。日本IBMが1979年9月に発表した3278-52型漢字表示装置は16×16で40桁×24行表示となり、これが妥協できる最低ラインだったのだろう。DOS/Vにフリーで12×12の「要町」フォントがあって試しに使ったことあるけど、あれを日本語ワープロに常用するのはキツい。
PC-98との比較の話に戻ると、一つ言われていたのがDOS/Vの日本語表示には行間があるという話だ。
DOS/Vは16×16のフォントを16×19のボックスで表示しており、有効解像度は640×475になる。行間に3ピクセルの余裕がある。一方、PC-98で25行表示させると640×400ぴったりで行間がない(ただし、半角英数字はフォント自体に余白が多めにある)。これは見づらいため、PC-98には25行表示の他に行間を空けた20行表示のモードがあって、一太郎Ver.3の標準設定では20行表示になっていた。行間があることでそこに下線や罫線を引いても見た目を損なわずにすむという利点もある。NECが1992年に発売した純正ディスプレイのPC-KD1511には縦に表示を少し引き延ばす機能があったが、実際の効果はどれほどだったんだろう。
たかが行間、されど行間。これはDOS/Vが出るよりも前、1988年頃にJEGAが出た時点で言われていたことであり、さらにはJEGAが出るより前から言われていたことが分かった。
日経コンピュータ1983年5月30日号によると、1981年~83年に登場したビジネスパソコンのNEC N5200モデル05、富士通 FACOM 9450、日本IBM マルチステーション5550(16ドットモデル)のいずれも15×16フォントで「行間に3ドット以上の余白」を持つ。表示文字数は若干差はあるが40~41桁×24~26行。特にFACOM 9450IIはグラフィックの解像度も640×480となっている。まだPGCが発表される前のことだ。今見ているこのページも行間が数ピクセルとられているが、当時から行間が視認性を保つ上で必要と考えられていたことが分かる。
PC-98が640×400だった理由については余談になるので軽い推察になるが、蘇るPC-9801伝説(アスキー, 2005)での小澤昇の話によればPC-8801の仕様に追従したとのこと。PC-8801にはCRTCによるPC-8001互換テキストモードがあったが、640×400の解像度で映せるのは汎用ロジック回路によるモノクログラフィック出力のみ。沖電気if800モデル30や三菱マルチ16も同様にして640×400のグラフィック機能を搭載している。なぜ日本のパソコンのグラフィックは640×400が標準になったのか調べてみるのも面白そうだ。
とにかく640×480が日本語テキストの表示に好都合というのは分かった。ただ、VGAが元々それを考慮して作られたという根拠は今のところ見つかっていない。そもそも、肝心の日本IBMはこの仕様に満足せず別の方針をとっていた。5550の16ドットモデルは720×512ピクセルとさらに余裕を見た解像度を確保しており、それも後期には消滅してしまう。DOS/Vが登場するまで、本流は24×24フォントのモデルだった。
VGAとマルチメディアとの関係は?
4:3という比がテレビに由来することには違いないが、それを安易にマルチメディアという言葉と結びつけて良いのか疑問を感じる。
1987年にIBMから発行されたPersonal System/2 Model 50のカタログにはVGAについてこう書かれている。
Built-in Video Graphics Array (VGA) capabilities provide videolike clarity for business graphics, text, even digitized photos. These advanced capabilities result in a screen image that’s brilliant and natural looking. VGA also supports CGA, EGA and MCGA graphics and text.
この説明は見た目上の快適さと互換性を述べているだけであり、この具体的な内容は最初のセクションに書いたとおりなのだろう。強いて言えば “digitized photos” の処理はマルチメディア対応の一つかもしれないが、この紹介文だけではそこまでの展望が見えてこない。
日本でVGAがある程度有名になったのは1990年にDOS/Vが登場してからだと予想するが、このDOS/Vの発表と同時にマルチメディア関連の製品も多数発表されている。
「M-MOTION 動画再生アダプター」や「マルチメディア・オーディオ・ビジュアル・コネクション J1.02」がどんなものだったかググっても情報は一切出てこないが、この頃はそういう風な製品展開がされていたようである。私の意見としては、4:3の正方形ピクセルに合わせたVGAを構想した時点ではその将来性を考えてはいたかもしれないが、マルチメディアまでは考えていなかったんじゃないかと思う。
PS/55Zの広告やカタログを見ていると、VGAについては「世界標準」「世界中のソフトが使える」ことを強調しているが、マルチメディアについてはATバスの説明に出てくるくらい。VGAとは直接結びついてはいない。
結論
「MDA、CGA、EGAのいずれにしても為し得なかった4:3中解像度の正方形ピクセル表示を初めて実現したのがVGA。」という説明になるんだろうか。自分で言うのもなんだけどタイトルに反して結論は面白みがないな。他の誰かが違った視点から意見を出してくれることを期待したい。