(57)【特許請求の範囲】
【請求項１】
A)列及び行で配列された画素の値を表す画像画素データ信号を受け取るための第1入力端子と、
B)前記画像画素データ信号に対応する画素の値を表す行及び列を識別する画像画素アドレス信号を受け取るための第2入力端子と、
C)前記画像画素アドレス信号を受け取り、それを画像画素アドレス信号が表す画素の列及び行にそれぞれ対応する記憶場所としての行及び列を識別する、論理アドレス信号に変換するためのアドレス変換システムと、
D)記憶場所としての行及び列に編成された記憶場所からなり、前記画像画素データ信号を受け取り、その画像画素データ信号によって表された値を、対応する論理アドレス信号で識別される記憶場所としての列及び行に格納し、それらの値を、印加されたリフレッシュアドレス信号で指定された記憶場所としての列及び行から検索するための画像バッファメモリと、
E)列フォワードモード及び列リバースモードで二者択一的に動作可能であって、複数の連続する記憶場所としての行の各々にある記憶場所としての列と連続して対応付けられたメモリアドレスを指定するリフレッシュアドレス信号を生成して、前記画像バッファメモリに印加するためのリフレッシュアドレスジェネレータであって、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが列フォワードモードで動作していると記憶場所としての行内で増加し、前記リフレッシュアドレスジェネレータが列リバースモードで動作していると記憶場所としての行内で減少していくように構成されているリフレッシュアドレスジェネレータと、
F)前記論理アドレス信号及び前記リフレッシュアドレス信号を受け取ると共に、セレクト信号に応答して前記論理アドレス信号及び前記リフレッシュアドレス信号のうちの片方を選択して、それを前記画像バッファメモリに渡すためのマルチプレクサと、
G)前記セレクト信号を生成するためのメモリアドレスアービットレータと、
H)前記画像バッファメモリの記憶場所としての行及び列からフェッチされた前記画像画素データ信号を、それで表された画素値を複数の連続して走査された行の各々に沿って連続する列の位置に表示するために、表示装置へ出力するための手段と、
からなり、
前記リフレッシュアドレスジェネレータが、
Ｉ)出力ラッチ入力を受け取り、クロック時間のシーケンスの最後の出力ラッチ入力の値で決められた値を表す信号を、リフレッシュアドレス出力として生成する出力ラッチと、
Ｊ)出力ラッチ入力として第1列信号及び次列信号を二者択一的に出力ラッチに結合する次アドレスマルチプレクサと、
を含むことを特徴とする画像処理装置。
【請求項２】
前記リフレッシュアドレスジェネレータが、
A)リフレッシュアドレス出力が表す値より1つ大きいアドレスを表す増分出力を生成する増分回路と、
B)リフレッシュアドレス出力が表す値より1つ小さいアドレスを表す減分出力を生成する減分回路と、
C)前記リフレッシュアドレスジェネレータが列フォワードモードになっていると増分出力を転送し、前記リフレッシュアドレスジェネレータが列リバースモードになっていると減分出力を転送することによって、前記次列信号を生成する次列マルチプレクサと、
を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記リフレッシュアドレスジェネレータは、さらに行フォワードモード及び行リバースモードで二者択一的に動作し、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが行フォワードモードで動作していると記憶場所としての行間で増加し、前記リフレッシュアドレスジェネレータが行リバースモードで動作していると記憶場所としての行間で減少していくことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記リフレッシュアドレスジェネレータが、
A)第1列ラッチ入力を受け取り、行クロック時間のシーケンスの最後の第1列ラッチ入力値で決められた値を表す信号を前記第1列信号として生成する第1列ラッチと、
B)前記第1列信号が表す値より行オフセット分だけ大きいアドレスを表す和出力を生成する和回路と、
C)前記第1列信号が表す値より行オフセット分だけ小さいアドレスを表す差出力を生成する差回路と、
D)前記リフレッシュアドレスジェネレータが、行フォワードモードになっていると前記和出力を転送し、前記リフレッシュアドレスジェネレータが行リバースモードになっていると前記差出力を転送することによって、次行信号を生成する次行マルチプレクサと、
E)第1列ラッチ入力として次行信号を第1列ラッチに転送する行信号結合回路と、
を含むことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記行信号結合回路は、前記第1列ラッチ入力として、開始アドレス信号及び前記次行信号を二者択一的に前記第1列ラッチに結合する行開始マルチプレクサからなることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
A)列及び行で配列された画素の値を表す画像画素データ信号を受け取るための第1入力端子と、
B)前記画像画素データ信号に対応する画素の値を表す行及び列を識別する画像画素アドレス信号を受け取るための第2入力端子と、
C)前記画像画素アドレス信号を受け取り、それを画像画素アドレス信号が表す画素の列及び行にそれぞれ対応する記憶場所としての行及び列を識別する、論理アドレス信号に変換するためのアドレス変換システムと、
D)記憶場所としての行及び列に編成された記憶場所からなり、前記画像画素データ信号を受け取り、その画像画素データ信号によって表された値を、対応する論理アドレス信号で識別される記憶場所としての列及び行に格納し、それらの値を、印加されたリフレッシュアドレス信号で指定された記憶場所としての列及び行から検索するための画像バッファメモリと、
E)行フォワードモード及び行リバースモードで二者択一的に動作可能であって、複数の連続する記憶場所としての行の各々にある記憶場所としての列と連続して対応付けられたメモリアドレスを指定するリフレッシュアドレス信号を生成して、前記画像バッファメモリに印加するためのリフレッシュアドレスジェネレータであって、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが行フォワードモードで動作していると記憶場所としての行間で増加し、前記リフレッシュアドレスジェネレータが行リバースモードで動作していると記憶場所としての行間で減少していくように構成されているリフレッシュアドレスジェネレータと、
F)前記論理アドレス信号及び前記リフレッシュアドレス信号を受け取ると共に、セレクト信号に応答して前記論理アドレス信号及び前記リフレッシュアドレス信号のうちの片方を選択して、それを前記画像バッファメモリに渡すためのマルチプレクサと、
G)前記セレクト信号を生成するためのメモリアドレスアービットレータと、
H)前記画像バッファメモリの記憶場所としての行及び列からフェッチされた前記画像画素データ信号を、それで表された画素値を複数の連続して走査された行の各々に沿って連続する列の位置に表示するために、表示装置へ出力するための手段と、
からなり、
前記リフレッシュアドレスジェネレータが、
Ｉ)出力ラッチ入力を受け取り、クロック時間のシーケンスの最後の出力ラッチ入力の値で決められた値を表す信号を、リフレッシュアドレス出力として生成する出力ラッチと、
Ｊ)出力ラッチ入力として第1列信号及び次列信号を二者択一的に出力ラッチに結合する次アドレスマルチプレクサと、
を含むことを特徴とする画像処理装置。
【請求項７】
前記リフレッシュアドレスジェネレータが、
A)第1列ラッチ入力を受け取り、行クロック時間のシーケンスの最後の第1列ラッチ入力値で決められた値を表す信号を前記第1列信号として生成する第1列ラッチと、
B)前記第1列信号が表す値より行オフセット分だけ大きいアドレスを表す和出力を生成する和回路と、
C)前記第1列信号が表す値より行オフセット分だけ小さいアドレスを表す差出力を生成する差回路と、
D)前記リフレッシュアドレスジェネレータが、行フォワードモードになっていると前記和出力を転送し、前記リフレッシュアドレスジェネレータが行リバースモードになっていると前記差出力を転送することによって、次行信号を生成する次行マルチプレクサと、
E)第1列ラッチ入力として次行信号を第1列ラッチに転送する行信号結合回路と、
を含むことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記行信号結合回路は、前記第1列ラッチ入力として、開始アドレス信号及び前記次行信号を二者択一的に前記第1列ラッチに結合する行開始マルチプレクサからなることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
A)列及び行で配列された画素の値を表す画像画素データ信号を受け取るための第1入力端子と、
B)前記画像画素データ信号に対応する画素の値を表す行及び列を識別する画像画素アドレス信号を受け取るための第2入力端子と、
C)前記画像画素アドレス信号を受け取り、それを画像画素アドレス信号が表す画素の列及び行にそれぞれ対応する記憶場所としての行及び列を識別する、論理アドレス信号に変換するためのアドレス変換システムと、
D)記憶場所としての行及び列に編成された記憶場所からなり、前記画像画素データ信号を受け取り、その画像画素データ信号によって表された値を、対応する論理アドレス信号で識別される記憶場所としての列及び行に格納し、それらの値を、印加されたリフレッシュアドレス信号で指定された記憶場所としての列及び行から検索するための画像バッファメモリと、
E)列フォワードモード及び列リバースモードで二者択一的に動作可能であって、複数の連続する記憶場所としての行の各々にある記憶場所としての列と連続して対応付けられたメモリアドレスを指定するリフレッシュアドレス信号を生成して、前記画像バッファメモリに印加するためのリフレッシュアドレスジェネレータであって、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが列フォワードモードで動作していると記憶場所としての行内で増加し、前記リフレッシュアドレスジェネレータが列リバースモードで動作していると記憶場所としての行内で減少していくように構成されているリフレッシュアドレスジェネレータと、
F)前記論理アドレス信号及び前記リフレッシュアドレス信号を受け取ると共に、セレクト信号に応答して前記論理アドレス信号及び前記リフレッシュアドレス信号のうちの片方を選択して、それを前記画像バッファメモリに渡すためのマルチプレクサと、
G)前記セレクト信号を生成するためのメモリアドレスアービットレータと、
H)前記画像バッファメモリの記憶場所の行及び列からフェッチされた前記画像画素データ信号を受け取り、それによって表された画素値を、複数の連続して走査された行の各々に沿って連続した列位置に表示するための表示装置と、
I)複数の前記画像画素データ信号を第1及び第2の入力端子に印加するための中央処理装置と、
からなり、
前記リフレッシュアドレスジェネレータが、
Ｊ)出力ラッチ入力を受け取り、クロック時間のシーケンスの最後の出力ラッチ入力の値で決められた値を表す信号を、リフレッシュアドレス出力として生成する出力ラッチと、
Ｋ)出力ラッチ入力として第1列信号及び次列信号を二者択一的に出力ラッチに結合する次アドレスマルチプレクサと、
を含むことを特徴とする画像処理システム。
【請求項１０】
前記リフレッシュアドレスジェネレータが、
A)リフレッシュアドレス出力が表す値より1つ大きいアドレスを表す増分出力を生成する増分回路と、
B)リフレッシュアドレス出力が表す値より1つ小さいアドレスを表す減分出力を生成する減分回路と、
C)前記リフレッシュアドレスジェネレータが列フォワードモードになっていると増分出力を転送し、前記リフレッシュアドレスジェネレータが列リバースモードになっていると減分出力を転送することによって、前記次列信号を生成する次列マルチプレクサと、
を含むことを特徴とする請求項９に記載の画像処理システム。
【請求項１１】
前記リフレッシュアドレスジェネレータは、さらに行フォワードモード及び行リバースモードで二者択一的に動作し、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが行フォワードモードで動作していると記憶場所としての行間で増加し、前記リフレッシュアドレスジェネレータが行リバースモードで動作していると記憶場所としての行間で減少していくことを特徴とする請求項９または請求項１０に記載の画像処理システム。
【請求項１２】
前記リフレッシュアドレスジェネレータが、
A)第1列ラッチ入力を受け取り、行クロック時間のシーケンスの最後の第1列ラッチ入力値で決められた値を表す信号を前記第1列信号として生成する第1列ラッチと、
B)前記第1列信号が表す値より行オフセット分だけ大きいアドレスを表す和出力を生成する和回路と、
C)前記第1列信号が表す値より行オフセット分だけ小さいアドレスを表す差出力を生成する差回路と、
D)前記リフレッシュアドレスジェネレータが、行フォワードモードになっていると前記和出力を転送し、前記リフレッシュアドレスジェネレータが行リバースモードになっていると前記差出力を転送することによって、次行信号を生成する次行マルチプレクサと、
E)第1列ラッチ入力として次行信号を第1列ラッチに転送する行信号結合回路と、
を含むことを特徴とする請求項１１に記載の画像処理システム。
【請求項１３】
前記行信号結合回路は、前記第1列ラッチ入力として、開始アドレス信号及び前記次行信号を二者択一的に前記第1列ラッチに結合する行開始マルチプレクサからなることを特徴とする請求項１２に記載の画像処理システム。
【請求項１４】
A)列及び行で配列された画素の値を表す画像画素データ信号を受け取るための第1入力端子と、
B)前記画像画素データ信号に対応する画素の値を表す行及び列を識別する画像画素アドレス信号を受け取るための第2入力端子と、
C)前記画像画素アドレス信号を受け取り、それを画像画素アドレス信号が表す画素の列及び行にそれぞれ対応する記憶場所としての行及び列を識別する、論理アドレス信号に変換するためのアドレス変換システムと、
D)記憶場所としての行及び列に編成された記憶場所からなり、前記画像画素データ信号を受け取り、その画像画素データ信号によって表された値を、対応する論理アドレス信号で識別される記憶場所としての列及び行に格納し、それらの値を、印加されたリフレッシュアドレス信号で指定された記憶場所としての列及び行から検索するための画像バッファメモリと、
E)行フォワードモード及び行リバースモードで二者択一的に動作可能であって、複数の連続する記憶場所としての行の各々にある記憶場所としての列と連続して対応付けられたメモリアドレスを指定するリフレッシュアドレス信号を生成して、前記画像バッファメモリに印加するためのリフレッシュアドレスジェネレータであって、前記リフレッシュアドレス信号が指定するメモリアドレスは、前記リフレッシュアドレスジェネレータが行フォワードモードで動作していると記憶場所としての行間で増加し、前記リフレッシュアドレスジェネレータが行リバースモードで動作していると記憶場所としての行間で減少していくように構成されているリフレッシュアドレスジェネレータと、
F)前記論理アドレス信号及び前記リフレッシュアドレス信号を受け取ると共に、セレクト信号に応答して前記論理アドレス信号及び前記リフレッシュアドレス信号のうちの片方を選択して、それを前記画像バッファメモリに渡すためのマルチプレクサと、
G)前記セレクト信号を生成するためのメモリアドレスアービットレータと、
H)前記画像バッファメモリの記憶場所の行及び列からフェッチされた前記画像画素データ信号を受け取り、それによって表された画素値を、複数の連続して走査された行の各々に沿って連続した列位置に表示するための表示装置と、
I)複数の前記画像画素データ信号を第1及び第2の入力端子に印加するための中央処理装置と、
からなり、
前記リフレッシュアドレスジェネレータが、
Ｊ)出力ラッチ入力を受け取り、クロック時間のシーケンスの最後の出力ラッチ入力の値で決められた値を表す信号を、リフレッシュアドレス出力として生成する出力ラッチと、
Ｋ)出力ラッチ入力として第1列信号及び次列信号を二者択一的に出力ラッチに結合する次アドレスマルチプレクサと、
を含むことを特徴とする画像処理システム。
【請求項１５】
前記リフレッシュアドレスジェネレータが、
A)第1列ラッチ入力を受け取り、行クロック時間のシーケンスの最後の第1列ラッチ入力値で決められた値を表す信号を前記第1列信号として生成する第1列ラッチと、
B)前記第1列信号が表す値より行オフセット分だけ大きいアドレスを表す和出力を生成する和回路と、
C)前記第1列信号が表す値より行オフセット分だけ小さいアドレスを表す差出力を生成する差回路と、
D)前記リフレッシュアドレスジェネレータが、行フォワードモードになっていると前記和出力を転送し、前記リフレッシュアドレスジェネレータが行リバースモードになっていると前記差出力を転送することによって、次行信号を生成する次行マルチプレクサと、
E)第1列ラッチ入力として次行信号を第1列ラッチに転送する行信号結合回路と、
を含むことを特徴とする請求項１４に記載の画像処理システム。
【請求項１６】
前記行信号結合回路は、前記第1列ラッチ入力として、開始アドレス信号及び前記次行信号を二者択一的に前記第1列ラッチに結合する行開始マルチプレクサからなることを特徴とする請求項１５に記載の画像処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願発明は、一般的には画像処理装置及び画像処理システムに関し、より具体的には表示画像を回転させるハードウェアシステムに関する。
【０００２】
【従来の技術】
コンピュータシステムは画像をビットマップ形式で格納する。ビットマップは、ディスプレイコントローラが画素に対応するビット列を読み取り、その列をディスプレイに転送して画素をレンダリングすることができるように編成されている。ディスプレイコントローラは画像全体が表示されるようになるまで連続する画素に対してこのプロセスを繰り返す。
【０００３】
ビットマップ編成によって画像の大きさ及び画像のオリエンテーション、つまりポートレートか又はランドスケープかが決まる。画像は、幅と比べて高さの方が大きければポートレートオリエンテーションで、高さと比べて幅の方が大きければランドスケープオリエンテーションである。図1(a)に示すのはランドスケープオリエンテーションの画像のビットマップである。画像の幅(WI)の方が高さ(HI)と比べて大きい。図2(a)に示すのはポートレートオリエンテーションの画像のビットマップである。HIの方がWIより大きい。対応する図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度回転した時の新たな画素座標を決めるためにソフトウェア変換動作を実行した後、これらの変換された座標を用いて描画動作を実行する。或る特定の描画動作においては、「特別のケース」として回転した描画を処理するさらに別のソフトウェアを必要とする。例えば、回転したグラフィックス表示の中にテキスト文字を描くには、フォントデータが格納されている通常のバイト順の回転していないオリエンテーションではなく、回転した後のオリエンテーションでフォント記憶域からビットマップになったフォント画素を検索するようにしなければならない。これには1行の或る所定の文字だけのためにこの回転したビットマップのフォントデータを検索する複数のメモリサイクルがさらに別途必要なことがある。概して、いかなる描画動作でも画像を回転させるには追加の読み取り及び変換動作を多量に必要とするために、コンピュータ処理のリソース及び時間をかなり消費することになる。これらの問題は、回転させる画像がより大きく或いはより複雑になるにつれて、一層深刻になる。
【０００８】
入力信号が表示しようとしている画像の鏡映画像を表すようになった場合、さらに一層複雑になる。これは、例えば、ビデオコンファレンス環境のビデオカメラは通常の水平方向のオリエンテーションで会議の出席者を写すようになっているが、それと同時に文書に対して撮影範囲を下向きに偏向させるためのミラーを設置している場合に生じる。システムによっては、走査を逆にすることができるビデオカメラを用いることによってこの反転に対処するようにしている。しかしながら、このオプションには相当なコストペナルティがかかる。
【０００９】
【課題を解決するための手段】
発明者たちはこの鏡像の問題に対処すると同時に、ポートレートからランドスケープへの転換において柔軟性を高める低コストの方法を提供する道を開いた。先に述べた本願の親出願では、伴う画素データで表された画素の画像位置を指定するのに用いられる入力アドレス値の転換を行なうことによってポートレートオリエンテーションとランドスケープオリエンテーション間の転換問題に取り組んでいる。転換によってポートレートオリエンテーションの画素位置がランドスケープリフレッシュ型表示装置上で対応する位置のデータを保持するリフレッシュメモリロケーションのアドレスに変わる。その結果、表示装置の走査編成に対応する順序でリフレッシュメモリを走査することによって表示用リフレッシュデータを生成すると、ランドスケープ方向に走査されていても表示装置が正しいポートレートオリエンテーションで配置されていれば、意図した通りに見えるようになる。
【００１０】
発明者たちは、このオリエンテーションの調整の有益さに関して、メモリの内容が表示するためにフェッチされている時にリフレッシュメモリに用いるリフレッシュアドレスの進行順序を逆にする手だてを含むことによってさらに一層有益なものになることを認識している。具体的には、2つの行アドレス指定モードと2つの列アドレス指定モードを備えるようにする。片方の列アドレス指定モードでは、1行内の列アドレスの進行順序は昇順の列アドレスになり、もう一方の列アドレスモードでは降順になる。同様に、行アドレスについては、リフレッシュアドレスジェネレータが行フォワードモードになっていれば対応する表示装置で画面の行から行に進むにつれて増加していくが、行リバースモードになっていれば減少していく。
【００１１】
このようにリフレッシュアドレスの生成を選択的に逆にすることによって、表示システムは、カメラがポートレートオリエンテーションになっている時も、またランドスケープオリエンテーションになっている時も、鏡映カメラ画像を補正することができる。さらに、リフレッシュアドレス生成の行走査及び列走査を共に逆にすることによって、ポートレートから片方のランドスケープオリエンテーションに転換するためにリフレッシュアドレス変換回路が実行した1方向90度の変換を反対方向に90度変換して他方のランドスケープオリエンテーションに転換することができる。そのようにリフレッシュアドレス生成における列走査及び行走査を単純に逆にすることによって、固定された方向で90度回転を実行する更新アドレス変換回路がもたらす柔軟性を大いに高めることができる。また、両方向の反転は90度回転回路がなくても活用することができるので、例えば、特定の既存のカムコーダで、不便な位置からでも楽に撮影できるように画像を180度回転させるという効果をもたらすことができる。
【００１２】
【発明の実施の形態】
図3において、本願発明によって画像を回転もしくは方向性を変えるために典型的なコンピュータシステム300は、プロセッサバス320に結合し、プログラム命令及びアドレス生成といったメモリ管理ルーチンを実行するための中央処理装置（CPU）310を含む。システム300はまたメモリ330、周辺装置340、オペレーティングシステム350と、プロセッサバス320に結合したグラフィックスシステム370、及び本願発明を実現するグラフィックスシステム370に結合した表示装置360も含む。
【００１３】
メモリ330は、ランダムアクセスメモリ（RAM）と、読み取り専用メモリ（ROM）、及び補助ディスクメモリからなり、典型的には雑多なデータ、オペレーティングシステム及びその他CPU 310によって実行されるプログラム、またプログラムを実行した中間結果を格納する。周辺装置340にはプリンタ、フロッピーディスク、キーボード及びそれに類似のものなどがある。例えば、CRT又はLCDといった表示装置360は、典型的にはランドスケープ構成で、ユーザに対してコンピュータ生成の情報を表示する。本願発明は、レーザプリンタといった他のタイプの走査型出力装置でも活用することができる。ランドスケープ構成の表示装置は図1(b)及び図2(b)に示すようにランドスケープパターンでリフレッシュされる。
【００１４】
グラフィックスシステム370は表示装置360の画面のリフレッシング及び画像レンダリングルーチンを制御する。命令を受け取ると、グラフィックスシステム370はポートレートオリエンテーションのソフトウェアアドレスをポートレートオリエンテーションでしかもランドスケープ構成の表示装置360のための物理アドレスに変換する。表示装置360はランドスケープ構成として説明しているが、表示装置360はもしくはポートレート構成になっており、変換関数を逆にすることもできる。本願発明では、グラフィックシステム370は、画像を仮想的に及び／又は水平方向に逆にするような順序で物理アドレス生成を行なう。
【００１５】
ソフトウェアアドレスは、表示装置360に表示しようとする画像上の位置を指定し、マイクロソフト株式会社のマイクロソフトワード或いはアルダス株式会社のスーパーペイントといったどんなソフトウェアアプリケーションプログラムでも生成することができる。ソフトウェアアドレススキームは表示装置360のオリエンテーションに依存する。すなわち、表示装置360がランドスケープオリエンテーションで使用するようになっている場合、ソフトウェアアドレススキームは図7(a)に示したパターンになる。表示装置360をポートレートオリエンテーションで使用しようとする場合、ソフトウェアアドレススキームは図7(d)に示したパターンになる。物理アドレスは、表示をリフレッシュするためのデータをフェッチしてくるバッファメモリの中の場所を指定する。物理アドレススキームは、オリエンテーションがポートレートだろうがランドスケープだろうが、無関係である。図7(b)に示した回転した場合の物理アドレススキームは図7(d)に示したソフトウェアアドレススキームと同じではないから、この回転したケースではソフトウェアアドレスと物理アドレスとのアドレスマッピングが必要である。図7(a)と、7図(b)、及び図7(d)、3者の関係について以下により詳しく説明する。
【００１６】
本願発明では、さらに、画像をひっくり返してバッファメモリの内容の鏡像を表示することができる。そうした変換を達成する回路については、オリエンテーション変更回路について説明した後に説明する。
【００１７】
図4は、グラフィックスシステム370のブロック図で、画像バッファメモリ410と、アドレス変換システム420、及びグラフィックスコントローラ430を含む。
【００１８】
画像バッファメモリ410は、表示装置360に表示される画像を定義するビットマップ行列を格納する。ビットマップ行列は画素値の列を含む。ビットマップ行列の編成に基づいて、画像をランドスケープ表示に或いはポートレート表示になるようにすることができる。画像バッファメモリ410はメモリ330とは別個のメモリブロックとして示しているが、統一化されたメモリアーキテクチャを用いてシステム300を実現することができる。
【００１９】
画像バッファメモリ410は、CPU 310からバス320のデータ線440で画素データを受け取り、グラフィックスコントローラ430からアドレス線470でメモリアドレスを受け取る。受け取ったメモリアドレスは、線440でデータが書き込まれ或いは線440でデータが読み取られる画像バッファメモリ410の中の場所を指定する。画像バッファメモリ410は、統一化されたアドレスによってアクセスされるので、高速ページ（FP）ダイナミックRAM（DRAM）を使用すると分かるように可能性として存在するページの区切りの無駄が発生しないように、スタティックRAM（SRAM）デバイスが好ましい。しかしながら、DRAMのページの区切りを管理できれば、FPタイプやその他同様のタイプのDRAMを代りに使用することもできる。
【００２０】
アドレス変換システム420は、読み取り又は書き込み動作を行なうために、CPUからバス320のアドレス線450でアドレス（ソフトウェアアプリケーションプログラムで生成された）を受け取る。書き込み動作を実行する際、表示装置360のオリエンテーションに基づいて、アドレス変換システム420は、受け取ったアドレスをランドスケープオリエンテーションの表示装置360に対応するように「現状のまま」で渡すか、もしくはポートレートオリエンテーションの表示装置360上の画素位置に対応するように変換して渡すかのいずれかを行なう。アドレスは線460でグラフィックスコントローラ430に送られる。このアドレスは「論理」アドレスと称され、データ線440で駆動される画素データを格納するための画像バッファメモリ410における場所を指定する。
【００２１】
グラフィックスコントローラ430は画像バッファメモリ410及び表示装置360を制御する。より具体的には、グラフィックスコントローラ430はアドレス変換システム420から線460で論理アドレスを受け取り、その論理アドレスを線470で画像バッファメモリ410に送る。書き込み動作のためにアドレスを受け取ると、画像バッファメモリ410はCPU 310から線440で送られてくるデータを、受け取った論理アドレスで指定された場所に格納する。読み取り動作のためのアドレスを受け取ると、画像バッファメモリ410はデータを線440でCPU 310に送り出す。
【００２２】
アドレス変換は画像情報又はデータが画像バッファメモリ410に格納される前に実行されるから、画像バッファメモリ410のビットマップ行列は表示装置360に表示されるのと同じ画像のオリエンテーションを定義する（但し、以下に説明する反転がなされたとして）。変換されないままでデータが画像バッファメモリ410に格納されていれば、ランドスケープオリエンテーションの表示装置360はランドスケープオリエンテーションの画像を表示する。しかしながら、変換後のアドレスを用いてデータが画像バッファメモリ410に格納されていれば、ポートレートオリエンテーションでしかもランドスケープ構成になっている表示装置360はポートレートオリエンテーションの画像を表示する。
【００２３】
グラフィックスコントローラ430は、表示装置360のリフレッシュアドレス生成をリフレッシュするためにデータをフェッチする時、画像バッファメモリ410に用いるアドレスの生成も行なう。それは従来の方法で実現することができる。グラフィックスコントローラ430はリフレッシュアドレスを線470で画像バッファメモリ410に送って線480で対応する画素情報が検索されるようにし、リフレッシュアドレス及び画素情報を信号バス490で表示装置360に渡す。このように、表示装置360は表示をリフレッシュする。以下に説明するように、グラフィックスコントローラは、本願発明の教えを用いて、表示された画像が格納された画像の反転画像になるようにこれらのアドレスを生成することができる。
【００２４】
図5は、アドレス変換システム420のブロック図で、マルチプレクサ510と、アドレス変換回路520、及び構成レジスタ530を含む。
【００２５】
構成レジスタ530は画面の大きさ及び表示のオリエンテーションといった表示装置360の構成情報を格納する。画面の大きさは表示の幅（WD）と表示の高さ（WH）を共に画素で指定する。表示オリエンテーションは、表示装置360が図1(b)に示したようにランドスケープオリエンテーションになるか、或いは図2(b)に示したようにポートレートオリエンテーションになるかを指定する。CPU 310は表示オリエンテーションを含む表示情報をOEM（Original Equipment Manufacturer）メーカーが設定したDIP（Dual In-line Package）スイッチや、トグルスイッチ或いはその他の手段から検索して、その情報を構成レジスタ530に格納する。もしくは、CPU 310は大きさの順序を逆にして240画素／行、320画素／列を格納することもできる。表示装置360は相変わらずランドスケープ構成のままだが、表示のオリエンテーション信号は格納されている通りの大きさの順序で決定される。
【００２６】
例えば、表示装置360は320画素／行、 240画素／列で表示するように構成されているが、ポートレートオリエンテーションで配置されるようになっているかもしれない。この情報を表示装置360の伝統的なDIPスイッチに格納することができる。従って、CPU 310はDIPスイッチから情報を検索して、320画素／行 x 240画素／列を示す大きさ及びポートレートオリエンテーションを示す信号を構成レジスタ530に格納する。
【００２７】
アドレス変換回路520はポートレートオリエンテーションのソフトウェアアドレスをポートレートオリエンテーションでしかもランドスケープ構成になった表示装置360の物理アドレスに変換する。すなわち、アドレス変換回路520はCPU 310から線450でソフトウェアアドレスを受け取り、そのアドレスビットの順序を並べ替えて時計と反対回りに90度回転した時のポートレートオリエンテーションの表示装置360上の画素位置の新たな画素アドレスを指定するようにする。表示装置360は時計回りに90度回転し、余アドレス変換関数を実現することもできるけれども、時計と反対回りの回転にすると一般的なケースの変換関数がもっと容易になる。
【００２８】
ポートレートオリエンテーションのソフトウェアアドレス空間からポートレートオリエンテーションでしかもランドスケープ構成の表示装置360のアドレス空間への変換は下記の関数に基づく：
2L = HD 又は
L = ln(HD) / ln 2
上記において、HDは画素を単位として図1(b)に示したランドスケープオリエンテーションの表示装置360の高さである。Lは最上位物理アドレスビットとして順序を並べ替える最下位ソフトウェアアドレスビット数を表す。
【００２９】
変換は下記の関数にも基づいている：
2M = WD又は
M = ln(WD) / ln 2
上記において、WDは画素を単位として表したランドスケープオリエンテーションの表示装置360の幅である。Mは最下位物理アドレスビットとして順序を並べ替え且つ反転させる（補数をとる）最上位ソフトウェアアドレスビット数を表す。M + Lはソフトウェアアドレス及び物理アドレスの両アドレスを示すアドレスビットの合計数である。
【００３０】
アドレス変換回路520は線540で新たに変換されたアドレスをマルチプレクサ510の入力端子の一つに渡し、CPU 310から線450で送られてくるソフトウェアアドレスはマルチプレクサ510の第2の入力端子で受け取られる。構成レジスタ530から送られてくる表示装置360のオリエンテーションを指定する制御信号を線550で受け取りそれに基づいて、マルチプレクサ510は2つの入力アドレスのうち一つを選択し、それを論理アドレスとしてアドレス線460でグラフィックスコントローラ430に渡す（図4）。
【００３１】
図6はグラフィックスコントローラ430のブロック図で、マルチプレクサ610と、リフレッシュロジック620、及びメモリアドレスアービットレータ630を含む。マルチプレクサ610はリフレッシュロジック620から線640でリフレッシュアドレス信号を受け取り、変換システム420から線460で論理アドレスを受け取る。リフレッシュロジック620は、以下に説明する本願発明の例を用いて、表示装置360上の画素位置に対応するリフレッシュアドレスを生成する。
【００３２】
メモリアドレスアービットレータ630から受け取った制御信号に基づいて、マルチプレクサ610は、線640からリフレッシュ信号を、或いは線460から論理アドレスを、のいずれかを選択して、それを線470で画像バッファメモリ410に転送する。メモリアドレスアービットレータ630は優先順位とタイムマネージメントのスキームを活用してどの制御信号を送るかを決める。例えば、アービットレータ630はリフレッシュアドレスを優先し、パイプライン式のリフレッシュアドレスをイネーブルして複数の画素リフレッシュができるようにする。論理アドレスが選択され、メモリアドレスとして線470で画像バッファメモリ410に送られる（図4）と、線440でCPU 310からのデータが画像バッファメモリ410の論理アドレスで指定された場所に書き込まれる。リフレッシュアドレスが選択され、メモリアドレスとして線470で画像バッファメモリ410に送られると、画像バッファメモリ410はそれに対応する画素情報又はデータを線480でグラフィックスコントローラ430に届け、グラフィックスコントローラ430はリフレッシュアドレスと画素情報を線490で表示装置360に転送する。
【００３３】
このように、CPU 360は表示装置360のオリエンテーションに関係なく同じように画像バッファメモリ410に対して画素情報又はデータの書き込み及び読み出しを行なう。 ソフトウェア変換プログラムは不要である。
【００３４】
図7(a)から図7(e)はポートレートオリエンテーションのソフトウェアアドレスからポートレートオリエンテーションの物理アドレスへの変換関数を示す。より具体的には、図7(a)は、ランドスケープオリエンテーションの画像のソフトウェアアドレスを表すと共にランドスケープオリエンテーションの表示装置360の物理アドレスを表すランドスケープオリエンテーションの4 x 8のアドレス行列を示す表である。ランドスケープオリエンテーションのソフトウェア及び物理アドレスのスキームは左上角にあるアドレス「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度回転しているから、CPU 310は図7(d)に示したようにポートレートオリエンテーションのアドレススキームを指定する新たなソフトウェアアドレス行列を用いる。従って、新たなソフトウェアアドレススキームは左上の角にあるアドレス「0」から始まり、4つの列アドレスからなる1行目を横に進み、下に向かって連続して行から行に8行を走査して行く。しかしながら、図7(d)に示した新たなソフトウェアアドレス行列は図7(b)に示した物理アドレス行列と同じではないから、そのために変換が必要である。
【００３７】
図7(e)は図7(d)のポートレートオリエンテーションのソフトウェアアドレス行列を図7(c)の物理バイナリアドレスと比較するための表である。上述の図5のアドレス変換関数を図7(a)から図7(e)に適用すると、L = ln 4 / ln 2 = 2で、M = ln 8 / ln 2 = 3を得る。このように、本願発明はソフトウェアアドレスの2つの最下位ビットA1とA0を物理アドレスの2つの最上位ビットに転置する。本願発明はまた3つの最上位のソフトウェアアドレスA4、A3、A2を反転し、さらに3つの最下位物理アドレスビットに転置する。変換関数はソフトウェアアドレスをA1、A0、NOT(A4)、NOT(A3)、NOT(A2)のように順序を並べ替え、論理アドレス、従って物理アドレスが生成される。
【００３８】
表示装置360の大きさが2N画素台でない時は、表示装置360はM + Lのアドレス線によってアドレス指定可能な全てのメモリ空間の対応場所を有していないから、システム300はオフセットを実現する。全ての論理アドレスが表示装置360上の位置に確実にマップされるようにするには、伝統的なやり方でソフトウェア又はドライバによってオフセットを処理することができる。これらのオフセットは構成レジスタ530（図5）、OEMが設定したDIPスイッチ、或いはその他に格納することができる。
【００３９】
例えば、典型的なランドスケープオリエンテーションの表示装置は1行につき320画素、1列につき240画素でレンダリングする構成になっている。 320或いは240のいずれも2の整数べき乗ではない。従ってオフセットが必要である。先ず、アドレス変換回路520を2の整数べき乗台の大きさ、すなわち、512 x 256を用いて最も近くてより大きいアドレス空間に基づいて設計する。オフセットはこの次に大きいアドレス空間に基づいて決められる。すなわち、使用可能なメモリ空間のランドスケープオリエンテーションの最も右側の192列及びランドスケープオリエンテーションの最下部の16行は表示装置360上の位置にマップされない。これらのオフセットは格納され、論理アドレスをこれらの領域にマップするのを禁止するのに用いられる。表示装置360を時計と反対回りに90度回転させてポートレートオリエンテーションにすると、使用可能なメモリ空間の今や最も上部の192行と最も右側の16列はマッピング不可能である。
【００４０】
オフセット計算をしなくていいようにするには、表示装置360を画素を単位とした大きさが2の整数べき乗になるように設計すればいい。
【００４１】
図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に続いてNOT(A(M+L-1))...NOT(A(L))を示す。
【００４２】
図9はソフトウェアアドレスを表示装置360の物理アドレスにマップする好適な方法900を示すフローチャートである。方法900は、ステップ910で表示装置360の大きさ及びオリエンテーションを含む表示装置360に関する構成情報をCPU 310が検索することによって始まる。ステップ920で、ソフトウェアアプリケーションプログラムは画素データ及び検索された構成情報に基づきソフトウェアアドレスを生成する。構成情報がランドスケープオリエンテーションの表示装置360を指定していれば、ソフトウェアアプリケーションプログラムは図7(a)に示したようにランドスケープオリエンテーションのソフトウェアアドレススキームを用いる。構成情報がポートレートオリエンテーションの表示装置360を指定していれば、ソフトウェアアプリケーションプログラムは図7(d)に示したようにポートレートソフトウェアスキームを用いる。
【００４３】
ステップ930で、CPU 310は画素データをデータバス440に、ソフトウェアアドレスをアドレスバス450に乗せる。ソフトウェアアドレスはアドレス変換システム420によって受け取られ、ステップ940でアドレス変換が必要かどうかが決定される。構成情報が表示装置360はランドスケープオリエンテーションであることを示していれば、アドレス変換は不要である。そうでなければ、アドレス変換が必要で、その場合には図5に関して先に説明した関数によってアドレスが変換される。アドレス変換システム420は論理アドレスを生成し、それは「現状の」ソフトウェアアドレスか、さもなければ、もし表示装置が時計と反対回りに回転されていれば画素位置を指定するために変換されたアドレスか、いずれかである。
【００４４】
ステップ950で、論理アドレスは線460でグラフィックスコントローラ430に送られ、ステップ960で論理アドレスをメモリアドレスとして線470で画像バッファメモリ410に渡す。メモリアドレスを受け取ると、ステップ960で画像バッファメモリ410はデータ線440で画素データを指定された記憶場所に格納する。それで方法900は終了する。
【００４５】
図10は表示装置360で画素をリフレッシュする好適な方法1000を示すフローチャートである。方法1000は、ステップ1010で、グラフィックスコントローラ430がこれから説明するやり方でリフレッシュアドレスを生成することから始まる。ステップ1020でマルチプレクサ610はリフレッシュアドレスを選択し、それをメモリアドレスとして線470で画像バッファメモリ410に渡す。ステップ1030でメモリアドレスを受け取ると、画像バッファメモリ410は画像バッファメモリ410内の指定された場所から画素データを線480でグラフィックスコントローラ430に送り出す。ステップ1040で、グラフィックスコントローラ430はリフレッシュアドレス及び検索した画素データをバス490を介して表示装置360に送り、その場所をリフレッシュする。それで方法1000は終了する。
【００４６】
リフレッシュアドレスがステップ1010で生成される方法を理解するには、図11を考えれば分かる。図11は小型の画像バッファメモリを表現したものである。図11はそのメモリを12 x 12の画像メモリバッファとして表現している。すなわち、各々12画素からなる12行分の画素値を保持するのに充分な記憶場所を保有している。だが、図解上、表示はそれぞれ8列からなる6つの行になっていると仮定する。斜線で陰影を入れた領域1102は表示画素に対応する記憶場所を表す。より濃くなっている部分は内容がより濃い画素値を保有する場所を表す。これらを後続の図面においてオリエンテーション参照として用いている。
【００４７】
図12は、リフレッシュアドレスジェネレータ620の詳細図で、その出力は濃い領域1102内の場所のアドレスを指定する。図12の構成レジスタ1202は行開始マルチプレクサ1204に対してCPUから構成情報の一部として受け取った開始アドレスを用いる。新たなフレームの始まりに、タイミング回路1205は一瞬だけ行開始マルチプレクサ1204がこの開始アドレスをクロック回路1207からの行クロック信号でクロックされた第1列ラッチ1206への入力として選択するようにする。各走査線の始まりに、タイミング回路は一瞬だけ次アドレスマルチプレクサ1208がラッチ1206の結果として生じた出力値を出力ラッチ1210への入力として選択するようにし、その出力は図6のマルチプレクサ610がリフレッシュ動作中画像バッファメモリに対して用いるリフレッシュアドレスになる。
【００４８】
図11の内容を反転させないで表示するには、構成レジスタ1202がマルチプレクサ1204に対して用い、画像バッファメモリ410に関して説明したように第1アドレスとして転送される開始アドレスは、メモリ走査が開始されるアドレスだから、値0である。現在行のこの第1の値がロードされた後、マルチプレクサ1208は次列マルチプレクサ1212の出力をラッチ1210の入力として選択するように状態を切り換える。構成レジスタ1202はマルチプレクサ1212がマルチプレクサ1208の入力として増分回路1214の出力を選択するようにする。この回路の出力はマルチプレクサ1210の出力より、すなわち、表示がリフレッシュされている場所として画像バッファメモリに現在用いられているアドレスより、1つ大きな値である。従ってラッチ1210の出力は、クロック回路1207がパルスを発生させると、1だけ増える。連続するクロック信号は更なる増分になるので、画像メモリは図11で水平方向として表されている方向に走査される。
【００４９】
ラッチ1206がフレームの始まりにそのフレームの開始アドレスをロードした後、マルチプレクサ1204への選択入力はマルチプレクサ1204がその出力として次行マルチプレクサ1216からの入力を選択するような状態に変化する。反転させないで単に画像バッファメモリ410の内容を表示するだけの時は、構成レジスタ1202はマルチプレクサを、加算回路1218の出力をマルチプレクサ1204の入力ポートに印加する状態にするように動作させる。加算回路1218は構成レジスタがCPUから構成情報の一部として受け取った行オフセット値をラッチ1206の出力に加算する。システムが図11に示した大きさの画像バッファメモリを用いている場合、この行オフセット値は12である。従って、行クロック信号で新たな行の始まりに第1列ラッチ1206を動作させると、そのラッチの行アドレス出力は12増える。その結果として生じた出力はマルチプレクサ1208がラッチ1210に転送するものである。従って、アドレスが第1行で7に増えた後、リフレッシュアドレスジェネレータで生成された次の値は12で、次に表示される行の始まりにある画素の値を保有する画像バッファメモリロケーションのアドレスである。
【００５０】
この動作は、表示が完全にリフレッシュされるまで、新たな第1列アドレスをロードするために各列の始まりに、ラッチ1206がストロープされ、マルチプレクサ1208が1画素時間だけ状態を変化させて続く。その時点で、マルチプレクサ1204は再び一瞬だけ構成レジスタの開始アドレス出力を選択するように動作し、その後アドレスシーケンスは繰り返す。
【００５１】
本願発明では、リフレッシュロジック620を列リバースモードにすることもできる。そのモードでは画像が水平方向に逆にされて図13に示すような表示が生成される。こうするには、図12の回路は前のように動作するが、例外は構成レジスタは開始アドレス0ではなく7をマルチプレクサ1204に用いることで、マルチプレクサ1212は増分回路1214ではなく減分回路1220の出力を転送する。従って、連続する画素クロックはラッチ1210の出力が値7を有するフレームを始動させ、第1行の終わりで0に減少するようにする。その出力は次に2行目の始まりで19に増え、その行の終わりで12に減る。このように進み、画像全体が表示されるまで、アドレスは行内で減少し、行間で増加していく。
【００５２】
リフレッシュロジック620はまた行リバースモードにすることもできる。このモードでは図14に示すように画像バッファメモリの内容が上下逆さまに表示される。そのためには、構成レジスタ1202は開始アドレスとして60を生成し、またマルチプレクサ1216が減算回路1222の出力をマルチプレクサ1203に転送するようにする。減算回路は、加算するのではなく、ラッチ1206の出力から行オフセットを引き算する。従って、2行目の始まりにラッチ1206がロードするアドレスは48である。図14に示すように、メモリアドレスは1行内で画素クロックごとに増加しなければならないから、マルチプレクサ1212はその増分出力を選ぶ。
【００５３】
図13に示した表示は画像バッファメモリの内容を2等分垂直軸の回りでひっくり返した結果と考えることができるのに対し、図14の表示は2等分水平軸の回りでひっくり返した結果と考えることができる。こうした反転を用いて、先に説明したように、鏡像を補正することができる。さらに、同時に行リバースモード及び列リバースモードで動作させることにより、図12の回路は内容を各軸の回りで連続してひっくり返した結果を生成し、図15に示す表示を作ることができる。
【００５４】
上述した通り、アドレス変換回路520は時計と反対回りの回転を実行する。それはその方向の回転の方が実現しやすいからである。それでも、時計回りの回転の方が好ましい場合があるかもしれない。そうした回転は、図12のリフレッシュアドレスジェネレータが同時に行リバースモードと列リバースモードとで動作するようにすれば、時計と反対回りの回転回路を変えなくても実現することができる。この結果は、開始アドレス値67を用いて、マルチプレクサ1216がその減算された入力を転送するようにし、さらにマルチプレクサ1212がその減分された入力を転送するようにすることによって、実現することができる。
【００５５】
本願発明によって表示システムに相当な柔軟性をもたらすことができることは明白である。従って、本願発明の教えるところは技術の有意な進歩である。
【図面の簡単な説明】
【図１】(a)は、ランドスケープオリエンテーションのソフトウェアアドレス指定パターンを示すブロック図である。
(b)は、ランドスケープオリエンテーション且つランドスケープ構成になったディスプレイのアドレススキームを示すブロック図である。
【図２】(a)は、ポートレートオリエンテーションのソフトウェアアドレス指定パターンを示すブロック図である。
(b)は、ポートレートオリエンテーションでしかもランドスケープ構成になったディスプレイのアドレススキームを示すブロック図である。
【図３】ポートレートオリエンテーションで表示できるように画像を回転させる本願発明によるコンピュータシステムのブロック図である。
【図４】図3のグラフィックスシステムのブロック図である。
【図５】図4の変換システムのブロック図である。
【図６】図4のグラフィックスコントローラのブロック図である。
【図７】(a)は、ランドスケープオリエンテーションの4 x 8のソフトウェアアドレス行列を示す表である。
(b)は、表示装置を時計と反対回りに90度回転した時の物理アドレスを示す表である。
(c)は、図7(b)の表を2値で表した表である。
(d)は、ポートレートオリエンテーションのソフトウェアアドレス指定行列を示す表である。
(e)は、図7(c)の物理バイナリアドレスを図7(d)のポートレートオリエンテーションのソフトウェアアドレス行列と比較するための表である。
【図８】図5のアドレス変換回路の一般的なケースの概略図である。
【図９】ソフトウェアアドレスを表示装置の物理アドレスにマップする好適な方法を示すフローチャートである。
【図１０】表示装置上で画素をリフレッシュする好適な方法を示すフローチャートである。
【図１１】所定の表示装置に割り当てられたリフレッシュメモリブロックのリフレッシュメモリにおける位置を示す図である。
【図１２】本願発明の教えを実現する表示システムに用いられるリフレッシュアドレスジェネレータのブロック図である。
【図１３】リフレッシュアドレスジェネレータが列リバースモードで動作している時、図11のメモリの内容から生じる表示装置画像の図である。
【図１４】リフレッシュアドレスジェネレータが行リバースモードで動作している時、図11のメモリの内容から生じる表示装置画像の図である。
【図１５】リフレッシュアドレスジェネレータが行リバースモード及び列リバースモードの両モードで動作している時、図11のメモリの内容から生じる表示装置画像の図である。
【図１】
0003952641.tif 000002
【図２】
0003952641.tif 000003
【図３】
0003952641.tif 000004
【図４】
0003952641.tif 000005
【図５】
0003952641.tif 000006
【図６】
0003952641.tif 000007
【図７】
0003952641.tif 000008
【図８】
0003952641.tif 000009
【図９】
0003952641.tif 000010
【図１０】
0003952641.tif 000011
【図１１】
0003952641.tif 000012
【図１２】
0003952641.tif 000013
【図１３】
0003952641.tif 000014
【図１４】
0003952641.tif 000015
【図１５】
0003952641.tif 000016