JP2817771B2 - 画像データ回転方法およびシステム - Google Patents

画像データ回転方法およびシステム

Info

Publication number
JP2817771B2
JP2817771B2 JP7025556A JP2555695A JP2817771B2 JP 2817771 B2 JP2817771 B2 JP 2817771B2 JP 7025556 A JP7025556 A JP 7025556A JP 2555695 A JP2555695 A JP 2555695A JP 2817771 B2 JP2817771 B2 JP 2817771B2
Authority
JP
Japan
Prior art keywords
row
register
rows
nibble
bit
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.)
Expired - Lifetime
Application number
JP7025556A
Other languages
English (en)
Other versions
JPH07296157A (ja
Inventor
アルベルト・ゼット・チャオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07296157A publication Critical patent/JPH07296157A/ja
Application granted granted Critical
Publication of JP2817771B2 publication Critical patent/JP2817771B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/602Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディジタル画像処理方
法に関し、具体的には、2レベル画像を高速回転する方
法に関する。
【0002】
【従来の技術】2レベル画像(モノクローム画像とも称
する)とは、その2レベル・ビットマップに1ビット毎
画素だけが含まれるので、2つの輝度レベル(一般に白
黒または緑と黒)だけを有する画像である。1024×
1024画素の解像度の画面全体のビットマップは、2
20ビットまたは約128000バイトである。
【0003】ワークステーションやパーソナル・コンピ
ュータなど、少記憶コンピュータのオフィスや家庭での
普及を介して、オフィス文書、報告書、フォーム、手紙
および写真のコンピュータ記憶が、物理的な格納要件を
削減し、一般のオフィス・ファイルへのアクセス可能性
を高めるための手段として流行している。
【0004】文書は、通常は光学文字読取装置(OC
R)走査、ファクシミリまたはオンライン・データ伝送
によってコンピュータ・システムに受け取られる。課題
は、たとえばOCRによってシステムに入力された文書
の画像を取りだすことと、これを素早く効率的に操作で
き、その結果、エンド・ユーザーがこれを簡単に眺めら
れるようにすることである。
【0005】2レベル画像の入力時の向きに関する90
°、180°および270°の回転は、文書画像処理中
に最も一般的に使用される動作の1つである。従来の解
決策は、1時に1画素だけ画像を回転することである
が、この動作は、非常に時間がかかる。
【0006】その結果、各バイトに8画素が含まれる、
画素のパック式内部データ表現が原因で、±90°の回
転が180°回転よりはるかに複雑なので、特に±90
°の画像回転を手早く処理するための複数の方法が、従
来技術で提案されてきた。回転された画像は、回転前に
原画像が格納されていた記憶域を占有しなければならな
い。したがって、この種の回転のためには、行の数が8
の倍数でなければならない。というのは、垂直列のそれ
ぞれのビットが、回転によってバイトにパックされ、出
力画像の1行が、1バイトの端数で終わってはならない
からである。その結果、プレースホルダ用のデータ値
を、8の倍数でない列に追加しなければならない。
【0007】米国特許第4627020号明細書に、1
時に1画素だけではなく、64画素(8×8ブロック)
までの回転を引き起こすので、従来の方法よりかなり高
速な、90°だけ画像を回転する方法が記載されてい
る。画像のブロックは、一時記憶域(参照テーブルと称
する)に移動され、回転可能なサイズのバイトの小さな
グループに分割される。その後、すべてのビットが同じ
値でないグループのそれぞれを回転する。この方法は、
ほとんどの画像の大きな面積が、背景色(たとえば白)
であり、1つの色だけを含む画像のブロックまたはグラ
フは回転する必要がないという事実を利用している。こ
れは、現在回転方法に一般的に追加されている拡張であ
る。しかし、米国特許第4627020号明細書の方法
は、回転するバイトごとに、追加のメモリ・アクセスと
アドレス操作を使用するので、本発明の方法ほど効率的
ではない。
【0008】米国特許第4658430号明細書は、た
とえば電話線を介して伝送された、符号化された画像
を、90°の倍数だけ回転する方法に関するものであ
る。符号化された画像の向きは、本発明が対処するタイ
プのデータの回転とは異なる問題を提示する。
【0009】米国特許第4837845号明細書は、バ
イナリ画像を元の向きから±90°回転するという問題
に具体的に対処したものである。画像データは、まず、
8つの32ビット・レジスタに格納される行列に、部分
的に転置した形で記憶される。この行列は、回転可能な
サイズのビットのグループ(等しいサイズの部分行列)
に分割され、各グループ内で、第1の事前に選択された
ビット位置が、第2の事前に選択されたビット位置と転
置される。その後、グループ内のビットの行が、グルー
プ内のビットの第2の行と交換される。
【0010】上記の米国特許第4627020号明細
書、米国特許第4658430号明細書および米国特許
第4837845号明細書は、従来技術として、画像回
転に関連する問題の解決を目指したより以前の多数の出
版物および参考文献を論じており、これらの特許明細書
のそれぞれの内容、特に従来技術を述べた部分は、参照
によって本明細書に組み込まれる。
【0011】上記のほかに、米国特許第4916746
号明細書に、ハードウェア回転回路を使用する、時計回
りまたは反時計回りのいずれかの90°の画像回転が開
示されている。この回転回路には、FIFOとシフト・
レジスタが含まれ、データは、1時に1ワードずつFI
FOから読み出され、1ビットの変位を受けてFIFO
に書き戻され、らせん状のデータ経路をもたらす。その
後、シフト・レジスタを使用して、出力の回転された画
像データを組み立てる。
【0012】米国特許第4985849号明細書に、原
画像の斜めにマッピングされるか回転された変更された
画像を形成するための画像処理システムが開示されてい
る。データの元の点と出力点のアドレス位置の間の関係
を計算し、この計算された値を、参照テーブルに事前に
記憶する。その後、原アドレス位置からの画像データ
を、参照テーブルからの出力アドレス情報を使用して転
送またはコピーする。
【0013】米国特許第5067167号明細書に、デ
ータ・プロセッサを使用して3次元画像の原空間座標値
を修正することによる、90°の3次元画像の回転が開
示されている。
【0014】米国特許第5233168号明細書に、画
素ごとにマッピングされた画像を取り込むために画像を
走査し、マッピングされた画像の寸法とスキューを決定
し、一連の区域限定垂直画素シフトを実行し、一連の区
域限定水平画素シフトを実行することによる、画像のス
キュー除去が開示されている。
【0015】高速画像回転を実現するための他の手法
は、米国特許第4947344号明細書に開示された回
転バッファと称する特殊ハードウェア装置や、米国特許
第4992960号明細書に開示された特殊回路など、
ハードウェア固有の解決である。しかし、これらのタイ
プのハードウェア解決には、既存ハードウェアの記憶能
力を最大に引き出すためにソフトウェアで実施される解
決策に対して、修正された既存ハードウェアに関連する
かなりのコストが必要である。
【0016】上記の米国特許第4627020号明細
書、米国特許第4658430号明細書および米国特許
第4837845号明細書に開示された方法と同様に、
本発明も、入力時の向きから90°または270°の向
きへの画像回転を手早く処理する際に、1時に64画素
の画像データ・ブロックに対して作用する。しかし、本
発明の方法は、必要なメモリ・アクセスが従来技術の方
法より少ないので、本発明が特に対処する環境のタイプ
である32ビット・レジスタを有するIntelベース
のIBMパーソナル・コンピュータ上での動作におい
て、15%ないし30%高速であることが判明してい
る。
【0017】
【発明が解決しようとする課題】したがって、本発明の
目的は、32ビット幅のコンピュータ・システムにおい
て、8行8列の画素データ・ビットを有する2レベル画
像データのブロックを90°回転する方法を提供するこ
とにある。
【0018】
【課題を解決するための手段】この方法には、前記ブロ
ックの画素データ・ビットから8行8列の画素データ・
ビットを有する中間行列を生成するステップと、前記
間行列の行を32ビット幅の第1および第2のレジスタ
順次にセーブするステッとが含まれる。なお、最初
のステップに関連して、前記ブロックは4つの行ペアに
分割され、前記中間行列は4つのニブル列ペアに分割さ
れ、前記行ペアの各々は前記ニブル列ペアの1つに対応
し、各行ペアの各行は2つの半行に分割され、各行ペア
の一方の行の前記2つの半行のうち一方の半行は、当該
各行ペアに対応するニブル列ペアのうち一方のニブル列
の上半分を形成するように90°回転及び変換され、前
記一方の行を構成する前記2つの半行のうち他方の半行
は、当該各行ペアに対応するニブル列ペアのうち他方の
ニブル列の上半分を形成するように90°回転及び変換
され、各行ペアの他方の行を構成する前記2つの半行の
うち一方の半行は、前記一方のニブル列の下半分を形成
するように90°回転及び変換され、前記他方の行を構
成する前記2つの半行のうち他方の半行は、前記他方の
ニブル列の下半分を形成するように90°回転及び変換
される。その後、32ビット幅の第1のレジスタを、
2ビット幅の第3のレジスタにコピーし、第2のレジス
タを、32ビット幅の第4のレジスタにコピーする。第
1および第2のレジスタの各々を、反対の方向に1ビッ
トずつシフトし、第4レジスタからの1ビットおきのビ
ットを、第1レジスタに動的に重ね書きし、第3
ジスタからの1ビットおきのビットを、第2レジスタ
に動的に重ね書きする。
【0019】本発明は、この方法のステップを実行する
ための手段を備えたコンピュータ・システムにも向けら
れている
【0020】
【実施例】本発明は、IBM社のOS/2システム、P
osix UnixシステムまたはMicrosoft
社のシステムNTなどの32ビット・プログラミング・
オペレーティング・システム環境で動作する。
【0021】この種のコンピュータ・システムの要素
を、図1に概略的に示す。これらの要素には、通常、3
2ビット幅の記憶レジスタを有するホスト・プロセッサ
12、画像記憶域14、表示端末16、OCR画像スキ
ャナ18などの画像データを受け取る手段、およびプリ
ンタ20が含まれるはずである。コンピュータ・システ
ムに画像データを受け取るための他の手段には、データ
伝送とファクシミリが含まれるはずである。表示端末1
6、OCR画像スキャナ18およびプリンタ20のそれ
ぞれは、文書または画像の読取りまたはプレゼンテーシ
ョンに関して異なる要件を有してよい。したがって、ホ
スト・プロセッサ12は、画像記憶域14と共に、周辺
装置である表示端末16、OCR画像スキャナ18およ
びプリンタ20のそれぞれのプレゼンテーション要件に
合わせて画像データを操作する必要がある。
【0022】たとえば、写真画像を、OCR画像スキャ
ナ18を介して走査してシステムに取り込み、最終的
に、図2に示されるようにコンピュータ表示装置24上
に水平に表示される画像22とすることができる。エン
ド・ユーザが表示された画像を意味のある形で使用する
ためには、この画像の向きを、図3のコンピュータ表示
装置24に示された位置22aへ時計回りに90°回転
しなければならない。
【0023】本発明の方法の諸ステップを、図4の流れ
図に示す。前に述べたように、本発明は、8×8画素ブ
ロック・セグメントで画像データを回転する。したがっ
て、全画像の記憶されたデータから選択された8×8画
素ブロック・セグメント(図4のブロック50)は、下
の表Aに記載の64ビット行列によって表現できる。
【表1】
【0024】ここで、A0、A1、…、H6、H7は、
それぞれ、行列を形成する2レベル画素を表す。
【0025】表Aの行列の時計回りに90°の回転で
は、行列が横倒しに回転され、その結果、行1が8ビッ
トの右端列になり、A0画素が一番下になる。反時計回
りに90°の回転では、行列が回転され、その結果、行
1が8ビットの左端列になり、A0画素が一番上にな
る。これら2つの結果のデータ表現を、本明細書の表D
および表Fに示す。
【0026】同一の一般原則と機能が、本発明に従う時
計回りの回転と反時計回りの回転の両方の達成に適用さ
れる。しかし、下で詳細に説明するように、多くの場合
に、時計回りではなく反時計回りの回転を達成するため
に、機能が逆転される。
【0027】画像データを変換するための作業区域は、
プロセッサ内の32ビット・レジスタであり、ここか
ら、変換されたデータが、表示または印刷のために用意
されたメモリ(記憶域)に戻される。64ビット行列
は、2つの32ビット・レジスタに記憶できる。
【0028】本発明は、4つの主なステップで実行され
る。まず、行列をそれぞれ4バイトの2つのレジスタ・
サイズの行に分割するための基礎となる中間行列を生成
する。この中間行列は、2つの目標32ビット・レジス
タに記憶され、その後、もう2つの32ビット・レジス
タにコピーされる。その後、4つのレジスタのデータを
操作し、最終的に、4つのレジスタを元の2つに縮め、
この2つのレジスタに、回転されたデータ画像が含まれ
るようになる。
【0029】全体を通して、1バイトあたり3回のメモ
リ・アクセスだけ(1ブロックあたり24回)が必要で
ある。すなわち、1回目はそのバイトをプロセッサ・レ
ジスタに読み取る時、2回目はその値を使用して中間行
列生成用の参照テーブルをアクセスする時、最後は回転
されたデータをメモリにセーブするアクセスである。
【0030】これは、従来技術の最高速の回転方法(1
バイトあたり4回または1ブロックあたり32回のメモ
リ・アクセスが必要)に対して25%の減少を表し、本
発明の速度向上の源である。
【0031】本発明の好ましい実施例によれば、画像デ
ータの選択された8×8画素の行列またはブロックは、
中間行列に変換され(ブロック52)、これが、完全な
回転に従う位置により近い位置への画素の再整列の処理
を開始する形で再配置される。所期の時計回りに90°
の回転の場合、中間行列は表Bに示されたものになる。
【表2】
【0032】回転用の部分的再配置によって、各行が効
果的に分割され、ニブル列対(ニブル列ペア)に変換さ
れる。中間行列の最初の4行には、横に配置された元の
データ・ブロックからの奇数番号行(すなわち、行A、
C、EおよびG)の変換されたニブル列対が含まれる。
時計回り回転の場合、横配置は、右から左への順であ
り、各半行の上位ビットが、下位ビットの上に配置され
ている。反時計回り回転の場合、表Eを参照すれば、横
配置が左から右の順であり、下位ビットが各半行からの
上位ビットの上に配置されることがわかる。中間行列の
下4行には、上4行と同一の配置で、元のデータ・ブロ
ックからの偶数番号行(すなわち行B、D、Fおよび
H)が含まれる。
【0033】本発明の好ましい実施例では、中間行列
が、4つの参照テーブルを使用して生成される。これら
の参照テーブルは、本開示の一部を形成する付録という
表題の節に示されている。
【0034】4つの参照テーブルのそれぞれが、8×8
画素行列内の2行を変換する責任を負う。時計回り回転
の場合、付録の表1が、行1および行2の変換に使用さ
れ、表2が行3および行4、表3が行5および行6、表
4が行7および行8の変換に使用され、行は、交互に
(すなわち、行1、3、5および7の後に行2、4、6
および8)変換される。反時計回り回転の場合、参照テ
ーブルは逆の順で使用される。すなわち、表1が行8お
よび行7、表2が行6および行5、表3が行4および行
3、表4が行2および行1の変換に使用される。
【0035】好ましい実施例での中間行列の生成は、結
果が直接2つの32ビット・プロセッサ・レジスタにセ
ーブされる動的重ね書きによる。
【0036】90°時計回り回転の場合の参照テーブル
の使用を、表Cに記載の2進表記の2レベル8×8画素
行列から始まる下記の例によって示す。
【表3】
【0037】まず、行1に関して、参照テーブルの項目
15を使用する。
【0038】この32ビット値は、レジスタR1に次の
ようにセーブされる。
【0039】次に、行3に関して、参照テーブル2の項
目20を使用する。
【0040】この値を、行1の4バイト値と論理和をと
る、または動的に重ね書きする。この時、4バイト行の
どちらかに「1」の値があれば、「0」の値が置換され
る。第1の32ビット・レジスタの結果は、次のように
なる。
【0041】次に、行5に関して、参照テーブル3の項
目48を使用する。
【0042】この4バイト値とR1の内容の論理和をと
ると、次のレジスタ値がもたらされる。
【0043】最後に、行7に関して、参照テーブル4の
項目46を使用する。
【0044】この値とR1の論理和をとった後に、レジ
スタR1には下記が含まれる。
【0045】同じ手順を行2、4、6および8に関して
繰り返し、それぞれ参照テーブル1、2、3および4を
使用すると、次の結果がR2にセーブされる。
【0046】これで、中間行列生成の処理が完了する。
結果を明らかにするために、下記の行列形式で、上位バ
イトを下位バイトの上に置いてバイトに関してR1とR
2の内容を表示することができる。 R1 バイト3 0 1 0 0 0 0 0 1 R1 バイト2 0 1 0 0 0 1 0 1 R1 バイト1 1 1 1 0 0 0 0 1 R1 バイト0 0 0 1 0 1 0 0 1 R2 バイト3 0 0 0 1 0 0 0 0 R2 バイト2 0 0 1 1 0 1 0 0 R3 バイト1 1 1 0 0 0 0 0 1 R3 バイト0 0 0 1 0 1 1 0 1
【0047】したがって、元の包括的な例に戻ると、中
間行列の最初の4行(または第1の4バイト行)が、第
1の32ビット・レジスタR1にセーブされ(図4のブ
ロック54)、この行列の残りの4行(または第2の4
バイト行)が、第2の32ビット・レジスタR2にセー
ブされる(ブロック56)。したがって、32ビット環
境では、中間行列が、下記の表現で2つの32ビット・
レジスタR1およびR2に保持される。
【表4】
【0048】その後、レジスタR1およびR2の内容
を、2つの別の32ビット・レジスタR3およびR4に
それぞれコピーして(ブロック58)、下記の表現を達
成する。
【表5】
【0049】回転が90°時計回り回転の時(ブロック
60)、R1およびR4の偶数ビットを0にし(ブロッ
ク62)、R2およびR3の奇数ビットをゼロにし(ブ
ロック64)て、下記のレジスタの変化をもたらす。
【表6】
【0050】その後、R1の内容を右に1ビットだけシ
フトし、R2の内容を左に1ビットだけシフトし(ブロ
ック66)、その結果、4つのレジスタの内容は、次の
ようになる。
【表7】
【0051】次に、R1とR4の論理和をとり(ブロッ
ク74)、R2とR3の論理和をとって(ブロック7
6)、レジスタR1およびR2の下記の内容を達成す
る。
【表8】
【0052】行列形式で、R1とR2は現在、回転され
た8×8画素行列を含んでいる。
【表9】
【0053】90°反時計回り回転は、同様の方法に従
って達成される。上で述べた中間行列の生成を、好まし
い実施例では参照テーブルを逆の順序で使用して実行し
て、表Aから下記の中間行列を生成する。
【表10】
【0054】32ビット環境では、上の中間行列を、下
記の表現で2つの32ビット・レジスタR1およびR2
に保持できる(ブロック54および56)
【表11】
【0055】次に、R1とR2の内容を、2つの別の3
2ビット・レジスタR3およびR4にそれぞれコピーす
る(ブロック58)。
【表12】
【0056】反時計回り回転の場合(ブロック60)、
R1とR4の奇数ビットを0にし(ブロック68)、R
2とR3の偶数ビットを0にする(ブロック70)。こ
れによって、4つのレジスタの内容が、下記のように変
化する。
【表13】
【0057】R1の内容を左に1ビットだけシフトし、
R2の内容を右に1ビットだけシフトし(ブロック7
2)、その結果、4つのレジスタは、次のようになる。
【表14】
【0058】R1とR4の論理和をとり(ブロック7
4)、R2とR3の論理和をとる(ブロック76)。そ
の後、最初の2つのレジスタは、下記の表現を有する。
【表15】
【0059】R1とR2には、現在、元の向きから90
°反時計回りに回転された8×8画素行列が含まれる。
行列表現で表すと、このデータは次のように見える。
【表16】
【0060】IBM32ビット計算機上で実施された好
ましい実施例では、本発明の方法が、以前に既知の方法
より一貫して高速に走行し、32ビット・プラットフォ
ーム間で移植された時により少ないオーバーヘッドを有
する。
【0061】試験結果から、本発明の方法は、Inte
lベースのIBM PCコンピュータ上で30%以上高
速であることが示され、この結果は、キャッシュ・メモ
リを使用した場合にはさらに良くなるはずである。
【0062】
【0063】
【0064】
【0065】
【発明の効果】本発明によれば、2レベル画像データを
既知の方法より一貫して高速に走行することができる。
本発明の方法は、必要なメモリ・アクセスが従来技術の
方法より少ないので、本発明が特に対処する環境のタイ
プである32ビット・レジスタを有するIntelベー
スのIBMパーソナル・コンピュータ上での動作におい
て、15%ないし30%高速であることが判明してい
る。
【図面の簡単な説明】
【図1】本発明を実施するための典型的なコンピュータ
・システムの概略図である。
【図2】ある向きの文書を示す、パーソナル・コンピュ
ータまたはワークステーションの表示画面を示す図であ
る。
【図3】図2と90°異なる向きの文書を示す、パーソ
ナル・コンピュータまたはワークステーションの表示画
面を示す図である。
【図4】時計回りまたは反時計回りに90°画像を回転
する際のステップを示す流れ図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−146367(JP,A) 特開 昭60−147884(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06T 3/60 G09G 5/36 520

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】次の各ステップから成る、32ビット幅の
    第1ないし第4のレジスタを備えたコンピュータ・シス
    テムにおいて、8行8列の画素データ・ビットを有する
    2レベル画像データのブロックを90°回転する方法。 (イ)前記ブロックの画素データ・ビットから、8行8
    列の画素データ・ビットを有する中間行列を生成するス
    テップ。 前記ブロックは4つの行ペアに分割され、前記中間行列
    は4つのニブル列ペアに分割され、前記行ペアの各々は
    前記ニブル列ペアの1つに対応し、各行ペアの各行は2
    つの半行に分割され、各行ペアの一方の行の前記2つの
    半行のうち一方の半行は、当該各行ペアに対応するニブ
    ル列ペアのうち一方のニブル列の上半分を形成するよう
    に90°回転及び変換され、前記一方の行を構成する前
    記2つの半行のうち他方の半行は、当該各行ペアに対応
    するニブル列ペアのうち他方のニブル列の上半分を形成
    するように90°回転及び変換され、各行ペアの他方の
    行を構成する前記2つの半行のうち一方の半行は、前記
    一方のニブル列の下半分を形成するように90°回転及
    び変換され、前記他方の行を構成する前記2つの半行の
    うち他方の半行は、前記他方のニブル列の下半分を形成
    するように90°回転及び変換される。 (ロ)前記 中間行列の行を、順次第1および第2のレ
    スタにセーブするステップ。 (ハ) 第1のレジスタを第3のレジスタにコピーし、第
    のレジスタを第4のレジスタにコピーするステップ。 (ニ)前記 第1および第2のレジスタの各々を、反対の
    方向に1ビットずつシフトするステップ。 (ホ) 第4レジスタから第1レジスタへ1ビットおきの
    ビットを重ね書きし、第3レジスタから第2レジスタへ
    1ビットおきのビットを重ね書きするステップ。
  2. 【請求項2】前記ステップ(イ)が、前記ブロック内の
    最上部から最下部への方向における連続的な行ペアが前
    記中間行列内の右から左への方向における連続的なニブ
    ル列 ペアに対応するように、前記中間行列を生成するス
    テップを含み、各行ペアの前記一方の行が当該各行ペア
    の上部の行であることを特徴とする、請求項1に記載の
    方法。
  3. 【請求項3】前記ステップ(ニ)が、第1レジスタを1
    ビット左にシフトし、第2レジスタを1ビット右にシフ
    トするステップを含むことを特徴とする、請求項2に記
    載の方法。
  4. 【請求項4】前記ステップ(ホ)が、さらに、第1およ
    び第4のレジスタの奇数ビットのすべてを0にし、第2
    および第3のレジスタの偶数ビットのすべてを0にする
    ステップと、第4レジスタと第1レジスタとの論理
    和をとり、第3レジスタと第2レジスタとの論理和
    をとるステップを含むことを特徴とする、請求項3に記
    載の方法。
  5. 【請求項5】前記ステップ(イ)が、前記ブロック内の
    最上部から最下部への方向における連続的な行ペアが前
    記中間行列内の左から右への方向における連続的なニブ
    ル列ペアに対応するように、前記中間行列を生成するス
    テップを含み、各行ペアの前記一方の行が当該各行ペア
    の上部の行であることを特徴とする、請求項1に記載の
    方法。
  6. 【請求項6】前記ステップ(ニ)が、第1レジスタを1
    ビット右にシフトし、第2レジスタを1ビット左にシフ
    トするステップを含むことを特徴とする、請求項5に記
    載の方法。
  7. 【請求項7】前記ステップ(ホ)が、さらに、第1およ
    び第4のレジスタの偶数ビットのすべてを0にし、第2
    および第3のレジスタの奇数ビットのすべてを0にする
    ステップと、第4レジスタと第1レジスタとの論理
    和をとり、第3レジスタと第2レジスタとの論理和
    をとるステップを含むことを特徴とする、請求項6に記
    載の方法。
  8. 【請求項8】前記ステップ(イ)が、前記 ブロックからの奇数番号行の各々について、少なく
    とも1つの参照テーブルから4バイト値の第1の組を取
    得し、第1のレジスタに当該4バイト値の第1の組を動
    的に重ね書きするステップと、前記 ブロックからの偶数番号行の各々について、前記
    なくとも1つの参照テーブルから4バイト値の第2の組
    を取得し、第2のレジスタに当該4バイト値の第2の組
    を動的に重ね書きするステップとを含むことを特徴とす
    る、請求項1に記載の方法。
  9. 【請求項9】次の各ステップから成る、32ビット幅の
    第1ないし第4のレジスタを備えたコンピュータ・シス
    テムにおいて、2レベル画像データを90°だけ回転す
    る方法。 (イ)前記 画像データから回転されていない8×8画
    素行列を選択するステップ。 (ロ)前記ブロックの画素データ・ビットから、8行8
    列の画素データ・ビットを有する中間行列を生成するス
    テップ。 前記ブロックは4つの行ペアに分割され、前記中間行列
    は4つのニブル列ペアに分割され、前記行ペアの各々は
    前記ニブル列ペアの1つに対応し、各行ペアの各行は2
    つの半行に分割され、各行ペアの一方の行を構成する前
    記2つの半行のうち一方の半行は、当該各行ペアに対応
    するニブル列ペアのうち一方のニブル列の上半分を形成
    するように90°回転及び変換され、前記一方の行を構
    成する前記2つの半行のうち他方の半行は、当該各行ペ
    アに対応するニブル列ペアのうち他方のニブル列の上半
    分を形成するように90°回転及び変換され、各行ペア
    の他方の行を構成する前記2つの半行のうち一方の半行
    は、前記一方のニブル列の下半分を形成するように90
    °回転及び変換され、前記他方の行を構成する前記2つ
    の半行のうち他方の半行は、前記他方のニブル列の下半
    分を形成するように90°回転及び変換される。 (ハ)前記 中間行列の行を、順次第1および第2のレ
    スタにセーブするステップ。 (ニ) 第1のレジスタを第3のレジスタにコピーし、第
    のレジスタを第4のレジスタにコピーするステップ。 (ホ) 第1および第2のレジスタの各々を反対方向に1
    ビットだけシフトするステップ。 (ヘ) 第4レジスタからの1ビットおきのビットを第
    レジスタに重ね書きし、第3レジスタからの1ビ
    ットおきのビットを第2レジスタに重ね書きするステ
    プ。 (ト)前記 画像が回転されるまで、ステップ(イ)ない
    (ヘ)を繰り返すステップ。
  10. 【請求項10】次の各手段から成る、8行8列の画素デ
    ータ・ビットを有する2レベル画像データのブロックを
    回転するための32ビット幅のコンピュータ・システ
    ム。 (イ)前記 ブロックの画素データ・ビットから8行8
    列の画素データ・ビットを有する中間行列を生成する
    段。 前記ブロックは4つの行ペアに分割され、前記中間行列
    は4つのニブル列ペアに分割され、前記行ペアの各々は
    前記ニブル列ペアの1つに対応し、各行ペアの各行は2
    つの半行に分割され、各行ペアの一方の行を構成する前
    記2つの半行のうち一方の半行は、当該各行ペアに対応
    するニブル列ペアのうち一方のニブル列の上半分を形成
    するように90°回転及び変換され、前記一方の行を構
    成する前記2つの半行のうち他方の半行は、当該各行ペ
    アに対応するニブル列ペアのうち他方のニブル列の上半
    分を形成するように90°回転及び変換され、各行ペア
    の他方の行を構成する前記2つの半行のうち一方の半行
    は、前記一方のニブル列の下半分を形成するように90
    °回転及び変換され、前記他方の行を構成する前記2つ
    の半行のうち他方の半行は、前記他方のニブル列の下半
    分を形成するように90°回転及び変換される。 (ロ)32ビット幅の第1ないし第4のレジスタ。 第1および第3のレジスタは、前記中間行列の最初の4
    行を重複してセーブするためのものであり、第2および
    第4のレジスタは、前記中間行列の残りの4行を重複し
    セーブするものである。 (ハ) 第1および第2のレジスタの各々を、反対の方向
    に1ビットずつシフトする手段。 (ニ) 第4レジスタから第1レジスタへ1ビットお
    きのビットを重ね書きし、第3レジスタから第2
    ジスタへ1ビットおきのビットを重ね書きする手
  11. 【請求項11】前記手段(イ)が、少なくとも1つの参
    照テーブルを含むことを特徴とする、請求項10に記載
    コンピュータ・システム。
  12. 【請求項12】前記少なくとも1つの参照テーブルが、
    複数の参照テーブルを含み、各参照テーブルが、前記
    ロックからの少なくとも1つの行のための4バイト値を
    生成するようになされていることを特徴とする、請求項
    11に記載のコンピュータ・システム。
  13. 【請求項13】前記手段(イ)が、 各参照テーブルが、前記ブロックからの少なくとも2つ
    の行のための4バイト値を生成するようになされてい
    る、4つの参照テーブルと、前記 ブロックからの1行おきの行からの4バイト値を、
    前記レジスタのうちの1つに動的に重ね書きする手段と
    を含むことを特徴とする、請求項10に記載のコンピュ
    ータ・システム。
JP7025556A 1994-04-15 1995-02-14 画像データ回転方法およびシステム Expired - Lifetime JP2817771B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002121402A CA2121402C (en) 1994-04-15 1994-04-15 System for fast 90-degree rotation of bi-level images
CA2121402 1994-04-15

Publications (2)

Publication Number Publication Date
JPH07296157A JPH07296157A (ja) 1995-11-10
JP2817771B2 true JP2817771B2 (ja) 1998-10-30

Family

ID=4153391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7025556A Expired - Lifetime JP2817771B2 (ja) 1994-04-15 1995-02-14 画像データ回転方法およびシステム

Country Status (7)

Country Link
EP (1) EP0677822A2 (ja)
JP (1) JP2817771B2 (ja)
KR (1) KR950029990A (ja)
CN (1) CN1066834C (ja)
AU (1) AU1490395A (ja)
BR (1) BR9501523A (ja)
CA (1) CA2121402C (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100444899B1 (ko) * 1997-05-07 2004-12-08 삼성전자주식회사 화상의회전변환방법
WO2000030036A1 (en) * 1998-11-13 2000-05-25 Microsoft Corporation Rotating image data
US6400851B1 (en) 1999-01-28 2002-06-04 Microsoft Corporation Rotating image data
US6496192B1 (en) * 1999-08-05 2002-12-17 Matsushita Electric Industrial Co., Ltd. Modular architecture for image transposition memory using synchronous DRAM
JP4015890B2 (ja) * 2002-06-28 2007-11-28 松下電器産業株式会社 画素ブロックデータ生成装置および画素ブロックデータ生成方法
US7376286B2 (en) * 2002-09-18 2008-05-20 Nxp B.V. Block-based rotation of arbitrary-shaped images
CN111754409A (zh) * 2019-03-27 2020-10-09 北京沃东天骏信息技术有限公司 图像处理方法、装置、设备和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4627020A (en) * 1983-12-30 1986-12-02 International Business Machines Corporation Method for rotating a binary image
CA1252902A (en) * 1985-10-31 1989-04-18 David R. Pruett Method for rotating a binary image
JP2973784B2 (ja) * 1993-07-19 1999-11-08 松下電器産業株式会社 多値画像90度回転方法及び装置

Also Published As

Publication number Publication date
CA2121402A1 (en) 1995-10-16
EP0677822A2 (en) 1995-10-18
AU1490395A (en) 1995-10-26
CA2121402C (en) 1999-02-09
CN1066834C (zh) 2001-06-06
CN1121224A (zh) 1996-04-24
KR950029990A (ko) 1995-11-24
JPH07296157A (ja) 1995-11-10
BR9501523A (pt) 1995-11-14

Similar Documents

Publication Publication Date Title
US6765581B2 (en) Display apparatus and method capable of rotating an image by 180 degrees
US3976982A (en) Apparatus for image manipulation
US5734875A (en) Hardware that rotates an image for portrait-oriented display
US6064407A (en) Method and apparatus for tiling a block of image data
EP0433645A2 (en) Method to rotate a bitmap image 90 degrees
JP3571735B2 (ja) カラーレーザコピー器の為の表示グラフィックシステム
KR920003477B1 (ko) 화상처리장치
US5889893A (en) Method and apparatus for the fast rotation of an image
US5670982A (en) System for fast 90-degree rotation of bi-level images
US5867612A (en) Method and apparatus for the fast scaling of an image
JP2817771B2 (ja) 画像データ回転方法およびシステム
US4918429A (en) Display system with symbol font memory
Gupta Architectures and algorithms for parallel updates of raster scan displays
JPH11306343A (ja) 2次元データ回転処理装置
JP2647348B2 (ja) クリッピング・プレーン・データ記憶システム及び方法
JP3072721B2 (ja) イメージ処理方法及び装置、イメージ処理プログラムを格納する記憶媒体
JPH0751370B2 (ja) 像形成装置
WO1999019860A1 (en) Bios rom with table for expanding monochrome image into color image
JPS63298673A (ja) 画像メモリ素子
JPH0642259B2 (ja) 画像処理装置
JPS62210587A (ja) 画像処理装置
JPH03220863A (ja) 画像処理装置
JPH021900A (ja) 表示制御装置