(57)【特許請求の範囲】
【請求項１】
画素単位で測ったランドスケープ・オリエンテーションの所定高さと所定幅を有するランドスケープ構成のディスプレイを有し、画像を回転させるグラフィックスシステムであって、
ソフトウェアアドレス及び対応する画素データを受け取る入力端子と、
(i)前記ディスプレイのオリエンテーションを表すフラグを格納する構成レジスタと、(ii)前記フラグがランドスケープ・オリエンテーションを示している場合に、ソフトウェアアドレスを論理アドレスとして転送するための信号線と、(iii)前記フラグがポートレート・オリエンテーションを示している場合に、Ｌ=1n(ＨD)/1n２及びＭ=1n(ＷD)/1n２の関数によってソフトウェアアドレスを論理アドレスとして変換する変換回路とを備え、ここでＬは変換論理アドレスの最上位ビットとしてコピーするソフトウェアアドレスの最下位のビット数を指定し、Ｍは反転して変換論理アドレスの最下位ビットとしてコピーするソフトウェアアドレスの最上位のビット数を指定する、アドレス変換システムと、
リフレッシュアドレスを生成するリフレッシュアドレス生成回路と、
選択アドレスとしてリフレッシュアドレス及び論理アドレスのうちのどちらかを選択するアービトレーション回路と、
前記画素データを対応する選択されたアドレスに格納する画像バッファメモリと、
を有することを特徴とするグラフィックスシステム。
ただし、ＨDとＷDはそれぞれ、前記ディスプレイの前記所定高さと前記所定幅よりも大きく、かつ、最も近い２の整数べき乗の数とする。
【請求項２】
ソフトウェアの行アドレス部分及びソフトウェアの列アドレス部分を含むそれぞれのソフトウェアアドレスを必然的に有する画素データ信号を生成する中央処理装置と、
ソフトウェアの列アドレス部分に対応する行アドレス部分が変換されると共にソフトウェアの行アドレス部分に対応する列アドレス部分が変換された変換アドレスを生成するアドレス変換回路と、
前記変換アドレスに画像画素を表示する出力装置とを有し、
前記出力装置が画素単位で測った第１オリエンテーションの所定高さ及び所定幅を有し、前記アドレス変換回路が関数Ｌ=1n(ＨD)/1n２及びＭ＝1n(ＷD)/1n２に従ってソフトウェアアドレスを変換し、ここでＬは変換アドレスの最上位ビットとしてコピーするソフトウェアアドレスの最下位ビット数を指定し、Ｍは変換アドレスの最下位ビットとして反転してからコピーするソフトウェアアドレスの最上位ビット数を指定することを特徴とする表示する画像のオリエンテーションを変えるためにアドレスを変換するシステム。
ただし、ＨDとＷDはそれぞれ、前記出力装置の前記所定高さと前記所定幅よりも大きく、かつ、最も近い２の整数べき乗の数とする。
【請求項３】
前記出力装置が液晶ディスプレイからなることを特徴とする請求項２に記載の表示する画像のオリエンテーションを変えるためにアドレスを変換するシステム。
【請求項４】
前記出力装置がプリンタからなることを特徴とする請求項２に記載の表示する画像のオリエンテーションを変えるためにアドレスを変換するシステム。
【請求項５】
画素単位で測った第１オリエンテーションの所定高さと所定幅を有する第１オリエンテーション構成のディスプレイを有し、画像のソフトウェアアドレスを第２オリエンテーションから前記第１オリエンテーションに変換させるシステムであって、
それぞれのソフトウェアアドレスを必然的に有し、ディスプレイに表示される連続する画素データ信号を生成する中央処理装置と、
前記ソフトウェアアドレスのＬの最下位ビットを変換論理アドレスのＬの最上位ビットにコピーし、ここでＬ＝1n(ＨD)/1n２であり、ソフトウェアアドレスのＭの最上位ビットを反転した後にそれらを論理アドレスのＭの最下位ビットにコピーし、ここでＭ＝1n(ＷD)/1n２の関係であるアドレス変換システムと、
前記ディスプレイで使用するためにそれぞれの論理アドレスに前記画素データ信号を格納する画像バッファメモリとからなることを特徴とするシステム。
ただし、ＨDとＷDはそれぞれ、前記ディスプレイの前記所定高さと前記所定幅よりも大きく、かつ、最も近い２の整数べき乗の数とする。
【請求項６】
前記ディスプレイが液晶ディスプレイであることを特徴とする請求項５に記載のシステム。
【請求項７】
前記アドレス変換システムが、変換されていない第１オリエンテーションのソフトウェアアドレスを論理アドレスとして画像バッファメモリに渡すためのバイパス線をさらに備えることを特徴とする請求項５に記載のシステム。
【請求項８】
前記ディスプレイのオリエンテーションを表す値を格納する構成レジスタをさらに備え、
前記バイパス線がソフトウェアアドレス及び変換論理アドレスを受け取るマルチプレクサを含み、前記ディスプレイのオリエンテーションが第１オリエンテーションの時はソフトウェアアドレスを論理アドレスとして前記画像バッファメモリに渡し、前記ディスプレイのオリエンテーションが第２オリエンテーションの時は変換アドレスを論理アドレスとして画像バッファメモリに渡すことを特徴とする請求項７に記載のシステム。
【請求項９】
前記ディスプレイをリフレッシュするために前記画像バッファメモリに結合されたグラフィックスコントローラをさらに備えることを特徴とする請求項５に記載のシステム。
【請求項１０】
前記グラフィックスコントローラがリフレッシュアドレスを生成し、リフレッシュアドレスによって指定された前記画像バッファメモリ内の記憶場所から画素情報を検索し、画素情報及びリフレッシュアドレスを前記ディスプレイに渡すことを特徴とする請求項９に記載のシステム。
【請求項１１】
画素単位で測った第１オリエンテーションの所定高さと所定幅を有する第１オリエンテーション構成のディスプレイを有し、画像のソフトウェアアドレスを第２オリエンテーションから前記第１オリエンテーションに変換させるシステムであって、
ソフトウェアアドレス及び対応する画素データ信号を生成する中央処理装置と、
前記ディスプレイのオリエンテーションが第１オリエンテーションか或いは第２オリエンテーションかを示す値を格納するレジスタと、
アドレス変換システムとを備え、
前記アドレス変換システムは、オリエンテーション信号が第１オリエンテーションを示している場合に、ソフトウェアアドレスを論理アドレスとして渡すための線と、オリエンテーション信号が第２オリエンテーションを示している場合に、Ｌ＝1n(ＨD)/1n２及びＭ＝1n(ＷD)/1n２の関数に従ってソフトウェアアドレスを変換論理アドレスとして変換する変換回路とを備え、ここでＬは変換論理アドレスの最上位ビットとして変換するソフトウェアアドレスの最下位ビット数を指定し、Ｍは変換論理アドレスの最下位ビットとして反転してから変換するソフトウェアアドレスの最上位ビット数を指定し、
さらに論理アドレスが指定している記憶場所に画素データを格納する画像バッファメモリを備えることを特徴とするシステム。
ただし、ＨDとＷDはそれぞれ、前記ディスプレイの前記所定高さと前記所定幅よりも大きく、かつ、最も近い２の整数べき乗の数とする。
【請求項１２】
所定の画素高さ及び画素幅を有する第１オリエンテーションのグラフィック表示を第２オリエンテーションに回転させる方法であって、
表示のオリエンテーションを示す構成情報を検索するステップと、
表示上の画像位置を表すソフトウェアアドレスを生成し、対応する画素データを生成するステップと、
表示のオリエンテーションが第１オリエンテーションを示していると、ソフトウェアアドレスを論理アドレスとして渡すステップと、
表示のオリエンテーションが第２オリエンテーションを示していると、関数Ｌ＝1n(ＨD)/1n２及びＭ＝1n(ＷD)/1n２に基づきソフトウェアアドレスを変換して変換アドレスを論理アドレスとして渡すステップとからなり、ここでＬは最上位の論理アドレスビットとしてコピーする最下位のソフトウェアアドレスビット数を表し、Ｍは最下位の論理アドレスとして反転してからコピーする最上位のソフトウェアビット数を表し、さらに論理アドレスによって指定された記憶場所に画素データを格納するステップと、
格納された画素データを表示するステップとからなることを特徴とする方法。
ただし、ＨDとＷDはそれぞれ、前記グラフィック表示の前記所定高さと前記所定幅よりも大きく、かつ、最も近い２の整数べき乗の数とする。
【請求項１３】
前記第１オリエンテーションがランドスケープ・オリエンテーションで第２オリエンテーションがポートレート・オリエンテーションであることを特徴とする請求項１２に記載のグラフィック表示を回転させる方法。
【発明の詳細な説明】
技術分野
本願発明は一般的には画像処理に関し、より具体的にはポートレートのオリエンテーションで表示するために画像を回転させるハードウェア並びに方法に関する。
背景技術
コンピュータシステムはビットマップ形式で画像を格納する。ビットマップは、ディスプレイコントローラが画素に対応するビット列を読み取りレンダリングするためにその列をディスプレイに転送できるように編成されている。ディスプレイコントローラは画像全部が表示されるまで連続する画素に対してこのプロセスを繰り返す。
ビットマップ編成によって画像の大きさと画像のオリエンテーション、つまりポートレートかランドスケープかが規定される。画像は幅に比べて高さの方が大きければポートレート・オリエンテーションで、高さに比べて幅の方が大きければランドスケープ・オリエンテーションである。図1(a)に示すのはランドスケープの画像のビットマップである。画像の高さ(HI)に比べて幅(WI)の方が大きい。図2(a)に示すのはポートレート・オリエンテーションの画像のビットマップである。WIに比べてHIの方が大きい。対応する図1(a)と図2(a)において矢印は画素が典型的にビットマップ記憶域に格納されるソフトウェアのアドレス指定パターンを示す。
表示のデューティサイクルを最大限に活用するために、つまり所定の走査線の連続するリフレッシュサイクル間の時間を最小限にするために、陰極線管(CRT)や液晶ディスプレイ(LCD)といった表示装置は普通ランドスケープ構成になっている。即ち、表示装置は画素がランドスケープ・オリエンテーションのパターンでリフレッシュされるような物理アドレススキームになっている。図1(b)の矢印から分かるように、典型的なランドスケープ・オリエンテーションのディスプレイは左上の角からリフレッシュされ始め、第1行を右に向かって進み上から下の行へと続いていく。
コンピュータシステムまたはアプリケーションによっては、ポートレート・オリエンテーションのディスプレイの方が好ましいことがある。そうしたシステムにおいては、CRTやLCDを物理的に90度回転させることになる。図2(b)の矢印は、物理的に回転させた表示で、リフレッシュアドレススキームはランドスケープ・オリエンテーションのままで元々の画素位置(現在では時計と反対回りに左下の角に90度回転している)から始まり上に述べたと同じ順序で続けられる。
図1(a)に示したソフトウェアのアドレス指定パターンは図1(b)に示した物理アドレスパターンと同じだから、ランドスケープ・オリエンテーションのソフトウェアアドレスからランドスケープ・オリエンテーションの物理アドレスへの変換は必要ない。しかしながら、図2(a)に示したソフトウェアのアドレス指定パターンは図2(b)に示した物理アドレスパターンと同じではない。従って、ポートレート・オリエンテーションの画像アドレスはポートレート・オリエンテーションでしかもランドスケープ構成のディスプレイのための物理アドレスへの変換が必要である。
先行技術ではソフトウェアアドレスを物理アドレスに変換するプログラムか又は特別なドライバによって画像を90度回転させる。典型的な回転プログラムではビットマップ列を描画するよう命令を受けると、プログラムは先ずソフトウェア変換動作を行なって90度変換した時の新しい画素座標を決め、それからこれらの変換された座標を用いて描画動作を実行する。特定の描画動作によっては、回転した描画を「特別ケース」として処理するために別のソフトウェアが必要になることがある。例えば、回転したグラフィックス表示の中にテキスト文字を描画するには、フォントデータが格納されている通常のバイト順の回転していないオリエンテーションではなく、回転したオリエンテーションでフォント記憶域からビットマップ化されたフォント画素を検索しなければならない。この方法では、一行の所定の文字だけのためにこの回転したビットマップのフォントデータを検索するために別に幾つかのメモリサイクルが必要になることがある。一般的に、画像を回転させる描画動作はたくさんの読み取り及び変換の動作を別に実行することになり、コンピュータ処理の資源並びに時間を相当に消費することになる。より大型な或いはより複雑な画像を回転させる場合こうした問題が一層深刻になる。従って、非効率なソフトウェアプログラムを使用したりリフレッシュ動作を妨げたりすることなく、画像をポートレート・オリエンテーションで表示するために画像を回転させるシステムが必要である。
発明の開示
本願発明は、ポートレート・オリエンテーションのソフトウェアアドレスをポートレート・オリエンテーションでしかもランドスケープ構成になった表示装置のための物理アドレスに変換するシステム並びに方法を実現することにより今までのシステムの限界及び結果を克服するものである。このシステムはプロセッサバスに結合され、プログラム命令及びメモリ管理のルーチンを実行する中央処理装置(CPU)を含む。システムにはまたメモリ、周辺機器、オペレーティングシステム、プロセッサバスに結合されたグラフィックスシステム、グラフィックスシステムに結合された表示装置が含まれている。
表示装置はランドスケープ構成になっているので、ディスプレイの物理的なオリエンテーションに関係なくランドスケープパターンでリフレッシュされる。グラフィックスシステムは表示のリフレッシング及び画像のレンダリングを制御し、画像バッファメモリ、アドレス変換システム、グラフィックスコントローラを含む。アドレス変換システムはCPUからソフトウェアアドレス及び対応する画素情報を受け取り、表示装置のオリエンテーションに基づき「現状のままの」アドレスかもしくは変換されて物理アドレスのポートレート・オリエンテーションの位置を指定するアドレスかのどちらかによって指定された画像バッファの記憶場所に画素情報を渡す。代わって、CPUが読み取り動作を実行することができるが、この場合データは渡されない。画像バッファメモリは表示画像を定義する変換されたビットマップのマトリックスを格納する。グラフィックスコントローラは次に画像メモリバッファに格納されている変換されたビットマップによって定義される画素情報を表示装置に渡す。
アドレス変換システムはマルチプレクサ、アドレス変換回路、構成レジスタを含む。構成レジスタは表示装置の物理的なオリエンテーションをランドスケープまたはポートレートとして示す信号を格納する。アドレス変換回路は関数に基づいて設計されている。
L=1n(HD)/1n2及びM=1n(WD)/1n2において、HDは画素単位で測った表示装置の高さであり、WDは表示装置の幅である。Lは最上位の物理アドレスビットとして変換する最下位のソフトウェアアドレスビット数を表し、Mは反転された最下位の物理アドレスビットとして変換する最上位のソフトウェアアドレスビット数を表す。結果として生じたアドレスは表示装置上で時計と反対回りに90度回転させた画像の物理アドレスを表す。マルチプレクサはCPUで生成されたソフトウェアアドレスを第1の入力端子で受け取り、アドレス変換回路で変換された画像アドレスを第2の入力端子で受け取る。構成レジスタに格納されているオリエンテーション信号に基づき、マルチプレクサはソフトウェアアドレスか変換後のアドレスかのどちらかを画像バッファメモリに渡す。
グラフィックスコントローラは第2のマルチプレクサ、リフレッシュロジック、メモリアドレスアービトレータを含む。第2のマルチプレクサはリフレッシュロジックからリフレッシュアドレスを受け取り、アドレス変換システムから論理アドレスを受け取る。メモリアドレスアービトレータから受け取ったアービトレーション信号に基づき、第2のマルチプレクサはリフレッシュアドレスか論理アドレスかのどちらかを画素生成のために表示装置に渡す。本願発明によってソフトウェアプログラムをポートレート・オリエンテーションのソフトウェアアドレスからポートレート・オリエンテーションの物理アドレスに変換する必要がなくなるから、システム性能が向上する。その上、画像をポートレート・オリエンテーションで表示するために回転させるシステムによって回転後の特別な或いは別のソフトウェア開発をする必要がなくなる。このようなシステムを用いると、同じ従来のソフトウェアプログラムやドライバを用いてポートレート及びランドスケープ両方のオリエンテーションで描画することができるようになる。
本願発明は画像の回転を実行する方法も提供する。この方法は、構成情報を検索するステップと、ソフトウェアアドレスと、書き込み動作を実行するためにできる限り対応する画素データとを生成するステップ、データを画像バッファメモリに送りアドレスを変換システムに送るステップを含む。変換システムはアドレスの変換が必要がどうかを判断し、必要ならアドレスを変換する。変換は先に説明した関数を用いて実行される。アドレスはその後指定アドレスに画素データを格納する画像バッファメモリに送られる。
もう一つの方法は、リフレッシュアドレスを生成するステップと、リフレッシュアドレスを画像バッファメモリに送り、画像バッファメモリがリフレッシュアドレスによって指定された場所に格納された画素データを送り出すステップ、画素リフレッシングのためにリフレッシュアドレス及び画素データをディスプレイに送るステップを含む。
【図面の簡単な説明】
図1(a)は、ランドスケープ・オリエンテーションのソフトウェアアドレス指定パターンを示したブロック図である。
図1(b)は、ランドスケープ・オリエンテーション且つランドスケープ構成のディスプレイアドレススキームを示すブロック図である。
図2(a)は、ポートレート・オリエンテーションのソフトウェアアドレス指定パターンを示すブロック図である。
図2(b)は、ポートレート・オリエンテーションでしかもランドスケープ構成になったディスプレイアドレススキームを示すブロック図である。
図3は、ポートレートのオリエンテーションで表示するために画像を回転させる本願発明によるコンピュータシステムのブロック図である。
図4は、図3のグラフィックスシステムのブロック図である。
図5は、図4の変換システムのブロック図である。
図6は、図4のグラフィックスコントローラのブロック図である。
図7(a)は、ランドスケープ・オリエンテーションの4x8のソフトウェアアドレスマトリックスを示す表である。
図7(b)は、表示装置を時計と反対回りに90度回転した場合の物理アドレスマトリックスを示す表である。
図7(c)は、図7(b)の表をバイナリで表した表である。
図7(d)は、ポートレート・オリエンテーションのソフトウェアアドレス指定のマトリックスを示す表である。
図7(e)は、図7(c)のバイナリの物理アドレスを図7(d)のポートレート・オリエンテーションのソフトウェアアドレスマトリックスと比較するための表である。
図8は、図5に示したアドレス変換回路の一般的なケースの概略図である。
図9は、ソフトウェアアドレスを表示装置の物理アドレスにマッピングする好適な方法を示すフローチャートである。
図10は、表示装置上の画素をリフレッシュする好適な方法を示すフローチャートである。
発明を実施するための最良の形態
図3はポートレート・オリエンテーションの表示マトリックスを生成するためにポートレート・オリエンテーションのソフトウェアマトリックスを回転させる本願によるコンピュータシステム300のブロック図である。システム300は、プロセッサバス320に結合され、プログラムの命令やアドレス生成などメモリ管理のルーチンを実行する中央処理装置(CPU)310を含む。システム300はまた、メモリ330、周辺機器340、オペレーティングシステム350、プロセッサバス320に結合されたグラフィックスシステム370と、グラフィックスシステム370に結合された表示装置360を含む。
メモリ330はランダムアクセスメモリ(RAM)、リード専用メモリ(ROM)もしくは補助ディスク記憶装置を有し、普通は雑多なデータや、CPU310が実行するプログラム、実行プログラムの中間結果等を格納する。周辺機器340にはプリンタ、フロッピーディスクドライブ、キーボードなどがある。オペレーティングシステム350はメモリに格納されたプログラムで、CPU310によって実行される処理を制御及び促進する。表示装置360は例えばCRTやLCDで、普通はランドスケープ構成になっており、ユーザに対してコンピュータが生成した情報を表示する。ランドスケープ構成の表示装置360は図1(b)及び図2(b)に示すようにランドスケープパターンでリフレッシュされる。
グラフィックスシステム370は表示装置の画面のリフレッシングと画像レンダリングのルーチンを制御する。命令によって、グラフィックスシステム370はポートレート・オリエンテーションのソフトウェアアドレスをポートレート・オリエンテーションでしかもランドスケープ構成の表示装置360のための物理アドレスに変換する。
ソフトウェアアドレスは、表示装置360に表示する画像上の位置を指定し、マイクロソフト株式会社のマイクロソフトワードやアルダス株式会社のスーパーペイントなどソフトウェアアプリケーションプログラムによって生成することができる。ソフトウェアアドレススキームは表示装置360のオリエンテーションに依存する。即ち、表示装置360をランドスケープ・オリエンテーションで用いようとする場合、ソフトウェアアドレススキームは図7(a)に示したパターンに倣う。表示装置360をポートレート・オリエンテーションで使用しようとする場合、ソフトウェアアドレススキームは図7(d)に示したパターンに倣う。物理アドレスは表示装置360上の画素位置を指定する。物理アドレススキームは、図7(a)及び図7(b)に示すように、表示装置360のオリエンテーションに関係なく一定である。図7(b)に示すように回転させた場合の物理アドレススキームは図7(d)に示すソフトウェアアドレススキームと同じではないから、回転させた場合にはソフトウェアアドレスと物理アドレスの間のアドレスマッピングが必要である。図7(a)、図7(b)及び図7(d)の間の関係について以下により詳しく説明する。
図4はグラフィックスシステム370のブロック図で、このシステムには画像バッファメモリ410、アドレス変換システム420、グラフィックスコントローラ430が含まれる。
画像バッファメモリ410は表示装置360に表示される画像を定義するビットマップマトリックスを格納する。ビットマップマトリックスはビット列を含み、その列はそれぞれ画素位置、カラー、解像度、コントラストなどの画素情報を定義する。ビットマップマトリックスの編成に基づいて、画像をランドスケープ表示に又はポートレート表示にすることができる。
画像バッファメモリ410はCPU310からバス320のデータ線440で画素情報データを、グラフィックスコントローラ430からアドレス線470でメモリアドレスを受け取る。受け取ったメモリアドレスは、線440でデータが書き込まれ或いは線440でデータが読み取られる画像バッファメモリ410の記憶場所を指定している。画像バッファメモリ410はスタティックRAM(SRAM)デバイスであるのが好ましい。それは、SRAMは統一アドレスによってアクセスされ、そのために高速(FP)ページのダイナミックRAM(DRAM)を用いると分かるように可能性として存在するページブレーク発生という無駄を回避するからである。但し、DRAMのページブレークが管理されていれば、代わりにFPタイプや他の同じようなタイプのDRAMを使用することができる。
アドレス変換システム420は読み取り或いは書き込み動作を実行するためにCPU310からバス320のアドレス線450で(ソフトウェアアプリケーションプログラムで生成された)アドレスを受け取る。書き込み動作を実行する際、表示装置360のオリエンテーションに基づき、アドレス変換システム420はランドスケープ・オリエンテーションの表示装置360に対応する「現状のままの」受け取ったアドレスを渡すか、或いはポートレート・オリエンテーションの表示装置360の画素位置に対応するように変換されたアドレスを渡すかのどちらかを行なう。アドレスは線460でグラフィックスコントローラ430に送られる。このアドレスは「論理」アドレスと称され、データ線440で駆動される画素データを格納する画像バッファメモリ410の場所を指定している。
グラフィックスコントローラ430は画像バッファメモリ410及び表示装置360を制御する。より具体的には、グラフィックスコントローラ430はアドレス変換システム420から線460で論理アドレスを受け取り、その論理アドレスを線470で画像バッファメモリに送る。書き込み動作のためのアドレスを受け取ると、画像バッファメモリ410はCPU310から線440で送られるデータをその受け取った論理アドレスが指定している場所に格納する。読み取り動作のためのアドレスを受け取ると、画像バッファメモリ410は線440でデータをCPU310に送り出す。
アドレス変換は画像情報またはデータが画像バッファメモリ410に格納される前に実行されるから、画像バッファメモリ410のビットマップマトリックスは表示装置360に表示される画像のオリエンテーションを定義する。データが変換されないまま画像バッファメモリ410に格納されていれば、ランドスケープ・オリエンテーションの表示装置は画像をランドスケープのオリエンテーションで表示する。しかしながら、データが変換アドレスを用いて画像バッファメモリ410に格納されていれば、ポートレート・オリエンテーションでしかもランドスケープ構成の表示装置はポートレートのオリエンテーションで画像を表示する。
グラフィックスコントローラ430は表示装置360のリフレッシュアドレス生成も行なうが、それは従来の方法で実行される。グラフィックスコントローラ430はリフレッシュアドレスを線470で画像バッファメモリ410に送って線480で対応する画素情報を検索し、リフレッシュアドレス及び画素情報を信号バス490で表示装置360に渡す。こうして、表示装置360は画素をリフレッシュする。
図5はアドレス変換システム420のブロック図で、マルチプレクサ(MUX)510、アドレス変換回路520、及び構成レジスタ530を含む。
構成レジスタ530は画面の大きさや表示のオリエンテーションなど表示装置360の構成情報を格納する。画面の大きさは表示の幅(WD)と高さ(HD)を共に画素の単位で指定する。表示のオリエンテーションは表示装置360が図1(b)に示すようにランドスケープのオリエンテーションで配置されるか或いは図2(b)に示すようにポートレートのオリエンテーションで配置されるかを指定する。CPU310はOEM(Original Equipment Manufacturers)メーカーが設定したDIP(Dual In-Line Package)スイッチやトグルスイッチ或いは他の手段から表示情報を含む構成情報を検索し、情報を構成レジスタ530に格納する。代わって、CPU310は大きさの順序を逆にして一行につき240画素、一列につき320画素を格納することができる。表示装置360は相変わらずランドスケープ構成であるけれども表示のオリエンテーション信号は格納されている大きさの順序によって決められる。
例えば、表示装置360は320画素／行X240画素／列を表示するように構成され、ポートレートのオリエンテーションで配置されるようになっているもしれない。この情報は表示装置360の従来のDIPスイッチに格納されている。従って、CPU310はDIPスイッチから情報を検索し、320画素／行X240画素／列を示す大きさとポートレート・オリエンテーションを示す信号を構成レジスタ530に格納する。
アドレス変換回路520はポートレート・オリエンテーションのソフトウェアアドレスをポートレート・オリエンテーションでしかもランドスケープ構成の表示装置360の物理アドレスに変換する。即ち、アドレス変換回路520はソフトウェアアドレスを線450でCPU310から受け取り、時計と反対回りに90度回転しているとアドレスビットの順序を並べ替えてポートレート・オリエンテーションの表示装置360上の画素位置の新しい画素アドレスを指定する。表示装置360は時計回りに90度回転させてもいいが、時計回りと反対方向に回転させる方が一般的ケースの変換関数を作り易くなる。
ポートレート・オリエンテーションのソフトウェアアドレス空間からポートレート・オリエンテーションでしかもランドスケープ構成になった表示装置360のアドレス空間への変換は次の関数に基づく：
2L=HD又は
L=1n(HD)/1n2
上記において、HDは画素単位で測った図1(b)に示したランドスケープ・オリエンテーションの表示装置360の高さである。Lは最上位ビットの物理アドレスとして順序を並べ替える最下位のソフトウェアアドレスビット数を表す。変換は次の関数に基づく：
2M=WD又は
M=1n(WD)/1n2
上記において、WDはランドスケープ・オリエンテーションの表示装置360の幅を画素を単位として表現している。Mは最下位の物理アドレスビットとして順序の並べ替え、変換する(補数をとる)最上位のソフトウェアアドレスビット数を表す。M+Lはソフトウェア及び物理の両方のアドレスを指定するアドレスビットの合計数である。
アドレス変換回路520は変換された新しいアドレスを線540でMUX510の一つの入力端子に渡し、CPU310から線450で送られてくるソフトウェアアドレスをMUX510の第2の入力端子で受け取る。構成レジスタ530から線550で受け取った表示装置360のオリエンテーションを指定する制御信号に基づき、マルチプレクサ510は2つの入力アドレスのうちの一つを選択し、それを論理アドレスとしてアドレス線460でグラフィックスコントローラ430に渡す(図4)。
図6は、グラフィックスコントローラ430のブロック図で、マルチプレクサ(MUX)610、リフレッシュロジック620、メモリアドレスアービトレータ630を含む。MUX610は、リフレッシュロジック620から線640でリフレッシュアドレス信号を、そして変換システム420から線460で論理アドレスを受け取る。リフレッシュロジック620は従来のリフレッシュアドレス生成手法を用いて表示装置360上の画素位置に対応するリフレッシュアドレスを生成することができる。
メモリアドレスアービトレータ630から受け取った制御信号に基づいて、MUX610は線640からのリフレッシュ信号か或いは線460からの論理アドレスかのいずれかを選択して、線470で画像バッファメモリ410に転送する。アービトレータ630は優先順位及び時間の管理スキームを用いてどの制御信号を送るかを決定する。例えば、アービトレータ630はリフレッシュアドレスを優先し、パイプライン式のリフレッシュアドレスをイネーブルにして複数の画素リフレッシュが実行できるようにする。論理アドレスが選択されメモリアドレスとして線470で画像バッファメモリ410に送られると(図4)、論理アドレスによって指定された画像バッファメモリ410の記憶場所に線440でCPU310からのデータが書き込まれる。リフレッシュアドレスが選択されメモリアドレスとして線470で画像バッファメモリ410に送られると、画像バッファメモリ410は対応する画素情報又はデータを線480でグラフィックスコントローラ430に届ける。グラフィックスコントローラはリフレッシュアドレス及び画素情報を線490で表示装置360に転送する。
従って、CPU310は表示装置360のオリエンテーションに関係なく同じように画素情報又はデータを画像バッファメモリ410に書き込み、そこから読み出す。
図7(a)から図7(e)に示すのは、ポートレート・オリエンテーションのソフトウェアアドレスからポートレート・オリエンテーションの物理アドレスへの変換関数である。より具体的には、図7(a)はランドスケープ・オリエンテーションの4x8のアドレスマトリックスを示す表で、アドレスマトリックスはランドスケープ・オリエンテーションの画像のソフトウェアアドレスを表すと共にランドスケープ・オリエンテーションの表示装置360の物理アドレスを表している。ランドスケープ・オリエンテーションのソフトウェアアドレス及び物理アドレスのスキームは、アドレス「0」のある左上角から始まり、8つのアドレスからなる第1行目を続け、下に向かって4行を連続して走査するのが好ましい。ソフトウェアアドレスは物理アドレスと同じだから、ソフトウェアから物理アドレスに変換する必要がない。
しかしながら、表示装置360が時計と反対回りに90度回転し、適切な構成情報が構成レジスタ530に格納されていれば(図5)、表示装置のための物理アドレスマトリックスは図7(b)のようになる。図7(b)の回転した表示装置360の物理アドレスマトリックスはアドレス「0」のある左下角から始まり、8つのアドレスからなる第1列を上に向かって続き、4列を連続して右方向に走査していく。図7(c)は図7(b)の表にある数をバイナリ(2進法)で示したものである。図7(a)には32のアドレスがあるから、アドレスはそれぞれ図7(c)の5つのバイナリビットで定義される。
物理的な表示装置360は時計と反対回りに90度回転しているから、CPU310は図7(d)に示すポートレート・オリエンテーションのアドレススキームを指定する新しいソフトウェアアドレスマトリックスを用いる。従って、新しいソフトウェアアドレススキームはアドレス「0」のある左上角から始まり、4つの列アドレスからなる第1行目を続け、8つの行を連続して走査していく。しかしながら、図7(d)に示した新らしいソフトウェアアドレスのマトリックスは図7(b)に示した物理アドレスのマトリックスと同じではないから、そのために変換が必要である。
図7(e)は、図7(d)のポートレート・オリエンテーションのソフトウェアアドレスマトリックスを図7(c)のバイナリの物理アドレスと比較した表である。先に説明した図5のアドレス変換関数を図7(a)から図7(e)の例題に応用するとL=1n4/1n2=2及びM=1n8/1n2=3になる。従って、本願発明はソフトウェアアドレスの2つの最下位ビットA1とA0を物理アドレスの2つの最上位ビットに置き換える。本願発明はまた3つの最上位ソフトウェアアドレスビットA4、A3、A2を反転して3つの最下位物理アドレスビットに置き換える。変換関数はソフトウェアアドレスを
0003951308.tif 000002
として順序を並べ替えて論理アドレス、しかるに物理アドレスを生成する。
表示装置360の一方の大きさが2N画素の大きさでない場合、その時表示装置360にはM+Lのアドレス線でアドレス指定可能な全てのメモリ空間に対応する記憶場所はないから、システム300はオフセットをインプリメントする。生成された全ての論理アドレスが確実に表示装置360上の位置にマップされるようにするため、オフセットは従来の方法でソフトウェアまたはドライバによって処理される。これらのオフセットは構成レジスタ530(図5)か、OEMメーカーが設定するDIPスイッチ、或いはその他に格納される。
例えば、典型的なランドスケープ・オリエンテーションの表示装置は320画素／行X240画素／列を描画するように構成されている。320も240も2の整数ベキ乗ではない。従ってオフセットが必要である。先ず、アドレス変換回路520は2の整数ベキ乗になる幅及び高さを用いて最も近くしかも大きい方のアドレス空間、つまり512X256に基づいて設計される。オフセットはこの次に大きいアドレス空間に基づいて決められる。即ち、使用可能なメモリ空間のうちランドスケープ・オリエンテーションの最も右側の192列とランドスケープ・オリエンテーションの最も下の16行は表示装置360上の位置にマップすることはできない。これらのオフセットは格納され、論理アドレスのこれらの領域へのマッピングを禁止のに使用される。表示装置360がポートレート・オリエンテーションになるように時計と反対回りで90度回転していると、今度は使用可能なメモリ空間のうち最も上の192行と最も右側の16列がマップ不能になる。
オフセット計算をしないで済むようにするには、画素を単位として測った幅と高さが2の整数ベキ乗になるように表示装置360を設計すればよい。
図8に示すのは一般的な場合のアドレスマトリックスとして設計された変換回路520である。図5において説明した変換関数に基づけば、Lは最上位の物理アドレスビットとして順序が入れ替わる最下位のソフトウェアアドレスビット数で、Mは反転して最下位の物理アドレスビットとして順序が入れ替わる最上位のソフトウェアアドレスビット数であり、M+Lはソフトウェアアドレス或いは物理アドレスを指定するアドレスビットの総数である。従って、最上位のソフトウェアアドレスA(M+L-1)〜A(L)は補数がとられ、メモリアドレス位置MA(M-1)〜MA0にマップされる。最下位のソフトウェアアドレスA(L-1)〜A0はメモリアドレス位置MA(M+L-1)〜MA(M)にマップされる。さらに、図8に示すのは、ソフトウェアアドレスに基づく物理アドレスのための関数、つまりA(L-1)〜A0でその後に
0003951308.tif 000003
が続く。
図9は、表示装置360の物理アドレスにソフトウェアアドレスをマップする好適な方法900を示すフローチャートである。方法900は、CPU310が表示装置360の大きさやオリエンテーションなど表示装置360の構成情報を検索することによってステップ910から始まる。ステップ920で、ソフトウェアアプリケーションプログラムは画素データと検索した構成情報に基づきソフトウェアアドレスを生成する。構成情報がランドスケープ・オリエンテーションの表示装置360を指定していれば、ソフトウェアアプリケーションプログラムは図7(a)に示したランドスケープ・オリエンテーションのソフトウェアアドレススキームを用いる。構成情報がポートレート・オリエンテーションの表示装置360を指定していれば、ソフトウェアアプリケーションプログラムは図7(d)に示したポートレート・オリエンテーションのソフトウェアアドレススキームを用いる。
ステップ930で、CPU310は画素データをデータバス440に、そしてソフトウェアアドレスをアドレスバス450に乗せる。ソフトウェアアドレスはアドレス変換システム420に受け取られ、ステップ940でアドレス変換が必要かどうかが決められる。構成情報が表示装置360はランドスケープ・オリエンテーションであることを示していればアドレス変換は必要ない。そうでなければ、アドレス変換が必要で、その場合には先に図5において説明した関数によってアドレスが変換される。アドレス変換システム420は論理アドレスを生成するが、それは「現状のままの」ソフトウェアアドレスか又はディスプレイが時計と反対回りに90度回転していれば画素位置を指定するために変換されたアドレスかのどちらかである。
ステップ940で、論理アドレスが線460でグラフィックスコントローラ430に送られ、そこからステップ950でメモリアドレスとしてその論理アドレスが線470で画像バッファメモリ410に渡される。メモリアドレスを受け取ると、ステップ960で画像バッファメモリ410は画素データをデータ線440で指定の記憶場所に格納する。それで方法900が終了する。
図10は、表示装置360上の画素をリフレッシュする好適な方法1000を示すフローチャートである。方法1000はステップ1010から始まり、グラフィックスコントローラ430は従来の方法でリフレッシュアドレスを生成する。ステップ1020でMUX610はリフレッシュアドレスを選択し、それをメモリアドレスとして線470で画像バッファメモリ410に渡す。メモリアドレスを受け取るとステップ1030で画像バッファメモリ410は画素データを線480で画像バッファメモリ410内の指定の記憶場所からグラフィックスコントローラ430に送り出す。ステップ1040で、グラフィックスコントローラ430はリフレッシュアドレス及び検索した画素データをバス490を介して表示装置360に送り、それによってその記憶場所をリフレッシュする。方法1000はそれで終了する。
システム300はポートレート・オリエンテーションのソフトウェアアドレスをポートレート・オリエンテーションでしかもランドスケープ構成の表示装置360のための物理アドレスに変換するのに利点がある。第1に、変換がハードウェアで実行されるから、効率の悪いソフトウェア変換アプリケーションが不要である。第2に、変換は画素データが画像バッファメモリ410に格納される前に実行されるから、リフレッシュのための連続変換が不要である。第3に、変換はハードウェアで実行されるから、CPU310は表示装置360のオリエンテーションに関係なく同じようにメモリをアクセスできる。
上述の本願発明の好適な実施例についての説明は例題としてであって、本願発明によるシステム300のバリエーションが可能である。例えば、表示装置360はランドスケープ構成となっているが、代わってポートレート構成で変換関数を逆にすることもできる。第2に、表示装置360は時計と反対回りに回転させているが、時計回りに回転させ補数アドレス変換関数をインプリメントすることができる。第3に、システム300はマルチプロセッサや多重スレッド方式の環境で実施してもいい。第4に、画像バッファメモリ410はメモリ330とは別個のメモリブロックとして示されているが、システム300は統一メモリアーキテクチャを用いてインプリメントすることができる。第5に、本願発明はレーザプリンタなど表示装置以外の走査出力装置でも用いることができる。
本明細書で説明した実施例は説明のために提示しているのであってそれにより他を排除したりそれに限定しようとしているわけではなく、前述の教示に鑑みれば数多くのバリエーション及び変更が可能である。システム300は以下に記載のクレームによってのみ限定されるものである。
【図１（ａ）】
0003951308.tif 000004
【図１（ｂ）】
0003951308.tif 000005
【図２（ａ）】
0003951308.tif 000006
【図２（ｂ）】
0003951308.tif 000007
【図３】
0003951308.tif 000008
【図４】
0003951308.tif 000009
【図５】
0003951308.tif 000010
【図６】
0003951308.tif 000011
【図７（ａ）】
0003951308.tif 000012
【図７（ｂ）】
0003951308.tif 000013
【図７（ｃ）】
0003951308.tif 000014
【図７（ｄ）】
0003951308.tif 000015
【図７（ｅ）】
0003951308.tif 000016
【図８】
0003951308.tif 000017
【図９】
0003951308.tif 000018
【図１０】
0003951308.tif 000019