JP2009151571A - 画像データ供給装置及び方法 - Google Patents

画像データ供給装置及び方法 Download PDF

Info

Publication number
JP2009151571A
JP2009151571A JP2007329208A JP2007329208A JP2009151571A JP 2009151571 A JP2009151571 A JP 2009151571A JP 2007329208 A JP2007329208 A JP 2007329208A JP 2007329208 A JP2007329208 A JP 2007329208A JP 2009151571 A JP2009151571 A JP 2009151571A
Authority
JP
Japan
Prior art keywords
image
pixel
band
holding memory
input
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.)
Granted
Application number
JP2007329208A
Other languages
English (en)
Other versions
JP2009151571A5 (ja
JP5209953B2 (ja
Inventor
Hiroo Inoue
博夫 井上
Takashi Ishikawa
尚 石川
Akitoshi Yamada
顕季 山田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007329208A priority Critical patent/JP5209953B2/ja
Priority to US12/338,265 priority patent/US8295598B2/en
Publication of JP2009151571A publication Critical patent/JP2009151571A/ja
Publication of JP2009151571A5 publication Critical patent/JP2009151571A5/ja
Application granted granted Critical
Publication of JP5209953B2 publication Critical patent/JP5209953B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Abstract

【課題】処理対象画像のバンド単位処理において、フィルタ処理などを行う際に、画像の端部において不足する画像の領域外の参照画素を少ないメモリ量で効率よく生成する。
【発明の効果】画像データ供給装置は、画像をバンド単位に分割して得られたバンド画像を、副走査方向に走査して得られた画素値を順次に入力し、入力された画素値のバンド画像における画素位置に基づいて算出された格納アドレスに従って保持メモリへ当該画素値を書き込む。そして、後段の画像処理部が必要とする画素位置に対応した画素値を保持メモリから読み出して画像処理手段へ供給する。ここで、後段の画像処理部が必要とする画素位置が、バンド画像の外側の参照領域の場合には、当該参照領域の画素位置を保持メモリの格納アドレスへ変換し、保持メモリの変換された格納アドレスから画素値を読み出すよう保持メモリからの読出しを制御する。
【選択図】 図2

Description

本発明は、処理対象画像のバンド単位処理において、画像処理に画素データを供給するための装置及び方法に関する。
これまでに、ページメモリを持つことができないような装置において、少ないメモリで大きなサイズの画像処理を行う方法として、バンド処理方法が提案され、実施されていた。このようなバンド画像処理方法において拡大縮小やフィルタ処理などの、周囲の画素情報を元に出力画素を求めるような面処理を行う際には、レジスタに複数ラスタにわたる画素データが保持され、参照される(特許文献1)。
また、複数の処理プロセッサ個々に1画素分のデータを保持するメモリを分散して実装しておき、処理プロセッサ間でのデータのシフトによる移動を用いて順次画素に対するフィルタ係数の乗算、加算を行っていくフィルタ演算処理装置が提案されている。この種フィルタ演算処理装置は、特許文献2に記載されており、メモリを別途構成せずにフィルタ処理を行う。そして、このような構成のフィルタ演算処理装置において、端部のプロセッサでの画素保持メモリをプロセッサ間で相互参照できるような仕組みを導入し、1次元フィルタ処理において、画像端部の折り返し画像参照を行うといった技術が提案されている。
特開2005-341021号公報 特開平8-180177号公報
しかし、いわゆるバンド境界と呼ばれる、前回処理したバンドと今回処理するバンドの境界部分において画像の連続性を保持するためには、前後のバンド領域においてオーバーラップして参照する領域が必要となる。そのため、オーバーラップする領域の再読み込み処理という、余計なメモリアクセスが発生していた。
また、このような再読み込み処理を嫌って、処理するバンド領域の外側の画素を参照しないように処理を制御した場合は、参照画像領域の再読み込みを行わないため、入力した画像範囲内部でフィルタ処理が参照する領域をまかなわなければならない。その結果、フィルタ処理等が参照する外縁の画素分の画像サイズを削った領域を出力することになり、単純な等倍処理においても入力画像と出力画像のサイズが異なってしまうという課題があった。
さらに、参照画像を再読み込みする場合でも、そもそも入力画像全体としての上下左右端の外側には画像が存在しないため、参照画像を内部で生成して付加する処理も行わなければならない。そのため、付加する画像を入力画像を考慮して適切に生成しない場合には、画像左右端部におけるフィルタ処理の結果が必ずしも望ましいものにならないなどの不都合が生じてしまっていた。たとえば参照画像を固定的に「白」画素として生成する処理を実装した場合であって、処理対象画像が全面に黒っぽい画像であった場合を仮定する。このような場合、参照画像として付加した画素領域と処理対象画素領域との境界において「白」画像から「黒」画像に突然変化する部分で画像の不連続が生じてしまう。そのため、フィルタ処理などの結果がこの不連続によって影響を受けてしまうという課題がある。
上記の課題を回避するために、画像端部の画素を用いて参照画像を生成する方法が提案されている。
画像の端部の画素を利用する方法としては、最端部の1画素を用いてそれを引き伸ばすように参照画像を生成する方法がある。また、JPEGなどの周波数分析手法を用いるような場合に適していると考えられる参照画像の生成方法として、画像端部の複数画素範囲を折り返すように参照して参照画像を生成する方法が採用されている(特許文献1、特許文献2)。
しかし、このような処理を行う場合、たとえば画像の上端部においては、
・少なくとも1ライン分のデータを内部に保持するために、1ラスタないし複数ラスタの画像を保持するメモリを実装する、或いは、
・同じラスタ位置のデータを上端部においてのみ複数回読み込むという特殊なデータフロー制御を行う、
の何れかによる対処が必要となる。そのため、多くのラインメモリを必要としてしまったり、処理制御が複雑になってしまったりするというデメリットがある。
このようなメモリ量の増大を防ぐ新たな方法として、バンド領域内を処理する際にライン単位の処理ではなくカラムごとに縦に読み出しながら処理していくデータ処理処理方法(以下クロスバンド処理と呼ぶ)が提案されている。しかしながら、このようなクロスバンド処理においても、やはり入力画像外部の画素を少ないメモリで生成する処理については従来提案されていなかった。
本発明は、処理対象画像のバンド単位処理において、フィルタ処理などを行う際に、画像の端部において不足する画像領域外の参照画素を少ないメモリ量で効率よく生成することを目的とする。
上記の目的を達成するための、本発明による画像データ供給装置は以下の構成を備える。すなわち、
画像をバンド単位に分割して得られたバンド画像を、副走査方向に走査して得られた画素値を順次に入力する入力手段と、
前記入力手段で入力された画素値の前記バンド画像における画素位置に基づいて算出された格納アドレスに従って保持メモリへ当該画素値を書き込む書込手段と、
後段の画像処理手段が必要とする画素位置に対応した画素値を前記保持メモリから読み出して画像処理手段へ供給する読出手段と、
前記画像処理手段が必要とする画素位置が前記バンド画像の外側の参照領域の場合には、当該参照領域の画素位置を前記保持メモリの格納アドレスへ変換し、前記保持メモリの変換された格納アドレスから画素値を読み出すよう前記読出手段を制御する制御手段とを備える。
また、上記の目的を達成するための本発明による画像データ供給装置は、
画像をバンド単位に分割して得られたバンド画像を、副走査方向に走査して得られた画素値を順次に入力する入力工程と、
前記入力工程で入力された画素値の前記バンド画像における画素位置に基づいて算出された格納アドレスに従って保持メモリへ当該画素値を書き込む書込工程と、
後段の画像処理工程が必要とする画素位置に対応した画素値を前記保持メモリから読み出して画像処理工程へ供給する読出工程と、
前記画像処理工程が必要とする画素位置が前記バンド画像の外側の参照領域の場合には、当該参照領域の画素位置を前記保持メモリの格納アドレスへ変換し、前記保持メモリの変換された格納アドレスから画素値を読み出すよう前記読出工程を制御する制御工程とを備える。
本発明によれば、処理対象画像のバンド単位処理において、フィルタ処理などを行う際に、画像の端部において不足する画像領域の外側の参照画素を少ないメモリ量で効率よく生成することが可能となる。
以下、添付の図面を参照して、本発明の好適な実施形態を説明する。
<第1実施形態>
図1は、第1実施形態による画像データ供給装置の構成例を示すブロック図である。図1において、入力画像保持メモリ11は、処理される画像データを格納している。バンド分割画像入力部12は、入力画像保持メモリ11に格納されている入力画像に対してリードアクセスを行い、画像の一部を横方向に切り抜いたバンド単位の画像を読み出す。読み出されたバンド単位の画像(以下、バンド画像という)はバンドメモリに保持される(不図示)。
走査変換部13は、バンド分割画像入力部12においてバンドメモリに保持されたバンド画像を、クロスバンド方向に画素単位で読み出すことにより走査変換を行う。参照画像生成部14は、走査変換されたバンド画像のデータから、バンドもしくはページに対して上下左右の参照画素を生成する処理を行う。すなわち、参照画像生成部14は、その後の画像処理部15が実行する画像処理に必要な、バンド画像の領域外(参照領域)における参照画素を生成する。即ち、参照画像生成部14は、入力画像周辺の参照画素を生成する。
画像処理部15は、参照画素を必要とする任意の画像処理を行う。走査変換部16は、画像処理部15で処理された画素データを、もとのバンドのデータ走査方向に再び並べ替える為の走査変換を行う。バンド画像出力部17は、走査変換部16の処理の結果出力されるバンド画像を出力画像保持メモリ18に出力する。尚、出力画像保持メモリ18は、画像処理部15で処理されたバンド画像を一時的に保持するバンドメモリを有してもよい。画像をバンド単位で入力して処理する装置として、インクジェットプリンタ等が挙げられる。この場合、入力画像保持メモリ11は、ホスト装置側に設けられ、バンド分割画像入力部12がホスト装置よりバンド単位で画像を入力し、インクジェットプリンタ内のバンドメモリに格納する構成となる。従って、インクジェットプリンタ内に設けられる画像データ供給装置は、バンド分割画像入力部12から出力画像保持メモリ18を具備した構成となる。
図2は、第1実施形態による参照画像生成部14の、より詳細な構成例を示すブロック図である。以下、第1実施形態による参照画像生成部14の構成及び動作を説明する。
画像入力部21は、走査変換部13からクロスバンド方向に走査変換され画素ごとに入力されてくるバンド画像のデータを受け取る。参照画像生成処理を行わない場合や、本処理の対象外のデータである場合には、入力されたデータを直接に画像出力部29へ送る。画像出力部29は、受け取ったデータを次の画像処理部15へ出力する。
画像入力部21から画素データが出力されると、入力画素位置カウンタ22は、受け取った画素のバンド内もしくはページ内位置を把握する為に、主走査方向、副走査方向の画素位置をカウントする。
格納アドレス生成部23は、入力画素位置カウンタ22より得られる入力画素の画素位置に応じて、画素データ保持メモリ25に格納する際の格納アドレスを計算する。画素書込み部24は、画像入力部21から入力された画素データを、格納アドレス生成部23で算出された格納アドレスに従って、画素データ保持メモリ25に書き込む。即ち、画素書込み部24は、実際に内部に実装されるメモリに対するライトアクセスを行う。
画素データ保持メモリ25は、画素書込み部24からの書き込み要求に応じて画素データを保持するとともに、画素読出し部28からの読み出し要求に応じて指示されたアドレスの画素データを出力する。こうして、画像入力部21から入力された画素値が、バンド画像における画素位置に基づいて算出された格納アドレスに従って画素データ保持メモリ25へ書き込まれる。
出力画素位置カウンタ26は、入力画素位置カウンタ22からのトリガに同期して、出力するに必要な画素が保持されたかどうかを判断する。そして、保持されていると判断された場合には、出力画素位置カウンタ26は後段の画像処理部15が必要とする画素位置をカウントする。
読出しアドレス生成部27は、出力画素位置カウンタ26からの位置情報を元に、画素データ保持メモリ25の対応するデータが存在するアドレスを生成する。出力画素読出し部28は、読出しアドレス生成部27において生成されたアドレスを元に、画素データ保持メモリ25に対してリードアクセスを行い、画素データを読み出す。
画像出力部29は、出力画素読み出し部28から出力された画素を、次の画素処理ブロックに対して出力する。こうして、後段の画像処理部15が必要とする画素位置に対応した画素値が画素データ保持メモリ25から読み出されて、画像処理部15へ供給されることになる。尚、もし参照画像生成部14において処理されるべきでない画素データが画像入力部21に入力された場合には、画像出力部29は画像入力部21から送られる画素データを選択して、画像処理部15に出力する。
図3は、本実施形態において前提となるページ画像に対するバンド処理の概要と、バンド内でのデータの走査方向を説明する図である。尚、バンド内のデータの走査方向については、通常のラスタ走査とクロスバンド走査が示されている。
図3において、31は、処理対象となる入力画像としてのページ画像である。このようなページ画像31は入力画像保持メモリ11に保持されることになる。通常、十分なメモリを実装できる高価格な画像処理装置の場合には、このページ画像全体を一度に保持するメモリを実装し、ページに対する画像処理を一度に行う。しかしながら、より低価格な画像処理装置の実現にあたっては、そのような大容量のメモリデバイスの実装はコスト上許されないことが通例である。こうしたことから、ローコストデバイスにおいてページ画像を処理する場合は、図3に示すような、ページ画像31を横方向に短冊状に区切ったバンド画像32,33ごとに画像処理を行う方法ヶ採用されることが多い。その際に、34に示すようにラスタと呼ばれる画像横方向に順次画素を処理していくライン処理と、35に示すように、バンド内での縦方向に順次画素を処理していくクロスバンド処理とがある。
図4は、上記のような2つの方式のバンド処理方法において、たとえばフィルタ処理など局所的な2次元的な画素集合を元に画像処理を行う場合に必要なバッファの要件について説明している。
図4の(a)は、図3において説明したように切り出されたバンド内の画素を、横方向すなわちライン方向に順次処理を行っていくライン処理が行われるバンドを示している。ライン処理において範囲41の画素に対してフィルタ処理などの面的な処理を行う場合は、複数のラインにわたる画素を記憶しておかなければ前のラインの画素を範囲42の領域内で同時に使用することが出来ない。例えばバンド内の左上に位置する画素が処理に入力されるのは、バンド内の最初のラインの最初のカラム位置を読み込んだときであり、その後、右側に位置する画素が次々と読み出される。従って、最初の画素を次のラインの画素とともに使用するためには、次のラインの画素が入力され、処理が開始できるまで、最初に入力された画素データをどこかに保持しておかなければならない。画像処理がより多くのラインにまたがった画素を必要とする場合には、さらに2ライン目、3ライン目の画素も全て保持しておかなければならない。
このように考えると自明であるとおり、範囲41の領域の画像処理を行うためには、実は図4の(b)に示す範囲43の画素データを保持しておくだけのメモリが必要となる。
これに比べて、図4の(c)に示すようなクロスバンド方向に画素を読み込んでいく処理方法の場合、劇的に少ない画素保持メモリで処理を行えることが知られている。例えば、範囲43についてフィルタ処理などの面的な処理を行う場合に必要な保持すべき画素は、画素の読み込み順からして図4の(d)に示される範囲46の範囲で十分であることが理解されよう。
こうしたことから、クロスバンド処理を用いたデータ処理では、非常に少ない内部メモリで、面的な処理を実行する処理を実装できるがわかる。
ところが、実際に面的な処理を行う際には、周囲の画素を使用して中央の1点の画素を生成することから、入力画像の範囲を全て処理する場合に、入力画像の上下左右端において、画像の外側の画素を参照しなければならなくなる場合がある。もちろん、このような周囲の画素を参照せずに処理を行うことも可能であるが、その場合、フィルタ処理等で参照する周辺画素の幅分の画素領域を入力画像から削ってしまうことになるため、入力画像サイズと出力画像サイズが異なってしまう。こうしたことは、複数の異なるフィルタ係数によるフィルタを連続してかけなければならないような画像処理を行う際に非常に問題となる。なぜなら、フィルタをかける回数分画像がどんどん小さくなってしまい、最終的な出力画像において有効な画像範囲を十分に確保することが難しくなるためである。
こうしたことから、図5に示すように、入力画像51に対して、範囲52を参照するフィルタ処理などをかける場合には、画像の外側に参照画像53を補う処理が必要となる。
この画像の外側に補われるべき画像の範囲、即ち参照領域は、図5中の52,54,56,57に示すように画像の4隅でのフィルタ処理を行うことを考慮して、ページの上下左右および斜めの領域を全て囲むように画素を生成する処理が必要となる。このようにページの上下左右端に対して位置付けられる参照領域の参照画像53をバンド58において意識するためには、複数バンドにまたがるバンド位置の管理と、上端、中央、下端でそれぞれ異なる参照画像生成処理を効率よく行うアルゴリズムが必要である。また、この処理において必須に実装されるメモリ容量を削減する必要もある。
図5の例では、このような外縁の参照領域における参照画像の画素を、入力画像の外縁付近の画素を、入力画像の端部を中心として折り返した形で生成した様子が示されている。図6は、このような参照画像の生成処理を行う際に保持しておかなければならない画素範囲について示している。
図6の(a)は、ライン単位の処理によってバンドを処理する場合を示している。ここで範囲61を必要とするフィルタ処理を行う場合には、範囲62の画素を画素データ保持メモリに保持しておかなければならない。なぜなら、62の領域は、次々と、右の画素を処理していくため、参照領域への画像の引き伸ばしに使用する上端の1ラインに含まれる画素については、フィルタの領域が完全に上端のラインを超えるまでずっと保持されなければならないからである。さらに、入力画像の上端から離れれば離れるほど(参照領域のライン数が増えるほど)、折り返し画像を生成するために入力画像の2ライン目、3ライン目の画像が必要となってくる。従って、参照画像として入力画像の上端・下端に付加するライン数が多ければ多いほど、この画素保持用の領域の高さは大きくなることになる。
このことから、ライン処理の場合、画素データ保持メモリが保持しなければならないデータのサイズは、横幅wが処理可能な最大の画像幅、高さhが上参照画像または下参照画像のいずれか大きい方のライン数として決定される。その結果、画素データ保持メモリに必要なメモリサイズは、およそh×wとなる。
これに対して、図6の(b)は、クロスバンド処理を用いた場合に画素データ保持メモリ25が保持すべきデータを示している。クロスバンド処理を用いた場合、範囲63を必要とするフィルタ処理のために必要な画素範囲は範囲64のようにすることができ、ライン処理(図6の(a))に比べて大幅に画素データ保持メモリの容量を削減出来ることがわかる。さらに、図6の(a)の範囲62に示した領域を保持する場合には、処理可能な画像の幅の最大値(w)を見積もらなければ必須メモリ量を決定できない。これに対して、図6の(b)の範囲64を保持するために必要な情報は、バンド処理を行う際のバンドの最大高さ(ch)を見積もればよく、処理対象の画像サイズに影響を受けないパラメータを用いて設計を行うことが出来る。このことにより、処理対象の画像サイズに制約をかけない処理を実装することが出来る。
このことから、クロスバンド処理における画素データ保持メモリの横幅cwは、左右参照画像のいずれか大きい方の幅によって決定され、高さchは処理可能な最大バンドライン数によって決定される。このように、画素データ保持メモリ25のメモリサイズはこのような小さなcw×chでよく、先のライン単位処理でのh×wに比べて非常に小さくてすむ。そして、上述したように、このメモリサイズは入力される画像サイズには一切関係なく、フィルタ処理などの実装された画像処理が必要とする周辺画像のサイズと処理単位となるバンドサイズという画像処理パラメータのみによって決定することができる。このため、画像処理における処理可能なライン幅wなどについてなんら制約を与えないという利点がある。
図7は、図6の(b)の範囲64に示す画像データを格納した画素データ保持メモリ25を使用して、入力画像の周囲に参照画素を生成する処理の概念を示す図である。71は、クロスバンド方向に画素を処理する際に、過去に入力された画素データを保持するメモリに保持される画素範囲を示している。この枠71に示した画素範囲の中にある画素が画素データ保持メモリ25に保持され、参照画像生成処理によって参照されることとなる。
72は、この画素データ保持メモリ25に対して入力されてくる画素値の順序を示す矢印である。73は、例えば74に示す位置の参照画素を生成するために必要な画素を示している。図7の例では、上参照画素が2ライン、下参照画素が1ライン、左参照画素が2カラムの場合を示している。たとえば、参照画像として最初の画素となる画素74を出力するためには、少なくとも折り返しの位置に画素番号(19)の画素73が入力されている必要がある。さらに、最初のカラムの画素を全て出力するためには、画素番号(24)までが入力されている必要がある。尚、図7の例では、図7に示した枠71内の画素値を保持することで、(1)〜(8)の各画素について画像処理を実行することができ、バンド画像を重複させる必要が無い。バンド画像を重複させる場合、即ち再読み込み処理を行って画像処理を実行する場合、上参照画素が2ライン、下参照画素が1ラインとすると、上から2ラインはのりしろとして消費されるため、(3)〜(7)までの画素が処理されることになる。
このように、参照画像を生成するためにはまず、入力画像を蓄積する処理を行い、十分な画素データが保持されたことを検知したところで、出力画素の読み出し位置を算出して画素を読み出し、出力していくという手順が必要となる。この判断は、上述したように、出力画素位置カウンタ26によって行われる。
この際に、画素データ保持メモリ25が最低限蓄積しなければならない画素数は、
最低保持画素数(左余白生成時)=(左参照画像の幅+1)×バンドライン数
・・・(式1)
となる。ここで式1に示した値が、入力画素位置カウンタ22が出力開始の可否を判断するために参照する、必要最低限の保持画素数となる。入力画素位置カウンタ22は、この画素数が入力されたことを検知することで、出力を開始する条件が整ったことを判断する。入力画素位置カウンタ22は、出力を開始する条件が整ったと判断すると、読出し処理開始トリガを出力画素位置カウンタ26に発行する。
その後、入力画素位置カウンタ22は、参照領域を含む「左参照画像幅+1」個のカラムの領域を出力し終えるまで、画素入力を待たせる制御を入力側の処理に対して行わなければならない。尚、上述したように、画素番号(19)の画素値が保持された時点から画像処理部15への画素データの供給を開始(画素74からの画素値の供給を開始)してもよい。この場合、出力画素位置カウンタ26による出力開始の許可は、式1に示されるタイミングよりも早くなる。
続いて、バンド画像に対する画像処理を続けていき、最後に右参照画像を生成する際に必要な最低保持画素数は、
最低保持画素数(右余白生成時)=(右参照画像の幅+1)×バンドライン数
・・・(式2)
となる。
ここで、式1、式2に示されるこれらの条件は、画素データ保持メモリ25のメモリサイズ決定の条件とは異なる。画素データ保持メモリ25のメモリサイズの条件としては、式1および式2のいずれか大きい方を保持できるサイズであることとなり、式1、2のいずれか単独で決定されるものではない。
上記の式1は、先頭からの画素入力に対して参照画像出力を開始できる最低限の時間を規定するものとして定義づけられる。よって、左参照画像の幅が右参照画像の幅よりも小さい場合、必ずしも用意されたメモリ全てに画素が保持されている必要はなく、式1の条件を満たした時点で参照画像の出力を開始できる。
右参照画像の生成については、メモリに保持されている画素量が式2を満たしていることのみが条件であり、処理開始のタイミングはいずれにせよ入力画像のバンド領域に含まれる画素全ての入力が終了した時となる。
さらに、上参照画像のライン数については以下の関係を満たしていることが必要となる。
バンドライン数≧上参照画像のライン数+1 ・・・(式3)
下参照画像についても同様に、
バンドライン数≧下参照画像のライン数+1 ・・・(式4)
の条件があり、逆にこれらの両方を満たすバンドライン数を処理可能とすることが、本実施形態の参照画像生成処理における設計制約条件となる。
参照画像のサイズは、フィルタ処理などにおける周辺画素の参照範囲によってきまるため、画像処理として実行されるフィルタ処理等の画像処理パラメータによって決定される。従来のライン単位での処理において参照画像生成に必要なメモリ量は、画像サイズ×上参照画像ライン数である。例えば、プリント画像処理などで一般的な600dpiではA4用紙の横幅が5000画素となる。7×7のフィルタ処理を例にとると、参照画像ライン数は3ラインとなり、これを1画素あたり3バイトとして計算すると、5000×3×3=45KBのメモリを実装しなければならない。このようなサイズのメモリを例えばハードウェアの中に実装する場合は比較的高いコストを必要としてしまうことになる。
これに対して、クロスバンド処理において必要となるメモリサイズは、上下左右参照画像の幅を3ライン、3カラムとすると、(3+1)×(3+1)×3バイト=56バイトで済むことになる。しかし実際には、フィルタ処理を行うためのバンドライン数を供給しなければならないことから、バンドライン数は少なくとも7ライン以上となるため、(3+1)×7×3バイト=84バイトとなる。この数字からも、本実施形態によるコスト削減の効果は非常に大きいことが分かる。
図8は、第1実施形態による画素データ保持メモリ25への書込み処理を説明するフローチャートである。
まず、ステップS81において、入力画素位置カウンタ22は、入力される画素データのバンド画像における画素位置(dx、dy)をそれぞれ0に初期化する。次に、ステップS82において画像入力部21から画素値が1つ入力されると、ステップS83において、格納アドレス生成部23は、格納アドレスを以下に示す式5で求める。格納アドレス生成部23は、入力画素位置カウンタ22からのdx,dyと、左右の参照領域のいずれか大きいほうに1を足した画素格納メモリ有効画素幅bwとを用いて、格納アドレス(WriteAddress)を以下に示す式5で求める。
WriteAddress=(dx%bw)+dy*bw ・・・(式5)
ここで、dx%bwは、dxをbwで割った余りである。
尚、この式5では、1アドレスに1画素が格納される場合を示している。従って、たとえば、RGB画像など1画素が複数アドレスに格納される場合には、1画素のデータを格納するために必要なアドレス数をこの式5に乗ずることによって格納アドレスを算出することになる。
次にステップS84において、画素書込み部24は、格納アドレス生成部23がステップS83で生成した画素データ保持メモリ25の格納アドレスに、入力画素データを格納する。そして、ステップS85において、入力画素位置カウンタ22は、dyを1加算する。
ステップS86において、dyがあらかじめ設定されたバンドライン数(バンド画像の最大バンドライン数)に到達したか否かが判断される。dyがあらかじめ設定されたバンドライン数に到達した場合は、処理はステップS87へ進む。ステップS87において、入力画素位置カウンタ22は、dyを0に初期化した上で、dxを1加算する。そして、ステップS88において、dxがあらかじめ設定されたカラム数(バンド画像の最大のカラム数)に到達したか否かが判断される。dxが予め設定されたカラム数に到達していなければ、当該バンド画像から読み込む画素が残っているので、処理をステップS82にもどす。ステップS86においてdyがあらかじめ設定されたバンドライン数に到達していない場合は、処理はステップS82に戻り、次の画素データの入力を受け付ける。また、ステップS88においてdxが予め設定されたカラム数に到達した場合は、当該バンド画像に関して全ての画素値が入力されたことになるので、本処理を終了する。
このようにして入力画素を画素保持メモリに格納していき、参照画像を生成するのに必要なデータが画素データ保持メモリにたまったところで、図7で説明したように画素値を読み出す。これにより、画像を鏡に映したような参照画像が生成される。以下、画素データ保持メモリからの画素値の読出し手順について、説明する。
図9は、本実施形態による、出力画素データを得るための読出しアドレス生成処理を示すフローチャートである。
画素データ保持メモリ25からバンド画像に関する画素値の読出しを開始するにおいて、まずステップS901において、出力画素位置カウンタ26は、出力画素位置(ix,iy)および出力終了位置(iw,ih)を初期化する。初期化は、以下に示す式6,7,8,9によって行われる。尚、この初期化では、入力されるバンド画像の左端部のカラムはix=0、上端部のラインはiy=0としている。また、図7の例では、出力されるバンド画像(参照領域が補われたバンド画像)は、左端部のカラムはix=−2、iy=−2となる。
ix=左参照画像のカラム数×(−1) ・・・(式6)
iy=上参照画像のライン数×(−1) ・・・(式7)
iw=入力画像幅−1 ・・・(式8)
ih=バンドライン数−1 ・・・(式9)
次にステップS902において、出力画素位置カウンタ26は、入力画素位置カウンタ22からの読出し処理開始トリガを待つ。読出し処理開始トリガにより出力処理が開始されると、ステップS903において、読出しアドレス生成部27は、画素データ保持メモリ25上の読出し位置(X,Y)を(ix,iy)から以下の式10、式11で求める。
X=|ix| ・・・(式10)
Y=|iy| ・・・(式11)
次にステップS904において、ixがiwを超えているかどうかの判定を行い、超えている場合には、ステップS905に進み、読出しアドレス生成部27は、以下の処理によってXを求める。Xがiwを越えている間は、
X=iw−(ix−iw) ・・・(式12)
同様にステップS906においてiyがihを超えているかどうかの判定を行い、超えている場合には、ステップS907に進み、読出しアドレス生成部27は以下の処理によってYを求める。
Y=ih−(iy−ih) ・・・(式13)
これら式12,13は、入力画像領域からはみ出した分を画像の内側に写像する式となっている。
そしてステップS908において、読出しアドレス生成部27は、求められた位置(X,Y)から画素データ保持メモリ25の読出しアドレス(ReadAddress)を下に示す式14によって求める。
ReadAddress=(X%bw)+Y*bw ・・・(式14)
ここで、X%bwは、Xをbwで割った余りである。
ステップS909において、画素読出し部28は、ステップS908で算出された読出しアドレスを用いて画素データ保持メモリ25から画素データを読み出す。そして、ステップS910において、画像出力部29は画像読出し部28が読み出した画素値を出力する。
以上のようにして、画像の折り返しによる参照画像生成処理が行われる。尚、式14も、書込みアドレスと同じように1画素を1アドレスに格納する場合の式となっている。従って、たとえばRGB画像などのように1画素が複数アドレスに格納される場合には、この式14の右辺全体に1画素分の格納に必要なアドレス幅をかけることによって、読み取りアドレスを計算できる。
以上のようにアドレスを計算し、画素データ保持メモリ25から画素データを読み出すと、処理はステップS911に進む。ステップS911において、出力画素位置カウンタ26は、iyに1を加算する。
ステップS912において、出力画素位置カウンタ26は、iyが出力バンドライン数+下参照画像ライン数を超えているかどうかを判定する。そして、超えていると判定された場合には、ステップS913において、出力画素位置カウンタ26はiyを再び式7によって初期化するとともに、ixに1を加算する。ステップS912で超えていないと判定された場合には、ステップS903に処理を戻し、次の画素出力を行う。
この際に、処理制御として、左参照画像を生成している間と、第1カラム目の入力画素そのものを出力している間は入力データを受け付けないように制御することで、画素保持メモリを必要最低限のサイズにすることが可能である。
以上説明したように、第1実施形態に開示されたアルゴリズムによれた、参照画像を生成するために必要なメモリは、
(バンド処理可能な最大ライン数)×(左右参照画像の大きいほうのカラム数)
×(1画素のバイト数) ・・・(式15)
によって算出されるごく小さなサイズとなる。そのため、さまざまな画像サイズに対応した参照画像生成を行う処理モジュールを低コストで実装することが可能となる。
図10は、以上のようにして算出されるアドレスが、画素データ保持メモリ25上でどのように動くかについて示している。
矢印101は、出力の1カラム目(参照領域の1カラム目)の画素値の読出しにおけるYの移動の軌跡である。矢印102は、出力の2カラム目の画素値の読出しにおけるYの移動の軌跡である。矢印103は、出力の3カラム目の画素値の読出しにおけるYの移動の軌跡である。矢印104は、出力カラムごとに移動するXの軌跡である。
図11は、上述した読出しアドレスの計算によって求められた画素を出力した場合の出力画素の並びと出力順序を示したものである。111は、出力される画素の出力順序を示す。尚、図11の例では、上側の参照領域が2ライン、下側の参照領域1ライン、左側の参照領域が2カラムの場合を示している。また、バンド画像単位で参照領域を形成して、バンド単位で画像処理を完結するようにしているため、図11の最下端のライン(枠112の下の(23)(15)…(31)のライン)まで読出しを行っている。オーバーラップ領域を繰り返し読み込む再読み込み処理が行われる構成であれば、(24)(16)(8)…(24)のラインまでが読み出し処理による読み出しの対象となる。そして、次のバンドでは、(22)(14)…(30)のラインからのバンド画像がオーバーラップして取得されることになる。
以上のように、第1実施形態によれば、実際に出力する画素範囲よりも小さく、かつ入力画像のサイズによらない、小さいサイズの画素データ保持メモリ25を使用して所望の参照画像を生成することができる。
<第2実施形態>
第1実施形態では、バンド単位に参照画像を生成する処理を省メモリで実装するためのアルゴリズムについて説明した。しかし、すでに図5に示したとおり、1ページの画像は1バンドの画像範囲よりも多くのライン数を持つことが一般的である。そのため、1ページの画像の上端部分では上参照画像および左右参照画像の生成が必要であるが、その後1ページの画像の下端に来るまでは、左右端の参照画像のみを生成する処理のみが必要となる。また、1ページの下端においては、左右参照画像と下参照画像の生成が必要となる。このように、ページに対する周囲の参照画像を生成する場合には、現在処理中のバンドがページのどの位置を処理しているかを管理しなければ、ページに対する周囲の参照画像を生成することはできない。
よって、第2実施形態では、ページ単位での参照画像生成に関する座標管理処理について説明する。図12は、入力画像全体に対するバンド画像の位置関係について説明するための図である。
121は、入力画像全体である。122は、入力画像121の上端に接する領域を処理するバンド画像である。123は、入力画像の上端・下端のいずれにも接していない領域でのバンド画像のひとつである。124は、入力画像の下端を含むバンド画像である。バンド画像122の領域では、左右の参照画像に加えて上側の参照画像を生成する処理を行わなければならない。
そのため、参照画像生成処理においては、各バンドの入力画像内でのライン位置を管理する必要がある。そこで、第2実施形態では、ページ内のライン位置を示す変数pyを用意し、pyを入力画像の先頭で初期化し、バンド処理が終了するごとに、次のバンド入力先頭ラインまでのライン数をpyに加算する。このpyを参照することにより、各バンドの入力画像内でのライン位置を管理する。
そして、py=0である場合には、第1実施形態で説明した参照画像の生成処理が行われるように制御する。具体的にはバンド処理の初期化処理である式6〜式9を実行する。
pyが0でなく、なおかつpyにバンドライン数を足したものが入力画像の高さライン数を超えない場合には、式7の代わりに下に示す式16によって初期化を行う。
iy=0 ・・・(式16)
また、pyが入力画像の高さライン数以上でなく、かつ、pyにバンドライン数を足したものが入力画像の高さライン数を超えている場合には、式9の代わりに、下に示す式17を使用する。
ih=バンドライン数−1+下参照画像 ・・・(式17)
また、pyが0であってなおかつpyにバンドライン数を足したものが入力画像高さライン数を超えている場合には、式9の代わりに下に示す式18によってihの初期化を行う。
ih=バンドライン数−1+上参照画像+下参照画像 ・・・(式18)
また、バンド画像123に示した領域では、左右参照画像のみを生成するだけでよい。この場合、バンド処理の先頭では、下に示す式19,20,21,22によって初期化が行われる。
ix=左参照画像×(−1) ・・・(式19)
iy=0 ・・・(式20)
iw=入力画像幅−1 ・・・(式21)
ih=バンドライン数−1 ・・・(式22)
これに対して、バンド画像124の領域については、2つの異なる処理内容が必要となる。1つは、上述した左右参照画像の生成であり、他の1つは、入力画像の高さが一般的には1バンドのライン数の倍数とは限らないということに起因する処理である。これはすなわち、バンド画像として入力される画像の下部の画像は、本来処理されるべき画像範囲ではないということが起きるということを意味している。この場合、参照画像生成処理においては、バンド画像の途中のライン以降は、それまでに入力されたラインのデータを用いて参照画像として生成した画素を出力しなければならないということになる。
この状態を図13に示す。図13において、131は、入力画像の下端を含むバンド処理領域を示している。破線で囲まれた領域132は、バンド処理として入力されるライン数のうち入力画像として意味のある範囲を示している。ページ画像を入力する際に、このバンド処理領域131の中では、領域132に示すラインまでが入力画像として与えられる。その他は、たとえばメモリ上にあらかじめ格納されていたデータが読み出されるなどするため、入力としては不適切な画像領域となっている。
このように、入力されるバンド画像のうち領域132のみに入力として扱える画像が格納されており、残りのラインについては領域132に示した画像を用いて何らかの画像データを生成し、埋めなければならない参照領域となる。
この場合、単純にはすでに示したとおり折り返し位置にある画素を参照して下参照画素を生成すればよいのであるが、図13に示す状態では、参照画像を生成するためのデータが不足してしまう。即ち、入力されたバンド画像領域中の有効ライン数133のほうが、生成しなければならないライン数134を下回る可能性があり、単なる折り返し位置の参照では、参照する画素位置がバンド内に存在しないことがありうる。この場合、矢印135に示すように有効画素範囲を行ったりきたりするような参照をしながら出力画素を読み出し、矢印136に示すような画素値の出力とすれば、画像の連続性を保ったまま、不足している入力画像並びに参照画像を生成することができる。
<第3実施形態>
参照画像を付加する場合に、前記第1実施形態、第2実施形態では、折り返し画像を参照画像としているが、これに限られるものではない。第3、第4実施形態では、第1、第2実施形態と同様の構成において、参照画像として折り返し画像とは異なる画像を適用する場合の例を説明する。例えば、入力画像の上下左右の端部の画素のみを引き伸ばすように参照画像の画素を生成してもよい。この場合、たとえば参照画像生成処理として、折り返し画像による参照画像生成と端部のひきのばしによる参照画像生成をモード指定などで両立させるように構成しても良い。その場合には、折り返しに必要なメモリが実装されていれば単なる参照アドレスの生成方法の切替のみで実現できる。
入力画像の上下左右の端部の画素のみを引き伸ばすように参照画像が生成される様子は図14に示したとおりである。このような参照画像の生成は、参照領域の各画素位置の画素値が、バンド画像の最も近い画素位置の画素値となるように、参照領域の画素位置を画素データ保持メモリ25内の格納アドレスへ変換することで実現される。即ち、第1実施形態で示した式10、11,12、13の変わりに、以下のようにして読み取り位置(X,Y)を算出すればよい。
X=ix ・・・(式23)
Y=iy ・・・(式24)
ただし、ixが負である場合には、
X=0 ・・・(式25)
とし、iyが負である場合には、
Y=0 ・・・(式26)
とする。また、ixがiwを超えている場合には、
X=iw ・・・(式27)
とし、iyがihを超えている場合には、
Y=ih ・・・(式28)
とする。以上はつまり、入力画像領域からはみ出した分については、横方向については、0カラム目または最終カラムの画像データのコピーにより参照画像が生成される。また、縦方向については、0ライン目または最終ラインの画像データのコピーにより参照画像生成される。
次に、この場合に必要なメモリサイズと入出力画素の配置について、図14を用いて説明する。
上記計算方法によって参照される、参照画像を生成するのに必要な画素範囲は、入力画像の最端部の1カラム・1ラインである。従って、第3実施形態では、第1実施形態に示したメモリサイズよりもさらに小さい、下記の式29によって表されるサイズのメモリを実装すればよい。
(バンド処理可能な最大ライン数)×(1カラム)×画素バイト数 ・・・(式29)
これを示しているのが図14の枠141である。
図14の矢印142は、入力される画素のクロスバンドデータフローにおける入力順序を表している。この場合、たとえば最初に出力される画素144は最初に入力された画素143である。
この後、第1実施形態で示した位置計算式により、ixおよびiyがしばらくは負の値をとり続けるため、画素143((1)と図示されている画素)が連続で読み出されて出力されていく。その後、iyが0以上の位置になると、順次入力画素の(2)、(3)、(4)・・・の画素が読み出されて出力されていく。次のカラムにおいてもixは以前の入力画素の先頭位置よりも前、すなわち負の位置を読み出そうとするため、再びixは0に置き換えられ、画素(1)から読出しが行われていく。この後、ixが0の場合の処理を開始した後、iyについての読出しが終了したところから順次新たな入力画素を受け入れていく。こうして、次のカラムの入力である(9)、(10)、(11)・・・を画素データ保持メモリ25に書き込んでいくことで、順次カラム単位に参照画像を生成しながら処理を行っていくことができる。
最後に、右参照画像生成処理においては、ixがiwを超えた場合として、ixがiwに置き換えられるため、最終カラムの画素が繰り返し出力され、読出し処理を完遂することができる。
以上のように、単純に入力画像端部の画素をコピーすることで参照画像を作成する処理を行う場合には、さらに少ないメモリ容量で処理を構成することができ、より低コストな実現が図れる。
また、言うまでもないことであるが、このようなメモリの実装は、最低限の実装サイズを示しており、これ以上のメモリを実装している場合にもなんら問題なく、上記各本実施形態を実現することが可能である。つまり、実装されているメモリ上で参照する範囲を限定して用いる処理を行うことで、この最低メモリ量以上のメモリを実装していてもなんら問題はない。
したがって、たとえば第1実施形態に記載した、折り返し画像により参照画像を生成する処理を行えるメモリ実装においても、第3実施形態で示したような端部画素のコピーによる参照画像生成処理を同様に実施することができる。すなわち、これらの処理を何らかのモード切替手段によって切り替えるように実施できることは、本願の開示から明らかである。
<第4実施形態>
第1〜第3実施形態では、参照画像を生成する場合に、単純に1画素のデータ生成に1つの入力画素値を使用しているが、これに限られるものではない。例えば、複数の入力画素値に平均処理を施して得られた画素値を参照画素として出力することもありうる。これは特に、第3実施形態で示したような端部1画素のコピーによる処理において、図14中の画素(1)のみがたまたま周囲の画素と大きく違う値を持っていた場合の問題を穏やかに解決する場合に用いることができる方法である。
この場合、平均する画素範囲は1以上の任意の範囲でよいが、実際多くの範囲を平均するのであれば、第1実施形態に示したように折り返し画像を使用すればよいので、平均する画素範囲は数画素程度の範囲とすることが現実的である。
このような場合、たとえば、前記第3実施形態に示した式23〜式28、によって、平均処理を行う際の基点位置を求めることが可能である。第4実施形態では、このようにして求められた基点画素位置を元に、付近の指定された範囲の画素を読み出して画素値の平均を取り、出力画素として出力する処理を行う。即ち、読出しアドレス生成部27は、参照領域の画素位置に最も近いバンド画像中の画素位置を基点として、所定ライン数及び所定カラム数の範囲の画素値を、画素データ保持メモリ25から取得するように読出しアドレスを生成する。従って、第4実施形態では、参照領域の1つの画素位置について、画素データ保持メモリ25の複数の読出しアドレスが生成されることになる。そして、画像出力部29は、画素読出し部28が複数の読出しアドレスから読み出した画素値の平均値を、当該参照領域の画素位置の画素値として出力する。
この場合、必要となる画素保持手段としてのメモリは、
(バンド処理可能な最大ライン数)×(平均するカラム数)×画素バイト数
によってあらわされるものとなる。
図15に、第4実施形態についての処理概要を示す。枠151は、第4実施形態において必要となるメモリの入力画素位置に対する範囲である。矢印152は、クロスバンドフローに沿って入力される画素の入力順序を示す。枠153は、参照画素を生成する際に平均を行う範囲を示している。本例では、2カラム×3ライン=6画素の画素値の平均が用いられる。
たとえば、枠153内において、画素(1)の値のみが異なっているような場合を考える。第3実施形態では、図14に示すように画素(1)の画素値がそのまま参照画素として8画素分コピーされてしまう。このため、この範囲ではたった一つの異なる値を持つ画素(1)によって、画像処理結果が大きく影響されてしまうなどの弊害が出かねない。
これに対して、第4実施形態に示すように特定の範囲(枠153内)の画素の平均値によって参照画素を生成する方法であれば、本来サンプル数の少ない特異な画素の影響を不当に受けることなく、端部の画像処理結果を得ることができる。
以上説明したように、上記各実施形態によれば、クロスバンド処理において、処理対象画像の幅、高さに関係ないバンド高さに比例する非常に小さいサイズのメモリを用いて、効率よく入力画像の周囲の参照画素を生成することが可能となる。
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。
第1実施形態による画像処理システム構成例を示すブロック図である。 第1実施形態による参照画像生成装置の構成例を示すブロック図である。 バンド画像処理におけるラスタ走査方法とクロスバンド走査方法を説明する図である。 周辺画素を参照する処理のために必要となる保持領域の、走査方法による違いを説明する図である。 周辺画素を参照する処理のために必要なページに対する参照画像範囲の例を示す図である。 折り返しによる参照画像生成に必要な画素保持領域の、走査方法による違いを説明する図である。 クロスバンド走査方法における画素保持バッファと、参照画像生成時の画素参照方法を説明する図である。 第1実施形態の参照画像生成部における、入力画素の保持バッファへの書き込み処理を示すフローチャートである。 第1実施形態の参照画像生成部における、保持バッファからの出力画素の読み出し処理を示すフローチャートである。 第1実施形態による参照画像生成部における、出力画素の参照順序の概念図である。 第1実施形態による参照画像生成部における、出力画素の座標位置を説明する図である。 第2実施形態による、ページ上端、途中および下端におけるバンド位置と、ページ画像範囲との相互関係を説明する図である。 第2実施形態における、参照画像生成部におけるページ下端のバンド位置での出力画素の座標位置を説明する図である。 第3実施形態による参照画像生成部における、出力画素の座標位置を説明する図である。 第4実施形態による参照画像生成部における、出力画素の座標位置を説明する図である。

Claims (11)

  1. 画像をバンド単位に分割して得られたバンド画像を、副走査方向に走査して得られた画素値を順次に入力する入力手段と、
    前記入力手段で入力された画素値の前記バンド画像における画素位置に基づいて算出された格納アドレスに従って保持メモリへ当該画素値を書き込む書込手段と、
    後段の画像処理手段が必要とする画素位置に対応した画素値を前記保持メモリから読み出して画像処理手段へ供給する読出手段と、
    前記画像処理手段が必要とする画素位置が前記バンド画像の外側の参照領域の場合には、当該参照領域の画素位置を前記保持メモリの格納アドレスへ変換し、前記保持メモリの変換された格納アドレスから画素値を読み出すよう前記読出手段を制御する制御手段とを備えることを特徴とする画像データ供給装置。
  2. 前記制御手段は、前記バンド画像の位置が前記画像の上端に接する、下端に接する、いずれにも接しない、のいずれであるかを判定し、上端に接するバンド画像にはその左右及び上の部分に参照領域を形成し、下端に接するバンド画像にはその左右及び下の部分に参照領域を形成し、いずれにも接しないバンド画像にはその左右の部分に参照領域を形成することを特徴とする請求項1に記載の画像データ供給装置。
  3. 前記制御手段は、前記参照領域の画像が当該バンド画像の端部を中心とした折り返し画像となるように、前記参照領域の画素位置を前記保持メモリの格納アドレスへ変換することを特徴とする請求項1に記載の画像データ供給装置。
  4. 前記保持メモリのサイズが、「前記バンド画像の最大ライン数×前記バンド画像の左右における前記参照領域の幅の大きい方の画素数」の画像サイズのデータを保持するサイズを有することを特徴とする請求項3に記載の画像データ供給装置。
  5. 前記制御手段は、前記参照領域の画素位置の画素値が、前記バンド画像の最も近い画素位置の画素値となるように、前記参照領域の画素位置を前記保持メモリの格納アドレスへ変換することを特徴とする請求項1に記載の画像データ供給装置。
  6. 前記保持メモリのサイズが、「前記バンド画像の最大ライン数×1画素」の画像サイズのデータを保持するサイズを有することを特徴とする請求項5に記載の画像データ供給装置。
  7. 前記制御手段は、前記参照領域の画素位置に最も近い前記バンド画像の画素位置から所定ライン数及び所定カラム数の範囲の画素値を取得するように前記参照領域の画素位置を前記保持メモリの複数の格納アドレスへ変換し、
    前記読出手段は、前記複数の格納アドレスから読み出された画素値の平均値を当該参照領域の画素位置の画素値として前記画像処理手段へ供給することを特徴とする請求項1に記載の画像データ供給装置。
  8. 前記保持メモリのサイズが、「前記バンド画像の最大ライン数×前記所定カラム数」の画像サイズのデータを保持するサイズを有することを特徴とする請求項7に記載の画像データ供給装置。
  9. 画像をバンド単位に分割して得られたバンド画像を、副走査方向に走査して得られた画素値を順次に入力する入力工程と、
    前記入力工程で入力された画素値の前記バンド画像における画素位置に基づいて算出された格納アドレスに従って保持メモリへ当該画素値を書き込む書込工程と、
    後段の画像処理工程が必要とする画素位置に対応した画素値を前記保持メモリから読み出して画像処理工程へ供給する読出工程と、
    前記画像処理工程が必要とする画素位置が前記バンド画像の外側の参照領域の場合には、当該参照領域の画素位置を前記保持メモリの格納アドレスへ変換し、前記保持メモリの変換された格納アドレスから画素値を読み出すよう前記読出工程を制御する制御工程とを備えることを特徴とする画像データ供給方法。
  10. 請求項9に記載された画像データ供給方法をコンピュータに実行させるためのプログラム。
  11. 請求項9に記載された画像データ供給方法をコンピュータに実行させるためのプログラムを格納したコンピュータ読み取り可能な記憶媒体。
JP2007329208A 2007-12-20 2007-12-20 画像データ供給装置および画像データ供給方法 Expired - Fee Related JP5209953B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007329208A JP5209953B2 (ja) 2007-12-20 2007-12-20 画像データ供給装置および画像データ供給方法
US12/338,265 US8295598B2 (en) 2007-12-20 2008-12-18 Processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007329208A JP5209953B2 (ja) 2007-12-20 2007-12-20 画像データ供給装置および画像データ供給方法

Publications (3)

Publication Number Publication Date
JP2009151571A true JP2009151571A (ja) 2009-07-09
JP2009151571A5 JP2009151571A5 (ja) 2010-10-07
JP5209953B2 JP5209953B2 (ja) 2013-06-12

Family

ID=40788705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007329208A Expired - Fee Related JP5209953B2 (ja) 2007-12-20 2007-12-20 画像データ供給装置および画像データ供給方法

Country Status (2)

Country Link
US (1) US8295598B2 (ja)
JP (1) JP5209953B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948542B2 (en) 2010-06-25 2015-02-03 Canon Kabushiki Kaisha Image processing apparatus
JP2015201677A (ja) * 2014-04-04 2015-11-12 キヤノン株式会社 画像処理装置および画像処理方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010161503A (ja) * 2009-01-06 2010-07-22 Canon Inc 画像形成装置及び画像形成方法
JP5222227B2 (ja) 2009-05-22 2013-06-26 キヤノン株式会社 画像処理方法、画像処理装置およびプログラム
JP5328505B2 (ja) * 2009-06-18 2013-10-30 キヤノン株式会社 画像処理装置および画像処理方法
JP5623063B2 (ja) * 2009-11-16 2014-11-12 キヤノン株式会社 画像処理装置およびその方法
JP5121978B2 (ja) * 2010-08-30 2013-01-16 キヤノン株式会社 画像処理装置及びその制御方法
JP6472300B2 (ja) 2015-03-31 2019-02-20 キヤノン株式会社 画像処理装置および情報処理装置、並びに、それらの方法
WO2019059107A1 (ja) * 2017-09-20 2019-03-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
JP2022139237A (ja) * 2021-03-11 2022-09-26 キヤノン株式会社 情報処理装置とプログラム及び画像処理方法
JP2022139238A (ja) 2021-03-11 2022-09-26 キヤノン株式会社 画像処理システム及び画像処理方法
JP2022139239A (ja) * 2021-03-11 2022-09-26 キヤノン株式会社 情報処理装置とプログラム及び画像処理方法
JP2023067166A (ja) 2021-10-29 2023-05-16 キヤノン株式会社 画像処理装置及び画像処理方法
JP2023067164A (ja) 2021-10-29 2023-05-16 キヤノン株式会社 画像処理装置及び画像処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148969A (ja) * 1998-11-04 2000-05-30 Matsushita Electric Ind Co Ltd アドレス生成回路
JP2001251502A (ja) * 2000-03-03 2001-09-14 Seiko Epson Corp 画像処理装置
JP2004207923A (ja) * 2002-12-25 2004-07-22 Seiko Epson Corp エッジ生成装置、エッジ生成方法およびエッジ生成プログラム
JP2005094212A (ja) * 2003-09-16 2005-04-07 Canon Inc 画像処理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2006333371A (ja) * 2005-05-30 2006-12-07 Sanyo Electric Co Ltd 画像処理装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436981A (en) * 1992-06-24 1995-07-25 Canon Kabushiki Kaisha Image processing method, and apparatus therefor
JPH08214201A (ja) * 1994-11-28 1996-08-20 Canon Inc 撮像装置
JPH08180177A (ja) 1994-12-26 1996-07-12 Sony Corp 並列プロセッサ
JPH09163162A (ja) * 1995-12-08 1997-06-20 Canon Inc 画像処理方法及び装置
JPH1013697A (ja) 1996-06-18 1998-01-16 Canon Inc 画像処理装置およびその方法
JP3880117B2 (ja) 1997-01-27 2007-02-14 キヤノン株式会社 画像読取方法及び装置
JP2001243464A (ja) 2000-02-29 2001-09-07 Canon Inc 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体
US8102558B2 (en) * 2002-08-05 2012-01-24 Canon Kabushiki Kaisha Image supply apparatus, control method therefor, and printing system
US7432985B2 (en) * 2003-03-26 2008-10-07 Canon Kabushiki Kaisha Image processing method
JP4217657B2 (ja) * 2003-07-30 2009-02-04 キヤノン株式会社 画像処理方法、プログラム、記憶媒体及び装置
JP4407801B2 (ja) * 2003-12-16 2010-02-03 セイコーエプソン株式会社 エッジ生成装置、エッジ生成方法およびエッジ生成プログラム
JP2005341021A (ja) 2004-05-25 2005-12-08 Matsushita Electric Ind Co Ltd 輪郭強調処理装置
JP4533218B2 (ja) 2005-04-06 2010-09-01 キヤノン株式会社 画像処理装置、画像処理方法及び画像処理プログラム
JP4926568B2 (ja) 2006-06-29 2012-05-09 キヤノン株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
JP4637063B2 (ja) * 2006-07-04 2011-02-23 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP4858407B2 (ja) 2006-11-27 2012-01-18 ブラザー工業株式会社 画像読取装置
JP4795264B2 (ja) 2007-02-06 2011-10-19 キヤノン株式会社 走査変換装置及び走査変換方法
JP4845801B2 (ja) * 2007-04-26 2011-12-28 キヤノン株式会社 画像処理装置及びメモリのアクセス制御方法
JP4898590B2 (ja) * 2007-07-26 2012-03-14 キヤノン株式会社 データ処理装置及び方法
JP4968930B2 (ja) 2007-08-03 2012-07-04 キヤノン株式会社 画像処理装置、画像補正方法、画像処理方法及びプログラム
JP5149567B2 (ja) 2007-08-29 2013-02-20 キヤノン株式会社 画像処理装置及び方法
JP4876051B2 (ja) 2007-10-10 2012-02-15 キヤノン株式会社 画像処理装置及びその制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148969A (ja) * 1998-11-04 2000-05-30 Matsushita Electric Ind Co Ltd アドレス生成回路
JP2001251502A (ja) * 2000-03-03 2001-09-14 Seiko Epson Corp 画像処理装置
JP2004207923A (ja) * 2002-12-25 2004-07-22 Seiko Epson Corp エッジ生成装置、エッジ生成方法およびエッジ生成プログラム
JP2005094212A (ja) * 2003-09-16 2005-04-07 Canon Inc 画像処理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2006333371A (ja) * 2005-05-30 2006-12-07 Sanyo Electric Co Ltd 画像処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948542B2 (en) 2010-06-25 2015-02-03 Canon Kabushiki Kaisha Image processing apparatus
US9824415B2 (en) 2010-06-25 2017-11-21 Canon Kabushiki Kaisha Image processing apparatus
JP2015201677A (ja) * 2014-04-04 2015-11-12 キヤノン株式会社 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
US8295598B2 (en) 2012-10-23
US20090161954A1 (en) 2009-06-25
JP5209953B2 (ja) 2013-06-12

Similar Documents

Publication Publication Date Title
JP5209953B2 (ja) 画像データ供給装置および画像データ供給方法
JP4757120B2 (ja) 画像処理装置及びその制御方法
JP2004318581A (ja) 情報処理装置及び印刷プレビュー表示方法
US20120105873A1 (en) Information processing apparatus, information processing method and printing control method
JP2009071626A (ja) 画像処理装置、画像処理方法、画像処理プログラム、並びに、記録媒体
JP4631900B2 (ja) 情報処理装置、情報処理システム、および情報処理プログラム
US8379998B2 (en) Image processing apparatus and method
JP2006295624A (ja) 画像処理装置およびその方法、並びに、コンピュータプログラムおよび記録媒体
JP4709317B2 (ja) 情報処理装置及び情報処理方法及び印刷制御プログラム
JP4646703B2 (ja) 画像処理装置及びその制御方法、プログラム
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP2009124576A (ja) 画像処理装置及びその制御方法
JP4379571B2 (ja) 画像処理装置及び画像処理方法
JP6283980B2 (ja) 画像処理装置及び画像処理方法
JP2006115348A (ja) 画像情報装置および画像印刷方法
JP4280606B2 (ja) 画像形成制御装置及びその制御方法とプリンタドライバ及び印刷制御装置および印刷制御方法
JP6361933B2 (ja) 画像形成システム、プリンタードライバー、画像形成装置およびレンダリングプログラム
JP4470453B2 (ja) 画像処理装置、画像形成装置及びプログラム
JP4316476B2 (ja) 画像処理装置、画像形成装置
JP2003173446A (ja) 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム
JP4419524B2 (ja) 画像処理装置およびプログラム
JP2008173946A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2013150111A (ja) 画像処理装置および画像処理方法
JP2020104337A (ja) 画像処理装置、画像処理装置の制御方法、およびプログラム
JP2005276072A (ja) 2つの記憶領域を利用する画像処理

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100819

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121213

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121225

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: 20130125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130222

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

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5209953

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees