JPH03290765A - ビットマップ・イメージの90度回転方法 - Google Patents
ビットマップ・イメージの90度回転方法Info
- Publication number
- JPH03290765A JPH03290765A JP2401872A JP40187290A JPH03290765A JP H03290765 A JPH03290765 A JP H03290765A JP 2401872 A JP2401872 A JP 2401872A JP 40187290 A JP40187290 A JP 40187290A JP H03290765 A JPH03290765 A JP H03290765A
- Authority
- JP
- Japan
- Prior art keywords
- word
- image
- buffer
- words
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
[0001]
本発明は、ディジタル画像を90度の倍数回転させる回
路に関し、この画像の回転は、第1アドレスおよびシフ
ト・プロセスと第2アドレスおよびシフト・プロセスを
使用することによってメモリ、ラスク入力スキャナ等か
らのオリジナル画像をバッファに転送して、このバッフ
ァからこのメモリ、ラスク出力スキャナ等に対して読み
出しを行うことによって行われ、その結果、この画像が
回転されて各ワードの全てのビットは平行にバッファに
対して転送されると共にこのバッファから転送される。 [0002] 2次元のアレイによって目視可能な画像を表示すること
は周知である。このようなアレイは、一般的にピクセル
と呼ぶ画素の行と列によって構成される。このようなピ
クセルは画像全体のスポットの色または濃度を表すこと
ができ、1つまたは多数の2進ビツトまたはワードまた
はアナログ電圧である。このような表示の基本的な利点
は、画像全体を一緒に取り扱うとするのではなくて一時
に複数のピクセルを取り扱う画像処理システムが可能に
なることである。ピクセルから画像を転送し、表示しま
たは印刷するシステムの場合、通常の1時に1ピクセル
の順序(one−at−a−time pixel )
は「ラスタ順序Jと呼ぶ案である。ラスタ順序の場合ピ
クセル・アレイはその列(またはその行)に対応する走
査線に分割され、ピクセルは各走査線にとって同じ方向
に順にアクセスされ、この場合、このアクセスはピクセ
ル・アレイの一端に沿った第1走査線ではじまり全ての
走査線のピクセルがアクセスされてしまうまで連続して
次に隣接する走査線がアクセスされる。画像処理システ
ムの性能を向上させるには、ピクセル・アレイの各走査
線はしばしば「ワード」と呼ぶ固定した大きさの隣接す
るピクセルのサブセットに仕切られ、このワードの大き
さは全体のピクセル・アレイを通して一定である。この
ようなシステムの場合、全体のワードは同時に転送また
は記憶される。このようにしてピクセルの全体のワード
を並列に記憶するメモリ・サブシステムは「ワード・オ
ーガナイズド・メモリ」と呼ぶ。ラスタ順序のピクセル
・アレイを直線のワード・オーガナイズド・メモリに記
憶すると、その結果、各走査線のワードは連続したワー
ドのアドレスを占め、アレイの走査線が端部と端部で隣
接する。 [0003] 1つの方向でシステムに対して走査されるページが別の
方向で印刷されることがディジタル原稿処理装置の一般
的な要求である。1つの例は、「ランドスケープ」モー
ドでシステム内に記載されていた走査された画像が「ポ
ートレート」モードで印刷されなければならない場合で
ある。この場合、オペレータは画像を再操作するよりも
この画像を電子的に回転させる方が容易であり、これは
もしオリジナルの画像が最早入手できない場合には可能
な唯一の方法である。また、多くのシステムの場合、画
像は水平走査線を使用したデイスプレィ上で編集のため
にオペレータに対して表示され、ついでこの画像は垂直
走査線を使用するプリンタで印刷される。この結果、印
刷システムは処理のいずれの段階におし)でも回転され
た画像と回転されない画像を作ることができる必要があ
る。しかし、メモリの順序のため、走査線に沿って隣接
するピクセルを並列に取り出す方が走査線に対して直角
に隣接するピクセルを並列に取り出すよりも容易である
。例えば、16ビツト・ワードの一般的なメモリの場合
、1つのイメージの最初の16ビツト・ワードが第1の
16メモリ・チップの第1ビツトにロードされて、第2
ワードがこの16メモリ・チップの第2ビツトにロード
される等々である。従って、もしワードの長さの方向の
ビットによって構成される線を出力する必要があれば、
同時に16ビツトを並列にアクセスすることができるが
、この理由は、各ビットが異なったメモリ・チップ内に
あるからである。しかし、もしこの線がワード線と直角
であれば、個々のビットは全て同じチップ内にあり、従
って順番にアクセスされることのみが可能であり、これ
は比較して非常に遅い処理である。 [0004] 記憶されているピクセル・アレイの行と列の両方に対し
て並列なワードでアクセスを行う(word−para
llel access )ことに対する困難によって
従来技術は挑戦されてきた。画像処理システムは、しば
しばピクセル・アレイの走査の方向または画像の方向を
90度変更する必要がある。米国特許第3,976.9
82号および4,562,485号のアプローチのよう
な幾つかのアプローチでは同時に1つのピクセルに対す
る遅いアクセス(slow one−pixel−at
−a−time access )を使用している。他
のアプローチでは、ピクセル・アレイをメモリに記憶し
、次に別の変刷する前に90度回転されて記憶されるバ
ージョンに変更することによって遅延を発生している。 米国特許第4,052,699号、4,168,488
号、4.271.476号、4,593,407号、4
,627,020号、4,636,783号に開示され
ているように、または「The Image Pr15
m : A Device for Rotating
and Mirroring Bitmap Ima
gesJ、I E E E Computer Gr
aphics and Applications、
1987年5月でKornfeldによって説明され
ているシステムのように、これらのアプローチの多くは
、ピクセル・アレイの小さなサブセットを同時に別の回
転子に転送することによってこれを行っている。従って
、この記憶と変換によるアプローチの全ては、ピクセル
・アレイを最初にメモリに記憶した後、このピクセル・
アレイ全体を少なくとも1回別に取り出して記憶する必
要がある。 [0005] 必要とされているのは、バッファに対するデータの転送
が1度だけ必要でありかつバッファからのデータの転送
が1度だけ必要であり、これらの2つのデータの転送が
ワード全体で並列に行われる回転方法である。 [0006]
路に関し、この画像の回転は、第1アドレスおよびシフ
ト・プロセスと第2アドレスおよびシフト・プロセスを
使用することによってメモリ、ラスク入力スキャナ等か
らのオリジナル画像をバッファに転送して、このバッフ
ァからこのメモリ、ラスク出力スキャナ等に対して読み
出しを行うことによって行われ、その結果、この画像が
回転されて各ワードの全てのビットは平行にバッファに
対して転送されると共にこのバッファから転送される。 [0002] 2次元のアレイによって目視可能な画像を表示すること
は周知である。このようなアレイは、一般的にピクセル
と呼ぶ画素の行と列によって構成される。このようなピ
クセルは画像全体のスポットの色または濃度を表すこと
ができ、1つまたは多数の2進ビツトまたはワードまた
はアナログ電圧である。このような表示の基本的な利点
は、画像全体を一緒に取り扱うとするのではなくて一時
に複数のピクセルを取り扱う画像処理システムが可能に
なることである。ピクセルから画像を転送し、表示しま
たは印刷するシステムの場合、通常の1時に1ピクセル
の順序(one−at−a−time pixel )
は「ラスタ順序Jと呼ぶ案である。ラスタ順序の場合ピ
クセル・アレイはその列(またはその行)に対応する走
査線に分割され、ピクセルは各走査線にとって同じ方向
に順にアクセスされ、この場合、このアクセスはピクセ
ル・アレイの一端に沿った第1走査線ではじまり全ての
走査線のピクセルがアクセスされてしまうまで連続して
次に隣接する走査線がアクセスされる。画像処理システ
ムの性能を向上させるには、ピクセル・アレイの各走査
線はしばしば「ワード」と呼ぶ固定した大きさの隣接す
るピクセルのサブセットに仕切られ、このワードの大き
さは全体のピクセル・アレイを通して一定である。この
ようなシステムの場合、全体のワードは同時に転送また
は記憶される。このようにしてピクセルの全体のワード
を並列に記憶するメモリ・サブシステムは「ワード・オ
ーガナイズド・メモリ」と呼ぶ。ラスタ順序のピクセル
・アレイを直線のワード・オーガナイズド・メモリに記
憶すると、その結果、各走査線のワードは連続したワー
ドのアドレスを占め、アレイの走査線が端部と端部で隣
接する。 [0003] 1つの方向でシステムに対して走査されるページが別の
方向で印刷されることがディジタル原稿処理装置の一般
的な要求である。1つの例は、「ランドスケープ」モー
ドでシステム内に記載されていた走査された画像が「ポ
ートレート」モードで印刷されなければならない場合で
ある。この場合、オペレータは画像を再操作するよりも
この画像を電子的に回転させる方が容易であり、これは
もしオリジナルの画像が最早入手できない場合には可能
な唯一の方法である。また、多くのシステムの場合、画
像は水平走査線を使用したデイスプレィ上で編集のため
にオペレータに対して表示され、ついでこの画像は垂直
走査線を使用するプリンタで印刷される。この結果、印
刷システムは処理のいずれの段階におし)でも回転され
た画像と回転されない画像を作ることができる必要があ
る。しかし、メモリの順序のため、走査線に沿って隣接
するピクセルを並列に取り出す方が走査線に対して直角
に隣接するピクセルを並列に取り出すよりも容易である
。例えば、16ビツト・ワードの一般的なメモリの場合
、1つのイメージの最初の16ビツト・ワードが第1の
16メモリ・チップの第1ビツトにロードされて、第2
ワードがこの16メモリ・チップの第2ビツトにロード
される等々である。従って、もしワードの長さの方向の
ビットによって構成される線を出力する必要があれば、
同時に16ビツトを並列にアクセスすることができるが
、この理由は、各ビットが異なったメモリ・チップ内に
あるからである。しかし、もしこの線がワード線と直角
であれば、個々のビットは全て同じチップ内にあり、従
って順番にアクセスされることのみが可能であり、これ
は比較して非常に遅い処理である。 [0004] 記憶されているピクセル・アレイの行と列の両方に対し
て並列なワードでアクセスを行う(word−para
llel access )ことに対する困難によって
従来技術は挑戦されてきた。画像処理システムは、しば
しばピクセル・アレイの走査の方向または画像の方向を
90度変更する必要がある。米国特許第3,976.9
82号および4,562,485号のアプローチのよう
な幾つかのアプローチでは同時に1つのピクセルに対す
る遅いアクセス(slow one−pixel−at
−a−time access )を使用している。他
のアプローチでは、ピクセル・アレイをメモリに記憶し
、次に別の変刷する前に90度回転されて記憶されるバ
ージョンに変更することによって遅延を発生している。 米国特許第4,052,699号、4,168,488
号、4.271.476号、4,593,407号、4
,627,020号、4,636,783号に開示され
ているように、または「The Image Pr15
m : A Device for Rotating
and Mirroring Bitmap Ima
gesJ、I E E E Computer Gr
aphics and Applications、
1987年5月でKornfeldによって説明され
ているシステムのように、これらのアプローチの多くは
、ピクセル・アレイの小さなサブセットを同時に別の回
転子に転送することによってこれを行っている。従って
、この記憶と変換によるアプローチの全ては、ピクセル
・アレイを最初にメモリに記憶した後、このピクセル・
アレイ全体を少なくとも1回別に取り出して記憶する必
要がある。 [0005] 必要とされているのは、バッファに対するデータの転送
が1度だけ必要でありかつバッファからのデータの転送
が1度だけ必要であり、これらの2つのデータの転送が
ワード全体で並列に行われる回転方法である。 [0006]
各行の最初のデータ・ワードの全てのビットが別のチッ
プに入力され、各列の全てのビットもまた別のチップに
入力される場合のみ、イメージはデータ・ワードを全て
並列に転送することによって回転されることができる。 従って、適当なアドレスを行えば、最初の画像の水平ス
トリップまたは垂直ストリップのいずれかをバッファか
ら並列に出力することができる。 [0007] これを達成するためのシステムは、簡単な数字による例
を使用して説明することが可能であり、ここでデータ・
ワードがいずれかのソースから受は取られるとこれらの
データ・ワードのストリングを取り出し、ワード#Oを
ゼロ・ビットだけシフトし、ワード#1を1ビツトだけ
シフトし、ワード#2を2ビツトだけシフトし、等々を
行い、次にこれらをバッファにロードする。このシフト
は循環して行われる種類のものであり、ワードの終端部
から外れたビットは先端部に挿ブ内にあるが、しかしま
たこのワードの長さと直角な画像線内にある全てのビッ
トは現在また別のチップ内にある。次に、各バッファ・
チップ内の適当なビットを正しくアドレスすることによ
って、水平なワード長さの線または垂直なワード長さの
線のいずれかをバッファから並列に取り出し、再びシフ
トして回転した画像として出力することができる。これ
らのシフトのため、並列シフタが使用されその結果Oな
い15ビツトのシフトを1つのクロックサイクル中に行
うことができる。 [0008]
プに入力され、各列の全てのビットもまた別のチップに
入力される場合のみ、イメージはデータ・ワードを全て
並列に転送することによって回転されることができる。 従って、適当なアドレスを行えば、最初の画像の水平ス
トリップまたは垂直ストリップのいずれかをバッファか
ら並列に出力することができる。 [0007] これを達成するためのシステムは、簡単な数字による例
を使用して説明することが可能であり、ここでデータ・
ワードがいずれかのソースから受は取られるとこれらの
データ・ワードのストリングを取り出し、ワード#Oを
ゼロ・ビットだけシフトし、ワード#1を1ビツトだけ
シフトし、ワード#2を2ビツトだけシフトし、等々を
行い、次にこれらをバッファにロードする。このシフト
は循環して行われる種類のものであり、ワードの終端部
から外れたビットは先端部に挿ブ内にあるが、しかしま
たこのワードの長さと直角な画像線内にある全てのビッ
トは現在また別のチップ内にある。次に、各バッファ・
チップ内の適当なビットを正しくアドレスすることによ
って、水平なワード長さの線または垂直なワード長さの
線のいずれかをバッファから並列に取り出し、再びシフ
トして回転した画像として出力することができる。これ
らのシフトのため、並列シフタが使用されその結果Oな
い15ビツトのシフトを1つのクロックサイクル中に行
うことができる。 [0008]
図1、図2、および図4は、それぞれ、メモリまたはス
キャナから受は取られた直角の形をした最初の画像、0
度を含む90度のいずれかの倍数だけ回転されることの
できる形の中間画像を含むバッファ、およびメモリに送
り返される回転された画像を示す。単純化のため、バッ
ファは4x4ビツトとして示され、1ワード当たり4ビ
ツトが存在するがこのアルゴリズムはいずれの大きさの
システムに対しても動作可能である。また、理解をより
容易にするため、回転されていない画像はメモリから来
るも゛のとして示され、回転された画像はメモリに対し
て出力される物として示されるが、上で説明したように
、この画像はいずれのソースから受は取ることも可能で
あり、いずれの種類の装置に転送することも可能である
。これらの数字は垂直走査線を仮定し、その結果、図1
のワードO11,2および3は図示のように下から上に
左の列のワードである。次の走査線はワード45、等で
開始される。これらの図1のワード・アドレスは仮想充
填アドレスと称するが、その理由は、これらが実際のメ
モリ・アドレスを識別せず、またこれらがバッファを充
填するために使用されるロケーションのアドレスを発生
するアルゴリズムによって使用される数であるからであ
る。 [0009] 画像を回転させるには、第1ステツプで最初の画像の各
ワードをバッファに対してシフトおよび転送する。本発
明の重要な特徴の1つは、いずれの特定の順序でもワー
ドをバッファに対して載置またはこれから除去する必要
がないことである。また、ワードのいずれのサブセット
・ブロックも残りの画像から独立して処理することがで
きる。例えば、反時計方向に90度回転されなければな
らない1つの4x4ビツトの画像のブロックを構成する
ワード18.22.26および30の処理を検討してみ
る。最初の垂直な線によって構成されるワード18の4
つのビット(OOlol、02.03)は循環している
シフタ内でOビットだけ上方向にシフトされてバッファ
の同じ位置18に載置される。次にワード22のビット
(10,11,12,13)は1ビツトだけ上方向にシ
フトされてバッファ・ワード22に載置される。次に、
ワード26は、2ビツトだけシフトされてバッファのワ
ード26に載置される。最後に、ワード30は、3ビツ
トだけシフトされてバッファのロケーション30に載置
される。さて、図示のように最初の各垂直線の各ビット
が別のチップに載置されるだけでなく、また最初の各水
平線の各ビットもまた別のチップに載置される。従って
、最初の水平または垂直線のいずれかをバッファから並
列にアクセスすることが可能である。 [0010] 第2ステツプでは、図2のバッファからビットを読み出
し、これらのビットを適当な数のビットにシフトし、こ
れらを回転された画像として例えば図4のメモリに載置
する。図1の最初の画像は、高さが4ワードで幅が3ワ
ードであることに留意のこと。もし、画像全体が90度
回転されれば、その結果、得られる画像は、図4に示す
ように、高さが3ワードで幅が4ワードである。 [0011] この部分のアルゴリズムは、2つのステップによって構
成されると考えることができ、第1ステツプは各ワード
のビットを集め、その結果、図3の画像を得るステップ
であり、第2ステツプはワード内のこれらのビットをシ
フトして図4の画像を得るステップである。 [0012] 例として、図3のワード13を使用する。必要なピクセ
ルのビットは、13.23.33および03であり、こ
れらは図2のワード13のビット0、ワード27のビッ
ト1、ワード31のビット2、およびワード19のビッ
ト3に対応する。各々のビットは別のバッファ・チップ
内にあり、従ってこれら全ては同時に並列にアドレスお
よびアクセスされることが可能であり、ワード#13と
して出力(J開干3−冶JU/b0(−) される。残りの3つのワードは同様に転送されて図3に
示す4x4ビツトのブロックを発生する。 [0013] 最後に、回転を完了するには上方向のシフトが必要であ
る。ワード13.1619および22はそれぞれ1.2
.3およびOビットだけ上方向にシフトされる。図4は
この結果を完全にシフトされた画像として示す。このア
ルゴリズム全体の結果として得られるのは、図示のよう
に回転された画像であり、これは2つの並列な転送と2
つのシフトによって得られるものである。これらのシフ
トはまた以下で論する並列シフタを使用して行われるの
で、回転は全体として並列動作を使用して行われる。 [0014] 図2のバッファと図4のメモリとの間で転送を行ってい
る間に同様のアドレス方法を使用して画像を270度回
軸回転ることができる。0度のシフトは、バッファ内の
ワードをシフトすることによってそれらの最初の形に戻
し、メモリに出力することによって簡単に行われる。各
々の回転されたワードは、バッファからアクセスされ、
メモリに対して直接シフトおよび載置されるため、図3
の画像を有する記憶装置の存在しないことに留意のこと
。この画像は本発明の理解を助けるためにここで発生さ
れたものにすぎない。 [0015] このシステムは、下記のように数学的表現を使用して一
般化することができる。画像を90度回転させるアルゴ
リズムは、ピクセルのr行と0列のアレイで開始される
。図2において、例えば、ここには16行と12列があ
り、従ってr=16であり、C=12である。ピクセル
・アレイの各列は各々Wピクセルのワードに仕切られ、
行、列、各列内のワード、およびピクセル・アレイの各
ワード内のピクセルは全てOで始まる番号を付けられて
いる。図3において、ワード当たり4ビツトが存在し、
従って、w=4である。 [0016] 事実、最も一般的な場合、バッファ・ワードの大きさは
画像データ・ワードの6ビツトのバッファ・メモリに記
憶されるとすれば、3データ・ワード(15ビツト)を
記憶するには1メモリ・ワード(16ビツト)が必要で
あり、4データ・ワード(20ビツト)を記憶するには
2メモリ・ワード(32ビツト)が必要である。 [0017] また、画像の次元はメモリ・ワードの大きさの倍数の数
字全体である必要はない。数学的に言えば、ワード内の
メモリの垂直デイメンジョンをv[r/wJに等しくし
、ここで「r/W」はr/w以上の最小の整数である。 同様に、メモリの水平デイメンジョンはhをrc/Wj
に等しくする。図2の場合、v=4でありh=3である
。 [0018] アルゴリズムは、図1の例に示すように、最初のピクセ
ル・アレイのワードを以下のようにして図2に示すよう
に直線ワード・オーガナイズドバツファ・メモリに記憶
する。すなわち、アルゴリズムは列jの各ワードiを(
j)モツド(mod)wピクセル位置だけ右方向に回転
シフトさせ、次にこの変更されたワードのビットを並列
にバッファ・メモリのワード・アドレスvj+iに書き
込む。図1および図2に基づく数字の例を使用すれば、
列Oに記憶されるべきワードはOビットだけシフトされ
、列1.2および3のワードは、それぞれ、1.2およ
び3ビツトだけシフトされ、列4のワードは再びOでス
タートする。これらの5つのワードは次にメモリの第1
の5つのロケーションに記憶されるが、これらの5つの
ロケーションは列Oの4つのロケーションと列1の第1
0ケーシヨンである。 [0019] アルゴリズムの次のステップではバッファから並列して
記憶されたピクセル・アレイの各ワードを取り出し、そ
の結果、図3の各ピクセルpはワード・アドレスの図2
の各ピクセルpから得られるが、このワード・アドレス
は、wvi+v [(p+j+1) mod w] +
「(wv−j−1) /wJによって表される。 [0020] なお図3の例を使用すると、これは下記の式になる。 16 i+4 [4(p+j+1)mod4] + 「
(15−j)/4J[0021] 図3の列5のビット02を数字による例として取り上げ
ると、pすなわちワード内のピクセル番号は2に等しく
、iすなわちこのコラムのワード番号は1に等しい。そ
して、jすなわち列番号は5に等しい。図2の全ての定
数と図3の変数全土の等式に代入すると、18の答が得
られる。すなわち、図3のワード16のピクセルには図
2のワード18の同じピクセル(2)からアクセスされ
なければならない。 [0022] 図4のメモリに出力する前に、最後のステップで、この
ワードを2ビツトだけ上方にシフトする。 [0023] 上で説明した等式は、このアルゴリズムを数学的に説明
しているが、もしh、■、およびWが2の全ての累乗で
あれば、これらのアドレスはまたシフトしているビット
をマスクすることによってソフトウェアまたはハードウ
ェアで発生することができる。図5は、このプロセスを
実行するシステムの一例を示し、ここでは最初の画像は
ワード当たり16個の1ビツトのずクセル、走査線当た
り1024個のワードおよび256本の走査線を有する
と仮定する。従って、許容可能な画像の大きさ内の全て
の入力ワードを識別するのには、18ビツトのアドレス
(17:O)が必要である。この画像全体の内部にある
ワードはメモリ内の実際のアドレスを使用するのではな
くてOで始まる任意に割り当てられたアドレスであり、
従って1仮想」アドレスと称し、バッファを「充填する
」ために使用される。図5は、18ビツト(17: 0
)としての仮想充填アドレス(VFA)を示す[002
4] このバッファは、各々が256にビットを有する16個
のチップから実行される。従って、各チップ内の各ビッ
トのアドレスおよびバッファ内の各ワードのアドレスも
また18ビツトのワードである。このアドレスは実充填
アドレスと呼ぶが、その理由は、これが実際のバッファ
のロケーションのアドレスであり、このバッファを充填
するために使用されるからである。図5に示すように、
バッファを充填するのに使用される仮想充填アドレスと
実充填アドレスは同一である。 [0025] 転送されるべき各ワードは、バッファ内に記憶される前
にまたシフトされなければならない。この例の場合、シ
フトの範囲はOないし15ビツトであり、従って図5で
データ右サイクル距離と呼ぶ4ビツトの数によって定義
される。最初の画像が走査線当たり1.024ワードを
有していると仮定すれば、このアドレス10個の最下位
ビット、9:0はその走査線内のワードの数によって構
成され、次の4ビツト、13:10は走査線の数の最下
位4ビツトによって構成され、この数はまた必要なシフ
トの数でもある。従って、VFAのビット13 : 1
0は図5の右サイクル距離として示される。 [0026] バッファから出力されたワードのデータを転送するには
、まず、この出力されたワードの数を取り上げなければ
ならない。このワードの数はこの例では18ビツトであ
り、図5では仮想ダンプ・アドレスVDA (17:
0)として表す。画像を回転させる目的のため、このV
DAは最初の画像を90度回転させたバージョンの16
ビツトのワードをユニークな方法で選択したものと考え
ることができる。この回転された画像は、走査線当たり
16のワードと16,384本の走査線を有する。従っ
て、VDAの最下位4ビツト、ビット3:0は、これら
の新しい走査線の内の1本のワードの数であり、最上位
の14ビツト、ビット17:4は走査線の数である。1
6ビツトのデータが実際に得られなければならないバッ
ファのロケーションは図5ではリアル・ダンプ・アドレ
スとして示され、下記のようにして集められる。最上位
ビット(17:14)はVDA (3: O)から得ら
れ、次の4ビツトはVDA (7: 4)にピクセルの
数Rと1を加えたものであり最下位10ビツトは反転さ
れたVDA (17: 8)である。データを読み出す
には、これらのアドレスの内16個が各ビットに対して
1つ集められなければならない。0ないし15ビツトの
最後の右方向に回転するシフト距離は、VDA (7:
4)+1として集められる。 [0027] 上述のフィールドは画像ワードを取り出しシフトするた
めのプログラムの基礎になるものであり、実際のアドレ
スを発生する回路を駆動するために、使用することが可
能であり、この回路を図6、図7および図8に示す。入
力は、図示のフィールドに分割された18ビツトの仮想
ダンプ・アドレスである。全ての場合、もし画像が回転
されるべきでなければ、下位のグループの信号が2対1
のマルチプレクサの全てで選択され、一方上位のグルー
プは90度回転させるために選択される。最初の画像ま
たは回転された画像のいずれかの16ビツト対16ビツ
トにアライメントされたブロックの各々の場合、一般に
14のアドレスビットが存在する。これらは14ビツト
のマルチプレクサによって出力される。 [0028] 各チップに対するアドレスの残りの4ビツトは回転しな
い場合の各チップに対しては同じであり、回転された場
合の各チップに対しては異なっている。回転しない場合
、残りの4ビツト13 : 10は変化しないままであ
り、各4ビツトのマルチプレクサの下半分に加えられて
残りのアドレス・ビットを発生する。回転された場合、
ビット・アドレスは各チップに対して異なっている。こ
のことは、入力アドレスのビット7:4で開示し、各々
がOと15との間の数の合計と4ビツトのアドレス・フ
ィールドを発生する16個の4ビツト加算器を設けるこ
とによって達成される。各々の出力は、16個の4ビツ
トマルチプレクサに対する回転されたアドレス入力とし
て使用される。 [00291 図9は、1つの可能な16ビツトの並列サイクリック・
シフタ(cydic 5hifter )の最初の3個
のマルチプレクサの最初の6ビツトを示す簡単な概略図
であり、このサイクリック・シフタは16ビツトのワー
ドを1クロツク・サイクル内に何ビットでもシフトする
ことができる。入力ワードの最初の6ビツトは文字Aな
いしFによって表され、全てのマルチプレクサの入力ピ
ンOないし5に加えられる。各マルチプレクサに対する
アドレス入力は定数O11,2、・を必要とされるシフ
ト数nに加算する加算器を介して加えられる。従って、
もしn = 2であれば、第1マルチプレクサはピン2
を選択し、第2マルチプレクサはピン3を選択し、第3
マルチプレクサはピン4を選択する等々である。従って
、出力ワ− ドCDEFは1クロツク・サイクル内に入
力ワードABCDから2ビツトだけシフトされる。 [0030] 図16は、画像の8つの可能な方向を示す。上で説明し
たように、最初の回転されない画像1は90度回転され
て例5を発生し、または270度回転されて例2を発生
することができる。また、最初の画像は載置プロセスで
ステップを逆転させることによって出力されてもよい。 180度回転された例6は図13のようにして達成され
ることができる。この場合ワードは逆の順序で読み出さ
れる。従って、図示のように最初の画像の上部のブロッ
クの最後のワードは回転された画像の下部のブロックの
最初のワードになる。更に、ピクセルも逆にされなけれ
ばならない。これは、図11に示すように、ワードをピ
クセル・シックを介して転送することによって簡単に達
成される。左側の入力レジスタの上部のピクセルは右側
のピクセルの底部のロケーションにハード的に結線され
、残りのピクセルは図示のように同様にして結線される
。この走査とシフトのプロセスの結果、180度の回転
が行われる。 [0031] 図16の例1と3に示すように、画像が右と左に反転し
ている鏡に写した画像は、図10に示すプロセスを使用
することによって作ることができる。ここでは走査線は
受は取られたのと逆の順序で読み出される。すなわち、
最初の列入力は最後の列出力として使用される、等々で
ある。 [0032] 図16の例1と8に示すように、画像が上と下で反転し
ている鏡に写した画像は第10に示すプロセスを使用す
ることによって作ることができる。ここで、走査線は通
常の順序で読み出されるが、図11の回路を使用して、
各列内でワードは上下に反転され、各ワード内のピクセ
ルの順序もまた反転される。 [0033] 最後に、画像を90度または270度回転させるプロセ
スを鏡に写した画像を発生させるプロセスまたは180
度回転させるプロセスと組み合わせて異なった方向を発
生することができる。画像を90度回転させるのに続い
てこの鏡に写した画像を上下で反転させるプロセスが図
14に示され、これによって図16の例7が発生される
。同様に、画像を90度回転させてからこの鏡に写した
画像を左右で反転させるプロセスが図15に示され、こ
の結果、図16の例4が得られる[0034] 図10ないし図13のワードの転送の全ては並列に行わ
れ、従って上で説明した90度および270度の回転と
組み合わせて処理時間を増加させることなく全ての可能
な方向を発生することができる。 [0035] 本発明を特定の実施例を参照して説明したが、本発明の
真の精神と範囲から逸脱することなく種々の変更が可能
であり、等価な要素で以て本実施例の要素を代替するこ
とも可能であることを当業者は理解する。例えば、各ピ
クセルは1つまたは複数の2進ワードまたはアナログ電
圧で表すことができる。更に、本発明の基本的な教示か
ら逸脱することなく多くの変形が可能である。 [0036]
キャナから受は取られた直角の形をした最初の画像、0
度を含む90度のいずれかの倍数だけ回転されることの
できる形の中間画像を含むバッファ、およびメモリに送
り返される回転された画像を示す。単純化のため、バッ
ファは4x4ビツトとして示され、1ワード当たり4ビ
ツトが存在するがこのアルゴリズムはいずれの大きさの
システムに対しても動作可能である。また、理解をより
容易にするため、回転されていない画像はメモリから来
るも゛のとして示され、回転された画像はメモリに対し
て出力される物として示されるが、上で説明したように
、この画像はいずれのソースから受は取ることも可能で
あり、いずれの種類の装置に転送することも可能である
。これらの数字は垂直走査線を仮定し、その結果、図1
のワードO11,2および3は図示のように下から上に
左の列のワードである。次の走査線はワード45、等で
開始される。これらの図1のワード・アドレスは仮想充
填アドレスと称するが、その理由は、これらが実際のメ
モリ・アドレスを識別せず、またこれらがバッファを充
填するために使用されるロケーションのアドレスを発生
するアルゴリズムによって使用される数であるからであ
る。 [0009] 画像を回転させるには、第1ステツプで最初の画像の各
ワードをバッファに対してシフトおよび転送する。本発
明の重要な特徴の1つは、いずれの特定の順序でもワー
ドをバッファに対して載置またはこれから除去する必要
がないことである。また、ワードのいずれのサブセット
・ブロックも残りの画像から独立して処理することがで
きる。例えば、反時計方向に90度回転されなければな
らない1つの4x4ビツトの画像のブロックを構成する
ワード18.22.26および30の処理を検討してみ
る。最初の垂直な線によって構成されるワード18の4
つのビット(OOlol、02.03)は循環している
シフタ内でOビットだけ上方向にシフトされてバッファ
の同じ位置18に載置される。次にワード22のビット
(10,11,12,13)は1ビツトだけ上方向にシ
フトされてバッファ・ワード22に載置される。次に、
ワード26は、2ビツトだけシフトされてバッファのワ
ード26に載置される。最後に、ワード30は、3ビツ
トだけシフトされてバッファのロケーション30に載置
される。さて、図示のように最初の各垂直線の各ビット
が別のチップに載置されるだけでなく、また最初の各水
平線の各ビットもまた別のチップに載置される。従って
、最初の水平または垂直線のいずれかをバッファから並
列にアクセスすることが可能である。 [0010] 第2ステツプでは、図2のバッファからビットを読み出
し、これらのビットを適当な数のビットにシフトし、こ
れらを回転された画像として例えば図4のメモリに載置
する。図1の最初の画像は、高さが4ワードで幅が3ワ
ードであることに留意のこと。もし、画像全体が90度
回転されれば、その結果、得られる画像は、図4に示す
ように、高さが3ワードで幅が4ワードである。 [0011] この部分のアルゴリズムは、2つのステップによって構
成されると考えることができ、第1ステツプは各ワード
のビットを集め、その結果、図3の画像を得るステップ
であり、第2ステツプはワード内のこれらのビットをシ
フトして図4の画像を得るステップである。 [0012] 例として、図3のワード13を使用する。必要なピクセ
ルのビットは、13.23.33および03であり、こ
れらは図2のワード13のビット0、ワード27のビッ
ト1、ワード31のビット2、およびワード19のビッ
ト3に対応する。各々のビットは別のバッファ・チップ
内にあり、従ってこれら全ては同時に並列にアドレスお
よびアクセスされることが可能であり、ワード#13と
して出力(J開干3−冶JU/b0(−) される。残りの3つのワードは同様に転送されて図3に
示す4x4ビツトのブロックを発生する。 [0013] 最後に、回転を完了するには上方向のシフトが必要であ
る。ワード13.1619および22はそれぞれ1.2
.3およびOビットだけ上方向にシフトされる。図4は
この結果を完全にシフトされた画像として示す。このア
ルゴリズム全体の結果として得られるのは、図示のよう
に回転された画像であり、これは2つの並列な転送と2
つのシフトによって得られるものである。これらのシフ
トはまた以下で論する並列シフタを使用して行われるの
で、回転は全体として並列動作を使用して行われる。 [0014] 図2のバッファと図4のメモリとの間で転送を行ってい
る間に同様のアドレス方法を使用して画像を270度回
軸回転ることができる。0度のシフトは、バッファ内の
ワードをシフトすることによってそれらの最初の形に戻
し、メモリに出力することによって簡単に行われる。各
々の回転されたワードは、バッファからアクセスされ、
メモリに対して直接シフトおよび載置されるため、図3
の画像を有する記憶装置の存在しないことに留意のこと
。この画像は本発明の理解を助けるためにここで発生さ
れたものにすぎない。 [0015] このシステムは、下記のように数学的表現を使用して一
般化することができる。画像を90度回転させるアルゴ
リズムは、ピクセルのr行と0列のアレイで開始される
。図2において、例えば、ここには16行と12列があ
り、従ってr=16であり、C=12である。ピクセル
・アレイの各列は各々Wピクセルのワードに仕切られ、
行、列、各列内のワード、およびピクセル・アレイの各
ワード内のピクセルは全てOで始まる番号を付けられて
いる。図3において、ワード当たり4ビツトが存在し、
従って、w=4である。 [0016] 事実、最も一般的な場合、バッファ・ワードの大きさは
画像データ・ワードの6ビツトのバッファ・メモリに記
憶されるとすれば、3データ・ワード(15ビツト)を
記憶するには1メモリ・ワード(16ビツト)が必要で
あり、4データ・ワード(20ビツト)を記憶するには
2メモリ・ワード(32ビツト)が必要である。 [0017] また、画像の次元はメモリ・ワードの大きさの倍数の数
字全体である必要はない。数学的に言えば、ワード内の
メモリの垂直デイメンジョンをv[r/wJに等しくし
、ここで「r/W」はr/w以上の最小の整数である。 同様に、メモリの水平デイメンジョンはhをrc/Wj
に等しくする。図2の場合、v=4でありh=3である
。 [0018] アルゴリズムは、図1の例に示すように、最初のピクセ
ル・アレイのワードを以下のようにして図2に示すよう
に直線ワード・オーガナイズドバツファ・メモリに記憶
する。すなわち、アルゴリズムは列jの各ワードiを(
j)モツド(mod)wピクセル位置だけ右方向に回転
シフトさせ、次にこの変更されたワードのビットを並列
にバッファ・メモリのワード・アドレスvj+iに書き
込む。図1および図2に基づく数字の例を使用すれば、
列Oに記憶されるべきワードはOビットだけシフトされ
、列1.2および3のワードは、それぞれ、1.2およ
び3ビツトだけシフトされ、列4のワードは再びOでス
タートする。これらの5つのワードは次にメモリの第1
の5つのロケーションに記憶されるが、これらの5つの
ロケーションは列Oの4つのロケーションと列1の第1
0ケーシヨンである。 [0019] アルゴリズムの次のステップではバッファから並列して
記憶されたピクセル・アレイの各ワードを取り出し、そ
の結果、図3の各ピクセルpはワード・アドレスの図2
の各ピクセルpから得られるが、このワード・アドレス
は、wvi+v [(p+j+1) mod w] +
「(wv−j−1) /wJによって表される。 [0020] なお図3の例を使用すると、これは下記の式になる。 16 i+4 [4(p+j+1)mod4] + 「
(15−j)/4J[0021] 図3の列5のビット02を数字による例として取り上げ
ると、pすなわちワード内のピクセル番号は2に等しく
、iすなわちこのコラムのワード番号は1に等しい。そ
して、jすなわち列番号は5に等しい。図2の全ての定
数と図3の変数全土の等式に代入すると、18の答が得
られる。すなわち、図3のワード16のピクセルには図
2のワード18の同じピクセル(2)からアクセスされ
なければならない。 [0022] 図4のメモリに出力する前に、最後のステップで、この
ワードを2ビツトだけ上方にシフトする。 [0023] 上で説明した等式は、このアルゴリズムを数学的に説明
しているが、もしh、■、およびWが2の全ての累乗で
あれば、これらのアドレスはまたシフトしているビット
をマスクすることによってソフトウェアまたはハードウ
ェアで発生することができる。図5は、このプロセスを
実行するシステムの一例を示し、ここでは最初の画像は
ワード当たり16個の1ビツトのずクセル、走査線当た
り1024個のワードおよび256本の走査線を有する
と仮定する。従って、許容可能な画像の大きさ内の全て
の入力ワードを識別するのには、18ビツトのアドレス
(17:O)が必要である。この画像全体の内部にある
ワードはメモリ内の実際のアドレスを使用するのではな
くてOで始まる任意に割り当てられたアドレスであり、
従って1仮想」アドレスと称し、バッファを「充填する
」ために使用される。図5は、18ビツト(17: 0
)としての仮想充填アドレス(VFA)を示す[002
4] このバッファは、各々が256にビットを有する16個
のチップから実行される。従って、各チップ内の各ビッ
トのアドレスおよびバッファ内の各ワードのアドレスも
また18ビツトのワードである。このアドレスは実充填
アドレスと呼ぶが、その理由は、これが実際のバッファ
のロケーションのアドレスであり、このバッファを充填
するために使用されるからである。図5に示すように、
バッファを充填するのに使用される仮想充填アドレスと
実充填アドレスは同一である。 [0025] 転送されるべき各ワードは、バッファ内に記憶される前
にまたシフトされなければならない。この例の場合、シ
フトの範囲はOないし15ビツトであり、従って図5で
データ右サイクル距離と呼ぶ4ビツトの数によって定義
される。最初の画像が走査線当たり1.024ワードを
有していると仮定すれば、このアドレス10個の最下位
ビット、9:0はその走査線内のワードの数によって構
成され、次の4ビツト、13:10は走査線の数の最下
位4ビツトによって構成され、この数はまた必要なシフ
トの数でもある。従って、VFAのビット13 : 1
0は図5の右サイクル距離として示される。 [0026] バッファから出力されたワードのデータを転送するには
、まず、この出力されたワードの数を取り上げなければ
ならない。このワードの数はこの例では18ビツトであ
り、図5では仮想ダンプ・アドレスVDA (17:
0)として表す。画像を回転させる目的のため、このV
DAは最初の画像を90度回転させたバージョンの16
ビツトのワードをユニークな方法で選択したものと考え
ることができる。この回転された画像は、走査線当たり
16のワードと16,384本の走査線を有する。従っ
て、VDAの最下位4ビツト、ビット3:0は、これら
の新しい走査線の内の1本のワードの数であり、最上位
の14ビツト、ビット17:4は走査線の数である。1
6ビツトのデータが実際に得られなければならないバッ
ファのロケーションは図5ではリアル・ダンプ・アドレ
スとして示され、下記のようにして集められる。最上位
ビット(17:14)はVDA (3: O)から得ら
れ、次の4ビツトはVDA (7: 4)にピクセルの
数Rと1を加えたものであり最下位10ビツトは反転さ
れたVDA (17: 8)である。データを読み出す
には、これらのアドレスの内16個が各ビットに対して
1つ集められなければならない。0ないし15ビツトの
最後の右方向に回転するシフト距離は、VDA (7:
4)+1として集められる。 [0027] 上述のフィールドは画像ワードを取り出しシフトするた
めのプログラムの基礎になるものであり、実際のアドレ
スを発生する回路を駆動するために、使用することが可
能であり、この回路を図6、図7および図8に示す。入
力は、図示のフィールドに分割された18ビツトの仮想
ダンプ・アドレスである。全ての場合、もし画像が回転
されるべきでなければ、下位のグループの信号が2対1
のマルチプレクサの全てで選択され、一方上位のグルー
プは90度回転させるために選択される。最初の画像ま
たは回転された画像のいずれかの16ビツト対16ビツ
トにアライメントされたブロックの各々の場合、一般に
14のアドレスビットが存在する。これらは14ビツト
のマルチプレクサによって出力される。 [0028] 各チップに対するアドレスの残りの4ビツトは回転しな
い場合の各チップに対しては同じであり、回転された場
合の各チップに対しては異なっている。回転しない場合
、残りの4ビツト13 : 10は変化しないままであ
り、各4ビツトのマルチプレクサの下半分に加えられて
残りのアドレス・ビットを発生する。回転された場合、
ビット・アドレスは各チップに対して異なっている。こ
のことは、入力アドレスのビット7:4で開示し、各々
がOと15との間の数の合計と4ビツトのアドレス・フ
ィールドを発生する16個の4ビツト加算器を設けるこ
とによって達成される。各々の出力は、16個の4ビツ
トマルチプレクサに対する回転されたアドレス入力とし
て使用される。 [00291 図9は、1つの可能な16ビツトの並列サイクリック・
シフタ(cydic 5hifter )の最初の3個
のマルチプレクサの最初の6ビツトを示す簡単な概略図
であり、このサイクリック・シフタは16ビツトのワー
ドを1クロツク・サイクル内に何ビットでもシフトする
ことができる。入力ワードの最初の6ビツトは文字Aな
いしFによって表され、全てのマルチプレクサの入力ピ
ンOないし5に加えられる。各マルチプレクサに対する
アドレス入力は定数O11,2、・を必要とされるシフ
ト数nに加算する加算器を介して加えられる。従って、
もしn = 2であれば、第1マルチプレクサはピン2
を選択し、第2マルチプレクサはピン3を選択し、第3
マルチプレクサはピン4を選択する等々である。従って
、出力ワ− ドCDEFは1クロツク・サイクル内に入
力ワードABCDから2ビツトだけシフトされる。 [0030] 図16は、画像の8つの可能な方向を示す。上で説明し
たように、最初の回転されない画像1は90度回転され
て例5を発生し、または270度回転されて例2を発生
することができる。また、最初の画像は載置プロセスで
ステップを逆転させることによって出力されてもよい。 180度回転された例6は図13のようにして達成され
ることができる。この場合ワードは逆の順序で読み出さ
れる。従って、図示のように最初の画像の上部のブロッ
クの最後のワードは回転された画像の下部のブロックの
最初のワードになる。更に、ピクセルも逆にされなけれ
ばならない。これは、図11に示すように、ワードをピ
クセル・シックを介して転送することによって簡単に達
成される。左側の入力レジスタの上部のピクセルは右側
のピクセルの底部のロケーションにハード的に結線され
、残りのピクセルは図示のように同様にして結線される
。この走査とシフトのプロセスの結果、180度の回転
が行われる。 [0031] 図16の例1と3に示すように、画像が右と左に反転し
ている鏡に写した画像は、図10に示すプロセスを使用
することによって作ることができる。ここでは走査線は
受は取られたのと逆の順序で読み出される。すなわち、
最初の列入力は最後の列出力として使用される、等々で
ある。 [0032] 図16の例1と8に示すように、画像が上と下で反転し
ている鏡に写した画像は第10に示すプロセスを使用す
ることによって作ることができる。ここで、走査線は通
常の順序で読み出されるが、図11の回路を使用して、
各列内でワードは上下に反転され、各ワード内のピクセ
ルの順序もまた反転される。 [0033] 最後に、画像を90度または270度回転させるプロセ
スを鏡に写した画像を発生させるプロセスまたは180
度回転させるプロセスと組み合わせて異なった方向を発
生することができる。画像を90度回転させるのに続い
てこの鏡に写した画像を上下で反転させるプロセスが図
14に示され、これによって図16の例7が発生される
。同様に、画像を90度回転させてからこの鏡に写した
画像を左右で反転させるプロセスが図15に示され、こ
の結果、図16の例4が得られる[0034] 図10ないし図13のワードの転送の全ては並列に行わ
れ、従って上で説明した90度および270度の回転と
組み合わせて処理時間を増加させることなく全ての可能
な方向を発生することができる。 [0035] 本発明を特定の実施例を参照して説明したが、本発明の
真の精神と範囲から逸脱することなく種々の変更が可能
であり、等価な要素で以て本実施例の要素を代替するこ
とも可能であることを当業者は理解する。例えば、各ピ
クセルは1つまたは複数の2進ワードまたはアナログ電
圧で表すことができる。更に、本発明の基本的な教示か
ら逸脱することなく多くの変形が可能である。 [0036]
【図1】
回転回路の受信した画像である。
【図2】
バッファに記憶されている画像である。
【図3】
バッファからアクセスされた画像である。
【図4】
回転された形の画像である。
【図5】
回転回路の必要とする種々のアドレス領域の内容を示す
図である。
図である。
【図6】
回転回路の単純化した概略図の部分図である。
【図7】
回転回路の単純化した概略図の部分図である。
【図8】
回転回路の単純化した概略図の部分図である。
【図9】
並列シフタの単純化した概略図である。
【図10】
ワードの転送を示す画像である。
【図11】
ワードの転送を示す画像である。
【図12】
ワードの転送を示す画像である。
【図13】
ワードの転送を示す画像である。
【図14】
ワードの転送を示す画像である。
【図15】
ワードの転送を示す画像である。
【図16】
図面
【図1】
【図2】
行の番号R=16
列の番号C=12
ビット数/ワードW二4
ワード数、″列v=4
ワード数1.・′列H=3
【図3】
列番号Ci−2)
【図4】
【図5】
【図6】
【図7】
図6へ
【図8】
【図91
【図101
【図12】
【図13】
【図14】
【図15】
【図16】
Claims (6)
- 【請求項1】各列が1つのワードによって構成されてい
る場合に、n列対n行の最初の画像を回転させる方法に
於いて、上記の方法は:A、上記の画像をバッファに記
憶するステップであって: a、各々の最初のワードを列の数に等しいピクセルの数
だけ回転シフトする第1ステップ;および b、各々のシフトされたワードをコラムの数に等しい上
記のバッファの位置に記憶するステップ;によって構成
される上記のステップ;およびB、n列対n行の画像を
上記のバッファから出力するステップであって、上記の
バッファのコラムの数jとピクセルの数が0からn−1
に変化し、各ワードの出力のための上記の出力ステップ
が: a、上記のバッファのnピクセルからj番目の出力のn
個のピクセル・ワードを集めるステップであって、集め
られたワードの各ピクセルのピクセル数がバファ内のワ
ードのピクセル数に等しく出力ワード内の全てのピクセ
ルが最初の画像のn番目の画像の列内に最初から存在し
ていたピクセルである上記の集合ステップ;および b、その結果得られたワードのj+1ピクセルを回転シ
フトする第2のステップ;によって構成される上記の出
力ステップ;によって構成されることを特徴とする方法
。 - 【請求項2】画像の配列方向を変更する方法に於いて、
上記の方法は:請求項1の方法を使用して画像を回転さ
せ、走査線の順序を反転して鏡に写した画像を発生する
ステップ;によって構成されることを特徴とする方法。 - 【請求項3】画像の配列方向を変更するプロセスに於い
て、上記のプロセスは: 請求項1の方法を使用して画像を回転させるステップ;
および各走査線内のピクセルの順序を反転して鏡に写し
た画像を発生するステップ;によって構成されることを
特徴とするプロセス。 - 【請求項4】iが0からh−1まで変化する場合に指数
iを使用してワードをカウントし、jが0からr−1ま
で変化する場合に指数jを使用して列を表すことによっ
て、r行、c列、ワード当たりwピクセル、列当たりv
ワード、および行当たりhワードを有する最初の画像を
回転する方法に於いて、上記の方法は: 最初の画像内の各ワードをそのコラムの数に等しいシフ
ト回数だけ回転シフトする第1ステップ; バッファ内のワードの数が最初の画像のワードの数と等
しくなるように、バッファ・メモリ内に各ワードを記憶
するステップ;バッファから同時に1つのワードを読み
出すステップであって、この出力ワードの各ピクセルp
はバッファ・ワード・アドレスwvi+v[(p+j+
1)mod w]+「(wv−j−1)/w」のピクセ
ルpから得られる上記の読み出しステップ;およびこの
集められたワードの(j+1)mod wピクセルを回
転シフトする第2ステップ; によって構成される方法。 - 【請求項5】画像の配列方向を変更する方法に於いて、
上記の方法は:請求項3の方法を使用して画像を回転さ
せるステップ;および走査線の順序を反転して鏡に写し
た画像を発生するステップ;によって構成されることを
特徴とする方法。 - 【請求項6】画像の配列方向を変更するプロセスに於い
て、上記のプロセスは: 請求項3の方法を使用して画像を回転させるステップ;
および各走査線内のピクセルの順序を反転して鏡に写し
た画像を発生するステップ;によって構成されることを
特徴とするプロセス。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/453,738 US5111192A (en) | 1989-12-20 | 1989-12-20 | Method to rotate a bitmap image 90 degrees |
| US453738 | 1989-12-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03290765A true JPH03290765A (ja) | 1991-12-20 |
Family
ID=23801864
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2401872A Pending JPH03290765A (ja) | 1989-12-20 | 1990-12-13 | ビットマップ・イメージの90度回転方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5111192A (ja) |
| EP (1) | EP0433645A3 (ja) |
| JP (1) | JPH03290765A (ja) |
| CA (1) | CA2027458A1 (ja) |
Families Citing this family (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3022903B2 (ja) * | 1992-07-27 | 2000-03-21 | 富士ゼロックス株式会社 | 画像回転装置 |
| US5365601A (en) * | 1991-12-23 | 1994-11-15 | Xerox Corporation | N-bit wide parallel rotation algorithm |
| JP3151788B2 (ja) | 1991-12-23 | 2001-04-03 | ゼロックス コーポレーション | 矩形原画像の回転方法 |
| US5613018A (en) * | 1991-12-23 | 1997-03-18 | Xerox Corporation | Page buffer rotator |
| US5611001A (en) * | 1991-12-23 | 1997-03-11 | Xerox Corporation | Address reduction scheme implementing rotation algorithm |
| US5361339A (en) * | 1992-05-04 | 1994-11-01 | Xerox Corporation | Circuit for fast page mode addressing of a RAM with multiplexed row and column address lines |
| US5581773A (en) * | 1992-05-12 | 1996-12-03 | Glover; Michael A. | Massively parallel SIMD processor which selectively transfers individual contiguously disposed serial memory elements |
| US5450604A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units |
| EP0609622A1 (en) * | 1992-12-31 | 1994-08-10 | Xerox Corporation | Cell band rotation |
| US5671440A (en) * | 1994-08-08 | 1997-09-23 | Eastman Kodak Company | Color image data reorientation and format conversion system |
| US5517587A (en) * | 1994-09-23 | 1996-05-14 | International Business Machines Corporation | Positioning method and apparatus for line scanned images |
| US5585863A (en) * | 1995-04-07 | 1996-12-17 | Eastman Kodak Company | Memory organizing and addressing method for digital video images |
| JPH10501901A (ja) * | 1995-04-07 | 1998-02-17 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 画像の回転のための方法および装置 |
| WO1996036941A1 (en) * | 1995-05-15 | 1996-11-21 | Polaroid Corporation | Image rotation using discrete cosine transforms |
| US5668980A (en) * | 1995-07-31 | 1997-09-16 | Advanced Micro Devices, Inc. | System for performing rotation of pixel matrices |
| US5634088A (en) * | 1995-11-01 | 1997-05-27 | Xerox Corporation | Method and apparatus for rotation of high addressability bitmap images |
| US5912995A (en) * | 1996-06-06 | 1999-06-15 | Sun Microsystems, Inc. | Method and apparatus for rotating or transposing a binary image |
| US5946222A (en) * | 1996-12-20 | 1999-08-31 | Oak Technology, Inc. | Method and apparatus for performing a masked byte addition operation |
| US5870581A (en) * | 1996-12-20 | 1999-02-09 | Oak Technology, Inc. | Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register |
| US6223181B1 (en) | 1997-07-31 | 2001-04-24 | Oak Technology, Inc. | Memory conserving and compression technique-compatible image rotation system |
| US5986672A (en) * | 1997-10-14 | 1999-11-16 | Minnesota, Mining And Manufacturing 3M Center | Method and system for forming a rotated image on an imaging element using limited system resources |
| JP4695815B2 (ja) * | 2002-02-22 | 2011-06-08 | キヤノン株式会社 | 描画処理装置および描画処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム |
| US7376286B2 (en) * | 2002-09-18 | 2008-05-20 | Nxp B.V. | Block-based rotation of arbitrary-shaped images |
| US7581080B2 (en) * | 2003-04-23 | 2009-08-25 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements according to locally maintained counts |
| US7596678B2 (en) * | 2003-04-23 | 2009-09-29 | Micron Technology, Inc. | Method of shifting data along diagonals in a group of processing elements to transpose the data |
| US7913062B2 (en) * | 2003-04-23 | 2011-03-22 | Micron Technology, Inc. | Method of rotating data in a plurality of processing elements |
| US7676648B2 (en) * | 2003-04-23 | 2010-03-09 | Micron Technology, Inc. | Method for manipulating data in a group of processing elements to perform a reflection of the data |
| US7315294B2 (en) * | 2003-08-25 | 2008-01-01 | Texas Instruments Incorporated | Deinterleaving transpose circuits in digital display systems |
| US7167148B2 (en) * | 2003-08-25 | 2007-01-23 | Texas Instruments Incorporated | Data processing methods and apparatus in digital display systems |
| US20050275665A1 (en) * | 2004-06-14 | 2005-12-15 | Keith Kejser | System and method for efficiently supporting image rotation modes by utilizing a display controller |
| US20060028491A1 (en) * | 2004-07-29 | 2006-02-09 | Zih Corp. | System and method for providing a protable printer capable of altering the orientation of information displayed on an associated printer display |
| US20060262143A1 (en) * | 2005-05-23 | 2006-11-23 | Mr. Paul Harris | Multi-Image Rotation on an Individual Video and/or Graphic Display |
| US7643038B2 (en) * | 2005-06-29 | 2010-01-05 | Qualcomm Incorporated | Virtual device buffer for embedded device |
| US7512287B2 (en) * | 2005-07-25 | 2009-03-31 | Seiko Epson Corporation | Method and apparatus for efficient image rotation |
| JP4863755B2 (ja) | 2006-04-18 | 2012-01-25 | ヤマハ発動機株式会社 | クラッチ用アクチュエータ、エンジンユニットおよび鞍乗型車両 |
| US20070252842A1 (en) * | 2006-04-28 | 2007-11-01 | Smith Gerald R | System and method for capturing and transposing vertically scanned documents in an imaging system |
| US7768678B2 (en) * | 2006-05-15 | 2010-08-03 | Xerox Corporation | Systems, methods and devices for rotating images |
| JP4909144B2 (ja) * | 2007-03-22 | 2012-04-04 | 富士通セミコンダクター株式会社 | 画像認識装置及び画像回転処理方法 |
| US9561008B2 (en) | 2010-12-28 | 2017-02-07 | General Electric Company | Method of displaying image |
| US8797359B2 (en) * | 2011-11-29 | 2014-08-05 | Apple Inc. | Inline image rotation |
| JP5751354B1 (ja) * | 2014-01-28 | 2015-07-22 | 日本電気株式会社 | メモリ制御装置、情報処理装置、メモリ制御方法、および、コンピュータ・プログラム |
| CN106610821B (zh) * | 2015-10-22 | 2020-05-12 | 海信视像科技股份有限公司 | 一种在终端上显示图片的方法和终端 |
| US11582402B2 (en) * | 2018-06-07 | 2023-02-14 | Eys3D Microelectronics, Co. | Image processing device |
| US12380666B2 (en) | 2021-10-05 | 2025-08-05 | FLIR Unmanned Aerial Systems AS | Compressed fixed-point SIMD macroblock rotation systems and methods |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6149246A (ja) * | 1984-08-16 | 1986-03-11 | Fujitsu Ltd | イメ−ジ回転処理方式 |
| JPS62299892A (ja) * | 1986-06-19 | 1987-12-26 | 富士通株式会社 | キヤラクタジエネレ−タメモリのアクセス方式 |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3976982A (en) * | 1975-05-12 | 1976-08-24 | International Business Machines Corporation | Apparatus for image manipulation |
| US4052699A (en) * | 1976-06-30 | 1977-10-04 | International Business Machines Corporation | High speed real time image transformation |
| IT1084325B (it) * | 1977-06-30 | 1985-05-25 | Elsag | Procedimento ed apparecchio per la rotazione di una matrice di datibinari, particolaremente destinati all'impiego come utilita' di memoria a duplice modo di accesso per calcolatori elettronici. |
| GB1547119A (en) * | 1977-12-09 | 1979-06-06 | Ibm | Image rotation apparatus |
| US4271476A (en) * | 1979-07-17 | 1981-06-02 | International Business Machines Corporation | Method and apparatus for rotating the scan format of digital images |
| US4562485A (en) * | 1979-08-10 | 1985-12-31 | Canon Kabushiki Kaisha | Copying apparatus |
| JPS58159184A (ja) * | 1982-03-17 | 1983-09-21 | Nec Corp | 画像回転装置 |
| JPS6073671A (ja) * | 1983-09-30 | 1985-04-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | パタ−ン処理装置 |
| US4627020A (en) * | 1983-12-30 | 1986-12-02 | International Business Machines Corporation | Method for rotating a binary image |
| US4701752A (en) * | 1985-10-24 | 1987-10-20 | International Business Machines Corp. | Mirror inverse function in an interactive graphics system |
| CA1252902A (en) * | 1985-10-31 | 1989-04-18 | David R. Pruett | Method for rotating a binary image |
| JPH0773920B2 (ja) * | 1986-11-17 | 1995-08-09 | 日本電気株式会社 | n×nビットドットマトリックス90゜回転回路 |
-
1989
- 1989-12-20 US US07/453,738 patent/US5111192A/en not_active Expired - Lifetime
-
1990
- 1990-10-12 CA CA002027458A patent/CA2027458A1/en not_active Abandoned
- 1990-11-09 EP EP19900121503 patent/EP0433645A3/en not_active Withdrawn
- 1990-12-13 JP JP2401872A patent/JPH03290765A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6149246A (ja) * | 1984-08-16 | 1986-03-11 | Fujitsu Ltd | イメ−ジ回転処理方式 |
| JPS62299892A (ja) * | 1986-06-19 | 1987-12-26 | 富士通株式会社 | キヤラクタジエネレ−タメモリのアクセス方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0433645A2 (en) | 1991-06-26 |
| EP0433645A3 (en) | 1992-12-30 |
| US5111192A (en) | 1992-05-05 |
| CA2027458A1 (en) | 1991-06-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5111192A (en) | Method to rotate a bitmap image 90 degrees | |
| US4627020A (en) | Method for rotating a binary image | |
| US4780711A (en) | Anti-aliasing of raster images using assumed boundary lines | |
| EP0216501B1 (en) | Digital image rotation | |
| US6640295B2 (en) | Semiconductor circuit with address translation circuit that enables quick serial access in row or column directions | |
| US3973245A (en) | Method and apparatus for point plotting of graphical data from a coded source into a buffer and for rearranging that data for supply to a raster responsive device | |
| JPH01134495A (ja) | 画像データ回転処理装置及びその方法 | |
| JPS6235679B2 (ja) | ||
| JPS60147884A (ja) | イメージ回転方法 | |
| US5361339A (en) | Circuit for fast page mode addressing of a RAM with multiplexed row and column address lines | |
| JP3074229B2 (ja) | 画像回転回路 | |
| JPS642993B2 (ja) | ||
| EP0456394B1 (en) | Video memory array having random and serial ports | |
| JPH01283676A (ja) | ウインドウ画像データの読出処理方式 | |
| JP3151788B2 (ja) | 矩形原画像の回転方法 | |
| US5910794A (en) | Method and apparatus for storing and rotating bit patterns | |
| JPH11306343A (ja) | 2次元データ回転処理装置 | |
| JPH05307600A (ja) | データの読込及び読出回路 | |
| JPH061449B2 (ja) | 画像編集用イメ−ジメモリ | |
| JPH028335B2 (ja) | ||
| JPH0241267A (ja) | 像形成装置 | |
| JPH0581940B2 (ja) | ||
| JPS6125192B2 (ja) | ||
| JP2708841B2 (ja) | ビットマップメモリの書き込み方法 | |
| JPH028336B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19940822 |