Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2553726B2 - 画像90度回転方法及び装置 - Google Patents
[go: Go Back, main page]

JP2553726B2 - 画像90度回転方法及び装置 - Google Patents

画像90度回転方法及び装置

Info

Publication number
JP2553726B2
JP2553726B2 JP2013165A JP1316590A JP2553726B2 JP 2553726 B2 JP2553726 B2 JP 2553726B2 JP 2013165 A JP2013165 A JP 2013165A JP 1316590 A JP1316590 A JP 1316590A JP 2553726 B2 JP2553726 B2 JP 2553726B2
Authority
JP
Japan
Prior art keywords
row
image data
image
rows
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 - Fee Related
Application number
JP2013165A
Other languages
English (en)
Other versions
JPH03216772A (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.)
Panasonic System Solutions Japan Co Ltd
Original Assignee
Matsushita Graphic Communication Systems Inc
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 Matsushita Graphic Communication Systems Inc filed Critical Matsushita Graphic Communication Systems Inc
Priority to JP2013165A priority Critical patent/JP2553726B2/ja
Publication of JPH03216772A publication Critical patent/JPH03216772A/ja
Priority to US08/227,088 priority patent/US5412768A/en
Application granted granted Critical
Publication of JP2553726B2 publication Critical patent/JP2553726B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は文字や図形などの画像データを90度回転させ
る画像回転方法及び装置に関する。
従来の技術 画像データをN行×N列の行列で表し、これを90度回
転する従来から行われている方法を第3図を用いて説明
する。
第3図は4行×4列の行列を90度時計回りに回転する
手順を表す。(a)図は元の画像でソース画像という。
90度回転する方法は、ソース画像の行と列を互いに交換
した転置行列をフェーズ16(ph16)までのステップで作
り、フェーズ17で各行のビットの並びを行の中心を対称
軸として各ビットの対称位置に入れ替えたものである。
フェーズ17を目的画像又はディストネーション画像とい
う。通常の構成のメモリの場合、一度に読み出せるのは
ワード(行)単位である。しかし、1ワード目のビット
を各行にそれぞれ移動しなければならないため、フェー
ズ1(ph1)ではまず0を1行の第1列目に移し、フェ
ーズ2で1を2行の第1列に移し、フェーズ3で2を3
行の第1列にフェーズ4で3を4行の第1列に移す。以
下2ワード〜4ワード目を同様のステップで移してゆく
ため、4ワード移すのに16フェーズ必要となる。
発明が解決しようとする課題 しかし、かかる方法によればディストネーション画像
のそれぞれのビット位置にビット単位で順次書き込む必
要がある。例えば、第3図の場合、ソース画像の1ワー
ドの1を書き込むため、フェーズ17の2ワード目を読み
出し、フェーズ17の1のある4列目に1を書き込むこと
になる。このため、処理時間が長くなるという問題があ
った。ところで、メモリ構成を特別なものとすればもっ
と短時間の処理が可能となる。第4図は、ワード(行)
単位および列単位に読み出しのできる特別構造のメモリ
を使用した場合の画像90度時計回り回転方法を示す。
(a)図はソース画像でフェーズ5がディストネーショ
ン画像である。1列の048Cを1度のアクセスで読み込
み、フェーズ1に示すように1ワード目に書き込む。こ
のようにすると4回のアクセスでフェーズ4に示すよう
に転置行列とすることができ、フェーズ5で各行の中心
を対称軸として各ビットの交換を行い90度回転画像を得
ることができる。このように一度で縦方向(列方向)の
目的ビット位置を読み出すか、もしくは書き込みができ
る特別構造のメモリを使用すれば高速化が可能となる。
しかし、この様な特別構造のメモリを構成することによ
り回路量が大きくなるという問題が発生する。特開昭62
−111364号公報には、このような特別構造のメモリを使
用した画像データ回転装置が示されている。
本発明は行単位にのみ読み出し書き込みのできる通常
のメモリを使用して高速に90度画像回転を行うことので
きる画像回転方法及び装置を提供することを目的とす
る。
課題を解決するための手段 上記目的を達成するため、元画像の大きさに応じて変
換モード数Mを算出し、この変換モード数に応じて、所
定の式から元画像を構成する行列より2つの行を選択
し、これを所定の式により変換したのち、元の行列に戻
し、このような操作を変換モード数繰り返すことにより
元の画像の行列の転置行列を得、90度時計回り回転する
ときは、転置行列の各行のビット並びを、行の中心を対
称軸として各ビットの対称位置に入れ替えを行うことに
より目的画像が得られ、90度反時計回りに回転するとき
は、転置行列の各行の並び順序を逆順の行の並びに変換
することにより目的画像を得るようにしたものであり、
本発明の画像90度時計回り回転方法は、N行×N列の画
像データを90度回転するに際し、変換モード数Mを、 M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数) によって求め、前記N行をO〜N−1と付番し、変換モ
ードL(=1〜M)ごとに、A番行とB番行を、 A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=O〜(N/2L)−1 によって求め、A番行とB番行の行ビット並びをA
(j),B(j)で表し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=O〜(N/2L)−1 によって求め、A(j)をA′(j)にB(j)をB′
(j)に変換し、Lを1からMまで変化させることによ
りN行×N列の変換画像データを求め、この変換画像デ
ータの各行のビット並びをE(j)とし、 F(j)=E(N−j−1),j=O〜N−1 によって各行のビット並びを変換することによりN行×
N列の画像データの90度時計回りの回転画像を得ること
を特徴とするものである。また、本発明の画像90度反時
計回り回転方法は、N行×N列の画像データを90度回転
するに際し、変換モード数Mを、 M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数) によって求め、前記N行をO〜N−1と付番し、変換モ
ードL(=1〜M)ごとに、A番行とB番行を、 A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=O〜(N/2L)−1 によって求め、A番行とB番行の行ビット並びをA
(j),B(j)で表し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=O〜(N/2L)−1 によって求め、A(j)をA′(j)にB(j)をB′
(j)に変換し、Lを1からMまで変化させることによ
りN行×N列の変換画像データを求め、この変換画像デ
ータのi行をE(i,j)で表し、E′(i,j)を E′(i,j)=E(N−i−1,j),i=0〜N−1 によって行の変換をすることによりN行×N列の画像デ
ータの90度反時計回りの画像を得ることを特徴とするも
のである。また、本発明の画像90度回転装置は、画像デ
ータを記憶する画像データ記憶手段と、N行×N列の画
像データの変換モード数Mを M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
少数点以下の数値を含むときは切り上げた整数) によって求め、変換モードL(=1〜M)を出力する変
換モード演算手段と、前記N行を0〜N−1と付番し、
前記変換モードLに応じて前記N行よりA番行とB番行
を A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=0〜(N/2L)−1 により演算し、このA番行とB番行の行ビット並びA
(j),B(j)を選択する行選択手段と、前記A
(j),B(j)を入力し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=0〜(N/2L)−1 によって演算し、前記画像データのA(j),B(j)を
それぞれA′(j),B′(j)に変換し、この操作を変
換モードLを1〜Mまで変えて行い、変換画像データを
作成する画像変換手段と、前記変換画像データの行ビッ
ト並びをE(j)とし、 F(j)=E(N−j−1),j=0〜N−1 によって各行のビット並びを変換する行ビット並び変換
手段と、前記変換画像データのi行をE(i,j)で表
し、E′(i,j)を E′(i,j)=E(N−j−1),i=0〜N−1 によって行の変換を行う行変換手段とを備えたことを特
徴とするものである。
作 用 上記構成により、変換モード演算手段は元画像を表す
N行×N列の行列の大きさに応じて決まる変換モード数
Mを演算し、変換モードL(=1〜M)を出力する。行
選択手段はこの変換モードLに応じて、行列N行のうち
からA番行とB番行を選択する。画像変換手段はこのA
番行とB番行を上述の式に従ってA′番行とB′番行に
変換し、A′番行をA番行のあった位置にB′番行をB
番行のあった位置に移し、新たな行列をつくる。このよ
うな操作を変換モードLを1からMまで繰り返し行うこ
とにより変換画像データを作成する。この変換画像デー
タが元画像を表す行列の転置行列である。行ビット並び
変換手段は、この変換画像データの各行ビット並びを変
換して、90度時計回り回転画像を作成し、行変換手段は
この変換画像データの各行の並び順を変換して90度反時
計回り回転画像を作成する。
実施例 以下、本発明の一実施例を第1図,第2図を用いて説
明する。
第1図は本発明の画像90度回転装置を表すブロック図
である。1は全体を制御するCPU、2は主記憶である。
3は画像格納領域でキャッシュメモリを備えている。4,
5,6はNビット入力ラッチ回路で、Nビットからなる行
(又はワード)データを入力してラッチする。7は2Nビ
ットデータ変換回路でNビット入力ラッチ回路4,5に入
力したワードを変換して2つのワードとして出力する。
8,9はNビット出力ラッチ回路で2Nビットデータ変換回
路7より出力される2つのワードをそれぞれラッチす
る。10はラッチデータセレクト回路で、Nビット出力ラ
ッチ回路8,9のデータをCPU1から送られる出力データ選
択信号に応じて選択して出力する。11はNビット交換回
路でNビット入力ラッチ回路6より出力されるワードの
ビットの並びを交換し、時計回り回転データを出力す
る。12は行順変更回路でNビット入力ラッチ回路6より
出力される行(ワード)の順位を変更し、反時計回り回
転データを出力する。13はNビット出力ラッチ回路でN
ビット変換回路11,行順変換回路12の出力をラッチし、
画像格納領域3に出力する。
次に第1図、第2図を用いて動作を具体的に説明す
る。第2図はソース画像が4行×4列よりなる行列を90
度回転する手順を示したものである。まず変換モードの
説明をする。変換モード数Mは行列の大きさが2n×2n
表されるときはM=nとなる。第2図の場合、N=4で
ありN=2nからn=2となるのでモード数M=2であ
る。つまり2つの変換モードが存在する。
この変換モードに対して2N(N=4)ビットデータ変
換回路7の動作を説明する。
2Nビットデータ変換回路7の動作は、変換モード選択
信号に対応して2N(N=4)ビットのデータ列に対して
以下の変換ルールとして表現出来る。
Nビット入力ラッチ回路4のデータ線を(0、1、
2、3) Nビット入力ラッチ回路5のデータ線を(4、5、
6、7) と番号を付けると 変換モード1 変換モード2 入力 出力 入力 出力 0 → 0 0 → 0 1 → 4 1 → 1 2 → 2 2 → 4 3 → 6 3 → 5 4 → 1 4 → 2 5 → 5 5 → 3 6 → 3 6 → 6 7 → 7 7 → 7 互換表現では 変換モード1(1、4)(3、6) 変換モード2(2、4)(3、5)となる。
次に全体の動作について説明する。
CPU1はまず、第1図の変換モード選択信号の変換モー
ド1を選択し、画像格納領域3から、第1ワード目
(0、1、2、3)を読み出しNビット入力ラッチ回路
4に転送する。次に第2ワード目(4、5、6、7)
を、Nビット入力ラッチ回路5に転送する。2Nビットデ
ータ変換回路7はNビット出力ラッチ回路8に(0、
4、2、6)を出力する。又Nビット出力ラッチ回路9
に(1、5、3、7)を出力する。CPU1は、Nビット出
力ラッチ回路8の内容(0、4、2、6)を、画像格納
領域3の第1ワード目に書き込む。又Nビット出力ラッ
チ回路9の内容(1、5、3、7)を画像格納領域3の
第2ワード目に書き込む。この状態がph1である。
同様に、画像格納領域3から、第3ワード目(8、
9、A、B)を読み出しNビット入力ラッチ回路4に転
送する。次に第4ワード目(C、D、E、F)を、Nビ
ット入力ラッチ回路5に転送する。2Nビットデータ変換
回路7はNビット出力ラッチ回路8に(8、C、A、
E)を出力する。又Nビット出力ラッチ回路9に(9、
D、B、F)を出力する。CPU1は、Nビット出力ラッチ
回路8の内容(8、C、A、E)を、画像格納領域3の
第3ワード目に書き込む、又Nビット出力ラッチ回路9
の内容(9、D、B、F)を画像格納領域3の第4ワー
ド目に書き込む。この状態がph2である。
CPU1は次に、第1図の変換モード選択信号の変換モー
ド2を選択し、画像格納領域3から、第1ワード目
(0、4、2、6)を読み出しNビット入力ラッチ回路
4に転送する。次に第3ワード目(8、C、A、E)
を、Nビット入力ラッチ回路5に転送する。2Nビットデ
ータ変換回路7はNビット出力ラッチ回路8に(0、
4、8、C)を出力する。又Nビット出力ラッチ回路9
に(2、6、A、E)を出力する。CPU1は、Nビット出
力ラッチ回路8の内容(0、4、8、C)を、画像格納
領域3の第1ワード目に書き込む。又Nビット出力ラッ
チ回路9の内容(2、6、A、E)を画像格納領域3の
第3ワード目に書き込む。この状態がph3である。
同様に、画像格納領域3から、第2ワード目(1、
5、3、7)を読み出しNビット入力ラッチ回路4に転
送する。次に第4ワード目(9、D、B、F)を、Nビ
ット入力ラッチ回路5に転送する。2Nビットデータ変換
回路7はNビット出力ラッチ回路8に(1、5、9、
D)を出力する。又Nビット出力ラッチ回路9に(3、
7、B、F)を出力する。CPU1は、Nビット出力ラッチ
回路8の内容(1、5、9、D)を、画像格納領域3の
第2ワード目に書き込む。又Nビット出力ラッチ回路9
の内容(3、7、B、F)を画像格納領域3の第4ワー
ド目に書き込む。この状態がph4で、このようにして得
られたph4の行列は、(a)に示すソース画像の行列の
転置行列となっている。この転置行列より時計回り、又
は反時計回りの回転画像が得られる。
まず、時計回り回転画像について説明する。
CPU1は次に、画像格納領域3から、第1ワード目
(0、4、8、C)を読み出し、Nビット入力ラッチ回
路6に転送する。Nビット交換回路11はNビット入力ラ
ッチ回路6のデータ(0、4、8、C)のLSB側とMSB側
の交換を行って(C、8、4、0)をNビット出力ラッ
チ回路13に転送する。CPU1は、Nビット出力ラッチ回路
13の内容(C、8、4、0)を、画像格納領域3の第1
ワード目に書き込む。
同様に、画像格納領域3から、第2ワード目(1、
5、9、D)を読み出し、Nビット入力ラッチ回路6に
転送する。Nビット交換回路11はNビット入力ラッチ回
路6のデータ(1、5、9、D)のLSB側とMSB側の交換
を行って(D、9、5、1)をNビット出力ラッチ回路
13に転送する。CPU1は、Nビット出力ラッチ回路13の内
容(D、9、5、1)を、画像格納領域3の第2ワード
目に書き込む。
同様に、画像格納領域3から、第3ワード目(2、
6、A、E)を読み出し、Nビット入力ラッチ回路6に
転送する。Nビット交換回路11はNビット入力ラッチ回
路6のデータ(2、6、A、E)のLSB側とMSB側の交換
を行って(E、A、6、2)をNビット出力ラッチ回路
13に転送する。CPU1は、Nビット出力ラッチ回路13の内
容(E、A、6、2)を、画像格納領域3の第3ワード
目に書き込む。
同様に、画像格納領域3から、第4ワード目(3、
7、B、F)を読み出し、Nビット入力ラッチ回路6に
転送する。Nビット交換回路11はNビット入力ラッチ回
路6のデータ(3、7、B、F)のLSB側とMSB側の交換
を行って(F、B、7、3)をNビット出力ラッチ回路
13に転送する。CPU1はNビット出力ラッチ回路13の内容
(F、B、7、3)を、画像格納領域3の第4ワード目
に書き込む。この状態がph5である。
以上の操作で、時計回り方向の90度回転が可能とな
る。
次に反時計回り回転画像について説明する。
CPU1は画像格納領域3から第1ワード目(0、4、
8、C)を読み出し、Nビット入力ラッチ回路6に転送
する。行順変換回路12はNビット入力ラッチ回路6のデ
ータ行順を第4ワード目とし、Nビット出力ラッチ回路
13を経由して画像格納領域3の第4ワード目に書き込
む。
次にCPU1は画像格納領域3から第2ワード目(1、
5、9、D)を読み出し、Nビット入力ラッチ回路6に
転送する。
行順変換回路12はNビット入力ラッチ回路6のデータ
行順を第3ワード目とし、Nビット出力ラッチ回路13を
経由して画像格納領域3の第3ワード目に書き込む。
同様にして、第3ワード目(2、6、A、E)を第2
ワード目に、第4ワード目(3、7、B、F)を第1ワ
ード目に書き込むことによりph6の状態となる。
以上の操作で反時計回り方向の90度回転が可能とな
る。
次にNビット*Nワード(N行XN列)のソース画像を
時計回り又は反時計回りに90度回転する動作について説
明する。
まず変換モード数Mは行列の大きさNに応じて次式で
表される。
M=〔log2N〕 但し〔 〕は内部の数値が整数のときはその整数値を
表し、小数点以下の数値を含むときは切り上げた整数を
表す。
これはN=2n(nは整数)で表されるときはM=nで
あり2n<N<2n+1の場合はM=n+1を表す。つまり、
変換モード数MはNXNの行列を必ず2MX2Mの大きさの行列
として取り扱うことを表している。本実施例では4行X4
列の画像データを例としているので、M=2となる。も
し、画像データが5行X5列であった場合は、Nは5なの
で、2n<N<2n+1に当てはまり、よって22<N<22+1
なり、M=n+1、つまりM=3となる。従って23X23
の大きさの行列(8X8の行列)として取り扱われること
になる。
次にCPU1が変換モードL(=1〜M)の時に画像格納
領域3から読み出し、Nビット入力ラッチ回路4、5に
それぞれ入力するワード(行)について第2図の画像デ
ータを例にとって以下に説明する。
第2図の画像データの場合、4行X4列であり上述した
ようにM=2となるので、変換モードLは1〜M、つま
り1と2となる。Nビット入力ラッチ回路4に転送する
行番号をA、Nビット入力ラッチ回路5に転送する行番
号をBとすると、 A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=0〜(N/2L)−1 によって表すことができる。
本実施例では、N=4、L=1及び2であるので、L
=1(変換モード1)の場合、上述のkを求める式にお
いて、k=0及び1となる。L=1でk=0の場合、上
述のA、Bを求める式において、A=0、B=1とな
り、k=1の場合、A=2、B=3となる。つまり、変
換モード1ではNビット入力ラッチ回路4に転送される
行は0行目(第2図でいえば1ワード目)及び2行目
(同じく3ワード目)、Nビット入力ラッチ回路5に転
送される行は1行目(同じく2ワード目)及び3行目
(同じく4ワード目)となる。また、L=2(変換モー
ド2)の場合、上述のkを求める式において、k=0と
なる。L=2でk=0の場合、上述のA、Bを求める式
において、A=0及び1、B=2及び3となる。つま
り、変換モード2ではNビット入力ラッチ回路4に転送
される行は0行目(第2図でいえば1ワード目)及び1
行目(同じく2ワード目)、Nビット入力ラッチ回路5
に転送される行は2行目(同じく3ワード目)及び3行
目(同じく4ワード目)となる。
次にこのようにして決定されたA、B行のデータを2N
ビット変換回路7で変換する方法について説明する。
jを0からN−1までの値として(本実施例ではNは
4なのでjは0列から3列を表す)、A行のj列をA
(j)として表し、B行のj列をB(j)として表すと
すると、次の式1から式4により、変換前画像データの
A(j)、B(j)を変換後画像データのA′(j)、
B′(j)に変換する。式5は、式1から式4において
用いられるkを得るための式である。
<式1>j=k*2L〜k*2L+2L-1−1 A′(j)=A(j) <式2>k*2L+2L-1〜k*2L+2L−1 A′(j)=B(j−2L-1) <式3>k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) <式4>j=k*2L〜k*2L+2L-1−1 B′(j)=A(j+2L-1) <式5>k=0〜(N/2L)−1 式5において、まずkを求める。本実施例の場合、変
換モードLには1と2があるが、L=1(変換モード
1)の場合を先に説明する。N=4なので、式5によっ
て、k=0及び1となる。
式1により、k=0の場合j=0、k=1の場合j=
2となる。従って、A行(0行目、2行目)の0列の値
がA′行(0行目、2行目)の0列の値に、A行(0行
目、2行目)の2列の値がA′行(0行目、2行目)の
2列の値とされる。
式2により、k=0の場合j=1、k=1の場合j=
3となる。B(j−2L-1)はj=1のときB(0)に、
j=3のときB(2)となる。従って、B行(1行目、
3行目)の0列の値がA′行(0行目、2行目)の1列
の値に、B行(1行目、3行目)の2列の値がA′行
(0行目、2行目)の3列の値とされる。
式3により、k=0の場合j=1、k=1の場合j=
3となる。従って、B行(1行目、3行目)の1列の値
がB′行(1行目、3行目)の1列の値に、B行(1行
目、3行目)の3列の値がB′行(1行目、3行目)の
3列の値とされる。
式4により、k=0の場合j=0、k=1の場合j=
2となる。A(j+2L-1)はj=0のときA(1)に、
j=2のときA(3)となる。従って、A行(0行目、
2行目)の1列の値がB′行(1行目、3行目)の0列
の値に、A行(0行目、2行目)の3列の値がB′行
(1行目、3行目)の2列の値とされる。
以上の変換モード1の処理によって、第2図(a)の
ソース画像が(b)のph2の画像に変換される。
次に、L=2(変換モード2)の処理に入る。N=4
なので、式5によって、k=0となる。
式1により、j=0及び1となる。従って、A行(0
行目、1行目)の0列の値がA′行(0行目、1行目)
の0列の値に、A行(0行目、1行目)の1列の値が
A′行(0行目、1行目)の1列の値とされる。
式2により、j=2及び3となる。B(j−2L-1)は
j=2のときB(0)に、j=3のときB(1)とな
る。従って、B行(2行目、3行目)の0列の値がA′
行(0行目、1行目)の2列の値に、B行(2行目、3
行目)の1列の値がA′行(0行目、1行目)の3列の
値とされる。
式3により、j=2及び3となる。従って、B行(2
行目、3行目)の2列の値がB′行(2行目、3行目)
の2列の値に、B行(2行目、3行目)の3列の値が
B′行(2行目、3行目)の3列の値とされる。
式4により、j=0及び1となる。A(j+2L-1)は
j=0のときA(2)に、j=1のときA(3)とな
る。従って、A行(0行目、1行目)の2列の値がB′
行(2行目、3行目)の0列の値に、A行(0行目、1
行目)の3列の値がB′行(2行目、3行目)の1列の
値とされる。
以上の変換モード2の処理によって、第2図(b)の
ph2の画像がph4の画像に変換される。
式1から式5による変換は、変換モード数分M回繰り
返される(本実施例ではM=2)。このようにしてソー
ス画像の転置行列を求め、変換された行データをNビッ
ト出力ラッチ回路8、9にラッチし、ラッチデータセレ
クト回路10により、変換された行データを画像格納領域
3のA行、B行に書き込む。
さらに、第2図(b)のph4の画像を変換して、ソー
ス画像が時計回り90度回転した画像を得る動作を説明す
る。
Nビット入力ラッチ回路6に画像格納領域3からph4
の画像を順に1行ずつ読み出してラッチする。読み出し
た行をE行(j列)として表し、Nビット変換回路11が
次の式によりE′行(j列)に変換する。Eは0行から
N−1行、jは0列からN−1列、本実施例ではE=j
=0〜3となる。
E′(j)=E(N−j−1) E′=E=0〜N−1 j=0〜N−1 この式により、本実施例では、ph4の画像のE行(0
行目から3行目まで)の3列の値をE′行(0行目から
3行目まで)の0列の値に、同様に2列の値を1列の値
に、1列の値を2列の値に、0列の値を3列の値とす
る。
このようにして、第2図(b)のph4の画像をph5の画
像に変換し、N行XN列のソース画像を時計回り90度回転
した画像を得る。
また、第2図(b)のph4の画像を変換して、ソース
画像が反時計回り90度回転した画像を得る動作を説明す
る。
Nビット入力ラッチ回路6に画像格納領域3からph4
の画像を順に1行ずつ読み出してラッチする。読み出し
た行をE行(j列)として表し、行順変更回路12が次の
式によりF行(j列)に変換する。E=0行からN−1
行、FはN−1行から0行、jは0列からN−1列、本
実施例ではE=j=0〜3、F=3〜0となる。
F(j)=E(j) E=0〜N−1 F=N−1〜0 j=0〜N−1 この式により、本実施例では、ph4の画像のE行(0
行目)の0列〜3列の値をF行(3行目)の0列〜3列
の値に、E行(1行目)の0列〜3列の値をF行(2行
目)の0列〜3列の値に、E行(2行目)の0列〜3列
の値をF行(1行目)の0列〜3列の値に、E行(3行
目)の0列〜3列の値をF行(0行目)の0列〜3列の
値とする。
このようにして、第2図(b)のph4の画像をph6の画
像に変換し、N行XN列のソース画像を反時計回り90度回
転した画像を得る。
ソース画像を時計回り90度回転した画像又は反時計回
り90度回転した画像はNビット出力ラッチ回路13にラッ
チされた後、画像格納領域3に書き込まれる。
発明の効果 以上の説明から明らかなように、本発明は元画像の大
きさに応じて変換モード数を定めこの変換モード数に応
じて所定の式から元画像を構成する行列より2つの行を
選択し、これを所定の式により変換した後元の行列に戻
し、このような操作を変換モード数繰り返すことによ
り、転置行列を求め、この行列の各行ごとのビット並び
順の変更により、90度時計回り回転画像を得、また、転
置行列の各行の順を変更することにより90度反時計回り
回転画像を得ることが出来るので、通常のメモリ構成に
より高速に90度回転画像を得ることができる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図は本発明を4行×4列の画像に適用した場合の実施
例を示す図、第3図は従来の方法により90度回転画像を
得る手順の説明図、第4図は特別な構造のメモリを用い
て90度回転画像を得る場合の説明図である。 1……CPU、2……主記憶、3……画像格納領域、4,5,6
……Nビット入力ラッチ回路、7……2Nビットデータ交
換回路、8,9……Nビット出力ラッチ回路、10……ラッ
チデータセレクト回路、11……Nビット交換回路、12…
…行順変更回路、13……Nビット出力ラッチ回路。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】N行×N列の画像データを90度回転するに
    際し、変換モード数Mを、M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
    少数点以下の数値を含むときは切り上げた整数) によって求め、前記N行をO〜N−1と付番し、変換モ
    ードL(=1〜M)ごとに、A番行とB番行を、 A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=O〜(N/2L)−1 によって求め、A番行とB番行の行ビット並びをA
    (j),B(j)で表し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=O〜(N/2L)−1 によって求め、A(j)をA′(j)にB(j)をB′
    (j)に変換し、Lを1からMまで変化させることによ
    りN行×N列の変換画像データを求め、この変換画像デ
    ータの各行のビット並びをE(j)とし、 F(j)=E(N−j−1),j=O〜N−1 によって各行のビット並びを変換することによりN行×
    N列の画像データの90度時計回りの回転画像を得ること
    を特徴とする画像90度回転方法。
  2. 【請求項2】N行×N列の画像データを90度回転するに
    際し、変換モード数Mを、 M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
    少数点以下の数値を含むときは切り上げた整数) によって求め、前記N行をO〜N−1と付番し、変換モ
    ードL(=1〜M)ごとに、A番行とB番行を、 A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=O〜(N/2L)−1 によって求め、A番行とB番行の行ビット並びをA
    (j),B(j)で表し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=O〜(N/2L)−1 によって求め、A(j)をA′(j)にB(j)をB′
    (j)に変換し、Lを1からMまで変化させることによ
    りN行×N列の変換画像データを求め、この変換画像デ
    ータのi行をE(i,j)で表し、E′(i,j)を E′(i,j)=E(N−i−1,j),i=0〜N−1 によって行の変換をすることによりN行×N列の画像デ
    ータの90度反時計回りの回転画像を得ることを特徴とす
    る画像90度回転方法。
  3. 【請求項3】画像データを記憶する画像データ記憶手段
    と、N行×N列の画像データの変換モード数Mを M=〔log2N〕 (但し〔 〕は内部の数値が整数のときはその整数を、
    少数点以下の数値を含むときは切り上げた整数) によって求め、変換モードL(=1〜M)を出力する変
    換モード演算手段と、前記N行を0〜N−1と付番し、
    前記変換モードLに応じて前記N行よりA番行とB番行
    を A=k*2L〜k*2L+2L-1−1 B=A+2L-1 k=0〜(N/2L)−1 により演算し、このA番行とB番行の行ビット並びA
    (j),B(j)を選択する行選択手段と、前記A
    (j),B(j)を入力し、A′(j),B′(j)を A′(j)=A(j) j=k*2L〜k*2L+2L-1−1 A′(j)=B(j−2L-1) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=B(j) j=k*2L+2L-1〜k*2L+2L−1 B′(j)=A(j+2L-1) j=k*2L〜k*2L+2L-1−1 k=0〜(N/2L)−1 によって演算し、前記画像データのA(j),B(j)を
    それぞれA′(j),B′(j)に変換し、この操作を変
    換モードLを1〜Mまで変えて行い、変換画像データを
    作成する画像変換手段と、前記変換画像データの行ビッ
    ト並びをE(j)とし、 F(j)=E(N−j−1),j=0〜N−1 によって各行のビット並びを変換する行ビット並び変換
    手段と、前記変換画像データのi行をE(i,j)で表
    し、E′(i,j)を E′(i,j)=E(N−j−1),i=0〜N−1 によって行の変換を行う行変換手段とを備えたことを特
    徴とする画像90度回転装置。
