画像処理装置
【課題】配線数の増大を抑え、回路規模や信号伝達遅延時間の増加を防止して、画像データを90度単位で回転する画像処理装置を提供する。
【解決手段】連続する所定数の画素データ単位で画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリ1〜4と、画像データの回転を指示する指示情報を生成する動作モード制御部7と、指示情報に応じて、複数のメモリ1〜4のそれぞれから画素データを読み出すアドレスを複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出すコントローラ部5と、複数のメモリ1〜4から読み出した複数の画素データを指示情報に応じて並び替えて出力するセレクタ部6とを有する。
【解決手段】連続する所定数の画素データ単位で画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリ1〜4と、画像データの回転を指示する指示情報を生成する動作モード制御部7と、指示情報に応じて、複数のメモリ1〜4のそれぞれから画素データを読み出すアドレスを複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出すコントローラ部5と、複数のメモリ1〜4から読み出した複数の画素データを指示情報に応じて並び替えて出力するセレクタ部6とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを90度単位で回転する画像処理装置に関する。
【背景技術】
【0002】
ディスプレイやプリンタ等のデバイスに画像データを送信して表示或いは出力させる画像処理装置では、そのデバイスが画像データを要求する速度を上回るデータ処理能力を備える必要がある。例えばプリンタの場合、画像の印刷処理をページ単位で行うため、一度印刷動作を開始すると、そのページ全体の印刷が終わるまで動作を停止できない。従って、高速印刷を実現するためには、印刷時の画像処理にも高速性が要求される。
【0003】
一方、半導体技術の進化において、動作クロックの周波数を高めることのみによる性能向上は頭打ちとなり、並列処理等に代表される処理構成の工夫による性能向上が求められてきている。ここで、例えば90度、180度、270度というように90度単位で画像を回転する画像回転処理、及び、画像を左右反転させる画像反転処理を考える。これら画像回転処理と画像反転処理は、画素の並びを変更するものであり、以下、これらをまとめて単に、画像回転処理と記載する。
【0004】
画像回転処理を実現する構成として、メモリの異なるアドレスに1画素ずつ格納した画像データを、その画像データを格納したときと異なるアドレス順に1画素ずつ読み出すものがある(特許文献1参照)。このような画像回転処理を2つの処理の並列処理で高速化する場合を考える。これには例えば、メモリの各アドレスに2画素ずつ格納し、読み出すときに2画素ずつ読み出すことにより、1画素ずつの処理と比較して2倍の処理速度を実現できる。この場合のメモリの構成としては、1ワードに2画素を格納できる構成にし、また、同時に2つの異なるアドレスから読み出しが可能なように2ポート同時読み出しができる構成にすることが考えられる。これにより、画像データを2画素ずつ格納すること、及び異なるアドレスに格納されている2画素を同時に読み出すことが可能となる。ここで、異なるアドレスに格納されている2画素を同時に読み出すことは、90度や270度回転させた画像を生成するときに使用される。尚、2ポート同時読み出しができるメモリは、2つの独立したメモリの組み合わせで実現してもよい。また更に、並列数を多くすることで、より高速な処理を実現することも可能である。
【0005】
例えば、画像回転処理を4つの処理の並列処理で高速化することを考える。この場合は、メモリの各アドレスに4画素ずつ格納し、書き込み時と異なる順序で4画素ずつ読み出すことで実現できる。この場合、1画素ずつの処理と比較して4倍の処理速度を実現できる。このときのメモリの構成としては、1ワードに4画素を格納でき、また、同時に4つの異なるアドレスから読み出しが可能なように4ポート同時読み出しができる構成にする。この構成により、画像データを4画素ずつ格納すること、及び、異なるアドレスに格納されている4画素を同時に読み出すことが可能となる。同様に並列数を、8や16というように多くすることで、より高速な処理を実現できる。このように、1ワードに複数画素を格納できるメモリ構成で、複数画素の並列処理を行う技術を第1の従来技術とする。
【0006】
また、上述した画素の並列処理による画像回転処理とは別に、画素よりも大きなブロック単位での処理により高速な画像回転処理を実現する技術がある。例えば、メモリへの格納を4画素×4画素のようなブロック単位で行い、ブロック単位で読み出した画素データを同じ構成の別のメモリに格納することで、より高速な画像回転処理を実現する技術が提案されている(特許文献2参照)。このようにブロック単位での転送で画像回転処理を行う技術を第2の従来技術とする。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−84414号公報
【特許文献2】特開2005−22387号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した第1の従来技術による画像回転処理では、複数のメモリの出力データをセレクタで選択する構成が必要となり、並列数を増やすと、セレクタの入力に多くのビット数の信号が接続されるため基板上の配線が複雑になるという問題がある。これはセレクタの入力にメモリの全てのデータ信号線が接続され、この信号線の数が並行して処理する画素数の2乗に比例して増加するためである。ここで信号線の数は、メモリの出力ポート数とメモリの1ポートあたりのビット数を掛けたものとなるが、前者はその画素数と同じで、後者は1画素のビット数に、その画素数を掛けたものになり(画素数×1画素のビット数×並行して処理する画素数)となる。このような配線は、LSI設計において回路面積や回路規模、信号伝達遅延時間の増加を招くもので、それらはLSIのコスト増加、消費電力増加及び動作速度低下などの大きな問題の原因となる。
【0009】
また上記第2の従来技術は、メモリからブロック単位で読み出した画素データを、プリンタ等のデバイスが要求する転送順序に並べ替えるためのセレクタが必要となり、セレクタの入力への配線が複雑になる。これはセレクタの入力にはメモリの全てのデータ信号線が接続され、この信号線の数が主走査方向の画素数とブロックの縦画素数の積に比例したものとなるためである。また、セレクタによる並べ替えが必要となる理由は、プリンタ等のデバイスは、前述のようなブロック単位ではなく、ページ画像を構成する全ての画素データをライン毎に1画素或いは数画素ずつ順番に転送することを要求するためである。
【0010】
本発明の目的は、上記従来技術の問題点を解決することにある。
【0011】
本願発明の特徴は、並列に処理する画素の数を増やすことによる信号の配線数の増大を少なく抑えることにより、回路面積や回路規模、信号伝達遅延時間の増加を防止できる画像処理装置を提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
入力した画像データを90度単位で回転する画像処理装置であって、
連続する所定数の画素データ単位で前記画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリと、
前記画像データの回転を指示する指示情報を生成する生成手段と、
前記指示情報に応じて、前記複数のメモリのそれぞれから画素データを読み出すアドレスを前記複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出す読み出し手段と、
前記読み出し手段により前記複数のメモリから読み出した複数の画素データを前記指示情報に応じて並び替えて出力する出力手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、並列に処理する画素の数を増やすことによる信号の配線数の増大を少なく抑えることにより、回路面積や回路規模、信号伝達遅延時間の増加を防止できるという効果がある。
【図面の簡単な説明】
【0014】
【図1】本実施形態に係る画像回転処理装置の全体の構成を示すブロック図。
【図2】画像回転処理装置が扱う画像データと、画像データの転送順を示す模式図。
【図3】入力データバスを転送する画像データと90度回転したを画像データを転送するタイミングチャートと、90度画像回転処理した画像データを示す模式図。
【図4】メモリ1〜4の構成と信号接続、及びセレクタ部の構成と信号接続を説明する模式図。
【図5】画像データをメモリ1〜4に分割して格納する画素分割と、入力データバスから入力された画素データをメモリに書き込むためのセレクタの模式図。
【図6】セレクタの動作シーケンスを説明する図。
【図7】メモリに画素データを書き込むときのタイミングチャート。
【図8】メモリに画素データを書き込むときのメモリバスの制御シーケンス図。
【図9】メモリ1〜4に格納された画素データを説明する図。
【図10】0度回転の動作モードでメモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図11】90度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図12】180度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図13】270度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図14】90度回転の動作モードで、メモリバスを介してメモリから画素データを読み出すときのタイミングチャート。
【図15】0度回転と90度回転の動作モードで、セレクタ部が動作するシーケンスを説明する図。
【図16】180度回転と270度回転の動作モードで、セレクタ部が動作するシーケンスを説明する図。
【発明を実施するための形態】
【0015】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態に係る画像処理装置(画像回転処理装置)は、入力した画像データを90度単位で回転し、1サイクルあたり4画素の画素データ入力、回転処理、及び、画素データの出力を行う。
【0016】
図1は、本実施形態に係る画像処理装置の一例である画像回転処理装置の構成を示すブロック図である。
【0017】
メモリ1〜4のそれぞれは、各対応するメモリバス11〜14を介してコントローラ部5に接続されたランダムアクセスメモリであり、コントローラ部5の制御により画素データの書き込み及び読み出しをすることができる。このようにメモリ1〜4をランダムアクセスメモリとすることにより、画素データの書き込み順序によらず任意の順序での画素データの読み出しが行える。コントローラ部5のセレクタ16は、入力データバス8を介して入力される96ビットのデータを、24ビットずつメモリ1〜4のそれぞれに振り分ける。コントローラ部5は更に、入力データバス8、セレクタ部6、動作モード制御部7に接続されている。コントローラ部5は、入力データバス8から転送される画素データを受信して、メモリ1〜4に書き込むとともに、メモリ1〜4から画素データを読み出してセレクタ部6に転送する。コントローラ部5は、0度、90度、180度、270度の回転を行う4つの動作モードを持ち、動作モード制御部7から入力される動作モード信号(指示情報)により動作モードを切り換える。セレクタ部6は、コントローラ部5、動作モード制御部7、及び出力データバス9に接続されている。セレクタ部6は、0度、90度、180度、270度の回転の4つの動作モードを持ち、動作モード制御部7から入力される動作モード信号により動作モードを切り換える。セレクタ部6は、コントローラ部5から転送される画素データを受信して、その受信した画素データを動作モードに応じて選別と並べ替えを行って出力データバス9に出力する。動作モード制御部7は、制御バス10、コントローラ部5及びセレクタ部6と接続されている。動作モード制御部7は、0度、90度、180度、270度の回転の4つの動作モードを指示する指示情報を出力する。動作モード制御部7は、ユーザの指示に基づいて制御バス10から転送される動作モード切り換え信号により動作モード信号を生成し、コントローラ部5及びセレクタ部6に対して、その指示された動作モードに対応する動作モード信号(指示情報)を送信する。
【0018】
入力データバス(入力バス)8は、クロック信号に同期して1サイクルあたり4画素の画素データを転送できるデータバスである。出力データバス(出力バス)9は、クロック信号に同期して1サイクルあたり4画素の画素データを転送できるデータバスである。いずれも本実施形態では、96ビット(4画素分)のバス幅を有している。尚、ここで同時に入力及び出力できる画素データは、説明のために4画素としているが、本実施形態は4画素に限定されるものではなく、より大きな画素数であってもよい。また同時に入力と出力できる画素データ数を同じ画素数にしているが異なっていてもよく、その場合は入力又は出力の画素数の多い方のデータバスが、画素数の少ない方のデータ転送の速度に合うように必要に応じて停止することになる。従って、同時に入力、及び、出力できる画素データ数が同じであると、2つのデータバスは速度調節のためにデータ転送を停止する必要がない。制御バス10は、動作モード切り換え信号を転送するバスである。メモリバス11〜14のそれぞれは、クロック信号に同期して、各対応するメモリへの画素データ書き込みや画素データ読み出しを行うことができるデータバスである。このような構成を備える画像回転処理装置15は、制御バス10を介して外部の図示しない制御装置が送信する動作モード切り換え信号を受信して、内部の動作モードを0度、90度、180度、270度の回転の中からいずれかに切り換える。また画像回転処理装置15は、入力データバス8を介して外部の図示しない画像送信装置が送信する16×16画素からなる画像データを受信して、動作モードに応じた角度の画像回転処理を施し、その結果を出力データバス9に出力する。
【0019】
図2(A)は、本実施形態に係る画像回転処理装置が扱う画像データを表す模式図である。
【0020】
図における小さな四角は1つの画素データを表しており、この画像データは、横方向の16画素、縦方向の16画素からなる16×16の画素データで構成されている。尚、ここで扱う画像データのサイズは、説明のために16×16画素としているが、本発明はこのサイズの画像データに限定されるものではなく、縦方向と横方向の画素数が同じであるあらゆるサイズの画像データに適用可能である。各画素データは24ビットで構成される多値データで、図の「00」から「FF」は画素番号を16進数で示したものである。
【0021】
図2(B)は、図2(A)に示す画像データに回転処理を行って出力データバスに出力する順番を示した模式図である。
【0022】
ここでは入力データバス8と出力データバス9は、1サイクルあたり4画素の画素データを転送できるため4画素毎に番号が振られている。ここでは、画像データの副走査方向の位置が同じである複数の連続する所定数(ここでは4)の画素データ単位(画素群)で出力する。尚、ここでは、画像データの副走査方向の位置が同じである連続する複数の画素データの単位で画素群に分割しているが本発明はこれに限定されるものでない。例えば、画素データの主走査方向の位置が同じである複数の連続する所定数の画素データの単位であっても良いことはもちろんである。
【0023】
図3(A)は、図2(A)の画像データが入力データバス8を転送されるときのタイミングチャートである。
【0024】
ここで入力データバス8は96ビット幅を有しており、1サイクルで4画素データが同時に転送され、データ信号in_data[95:0]の上位ビットから並べて転送される。尚、図中のデータ信号に記載した数値は、画素データの値ではなく、図2(A)に示した画素番号を示す。画素データが転送されるサイクルでは、データ信号が有効であることを示すバリッド信号in_validが「1」となる。
【0025】
図3(B)は、図2(A)の画像データを反時計回りに90度画像回転処理した画像データを示す模式図である。尚、以降の説明では、回転角度を角度の数値のみで、0度、90度、180度、270度と表記し、全て反時計回りを表すものとする。また本実施形態における画像回転処理装置が対応する回転角度は、0度、90度、180度、270度の4種類であるが、更に画像回転処理装置では、これらそれぞれに鏡像化処理を組み合わせた8種類の画像回転処理が可能である。以下本実施形態では、0度、90度、180度、270度の動作モードについて説明し、また動作シーケンスの詳細は、90度の動作モードの場合で説明する。
【0026】
図3(C)は、90度回転した画像データを出力データバス9に転送するときのタイミングチャートである。ここでは図2(B)に示す順序で画素データが出力される。ここでもデータ信号に記載した値は、画素データではなく、画素番号を示している。
【0027】
次に、本実施形態に係る画像回転処理装置の構成を説明する。
【0028】
図4(A)は、画像回転処理装置のメモリ1、メモリ2、メモリ3、及び、メモリ4の構成と信号接続を説明する模式図である。
【0029】
本実施形態に係るメモリ1、メモリ2、及び、メモリ3は、1ワードに1画素の画素データを格納するために24ビット幅を持つメモリデバイスで構成されている。そしてメモリ1〜4のそれぞれは独立したメモリデバイスであり、各メモリデバイスに1ワードずつ、合計4ワードを一度に書き込んだり、或いは読み出すことができる。またこれらメモリ1〜4は、クロック信号clk(_clk)に同期して動作し、チップセレクト信号cs(_cs)が「1」であるサイクルで画素データの書き込み、或いは読み出し動作を実行する。またメモリ1〜4は、ライトイネーブル信号we(_we)が「1」であるサイクルで画素データの書き込み動作を、また「0」であるサイクルで画素データの読み出し動作を実行する。またメモリ1〜4は、アドレス信号addr(_addr)[5:0]で指定したアドレスのワードに対して画素データの書き込み、或いは、読み出し動作が実行される。尚、図の信号の表記で、各信号、データに付された(m0, m1, m2, m3)は、各メモリの信号やデータを示している。_wdataは、各メモリへ書き込むデータ、_rdata各メモリから読み出したデータを示す。
【0030】
図4(B)は、本実施形態に係るセレクタ部6の構成と信号接続を説明する模式図である。
【0031】
このセレクタ部6は、メモリ1、メモリ2、メモリ3、及び、メモリ4から読み出した4画素分の画素データを並べ替えて出力する。セレクタ部6は、同時に処理する数に比例した画素データを入力すればよいため、高速化のために同時に処理する数を増やしても、集中する配線の量がが非線形に大きくなることがない。このセレクタ部6は、各メモリから出力される画素データ(_rdata)を入力している。またコントローラ部5から出力されるサイクル番号信号cycle_count[5:0]、及び、動作モード制御部7から動作モード信号mode[1:0]を入力している。この動作モード信号は、0度、90度、180度、及び、270度の回転を示しているが、それぞれ、2ビットの動作モード信号mode[1:0]の値、「00」(0)「10」(1)「01」(2)「11」(3)に対応している。このセレクタ部6は、それぞれが24ビットの出力ポート(out_0〜out_3)を有しており、セレクタ部6から出力されるデータはout_dataで示されている。
【0032】
図5(A)は、図2(A)の画像データをメモリ1〜4に分割して格納するときの画素分割を説明する模式図である。図において、斜線を付した画素はメモリ1に、格子地の画素はメモリ2に、網点の画素はメモリ3に、白地の画素はメモリ4にそれぞれ格納される。
【0033】
画像回転処理装置15は、1サイクルあたり4画素の画像回転処理を行うので、0度回転、及び、180度回転の動作モードのときに主走査方向(横方向)に並んだ4画素を同時に読み出す必要がある。そのため、主走査方向に並んだ4画素のそれぞれを異なるメモリに記憶するように分割している。また画像回転処理装置15は、1サイクルあたり4画素の画像回転処理を行うので、90度回転、及び、270度回転の動作モードのときに副走査方向に並んだ4画素を同時に読み出す必要がある。そのため、副走査方向に並んだ4画素のそれぞれを異なるメモリに記憶するように分割している。尚、同時に読み出せるように構成する目的だけであれば、メモリを16個用意して、並んだ画素データを異なるメモリに記憶してもいいが、ここでは4画素おきに同じメモリに繰り返し記憶することで、メモリの個数を必要最小限の4個に抑えている。これにより、制御回路等の回路規模や消費電力のコストを小さくしている。
【0034】
図5(B)は、入力データバス8から入力された画素データをメモリ1〜4に書き込むときの信号接続を行うセレクタ16の模式図である。
【0035】
入力された4画素分の96ビットの画素データ(in_data)は、コントローラ部5の制御によって並べ替えられて、それぞれ24ビットずつメモリ1〜4のそれぞれに転送される。
【0036】
図6は、図5(B)に示したセレクタ16の動作シーケンスを説明する図である。
【0037】
図において、例えば0〜3サイクルは、図5(A)の1行目の画素データをメモリ1〜4に書き込むタイミングを示し、4〜7サイクルは、図5(A)の2行目の画素データをメモリ1〜4に書き込むタイミングを示す。以下同様にして、1行分の画素データが4サイクルでメモリ1〜4に書き込まれるため、図5(A)に示す画素データは合計64サイクルでメモリ1〜4に記憶される。
【0038】
図7は、メモリバス11〜14を介してメモリ1〜4に画素データを書き込むときのタイミングチャートである。尚、図において、クロック信号(_clk)、チップセレクト信号(_cs)、ライトイネーブル信号(_we)、アドレス信号(_addr)、ライトデータ信号(_wdata)はコントローラ部5が出力する。尚、ライトデータ信号、及び、リードデータ信号に記載した値は、画素データ値ではなく、画素番号である。またアドレス信号に記載した値はアドレス信号の値である。このようにしてメモリ1〜4のぞれぞれには、図5(A)に示すように各画素データが記憶される。
【0039】
図8は、メモリ1〜4に画素データを書き込むときのメモリバス11〜14の制御シーケンスを説明する図である。このタイミングは図7のタイミングチャートを参照すると、より容易に理解できるであろう。
【0040】
図9は、こうしてメモリ1〜4に格納された画素データを説明する図である。
【0041】
図中、data欄に記載した値は、図2(A)の画素番号を示し、addr欄に記載した値は、各メモリの実際のアドレスを示す。
【0042】
図10は、0度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0043】
この場合は、4つのメモリに画素分割して格納されている画素データをそのまま読み出すため、コントローラ部5は、アドレスを「00」から「3F」順次各メモリに出力して、そこに格納されている画素データを読み出してセレクタ部6に転送する。
【0044】
図11は、90度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0045】
90度回転した画素データは図3(B)に示されている。図3(B)において、サイクル0では、画素(0F,1F,2F,3F)が読み出される。図9を参照すると、これら画素は、順番にメモリ4のアドレス(03)、メモリ1のアドレス(07),メモリ2のアドレス(0B)、そしてメモリ3のアドレス(0F)に格納されている。従って図11で、サイクル0での各メモリの読み出しアドレスが決定される。以下同様にして、各サイクルにおける各メモリの読み出しアドレスが決定される。これが図11に示されている。コントローラ部5は、これに従って各メモリにアドレスを出力して、各対応するメモリバスを制御することで、4つのメモリに画素分割して格納されている画素データを読み出す。そして90度の回転処理を行った画像データ転送の各サイクルに必要となる画素データをセレクタ部6に転送する。
【0046】
図12は、180度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0047】
図13は、270度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0048】
図14は、90度回転の動作モードで、メモリバス11〜14を介してメモリ1〜4から画素データを読み出すときのタイミングチャートである。
【0049】
このタイミングチャートは、図11に示した制御シーケンスに従っている。また図中の信号は、図7に示した信号と同じである。またライトデータ信号、及び、リードデータ信号に記載した値は、画素番号を示しており、アドレス信号に記載した値は、実際のアドレス値である。
【0050】
図15(A)は、0度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0051】
図15(B)は、90度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。この90度回転の動作モードにおけるセレクタ部6の動作は、図3(B)と図4(B)、図9及び図11から理解できよう。
【0052】
図16(A)は、180度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0053】
図16(B)は、270度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0054】
以上の構成において、本実施形態に係る画像回転処理装置15の動作の流れを90度回転の場合を例にして以下に説明する。
【0055】
動作モード制御部7に、動作モードを90度回転に切り換えるための動作モード切り換え信号を制御バス10を介して制御部(不図示)が供給する。これにより動作モード制御部7は、動作モードを90度回転に切り換えて、コントローラ部5及びセレクタ部6に90度回転の動作モードを示す動作モード信号を送信する。一方、入力データバス8には、画像回転処理を施す対象となる画像データが、不図示の画像送信装置から供給される。
【0056】
ここでは、図2(A)に示した画像データが図3(A)に示すタイミングチャートのタイミングで、1サイクルあたり4画素の画素データとして送信される。
【0057】
コントローラ部5は画素データを受信すると、受信した画素データを図5(B)に示すセレクタ16に入力する。このセレクタ16は、図6に示す動作シーケンスに従って、入力された画素データをメモリバス11〜14を介してメモリ1〜4に転送する。また、コントローラ部5は、図7に示したタイミングチャートのタイミングでメモリバス11〜14を介してメモリ1〜4に信号を送信する。これらの信号の内、アドレス信号、チップセレクト信号、及び、ライトイネーブル信号は、図8に示した制御シーケンスに従って、転送する画素データのサイクル数に同期して送信される。こうして図2(A)に示す画像データの全ての画素データの転送が終了したとき、メモリ1〜4は図9に示すような内容となる。
【0058】
コントローラ部5は、動作モード制御部7から送信される90度回転の動作モードを示す動作モード信号を受信しているため、90度回転の動作モードで動作する。コントローラ部5は、図11に示す90度回転の動作モードにおける各サイクルの制御シーケンスに従ってメモリバスを制御し、4つのメモリ1〜4に格納されている画素データを読み出す。このときのタイミングは図14に示したタイミングチャートのようになる。
【0059】
こうしてコントローラ部5は、4つのメモリ1〜4から出力された画素データを、転送サイクル数を表すサイクルカウント信号と共にセレクタ部6に転送する。セレクタ部6は動作モード制御部7から送信される90度回転の動作モードを示す動作モード信号を受信しているため、90度回転の動作モードで動作する。即ち、セレクタ部6は、コントローラ部5から転送される画素データとサイクルカウント信号を受信し、図15(B)に示す90度回転の動作モードのシーケンスに従って動作して画素データを出力データバス9に出力する。このときの出力データバス9のタイミングは図3(C)に示すタイミングチャートのようになり、図3(B)に示す90度回転した画像データを得ることができる。
【0060】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、画像データを90度単位で回転する画像処理装置に関する。
【背景技術】
【0002】
ディスプレイやプリンタ等のデバイスに画像データを送信して表示或いは出力させる画像処理装置では、そのデバイスが画像データを要求する速度を上回るデータ処理能力を備える必要がある。例えばプリンタの場合、画像の印刷処理をページ単位で行うため、一度印刷動作を開始すると、そのページ全体の印刷が終わるまで動作を停止できない。従って、高速印刷を実現するためには、印刷時の画像処理にも高速性が要求される。
【0003】
一方、半導体技術の進化において、動作クロックの周波数を高めることのみによる性能向上は頭打ちとなり、並列処理等に代表される処理構成の工夫による性能向上が求められてきている。ここで、例えば90度、180度、270度というように90度単位で画像を回転する画像回転処理、及び、画像を左右反転させる画像反転処理を考える。これら画像回転処理と画像反転処理は、画素の並びを変更するものであり、以下、これらをまとめて単に、画像回転処理と記載する。
【0004】
画像回転処理を実現する構成として、メモリの異なるアドレスに1画素ずつ格納した画像データを、その画像データを格納したときと異なるアドレス順に1画素ずつ読み出すものがある(特許文献1参照)。このような画像回転処理を2つの処理の並列処理で高速化する場合を考える。これには例えば、メモリの各アドレスに2画素ずつ格納し、読み出すときに2画素ずつ読み出すことにより、1画素ずつの処理と比較して2倍の処理速度を実現できる。この場合のメモリの構成としては、1ワードに2画素を格納できる構成にし、また、同時に2つの異なるアドレスから読み出しが可能なように2ポート同時読み出しができる構成にすることが考えられる。これにより、画像データを2画素ずつ格納すること、及び異なるアドレスに格納されている2画素を同時に読み出すことが可能となる。ここで、異なるアドレスに格納されている2画素を同時に読み出すことは、90度や270度回転させた画像を生成するときに使用される。尚、2ポート同時読み出しができるメモリは、2つの独立したメモリの組み合わせで実現してもよい。また更に、並列数を多くすることで、より高速な処理を実現することも可能である。
【0005】
例えば、画像回転処理を4つの処理の並列処理で高速化することを考える。この場合は、メモリの各アドレスに4画素ずつ格納し、書き込み時と異なる順序で4画素ずつ読み出すことで実現できる。この場合、1画素ずつの処理と比較して4倍の処理速度を実現できる。このときのメモリの構成としては、1ワードに4画素を格納でき、また、同時に4つの異なるアドレスから読み出しが可能なように4ポート同時読み出しができる構成にする。この構成により、画像データを4画素ずつ格納すること、及び、異なるアドレスに格納されている4画素を同時に読み出すことが可能となる。同様に並列数を、8や16というように多くすることで、より高速な処理を実現できる。このように、1ワードに複数画素を格納できるメモリ構成で、複数画素の並列処理を行う技術を第1の従来技術とする。
【0006】
また、上述した画素の並列処理による画像回転処理とは別に、画素よりも大きなブロック単位での処理により高速な画像回転処理を実現する技術がある。例えば、メモリへの格納を4画素×4画素のようなブロック単位で行い、ブロック単位で読み出した画素データを同じ構成の別のメモリに格納することで、より高速な画像回転処理を実現する技術が提案されている(特許文献2参照)。このようにブロック単位での転送で画像回転処理を行う技術を第2の従来技術とする。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−84414号公報
【特許文献2】特開2005−22387号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した第1の従来技術による画像回転処理では、複数のメモリの出力データをセレクタで選択する構成が必要となり、並列数を増やすと、セレクタの入力に多くのビット数の信号が接続されるため基板上の配線が複雑になるという問題がある。これはセレクタの入力にメモリの全てのデータ信号線が接続され、この信号線の数が並行して処理する画素数の2乗に比例して増加するためである。ここで信号線の数は、メモリの出力ポート数とメモリの1ポートあたりのビット数を掛けたものとなるが、前者はその画素数と同じで、後者は1画素のビット数に、その画素数を掛けたものになり(画素数×1画素のビット数×並行して処理する画素数)となる。このような配線は、LSI設計において回路面積や回路規模、信号伝達遅延時間の増加を招くもので、それらはLSIのコスト増加、消費電力増加及び動作速度低下などの大きな問題の原因となる。
【0009】
また上記第2の従来技術は、メモリからブロック単位で読み出した画素データを、プリンタ等のデバイスが要求する転送順序に並べ替えるためのセレクタが必要となり、セレクタの入力への配線が複雑になる。これはセレクタの入力にはメモリの全てのデータ信号線が接続され、この信号線の数が主走査方向の画素数とブロックの縦画素数の積に比例したものとなるためである。また、セレクタによる並べ替えが必要となる理由は、プリンタ等のデバイスは、前述のようなブロック単位ではなく、ページ画像を構成する全ての画素データをライン毎に1画素或いは数画素ずつ順番に転送することを要求するためである。
【0010】
本発明の目的は、上記従来技術の問題点を解決することにある。
【0011】
本願発明の特徴は、並列に処理する画素の数を増やすことによる信号の配線数の増大を少なく抑えることにより、回路面積や回路規模、信号伝達遅延時間の増加を防止できる画像処理装置を提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
入力した画像データを90度単位で回転する画像処理装置であって、
連続する所定数の画素データ単位で前記画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリと、
前記画像データの回転を指示する指示情報を生成する生成手段と、
前記指示情報に応じて、前記複数のメモリのそれぞれから画素データを読み出すアドレスを前記複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出す読み出し手段と、
前記読み出し手段により前記複数のメモリから読み出した複数の画素データを前記指示情報に応じて並び替えて出力する出力手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、並列に処理する画素の数を増やすことによる信号の配線数の増大を少なく抑えることにより、回路面積や回路規模、信号伝達遅延時間の増加を防止できるという効果がある。
【図面の簡単な説明】
【0014】
【図1】本実施形態に係る画像回転処理装置の全体の構成を示すブロック図。
【図2】画像回転処理装置が扱う画像データと、画像データの転送順を示す模式図。
【図3】入力データバスを転送する画像データと90度回転したを画像データを転送するタイミングチャートと、90度画像回転処理した画像データを示す模式図。
【図4】メモリ1〜4の構成と信号接続、及びセレクタ部の構成と信号接続を説明する模式図。
【図5】画像データをメモリ1〜4に分割して格納する画素分割と、入力データバスから入力された画素データをメモリに書き込むためのセレクタの模式図。
【図6】セレクタの動作シーケンスを説明する図。
【図7】メモリに画素データを書き込むときのタイミングチャート。
【図8】メモリに画素データを書き込むときのメモリバスの制御シーケンス図。
【図9】メモリ1〜4に格納された画素データを説明する図。
【図10】0度回転の動作モードでメモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図11】90度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図12】180度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図13】270度回転の動作モードで、メモリから画素データを読み出すときのメモリバスの制御シーケンスを説明する図。
【図14】90度回転の動作モードで、メモリバスを介してメモリから画素データを読み出すときのタイミングチャート。
【図15】0度回転と90度回転の動作モードで、セレクタ部が動作するシーケンスを説明する図。
【図16】180度回転と270度回転の動作モードで、セレクタ部が動作するシーケンスを説明する図。
【発明を実施するための形態】
【0015】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態に係る画像処理装置(画像回転処理装置)は、入力した画像データを90度単位で回転し、1サイクルあたり4画素の画素データ入力、回転処理、及び、画素データの出力を行う。
【0016】
図1は、本実施形態に係る画像処理装置の一例である画像回転処理装置の構成を示すブロック図である。
【0017】
メモリ1〜4のそれぞれは、各対応するメモリバス11〜14を介してコントローラ部5に接続されたランダムアクセスメモリであり、コントローラ部5の制御により画素データの書き込み及び読み出しをすることができる。このようにメモリ1〜4をランダムアクセスメモリとすることにより、画素データの書き込み順序によらず任意の順序での画素データの読み出しが行える。コントローラ部5のセレクタ16は、入力データバス8を介して入力される96ビットのデータを、24ビットずつメモリ1〜4のそれぞれに振り分ける。コントローラ部5は更に、入力データバス8、セレクタ部6、動作モード制御部7に接続されている。コントローラ部5は、入力データバス8から転送される画素データを受信して、メモリ1〜4に書き込むとともに、メモリ1〜4から画素データを読み出してセレクタ部6に転送する。コントローラ部5は、0度、90度、180度、270度の回転を行う4つの動作モードを持ち、動作モード制御部7から入力される動作モード信号(指示情報)により動作モードを切り換える。セレクタ部6は、コントローラ部5、動作モード制御部7、及び出力データバス9に接続されている。セレクタ部6は、0度、90度、180度、270度の回転の4つの動作モードを持ち、動作モード制御部7から入力される動作モード信号により動作モードを切り換える。セレクタ部6は、コントローラ部5から転送される画素データを受信して、その受信した画素データを動作モードに応じて選別と並べ替えを行って出力データバス9に出力する。動作モード制御部7は、制御バス10、コントローラ部5及びセレクタ部6と接続されている。動作モード制御部7は、0度、90度、180度、270度の回転の4つの動作モードを指示する指示情報を出力する。動作モード制御部7は、ユーザの指示に基づいて制御バス10から転送される動作モード切り換え信号により動作モード信号を生成し、コントローラ部5及びセレクタ部6に対して、その指示された動作モードに対応する動作モード信号(指示情報)を送信する。
【0018】
入力データバス(入力バス)8は、クロック信号に同期して1サイクルあたり4画素の画素データを転送できるデータバスである。出力データバス(出力バス)9は、クロック信号に同期して1サイクルあたり4画素の画素データを転送できるデータバスである。いずれも本実施形態では、96ビット(4画素分)のバス幅を有している。尚、ここで同時に入力及び出力できる画素データは、説明のために4画素としているが、本実施形態は4画素に限定されるものではなく、より大きな画素数であってもよい。また同時に入力と出力できる画素データ数を同じ画素数にしているが異なっていてもよく、その場合は入力又は出力の画素数の多い方のデータバスが、画素数の少ない方のデータ転送の速度に合うように必要に応じて停止することになる。従って、同時に入力、及び、出力できる画素データ数が同じであると、2つのデータバスは速度調節のためにデータ転送を停止する必要がない。制御バス10は、動作モード切り換え信号を転送するバスである。メモリバス11〜14のそれぞれは、クロック信号に同期して、各対応するメモリへの画素データ書き込みや画素データ読み出しを行うことができるデータバスである。このような構成を備える画像回転処理装置15は、制御バス10を介して外部の図示しない制御装置が送信する動作モード切り換え信号を受信して、内部の動作モードを0度、90度、180度、270度の回転の中からいずれかに切り換える。また画像回転処理装置15は、入力データバス8を介して外部の図示しない画像送信装置が送信する16×16画素からなる画像データを受信して、動作モードに応じた角度の画像回転処理を施し、その結果を出力データバス9に出力する。
【0019】
図2(A)は、本実施形態に係る画像回転処理装置が扱う画像データを表す模式図である。
【0020】
図における小さな四角は1つの画素データを表しており、この画像データは、横方向の16画素、縦方向の16画素からなる16×16の画素データで構成されている。尚、ここで扱う画像データのサイズは、説明のために16×16画素としているが、本発明はこのサイズの画像データに限定されるものではなく、縦方向と横方向の画素数が同じであるあらゆるサイズの画像データに適用可能である。各画素データは24ビットで構成される多値データで、図の「00」から「FF」は画素番号を16進数で示したものである。
【0021】
図2(B)は、図2(A)に示す画像データに回転処理を行って出力データバスに出力する順番を示した模式図である。
【0022】
ここでは入力データバス8と出力データバス9は、1サイクルあたり4画素の画素データを転送できるため4画素毎に番号が振られている。ここでは、画像データの副走査方向の位置が同じである複数の連続する所定数(ここでは4)の画素データ単位(画素群)で出力する。尚、ここでは、画像データの副走査方向の位置が同じである連続する複数の画素データの単位で画素群に分割しているが本発明はこれに限定されるものでない。例えば、画素データの主走査方向の位置が同じである複数の連続する所定数の画素データの単位であっても良いことはもちろんである。
【0023】
図3(A)は、図2(A)の画像データが入力データバス8を転送されるときのタイミングチャートである。
【0024】
ここで入力データバス8は96ビット幅を有しており、1サイクルで4画素データが同時に転送され、データ信号in_data[95:0]の上位ビットから並べて転送される。尚、図中のデータ信号に記載した数値は、画素データの値ではなく、図2(A)に示した画素番号を示す。画素データが転送されるサイクルでは、データ信号が有効であることを示すバリッド信号in_validが「1」となる。
【0025】
図3(B)は、図2(A)の画像データを反時計回りに90度画像回転処理した画像データを示す模式図である。尚、以降の説明では、回転角度を角度の数値のみで、0度、90度、180度、270度と表記し、全て反時計回りを表すものとする。また本実施形態における画像回転処理装置が対応する回転角度は、0度、90度、180度、270度の4種類であるが、更に画像回転処理装置では、これらそれぞれに鏡像化処理を組み合わせた8種類の画像回転処理が可能である。以下本実施形態では、0度、90度、180度、270度の動作モードについて説明し、また動作シーケンスの詳細は、90度の動作モードの場合で説明する。
【0026】
図3(C)は、90度回転した画像データを出力データバス9に転送するときのタイミングチャートである。ここでは図2(B)に示す順序で画素データが出力される。ここでもデータ信号に記載した値は、画素データではなく、画素番号を示している。
【0027】
次に、本実施形態に係る画像回転処理装置の構成を説明する。
【0028】
図4(A)は、画像回転処理装置のメモリ1、メモリ2、メモリ3、及び、メモリ4の構成と信号接続を説明する模式図である。
【0029】
本実施形態に係るメモリ1、メモリ2、及び、メモリ3は、1ワードに1画素の画素データを格納するために24ビット幅を持つメモリデバイスで構成されている。そしてメモリ1〜4のそれぞれは独立したメモリデバイスであり、各メモリデバイスに1ワードずつ、合計4ワードを一度に書き込んだり、或いは読み出すことができる。またこれらメモリ1〜4は、クロック信号clk(_clk)に同期して動作し、チップセレクト信号cs(_cs)が「1」であるサイクルで画素データの書き込み、或いは読み出し動作を実行する。またメモリ1〜4は、ライトイネーブル信号we(_we)が「1」であるサイクルで画素データの書き込み動作を、また「0」であるサイクルで画素データの読み出し動作を実行する。またメモリ1〜4は、アドレス信号addr(_addr)[5:0]で指定したアドレスのワードに対して画素データの書き込み、或いは、読み出し動作が実行される。尚、図の信号の表記で、各信号、データに付された(m0, m1, m2, m3)は、各メモリの信号やデータを示している。_wdataは、各メモリへ書き込むデータ、_rdata各メモリから読み出したデータを示す。
【0030】
図4(B)は、本実施形態に係るセレクタ部6の構成と信号接続を説明する模式図である。
【0031】
このセレクタ部6は、メモリ1、メモリ2、メモリ3、及び、メモリ4から読み出した4画素分の画素データを並べ替えて出力する。セレクタ部6は、同時に処理する数に比例した画素データを入力すればよいため、高速化のために同時に処理する数を増やしても、集中する配線の量がが非線形に大きくなることがない。このセレクタ部6は、各メモリから出力される画素データ(_rdata)を入力している。またコントローラ部5から出力されるサイクル番号信号cycle_count[5:0]、及び、動作モード制御部7から動作モード信号mode[1:0]を入力している。この動作モード信号は、0度、90度、180度、及び、270度の回転を示しているが、それぞれ、2ビットの動作モード信号mode[1:0]の値、「00」(0)「10」(1)「01」(2)「11」(3)に対応している。このセレクタ部6は、それぞれが24ビットの出力ポート(out_0〜out_3)を有しており、セレクタ部6から出力されるデータはout_dataで示されている。
【0032】
図5(A)は、図2(A)の画像データをメモリ1〜4に分割して格納するときの画素分割を説明する模式図である。図において、斜線を付した画素はメモリ1に、格子地の画素はメモリ2に、網点の画素はメモリ3に、白地の画素はメモリ4にそれぞれ格納される。
【0033】
画像回転処理装置15は、1サイクルあたり4画素の画像回転処理を行うので、0度回転、及び、180度回転の動作モードのときに主走査方向(横方向)に並んだ4画素を同時に読み出す必要がある。そのため、主走査方向に並んだ4画素のそれぞれを異なるメモリに記憶するように分割している。また画像回転処理装置15は、1サイクルあたり4画素の画像回転処理を行うので、90度回転、及び、270度回転の動作モードのときに副走査方向に並んだ4画素を同時に読み出す必要がある。そのため、副走査方向に並んだ4画素のそれぞれを異なるメモリに記憶するように分割している。尚、同時に読み出せるように構成する目的だけであれば、メモリを16個用意して、並んだ画素データを異なるメモリに記憶してもいいが、ここでは4画素おきに同じメモリに繰り返し記憶することで、メモリの個数を必要最小限の4個に抑えている。これにより、制御回路等の回路規模や消費電力のコストを小さくしている。
【0034】
図5(B)は、入力データバス8から入力された画素データをメモリ1〜4に書き込むときの信号接続を行うセレクタ16の模式図である。
【0035】
入力された4画素分の96ビットの画素データ(in_data)は、コントローラ部5の制御によって並べ替えられて、それぞれ24ビットずつメモリ1〜4のそれぞれに転送される。
【0036】
図6は、図5(B)に示したセレクタ16の動作シーケンスを説明する図である。
【0037】
図において、例えば0〜3サイクルは、図5(A)の1行目の画素データをメモリ1〜4に書き込むタイミングを示し、4〜7サイクルは、図5(A)の2行目の画素データをメモリ1〜4に書き込むタイミングを示す。以下同様にして、1行分の画素データが4サイクルでメモリ1〜4に書き込まれるため、図5(A)に示す画素データは合計64サイクルでメモリ1〜4に記憶される。
【0038】
図7は、メモリバス11〜14を介してメモリ1〜4に画素データを書き込むときのタイミングチャートである。尚、図において、クロック信号(_clk)、チップセレクト信号(_cs)、ライトイネーブル信号(_we)、アドレス信号(_addr)、ライトデータ信号(_wdata)はコントローラ部5が出力する。尚、ライトデータ信号、及び、リードデータ信号に記載した値は、画素データ値ではなく、画素番号である。またアドレス信号に記載した値はアドレス信号の値である。このようにしてメモリ1〜4のぞれぞれには、図5(A)に示すように各画素データが記憶される。
【0039】
図8は、メモリ1〜4に画素データを書き込むときのメモリバス11〜14の制御シーケンスを説明する図である。このタイミングは図7のタイミングチャートを参照すると、より容易に理解できるであろう。
【0040】
図9は、こうしてメモリ1〜4に格納された画素データを説明する図である。
【0041】
図中、data欄に記載した値は、図2(A)の画素番号を示し、addr欄に記載した値は、各メモリの実際のアドレスを示す。
【0042】
図10は、0度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0043】
この場合は、4つのメモリに画素分割して格納されている画素データをそのまま読み出すため、コントローラ部5は、アドレスを「00」から「3F」順次各メモリに出力して、そこに格納されている画素データを読み出してセレクタ部6に転送する。
【0044】
図11は、90度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0045】
90度回転した画素データは図3(B)に示されている。図3(B)において、サイクル0では、画素(0F,1F,2F,3F)が読み出される。図9を参照すると、これら画素は、順番にメモリ4のアドレス(03)、メモリ1のアドレス(07),メモリ2のアドレス(0B)、そしてメモリ3のアドレス(0F)に格納されている。従って図11で、サイクル0での各メモリの読み出しアドレスが決定される。以下同様にして、各サイクルにおける各メモリの読み出しアドレスが決定される。これが図11に示されている。コントローラ部5は、これに従って各メモリにアドレスを出力して、各対応するメモリバスを制御することで、4つのメモリに画素分割して格納されている画素データを読み出す。そして90度の回転処理を行った画像データ転送の各サイクルに必要となる画素データをセレクタ部6に転送する。
【0046】
図12は、180度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0047】
図13は、270度回転の動作モードにおいてメモリ1〜4から画素データを読み出すときのメモリバス11〜14の制御シーケンスを説明する図である。
【0048】
図14は、90度回転の動作モードで、メモリバス11〜14を介してメモリ1〜4から画素データを読み出すときのタイミングチャートである。
【0049】
このタイミングチャートは、図11に示した制御シーケンスに従っている。また図中の信号は、図7に示した信号と同じである。またライトデータ信号、及び、リードデータ信号に記載した値は、画素番号を示しており、アドレス信号に記載した値は、実際のアドレス値である。
【0050】
図15(A)は、0度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0051】
図15(B)は、90度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。この90度回転の動作モードにおけるセレクタ部6の動作は、図3(B)と図4(B)、図9及び図11から理解できよう。
【0052】
図16(A)は、180度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0053】
図16(B)は、270度回転の動作モードにおいてセレクタ部6が動作するシーケンスを説明する図である。
【0054】
以上の構成において、本実施形態に係る画像回転処理装置15の動作の流れを90度回転の場合を例にして以下に説明する。
【0055】
動作モード制御部7に、動作モードを90度回転に切り換えるための動作モード切り換え信号を制御バス10を介して制御部(不図示)が供給する。これにより動作モード制御部7は、動作モードを90度回転に切り換えて、コントローラ部5及びセレクタ部6に90度回転の動作モードを示す動作モード信号を送信する。一方、入力データバス8には、画像回転処理を施す対象となる画像データが、不図示の画像送信装置から供給される。
【0056】
ここでは、図2(A)に示した画像データが図3(A)に示すタイミングチャートのタイミングで、1サイクルあたり4画素の画素データとして送信される。
【0057】
コントローラ部5は画素データを受信すると、受信した画素データを図5(B)に示すセレクタ16に入力する。このセレクタ16は、図6に示す動作シーケンスに従って、入力された画素データをメモリバス11〜14を介してメモリ1〜4に転送する。また、コントローラ部5は、図7に示したタイミングチャートのタイミングでメモリバス11〜14を介してメモリ1〜4に信号を送信する。これらの信号の内、アドレス信号、チップセレクト信号、及び、ライトイネーブル信号は、図8に示した制御シーケンスに従って、転送する画素データのサイクル数に同期して送信される。こうして図2(A)に示す画像データの全ての画素データの転送が終了したとき、メモリ1〜4は図9に示すような内容となる。
【0058】
コントローラ部5は、動作モード制御部7から送信される90度回転の動作モードを示す動作モード信号を受信しているため、90度回転の動作モードで動作する。コントローラ部5は、図11に示す90度回転の動作モードにおける各サイクルの制御シーケンスに従ってメモリバスを制御し、4つのメモリ1〜4に格納されている画素データを読み出す。このときのタイミングは図14に示したタイミングチャートのようになる。
【0059】
こうしてコントローラ部5は、4つのメモリ1〜4から出力された画素データを、転送サイクル数を表すサイクルカウント信号と共にセレクタ部6に転送する。セレクタ部6は動作モード制御部7から送信される90度回転の動作モードを示す動作モード信号を受信しているため、90度回転の動作モードで動作する。即ち、セレクタ部6は、コントローラ部5から転送される画素データとサイクルカウント信号を受信し、図15(B)に示す90度回転の動作モードのシーケンスに従って動作して画素データを出力データバス9に出力する。このときの出力データバス9のタイミングは図3(C)に示すタイミングチャートのようになり、図3(B)に示す90度回転した画像データを得ることができる。
【0060】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
入力した画像データを90度単位で回転する画像処理装置であって、
連続する所定数の画素データ単位で前記画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリと、
前記画像データの回転を指示する指示情報を生成する生成手段と、
前記指示情報に応じて、前記複数のメモリのそれぞれから画素データを読み出すアドレスを前記複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出す読み出し手段と、
前記読み出し手段により前記複数のメモリから読み出した複数の画素データを前記指示情報に応じて並び替えて出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記複数のメモリのそれぞれは、前記画像データの副走査方向の位置が同じである複数の連続する前記所定数の画素データのそれぞれを記憶することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記複数のメモリのそれぞれは、前記画像データの主走査方向の位置が同じである複数の連続する前記所定数の画素データのそれぞれを記憶することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記画像データを入力する入力バスのバス幅は、少なくとも前記所定数の画素データを同時に転送するバス幅を有していることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記所定数と、前記複数のメモリの数は同じであることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項1】
入力した画像データを90度単位で回転する画像処理装置であって、
連続する所定数の画素データ単位で前記画像データを分割した各画素群の画素データのそれぞれを入力して記憶する複数のメモリと、
前記画像データの回転を指示する指示情報を生成する生成手段と、
前記指示情報に応じて、前記複数のメモリのそれぞれから画素データを読み出すアドレスを前記複数のメモリのそれぞれに出力して、前記複数のメモリの各対応するアドレスに記憶された画素データを読み出す読み出し手段と、
前記読み出し手段により前記複数のメモリから読み出した複数の画素データを前記指示情報に応じて並び替えて出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記複数のメモリのそれぞれは、前記画像データの副走査方向の位置が同じである複数の連続する前記所定数の画素データのそれぞれを記憶することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記複数のメモリのそれぞれは、前記画像データの主走査方向の位置が同じである複数の連続する前記所定数の画素データのそれぞれを記憶することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記画像データを入力する入力バスのバス幅は、少なくとも前記所定数の画素データを同時に転送するバス幅を有していることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
【請求項5】
前記所定数と、前記複数のメモリの数は同じであることを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2011−10213(P2011−10213A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−153989(P2009−153989)
【出願日】平成21年6月29日(2009.6.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成21年6月29日(2009.6.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]