JP5092270B2 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
JP5092270B2
JP5092270B2 JP2006122161A JP2006122161A JP5092270B2 JP 5092270 B2 JP5092270 B2 JP 5092270B2 JP 2006122161 A JP2006122161 A JP 2006122161A JP 2006122161 A JP2006122161 A JP 2006122161A JP 5092270 B2 JP5092270 B2 JP 5092270B2
Authority
JP
Japan
Prior art keywords
data
binary pixel
pixel data
reading
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.)
Expired - Fee Related
Application number
JP2006122161A
Other languages
English (en)
Other versions
JP2007293684A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2006122161A priority Critical patent/JP5092270B2/ja
Publication of JP2007293684A publication Critical patent/JP2007293684A/ja
Application granted granted Critical
Publication of JP5092270B2 publication Critical patent/JP5092270B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Color, Gradation (AREA)
  • Image Processing (AREA)
  • Storing Facsimile Image Data (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は画像処理技術に関し、特に複写機・プリンター用途などの画像処理に最適なものである。
画像処理を行う中で、メモリ(例えばバンドバッファ)からデータを取り込み、レジスタに格納して処理を行う場合、特にフィルタなどの処理を行う場合、大量のレジスタが必要になるばかりでなく、それをメモリから読み出し、中間データなどをメモリに戻す事になり、それだけで膨大なサイクル数が必要になる。例えば、11x11のフィルタ処理の場合、121データを格納するレジスタが必要になる。
この様な膨大なレジスタは、通常のプロセッサにはなく、処理を分割しながら行わなくてはならないので、処理時間が低下する。専用ハードウェアにおいても回路規模が増大しコストアップになる。
なお、本発明と関連する先行技術としては以下のものがある。
まず、メモリの削減として、画素単位が8ビットでない場合、パッキングして8ビットにする事で、メモリにあったビット幅に整合させ、もって、無駄無く格納する方式(10ビットの多値データを上位8ビットと下位2ビットに分け、下位2ビットを4サンプルまとめて8ビット・パッキングする構成が知られている(例えば特許文献1)。
また、転送効率を上げる方法として、2値化されたデータを32ビット単位でパッキングする事で転送効率をあげ、ファームウェアの負荷を低減する方式などが提案されている(例えば特許文献2)。
しかしながら、これらは画像データを格納あるいは転送する際にデータパッキングを行うだけである。
特開平7−105638号公報 特開2002−211051公報
この発明は、以上の事情を考慮してなされたものであり、とくに2値画素データのフィルタ処理等の画像処理を少ないハードウェアで高速に実行する画像処理技術を提供することを目的としている。
この発明の原理的な構成例では、画像を処理する2次元の単位(ウィンドサイズ)に依存した大きさで2値画素データパッキングする事で、ウィンド処理を高速に処理する。
例えば7×7の画像処理単位の場合7画素を1つにパッキングする。アクセス方向をカラム方向とすると、バンドまたはページの高さ分の中間ファイルだけで処理でき、Nライン全部のデータを記憶する必要がないので、メモリサイズを削減する事ができる。
データをパックするため、メモリからのデータの読み出し、書き込みアクセスが高速になる。
このように、画像処理を行う中で、画像データをパッキングした状態で処理する事で、メモリ容量の削減と高速処理を実現できる。
具体的には、ウィンドサイズに依存したサイズでデータパッキングを行う事で(2値化データの場合、典型的には1バイトもしくは2バイト)、メモリ容量を削減でき、さらに、1回の命令(=1サイクル)で複数画素に相当するパッキングデータをアクセスでき、処理の高速化がはかれる。
画像処理で2次元データ(ウィンド処理)を扱う場合、ウィンドサイズに比例した量の画像データを一時的に確保しなくてはならない。例えば、7x7のウィンド処理を行う場合、7ラインのデータを保持することになる。これを7ビット分を1バイトに入れる事で、7倍の高速化と1/7のメモリサイズで済む。
さらに本発明を説明する。
この発明によれば、上述の目的を達成するために、画像処理装置に:第1の方向に並ぶ所定数の2値画素データを記憶アクセス単位の一まとまりのデータとして記憶する記憶手段と;上記第1の方向と直交する第2の方向に連続する所定の複数の一まとまりのデータを上記記憶手段から読み出す手段と;読み出された複数の一まとまりのデータが構成する処理対象領域(ウィンドともいう)内の画素に対して画像処理を実行する手段とを設けている。
この構成においては、画像データをパッキングした状態で処理する事で、メモリ容量の削減と高速処理を実現できる。
この構成において、上記所定数は、典型的には、上記処理対象領域の上記第1の方向のサイズより小さい。この場合、上記処理対象領域の上記第1の方向のサイズと上記所定数の差分だけ上記第2の方向に連続する複数の一まとまりのデータに対し上記処理対象領域の進行方向に隣接する2値画素データを読み出し、上記第2の方向に連続する複数の一まとまりのデータと上記隣接する2値画素データとにより上記処理対象領域を形成する画素データを構成し、当該画素データに対して上記画像処理を実行する。
上記差分は典型的には1であるが、2以上でもよい。差分がゼロでもよい。
また、上記画像処理は、典型的には、上記第2の方向にずらしながら実行し、上記第2の方向にずらしながらの一連の画像処理が終了した後、上記第1の方向にずらして上記一連の画像処理を実行し、上記第2の方向にずらす度に最も古い一まとまりのデータをビットシフトさせて上記隣接する2値画素データを組みこんだ一まとまりのデータに更新して上記記憶手段に書き戻す。
上記画像処理は、典型的には、フィルタ処理であるが、これに限定されない。上記画像処理は上記処理対象領域中のすべての2値画素データがゼロであるかどうかを判別する処理を含んでもよい。また、上記画像処理は上記処理対象領域中の2値画素データが所定のパターンにマッチングするかどうかを判別する処理を含んでもよい。
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
この発明によれば、画像データをパッキングした状態で処理する事で、メモリ容量の削減と高速処理を実現できる。
以下、この発明の実施例について説明する。
図1は、この発明の実施例の画像処理装置10を全体として示すとともに、その処理手順を模式的に示している。なお、画像処理装置10は、画像処理システム全体に対応しても良いし、その一部、例えば画像処理プロセッサに対応してもよい。前者は例えば後述する実施例3の画像処理システムであり、後者はそのDSP(デジタルシグナルプロセッサ)である。
以下の説明では、図2に示すようにページをバンドに分割しバンドバッファのカラム方向に画像処理(例えばフィルタ処理)を行なう。すなわち、ウィンドおよび注目画素を矢印に示すように移動させて画像処理を行う。もちろんライン方向に移動させて画像処理を行ってもよい。
また、以下の例では、7×7のウィンドサイズの処理を行うが、このサイズは任意のものでよい。
図1において、画像処理装置10は、中間メモリ101、レジスタ群102、および処理実行部103を含んで構成される。画像処理装置10は2値化データを1画素ずつ入力して1画素ずつ出力する。もちろん、この入出力のレベルでもデータパッキングを行って、例えば、8画素分または16画素分のデータを一度に入出力しても良い。
中間メモリ101は、2値化データを6画素分パックして1バイト分のデータとして読み出し書き込みするものである。この例では、6ビットのデータ(1バイトまたは1ワード。未使用の余分なビット位置があるが、これは種々のフラグ等に用いても良いし、未使用のままにしてもよい)をバンドバッファの高さサイズ(H)分、格納する。中間メモリ101の容量はHバイトあればよい。入力2値化データは順次にカレントラインとして示されるように入力され、入力2値化データに対応するバイト位置の6ビットのパッキングデータが解凍されて7ビットのデータに結合されてレジスタ群102の対応する位置のレジスタに書き込まれる。各注目画素について、7ライン分の7ビットのデータが対応するレジスタに書き込まれ、合計7×7の2値化データがレジスタ群102に格納される。そして、処理実行部103が、レジスタ群102から7×7の2値化データを読み出して注目画素に対する画像処理(例えばフィルタ処理)を行う。画像処理結果は画像処理装置10から出力される。
1つの注目画素について7×7の画像処理が完了すると、注目画素の位置(ウィンドの位置)をカラムの下方向(処理方向)に進める。このとき、ウィンドの一番上のラインの6ビットのデータは、しばらく使用しないので、1ビットシフトさせて中間メモリ101に書き戻す。他方、ウィンドの下のラインの6ビットのデータを新たに中間メモリ101から読み出して、これにカレントラインのビットを連結して、さきの書き戻したレジスタに書き込む。
このようにしてバンドバッファのカラム方向に1ビットずつウィンドを移動させて画像処理を行っていく。カラム方向の処理が終了したら、ライン方向に1ビット分ずらしてカラム方向の最上部から同様な処理を行う。以上の処理をバンドバッファの各2値化データについて行ない。バンドバッファで各バンドの処理を終了すると1ページ分の処理が終了する。
図1に示す処理フローを説明する。
1バンドに格納されたH本のラインを、1画素ごと、縦方向に読み出し処理を行う(、図2)。この時、カレントのカラムに着目すると、前に処理した6画素が1バイトにパッキングして中間メモリ101(内部メモリ)へ格納されている(「6bitパッキングしたデータ」)。最新のカレント画素(カレントのコラムの上から7個目の現在処理中の画素、注目画素)は、6画素パッキングされた1バイト・データとマージして7画素データを作る。これをレジスタ群102の対応する1レジスタに格納する(パッキング解凍してレジスタ群102に格納)。同様にして7レジスタで、7つのデータを格納する。1つのレジスタには7画素格納されているので、これが7つで7x7の処理を行うデータがそろう。これで7x7の処理を行い、結果を出力する。
7つのレジスタデータの内、一番古いレジスタデータは次の処理では使用しないため、中間メモリ101へ格納する(パッキングの更新)。ここで、このレジスタのデータをそのまま中間メモリへの格納するのではなく、この中でさらに一番古いbitデータは使用しないので、全体を1ビットシフトして、次のカレントのカラムで使用する6ビットのみに更新してから格納する。こうする事で、次のカレントデータとのマージを簡単に実現できる。
つぎに実施例2について説明する。図3に示すように、実施例2は、13×13のウィンドを用いた例である。この例では、12ビットを例えば1ワード(2バイト)のデータとしてパッキングして中間メモリ101(図1)に格納する。そしてカレントの1ビットと中間メモリ101の12ビットとを連結して13ビットのレジスタに書き込む。他の構成・動作は実施例1と同様である。この場合も、実施例1と同様にして使用済みのデータをビットシフトして中間メモリ101に書き戻し、つぎのカラム方向の画像処理に備える。
つぎにこの発明を適用した具体的な画像処理システム20について説明する。
図4はこの画像処理システム20を全体として示しており、この図において、画像処理システム20は、ホストCPU201、ページメモリ202、DSP203、およびバンドバッファ204を含んで構成されている。DSP203はプロセッサ203aおよび内部バッファ(キャッシュメモリとして示している)203bを含んで構成されている。プロセッサ203aは、フィルタ処理等の画像処理を行うプロセス(プログラム)を実行する。内部メモリ203bが中間データをバイト単位で読み書きするものである。
ページメモリ202のデータはバンド単位でバンドバッファ204に格納される。
この例では、図5に示すように、5×5のウィンドサイズの画像処理を行ない。注目画素D22について処理を行うために、D00〜D30をカレントデータD40と連結し、D01〜D31をカレントデータD41と連結し、D02〜D32をカレントデータD42と連結し、D03〜D33をカレントデータD43と連結し、D04〜D34をカレントデータD44と連結してレジスタ群(内部メモリ203bに割り当てられてもよいし、内部レジスタを用いても良い)に書き込み、このレジスタ群の5×5のデータに対してプロセッサ203aの画像処理プロセスが画像処理を行ない、処理結果を出力する(任意のメモリ領域に格納してバンド単位で出力する)。バンド単位の処理結果はページメモリ202に戻される。
なお、ビットシフトの態様は実施例1と同様であり、図6に示されるとおりである。
以上で実施例の説明を終了する。
なお、この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述の例では、中間メモリに格納されたパッキング済みの複数画素分のデータとカレントの1画素分のデータとを連結してレジスタに格納して画像処理を行ったが、2以上の画素分のデータをカレントのデータとして利用できるようにすれば、2以上の画素分のデータを連結しても良い。この場合、パッキングの複数画素数はその分少なくなる。また、中間メモリに格納されているパッキングデータのみを利用して画像処理を行うようにしても良い。例えばパッキングデータをnビットとしてウィンドサイズをn×nまたはそれ以下としてもよい。
また、画像処理としては典型的にはフィルタ処理等であるが、図7に示すように、ウィンド中の画素がオールゼロであるかどうかを判別する処理を含む処理を行うこともでき、また、図8に示すようにパターンマッチングの処理を行っても良い。
すなわち、図7に示すように、パッキングした各データA〜Eがすべてゼロであれば、対応するD00〜D34の4×5のマスク内の画素値がすべてゼロであることがわかる。各データの論理和、論理積は一括して行えるので処理が高速である。こののち、D40〜D44のカレントラインをビットシフトしてパッキングしたデータA〜Eを更新する。
また、図8に示すようにパターンのテンプレート(パッキングデータと同じバイトまたはワードデータ)とパッキングデータとの排他的論理和をとってすべての排他的論理和がゼロとなったときにパターンの一致を検出できる。
この発明の実施例1の構成および動作を説明する図である。 実施例1の処理方向の例を説明する図である。 この発明の実施例2を説明する模式図である。 この発明の実施例3を説明する図である。 実施例3の動作を説明する図である。 実施例3の動作を説明する図である。 上述実施例の変形例を説明する図である。 上述実施例の他の変形例を説明する図である。
符号の説明
10 画像処理装置
20 画像処理システム
101 中間メモリ
102 レジスタ群
103 処理実行部
202 ページメモリ
203a プロセッサ
203b 内部メモリ
204 バンドバッファ

Claims (4)

  1. 画像処理対象の2値画素データを記憶する第1の記憶手段と、
    カラム方向に連続する所定のN個(Nは複数)の2値画素データを上記第1の記憶手段から、順次読み出す第1の読出手段と、
    上記第1の記憶手段から順次読み出したN個の2値画素データのうち、ライン方向に並ぶ所定数の2値画素データを記憶アクセス単位の一まとまりのデータとして記憶する第2の記憶手段と、
    カラム方向に連続する所定のN個の一まとまりのデータを上記第2の記憶手段から読み出す第2の読出手段と、
    上記第2の読出手段により読み出されたN個の一まとまりのデータと、上記第1の読出手段により読み出されたN個の2値画素データと、が構成する処理対象領域内の画素に対して画像処理を実行する手段と、
    上記第2の記憶手段に記憶されている上記N個の一まとまりのデータ毎に、上記第1の読出手段により読み出されたN個の2値画素データをそれぞれ追加して、1ビットシフトさせて当該N個の一まとまりのデータを更新して上記第2の記憶手段に更新書き込みする更新手段と、
    を有することを特徴とする画像処理装置。
  2. 画像処理対象の2値画素データを記憶するバンドバッファと、
    カラム方向(縦方向)に連続する所定のH個(Hは複数)の2値画素データを上記バンドバッファから、順次読み出す第1の読出手段と、
    上記バンドバッファから順次読み出したH個の2値画素データのうち、ライン方向(横方向)に並ぶ所定数の2値画素データを記憶アクセス単位のパッキングデータとして記憶する内部メモリと、
    カラム方向に連続するH個のパッキングデータを上記内部メモリから読み出す第2の読出手段と、
    第1の読出手段から読み出されたH個の2値画素データと、第2の読出手段から読み出されたH個のパッキングデータと、が構成する処理対象領域内の画素に対して画像処理を実行する手段と、
    上記内部メモリに記憶されている上記H個のパッキングデータ毎に、上記第1の読出手段により読みだされたH個の2値画素データをそれぞれ追加して、1ビットシフトさせて当該H個のパッキングデータを更新して上記第2の記憶手段に更新書き込みする更新手段と、
    を有することを特徴とする画像処理装置。
  3. コンピュータを、
    画像処理対象の2値画素データを記憶する第1の記憶手段、
    カラム方向に連続する所定のN個(Nは複数)の2値画素データを上記第1の記憶手段から、順次読み出す第1の読出手段、
    上記第1の記憶手段から順次読み出したN個の2値画素データのうち、ライン方向に並ぶ所定数の2値画素データを記憶アクセス単位の一まとまりのデータとして記憶する第2の記憶手段、
    カラム方向に連続する所定のN個の一まとまりのデータを上記第2の記憶手段から読み出す第2の読出手段、
    上記第2の読出手段により読み出されたN個の一まとまりのデータと、上記第1の読出手段により読み出されたN個の2値画素データと、が構成する処理対象領域内の画素に対して画像処理を実行する手段、
    上記第2の記憶手段に記憶されている上記N個の一まとまりのデータ毎に、上記第1の読出手段により読み出されたN個の2値画素データをそれぞれ追加して、1ビットシフトさせて当該N個の一まとまりのデータを更新して上記第2の記憶手段に更新書き込みする更新手段、
    として機能させるための画像処理用コンピュータプログラム。
  4. コンピュータを、
    画像処理対象の2値画素データを記憶するバンドバッファ、
    カラム方向(縦方向)に連続する所定のH個(Hは複数)の2値画素データを上記バンドバッファから、順次読み出す第1の読出手段、
    上記バンドバッファから順次読み出したH個の2値画素データのうち、ライン方向(横方向)に並ぶ所定数の2値画素データを記憶アクセス単位のパッキングデータとして記憶する内部メモリ、
    カラム方向に連続するH個のパッキングデータを上記内部メモリから読み出す第2の読出手段、
    第1の読出手段から読み出されたH個の2値画素データと、第2の読出手段から読み出されたH個のパッキングデータと、が構成する処理対象領域内の画素に対して画像処理を実行する手段、
    上記内部メモリに記憶されている上記H個のパッキングデータ毎に、上記第1の読出手段により読みだされたH個の2値画素データをそれぞれ追加して、1ビットシフトさせて当該H個のパッキングデータを更新して上記第2の記憶手段に更新書き込みする更新手段、
    として機能させるための画像処理用コンピュータプログラム。
JP2006122161A 2006-04-26 2006-04-26 画像処理装置および方法 Expired - Fee Related JP5092270B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006122161A JP5092270B2 (ja) 2006-04-26 2006-04-26 画像処理装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006122161A JP5092270B2 (ja) 2006-04-26 2006-04-26 画像処理装置および方法

Publications (2)

Publication Number Publication Date
JP2007293684A JP2007293684A (ja) 2007-11-08
JP5092270B2 true JP5092270B2 (ja) 2012-12-05

Family

ID=38764251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006122161A Expired - Fee Related JP5092270B2 (ja) 2006-04-26 2006-04-26 画像処理装置および方法

Country Status (1)

Country Link
JP (1) JP5092270B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2992178B2 (ja) * 1993-06-24 1999-12-20 シャープ株式会社 画像処理装置
JP3346916B2 (ja) * 1994-10-31 2002-11-18 株式会社リコー 画像回転装置
JPH08279897A (ja) * 1995-04-04 1996-10-22 Fuji Xerox Co Ltd 画像処理装置
JP4217332B2 (ja) * 1999-03-09 2009-01-28 キヤノン株式会社 画像処理装置及びその方法、コンピュータ可読メモリ
JP2002240365A (ja) * 2001-02-21 2002-08-28 Canon Inc 記録装置

Also Published As

Publication number Publication date
JP2007293684A (ja) 2007-11-08

Similar Documents

Publication Publication Date Title
JP5593060B2 (ja) 画像処理装置、および画像処理装置の動作方法
US11308171B2 (en) Apparatus and method for searching linked lists
US10885115B2 (en) Accessing an N-way linked list
JP3955741B2 (ja) ソート機能を有するsimd型マイクロプロセッサ
US6684267B2 (en) Direct memory access controller, and direct memory access control method
JP2010108084A (ja) 画像処理装置
US7584237B1 (en) Fast hardware divider
JP5092270B2 (ja) 画像処理装置および方法
US8135229B1 (en) Image processing method and device
US9395982B1 (en) Atomic memory operations on an N-way linked list
CN109756231B (zh) 循环移位处理装置及方法
KR101672539B1 (ko) 그래픽 처리 유닛 및 그 캐싱 방법
JP2007073010A (ja) Simd方式プロセッサ、当該simd方式プロセッサを利用する画像処理方法、及び画像処理装置
JP5742427B2 (ja) 画像処理装置
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP2003030129A (ja) データバッファ
JP2007206924A (ja) 演算処理システム
JP4516495B2 (ja) Simd型マイクロプロセッサにおけるデータ処理方法
JP5760532B2 (ja) プロセッサ装置及びその演算方法
JP2000222449A (ja) 図形処理方法
JP5803000B2 (ja) Dma装置、情報処理装置、及びデータ転送方法
WO2021060135A1 (ja) 少命令セット組み込みプロセッサ
CN1937404B (zh) 滤波器组及改善其效能的方法
JP2009055291A (ja) 動き検出回路
JPS62107339A (ja) マイクロコンピユ−タの命令構成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120821

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120903

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees