• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版

HOMEエレクトロニクス電子デバイスPC技術興亡史 > Windows時代に入り、グラフィックスアクセラレーター登場

PC技術興亡史

Windows時代に入り、グラフィックスアクセラレーター登場

グラフィックス編 第5回

  • 大原 雄介=フリーランス テクニカルライター
  • 2015/04/01 00:00
  • 1/3ページ
 本記事は、日経WinPC2011年9月号に掲載した連載「PC技術興亡史」を再掲したものです。社名や肩書などは掲載時のものです。

 VESAによる標準化が進んだ結果、グラフィックスチップメーカーには、他社とどう差をつけるか、という課題が出てくる。当時、そのポイントは、コスト、性能、機能だった。速くて安いのはもちろんで、搭載するグラフィックスメモリーの容量、同時発色数の多さ、最大解像度の高さなどが主要な差別化ポイントだった。これに新たに加わったのが、グラフィックスアクセラレーター機能である。

 当初のアクセラレーター機能はごく単純で、直線や長方形、だ円の描画、囲まれた領域の塗りつぶし、BitBlt程度の機能しかなかった。BitBltとはBit Block Transferの略で、グラフィックスメモリー(以下VRAM)中のある領域を別の場所にコピー/移動する機能だ。そして、拡大、縮小、変形やAND/OR/NOTなど、論理演算を実行する機能などが次第に追加されていった。

 アクセラレーター機能が注目され、製品選びの主要な要因になった理由として、Windows 3.0の登場が挙げられる。文字表示だけで済むMS-DOSとは異なり、全てをグラフィックスで表示するWindows 3.0を使う際、アクセラレーター機能を持たないグラフィックスボードの環境だと、CPUへの負荷が大きくなり、ユーザーはかなりのストレスを感じた。

 例えば直線を描画するだけでも、それなりにCPU処理が必要となる(図1)。直線の傾きが1を超えているかどうかで処理を切り替えるかをCPUが判断する。次に座標を計算して順次点が表示されるようにVRAMを書き換えるといった具合だ。グラフィックスアクセラレーターを使うと、プログラムは始点と終点、色を指定するだけで済む。傾きの判断を含めてアクセラレーターが全部処理してくれる。

図1 点(1、1)から点(12、15)を結ぶ線を描画する(左)。このときx軸を基準として数式1に従って描画点を決めると、破線になってしまう(中央)。この場合、数式2に変換して、y軸を基準として描画位置を決める(右)。傾きが1より大きいか小さいかで、x軸を基準にするか、y軸を基準にするか決めるのだが、こういった判断をCPUで実行して描画するのではなく、ハードウエアで計算して実行するのがグラフィックスアクセラレーターだ。
[画像のクリックで拡大表示]

塗りつぶしはもっと負荷が大きい(図2)。一般には起点と境界色、それと塗りつぶす色を指定して塗りつぶす。VRAMからデータをメモリーに取り出し、条件に合致した個所を塗りつぶす。VRAMとメモリーの間でバスを介してデータをやり取りせねばならず、時間もかかかる。アクセラレーターを使うと、これを全部VRAMの中だけで処理してくれるので、かなり高速化できる。境界色の判断などもCPUよりずっと高速にでき、CPUの処理で塗りつぶす場合とは比較にならない。

図2 境界色、起点、塗りつぶす色を指定する。CPUの処理だと起点周囲のバッファーの内容をVRAMから横1行分を取り出し、CPUが境界色と起点から塗りつぶし範囲を決定、塗りつぶした後でVRAMに書き戻す。
[画像のクリックで拡大表示]

 こうした高速化機能は、当然Windowsのドライバー経由で利用されるため、VESAの制定以前に問題になったような互換性の問題は発生しない。

おすすめ

あなたにおすすめ