JP2013165A 1990-01-22 1990-01-22 画像90度回転方法及び装置 Expired - Fee Related JP2553726B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013165A JP2553726B2 (ja) 1990-01-22 1990-01-22 画像90度回転方法及び装置
US08/227,088 US5412768A (en) 1990-01-22 1994-04-13 Method and apparatus for rotating an image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013165A JP2553726B2 (ja) 1990-01-22 1990-01-22 画像90度回転方法及び装置

Publications (2)

Publication Number Publication Date
JPH03216772A JPH03216772A (ja) 1991-09-24
JP2553726B2 true JP2553726B2 (ja) 1996-11-13

Family

ID=11825563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013165A Expired - Fee Related JP2553726B2 (ja) 1990-01-22 1990-01-22 画像90度回転方法及び装置

Country Status (1)

Country Link
JP (1) JP2553726B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2973784B2 (ja) * 1993-07-19 1999-11-08 松下電器産業株式会社 多値画像90度回転方法及び装置
CN111754409B (zh) * 2019-03-27 2024-07-19 北京沃东天骏信息技术有限公司 图像处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
JPH03216772A (ja) 1991-09-24

Similar Documents

Publication Publication Date Title
JP2973784B2 (ja) 多値画像90度回転方法及び装置
JPS61107596A (ja) 連想記憶装置
JPH01134495A (ja) 画像データ回転処理装置及びその方法
JPH023515B2 (ja)
JP2553726B2 (ja) 画像90度回転方法及び装置
JP3166447B2 (ja) 画像処理装置及び画像処理方法
JP2997613B2 (ja) 離散コサイン変換装置
JPS5937508B2 (ja) 文字パタ−ンの発生装置
JPH05233795A (ja) 画像拡大縮小装置
US6195463B1 (en) Multiresolution image processing and storage on a single chip
JP2695266B2 (ja) 画像の任意角回転方法および装置
JPS6073789A (ja) 画像の拡大縮小装置
JP3731191B2 (ja) マトリクス形式データの転置処理方法
JPH079572B2 (ja) パタ−ンデ−タの縦横変換装置
JP2824976B2 (ja) 2次元配列データ回転装置
JP2548286B2 (ja) イメージデータ処理装置
JPH028336B2 (ja)
KR100276793B1 (ko) 부화소 마스크 생성장치
JP3937418B2 (ja) 記憶装置および記憶読み出し制御方法
JPH03116322A (ja) 行列変換装置
JPS6128165A (ja) ビツト配置変換器
JPH0430036B2 (ja)
JPS63118886A (ja) デイジタル画像の変換装置
JPS62269280A (ja) 画像90度回転方法
JPH0687259B2 (ja) 画像転置方法と装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees