JP2007279780A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2007279780A JP2007279780A JP2006101299A JP2006101299A JP2007279780A JP 2007279780 A JP2007279780 A JP 2007279780A JP 2006101299 A JP2006101299 A JP 2006101299A JP 2006101299 A JP2006101299 A JP 2006101299A JP 2007279780 A JP2007279780 A JP 2007279780A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- line
- image
- memory
- data
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 163
- 238000013500 data storage Methods 0.000 claims abstract description 32
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000011946 reduction process Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 102100021223 Glucosidase 2 subunit beta Human genes 0.000 description 1
- 101001040875 Homo sapiens Glucosidase 2 subunit beta Proteins 0.000 description 1
- 101000730665 Homo sapiens Phospholipase D1 Proteins 0.000 description 1
- 101000964266 Loxosceles laeta Dermonecrotic toxin Proteins 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Image Input (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
【課題】簡単安価なハードウェア構成により、高速に画像変倍処理を行なえる画像処理装置を提供する。
【解決手段】画像変倍処理対象の画像データを格納した画像データ格納メモリ2−2から、nラインの画像データ中の互いに隣接するn×n画素の画像データに対して所定の演算を行なうことにより1画素の画像データを出力する演算回路2−5に画像データを転送するために、nラインの画像データを格納し、該nライン中の画像データをアドレッシングして読み出し可能なラインメモリ2−4a〜2−4fを設ける。画像データ格納メモリ2−2からnラインの画像データを読み出し、ラインメモリに格納し、演算回路の所定の演算に必要な互いに隣接するn×n画素の画像データをアドレッシングしてラインメモリから読み出し、演算回路に転送する。余剰のラインメモリは、ラインメモリに対する入出力を同時に行なうパイプライン処理に用いる。
【選択図】図2
【解決手段】画像変倍処理対象の画像データを格納した画像データ格納メモリ2−2から、nラインの画像データ中の互いに隣接するn×n画素の画像データに対して所定の演算を行なうことにより1画素の画像データを出力する演算回路2−5に画像データを転送するために、nラインの画像データを格納し、該nライン中の画像データをアドレッシングして読み出し可能なラインメモリ2−4a〜2−4fを設ける。画像データ格納メモリ2−2からnラインの画像データを読み出し、ラインメモリに格納し、演算回路の所定の演算に必要な互いに隣接するn×n画素の画像データをアドレッシングしてラインメモリから読み出し、演算回路に転送する。余剰のラインメモリは、ラインメモリに対する入出力を同時に行なうパイプライン処理に用いる。
【選択図】図2
Description
本発明は、画像縮小または拡大の画像変倍処理を行なう画像処理装置に関するものである。
従来より、離散的なメモリアドレスに対するメモリアクセスが必要となるデータ処理の一例として、画像データの変倍、特に縮小処理がある。
図1は、従来の画像データの縮小処理を行なうデータ演算装置の構成を示している。図1において、1−1はフレーム画像メモリ、1−2はアドレスカウンタ、1−3はアドレスカウンタ用データテーブル、1−4a、1−4b、1−4c、1−4dはフリップフロップ、1−5は演算回路、1−6は表示回路である。
ここでは、簡略化のため、たとえば原画像の4画素から1画素を演算回路1−5で求め、表示回路1−6に送り表示させる縮小処理、およびそれに必要な回路構成を考えている。上記の従来構成において、画像縮小処理は次のように行なわれる。
処理対象の原画像の画像データ(たとえば1画素8ビットの輝度ないし濃度データ)は、不図示の入力手段(カメラや他の画像処理装置)から入力され、画面の左上や左下などの表示原点に対応するアドレスから順次フレーム画像メモリ1−1に格納される。
次に、予め不図示のCPUおよび数値演算プロセッサ等を用い、拡大率または縮小率から変換の対象となる原画像の画素の座標を求め、これに対応する画素アドレスの組(この例では出力する1画素を演算回路1−5で演算するのに必要な4画素)をアドレスカウンタ用データテーブル1−3に記憶させておく。
ここで、4画素−>1画素への変換の場合を考えると、通常この4画素は相互に隣接する4画素であり、2つの表示ライン上に存在する。このため、アドレスカウンタ用データテーブル1−3に格納しておく1組4画素のアドレスは全て連続しておらず、通常1表示ラインの長さに相当するアドレスギャップ(たとえば第3画素と第4画素との間に)が含まれる。どのような4画素を1組としてアドレスカウンタ用データテーブル1−3に格納しておくかは、どのような画像縮小処理を行なうかに応じてCPUによって決定される。
次に、アドレスカウンタ用データテーブル1−3のデータを読み出し、アドレスカウンタ1−2からフレーム画像メモリ1−1に対して変換の演算対象となる4画素のアドレスを順次出力し、その画素データをフリップフロップ1−4a、1−4b、1−4c、1−4dに対してそれぞれ出力させる。
フリップフロップ1−4a、1−4b、1−4c、1−4dは4画素のデータを並列に出力し、演算回路1−5に入力する。演算回路1−5は入力された2×2の画素データに対して予め定められた所定の演算(たとえば平均演算など)を行ない、演算結果として得られる1画素データが表示回路1−6(あるいは他の適当な出力手段)に出力され、表示される。
一方、フリップフロップ1−4a、1−4b、1−4c、1−4dから演算回路1−5にデータ出力が完了すると、これに同期して次のデータがフレーム画像メモリ1−1からフリップフロップ1−4a、1−4b、1−4c、1−4dへ出力される。
特開平5−108815号公報
図1に示したような従来のデータ演算装置は2×2のデータを演算回路1−5へ転送する度に外部メモリであるフレーム画像メモリ1−1にアクセスしなければならない。ここで、1画素のデータが8bitでフレーム画像メモリ1−1のデータバス幅が8bitの構成を考えると1回の変換動作でフレーム画像メモリ1−1に4回のアクセスが必要となり高速動作は期待できない。
そこで、フレーム画像メモリ1−1のデータバス幅を広げる、たとえば32bitに拡張することが考えられるが、この場合には2回のアクセスで必要とする4画素のデータを得ることができる。しかし、所期の画像処理に必要な画素が1回のアクセスで得られる4バイトのデータから外れた場合すなわち4バイトのミスアラインであった場合は、次または前のアドレスのアクセスが必要となり、この場合では4回のメモリアクセスが必要となる。このようにフレーム画像メモリ上のアクセスすべき画素のアドレスがバイト(あるいはワード)境界を外れることは、実行する画像の変倍処理や、縮尺倍率などによって充分あり得ることであり、したがってバス幅を拡張したからといって、画像処理の内容によってはその効果が十分に現れないこともある。
さらに、回路動作の信頼性の観点から同期回路動作を前提に考えると、図1のような従来構成では、フリップフロップ1−4a、1−4b、1−4c、1−4dへの供給クロックと、フリップフロップ1−4a、1−4b、1−4c、1−4dの出力データを処理する演算回路1−5のクロックには同一のクロックを使用することになる。したがって、回路の処理スピードを向上すべくクロック周波数を上げようとすると、演算回路1−5ばかりでなくフレーム画像メモリ1−1にも高速動作が可能な高価なメモリが必要になり、コストアップの要因となる問題がある。
また、図1のような従来構成では、アドレスカウンタ用データテーブル1−3が必要であり、メモリ等の余分なハードウェアが必要となりこれもコストアップの要因となる。また、アドレスカウンタ用データテーブル1−3には拡大、縮小率が変わるたびに情報を記憶させる(書き換える)動作が必要になる。したがって拡大、縮小率を頻繁に変更するシステムでは、このアドレスカウンタ用データテーブル1−3を更新する処理によりシステム全体のパフォーマンス低下を招く恐れがある。
なお、上記のバス幅拡張(例では32bit)の効果を得るため、図1のフリップフロップ1−4a、1−4b、1−4c、1−4dの部分にシフトレジスタを用いた構成が提案されている(たとえば上記の特許文献1)。特許文献1の構成では、画像メモリから読み出した32bit(4バイト)データをシフトレジスタに記憶することで有効にデータを使用可能としているが、一般にシフトレジスタはフリップフロップで構成されており、それぞれ1ライン分のシフトレジスタを用意することを考えると膨大な数のフリップフロップが必要となりコスト的に不利となる。また、図1のような従来構成と同様に演算回路とシフトレジスタを同一クロックで動作させる必要があり、この問題は特許文献1の構成にも存在する。
そこで、同一クロック駆動の問題とシフトレジスタを用いた場合の問題を解決するために、図1のフリップフロップ1−4a、1−4b、1−4c、1−4dの部分を4つのFIFO素子で構成する構成も考えられる。FIFO素子は入力と出力の供給クロック周波数が異なる場合でも動作可能なものが存在しており、FIFOを使用することによりフレーム画像メモリ1−1側と演算回路1−5側のクロックに異なる周波数を使用でき、高速なメモリを使用しなくてもよくなり、またシフトレジスタと違いFIFOはメモリ構造であり安価にデータ容量を増加することができる。
しかしながら、FIFOで構成した場合は、画像縮小処理において、演算に使用しないデータをFIFOから吐き出させる動作(とびとびに必要とするデータが存在する場合)が伴うので、その分処理が遅滞する、という問題がある。また、画像拡大時においては、一度読み出したデータを再度使用して演算するので、FIFOの後段に別途処理回路が必要となり回路が複雑化する問題がある。上述のFIFOの問題は、アドレスによりデータの書込み読み出しが出来ないことに起因しており、この種の画像変倍処理のためにFIFOを用いるのは適切ではない、と考えられる。
なお、以上では、画像変倍処理の一例として、4×4画素から1画素を演算して出力する画像変倍処理に関する問題点について述べたが、上記の問題点は演算回路によりn×n画素から1画素を演算して出力する、より一般的な画像変倍処理においても共通するものである。
本発明の課題は、上記の問題に鑑み、簡単安価なハードウェア構成により、高速に画像変倍処理を行なえる画像処理装置を提供することにある。
上記課題を解決するため、本発明においては、画像変倍処理対象の画像データを格納した画像データ格納メモリと、nラインの画像データ中の互いに隣接するn×n画素の画像データに対して所定の演算を行なうことにより1画素の画像データを出力する演算回路と、nラインの画像データを格納し、該nライン中の画像データをアドレッシングして読み出し可能なラインメモリとを有し、画像変倍処理において、前記画像データ格納メモリからnラインの画像データを読み出し、前記ラインメモリに格納し、前記演算回路の前記所定の演算に必要な互いに隣接するn×n画素の画像データをアドレッシングしてラインメモリから読み出し、前記演算回路に転送する構成を採用した。
あるいはさらに、前記ラインメモリとして、前記nラインを格納可能な本数以上のラインメモリが設けられ、前記ラインメモリから前記演算回路への画像データ出力と、前記画像データ格納メモリから前記ラインメモリへの後続画像データ入力を同時に行なうパイプライン処理を行なう構成を採用した。
あるいはさらに、前記nラインの画像データを、1ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なn×2本のラインメモリに分割して格納し、互いに隣接するn×n画素の画像データを同時にアドレッシングして各ラインメモリから前記演算回路に読み出す構成を採用した。
上記構成によれば、画像変倍演算を行なう演算回路に転送するn×n画素を、アドレッシング可能なラインメモリに格納するようにしているため、高速に必要な画素を演算回路に転送することができ、FIFOを用いる場合のようなメモリ入出力の非効率を生じず、また、高価なシフトレジスタなどを用いることなく、PLDなどを用いて簡単安価に画像処理ハードウェアを構成できる。
また、演算回路の演算に必要なnラインを格納可能な本数以上のラインメモリを設け、余剰のラインメモリを利用してラインメモリへの入出力をパイプライン処理により行なう構成とすることにより、画像変倍演算に必要な画像データ入出力のスループットを大きく向上することができる。
さらに、演算回路の演算に必要なnラインの画像データを、1ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なn×2本のラインメモリに分割して格納する構成とすることにより、互いに隣接するn×n画素の画像データを同時にアドレッシングして各ラインメモリから演算回路に読み出すことができ、さらなる画像データ入出力のスループット向上が可能となる。
以下、本発明を実施するための最良の形態の一例として、画像縮小または拡大の画像変倍処理を行なう画像処理装置に関する実施例を示す。
なお、以下では、演算回路によりn×n画素から1画素を演算して出力する画像変倍処理の一例として、4×4画素から1画素を演算して出力する画像変倍処理を例示する。また、以下では、説明を簡単にするため、1画素はグレースケールにより表現されるものとする。もちろん、下記の実施例の構成をn×n画素から1画素を演算して出力する構成に変更すること、また、グレースケール画像データの演算をカラー画像データの演算に変更することは容易に可能である。
図2は本発明の一実施例を示す画像処理装置の要部回路構成図である。図2において、符号2−1は画像入力端子、2−2は前述の従来例と同様の画像データ格納メモリ、2−3はセレクタ、2−4aはラインメモリ(1)、2−4bはラインメモリ(2)、2−4cはラインメモリ(3)、2−4dはラインメモリ(4)、2−4eはラインメモリ(5)、2−4fはラインメモリ(6)、2−5は演算回路、2−6は表示データ格納メモリ、2−7はアドレスジェネレータである。
図示のように、本実施例では、画像データ格納メモリ2−2から演算回路2−5に処理すべき画像データを送るための記憶手段としてラインメモリ2−4を用いた点に特徴がある。
本実施例でも、互いに隣接する4画素のデータに対して所定の変倍演算を行なうことにより1画素の画像データを得る処理を前提とするが、ラインメモリ2−4は、上記のようにラインメモリ(1)〜(6)の6本設けるようにしている。
通常、互いに隣接する4画素は、連続した画像データ2ライン上に存在するから、処理対象の4画素を含む2ラインを格納するには、1ラインの画像データを格納できるサイズのラインメモリを2本だけ設ければよい。しかしながら、本実施例では、6本のラインメモリ(1)〜(6)のうち、4本に処理対象の4画素を含む2ラインを格納する。
なお、このとき、後述のように画像データ1ラインは、偶数/奇数アドレスに分けて2本のラインメモリに格納する(図4)。このため、ラインメモリ(1)〜(6)の容量は、1ラインの半分の画像データを格納できるサイズ(あるいはそれ以上)あればよい。
上記処理対象の2ラインを格納したラインメモリから、4画素を演算回路2−5に読み出す時、残りの2本のラインメモリに画像データ格納メモリ2−2から後続の1ラインの画像データを転送する。この時、1ラインの画像データは、上記同様に偶数/奇数アドレスに分けて2本のラインメモリに格納する。
このようなラインメモリを用いた構成により、ラインメモリ(1)〜(6)への入力と出力を同時に行なうパイプライン処理が可能となり、スループットを向上することができる。
上記のようなパイプライン処理を行なうためには、画像処理に必要な2ライン分に加えて、画像データ格納メモリ2−2から後続のまだ読み出していない1ラインの画像データを転送できるだけのラインメモリ(上記のように偶奇アドレスを別に格納する場合には2本)を少なくとも設けておく。これは、画像データ1ラインが演算回路2−5で用いられる2ラインのうち第1のライン、および第2のラインとして2回の演算に用いられ、演算回路2−5の1回の演算ごとに次の演算のために転送が必要となるライン数は1ラインであるためである。なお、上記のようなパイプライン処理を行なわない場合には、ラインメモリ(1)〜(6)は、処理対象の4画素を含む2ラインを格納できる分(上記のように偶奇アドレスを別に格納する場合には4本)だけあればよい。
画像入力端子2−1から入力される画像データは、画像データ格納メモリ2−2に格納される。たとえば、原画像1ライン目、および2ライン目のデータを用いた最初の演算では、データをセレクタ2−3によってラインメモリ(1)2−4a、ラインメモリ(2)2−4b、ラインメモリ(3)2−4c、ラインメモリ(4)2−4dに振り分ける。
本実施例では、演算回路2−5は、拡大率/縮小率などの所期の変倍条件から演算に必要な4画素をアドレスジェネレータ2−7を介して各ラインメモリ上でアドレッシングする。アドレスジェネレータ2−7は演算対象の4画素が格納されているアドレスをラインメモリ(1)2−4a、ラインメモリ(2)2−4b、ラインメモリ(3)2−4c、ラインメモリ(4)2−4dに入力し、これにより、ラインメモリ(1)2−4a、ラインメモリ(2)2−4b、ラインメモリ(3)2−4c、ラインメモリ(4)2−4dから必要な画像データが演算回路2−5に入力される。また、演算回路2−5への画像データ読み出しと同時に、次の1ラインの画像データをラインメモリ(5)2−4e、ラインメモリ(6)2−4fに転送する。
演算回路2−5は入力された画像データに対して変倍演算を行ない、その結果を表示データ格納メモリ2−6に格納する。
以下、上記構成における画像処理をより詳細に説明する。以下では、1画面512×484の画像データを、1画面495×468の画像データに縮小する(変倍率は整数比ではなく、しかも縦横の変倍率が異なる)場合を例にして行なう。画像データ格納メモリ2−2には、1画面分以上の容量のものを用意する。
以上の構成において、画像データが画像データ格納メモリ2−2に1画面分格納された後、以下に示す式(2)から求まるYの整数部(演算に必要なライン)がセレクタ2−3へ入力され、セレクタ2−3が画像データ格納メモリ2−2からラインメモリ(1)2−4a、ラインメモリ(2)2−4b、ラインメモリ(3)2−4c、ラインメモリ(4)2−4dへの振り分けを開始する。
本実施例では、図1のようなアドレスカウンタ用データテーブル(1−3)を用いず、演算回路2−5が演算に必要な画素のアドレスを決定する。演算回路2−5では、演算対象のデータを効率良く選出するために以下の2式の演算を行ない、その結果をセレクタ2−3、およびアドレスジェネレータ2−7に与える。
X=縮小率×縮小x座標 +(縮小率−1) …(1)
Y=縮小率×縮小y座標 +(縮小率−1) …(2)
この式のX、Yの整数部の値が演算対象である4画素の左上画素の座標(メモリアドレス)となる。たとえば、縮小後座標(10,200)の縮小値を求める際に必要となる4画素の左上画素の座標は、上記式(1)および(2)を用いて算出すると、
X=(512/495)×10+(512/495−1)=10.377 …(1a)
Y=(512/495)×200+(512/495−1)=206.903 …(2a)
となり、演算対象4画素の左上の座標はX,Yそれぞれの整数部となるので、(10,206)となる。この場合、図3のように、画像データ格納メモリの(10,206)を着目画素としその周辺画素(11,206)、(10,207)、(11,207)を含む4画素のデータを用いて縮小演算を行ない、その結果の1画素が表示データ格納メモリの(10,200)に格納される。
Y=縮小率×縮小y座標 +(縮小率−1) …(2)
この式のX、Yの整数部の値が演算対象である4画素の左上画素の座標(メモリアドレス)となる。たとえば、縮小後座標(10,200)の縮小値を求める際に必要となる4画素の左上画素の座標は、上記式(1)および(2)を用いて算出すると、
X=(512/495)×10+(512/495−1)=10.377 …(1a)
Y=(512/495)×200+(512/495−1)=206.903 …(2a)
となり、演算対象4画素の左上の座標はX,Yそれぞれの整数部となるので、(10,206)となる。この場合、図3のように、画像データ格納メモリの(10,206)を着目画素としその周辺画素(11,206)、(10,207)、(11,207)を含む4画素のデータを用いて縮小演算を行ない、その結果の1画素が表示データ格納メモリの(10,200)に格納される。
また、Yの整数部を求める事で、演算対象となるラインが得られるので、演算回路2−5で求めたこのYの整数部の値をセレクタ2−3に与える。これにより、セレクタ2−3は演算に必要なラインが画像データ格納メモリ2−2から取り出しラインメモリ(1)〜(6)に振り分けられる。
セレクタ2−3による1ライン目、および2ライン目の振り分けの詳細は図4、および図5(a)のように行なわれる。このとき、図5(a)のようにラインメモリ(1)、ラインメモリ(2)にYの整数部の値1ライン分のデータが、ラインメモリ(3)、ラインメモリ(4)に次の(Y+1)の整数部の値1ライン分のデータが格納されるが、1ライン目の偶数アドレスの画素データはラインメモリ(1)に、1ライン目の奇数アドレスの画素データはラインメモリ(2)に格納する。同様に、2ライン目の偶数アドレスの画素データをラインメモリ(3)に、2ライン目の奇数アドレスの画素データをラインメモリ(4)へ格納する。
このように、偶数/奇数アドレスの画素を別のラインメモリに格納する構成により、演算回路2−5の演算に必要な互いに隣接する4画素は、4つのラインメモリから同時に並行して読み出すことができ、処理速度向上を期待できる。
ラインメモリ(1)、ラインメモリ(2)、ラインメモリ(3)、ラインメモリ(4)へのデータ格納が完了し、演算回路2−5で演算が開始されると、図5(b)のように3ライン目の偶数画素のデータをラインメモリ(5)に、3ライン目の奇数画素のデータをラインメモリ(6)へ格納する。
1ライン目、2ライン目の演算が終了すると、2ライン目のラインメモリ(2)、(3)のデータと3ライン目のラインメモリ(5)、(6)のデータでの演算が開始される。この演算が開始されると、図5(c)のように4ライン目のデータをラインメモリ(1)、(2)に格納する。
さらに、2ライン目と3ライン目の演算が終了すると、図5(d)のように3ライン目のラインメモリ(5)、(6)のデータと4ライン目のラインメモリ(1)、(2)での演算が開始される。
以上のように、画像データ格納メモリ2−2から2ラインの画像データを4本のラインメモリに転送し、演算回路2−5の演算が開始されると同時に次の1ラインの画像データを残りの2本のラインメモリに転送するパイプライン処理を繰り返す事により、画像変倍に必要な画像データを画像データ格納メモリ2−2から演算回路2−5に転送することができる。
以上の構成によれば、ある2つのラインを用いた演算が終了した時点で、次の演算に必要な2ライン分のデータがラインメモリに格納済みとなっているので、画像データ格納メモリからのデータ転送を待たずに次の演算を行える。
ここで、演算回路2−5での演算の際に必要な4画素のデータをラインメモリ(1)〜(6)から読み出す手順を示す。演算回路2−5は、式(1)で求めたXの整数部の値をアドレスジェネレータ2−7へ転送する。この値は縮小演算に必要な4画素の左上画素のx座標値であるが、図6に示したようにx座標が指し示す個所が着目画素となる。x座標値を受け取ったアドレスジェネレータ2−7は、演算において図6のAの位置に入るデータが格納されているラインメモリのアドレスを指しこのAのアドレスを元にB、C、Dのアドレスも生成する。
このようにして生成した4つのアドレスをラインメモリに並列に与える事によって、ラインメモリから図6の原画像データ6−1の4画素A,B,C,Dのデータをラインメモリから並列に演算器へ入力できる。ここで演算器2−5では入力された4画素を用いた演算は図9のように行ない、図9のSの値が演算結果のデータ縮小画像データ6−2となり表示データ格納メモリ2−6に転送される。
図9の演算は、上述の場合と同様に1画面512×484の画像データ(9−1)を、1画面495×468の画像データ(9−2)に縮小する例であるが、ここでは演算に採用する縮小率は式(1a)、(2a)の場合の512/495(x方向)と異なり、y方向に関する484/468を採用している。
この場合、縮小画像(9−2)の画素(10,206)に対応する原画像(9−1)中の4画素の左上の着目画素は(484/468)*(10,206)=(10.34,206.84)と求められ(実数表現)、この整数部に対応する画素(10,206)を着目画素S00とし、この着目画素と、その周辺画素S10、S01、S11、すなわち周辺画素(11,206)、(10,207)、(11,207)の4画素が演算に用いられる。
そして、縮小画像(9−2)の画素(10,206)として出力すべき画素(9−3)の階調度Sは、図9下部の演算式の通り、着目画素S00、および周辺画素S10、S01、S11の階調度から、
S =(11−10.34)*(207−206.84)*S00
+(10.34−10)*(207−206.84)*S10
+(11−10.34)*(206.84−206)*S01
+(10.34−10)*(206.84−206)*S11
と求められる。この演算は、図9の各ハッチングで示した通り、実数表現の着目画素(10.34,206.84)が、それぞれの着目画素S00、および周辺画素S10、S01、S11上で占める割合づつ、各画素の階調度を加算するものである。
S =(11−10.34)*(207−206.84)*S00
+(10.34−10)*(207−206.84)*S10
+(11−10.34)*(206.84−206)*S01
+(10.34−10)*(206.84−206)*S11
と求められる。この演算は、図9の各ハッチングで示した通り、実数表現の着目画素(10.34,206.84)が、それぞれの着目画素S00、および周辺画素S10、S01、S11上で占める割合づつ、各画素の階調度を加算するものである。
なお、本実施例では、画像データはグレースケール表現であるものとしたが、カラー画像(たとえばRGB表現)であっても、同様の演算により縮小画像データを演算できる。
図9に示した演算対象の4画素を取り出す動作において、縮小処理では図7のように画像データ2ライン(7−1)中の飛び飛びの画素データを縮小演算(7−2)に使用するが、ラインメモリを用いることにより、その飛び飛びとなるアドレスをラインメモリ(1)〜(6)に対してアドレッシングでき、ダイレクトに目的のデータのみを取出せるので無駄な動作が発生しない。同様に、拡大処理においても、図8のように、画像データ2ライン(8−1)中の同じ画素データを再度拡大演算(8−2)に使用する場合もラインメモリ(1)〜(6)に対して同じアドレスを指定することでデータを読み出す事ができる。
各ラインメモリ2−4((1)〜(6))、アドレスジェネレータ2−7、演算回路2−5の周波数を上げればその分ラインメモリ(1)〜(6)から演算回路2−5へのデータ転送時間、演算回路2−5での演算処理時間が高速になり、拡大、縮小処理の高速化が実現できる。さらに演算中に次に演算対象となる画素ラインを取得できるため演算回路の動作周波数を上げた場合でも低速なメモリを画像格納メモリに使用できるためコストを抑える事ができる。
演算回路を含む全ての構成はハードウェアのみで構成できリアルタイムに拡大、縮小処理を実施することが出来る。特に、本発明の画像処理装置は、PLD(Programmable Logic Device)を用いて容易に構成できる。近年ではPLDは大容量のものを安価で入手可能であり、比較的データ格納領域の大きい画像データ格納メモリ2−2、表示データ格納メモリ2−6の部分を除き、ほぼPLD内部のリソースを使用して安価なPLD1チップで構成することができる。
また、上記実施例では、画像の変倍処理(拡大/縮小)を例示したが、本発明によれば、演算回路、ラインメモリ構成および画像データ格納メモリからデータをラインメモリに振り分けるセレクタ動作、ラインメモリから演算対象データを読み出すアドレスジェネレータのアドレス出力方法を変更することにより、特定の画像データ処理に必要な画素を複数ラインから選んで転送することができ、変倍処理以外の画像データ処理にも利用できる。
本発明は、画像縮小または拡大の画像変倍処理をハードウェアにより行なう種々の画像処理装置に適用できる。
2−2 画像データ格納メモリ
2−3 セレクタ
2−4a〜2−4f ラインメモリ
2−5 演算回路
2−6 表示データ格納メモリ
2−7 アドレスジェネレータ
2−3 セレクタ
2−4a〜2−4f ラインメモリ
2−5 演算回路
2−6 表示データ格納メモリ
2−7 アドレスジェネレータ
Claims (3)
- 画像変倍処理対象の画像データを格納した画像データ格納メモリと、
nラインの画像データ中の互いに隣接するn×n画素の画像データに対して所定の演算を行なうことにより1画素の画像データを出力する演算回路と、
nラインの画像データを格納し、該nライン中の画像データをアドレッシングして読み出し可能なラインメモリとを有し、
画像変倍処理において、前記画像データ格納メモリからnラインの画像データを読み出し、前記ラインメモリに格納し、前記演算回路の前記所定の演算に必要な互いに隣接するn×n画素の画像データをアドレッシングしてラインメモリから読み出し、前記演算回路に転送することを特徴とする画像処理装置。 - 前記ラインメモリとして、前記nラインを格納可能な本数以上のラインメモリが設けられ、前記ラインメモリから前記演算回路への画像データ出力と、前記画像データ格納メモリから前記ラインメモリへの後続画像データ入力を同時に行なうパイプライン処理を行なうことを特徴とする請求項1に記載の画像処理装置。
- 前記nラインの画像データを、1ライン中の偶数アドレスの画素データと奇数アドレスの画素データをそれぞれ同時に入出力アクセスが可能なn×2本のラインメモリに分割して格納し、互いに隣接するn×n画素の画像データを同時にアドレッシングして各ラインメモリから前記演算回路に読み出すことを特徴とする請求項1に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006101299A JP2007279780A (ja) | 2006-04-03 | 2006-04-03 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006101299A JP2007279780A (ja) | 2006-04-03 | 2006-04-03 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007279780A true JP2007279780A (ja) | 2007-10-25 |
Family
ID=38681198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006101299A Pending JP2007279780A (ja) | 2006-04-03 | 2006-04-03 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007279780A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017208540A1 (ja) * | 2016-05-30 | 2017-12-07 | ソニー株式会社 | 画像処理装置、画像処理方法、および、プログラム |
-
2006
- 2006-04-03 JP JP2006101299A patent/JP2007279780A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017208540A1 (ja) * | 2016-05-30 | 2017-12-07 | ソニー株式会社 | 画像処理装置、画像処理方法、および、プログラム |
CN109074626A (zh) * | 2016-05-30 | 2018-12-21 | 索尼公司 | 图像处理装置、图像处理方法以及程序 |
US20190156463A1 (en) * | 2016-05-30 | 2019-05-23 | Sony Corporation | Image processing apparatus, image processing method, and program |
US10853919B2 (en) | 2016-05-30 | 2020-12-01 | Sony Corporation | Image processing apparatus, image processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2637920B2 (ja) | コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法 | |
CN105845103B (zh) | 用于分区图像缩放的设备和方法 | |
JP2001195230A (ja) | 描画処理システム、及び描画演算を行う半導体集積回路 | |
JP3623972B2 (ja) | 図形描画処理装置 | |
JPH0536276A (ja) | メモリーコントロールデバイス | |
US20070041662A1 (en) | Efficient scaling of image data | |
US20110032262A1 (en) | Semiconductor integrated circuit for displaying image | |
JP2010081024A (ja) | 画像補間処理装置 | |
JP4182575B2 (ja) | 記憶装置および画像データ処理装置 | |
JP2007279780A (ja) | 画像処理装置 | |
JP2000324337A (ja) | 画像拡大縮小装置 | |
GB2577062A (en) | Methods, apparatus and processor for producing a higher resolution frame | |
JP2003132347A (ja) | 画像処理装置 | |
JP2013195963A (ja) | 画像処理装置、集積回路装置及び画像表示システム | |
US9390471B1 (en) | Device and method for image scaling | |
JP4828006B2 (ja) | 画像処理装置 | |
JP4081860B2 (ja) | 画像処理装置 | |
JP2004294973A (ja) | ディジタル画像処理装置 | |
JP2002182639A (ja) | 画像処理装置 | |
US6489967B1 (en) | Image formation apparatus and image formation method | |
JP2002229554A (ja) | 画像処理装置 | |
JP3090644B2 (ja) | 画像データ処理装置及びそれを用いたシステム | |
JP2003225392A (ja) | パチンコ機の画像転送装置 | |
JP2000232623A (ja) | 映像メモリ回路 | |
JP2002258827A (ja) | 画像表示装置 |