JPH0426150B2 - - Google Patents

Info

Publication number
JPH0426150B2
JPH0426150B2 JP59252113A JP25211384A JPH0426150B2 JP H0426150 B2 JPH0426150 B2 JP H0426150B2 JP 59252113 A JP59252113 A JP 59252113A JP 25211384 A JP25211384 A JP 25211384A JP H0426150 B2 JPH0426150 B2 JP H0426150B2
Authority
JP
Japan
Prior art keywords
image
pointer
rotation
row
bytes
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
JP59252113A
Other languages
English (en)
Other versions
JPS60147884A (ja
Inventor
Rauaan Mitsucheru Joon
Ruisu Andaason Karen
Kooru Mintsuaa Furederitsuku
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 JPS60147884A publication Critical patent/JPS60147884A/ja
Publication of JPH0426150B2 publication Critical patent/JPH0426150B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/606Rotation of whole images or parts thereof by memory addressing or mapping

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
〔産業上の利用分野〕 本発明はデイジタル・イメージ処理方法、特に
イメージ回転に関する。 〔従来技術〕 (a) 米国特許第3976872号で開示された機能の中
にイメージを90度回転する方法がある。しかし
ながら、この特許では、本発明のように、イメ
ージのビツト・グループを検査し、ビツト・グ
ループがすべて同じ値であるかどうかを判断す
る動作を含む、イメージを180度回転する方法
が示されていない。 (b) 米国特許第396847号は、イメージを分割し、
2進データ・アレイの空間を含むサンプル・ア
レイの領域の各々に挿入することにより、2進
イメージからデータを取出すデイジタル・プロ
セツサを開示している。この特許では、いくつ
かの所定の角度の1つを選択してイメージ回転
を行なうが、本発明による方法のように、サン
プル・グループの全ビツトが同じであるかどう
かを判断するための、サンプル・グループの検
査を含む180度のイメージ回転方法は示されて
いない。 (c) 米国特許第4052699号では、nロー(横列)、
nカラム(縦行)を有するマトリツクスにビデ
オ・データを記憶するイメージ処理システムが
開示されている。イメージは、前に水平ワード
として書込まれたビデオ・データを、ワードご
とに垂直にアクセスすることにより、漸次に90
度回転される。しかしながら、この特許の方法
および装置は、本発明による方法のように、グ
ループ内の全ビツトが同じであるかどうかを判
断するための、回転するワードのグループの検
査を行なわない。 (d) 米国特許第4168488号は、ワードで構成され
たイメージを回転する装置を開示している。こ
の装置では、バツフアを複数の正方形部分に分
割し、それぞれにイメージの各部分が書込まれ
る。この特許は、イメージを90度にわたつて回
転する装置を示しているが、本発明による方法
のような、サブイメージにある全ビツトが同じ
値であるかどうかを判断するための、サブイメ
ージを検査する動作を含む方法は示されていな
い。 (e) 米国特許第4225929号は、イメージを中心点
の周りに回転させる装置を含むコード変換器を
開示しているが、この特許では、本発明による
方法のような、全ビツトが同じであるかどうか
を判断するための、サブイメージのビツトを検
査する動作が含まれていない。 (f) 米国特許第4271476号は、印刷または他の処
理のための、水平走査フオーマツトのイメージ
を垂直走査フオーマツトのイメージに回転する
装置を開示している。この特許による装置は、
イメージを複数の部分に分割してから各部分を
順次に回転する。しかしながら、この特許で
は、本発明による方法のような、全ビツトが同
じであるかどうかを判断するための、各部分を
検査する動作を含む方法は示されていない。 (g) EPO特許出願第081096号は、イメージをプ
リンタに印刷する動作を制御するためのイメー
ジ回転制御回路を開示している。この制御回路
が記憶するのは全表示ではなく、1回に1行だ
けであつて、記憶された行は、印刷のため、水
平行から垂直行へ、またはその逆に変換され
る。しかしながら、この特許出願では、本発明
による方法のような、画素を表わす全ビツトが
同じてあるかどうかを判断するための、イメー
ジの一部分を検査する動作を含む、イメージを
180度回転させる方法は示されていない。 (h) IBM Technical Disclosure Bulletin、
Vol.18、No.8、January1976、p.2640の論文
は、外形圧縮データを用いたイメージ回転方法
を示しているが、この論文には、本発明による
方法のような、全ビツドが同じであるかどうか
を判断するため、イメージの複数の部分を検査
する動作は含まれていない。 (i) IBM Technical Disclosure Bulletin、
Vol.13、No.11、April1971、p.3267の論文は、
2次元の2進イメージで軸を高速で変換する動
作を実行する方法を示しているが、この論文に
は、本発明による方法のような、全ビツトが同
じであるかどうかを判断するための、イメージ
の複数の部分を検査する動作は含まれていな
い。 (j) IBM Technical Disclosure Bulletin、
Vol.18、No.8、January1976、p.2633の論文
は、特に、4×4のキヤラクタ・アレイのイメ
ージを回転するイメージ方向づけのシフト・レ
ジスタ・システムを示しているが、この論文に
は、本発明による方法のような、全ビツトが同
じであるかどうかを判断するための、イメージ
の複数部分を検査する動作は含まれていない。 以上のように、従来の技術はどれも、本発明の
方法について教示も示唆もしていない。 〔発明が解決しようとする問題点〕 本発明の目的は、2進イメージを高速度で180
度回転する方法を提供することである。 〔問題点を解決するための手段〕 本発明が解決しようとする問題点は、次のステ
ツプを含む方法によつて解決される: 第1および第2のアドレス・ポインタを、回転
するイメージの中心、または先頭と末尾にそれぞ
れ置き; 第1のポインタを前記イメージを通る第1の方
向で索引し; 第2のポインタを前記イメージを通る第2の方
向で索引し; 索引ステツプごとに、若し、第1のポインタが
指す第1のイメージ・ワードと第2のポインタが
指す第2のイメージ・ワードが値の異なる2ビツ
トを有するならば、第1のイメージ・ワードと第
2のイメージ・ワードを交換し; 交換する際にすべてのワードを倒置し; 倒置・交換されたワードを前記ポインタの位置
に書込み; 前記ステツプを、イメージの全ワードにわたつ
て第1のポインタおよび第2のポインタを索引
し、イメージが180度回転されるまで反復実行す
る。 〔作用〕 本発明の方法により、イメージは: 第1および第2のポインタを、回転するイメー
ジの中心または先頭と末尾にそれぞれ置き;第1
のポインタを、前記イメージを通る第1の方向で
索引し;第2のポインタを、前記イメージを通る
第2の方向で索引し;索引ステツプごとに、若
し、第1のポインタが指す第1のイメージ・ワー
ドと第2のポインタが指す第2のイメージ・ワー
ドが値の異なる2ビツトを有するならば、第1の
イメージ・ワードと第2のイメージ・ワードを交
換し; 交換する際にすべてのワードを倒置し;倒置・
交換されたワードを前記ポインタの位置に書込
み;前記ステツプを、イメージの全ワードにわた
つて第1のポインタおよび第2のポインタを索引
し、イメージが180度回転されるまで反復実行す
ることにより、180度回転される。 〔実施例〕 本発明による方法はイメージを180度回転する。
イメージは、記憶領域に書込まれており、読取り
はロー(横列)を左から右へ、カラム(縦行)を
上部から下部へと行なうものとする。回転は元の
場所で実行する場合(第2図a)もあり、元のイ
メージが占有している記憶領域にオーバーラツプ
しない別個の記憶領域を占有する場合(第2図
a,b)もある。希望するならば、より大きいイ
メージの長方形の部分を取出して回転し、もう1
つのより大きいイメージの(または同じ場所の)
部分として書込むことができる。本発明による方
法では、若し、呼出しルーチンが元のイメージと
出力イメージに同じアドレスを供給するなら、元
の場所で回転が実行される。若し、出力イメージ
のアドレスが元のイメージのアドレスに等しくな
いなら、元の場所での回転も、回転による入力イ
メージの変更もなされない。また、元のイメージ
と出力イメージとはオーバラツプしてはならな
い。基本的な2つのタイプの回転を第2図に示
す。第2図aでは、回転されたイメージは、回転
前の元のイメージが書込まれていた記憶領域を占
有する。以下、回転前、または回転後のイメージ
を含む記憶領域をイメージ領域と呼ぶ、イメージ
領域は、元のイメージまたは回転されたイメージ
よりも大きいか、または少なくとも同じ大きさで
なければならない。 第2図bの例は、元の場所以外でのイメージ回
転を示す。元のイメージと回転されたイメージと
は別個のイメージ領域を占有するので、元のイメ
ージは回転動作によつて変更されることはない。
若し、元のイメージの最初と最後のバイトを含む
両バイト間の記憶領域が、出力イメージと最初と
最後のバイトを含む両バイト間の記憶領域にオー
バラツプするなら、元のイメージ領域と出力のイ
メージ領域とは等しいに違いない。第2図cの例
は、元のイメージと回転されたイメージとが、同
じイメージ領域にある場合を示す。 第2図で使用されている記号は次のとおりであ
る: iw:元のイメージ領域の幅 ow:出力のイメージ領域の幅 r:回転されるイメージのロー数 c:回転されるイメージのカラム(バイト)数 本発明が解決しようとしている問題は、2進イ
メージを迅速に180度回転することである。本発
明の方法による回転アルゴリズムでは、一般に2
進イメージに存在するビツト(白の画素)だけの
大きな領域および表索引によるワード内のビツト
の倒置をうまく利用した斬新な方法の組合せを使
用するほか、回転が元の場所で行なわれているか
どうかを判断し、若し、元の場所で行なわれてい
れば、この回転アルゴリズムは、イメージ・ワー
ドを特別な順序で処理し、出力イメージの記憶領
域の消去を省略できるようにする。イメージ内の
百の領域の処理に要する作業量を減らし、場合に
よつては出力イメージの消去も省略することによ
り、イメージの回転に必要な処理量を大幅に減少
し、従来の方法よりもかなり迅速な回転動作を行
なうことができる。 イメージを構成するビツトは、8ビツトを1バ
イトにバツクして書込まれ、ローの各々はバイト
境界で開始、終了し、ローは記憶領域に順次に配
列されるものと仮定する。ビツト単位の操作はコ
ストが割高になるので、IBMシステム/370で
は、(32ビツトの)ワード単位の操作により1回
に多くのビツトを処理する。 大きいイメージから取出されたサブイメージ
は、元の場所または別個の記憶領域で回転でき
る。また、若し回転が元の場所で行なわれないな
ら、回転されたイメージは、大きいイメージのサ
ブイメージとして書込みできる。この操作では、
入力イメージおよび(または)出力イメージのロ
ーの間のバイトは適切にスキツプされる。 本発明による方法では、イメージを元の場所で
回転させるかどうかによつて、別個の手順が使用
される。先ず、元の場所で回転する場合について
説明する。第3図は、元の場所での回転の場合の
アルゴリズムの基本的な考え方を示す。イメージ
は任意の長さの単位に分割されるが、IBMシス
テム/370では、そのプロセツサのワード長が4
バイトであるので、4バイト単位に分割するのが
普通である。イメージの中央に2つのポインタを
置き、一方はイメージの先頭に向けて進ませ、他
方はイメージの末尾に向けて進ませると、常に、
これらの2つのポインタは、内容を倒置・交換す
るべき2つの単位を示す。本明細書で使用する用
語“倒置”は、バイト内のビツトの順序を逆にす
ることを意味し、例えば、ビツト・ストリング
10010111の倒置は11101001である。 第3図aの元のイメージは、12と13、11と14、
10と15、……、2と23、1と24が交換され、交換
された各単位内のビツトは、交換中に倒置され、
図示のような回転後のイメージとなる。単位1〜
24は倒置によつて単位24′〜1′になる。第3図b
は、元のイメージの2番目のローと5番目のロー
の1バイト単位の処理を示し、第3図cは、元の
イメージの単位5〜8、17〜20が回転後のイメー
ジの20′〜17′、8′〜5′に交換、倒置された例であ
る。第4図は、起こりうる3種類のイメージと、
それぞれのイメージで用いるポインタP1,P2
の出発点を示す。第4図aの、ロー数が例えば
2Mの偶数ローのイメージでは、ポインタP1は
ローMの末尾に、ポインタP2はローM+1の先
頭に置かれる。(ローの間のバイトをスキツプす
ることにより、イメージの一部分しか回転しない
ことも起こりうるので、P1はP2に等しくなく
てもよいことがありうる。)第4図bの、ロー数
が例えば2M+1の奇数ローのイメージでは、ポ
インタP1,P2はどちらもローM+1に置かれ
る。この場合、ローのバイト数が例えば2Nの偶
数カラムであれば、ポインタP1,P2はどちら
もカラムN+1(すなわち、バイトNとバイトN
+1の境界)に置かれる。第4図cの、ロー数が
例えば2M+1の奇数ローで、ローのバイト数が
例えば2N+1の奇数バイトのイメージでは、ポ
インタP1はバイトN+1に、ポインタP2はバ
イトN+2に置かれる。この場合、バイトN+1
(イメージの中央のバイト)を倒置した後、メイ
ン・ループを開始する。第4図で、線影部分は最
初に処理される単位、黒塗り部分は処理開始前に
倒置されるバイトを示す。 第5図は、元の場所での回転方法で使う下記変
数の相互の関係を示す。 IBM:イメージ・データの先頭のアドレス
(OIMG) IWID:イメージ領域の(バイト単位の)幅
(OWID) COLS:回転されるイメージの(バイト単位の)
幅 ROWS:回転されるイメージのロー数 W:処理単位の幅(バイト数) REM:COLS mod W(残りのバイト数) IDEC:次のローのアドレスを得るためのポイン
タP1から差引くバイト数(OINC) (括孤内の記号OIMG、OWID、OINCは、元の
場所以外での回転の場合に、出力イメージの、
IMG、IWID、IDECに対応する変数を表わす。) 第6図および第7図の流れ図で、これらの変数
が使用される。 第6図は、(元の場所での)180度回転の初期設
定アルゴリズムを示す。ポインタP1,P2は前
述のようにセツトアツプされている。これらのポ
インタは、ループを開始する際、ローおよびカラ
ムの奇偶の検査(ブロツク200,210)の結果によ
つて決定の位置の処理単位に置かれ、ポインタ
LIMはP1が指すローの先頭を指すようにセツ
トアツプされ、フラグCFLAGは、若し中央のロ
ーの処理後にREMおよびIDECを計算し直すべき
なら1にセツトされ、さもなければ0にセツトさ
れるほか、ローおよびカラムがともに奇数の場合
には、P1が指すバイトが倒置される(ブロツク
230〜250)。続いて、IDECを検査し(ブロツク
260)、若しIDECが0なら、LIMを、イメージの
先頭を指すようにセツトするとともに、CFLAG
を0にセツトし(ブロツク270)、次いで、REM
およびIDECを計算し、ポインタP2を処理単位
の長さだけ後退させる(ブロツク280)。 倒置・交換動作に入る前に、ポインタP2は前
述のように処理単位の長さ(本実施例では4バイ
ト)だけ後退させられるが、ポインタP1は、最
初から処置される単位の先頭を指すので変更しな
くてもよい。REMは前述のように残りのバイト
数にセツトされ、IDECは、前述のように、1つ
のローの処理後にP1から差引くと、P1が次に
処理すべきローの末尾を指すようにセツトされ
る。また、IDECは、ローの処理後にP2が次に
処理すべきローの先頭を指すように、P2に加え
られる。回転すべきイメージが、若し奇数のロー
を含むなら、REMおよびIDECの値は、中央のロ
ーの場合と、他のすべてのローの場合とでは異な
ることがある。 若し、回転されているイメージが隣接する記憶
領域に存在する(すなわち、IWID=OWID=
COLS)から、特別なケースとしてローの末尾を
処理しなくてもよく(イメージ全体が内部ループ
内で処理される)、ポインタP1,P2をイメー
ジの端まで進め、残りのバイト(REM)は1回
処理するだけでよい。このような、1つのローの
末尾と次のローの先頭の間の距離が0のケース
は、特別なケースとして検出され、ポインタ
LIMは、P1が指すローの先頭を指す代りに、
イメージの先頭を指すようにセツトされ、REM
はイメージの半分に対する残りのバイト数にセツ
トされる。この場合、CFLAGは0にセツトされ
ており、最初にローの末尾が生じるのは、イメー
ジ・ロー全部が処理された後である。若し、イメ
ージがより大きいイメージ内に埋込まれるなら、
ポインタを各ローの末尾でリセツトし、倒置され
つつあるイメージ以外のデータを変更しないよう
にしなければならない。 回転は、第7図に示すように、イメージ・デー
タのローを処理する外部ループと、このロープに
入れ子にされた内部ループとからなる2つのルー
プによつて行なわれる。先ず、ポインタP1がイ
メージの先頭に達しているかどうかを調べる(ブ
ロツク290)。若し、達しているなら、ループは終
了し回転は完了する。P1がイメージの先頭に達
していない場合は、内部ループに進み、後で説明
するように、次の2つのロー(P1で終了するロ
ーとP2で始まるロー)の完全な処理単位のすべ
てを倒置・交換する動作を実行する(ブロツク
300〜370)。前記処理単位がすべて処理された後、
若し、イメージ・データのローの長さが処理単位
の大きさの整数倍でないなら、残りのバイトを倒
置し・交換し、P1(P2)は、新たに処理すべ
きローの末尾(先頭)を指すように減少(増加)
され、LIMはP1が指すローの先頭を指すよう
にリセツトされる(ブロツク380)。若し、
CFLAGが非0なら(ブロツク390)、REMと
IDECは計算し直され(REMとIDECはこれ以上
計算し直す必要はないので)CFLAGは0にセツ
トされる(ブロツク400)。そして、制御はループ
の先頭に戻される。 第7図で、X1はP1によつてアドレス指定さ
れた単位、X2はP2によつてアドレス指定され
る単位、X1′はX1のビツト倒置、X2′はX2
のビツト倒置である。X1,X2およびX1′は
第10図でも使用される。 第7図の回転手順の内部ループは、1対の処理
単位の倒置・交換を反復実施する。先ず、ポイン
タP1を処理単位の長さ(本実施例では4バイ
ト)だけ減少し、ポインタP2を同じ長さだけ増
加し(ブロツク300)、2つのポインタが処理すべ
き単位を指すようにする。P1とLIMを比較し
(ブロツク310)、若しP1がLIMよりも小さいな
ら、ローの先頭は過ぎているので、内部ループか
ら抜け出る。(残りのバイトがあれば外部ループ
で処理される。)その他の場合は、P1とP2と
が指す処理単位が倒置・交換される。若し、処理
単位がどちらも全0なら(ブロツク320、330)、
処理は不要であり、制御は内部ループの先頭に戻
る。P1,P2が指す処理単位がともに全0にな
るケースは、ごく僅かの作業しか必要とせず、一
般的に、処理回数の半分以上を占めるので、これ
を特別なケースとして扱うことにより、回転に要
する処理時間が大幅に少なくなる。若し、ワード
(すなわち処理単位)の一方のみが全0なら、他
方のワードを倒置して全0のワードに書込み、全
0でないワードには全0を書込む(ブロツク350、
360)。従つて、全0のワードを倒置するのに必要
な処理は避けられる。若し、ワードがどちらも非
0なら、どちらも倒置され、その結果は交換され
る(ブロツク370)。この最も複雑なケースは希に
しか生ぜず、全体の処理回数の10%を占めるに過
ぎない。 前述の説明は全0のビツトを含むワードに関す
るものであるが、本発明は、多数の黒(1)のビツト
を有するイメージについても有効に動作する。こ
のような場合、ワードを、全0の代りに全1につ
いて検査し、前述の説明のように倒置・交換を行
なう。 ビツト倒置は、後に示す索引表を用いて実施す
る。第8図は、4バイト単位の倒置に用いるプロ
セスを示す。索引表は256バイトから成り、索引
として使用したバイトが倒置される(例えば、16
進数83は倒置によつて16煤数C1になる)。システ
ム/370では、4バイトのインデツクス・レジス
タを使用するので、索引数を取込むには、先ずイ
ンデツクス・レジスタを消去する。次いで、バイ
ト4(最下位バイト)を最下位のインデツクス・
レジスタにロードしてバイト4を表索引し、その
結果をアキユムレータの最下位にロードする。そ
して、アキユムレータの内容を8桁左シフトして
バイト3を次のインデツクス・レジスタにロード
してバイト3を表索引し、その結果をアキユムレ
ータの最下位にロードする。アキユムレータの上
位の24ビツトは前記ロードによつて壊されること
はないので、8桁左シフトされたバイト4の倒置
の内容は保存されている。アキユムレータは更に
8桁左シフトされ、前と同じようにインデツク
ス・レジスタにロードされたバイト2によつて索
引された索引表の値がアキユムレータの最下位に
ロードされる。バイト1についても前述のプロセ
スが反復実行される。その結果、元の処理単位の
バイトの順序が倒置されるとともに、各バイトの
ビツトの順序も倒置されるので、アキユムレータ
には元のワード(4バイト)のビツト倒置の内容
が取込まれる。アキユムレータが十分に大きい限
り、任意の長さの単位を処理するのに同じ手順の
使用が可能である。元の処理単位のバイトは下位
のバイトから順次上位のバイトに向けて読取ら
れ、倒置される。倒置されたバイトは、アキユム
レータの最下位に置かれ、順次上位に向けてシフ
トされ、アキユムレータの最下位のバイト領域を
空白にして、次に倒置されたバイトを格納できる
ようにする。 前述の方法を変更することにより、内部ループ
で2対以上の処理単位のデータを処理できる。そ
のために、外部ループで処理すべき残りのバイト
数(REM)の範囲は大きくなるが、内部ループ
のオーバヘツドはかなり減小する。 また、本発明の方法を変形して、前記ポインタ
をイメージの先頭と末尾から開始し、イメージの
中央に向けて進めることもでき、しかも前述の処
理順序をそのまま用い、初期設定を僅かに変更す
るだけで、中央のローも他のローと同じように処
理できる。 次に、入力イメージと出力イメージが別個の記
憶領域を占有する場合の代替の実施例について、
第9図および第10図の流れ図により説明する。 第9図の初期設定手順において、最初、出力イ
メージが占める記憶領域を消去し、ポインタP1
を、入力イメージの末尾を指すようにセツトし、
ポインタP2を、出力イメージの先頭を指すよう
にセツトする(ブロツク410)。(または、P1を、
入力イメージの先頭を指すようにセツトし、P2
を、出力イメージの末尾を指すようにセツトし、
反対方向にポインタを進めることもできる。)回
転を開始する前に、ポインタP2を、処理単位の
長さだけ後退させる。これは、ループを開始する
際、ポインタはそれぞれの進行方向に進められる
からである。ループにおいて、P1は、最初の減
少により、最初に処理すべき単位の先頭を指すか
ら、P1は減少しなくてもよい。ポインタLIM
は、P1が指すローの先頭を指すようにセツトさ
れる。更に3つの変数もセツトアツプされる。
REMは、ローの“残り”のバイトにセツトされ
る。IDECは、1つのローの処理後に、P1から
IDECを差引くと、P1が、次に処理すべき入力
ローの末尾を指すようにセツトされる。OINC
は、1つのローの処理後に、P2にOINCを加え
ると、P2が、次の出力ローの先頭を指すように
セツトされる。OINCは、前に説明したように、
IDECに対応する変数である。 若し、入力イメージと出力イメージの両者が隣
接記憶領域に存在する(すなわち、どちらもその
イメージ領域よりも狭くはない)なら、特別なケ
ースとしてローの末尾を処理する必要はない。こ
の特別のケースが識別されると、LIMおよび
REMが、それに応じてセツトされ、LIMは、入
力イメージの先頭を指し、REMは、イメージの
残りのバイト数にセツトされる。 第10図の回転プロセスにおいて、元の場所で
の回転の場合のように、2つのループを使用す
る。外部ループはイメージ・データのローを処理
する。最初に、ポインタP1を検査し(ブロツク
460)、若し、P1がイメージの先頭に達している
なら、回転は完了しているので、ループは終了す
る。P1がイメージの先頭に達していない場合
は、内部ループに入り、P1で終了するローの完
全な処理単位の全部を倒置し、P2で始まるロー
にコピーする(ブロツク470〜500)。完全な処理
単位が全部処理された後、若し、イメージ・デー
タのローの長さが処理単位の大きさの整数倍でな
いなら、残りのバイトを倒置し、コピーした後、
P1が次の入力ローを末尾を指し、P2が次の出
力ローの先頭を指すように、P1からIDECを差
引き、P2にOINCを加え、LIMを、P1が指す
ローの先頭を指すようにリセツトする(ブロツク
510)そして制御はループの先頭に戻る。 内部ループでは、P1とP2が次に処理すべき
処理単位を指すように、P1を減少し、P2を増
加する(ブロツク470)。次いで、P1とLIMを
比較し(ブロツク480)、若しP1の方が小さいな
ら、内部ループから抜け出る。さもなければ、P
1によつてアドレス指定された処理単位が全0で
あるかどうかを検査し(ブロツク490)、若し全0
なら、出力イメージはあらかじめ消去されている
ので、処理は不要であるから内部ループの先頭に
戻る。 若し、元のイメージが、前述のような白の背景
ではなく黒の背景を有するなら、最初に出力イメ
ージを全1にセツトしてから、処理単位の各々に
ついて全1であるかどうかを検査することによ
り、大抵の場合、元のイメージの大部分につい
て、ビツト倒置およびその結果の書込みを省略で
きるので、回転に要する実行時間が大幅に短縮さ
れる。若し、背景が白のイメージの場合に処理単
位が非0データを含むなら、または、背景が黒の
イメージの場合に処理単位が全1ではないデータ
を含むなら、元の場所での回転の場合と同じ手順
を用いてポインタP1が指す処理単位を倒置し、
出力イメージの、ポインタP2が指す場所に書込
む。 この実施例も、元の場所での回転の実施例のよ
うに、前述の方法を変更して内部ループで2対以
上の処理単位のデータを処理できるので、内部ル
ープのオーバヘツドを減小できるが、外部ループ
の複雑さがいくらか増加する。 本発明の方法でビツト倒置に使用する索引表を
第1表に示す。表示された値は16進数である。
【表】
〔発明の効果〕
本発明の方法により、2進イメージを迅速に
180度回転することができる。
【図面の簡単な説明】
第1図は本発明の方法の流れ図、第2図は本発
明によるイメージ回転を示す図、第3図は本発明
によるイメージ回転単位の再配列を示す図、第4
図は本発明によるポインタの動作を示す図、第5
図は本発明による回転アルゴリズムで使用する変
数の関係を示す図、第6図は本発明による、元の
場所での回転の初期設定アルゴリズムの流れ図、
第7図は本発明による、元の場所での回転アルゴ
リムズの流れ図、第8図は本発明によるビツト倒
置プロセスを示す図、第9図は本発明による、元
の場所以外での回転の初期設定アルゴリズムの流
れ図、第10図は本発明による、元の場所以外で
の回転アルゴリズムの流れ図である。 100……アドレス・ポインタ位置決めステツ
プ、110……第1のポインタの索引ステツプ、
120……第2のポインタの索引ステツプ、13
0……ビツト値比較ステツプ、140……イメー
ジ・ワード倒置・交換・書込みステツプ、150
……残りのワードの検査ステツプ。

Claims (1)

  1. 【特許請求の範囲】 1 2進イメージを180°回転する方法であつて、 (a) 回転すべきイメージを、互いに交換可能なサ
    イズのビツトの単位にセグメント分けする段階
    と、 (b) 上記回転すべきイメージを半分ずつに分ける
    第1の部分と第2の部分を決定する段階と、 (c) 第1及び第2の索引ポインタを、上記回転す
    るべきイメージの第1の部分と第2の部分にそ
    れぞれ位置付ける段階と、 (d) 上記第1のポインタを、上記回転すべきイメ
    ージの第1の部分に亙つて索引する段階と、 (e) 上記第2のポインタを、上記回転すべきイメ
    ージの第2の部分に亙つて索引する段階と、 (f) 上記各々の索引段階毎に、上記第1のポイン
    タによつて指定された第1のイメージ単位と、
    上記第2のポインタによつて指定された第2の
    イメージ単位を交換する段階と、 (g) 上記各交換された単位におけるビツトの順序
    を、索引表を参照することにより倒置させる段
    階と、 (h) 上記ポインタ位置における、交換され倒置さ
    れた単位を記憶する段階と、 (i) 上記第1及び第2のポインタが、それぞれ、
    上記イメージの上記第1及び第2の部分の全て
    に亙つて索引されるまで、上記段階d乃至hを
    繰り返す段階を有する、 イメージ回転方法。
JP59252113A 1983-12-30 1984-11-30 イメージ回転方法 Granted JPS60147884A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/567,293 US4689824A (en) 1983-12-30 1983-12-30 Image rotation method
US567293 1983-12-30

Publications (2)

Publication Number Publication Date
JPS60147884A JPS60147884A (ja) 1985-08-03
JPH0426150B2 true JPH0426150B2 (ja) 1992-05-06

Family

ID=24266560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59252113A Granted JPS60147884A (ja) 1983-12-30 1984-11-30 イメージ回転方法

Country Status (5)

Country Link
US (1) US4689824A (ja)
EP (1) EP0147701B1 (ja)
JP (1) JPS60147884A (ja)
CA (1) CA1225479A (ja)
DE (1) DE3473191D1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1252902A (en) * 1985-10-31 1989-04-18 David R. Pruett Method for rotating a binary image
JPH0421149Y2 (ja) * 1985-12-23 1992-05-14
JPH0751367B2 (ja) * 1986-08-29 1995-06-05 エイ・ティ・アンド・ティ グローバル インフォメーション ソルーションズ インターナショナル インコーポレイテッド ドツト・マトリクス・プリンタ
US4929085A (en) * 1986-09-30 1990-05-29 Kabushiki Kaisha Toshiba Image data rotation processing method and apparatus therefor
US5224041A (en) * 1988-02-02 1993-06-29 Canon Kabushiki Kaisha Electronic dictionary for outputting words in the opposite order in which they are searched
US5274755A (en) * 1989-02-08 1993-12-28 Sun Microsystems, Inc. Hardware implementation for providing raster offsets in a graphics subsystem with windowing
US5012434A (en) * 1989-02-21 1991-04-30 Siemens Aktiengesellschaft Apparatus and method for selective rotation of data printed by a matrix printer
US5305397A (en) * 1989-05-01 1994-04-19 Canon Kabushiki Kaisha Image communication apparatus
US5764815A (en) * 1989-05-01 1998-06-09 Canon Kabushiki Kaisha Image communication apparatus
US5054098A (en) * 1990-05-21 1991-10-01 Eastman Kodak Company Method of detecting the skew angle of a printed business form
US5140368A (en) * 1990-07-16 1992-08-18 Xerox Corporation Character printing and recognition system
NL9300981A (nl) * 1993-06-08 1995-01-02 Oce Nederland Bv Beeldvormingswerkwijze en beeldregistratie-inrichting voor het uitvoeren van deze werkwijze.
JPH08228275A (ja) * 1995-02-22 1996-09-03 Canon Inc ファクシミリ装置
JP3491471B2 (ja) * 1995-11-06 2004-01-26 セイコーエプソン株式会社 駆動装置及び電子機器
US6310986B2 (en) 1998-12-03 2001-10-30 Oak Technology, Inc. Image rotation assist circuitry and method
JP4425365B2 (ja) * 1999-02-15 2010-03-03 株式会社メガチップス 画像入力装置における信号処理回路
US6941019B1 (en) 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
US7146053B1 (en) 2000-05-10 2006-12-05 International Business Machines Corporation Reordering of compressed data
JP3614358B2 (ja) * 2000-09-28 2005-01-26 シャープ株式会社 画像符号化装置
US9561008B2 (en) 2010-12-28 2017-02-07 General Electric Company Method of displaying image

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3976982A (en) * 1975-05-12 1976-08-24 International Business Machines Corporation Apparatus for image manipulation
GB1547119A (en) * 1977-12-09 1979-06-06 Ibm Image rotation apparatus
JPS54120522A (en) * 1978-03-10 1979-09-19 Pacific Kogyo Kk Code converter
US4366505A (en) * 1978-09-20 1982-12-28 Canon Kabushiki Kaisha Information forming apparatus
US4412294A (en) * 1981-02-23 1983-10-25 Texas Instruments Incorporated Display system with multiple scrolling regions
US4493108A (en) * 1982-12-30 1985-01-08 International Business Machines Corporation Video image field cut processing
JPS59165175A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 画像情報の回転読出し回路
NL8302544A (nl) * 1983-07-15 1983-10-03 Oce Nederland Bv Werkwijze voor het geroteerd weergeven van een beeld dat rastervormig is opgebouwd uit afzonderlijke beeldelementen.
US4545069A (en) * 1983-10-31 1985-10-01 Xerox Corporation Rotation of digital images

Also Published As

Publication number Publication date
EP0147701A3 (en) 1986-07-30
US4689824A (en) 1987-08-25
EP0147701B1 (en) 1988-08-03
CA1225479A (en) 1987-08-11
JPS60147884A (ja) 1985-08-03
EP0147701A2 (en) 1985-07-10
DE3473191D1 (en) 1988-09-08

Similar Documents

Publication Publication Date Title
JPH0426150B2 (ja)
US4627020A (en) Method for rotating a binary image
US4566128A (en) Method for data compression for two-value picture image
US5020115A (en) Methods and apparatus for dynamically scaling images
JPH0439830B2 (ja)
JPS62299881A (ja) 画像表示システム
JPH0771185B2 (ja) 画像データ変換方法
JPH0426151B2 (ja)
JPH0572626B2 (ja)
JPS62166391A (ja) カ−ソル制御装置
US4916746A (en) Image rotation circuit
EP0677822A2 (en) Digital image rotation
CN115426466A (zh) 一种图像数据的读写控制系统及读写控制方法
JPH06189135A (ja) デジタル化画像の欠陥の検出および補正のための装置
JP3553376B2 (ja) 並列画像処理プロセッサ
JPH08202324A (ja) 画像データ記憶制御装置
JP2610887B2 (ja) イメージデータ回転処理装置
JPH026106B2 (ja)
JPS6385983A (ja) イメ−ジデ−タ回転回路
JPH02100159A (ja) Ramチェック方法
JPS61202574A (ja) 画像デ−タの圧縮および伸張方式
JPS59135497A (ja) 拡大又は縮小表示の制御装置
JPS6330898A (ja) 画像回転方式
JPS63239542A (ja) 画像メモリ装置および画像処理装置
JPH0418686A (ja) 画像処理方法