Bit Block Transfer

出典: フリー百科事典『ウィキペディア(Wikipedia)』
BitBltから転送)
移動先: 案内検索

Bit Block Transfer(びっと・ぶろっく・とらんすふぁー)は、コンピュータにおける描画アルゴリズムの一つ。描画する画像データ (ビットマップ) を一旦メインメモリに蓄え、最終的な画像データだけをVRAMにまとめて転送する。BitBlt と略されるが、これをドライバやゲームの設定ファイルなどでBitBitと表現してしまう間違いも多く見られる。

概要

CPUからVRAMに対する直接アクセスはCRTCからのアクセスの干渉などハードウェア的な制約が多いため、メインメモリに対するアクセスよりも低速であることが多い。このため、画像操作の度にVRAMにアクセスを行うことは描画速度を低下させるばかりか、描画途中で画面のフレームが切り替わってしまう状況を生じやすく、ちらつきを発生させる原因となる。これらの問題の解決方法の一つとして Bit Block Transfer が利用される。CPUの代わりにDMAコントローラを用いてメインメモリからVRAMビットマップを転送するアーキテクチャも存在する。 Macintoshでは「オフスクリーン描画」と呼ぶのが普通で、Bit Block Transfer や BitBlt という語句はめったに出てこない。

Bit Block Transfer 用に確保したメモリ領域はオフスクリーンまたはオフスクリーンバッファと呼ぶ。またわかりやすく仮想画面と呼ぶこともある。

逸話

もともとは、Altoで、オーバーラップするウインドウを有するGUIの効率化を図るために、ダン・インガルスらにより考え出され、Smalltalkシステムに組み込まれ運用されたのが最初で、その後、PARC内外で広く利用されるようになり現在に至る。Smalltalkシステムでは、通常の描画の他にも、タートルグラフィックス、あるいは、前のウインドウに隠れて一部しか見えていない裏のウインドウの内容更新などを行なう際などに活用された。なお、Altoではこれらの描画処理を、矩形領域の組み合わせ、かつ、ハードウエア処理の助けを借りて行なっていたのだが、それをデモで見せられたビル・アトキンソンが勘違いして、不定形領域を対象にでき、しかもソフトウエアのみで行なっているものと誤解。その認識のまま、後にLisaMacintoshでGUI描画の中核を担うQuickDrawとして、ついに完成させてしまった逸話がある。

関連項目