JPH1063830A - 画像処理回路 - Google Patents

画像処理回路

Info

Publication number
JPH1063830A
JPH1063830A JP8216486A JP21648696A JPH1063830A JP H1063830 A JPH1063830 A JP H1063830A JP 8216486 A JP8216486 A JP 8216486A JP 21648696 A JP21648696 A JP 21648696A JP H1063830 A JPH1063830 A JP H1063830A
Authority
JP
Japan
Prior art keywords
image
output
data
pixel
image processing
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
Application number
JP8216486A
Other languages
English (en)
Inventor
Tetsuo Kawada
哲郎 河田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP8216486A priority Critical patent/JPH1063830A/ja
Publication of JPH1063830A publication Critical patent/JPH1063830A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

(57)【要約】 【課題】 回転処理された画像を構成する画素のデータ
を簡易な構成で高速に転送する。 【解決手段】 マトリックス状に設けられたPPEは、
画像135の複数の画素ラインの各々の複数の画素の各
々に対応して画素のデータを記憶する。基準線(x軸
等)との成す角度が指定された角度θとなる直線l1
n を画素ラインの画素間隔で画像135の全領域を覆
うように複数想定し、想定した複数の直線の各々に対応
する位置に位置する画素のデータが出力されるようにP
PEを制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理回路に係
り、より詳しくは、画像を回転させるための基準となる
基準線に対して指定された角度だけ該画像を回転する画
像処理回路に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】一般
に、アフィン変換においては、出力する画像メモリのア
ドレスがランダムに変化するため、処理の途中において
ディジタル微分解析器(DDA(DigitalDifferential
Analyzer ))によりメモリアドレスの計算をしなが
ら、画像データの書き込みを行なうことが必要となる。
ラスタ画像の拡大、縮小、回転などのアフィン変換を行
なう画像処理装置において、画像メモリに対するランダ
ムなメモリアクセスのため、処理が遅いという問題があ
った。
【0003】かかる事実に鑑み、特開昭63−2627
72号公報には、ラスタ画像のアフィン変換を行なう画
像処理装置において、微小増分パラメータΔnに対して
2×n本の出力用FIFOバッファを備えることによ
り、出力画像メモリに対するランダムアクセスをなくす
発明が提案されている。
【0004】しかし、FIFOバッファから出力画像メ
モリへのデータ転送は、2×n本のFIFOバッファを
すべてカスケード状に接続したシリアル転送となり、出
力用FIFOバッファから出力画像メモリへのデータ転
送に時間がかかるという問題があった。
【0005】また、特開昭62−206678号公報で
は、アフィン変換における画像の回転処理において2次
元状に配置した演算アレイを用いて上記DDA処理を行
なう並列データ処理方式が提案されている。
【0006】しかし、この方式においては、個々の演算
要素において別々にアフィン変換の演算を行なうため、
演算回路が大型化し、演算アレイの規模を大きくするこ
とができないという問題があった。また、回転による画
素データの移動を演算アレイの内部で行なうため、移動
処理が複雑化し、パイプライン処理には適さないという
問題があった。
【0007】本発明は、上記事実に鑑み成されたもの
で、回転処理された画像を構成する画素のデータを簡易
な構成で高速に転送することの可能な画像処理回路を提
案することを目的とする。
【0008】
【課題を解決するための手段】上記目的達成のため請求
項1記載の発明は、画像を回転させるための基準となる
基準線に対して指定された角度だけ該画像を回転する画
像処理回路であって、前記画像の複数の画素ラインの各
々の複数の画素の各々に対応してマトリックス状に設け
られ、かつ、対応する画素のデータを記憶する複数の記
憶手段と、前記複数の記憶手段の各々に対応して設けら
れ、かつ、対応する記憶手段に記憶された画素のデータ
を出力する複数の出力手段と、前記基準線との成す角度
が前記指定された角度となる直線を前記画素ラインの画
素間隔で前記画像の全領域を覆うように複数想定し、想
定した複数の直線の各々に対応する位置に位置する画素
のデータが出力されるように前記複数の出力手段を制御
する制御手段と、を備えている。
【0009】請求項2記載の発明は、請求項1記載の発
明において、前記複数の出力手段の各々は、前記想定さ
れた直線に対応して定められた出力手段が前記制御手段
により該直線に対応してグループにまとまるためのデー
タを入力することを開始条件として、他の出力手段との
該グループにまとまるためのデータの入出力により該グ
ループにまとまり、前記制御手段は、前記想定された直
線に対応して定められた出力手段に前記データを出力す
ることにより、前記複数の出力手段を前記想定した直線
に対応してグループにまとめ、前記直線に対応する位置
に位置する画素のデータが該グループにまとまった出力
手段から出力されるように制御することを特徴とする。
【0010】請求項3記載の発明は、請求項1又は請求
項2記載の発明において、前記複数の出力手段は、前記
複数の記憶手段に対応してマトリックス状に配置され、
前記制御手段は、前記マトリックス状に配置された複数
の出力手段を前記指定された角度に応じて各行又は各列
毎に一括して制御することを特徴とする。
【0011】請求項4記載の発明は、請求項1又は請求
項2記載の発明において、前記複数の出力手段は、前記
複数の記憶手段に対応してマトリックス状に配置され、
前記複数の記憶手段は、前記指定された角度に応じて予
め90°回転した前記画像を構成する複数の画素のデー
タを記憶し、前記制御手段は、前記マトリックス状に配
置された複数の出力手段を各行毎に一括して制御するこ
とを特徴とする。
【0012】請求項5記載の発明は、請求項1乃至請求
項4の何れか1項に記載の発明において、前記画像は、
基準画像に対して指定された領域を囲む最小の矩形領域
又は該矩形領域を複数のブロックに分割して定まること
を特徴とする。
【0013】請求項6記載の発明は、請求項1乃至請求
項5の何れか1項に記載の発明において、前記出力手段
により出力されたデータ及び他の画像を構成する画素の
データに基づいて、前記画像を前記他の画像に合成する
合成手段を更に備えたことを特徴とする。
【0014】請求項7記載の発明は、請求項6記載の発
明において、前記合成手段により前記画像が前記他の画
像に合成される前に、前記出力手段により出力されたデ
ータに基づいて前記画像を拡大又は縮小する拡大縮小手
段を更に備えたことを特徴とする。
【0015】即ち、請求項1記載の発明に係る画像処理
回路は、画像を回転させるための基準となる基準線に対
して指定された角度だけ該画像を回転する。
【0016】複数の記憶手段は、画像の複数の画素ライ
ンの各々の複数の画素の各々に対応してマトリックス状
に設けられており、各記憶手段は、対応する画素のデー
タを記憶する。
【0017】なお、画像は、請求項5記載の発明のよう
に、基準画像に対して指定された領域を囲む最小の矩形
領域又は該矩形領域を複数のブロックに分割して定ま
る。
【0018】また、本発明は、上記複数の記憶手段の各
々に対応して複数の出力手段を設け、各出力手段は、対
応する記憶手段に記憶された画素のデータを出力する。
【0019】そして、制御手段は、基準線との成す角度
が指定された角度となる直線を画素ラインの画素間隔で
画像の全領域を覆うように複数想定し、想定した複数の
直線の各々に対応する位置に位置する画素のデータが出
力されるように複数の出力手段を制御する。
【0020】ここで、想定した複数の直線の各々に対応
する位置に位置する画素のデータが出力されるように複
数の出力手段を制御するには、請求項2記載の発明のよ
うに、複数の出力手段の各々は、想定された直線に対応
して定められた出力手段が前記制御手段により該直線に
対応してグループにまとまるためのデータを入力するこ
とを開始条件として、他の出力手段との該グループにま
とまるためのデータの入出力により該グループにまとま
るようにし、制御手段は、想定された直線に対応して定
められた出力手段に前記データを出力することにより、
複数の出力手段を前記想定した直線に対応してグループ
にまとめ、該直線に対応する位置に位置する画素のデー
タが該グループにまとまった出力手段から出力されるよ
うに制御する。
【0021】なお、請求項3記載の発明のように、複数
の出力手段は、複数の記憶手段に対応してマトリックス
状に配置され、制御手段は、マトリックス状に配置され
た複数の出力手段を前記指定された角度に応じて各行又
は各列毎に一括して制御してもよく、請求項4記載の発
明のように、複数の出力手段は、複数の記憶手段に対応
してマトリックス状に配置され、複数の記憶手段は、指
定された角度に応じて予め90°回転した前記画像を構
成する複数の画素のデータを記憶し、制御手段は、マト
リックス状に配置された複数の出力手段を各行毎に一括
して制御するようにしてもよい。
【0022】そして、出力手段により出力された画素の
データを複数の直線の各々毎に順に整列すれば、該整列
した画素のデータで構成された画像は元の画像を指定さ
れた角度回転させたものとなる。
【0023】このように、基準線との成す角度が指定さ
れた角度となる直線を画素ラインの画素間隔で画像の全
領域を覆うように複数想定し、想定した複数の直線の各
々に対応する位置に位置する画素のデータが出力される
ように複数の出力手段を制御することにより画像の回転
処理を行うことから、アドレスを計算してランダムに画
素のデータを読み出さなくとも画像を回転処理すること
ができ、画像を高速に回転処理することができる。
【0024】また、出力手段により出力された画素のデ
ータを複数の直線の各々毎に順に記憶すれば、該記憶し
た画素のデータで構成された画像は元の画像を指定され
た角度回転させたものとなるので、記憶した画素のデー
タを基準方向に並列に読み出すことができ、回転処理さ
れた画像を構成する画素のデータを高速に転送すること
ができる。
【0025】よって、請求項6記載の発明のように、合
成手段により、出力手段により出力されたデータ及び他
の画像を構成する画素のデータに基づいて、前記画像を
前記他の画像に合成する際のデータ転送は、出力手段に
より出力された画素のデータの転送となるため、回転処
理する際に、該合成した画像を記憶するメモリへのデー
タアクセスが不要となると共に、画像の回転処理後に直
ちに画像を合成処理することができる。
【0026】なお、請求項7記載の発明のように拡大縮
小手段により、前記合成手段により前記画像が前記他の
画像に合成される前に、前記出力手段により出力された
データに基づいて前記画像を拡大又は縮小するようにし
てもよい。
【0027】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して詳細に説明する。
【0028】本形態の画像処理装置は図示しないコンピ
ュータを備え、このコンピュータには、図1に示す表示
装置PCが接続されている。表示装置PCの画面には、
画像を表示する第1のウインドウ(以下、Win1とい
う)、画像を表示する第2のウインドウ(以下、Win
2という)、及び表示された画像に対して施す処理を指
示するメニューバーMBが設けられている。なお、本形
態では、メニューバーMBには、移動バーM1 、回転バ
ーM2 、縮小バーM3 、拡大バーM4 、及び実行バーM
5 がある。
【0029】次に、前述したコンピュータの制御系を説
明する。本制御系は、図4に示すように、入力画像メモ
リ10、画素プロセッサアレイ20、第1のバッファメ
モリ30、補間処理回路40、第2のバッファメモリ5
0、マスクデータ格納メモリ60、描画処理回路70、
及び出力画像メモリ80を備えている。なお、本制御系
では、入力画像メモリ10、画素プロセッサアレイ2
0、第1のバッファメモリ30、補間処理回路40、第
2のバッファメモリ50、描画処理回路70、及び出力
画像メモリ80の順にこれらがパイプライン状に接続さ
れている。なお、マスクデータ格納メモリ60は描画処
理回路70に接続されている。
【0030】次に、画素プロセッサアレイ20を詳細に
説明する。画素プロセッサアレイ20は、図5に示すよ
うに、画素プロセッサアレイコア16、コラム制御回路
17、ロー制御回路18、バスインターフェイス19、
及びCPU15を備えている。
【0031】画素プロセッサアレイコア16は、画素プ
ロセッサエレメント(以下、PPEという)をM×N
個、マトリックス状に配列して構成している。
【0032】コラム制御回路17は画素プロセッサアレ
イコア16の各コラムから選択的にM個のPPEとデー
タのやり取りを行なう。ロー制御回路18は画素プロセ
ッサアレイコア16の各ローから選択的にN個のPPE
とデータのやり取りを行なう。バスインターフェイス1
9は、CPU15からの指示に従って、コラム制御回路
17あるいはロー制御回路18に格納されているデータ
を読み出したり、また書き込んだりするための回路であ
る。
【0033】次に、画素プロセッサアレイコア16を説
明する。画素プロセッサアレイコア16は、図6(b)
に示すように、PPE27をM×N個、マトリックス状
に配列して構成し、各PPE27は、図6(a)に示す
ように、上側のPPEへのインターフェイス(NC)2
1、右側のPPE27へのインターフェイス(WC)2
2、下側のPPEへのインターフェイス(SC)23、
左側のPPE27へのインターフェイス(EC)24、
各コラムに対して1本設けらる共通バス25、各ローに
対して1本設けられる共通バス26を備えている。
【0034】コラム共通バス25はコラム制御回路17
に接続される。また、ロー共通バス26はロー制御回路
18に接続される。
【0035】上側のPPEへのインターフェイス(N
C)21、右側のPPE27へのインターフェイス(W
C)22、下側のPPEへのインターフェイス(SC)
23、左側のPPE27へのインターフェイス(EC)
24は、それぞれ、p本の制御線とq本のデータ線から
なる。また、コラム共通バス(CCB)25およびロー
共通バス(RCB)26は、それぞれ、r本の制御線と
s本のデータ線からなる。
【0036】PPE27を更に説明する。PPE27
は、図7に示されるように、メモリ回路47、レジスタ
ファイル48、ALU49、命令デコード/実行回路5
5、フラグ回路51、入出力制御回路52を備えてい
る。命令デコード/実行回路55は、メモリ回路47中
に蓄えられた命令をフェッチして、デコードし、実行す
る。また、メモリ回路47に蓄えられたデータはレジス
タファイル48に読み出され、ALU49で処理され
る。ALU49での処理の結果は、フラグ回路51に反
映され、命令デコード/実行回路55に入力されて、条
件判断に用いられる。また、命令デコード/実行回路5
5は、入出力制御回路52を介してデータ転送を制御す
る。入出力制御回路52は、上下左右のPPEとのイン
ターフェイス信号(NC,WC,SC,EC)やコラム
共通バス(CCB)およびロー共通バス(RCB)を介
したデータ転送を制御する。
【0037】次に、本形態の作用を説明する。本形態で
は、図1〜図3に示すように、Win1に表示された画
像100を回転、縮小して、Win2に合成する場合を
例にとり説明する。なお、縮小に代えて、拡大してもよ
い。
【0038】図示しないマウスをクリックした状態でカ
ーソルCを移動させてWin1で画像100を抽出す
る。次に、カーソルCで移動バーM1 を選択してクリッ
クした後、画像100をWin2にコピーする。この場
合、図2に示すように、Win2では画像100の輪郭
形状100Cが表示される。
【0039】次に、カーソルCで回転バーM2 を選択し
てクリックした後、カーソルCにより輪郭形状100C
を回転させることにより、回転角度を指定する。これに
より、図3に示すように、Win2には、指定された角
度だけ回転された輪郭形状100CRが表示される。な
お、回転角度は、回転の基準となる基準線(X軸方向の
線)に対応して定まる。図3では、回転角度としてθ
(本形態では、0度≦θ≦45度)が指定されている。
【0040】次に、カーソルCで縮小バーM2 を選択し
てクリックすると共に図示しないキーボードにより縮小
倍率を入力する。これにより、図1に示すように、Wi
n2には、指定された縮小倍率だけ縮小された輪郭形状
120Fが表示される。
【0041】そして、以上のように処理を指定した後、
カーソルCで実行バーM5 を選択してクリックすると、
一連の処理が実行される。
【0042】ここで、入力画像メモリ10にはWin1
に表示された画像(画像100を含む)を構成する画素
のデータが記憶されている。画素プロセッサアレイ20
によって、入力画像メモリ10に記憶されている画素の
データのうち、図1〜図3及び図8(a)に示すよう
に、画像100を囲む最小の矩形領域130に対応する
画素のデータが読み出される。
【0043】次に、最小の矩形領域130を説明する。
図1に示すWin2内の輪郭形状120F内の画素座標
(xi ,yi )は、Win2内の画像100における画
素座標(Xi ,Yi )を用いると、アフィン変換式
(1)により関係付けられる。
【0044】
【数1】
【0045】なお、a、b、n、c、d、e、fは、画
素座標(Xi ,Yi )を画素座標(xi ,yi )に変換
するための値である。
【0046】一方、(1)式を逆変換すると、画素座標
(Xi ,Yi )は、画素座標(xi,yi )を用いる
と、(2)式により与えられる。
【0047】
【数2】
【0048】このように、Win1内の画像100の画
素座標が求められるので、画像100を囲む最小の矩形
領域130の境界が求められる。
【0049】このように、画素プロセッサアレイ20
は、入力画像メモリ10から最小の矩形領域130の画
素のデータを読み出すと、矩形領域130に対応する画
像を、後述するように、高速に回転処理する。これによ
り、回転処理された矩形領域130に対応する画像の画
素データが第1のバッファメモリ30に書き込まれる。
【0050】第1のバッファメモリ30に書き込まれた
画素のデータは、補間処理回路40によって、読み出さ
れた後、指定された縮小倍率だけ縮小されて、第2のバ
ッファメモリ5に書き込まれる。なお、第2のバッファ
メモリ5に書き込まれた画素のデータは、図8(b)に
符号140により示されている。
【0051】描画処理回路70は、回転縮小された画素
データ140と、図1に示すWin2の輪郭形状120
Fに対応するマスクデータ150(図7(c)参照)
と、をAND処理した結果を出力画像メモリ80に書き
込む。
【0052】なお、マスクデータ150は、前述した実
行バーM5 が選択されてクリックされたときに決定さ
れ、輪郭形状120Fの部分が1で構成され、他の部分
は0で構成されている。よって、画素データ140と、
マスクデータ150と、をAND処理すると、画像デー
タ140の内、輪郭形状120Fに対応する部分の画素
データ145のみが出力画像メモリ80に書き込まれ
る。
【0053】以上により、本発明においてアフィン変換
は、入力画像メモリと出力画像メモリに対して、画素の
矩形領域に対するデータのアクセスはシーケンシャルと
なり、ワード単位で転送を行うので、処理が高速とな
る。
【0054】また、アフィン変換処理が画素プロセッサ
アレイ、補間処理回路、描画処理回路の異なるハードウ
ェア資源を用いてパイプライン的に処理可能である。
【0055】次に、画素プロセッサアレイ20の処理を
詳細に説明する。回転処理を始める前に最小の矩形領域
130に対応する画素のデータは、各PPEに格納され
る。なお、画素のデータは、CPU15により、コラム
制御回路17及びロー制御回路18が制御されて、各P
PEに格納される。
【0056】このように画素データを格納すると、図8
(a)に示す矩形領域130の左側境界に位置する画素
のデータが、図6(b)の紙面右側に位置するPPEに
格納され、矩形領域130の右側の境界に位置する画素
のデータが図6(b)の紙面左側に位置するPPEに格
納される。よって、マトリックス状に配列されたPPE
には、図9(a)に示すように、図8(a)に示す矩形
領域130の画像と基準線と直交する線に対して反転し
た画像135の画素の順に該画素のデータが格納され
る。
【0057】そして、画素プロセッサアレイ20のCP
U15は、図9(a)に示すにように、回転処理の際、
基準線との成す角度が指定された角度θとなる直線l
(l1〜ln )を、該基準線の方向に位置する画素間隔
で、画像135を含むように複数想定し、想定した複数
の直線の各々毎に、該直線に対応する位置に位置する画
素のデータを各PPEから出力させる。
【0058】即ち、画像135の画像に対して、(1)
式で表されるアフィン変換の回転成分θを施したもの
が、図9(b)に示す画像170である。そして、上記
基準線との成す角度が指定された角度となる直線は、画
像170の第1のバッファメモリ30のラスタ方向(X
軸方向(矢印参照))になるように、すなわち、第1の
バッファメモリ30のワードおよびワード中のビットの
配列がシーケンシャルにアクセスできるように、画像1
35上で想定される。
【0059】ここで、各PPEにおいて、図10に示す
ように、上記直線ln (例えば、原点(0,0)から
(23,4))に対応する位置に位置する画素は、黒い
点で示される。なお、図10の格子がPPEに対応す
る。そして、前述したように設定した複数の直線を1つ
つづ選択し、該1つづつ選択した直線に対応する位置に
位置する画素のデータをPPEから出力させる。
【0060】次に、上記のようにPPEから画素のデー
タを出力させる方法を説明する。図10において、直線
n の傾きをΔyとすると、直線ln に対応する位置に
位置する画素(格子)を次のように決定する。即ち、初
期値として2Δy−1、2Δy、及び2Δy−2を用意
する。最初に、2Δy−1の符号に応じて2Δy及び2
Δy−2の何れか一方を選択して加算する。2Δy−1
が負であれば2Δyを2Δy−1に加算し、2Δy−1
が正であれば2Δy−2を2Δy−1に加算する。次か
らは、加算値に、該加算値の符号に応じて2Δy及び2
Δy−2の何れか一方を選択して加算することを繰り返
す。
【0061】ここで、このように加算する毎に、図10
のxが1増えることに対応させ、加算値が0より大きく
なる毎にyの値が1増えるようにすれば、直線ln に対
応する位置に位置する画素が決定される。
【0062】例えば、図10に示す例で、傾きをΔyを
1/6とする。最初は、直線ln の始点(0,0)が選
択される。
【0063】x=0のとき2Δy−1<0であるので、
次のx座標(x=1)に対応するyの値は、2Δy−1
+2Δy=4Δy−1<0であり、(1,0)が選択さ
れる。
【0064】x=1のとき4Δy−1<0であるので、
次のx座標(x=2)に対応するyの値は、4Δy−1
+2Δy=6Δy−1=0であり、(2,0)が選択さ
れる。
【0065】x=2のとき6Δy−1=0であるので、
次のx座標(x=3)に対応するyの値は、6Δy−1
+2Δy=8Δy−1>0であり、(3,1)が選択さ
れる。
【0066】x=3のとき8Δy−1>0であるので、
次のx座標(x=4)に対応するyの値は、8Δy−1
+2Δy−2=10Δy−3<0であり、(4,1)が
選択される。
【0067】以上を順に繰り返して、直線ln に対応す
る位置に位置する画素を選択する。以上を実行するた
め、各PPEは割り当てられた画素のデータと、傾きに
関する情報Δyを記憶し、CPU15は図11(図1
2)に示した制御ルーチンを実行し、各PPEは、図1
3に示した制御ルーチンを実行する。
【0068】即ち、CPU15は、図11のステップ2
00で、図9(a)に示す左側の境界(BD)上の点を
始点とした直線に位置する画素のデータの出力処理を実
行し、ステップ300で、図9(a)に示す下側の境界
(DC)上の点を始点とした直線に位置する画素のデー
タの出力処理を実行する。
【0069】次に、ステップ200の処理を図12を参
照して詳細に説明する。ステップ202で、図9(a)
に示す左側の境界(BD)上の点を始点とした直線を識
別する変数Cを0に初期化し、ステップ204で、変数
Cを1インクリメントとすることにより、1つの直線を
選択する。
【0070】ステップ206で、回転する領域の左側の
境界上の変数Cに対応する点(選択された直線上に対応
する位置に位置する点)を始点として選び、ステップ2
08で、選んだ始点に対応するPPEに残差ei として
初期値(2Δy−1)を出力する。
【0071】これにより、後述するように、選択された
直線に対応する位置に位置するPPEのみが出力フラグ
をオンになると共に、選択された直線に対応する位置に
位置するPPEの全てについて出力フラグがオンになっ
たとき終了信号を出力する。
【0072】このように終了信号を入力すると、ステッ
プ210が肯定判定となって、ステップ212で、画素
のデータの出力指示信号を各PPEに出力する。これに
より、フラグがオンになっているPPEのみが画素のデ
ータ(現在選択されている直線に対応する位置に位置す
る画素のデータ)を出力する。出力された画素のデータ
は、第1のバッファメモリ30に書き込まれる。なお、
ステップ214で、次の処理のため、各PPEのフラグ
をオフする指示信号を出力する。
【0073】ステップ216で、変数Cが、図9(a)
に示す左側の境界(BD)上の点を始点とした直線の総
数C0 以上か否かを判断する。変数Cが総数C0 より小
さければ、図9(a)に示す左側の境界(BD)上の点
を始点とした直線の全てについて前述したPPEの出力
フラグをONする処理していないので、ステップ204
に戻って、以上の処理(ステップ204〜216)を実
行する。
【0074】一方、変数Cが総数C0 以上であれば、図
9(a)に示す左側の境界(BD)上の点を始点とした
直線の全てについて前述したPPEの出力フラグをON
する処理したので、本ルーチンを終了する。
【0075】なお、ステップ300は、ステップ200
の図9(a)に示す左側の境界(BD)上の点を始点と
した直線を、図9(a)に示す下側の境界(DC)上の
点を始点とした直線に代えて実行するので、詳細な説明
は省略する。
【0076】次に、各PPEが実行する処理を説明す
る。図13のステップ252で、残差ei を入力したか
否かを判断し、残差ei を入力した場合には、ステップ
254で、残差ei を左隣から入力したか否かを判断す
る。
【0077】なお、前述したように始点として選ばれた
PPE(図10の座標(0.0))は、CPU15から
残差ei として初期値(2Δy−1)を入力するので、
この場合は、左隣から残差ei を入力したと判定する。
【0078】左隣から残差ei を入力した場合には、入
力した残差ei <0であるので、該PPEに対応する画
素は、現在選択されている直線に対応する位置に位置す
るので、ステップ256で、出力フラグをオンにする。
ステップ258で、残差eiに2Δyを加算したものを
新たな残差ei とし、ステップ260で、残差ei が0
より小さいか否かを判断する。
【0079】残差ei が0より小さい場合には、右隣を
選択するが、現画素が境界上の場合があるので、ステッ
プ264で、この画素が右の境界がどうかを判断する。
右の境界であれば、ステップ272で、終了信号を出力
して終了し、右の境界でなければ、ステップ266で、
右隣へ残差ei を出力して終了する。例えば、(0,
0)のPPEは、(1,0)のPPEに残差ei を出力
する。これにより、(1,0)のPPEも同様に処理を
実行して、(2,0)のPPEに残差ei を出力する。
【0080】ステップ260で、残差ei が0より小さ
いと判定されなかった場合、即ち、残差ei が0以上で
あれば、上隣を選択するが、現画素が境界上の場合があ
るので、ステップ268で、この画素が上の境界かどう
かを判断する。上側の境界であれば、ステップ272
で、終了信号を出力して終了し、上側の境界でなけれ
ば、ステップ270で、上隣へ残差ei を出力して終了
する。例えば、座標(2,0)のPPEは、(2,1)
に残差ei を出力する。なお、座標(2,1)のPPE
が本ルーチンを実行した場合には、ステップ254が否
定判定されてステップ262、264、を介して、ステ
ップ266で、座標(3,1)のPPEに残差ei を出
力する。
【0081】更に、ステップ254で、左隣のPPE2
7から入力したと判定されなかった場合、即ち、下隣の
PPE27から入力した場合(図10の座標(3.1)
等)には、ステップ262で、入力した残差ei から2
を減算して、ステップ264に進む。
【0082】以上説明したように、各PPEは他のPP
Eに残差ei の入出力により左隣から残差ei を入力し
て出力フラグをオンすることにより、現在選択されてい
る直線に対応してグループにまとまり、画素のデータの
出力指示信号入力した場合に、まとまったグループ内の
PPEが画素のデータ(現在選択されている直線に対応
する位置に位置する画素のデータ)を出力し、個々のP
PEにおいて別々にアフィン変換の演算を行なわないの
で、PPEを小規模に実現でき、ひいては大規模な画素
プロセッサアレイの構築が容易であるという効果があ
る。
【0083】更に、本形態の画素プロセッサアレイはパ
イプライン処理に適しているという効果がある。
【0084】なお、以上説明した実施の形態では、指定
された角度θが、0度≦θ≦45度が指定された場合を
例にとり説明したが、本発明はこれに限定されるもので
ない。
【0085】ここで、図14に示されるように、x軸方
向に対する回転成分を0度≦θ≦180度に限って考え
ることができる。図10から理解されるように、回転角
度θと1つのラスタ成分をなす点の集合に関して、以下
のことが言える。
【0086】(i)0度≦θ≦45度および135度≦
θ≦180度では、1つのラスタ成分をなす点の集合は
x座標に対して1対1に対応づけられる。
【0087】(ii)45度≦θ≦135度では、1つ
のラスタ成分をなす点の集合はy座標に対して1対1に
対応づけられる。
【0088】この場合分けにより画素プロセッサアレイ
20を用いてラスタの回転成分を読み出すことを考える
と、(i)の場合には各x座標に対して並列に、すなわ
ちy軸方向に読み出すのが効率的であり、(ii)の場
合には各y座標に対して並列に、すなわちx軸方向に読
み出すのが効率的である。この理由は、上記の様に読み
出せば、処理の並列性がより高くなるからである。
【0089】従って、画素プロセッサアレイコア16か
らの読み出しは、(i)の場合ロー制御回路18を通じ
て読み出し、(ii)の場合コラム制御回路17を通じ
て読み出すようにする。
【0090】更に、コラム制御回路17かあるいはロー
制御回路18のどちらか一方がない構成としてしてもよ
い。コラム制御回路17がない場合の構成では、対応す
るコラム共通バス(CCB)25も不必要である。この
場合にはアフィン変換の回転成分θを0度≦θ≦180
度に限って考えたとき、上と同様の議論から、 (i)0度≦θ≦45度および135度≦θ≦180度
では、1つのラスタ成分をなす点の集合はx座標に対し
て1対1に対応づけられ、y座標に対して1対多に対応
づけられる。そこでそのまま処理して、ロー共通バス1
8から出力する。
【0091】(ii)45度≦θ≦135度では、1つ
のラスタ成分をなす点の集合はy座標に対して1対1に
対応づけられ、x座標に対して1対多に対応づけられ
る。そこで、入力画像をあらかじめ90度回転して、見
かけ上画素プロセッサアレイ2での回転処理が0度≦θ
≦45度および135度≦θ≦180度になるようにし
て画素プロセッサアレイ2で処理を行ない、ロー共通バ
ス18から出力する。その後に、回転した画像を第1の
バッファメモリ3上でさらに−90度回転して、望みの
回転処理を得る。
【0092】なお、ロー制御回路18がない場合も同様
に行えばよい。ところで、入力画像メモリ、第1のバッ
ファメモリ、第2のバッファメモリ、マスクメモリ、出
力画像メモリは、すべてあるいは一部、1つの画像メモ
リの異なるアドレス領域を空間的に分割して割当てるこ
とにより、共有するようにしてもよい。
【0093】また、1つの画像メモリのお互いに重複す
るアドレス領域を次分割で用いることによって、共有す
るようにしてもよい。即ち、画素プロセッサアレイコア
に記憶可能な画像より矩形領域の画像が大きい場合に
は、矩形領域の画像を複数のブロックに分割して、ブロ
ック毎に順に画素プロセッサアレイコアに記憶するよう
にしてもよい。
【0094】
【発明の効果】以上説明したように本発明は、基準線と
の成す角度が指定された角度となる直線を画素ラインの
画素間隔で画像の全領域を覆うように複数想定し、想定
した複数の直線の各々に対応する位置に位置する画素の
データが出力されるように複数の出力手段を制御するこ
とにより画像の回転処理を行うことから、アドレスを計
算してランダムに画素のデータを読み出さなくとも画像
を回転処理することができ、画像を高速に回転処理する
ことができる、という効果を有する。
【図面の簡単な説明】
【図1】表示装置の画面を示す図である。
【図2】表示装置の画面を示す図である。
【図3】表示装置の画面を示す図である。
【図4】本形態のブロック図である。
【図5】画素プロセッサアレイのブロック図である。
【図6】画素プロセッサアレイコアのブロック図であ
る。
【図7】PPEのブロック図である。
【図8】画像の回転、縮小、合成の流れを示す説明図で
ある。
【図9】画素プロセッサアレイの各PPEに記憶された
画素のデータで構成された画像及び第1のバッファメモ
リに記憶された画素のデータで構成された画像を示す図
である。
【図10】画素プロセッサアレイの各PPEを選択する
手順を説明する説明図である。
【図11】画素プロセッサアレイが実行するメインルー
チンを示したフローチャートである。
【図12】メインルーチンのステップ200のサブルー
チンを示すフローチャートである。
【図13】各PPEが実行する制御ルーチンを示すフロ
ーチャートである。
【図14】画素プロセッサアレイに記憶する画像を回転
する角度を示した図である。
【符号の説明】
20 画素プロセッサアレイ 47 メモリ回路 50 命令デコード実行回路

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 画像を回転させるための基準となる基準
    線に対して指定された角度だけ該画像を回転する画像処
    理回路であって、 前記画像の複数の画素ラインの各々の複数の画素の各々
    に対応してマトリックス状に設けられ、かつ、対応する
    画素のデータを記憶する複数の記憶手段と、 前記複数の記憶手段の各々に対応して設けられ、かつ、
    対応する記憶手段に記憶された画素のデータを出力する
    複数の出力手段と、 前記基準線との成す角度が前記指定された角度となる直
    線を前記画素ラインの画素間隔で前記画像の全領域を覆
    うように複数想定し、想定した複数の直線の各々に対応
    する位置に位置する画素のデータが出力されるように前
    記複数の出力手段を制御する制御手段と、 を備えた画像処理回路。
  2. 【請求項2】 前記複数の出力手段の各々は、 前記想定された直線に対応して定められた出力手段が前
    記制御手段により該直線に対応してグループにまとまる
    ためのデータを入力することを開始条件として、他の出
    力手段との該グループにまとまるためのデータの入出力
    により該グループにまとまり、 前記制御手段は、 前記想定された直線に対応して定められた出力手段に前
    記データを出力することにより、前記複数の出力手段を
    前記想定した直線に対応してグループにまとめ、前記直
    線に対応する位置に位置する画素のデータが該グループ
    にまとまった出力手段から出力されるように制御する、 ことを特徴とする請求項1記載の画像処理回路。
  3. 【請求項3】 前記複数の出力手段は、前記複数の記憶
    手段に対応してマトリックス状に配置され、 前記制御手段は、前記マトリックス状に配置された複数
    の出力手段を前記指定された角度に応じて各行又は各列
    毎に一括して制御する、 ことを特徴とする請求項1又は請求項2記載の画像処理
    回路。
  4. 【請求項4】 前記複数の出力手段は、前記複数の記憶
    手段に対応してマトリックス状に配置され、前記複数の
    記憶手段は、前記指定された角度に応じて予め90°回
    転した前記画像を構成する複数の画素のデータを記憶
    し、 前記制御手段は、前記マトリックス状に配置された複数
    の出力手段を各行毎に一括して制御する、 ことを特徴とする請求項1又は請求項2記載の画像処理
    回路。
  5. 【請求項5】 前記画像は、基準画像に対して指定され
    た領域を囲む最小の矩形領域又は該矩形領域を複数のブ
    ロックに分割して定まることを特徴とする請求項1乃至
    請求項4の何れか1項に記載の画像処理回路。
  6. 【請求項6】 前記出力手段により出力されたデータ及
    び他の画像を構成する画素のデータに基づいて、前記画
    像を前記他の画像に合成する合成手段を更に備えたこと
    を特徴とする請求項1ないし請求項5の何れか1項に記
    載の画像処理回路。
  7. 【請求項7】 前記合成手段により前記画像が前記他の
    画像に合成される前に、前記出力手段により出力された
    データに基づいて前記画像を拡大又は縮小する拡大縮小
    手段を更に備えたことを特徴とする請求項6記載の画像
    処理回路。
