(57)【要約】【課題】簡単安価なハードウェア構成により、高速に画像変倍処理を行なえる画像処理装置を提供する。【解決手段】画像変倍処理対象の画像データを格納した画像データ格納メモリ２−２から、ｎラインの画像データ中の互いに隣接するｎ×ｎ画素の画像データに対して所定の演算を行なうことにより１画素の画像データを出力する演算回路２−５に画像データを転送するために、ｎラインの画像データを格納し、該ｎライン中の画像データをアドレッシングして読み出し可能なラインメモリ２−４ａ〜２−４ｆを設ける。画像データ格納メモリ２−２からｎラインの画像データを読み出し、ラインメモリに格納し、演算回路の所定の演算に必要な互いに隣接するｎ×ｎ画素の画像データをアドレッシングしてラインメモリから読み出し、演算回路に転送する。余剰のラインメモリは、ラインメモリに対する入出力を同時に行なうパイプライン処理に用いる。【選択図】図２
2007279780.tif 000002
【特許請求の範囲】
【請求項１】
画像変倍処理対象の画像データを格納した画像データ格納メモリと、
ｎラインの画像データ中の互いに隣接するｎ×ｎ画素の画像データに対して所定の演算を行なうことにより１画素の画像データを出力する演算回路と、
ｎラインの画像データを格納し、該ｎライン中の画像データをアドレッシングして読み出し可能なラインメモリとを有し、
画像変倍処理において、前記画像データ格納メモリからｎラインの画像データを読み出し、前記ラインメモリに格納し、前記演算回路の前記所定の演算に必要な互いに隣接するｎ×ｎ画素の画像データをアドレッシングしてラインメモリから読み出し、前記演算回路に転送することを特徴とする画像処理装置。
【請求項２】
前記ラインメモリとして、前記ｎラインを格納可能な本数以上のラインメモリが設けられ、前記ラインメモリから前記演算回路への画像データ出力と、前記画像データ格納メモリから前記ラインメモリへの後続画像データ入力を同時に行なうパイプライン処理を行なうことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ｎラインの画像データを、１ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なｎ×２本のラインメモリに分割して格納し、互いに隣接するｎ×ｎ画素の画像データを同時にアドレッシングして各ラインメモリから前記演算回路に読み出すことを特徴とする請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像縮小または拡大の画像変倍処理を行なう画像処理装置に関するものである。
【背景技術】
【０００２】
従来より、離散的なメモリアドレスに対するメモリアクセスが必要となるデータ処理の一例として、画像データの変倍、特に縮小処理がある。
【０００３】
図１は、従来の画像データの縮小処理を行なうデータ演算装置の構成を示している。図１において、１−１はフレーム画像メモリ、１−２はアドレスカウンタ、１−３はアドレスカウンタ用データテーブル、１−４ａ、１−４ｂ、１−４ｃ、１−４ｄはフリップフロップ、１−５は演算回路、１−６は表示回路である。
【０００４】
ここでは、簡略化のため、たとえば原画像の４画素から１画素を演算回路１−５で求め、表示回路１−６に送り表示させる縮小処理、およびそれに必要な回路構成を考えている。上記の従来構成において、画像縮小処理は次のように行なわれる。
【０００５】
処理対象の原画像の画像データ（たとえば１画素８ビットの輝度ないし濃度データ）は、不図示の入力手段（カメラや他の画像処理装置）から入力され、画面の左上や左下などの表示原点に対応するアドレスから順次フレーム画像メモリ１−１に格納される。
【０００６】
次に、予め不図示のＣＰＵおよび数値演算プロセッサ等を用い、拡大率または縮小率から変換の対象となる原画像の画素の座標を求め、これに対応する画素アドレスの組（この例では出力する１画素を演算回路１−５で演算するのに必要な４画素）をアドレスカウンタ用データテーブル１−３に記憶させておく。
【０００７】
ここで、４画素−＞１画素への変換の場合を考えると、通常この４画素は相互に隣接する４画素であり、２つの表示ライン上に存在する。このため、アドレスカウンタ用データテーブル１−３に格納しておく１組４画素のアドレスは全て連続しておらず、通常１表示ラインの長さに相当するアドレスギャップ（たとえば第３画素と第４画素との間に）が含まれる。どのような４画素を１組としてアドレスカウンタ用データテーブル１−３に格納しておくかは、どのような画像縮小処理を行なうかに応じてＣＰＵによって決定される。
【０００８】
次に、アドレスカウンタ用データテーブル１−３のデータを読み出し、アドレスカウンタ１−２からフレーム画像メモリ１−１に対して変換の演算対象となる４画素のアドレスを順次出力し、その画素データをフリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄに対してそれぞれ出力させる。
【０００９】
フリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄは４画素のデータを並列に出力し、演算回路１−５に入力する。演算回路１−５は入力された２×２の画素データに対して予め定められた所定の演算（たとえば平均演算など）を行ない、演算結果として得られる１画素データが表示回路１−６（あるいは他の適当な出力手段）に出力され、表示される。
【００１０】
一方、フリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄから演算回路１−５にデータ出力が完了すると、これに同期して次のデータがフレーム画像メモリ１−１からフリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄへ出力される。
【特許文献１】特開平５−１０８８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
図１に示したような従来のデータ演算装置は２×２のデータを演算回路１−５へ転送する度に外部メモリであるフレーム画像メモリ１−１にアクセスしなければならない。ここで、１画素のデータが８ｂｉｔでフレーム画像メモリ１−１のデータバス幅が８ｂｉｔの構成を考えると１回の変換動作でフレーム画像メモリ１−１に４回のアクセスが必要となり高速動作は期待できない。
【００１２】
そこで、フレーム画像メモリ１−１のデータバス幅を広げる、たとえば３２ｂｉｔに拡張することが考えられるが、この場合には２回のアクセスで必要とする４画素のデータを得ることができる。しかし、所期の画像処理に必要な画素が１回のアクセスで得られる４バイトのデータから外れた場合すなわち４バイトのミスアラインであった場合は、次または前のアドレスのアクセスが必要となり、この場合では４回のメモリアクセスが必要となる。このようにフレーム画像メモリ上のアクセスすべき画素のアドレスがバイト（あるいはワード）境界を外れることは、実行する画像の変倍処理や、縮尺倍率などによって充分あり得ることであり、したがってバス幅を拡張したからといって、画像処理の内容によってはその効果が十分に現れないこともある。
【００１３】
さらに、回路動作の信頼性の観点から同期回路動作を前提に考えると、図１のような従来構成では、フリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄへの供給クロックと、フリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄの出力データを処理する演算回路１−５のクロックには同一のクロックを使用することになる。したがって、回路の処理スピードを向上すべくクロック周波数を上げようとすると、演算回路１−５ばかりでなくフレーム画像メモリ１−１にも高速動作が可能な高価なメモリが必要になり、コストアップの要因となる問題がある。
【００１４】
また、図１のような従来構成では、アドレスカウンタ用データテーブル１−３が必要であり、メモリ等の余分なハードウェアが必要となりこれもコストアップの要因となる。また、アドレスカウンタ用データテーブル１−３には拡大、縮小率が変わるたびに情報を記憶させる（書き換える）動作が必要になる。したがって拡大、縮小率を頻繁に変更するシステムでは、このアドレスカウンタ用データテーブル１−３を更新する処理によりシステム全体のパフォーマンス低下を招く恐れがある。
【００１５】
なお、上記のバス幅拡張（例では３２ｂｉｔ）の効果を得るため、図１のフリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄの部分にシフトレジスタを用いた構成が提案されている（たとえば上記の特許文献１）。特許文献１の構成では、画像メモリから読み出した３２ｂｉｔ（４バイト）データをシフトレジスタに記憶することで有効にデータを使用可能としているが、一般にシフトレジスタはフリップフロップで構成されており、それぞれ１ライン分のシフトレジスタを用意することを考えると膨大な数のフリップフロップが必要となりコスト的に不利となる。また、図１のような従来構成と同様に演算回路とシフトレジスタを同一クロックで動作させる必要があり、この問題は特許文献１の構成にも存在する。
【００１６】
そこで、同一クロック駆動の問題とシフトレジスタを用いた場合の問題を解決するために、図１のフリップフロップ１−４ａ、１−４ｂ、１−４ｃ、１−４ｄの部分を４つのＦＩＦＯ素子で構成する構成も考えられる。ＦＩＦＯ素子は入力と出力の供給クロック周波数が異なる場合でも動作可能なものが存在しており、ＦＩＦＯを使用することによりフレーム画像メモリ１−１側と演算回路１−５側のクロックに異なる周波数を使用でき、高速なメモリを使用しなくてもよくなり、またシフトレジスタと違いＦＩＦＯはメモリ構造であり安価にデータ容量を増加することができる。
【００１７】
しかしながら、ＦＩＦＯで構成した場合は、画像縮小処理において、演算に使用しないデータをＦＩＦＯから吐き出させる動作（とびとびに必要とするデータが存在する場合）が伴うので、その分処理が遅滞する、という問題がある。また、画像拡大時においては、一度読み出したデータを再度使用して演算するので、ＦＩＦＯの後段に別途処理回路が必要となり回路が複雑化する問題がある。上述のＦＩＦＯの問題は、アドレスによりデータの書込み読み出しが出来ないことに起因しており、この種の画像変倍処理のためにＦＩＦＯを用いるのは適切ではない、と考えられる。
【００１８】
なお、以上では、画像変倍処理の一例として、４×４画素から１画素を演算して出力する画像変倍処理に関する問題点について述べたが、上記の問題点は演算回路によりｎ×ｎ画素から１画素を演算して出力する、より一般的な画像変倍処理においても共通するものである。
【００１９】
本発明の課題は、上記の問題に鑑み、簡単安価なハードウェア構成により、高速に画像変倍処理を行なえる画像処理装置を提供することにある。
【課題を解決するための手段】
【００２０】
上記課題を解決するため、本発明においては、画像変倍処理対象の画像データを格納した画像データ格納メモリと、ｎラインの画像データ中の互いに隣接するｎ×ｎ画素の画像データに対して所定の演算を行なうことにより１画素の画像データを出力する演算回路と、ｎラインの画像データを格納し、該ｎライン中の画像データをアドレッシングして読み出し可能なラインメモリとを有し、画像変倍処理において、前記画像データ格納メモリからｎラインの画像データを読み出し、前記ラインメモリに格納し、前記演算回路の前記所定の演算に必要な互いに隣接するｎ×ｎ画素の画像データをアドレッシングしてラインメモリから読み出し、前記演算回路に転送する構成を採用した。
【００２１】
あるいはさらに、前記ラインメモリとして、前記ｎラインを格納可能な本数以上のラインメモリが設けられ、前記ラインメモリから前記演算回路への画像データ出力と、前記画像データ格納メモリから前記ラインメモリへの後続画像データ入力を同時に行なうパイプライン処理を行なう構成を採用した。
【００２２】
あるいはさらに、前記ｎラインの画像データを、１ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なｎ×２本のラインメモリに分割して格納し、互いに隣接するｎ×ｎ画素の画像データを同時にアドレッシングして各ラインメモリから前記演算回路に読み出す構成を採用した。
【発明の効果】
【００２３】
上記構成によれば、画像変倍演算を行なう演算回路に転送するｎ×ｎ画素を、アドレッシング可能なラインメモリに格納するようにしているため、高速に必要な画素を演算回路に転送することができ、ＦＩＦＯを用いる場合のようなメモリ入出力の非効率を生じず、また、高価なシフトレジスタなどを用いることなく、ＰＬＤなどを用いて簡単安価に画像処理ハードウェアを構成できる。
【００２４】
また、演算回路の演算に必要なｎラインを格納可能な本数以上のラインメモリを設け、余剰のラインメモリを利用してラインメモリへの入出力をパイプライン処理により行なう構成とすることにより、画像変倍演算に必要な画像データ入出力のスループットを大きく向上することができる。
【００２５】
さらに、演算回路の演算に必要なｎラインの画像データを、１ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なｎ×２本のラインメモリに分割して格納する構成とすることにより、互いに隣接するｎ×ｎ画素の画像データを同時にアドレッシングして各ラインメモリから演算回路に読み出すことができ、さらなる画像データ入出力のスループット向上が可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明を実施するための最良の形態の一例として、画像縮小または拡大の画像変倍処理を行なう画像処理装置に関する実施例を示す。
【００２７】
なお、以下では、演算回路によりｎ×ｎ画素から１画素を演算して出力する画像変倍処理の一例として、４×４画素から１画素を演算して出力する画像変倍処理を例示する。また、以下では、説明を簡単にするため、１画素はグレースケールにより表現されるものとする。もちろん、下記の実施例の構成をｎ×ｎ画素から１画素を演算して出力する構成に変更すること、また、グレースケール画像データの演算をカラー画像データの演算に変更することは容易に可能である。
【実施例１】
【００２８】
図２は本発明の一実施例を示す画像処理装置の要部回路構成図である。図２において、符号２−１は画像入力端子、２−２は前述の従来例と同様の画像データ格納メモリ、２−３はセレクタ、２−４ａはラインメモリ（１）、２−４ｂはラインメモリ（２）、２−４ｃはラインメモリ（３）、２−４ｄはラインメモリ（４）、２−４ｅはラインメモリ（５）、２−４ｆはラインメモリ（６）、２−５は演算回路、２−６は表示データ格納メモリ、２−７はアドレスジェネレータである。
【００２９】
図示のように、本実施例では、画像データ格納メモリ２−２から演算回路２−５に処理すべき画像データを送るための記憶手段としてラインメモリ２−４を用いた点に特徴がある。
【００３０】
本実施例でも、互いに隣接する４画素のデータに対して所定の変倍演算を行なうことにより１画素の画像データを得る処理を前提とするが、ラインメモリ２−４は、上記のようにラインメモリ（１）〜（６）の６本設けるようにしている。
【００３１】
通常、互いに隣接する４画素は、連続した画像データ２ライン上に存在するから、処理対象の４画素を含む２ラインを格納するには、１ラインの画像データを格納できるサイズのラインメモリを２本だけ設ければよい。しかしながら、本実施例では、６本のラインメモリ（１）〜（６）のうち、４本に処理対象の４画素を含む２ラインを格納する。
【００３２】
なお、このとき、後述のように画像データ１ラインは、偶数／奇数アドレスに分けて２本のラインメモリに格納する（図４）。このため、ラインメモリ（１）〜（６）の容量は、１ラインの半分の画像データを格納できるサイズ（あるいはそれ以上）あればよい。
【００３３】
上記処理対象の２ラインを格納したラインメモリから、４画素を演算回路２−５に読み出す時、残りの２本のラインメモリに画像データ格納メモリ２−２から後続の１ラインの画像データを転送する。この時、１ラインの画像データは、上記同様に偶数／奇数アドレスに分けて２本のラインメモリに格納する。
【００３４】
このようなラインメモリを用いた構成により、ラインメモリ（１）〜（６）への入力と出力を同時に行なうパイプライン処理が可能となり、スループットを向上することができる。
【００３５】
上記のようなパイプライン処理を行なうためには、画像処理に必要な２ライン分に加えて、画像データ格納メモリ２−２から後続のまだ読み出していない１ラインの画像データを転送できるだけのラインメモリ（上記のように偶奇アドレスを別に格納する場合には２本）を少なくとも設けておく。これは、画像データ１ラインが演算回路２−５で用いられる２ラインのうち第１のライン、および第２のラインとして２回の演算に用いられ、演算回路２−５の１回の演算ごとに次の演算のために転送が必要となるライン数は１ラインであるためである。なお、上記のようなパイプライン処理を行なわない場合には、ラインメモリ（１）〜（６）は、処理対象の４画素を含む２ラインを格納できる分（上記のように偶奇アドレスを別に格納する場合には４本）だけあればよい。
【００３６】
画像入力端子２−１から入力される画像データは、画像データ格納メモリ２−２に格納される。たとえば、原画像１ライン目、および２ライン目のデータを用いた最初の演算では、データをセレクタ２−３によってラインメモリ（１）２−４ａ、ラインメモリ（２）２−４ｂ、ラインメモリ（３）２−４ｃ、ラインメモリ（４）２−４ｄに振り分ける。
【００３７】
本実施例では、演算回路２−５は、拡大率／縮小率などの所期の変倍条件から演算に必要な４画素をアドレスジェネレータ２−７を介して各ラインメモリ上でアドレッシングする。アドレスジェネレータ２−７は演算対象の４画素が格納されているアドレスをラインメモリ（１）２−４ａ、ラインメモリ（２）２−４ｂ、ラインメモリ（３）２−４ｃ、ラインメモリ（４）２−４ｄに入力し、これにより、ラインメモリ（１）２−４ａ、ラインメモリ（２）２−４ｂ、ラインメモリ（３）２−４ｃ、ラインメモリ（４）２−４ｄから必要な画像データが演算回路２−５に入力される。また、演算回路２−５への画像データ読み出しと同時に、次の１ラインの画像データをラインメモリ（５）２−４ｅ、ラインメモリ（６）２−４ｆに転送する。
【００３８】
演算回路２−５は入力された画像データに対して変倍演算を行ない、その結果を表示データ格納メモリ２−６に格納する。
【００３９】
以下、上記構成における画像処理をより詳細に説明する。以下では、１画面５１２×４８４の画像データを、１画面４９５×４６８の画像データに縮小する（変倍率は整数比ではなく、しかも縦横の変倍率が異なる）場合を例にして行なう。画像データ格納メモリ２−２には、１画面分以上の容量のものを用意する。
【００４０】
以上の構成において、画像データが画像データ格納メモリ２−２に１画面分格納された後、以下に示す式（２）から求まるＹの整数部（演算に必要なライン）がセレクタ２−３へ入力され、セレクタ２−３が画像データ格納メモリ２−２からラインメモリ（１）２−４ａ、ラインメモリ（２）２−４ｂ、ラインメモリ（３）２−４ｃ、ラインメモリ（４）２−４ｄへの振り分けを開始する。
【００４１】
本実施例では、図１のようなアドレスカウンタ用データテーブル（１−３）を用いず、演算回路２−５が演算に必要な画素のアドレスを決定する。演算回路２−５では、演算対象のデータを効率良く選出するために以下の２式の演算を行ない、その結果をセレクタ２−３、およびアドレスジェネレータ２−７に与える。
【００４２】
Ｘ＝縮小率×縮小ｘ座標  ＋（縮小率−１）  …（１）
Ｙ＝縮小率×縮小ｙ座標  ＋（縮小率−１）  …（２）
この式のＸ、Ｙの整数部の値が演算対象である４画素の左上画素の座標（メモリアドレス）となる。たとえば、縮小後座標（１０，２００）の縮小値を求める際に必要となる４画素の左上画素の座標は、上記式（１）および（２）を用いて算出すると、
Ｘ＝（５１２／４９５）×１０＋（５１２／４９５−１）＝１０．３７７  …（１ａ）
Ｙ＝（５１２／４９５）×２００＋（５１２／４９５−１）＝２０６．９０３  …（２ａ）
となり、演算対象４画素の左上の座標はＸ，Ｙそれぞれの整数部となるので、（１０，２０６）となる。この場合、図３のように、画像データ格納メモリの（１０，２０６）を着目画素としその周辺画素（１１，２０６）、（１０，２０７）、（１１，２０７）を含む４画素のデータを用いて縮小演算を行ない、その結果の１画素が表示データ格納メモリの（１０，２００）に格納される。
【００４３】
また、Ｙの整数部を求める事で、演算対象となるラインが得られるので、演算回路２−５で求めたこのＹの整数部の値をセレクタ２−３に与える。これにより、セレクタ２−３は演算に必要なラインが画像データ格納メモリ２−２から取り出しラインメモリ（１）〜（６）に振り分けられる。
【００４４】
セレクタ２−３による１ライン目、および２ライン目の振り分けの詳細は図４、および図５（ａ）のように行なわれる。このとき、図５（ａ）のようにラインメモリ（１）、ラインメモリ（２）にＹの整数部の値１ライン分のデータが、ラインメモリ（３）、ラインメモリ（４）に次の（Ｙ＋１）の整数部の値１ライン分のデータが格納されるが、１ライン目の偶数アドレスの画素データはラインメモリ（１）に、１ライン目の奇数アドレスの画素データはラインメモリ（２）に格納する。同様に、２ライン目の偶数アドレスの画素データをラインメモリ（３）に、２ライン目の奇数アドレスの画素データをラインメモリ（４）へ格納する。
【００４５】
このように、偶数／奇数アドレスの画素を別のラインメモリに格納する構成により、演算回路２−５の演算に必要な互いに隣接する４画素は、４つのラインメモリから同時に並行して読み出すことができ、処理速度向上を期待できる。
【００４６】
ラインメモリ（１）、ラインメモリ（２）、ラインメモリ（３）、ラインメモリ（４）へのデータ格納が完了し、演算回路２−５で演算が開始されると、図５（ｂ）のように３ライン目の偶数画素のデータをラインメモリ（５）に、３ライン目の奇数画素のデータをラインメモリ（６）へ格納する。
【００４７】
１ライン目、２ライン目の演算が終了すると、２ライン目のラインメモリ（２）、（３）のデータと３ライン目のラインメモリ（５）、（６）のデータでの演算が開始される。この演算が開始されると、図５（ｃ）のように４ライン目のデータをラインメモリ（１）、（２）に格納する。
【００４８】
さらに、２ライン目と３ライン目の演算が終了すると、図５（ｄ）のように３ライン目のラインメモリ（５）、（６）のデータと４ライン目のラインメモリ（１）、（２）での演算が開始される。
【００４９】
以上のように、画像データ格納メモリ２−２から２ラインの画像データを４本のラインメモリに転送し、演算回路２−５の演算が開始されると同時に次の１ラインの画像データを残りの２本のラインメモリに転送するパイプライン処理を繰り返す事により、画像変倍に必要な画像データを画像データ格納メモリ２−２から演算回路２−５に転送することができる。
【００５０】
以上の構成によれば、ある２つのラインを用いた演算が終了した時点で、次の演算に必要な２ライン分のデータがラインメモリに格納済みとなっているので、画像データ格納メモリからのデータ転送を待たずに次の演算を行える。
【００５１】
ここで、演算回路２−５での演算の際に必要な４画素のデータをラインメモリ（１）〜（６）から読み出す手順を示す。演算回路２−５は、式（１）で求めたＸの整数部の値をアドレスジェネレータ２−７へ転送する。この値は縮小演算に必要な４画素の左上画素のｘ座標値であるが、図６に示したようにｘ座標が指し示す個所が着目画素となる。ｘ座標値を受け取ったアドレスジェネレータ２−７は、演算において図６のＡの位置に入るデータが格納されているラインメモリのアドレスを指しこのＡのアドレスを元にＢ、Ｃ、Ｄのアドレスも生成する。
【００５２】
このようにして生成した４つのアドレスをラインメモリに並列に与える事によって、ラインメモリから図６の原画像データ６−１の４画素Ａ，Ｂ，Ｃ，Ｄのデータをラインメモリから並列に演算器へ入力できる。ここで演算器２−５では入力された４画素を用いた演算は図９のように行ない、図９のＳの値が演算結果のデータ縮小画像データ６−２となり表示データ格納メモリ２−６に転送される。
【００５３】
図９の演算は、上述の場合と同様に１画面５１２×４８４の画像データ（９−１）を、１画面４９５×４６８の画像データ（９−２）に縮小する例であるが、ここでは演算に採用する縮小率は式（１ａ）、（２ａ）の場合の５１２／４９５（ｘ方向）と異なり、ｙ方向に関する４８４／４６８を採用している。
【００５４】
この場合、縮小画像（９−２）の画素（１０，２０６）に対応する原画像（９−１）中の４画素の左上の着目画素は（４８４／４６８）＊（１０，２０６）＝（１０．３４，２０６．８４）と求められ（実数表現）、この整数部に対応する画素（１０，２０６）を着目画素Ｓ００とし、この着目画素と、その周辺画素Ｓ１０、Ｓ０１、Ｓ１１、すなわち周辺画素（１１，２０６）、（１０，２０７）、（１１，２０７）の４画素が演算に用いられる。
【００５５】
そして、縮小画像（９−２）の画素（１０，２０６）として出力すべき画素（９−３）の階調度Ｓは、図９下部の演算式の通り、着目画素Ｓ００、および周辺画素Ｓ１０、Ｓ０１、Ｓ１１の階調度から、
Ｓ  ＝（１１−１０．３４）＊（２０７−２０６．８４）＊Ｓ００
＋（１０．３４−１０）＊（２０７−２０６．８４）＊Ｓ１０
＋（１１−１０．３４）＊（２０６．８４−２０６）＊Ｓ０１
＋（１０．３４−１０）＊（２０６．８４−２０６）＊Ｓ１１
と求められる。この演算は、図９の各ハッチングで示した通り、実数表現の着目画素（１０．３４，２０６．８４）が、それぞれの着目画素Ｓ００、および周辺画素Ｓ１０、Ｓ０１、Ｓ１１上で占める割合づつ、各画素の階調度を加算するものである。
【００５６】
なお、本実施例では、画像データはグレースケール表現であるものとしたが、カラー画像（たとえばＲＧＢ表現）であっても、同様の演算により縮小画像データを演算できる。
【００５７】
図９に示した演算対象の４画素を取り出す動作において、縮小処理では図７のように画像データ２ライン（７−１）中の飛び飛びの画素データを縮小演算（７−２）に使用するが、ラインメモリを用いることにより、その飛び飛びとなるアドレスをラインメモリ（１）〜（６）に対してアドレッシングでき、ダイレクトに目的のデータのみを取出せるので無駄な動作が発生しない。同様に、拡大処理においても、図８のように、画像データ２ライン（８−１）中の同じ画素データを再度拡大演算（８−２）に使用する場合もラインメモリ（１）〜（６）に対して同じアドレスを指定することでデータを読み出す事ができる。
【００５８】
各ラインメモリ２−４（（１）〜（６））、アドレスジェネレータ２−７、演算回路２−５の周波数を上げればその分ラインメモリ（１）〜（６）から演算回路２−５へのデータ転送時間、演算回路２−５での演算処理時間が高速になり、拡大、縮小処理の高速化が実現できる。さらに演算中に次に演算対象となる画素ラインを取得できるため演算回路の動作周波数を上げた場合でも低速なメモリを画像格納メモリに使用できるためコストを抑える事ができる。
【００５９】
演算回路を含む全ての構成はハードウェアのみで構成できリアルタイムに拡大、縮小処理を実施することが出来る。特に、本発明の画像処理装置は、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）を用いて容易に構成できる。近年ではＰＬＤは大容量のものを安価で入手可能であり、比較的データ格納領域の大きい画像データ格納メモリ２−２、表示データ格納メモリ２−６の部分を除き、ほぼＰＬＤ内部のリソースを使用して安価なＰＬＤ１チップで構成することができる。
【００６０】
また、上記実施例では、画像の変倍処理（拡大／縮小）を例示したが、本発明によれば、演算回路、ラインメモリ構成および画像データ格納メモリからデータをラインメモリに振り分けるセレクタ動作、ラインメモリから演算対象データを読み出すアドレスジェネレータのアドレス出力方法を変更することにより、特定の画像データ処理に必要な画素を複数ラインから選んで転送することができ、変倍処理以外の画像データ処理にも利用できる。
【産業上の利用可能性】
【００６１】
本発明は、画像縮小または拡大の画像変倍処理をハードウェアにより行なう種々の画像処理装置に適用できる。
【図面の簡単な説明】
【００６２】
【図１】従来の画像処理装置の構成を示したブロック図である。
【図２】本発明を採用した画像処理装置の構成を示したブロック図である。
【図３】図２の画像処理装置における画像縮小処理を示した説明図である。
【図４】図２の画像処理装置におけるラインメモリへの画像データの転送の様子を示した説明図である。
【図５】図２の画像処理装置におけるラインメモリの画像データの入出力の様子を示した説明図である。
【図６】図２の画像処理装置における画像縮小処理を示した説明図である。
【図７】図２の画像処理装置における画像縮小処理の様子をラインごとに示した説明図である。
【図８】図２の画像処理装置における画像拡大処理の様子をラインごとに示した説明図である。
【図９】図２の画像処理装置の画像縮小処理における画像データの階調演算を示した説明図である。
【符号の説明】
【００６３】
２−２  画像データ格納メモリ
２−３  セレクタ
２−４ａ〜２−４ｆ  ラインメモリ
２−５  演算回路
２−６  表示データ格納メモリ
２−７  アドレスジェネレータ
【図１】
2007279780.tif 000003
【図２】
2007279780.tif 000004
【図３】
2007279780.tif 000005
【図４】
2007279780.tif 000006
【図５】
2007279780.tif 000007
【図６】
2007279780.tif 000008
【図７】
2007279780.tif 000009
【図８】
2007279780.tif 000010
【図９】
2007279780.tif 000011