JP8216486A 1996-08-16 1996-08-16 画像処理回路 Pending JPH1063830A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8216486A JPH1063830A (ja) 1996-08-16 1996-08-16 画像処理回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8216486A JPH1063830A (ja) 1996-08-16 1996-08-16 画像処理回路

Publications (1)

Publication Number Publication Date
JPH1063830A true JPH1063830A (ja) 1998-03-06

Family

ID=16689193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8216486A Pending JPH1063830A (ja) 1996-08-16 1996-08-16 画像処理回路

Country Status (1)

Country Link
JP (1) JPH1063830A (ja)

Similar Documents

Publication Publication Date Title
Gribbon et al. A novel approach to real-time bilinear interpolation
JPS6158083A (ja) 高速メモリ−・システム、デ−タ処理方法及びメモリ−・セグメント
JP4154336B2 (ja) ラスター画像のフレームを描画する方法及び装置
JP2005077522A (ja) 画像処理装置および画像処理方法
JPH1063830A (ja) 画像処理回路
JPH0481231B2 (ja)
JPH10143426A (ja) メモリ回路に格納されたピクセルデータを転送する方法および装置
JPH1063829A (ja) 画像処理回路
JPH07110859A (ja) 画像処理方法およびその装置
JP3327961B2 (ja) 画像処理装置
US5838297A (en) Method for color image scaling and other geometrical transformations
JP2887122B2 (ja) 画像データ処理装置及びそれを用いたシステム
JP2691559B2 (ja) 画素密度変換装置及びその方法
JP2000298729A (ja) 二次元画像生成装置
KR0140283B1 (ko) 화상편집장치의 화상 회전방법
JP2783917B2 (ja) 画像アドレス発生装置及び画像アドレス発生方法
JP3517982B2 (ja) 図形描画装置
JPH05242235A (ja) 画像処理装置
CN118229511A (zh) 一种适用DSP的小图像remap优化方法、系统、设备及介质
JP2536183B2 (ja) 画像処理方法および装置
JPH05189553A (ja) 画像処理方式
JPH08185516A (ja) 画像制御方法、及びその装置
JPH01255978A (ja) 逐次型局所並列処理装置
JPH0228891A (ja) 図形回転処理装置
JPS60189579A (ja) 画像デ−タ処理装置