JP2012124667A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2012124667A JP2012124667A JP2010272708A JP2010272708A JP2012124667A JP 2012124667 A JP2012124667 A JP 2012124667A JP 2010272708 A JP2010272708 A JP 2010272708A JP 2010272708 A JP2010272708 A JP 2010272708A JP 2012124667 A JP2012124667 A JP 2012124667A
- Authority
- JP
- Japan
- Prior art keywords
- tile
- image
- memory
- image processing
- 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
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
Abstract
【課題】 画像処理を行う際のメモリアクセスを減らすようにする。
【解決手段】 所定の画像サイズごとに分割されたタイル画像に対して画像処理を実行する画像処理手段と、メモリバスを介して接続されたメモリとを備える画像処理装置において、前記画像処理手段での画像処理を実行したタイル画像それぞれに対して、当該タイル画像内の画素が全て白であるか否かを示すフラグを設定する。タイル画像内の画素が全て白であることを示すフラグが設定されたタイル画像に対しては、前記画像処理を実行したタイル画像の前記メモリへの格納は行わずに、当該フラグの情報を前記メモリに格納する。一方、タイル画像内の画素が全て白ではないことを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納を行うように制御する。
【選択図】 図11
【解決手段】 所定の画像サイズごとに分割されたタイル画像に対して画像処理を実行する画像処理手段と、メモリバスを介して接続されたメモリとを備える画像処理装置において、前記画像処理手段での画像処理を実行したタイル画像それぞれに対して、当該タイル画像内の画素が全て白であるか否かを示すフラグを設定する。タイル画像内の画素が全て白であることを示すフラグが設定されたタイル画像に対しては、前記画像処理を実行したタイル画像の前記メモリへの格納は行わずに、当該フラグの情報を前記メモリに格納する。一方、タイル画像内の画素が全て白ではないことを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納を行うように制御する。
【選択図】 図11
Description
本発明は、デジタル複合機などで高速化の為にパイプライン接続で構成される複数の画像処理部によって画像処理を行う技術に関する。
近年のデジタルカラー複合機は高速化・高画質化への要求に伴い、メモリ消費量や扱うデータ量は格段に増大しており、より一層のメモリ消費量の抑制とデータ転送効率改善の為の工夫が必須となっている。
デジタル複合機の画像処理は複数の画像処理部によって構成され、多くの画像処理部は画像メモリを有しており、メモリを使用して画像操作や参照等の処理を行っている。他の画像処理部とメモリを共有して使用する画像処理部は、ラスタ画像を扱うので、メモリアクセスの処理時間が全体の処理時間において支配的であり、ボトルネックになっている。
単純なスキャン、プリント、コピー動作のみの場合には、スキャナやプリンタの処理速度の方が相対的に遅いため、メモリアクセスの処理時間は全体の処理時間を考える上では、それほど大きな問題にならない。
一方、画像レイアウトや編集処理などを行う際には、HDDやメモリ等の画像データ蓄積手段に圧縮して保存されている画像データを読み出して画像処理を施し、もう一度HDDに書き戻すような画像処理(以降、ループバック系画像処理と呼ぶ)が行われる。
複数の画像処理部がループバック系画像処理を実行する場合、各画像処理部の処理時間のベストエフォートがそのまま全体の処理時間として効いてくる。したがって、上記メモリアクセスに関わる処理時間を短縮させることが、パフォーマンス改善に大きく影響を与えることになる。
また、画像処理で扱うデータ量を削減する一つの手法として、完全な白画像は印字する必要が無い為、白画素に対する画像処理を行わないという考え方がある。例えば、特許文献1では、2値化解像度変換処理において、参照マトリクス内の画像が全て白画素などの特定パターンの場合には、フィルタ演算を行わないことで、積和演算回数を削減し、処理時間を短縮する技術が開示されている。
しかしながら、特許文献1においては、画像処理単位を画素単位で行うため、参照画像が特定パターンの場合には、格納する画像メモリアドレスを算出するために、参照画像サイズ分のシフト動作を主・副走査方向に繰り返し行う必要がある。
つまりメモリアクセス処理時間については、白画素の有無に関わらず変わらない為、メモリアクセスがボトルネックとなる画像処理構成の場合においては、効果を十分に享受できない。
上記課題を解決するために、本発明の画像処理装置は、所定の画像サイズごとに分割されたタイル画像に対して画像処理を実行する画像処理手段と、前記画像処理手段とメモリバスを介して接続されたメモリと、前記画像処理手段での画像処理を実行したタイル画像それぞれに対して、当該タイル画像内の画素が全て白であるか否かを示すフラグを設定するフラグ設定手段と、前記フラグ設定手段によってタイル画像内の画素が全て白であることを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納は行わずに、当該フラグの情報を前記メモリに格納し、前記フラグ設定手段によってタイル画像内の画素が全て白ではないことを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納を行うように制御する制御手段と、を有することを特徴とする。
画像中の白画素で構成される領域のメモリアクセスを行わないことで、画像処理に係る処理時間を短縮することができる。特にループバック系画像処理においては、メモリアクセス時間が全体パフォーマンスに大きく影響を及ぼす為、白画素で構成される領域の割合が多いオフィス文書を扱う場合には、画像処理システムの処理速度が向上する。
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、画像処理装置として、スキャン、プリント、コピーなどの複数の機能を有するデジタル複合機(MFP)を例に説明する。
[第1の実施形態]
図1に示すように、コントローラ101は、画像入力機器であるスキャナ102や画像出力機器であるプリンタ103と接続される。また、コントローラ101はLANや公衆回線(WAN)などのネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。
図1に示すように、コントローラ101は、画像入力機器であるスキャナ102や画像出力機器であるプリンタ103と接続される。また、コントローラ101はLANや公衆回線(WAN)などのネットワーク104と接続することで、画像情報やデバイス情報の入出力、PDLデータのイメージ展開を行う。
CPU105は、後述するHDD記憶部107に格納されたプログラムに従ってMFP全体を制御するプロセッサである。メモリ106は、CPU105が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。HDD記憶部107は、ハードディスクドライブであり、システムソフトウェアや上記プログラム、画像データなどを格納する。
次に、図2に示すコントローラ101の構成例を参照して、コントローラ101の各部の詳細な処理を説明する。まず、スキャナ102によってスキャンされた画像データを読み込む場合を説明する。スキャナ102で読み取られたRGB(レッド、グリーン、ブルー)3色の画像データをスキャナ用画像処理部201が受け取り、その画像データに対してシェーディング処理やフィルタ処理等の画像処理を行い、圧縮部202が画像圧縮処理を行う。そして、当該圧縮されたデータ(圧縮データ)をDMAC(ダイレクトメモリアクセスコントローラ)203が画像メモリバスを介してメモリ106に格納する。
次に、スキャンされた画像データをプリントする場合、メモリ106に格納された圧縮データをDMAC211が画像メモリバスを介して圧縮/展開部212へ転送する。そして、圧縮/展開部212は、圧縮データを展開し、当該展開した画像データをループバック用画像処理部213へ転送する。そして、ループバック用画像処理部213がCMYK(シアン、マゼンタ、イエロー、ブラック)色空間へ変換する。その後、更にループバック用画像処理部213はCMYKの各値に対して濃度調整やプリンタガンマ補正などの色処理を行う。そして、圧縮/展開部212は、該色処理後のデータを再度圧縮し、当該圧縮されたデータをDMAC211が画像メモリバスを介して再度メモリ106に格納する。その後、プリント用の画像処理を行うために、DMAC221が画像メモリバスを介してメモリ106に格納されている圧縮データを読み込み、展開部222がラスタ画像データに展開する。そして、プリント用画像処理部223が、ラスタのCMYK画像データに対してディザ法や誤差拡散法による面積階調処理を行い、プリンタ103へ出力する。
また、スキャンされた画像データをネットワークへ送信する場合やNin1等の画像レイアウト処理を行う場合には、メモリ106に格納されている圧縮データをDMAC211が画像メモリバスを介して圧縮/展開部212へ転送する。圧縮/展開部212により展開された画像データはループバック用画像処理部213へ転送される。ループバック用画像処理部213では、画像レイアウト処理の為に、任意の矩形領域画像の取り出し/再合成を行う処理の他に、ネットワーク送信画像への解像度変換や、YCbCr(輝度、BLUE色差、RED色差)色空間への変換などを行う。そして、ループバック用画像処理部213で処理されたデータを、圧縮/展開部で再度圧縮したのち、DMAC211が画像メモリバスを介してメモリ106に格納する。その後、送信用の画像処理を行うために、DMAC231が画像メモリバスを介してメモリ106に格納されている該圧縮データを展開部232へ転送する。そして、展開部232が該圧縮データをラスタ画像データに展開する。その後、ラスタのYCbCr画像データに対して、送信処理部233がカラー画像送信であればJPEG圧縮処理を行い、モノクロ2値画像送信であればYデータに対して2値化を行った後にJBIG圧縮等を行い、ネットワーク104へ出力する。
また、スキャンされた画像データを保存する場合、メモリ106に格納されている圧縮データを、DMAC241が画像メモリバスを介してディスクスプール高圧縮/展開部242へ転送する。ディスクスプール高圧縮/展開部242では、HDDの書き込みスピードがメモリに対して遅いため、更に高圧縮のJPEG圧縮を施す。その後、ディスクアクセスコントローラ243を介してHDD記憶部107へ圧縮データを保存する。また、HDD記憶部107に保存されている圧縮データを再度メモリ106に転送する場合には、上述した処理を逆に行えば良い。
ここで、図1に示すネットワーク104を介して接続された他の装置から送られてきたPDLデータをメモリ106へ書き込む場合を説明する。図2にはPDL解釈部が図示されていないが、PDL解釈部として機能するCPU105がPDLデータを解釈し、その結果のディスプレイリストをメモリ106に出力する。その後、メモリ106に格納されているディスプレイリストをレンダリング部251がラスタのRGB画像データへレンダリングを行い、圧縮部252が画像圧縮処理を行う。そして、圧縮データをDMAC253が画像メモリバスを介してメモリ106に格納する。尚、PDLデータをレンダリングして生成されたRGB画像を、プリント、ネットワークへ送信、保存する処理は、スキャンされた画像データの場合と同様の処理を行うことで実現可能である。
なお、本実施例において、圧縮部252ではPDLデータから生成されたラスタ画像を圧縮し、圧縮部202ではスキャンで得たラスタ画像を圧縮するものとするが、このような構成に限るものではない。例えば、図2のように圧縮部202と252を個別に設けるのではなく、共通の圧縮部を設けるように構成しても構わない。
[パケット構成]
本実施形態の画像形成装置は、スキャン、プリント等の各画像処理を行う際に、画像メモリバス帯域を連続して占有することが無いように、ラスタ画像を細切れの画像サイズ(M×N画素サイズ。なお、本実施例では32×32画素)に分割し送受信する。
本実施形態の画像形成装置は、スキャン、プリント等の各画像処理を行う際に、画像メモリバス帯域を連続して占有することが無いように、ラスタ画像を細切れの画像サイズ(M×N画素サイズ。なお、本実施例では32×32画素)に分割し送受信する。
本実施形態では、各32×32画素のブロック画像(以下、タイルと呼ぶ)に、ヘッダと呼ばれる画像データに関する情報を付加して生成したパケットという単位で、画像メモリ間での転送が行われる。図3は、パケットの構成およびヘッダの構成を示した図である。
図3に示すように、各パケットは、ヘッダと、タイルの画像データが格納される画像情報格納部と、画素ごとに付与される属性(文字や写真など)の情報が格納される属性情報格納部とによって構成される。
ヘッダには、各パケットに関するヘッダ情報(ページID、タイル座標、色空間、画素データのビット数、データサイズ、属性情報サイズ、属性情報の有無、圧縮フラグ、ユニットID、モードID、全白フラグなど)が格納される。
ページIDは、タイル画像が属するページ画像を識別するための情報(つまり、どのページ画像から分割されたタイルであるかを識別するための情報)である。タイル座標は、該ページ画像内における当該タイルの位置座標を示す情報であり、X座標とY座標の2次元の座標で表現される。色空間は、タイル画像がどの色空間(RGBやCMYK等)により表現される画像であるかを示す情報である。画素データのビット数は、画像データの階調数を示す情報で、2値画像の場合は1ビット、多値画像の場合は8ビットや10ビット等の情報である。
データサイズは、画像データのサイズを示す情報であり、バイト単位で表現され、例えばCMYK空間画像で8ビット階調のデータである場合は、32×32×4=4096バイトで表現される。属性情報サイズは、属性情報のサイズを示す情報であり、バイト単位で表現され、例えば属性情報が8ビット階調のデータである場合は、32×32=1024バイトで表現される。属性情報の有無は、属性情報を含んだタイルであるか否かを示す情報であり、属性情報が無い場合には、属性情報格納部は省かれる。圧縮フラグは、このタイルの画像情報格納部に格納された画像情報が、圧縮されたデータか、非圧縮のデータかを示すフラグの情報である。
ユニットID1〜3およびモードID1〜3は、後述するループバック画像処理部213の各タイル画像処理部801、802、803での画像処理を行うための情報である。ユニットID1〜3は、タイル画像処理部801、802、803を識別するための情報で、どの画像処理をどのような順番で行うかを設定する。例えば、タイル画像処理部801、802、803に対応するユニットIDが、それぞれ“1”、“2”、“3”を割り当てられていたと想定する。ユニットID1に“3”、ユニットID2に“1”、ユニットID3に“0”を設定すると、タイル画像処理部803、801の2つの画像処理が順番に行われる。(ここで、ユニットID3に“0”が割り当てられている場合は、3番目の画像処理は行われないことを示すものとする。)また、モードID1〜3は、上記ユニットID1〜3にそれぞれ対応し、対応するタイル画像処理部801、802、803での画像処理モードを示す情報である。
全白フラグは、このパケットのタイル画像を構成する画素の画素値が全て白画素(RGB各色8ビット画像であれば255、CMYK画像であれば0)で構成されているか否かを示すフラグの情報である。
[圧縮処理およびパケット生成]
上述したように、本実施形態の画像処理装置は、ラスタ画像データを32×32画素ブロックのタイル単位で切り出し、圧縮処理を行い、パケットデータを生成して、メモリバスへ転送する。図4を用いて圧縮およびパケット生成フローについて説明する。圧縮およびパケット生成は、各圧縮部202、212、242、252で行われる。ここでは、ページ画像から32×32画素ブロック単位のタイル画像への変換動作も含めて説明するために、代表して圧縮部202でのパケット生成フローについて説明する。
上述したように、本実施形態の画像処理装置は、ラスタ画像データを32×32画素ブロックのタイル単位で切り出し、圧縮処理を行い、パケットデータを生成して、メモリバスへ転送する。図4を用いて圧縮およびパケット生成フローについて説明する。圧縮およびパケット生成は、各圧縮部202、212、242、252で行われる。ここでは、ページ画像から32×32画素ブロック単位のタイル画像への変換動作も含めて説明するために、代表して圧縮部202でのパケット生成フローについて説明する。
まず、ステップS401において、圧縮部に、図5に示すようなページ単位のラスタ画像データ(スキャン画像)が入力される。ステップS402において、圧縮部は、当該ラスタ画像データにおけるページ背景画素(背景となる画素データ)を設定する。これは、圧縮処理時の初期記憶ブロックとして用いられるための画素データであり、通常は白画素(RGB各色8ビット画像であれば255、CMYK画像であれば0)が用いられる。
ステップS403では、図5のように、ページ単位のラスタ画像から、32×32画素サイズのタイルを順番に切り出す。ステップS404では、当該切り出したタイルに対して、図3で示したようなヘッダ情報を付与する。
ステップS405では、当該切り出したタイルの画像(すなわち32×32画素サイズのラスタ画像)に対して圧縮処理を適用する。この圧縮処理は、いわゆるJPEG方式の静止画像のデジタルデータを圧縮する処理で、属性情報に基づいて、可逆圧縮、非可逆圧縮の符号化処理を行う。
ステップS406では、当該圧縮後のタイル画像のデータサイズを算出し、当該圧縮後のデータサイズと、圧縮前のオリジナルのタイル画像(元データ)のデータサイズとを比較する。圧縮処理は符号情報を必ず付与するので、必ずしもオリジナルの画像データよりデータサイズが小さく圧縮される保証はない。そのため、もし圧縮後のタイルデータのデータサイズがオリジナルのタイルデータのデータサイズを超えてしまった場合には、オリジナルの画像データを圧縮処理せずに出力する方がトータルとしてメモリ効率が良い。従って、圧縮後のデータサイズとオリジナルのデータサイズとを比較した結果、圧縮後のデータサイズがオリジナルのデータサイズ以上であると判定した場合は、ステップS407に進み、ヘッダの圧縮フラグを0にセットする。そして、当該圧縮フラグ0がセットされたタイルのヘッダ情報と一緒に、圧縮していないオリジナルのタイル画像データをパケットデータとしてパッキングする(S408)。一方、ステップS406で圧縮後のデータサイズが、オリジナルのデータサイズよりも小さいと判定した場合は、ヘッダの圧縮フラグを1にセットし(S409)、当該圧縮後のタイルデータ(圧縮データ)と一緒にパケットデータにパッキングする。なお、図3に示すようなパケット構成にするには、タイル単位で圧縮処理が終了し、データサイズが確定した後、画像情報格納部と属性情報格納部との間を詰めた状態でデータをパッキングする。その後、各DMACを経由してメモリ106へパケットデータを出力する(S411)。
ステップS412では、上述したように生成して出力したパケットデータの座標(すなわちタイルの位置を示す座標)と当該パケットデータのサイズ(パケットサイズ)とを、リストとして列挙したパケット管理テーブルを作成(更新)する。このパケット管理テーブルの一例を図6に示す。ステップS413では、全てのタイルに対して上述した処理を実行したか判断し、未処理のタイルがある場合はステップS403に戻って処理を繰り返す。このようにして、ページ単位のラスタ画像の圧縮処理を実行する。
尚、上述のタイル単位でパケットデータをメモリへ書き出すと、図7のメモリ空間に示すように、パケット毎にサイズが異なるので、各パケットデータが格納されているメモリアドレスが飛び飛びになる。そのため、図6に示すパケット管理テーブルを用いることにより、任意の座標位置のパケットの先頭アドレスを探索できる。従って、先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標のパケットまでのデータサイズをオフセットとして、任意のパケットのメモリアドレスを求めることが可能になる。例えば、図6に示す第3パケットを読み込む場合は、第1、第2パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対してオフセットをかけることで第3パケットアドレスを算出する。そして、そこからデータを読み込むことで第3パケットのデータを取得することが可能になる。
このようにタイル単位に任意のパケットデータへのアクセスが可能になるので、画像の部分的な処理が可能になる。例えば、画像の一部の領域を抽出して処理したい場合は、当該領域に対応するタイルのパケットデータを取得して処理すればよい。
尚、圧縮部202、252以外の圧縮/展開部212(やディスクスプール高圧縮/展開部242)においては、パケットデータを32×32画素サイズの画像に展開して画像処理を行った後に、再度圧縮処理を行う。したがって、圧縮/展開部212の圧縮処理では、既に32×32画素サイズになっている画像が圧縮処理対象となるので、図4のステップS404以降の処理を行うようにすればよい。
[展開処理およびタイル生成]
次に展開処理およびタイル生成について説明する。メモリ106へ格納されているパケットデータは、プリント、ネットワーク送信等の各動作において読みだされる際には、展開されタイル画像に変換されたのちに各画像処理部へ送られる。パケットデータを展開してタイル画像を生成する処理は、各展開部212、222、232、242で行われる。
次に展開処理およびタイル生成について説明する。メモリ106へ格納されているパケットデータは、プリント、ネットワーク送信等の各動作において読みだされる際には、展開されタイル画像に変換されたのちに各画像処理部へ送られる。パケットデータを展開してタイル画像を生成する処理は、各展開部212、222、232、242で行われる。
展開部は、パケット毎に付与されているヘッダに格納されている情報を用いて展開処理を行う。まず、圧縮フラグが非圧縮を示している場合には、ヘッダを取り除いたデータを出力し、そうでない場合には圧縮データの展開処理を行う。展開処理では、ヘッダより画像情報格納部のメモリアドレスと、属性情報格納部のメモリアドレスとを求め、圧縮符号化されている画像情報と、属性情報とを読み出す。展開処理は、上述したJPEG方式の圧縮処理の逆変換(すなわち復号化処理)を行う。復号化処理によって、順次32×32画素単位のタイル画像へ展開される。
尚、圧縮/展開部212で展開したタイル画像については、ループバック用画像処理部213で画像処理を行った後、再度圧縮処理を行って、画像メモリバスを介してメモリ106へ書き戻すので、上述のヘッダを取り除かなくてもよい。
[ループバック用画像処理部]
図8を用いて、ループバック用画像処理部213の構成例について説明する。ループバック用画像処理部213は、タイル単位で画像処理を行う複数のタイル画像処理部801、802、803、バス調停部804、メモリ805、及び全白フラグテーブル806で構成される。便宜上、図8では、タイル画像処理部は3個存在するものとして説明するが、3個に限るものではない。なお、タイル画像処理部が3個よりも多くしたい場合は、ヘッダ情報のユニットIDとモードIDの個数も予め多く定義しておけばよい。
図8を用いて、ループバック用画像処理部213の構成例について説明する。ループバック用画像処理部213は、タイル単位で画像処理を行う複数のタイル画像処理部801、802、803、バス調停部804、メモリ805、及び全白フラグテーブル806で構成される。便宜上、図8では、タイル画像処理部は3個存在するものとして説明するが、3個に限るものではない。なお、タイル画像処理部が3個よりも多くしたい場合は、ヘッダ情報のユニットIDとモードIDの個数も予め多く定義しておけばよい。
タイル画像処理部801、802、803は、全てタイル単位で画像を扱う処理部であるため、処理の高速化の為に、入出力のインターフェースを全て同じにして直列接続するパイプライン構成で接続されている。タイル画像処理部801、802、803は、それぞれの画像処理の為に、バス調停部804を介して、処理前後のタイル画像をメモリ805に格納する必要がある。
バス調停部804は、複数のメモリバスマスタであるタイル画像処理部801、802、803のバスの使用権を調停する制御部である。これは特定のバスマスタがメモリバスを占有し続けると、他のバスマスタが使用できなくなるのを防ぐためのものである。バス使用権の調停は、各バスマスタで要求されるパフォーマンスに合わせ、予めマスタ毎に割り当てられた優先順位にしたがって行われる。
メモリ805は、タイル画像処理部801、802、803において画像処理を行う際に、画像データを格納するための記憶手段である。
全白フラグテーブル806は、ページ画像を構成する各タイル画像について、全て白画素で構成されているか否かを示す全白フラグを格納するテーブルである。タイル画像処理部801、802、803は、全白フラグテーブル806を参照して、タイル内が全て白画素で構成されているか否かを識別し、全て白画素で構成されていると判断した場合は当該タイルのメモリアクセスを行わないよう制御する。全白フラグテーブル806を使用したメモリアクセス制御方法についての詳細は後述する。
[メモリアクセスによるパフォーマンスへの影響]
本発明に関わる課題は、このタイル画像処理部801、802、803がメモリ805へアクセスする際のデータ転送時間がパフォーマンスに大きく影響を与えている事にある。
本発明に関わる課題は、このタイル画像処理部801、802、803がメモリ805へアクセスする際のデータ転送時間がパフォーマンスに大きく影響を与えている事にある。
メモリバスのバス幅は、接続されるメモリデバイスのバス幅により決定され、例えばDDR−SDRAMタイプのメモリを使用する場合には、32ビットや64ビットが一般的である。これに対し、各タイル画像処理部801、802、803の入出力インターフェース(以下、タイルバスと呼ぶ)のバス幅に関しては、あらゆる制約を受けないので、データの取り扱い易い任意のバス幅で設計することができる。本実施例においては、ヘッダ情報、画像情報、属性情報の各ビット数、色空間毎のデータサイズを鑑み、各情報を抽出・追加をしやすいように128ビットで構成する。
図9に1タイル分のデータを処理する際の、タイルバスとメモリバスにおけるデータ転送の相関を表すタイミングチャートの模式図を示す。
初めにタイルバスにおけるデータ転送方法について図9を元に説明する。タイルバスでは、ヘッダ情報、画像情報、属性情報の順番で各タイル画像処理部801、802、803に入力される。
転送サイクル数について、例えば画像データの色空間がCMYKで、画素データのビット数が8ビットの場合を考える。タイル画像は32×32画素サイズであるので、画像情報は32×32×4=4096バイトであり、属性情報は1画素辺り1バイトであるとすると、属性情報は32×32=1024バイトである。したがって、タイルのデータサイズは、ヘッダ情報を32バイトとすると、画像情報4096バイト、属性情報1024バイトであるため、合計5152バイトとなる。従って、1タイルのデータを128ビットのタイルバスで転送する際に、費やされるサイクル数は、最速で動作すると仮定すると、322サイクルである。
各タイル画像処理部801、802、803は、パイプライン接続で構成され、それぞれ同一インターフェースにより一対一の関係で接続されている為、パイプライン最後の画像処理部803が待たされない限り、最速で動くことができる。
次にメモリバスにおけるデータ転送方法について説明する。メモリバスは、メモリバス周辺のメモリコントローラやバス調停部の設計負荷を軽減する為に、汎用のシステムLSI向けのオンチップ・バスを使用することが主流になりつつある。本実施例では、メモリバスとして、AMBA3.0規格として仕様が追加された高性能なAXIインターフェースを採用した場合を例にとり説明する。
各タイル画像処理部801、802、803は、メモリ805への転送準備が整うと、メモリ805に対しデータ転送の要求信号を送信する。メモリ805は要求信号を受け取ると、メモリ805の格納領域の空き状況などを確認し、データを受け取る準備ができている場合には、データ転送の許可信号を各タイル画像処理部801、802、803に対して返信する。各タイル画像処理部801、802、803は、許可信号を受け取ると、データの送信を開始する。メモリ805は転送データを全て受け取ると、データ転送が終了したことを示す終了信号を各タイル画像処理部801、802、803に対して返信する。以上の要求信号の送信から終了信号の受信までの一連のステップにより、メモリバスにおけるデータ転送が完結する。本実施例では、この一連のデータ転送処理を、ヘッダ情報、画像情報、属性情報の順番で行われる。
ここで、メモリバスで費やされる転送サイクル数について、タイルバスの転送サイクル数と比較してみる。タイルのデータサイズ(5152バイト)に基づいて、AXIインターフェースの一般的なバス幅の32ビットで換算すると、正味のデータ転送に費やされるサイクル数は、1288サイクル必要になる。従ってメモリバスの転送サイクル数(322サイクル)に比べて4倍のサイクル数(所要時間)がかかることになる。つまり各タイル画像処理部801、802、803は322サイクルで、メモリ805へライトするデータを受け取れるにも関わらず、メモリバスの制約により、メモリアクセスでは966サイクル余計に時間がかかってしまうことになる。
次に正味のデータ転送以外に必要な、データ転送のマスタとスレーブ間におけるハンドシェーク動作に関わる所用時間について説明する。AXIインターフェースに限らず、データ転送を行う際には、上述した要求信号、許可信号、及び終了信号などの信号をマスタとスレーブ間で送受信する。この一連のやり取りを通して準備が互いに整っていることを確認してからデータ転送を実施する(以下、ハンドシェーク動作)。また、複数マスタで一つのスレーブ(メモリ)を共有する場合、一つのマスタがメモリバスを占有して、他のマスタからのデータ転送が待たされることを防ぐために、あるデータ単位で区切ってデータ転送が行われる。その為、一度のデータ転送において、連続してデータ転送する回数(バーストサイズ)は、各メモリバスおいて上限が規定されている。AXIインターフェースの場合、最大の連続転送回数(バーストサイズ)は128回である。
そのため、128サイクル毎にマスタとスレーブ間でのハンドシェーク動作が必要になる(図9の期間A)。これに対し、タイルバスはパイプライン構成で接続されている為、各タイル画像処理部が1対1で接続されているために、最終のタイル画像処理部803が待たされない限り、ハンドシェーク動作が発生せず、最速で動作することが可能である。
更に、例えば本画像形成装置のコントローラ101をASICで構成する場合、メモリバスは本数を増やすと、ASICの端子数が倍数的に増え、ダイサイズが大きくなりコストに直結する。そのため、メモリバスは概ね1本で他のバスマスタと共有する構成をとるのが一般的である。したがって、図8に示すように1本のメモリバスで構成する場合には、タイル画像処理部801、802、803でのメモリアクセスが同時に発生し、バス調停部804においてバス使用権を獲得するための要求が同時に発生することが頻発する。すると、バス使用権を獲得できなかったマスタは、自分の使用権が回ってくるまで、メモリアクセスを待たされることになる(図9の期間Bと期間C)。
従って、メモリアクセスは1タイル辺りに必要な転送サイクルが大きいことに加え、メモリアドレスの転送と、定期的なマスタとスレーブ間のハンドシェーク、同時アクセス時のバス調停動作が加わる為に、画像処理時間の大きなウェイトを占めている。つまり、メモリアクセス時間を削減することが、パフォーマンス向上の為の大きな要素になっている。
[タイル画像処理(タイルレイアウト調整)]
次に、タイル画像処理部801、802、803による画像処理について説明する。タイル画像処理部では、タイル画像に対して様々な画像処理(例えば、文字色の置換処理、解像度変換処理など)を行わせるように設定することが可能である。
次に、タイル画像処理部801、802、803による画像処理について説明する。タイル画像処理部では、タイル画像に対して様々な画像処理(例えば、文字色の置換処理、解像度変換処理など)を行わせるように設定することが可能である。
タイル画像処理の一例として、画像レイアウトを変更する処理を行う際に使用される、タイルレイアウト調整の処理概要について説明する。このようなタイルレイアウト調整処理を利用して、画像の縮小や、集約(Nin1印刷)等の画像レイアウト処理を行うことができる。
図10にタイルレイアウト調整の概要を表す模式図を示す。タイルレイアウト調整は、オリジナルのページ画像の任意の行および列の画像をタイル単位で取り出し、ページ画像を再合成して出力する処理である。例えば、図10に示すように、領域A〜Oまでの任意の領域をタイル単位で抜き出し、各領域間の行および列方向のギャップを詰めて接続し、新たなページ画像を生成する。
[タイル画像処理部]
次にタイル画像処理部801、802、803の構成例について説明する。ここでは、タイル画像処理部801で、上述したタイルレイアウト調整処理を実行するように構成したものとする。タイル画像処理部802、803では、その他の画像処理(例えば、文字色の置換処理、解像度変換処理など)を実行するようにしたものとする。図11に、タイル画像処理部の構成の一例を示す。
次にタイル画像処理部801、802、803の構成例について説明する。ここでは、タイル画像処理部801で、上述したタイルレイアウト調整処理を実行するように構成したものとする。タイル画像処理部802、803では、その他の画像処理(例えば、文字色の置換処理、解像度変換処理など)を実行するようにしたものとする。図11に、タイル画像処理部の構成の一例を示す。
図12は、タイル画像処理部801、802、803における処理フローを示す図であるが、特に、タイルレイアウト調整処理を例として説明する。タイル画像処理部801、802、803の処理フローを通して、本実施例における画像処理装置の特徴である、タイル内が全て白画素で構成される場合には、当該タイルのメモリアクセスを行わない制御について説明する。
まず、ステップS1201では、タイル画像処理部で実行される画像処理の初期設定を行う。タイルレイアウト調整処理では、タイル単位で取り出す各領域の座標設定と、全白フラグの生成を実施するための設定をレジスタにより行う。レジスタ設定された各領域の座標情報は、タイル引き出し部1102に設定される。なお、タイルレイアウト調整で取り出す各領域の位置(すなわち新たなタイルの位置)は、図13に示すように、上述した図4で説明したパケットデータ生成時にスキャン画像から切り出したタイルの位置と一致しない場合が多い。ここでは、タイルレイアウト調整処理で取り出される領域における新たなタイル領域を、新タイルと呼ぶこととする。
次に、ステップS1202では、処理対象のタイル画像をタイルバンドバッファ1101に格納する。タイルレイアウト調整処理の場合、レジスタ設定された領域設定に応じて、最初に取り出す新タイルに対応する位置にある複数のタイル(パケットデータを展開したタイル画像)をタイルバンドバッファ1101に格納する。タイルバンドバッファ1101は2タイルライン分(タイル単位でY方向に2行分)の容量のバッファサイズを有している。従って、2タイルライン分を超えるタイルが入力される度に、先頭の一番古いタイルデータが捨てられる。図13に、ページ画像における取り出す領域A〜Dにおける新タイルそれぞれの位置の一例を示す。例えば、4つの取り出す領域A〜Dのうち、最初の領域Aの番号1の新タイルを取り出す場合、オリジナル画像の先頭の(0、0)座標のタイルから、(1、1)座標までのタイルがタイルバンドバッファ1101に格納される。
ステップS1203において、タイル画像処理部は、設定された画像処理を実行し、実行した結果のタイル画像データをタイルバッファ1103に格納する。タイルレイアウト調整処理の場合、タイル引き出し部1102が、設定された各領域の座標情報を元に、タイルバンドバッファ1101より、取り出す領域における新タイルの画像を抽出する。抽出されたタイルのデータはタイルバッファ1103へ格納される。
次に、ステップS1204において、当該格納した画像処理後のタイル画像に対して、当該タイル内の画素値を参照して全白フラグを生成するか否か判定する。以前の処理で設定済みの全白フラグを参照して判定できる場合はそれを利用し、一方、全白フラグがまだ設定されていない場合や画像処理によって画素値が変化している可能性がある場合は、タイル内の画素値を参照(検査)して全白フラグを生成すると判定する。例えば、パイプラインの一番先頭のタイル画像処理部801において、タイルの全画素参照による全白フラグの生成を行った場合、全白フラグが生成されるので、それ以降のタイル画像処理部802、803においては、全画素を参照せずに全白フラグを設定できる場合がある。なお、各タイル画像処理部801、802、803は、パイプラインの先頭のタイル画像処理部であるか否かの判断は、ヘッダのユニットID1に設定されている番号が1であるか否かによって判断できる。
タイル内の画素値を参照して全白フラグを生成すると判定(S1204でYES)した場合には、タイルバッファ1103に格納されている32×32画素で構成されるタイルの全画素を参照し(S1205)、全画素が白画素であるか否か判定する(S1206)。
タイルバッファ1103に格納されている全画素が白画素であると判定した場合(S1206でYES)、当該新タイルのヘッダの全白フラグに全て白画素であることを示す“1”を設定する(S1207)。更にこのとき、全タイル分の全白フラグ(1ビット)を格納する全白フラグテーブル806にも、全白フラグ“1”を書き込む。一方、白画素でない画素があると判定した場合(S1206でNO)は、ヘッダの全白フラグに全て白画素でないことを示す“0”を設定する(S1208)。更にこのとき、全タイル分の全白フラグ(1ビット)を格納する全白フラグテーブル806に、全白フラグ“0”を書き込む。図14は、図13のタイルレイアウト処理で取り出した新タイルに対して設定される全白フラグテーブル806の例である。図14の左側の図は新タイルのアドレスを示し、右側の図は、各新タイルに対応する全白フラグを示すデータである。
ステップS1204において、以前の処理で設定済みの全白フラグを参照して判定できると判断した場合は、設定済みの全白フラグを参照し(S1209)、当該タイルが全白フラグを1に設定すべきか判定する。例えば、以前のタイル画像処理で、全白フラグ1が設定されており、S1203で実行した画像処理が、全白フラグが変わらないような画像処理で有った場合、以前に設定された全白フラグを流用すればよい。
また、タイルレイアウト調整処理を行うタイル画像処理部において、以前の処理で設定済みの全白フラグがあると判定した場合、当該新タイルに対応する位置にある旧タイル(2×2タイル分)の全白フラグの情報を参照して決定することができる。図15は、タイルレイアウト調整処理において、旧タイルの全白フラグを参照して全白フラグを生成する場合の概略を説明する図である。図15において領域Dの番号22の新タイルを取り出す場合、番号22の新タイルの位置に対する旧タイルは、(3、4)、(4、4)、(3、5)、(4、5)座標の4つの旧タイルであり、これらの全白フラグの情報をタイルバンドバッファ1101より読み出す。この時の4つのタイルの全白フラグは、それぞれ“0”、“1”、“0”、“1”であったとすると、取り出すタイル内は全て白画素ではないと判断(S1210でNO)し、ヘッダの全白フラグに全て白画素でないことを示す“0”を設定する(S1208)。これと同時に、全タイル分の全白フラグ(1ビット)を格納する全白フラグテーブル806に、全白フラグ“0”を書き込む。また、図15において領域Dの番号29の新タイルを取り出す場合、番号29の新タイルの位置に戴尾する旧タイルは(4、5)、(5、5)、(4、6)、(5、6)座標の4つの旧タイルであり、これらの全白フラグの情報をタイルバンドバッファ1101より読み出す。この時の4つの旧タイルの全白フラグは、全て“0”であるため、取り出す新タイル内は全て白画素であると判断(S1210でYES)し、ヘッダの全白フラグに全て白画素であることを示す“1”を設定する(S1207)。これと同時に、全タイル分の全白フラグ(1ビット)を格納する全白フラグテーブル806に、全白フラグ“1”を書き込む。
ステップS1211では、ヘッダの全白フラグに“1”が設定されているか否か判定する。ヘッダの全白フラグに“1”が設定されている場合(S1211でYES)には、当該タイルのヘッダ情報のみをメモリ805に書き込み(S1212)、タイルの画像情報と属性情報については、メモリ805への書き込み(データ転送)は行わない。
図16は、メモリライト制御部1105の構成を示す図である。メモリライト制御部1105は、ライト制御部1601とライトアドレスカウンタ1602とにより構成される。
全白フラグテーブル806の設定が完了すると、ライト制御部1601は、バス調停部804を介してメモリ805へライト要求信号を送信する。送信したライト要求がバス調停部804でのバス調停動作により、メモリバスの使用権を獲得し、メモリ805でのライトデータを受け取る準備ができている場合には、ライト許可信号が返される。
ライト制御部1601は、ライト許可信号を受信すると、タイルバッファ1103より、ヘッダ情報の色空間、属性情報の有無、ビット数、全白フラグを読み出し、メモリ805へ書き込むデータの転送サイズを算出する。例えば色空間がCMYK、ビット数が8ビット、属性情報が有りの場合を考える。この場合のヘッダ、画像情報、及び属性情報のバイト数は、それぞれ32、4096、1024である。タイルバッファ1103にタイルバスの128ビット単位で格納されているとすると、ヘッダ、画像情報、及び属性情報の格納サイズは、それぞれ2、256,64となる。
一方、ライト制御部1601は、メモリへのライトデータの転送サイズも同時に算出する。メモリバスとして32ビットのAXIインターフェースを想定すると、転送サイズはそれぞれ8、1024、256となる。
全白フラグに“1”が設定されている場合(S1211でYES)には、ヘッダのみをメモリ805へ転送する為、ライト制御部1601は、ヘッダのみの転送サイズの2を、転送要求信号とともに、タイルバッファ1103へ送信する。これと同時に、メモリ805へのライト転送サイズとして、ヘッダのみの転送サイズの8を、メモリ805へ送信する。
一方、ライトアドレス信号もライトアドレスカウンタ1602よりメモリ805へ送られる。最初のタイルの転送時には、ライトアドレスカウンタ1602はメモリの先頭アドレス設定値がロードされているため、メモリ先頭アドレスが転送される。
ライトバッファ1103は転送要求を受信すると、受け取った転送サイズを元にタイルバッファ1103内の先頭アドレスから順番にメモリ805へライトデータを転送する。ライトデータが全て送られ、メモリ805よりライト終了信号を受け取ると、ライト制御部1601は、ライトアドレスカウンタ1602へ、ライト転送サイズをライトアドレスの加算値として、カウントイネーブル信号とともに送信する。
ライトアドレスカウンタ1602は、カウントイネーブル信号を受け取ると、送られたヘッダのみの加算値をカウントする(S1213)。
次に、ヘッダの全白フラグに“0”が設定されている場合(S1211でNO)について説明する。この場合は、タイルバッファ1103のタイル画像データを全て、メモリ805へ転送する。以下、ヘッダの全白フラグに“1”が設定されている場合との差分についてのみ説明する。
全白フラグが“0”の場合は、タイルの全てのデータを送る必要があるので、メモリ805へ転送するデータサイズが異なる。タイルバッファ1103へ送る転送サイズは、ヘッダ、画像情報、及び属性情報の格納サイズ、それぞれ2、256、64の合計の322となる。一方、メモリ805へのライト転送サイズは、それぞれ32、4096、1024の合計の1288となる。メモリ805よりライト許可信号を受け取ると、算出した転送サイズに従って、タイルバッファ1103内に格納されているヘッダ、画像情報、及び属性情報を含めて1タイル全てのデータがライトデータとしてメモリ805へ転送される(S1214)。1タイル分のデータのライトが終了し、メモリ805よりライト終了信号を受け取ると、ライト制御部1601は、ライトアドレスカウンタ1602へ、1タイル分のライト転送サイズをライトアドレスの加算値として送信する。
ライトアドレスカウンタ1602は、カウントイネーブル信号を受け取ると、送られた1タイル分の加算値をカウントする(S1215)。
図17は、各ヘッダ情報に対するメモリ転送サイズとアドレス加算値の関係を示す。また、図18は、メモリ805へライトされるタイルデータのメモリ配置の概略図を示す。全白フラグテーブル806に、図14に示すようなテーブルが設定された場合、つまりアドレス29、30、34、35、36に全白フラグとして“1”が設定される場合は、当該アドレスに対応するタイルはヘッダのみを詰めて配置する。
次にステップS1216では、1ライン分のタイルデータのメモリ805へのライト動作が終了したか判定する。1ライン分のタイルデータのメモリ805への格納がまだ終わっていないと判定した場合(S1216でNO)、ステップS1202に戻って処理を繰り返す。一方、1ライン分のタイルデータのメモリ805へのライト動作が終了すると(S1216でYES)、次にタイル画像処理部801、802、803はメモリ805からのリード動作を開始する。
図19にメモリリード制御部1107の構成を示す。メモリリード制御部1107は、リード制御部1901とリードアドレスカウンタ1702により構成される。
1ライン分のタイルデータのメモリへの書き込みが完了すると、リード制御部1901は、バス調停部804を介してメモリ805へリード要求信号を送信する。送信したリード要求がバス調停部804でのバス調停動作により、メモリバスの使用権を獲得し、メモリ805でのリードデータを受け取る準備ができている場合には、リード許可信号が返される。
リード制御部1901は、リード許可信号を受信すると、ライト制御部1105より、ヘッダ情報の色空間、属性情報の有無、ビット数、全白フラグを受信し、メモリ805から読み出すデータの転送サイズを算出する。例えば色空間がCMYK、ビット数が8ビット、属性情報が有りの場合を考える。この場合のヘッダ、画像情報、及び属性情報のバイト数は、それぞれ32、4096、1024である。タイルバッファ1106にタイルバスの128ビット単位で格納されるとすると、ヘッダ、画像情報、及び属性情報の格納サイズは、それぞれ2、256,64となる。
一方、リード制御部1901は、メモリからのリードデータの転送サイズも同時に算出する。メモリバスとして32ビットのAXIインターフェースを想定すると、転送サイズはそれぞれ8、1024、256となる。
ステップS1217において、メモリ805よりタイルデータをリードする際、全白フラグテーブル806を参照し、先頭タイルより順番に全白フラグをリードし、メモリ805にヘッダのみを格納しているか、もしくはタイルデータ全てを格納しているかを識別する(S1218)。
全白フラグに“1”が設定されている場合(S1218でYES)には、ヘッダのみをメモリ805より読み出す為、リード制御部1901は、ヘッダのみの転送サイズの2を、転送要求信号とともに、タイルバッファ1106へ送信する(S1219)。これと同時に、メモリ805へのリード転送サイズとして、ヘッダのみの転送サイズの8を、メモリ805へ送信する。リードアドレス信号もリードアドレスカウンタ1902よりメモリ805へ送られる。最初のタイルの転送時には、リードアドレスカウンタ1902はメモリの先頭アドレス設定値がロードされているため、メモリ先頭アドレスが転送される。タイルバッファ1106は転送要求を受信すると、受け取った転送サイズを元にタイルバッファ1106内の先頭アドレスから順番にメモリ805よりリードデータを転送する。リードデータが全て送られ、メモリ805よりリード終了信号を受け取ると、リード制御部1901は、リードアドレスカウンタ1902へ、リード転送サイズをリードアドレスの加算値として、カウントイネーブル信号とともに送信する。
リードアドレスカウンタ1902は、カウントイネーブル信号を受け取ると、送られたヘッダのみの加算値をカウントする(S1220)。
次に、タイルバッファ1106に格納されたヘッダ情報を、タイルバンドバッファ1108へ転送する(S1221)。ヘッダ情報をタイルバンドバッファ1108へ転送後、画像データとして白データ((RGB各色8ビット画像であれば255、CMYK画像であれば0)をタイルバンドバッファ1108へライトする(S1222)。白データのライトは白タイル置き換え部1109により制御される。白タイル置き換え部1109は、タイルバッファ1106からタイルバンドバッファ1108への転送数を計数し、画像情報及び像域情報をライトするタイミングで、白データとして“0”もしくは“255”をタイルバンドバッファ1108へライトする。タイルバッファ1106からタイルバンドバッファ1108への転送データが128ビット単位であるとすると、例えば色空間がCMYK、ビット数が8ビット、属性情報が有りの場合は、1タイルデータは合計322個のデータで構成される。この場合、白タイル置き換え部1109は、最初のヘッダ転送分(2回)を除いた320回分の白データのライト動作を繰り返す。
一方、ステップS1218で、全白フラグテーブル806の全白フラグに“0”が設定されていると判定した場合(S1218でNO)、タイルデータを全て、メモリ805より読み出してタイルバッファ1106へ転送する。以下、全白フラグテーブル806の全白フラグに“1”が設定されている場合との差分についてのみ説明する。全白フラグが“0”の場合は、タイルの全てのデータを送る必要があるので、メモリ805より転送するデータサイズが異なる。タイルバッファ1106へ送る転送サイズは、ヘッダ、画像情報、及び属性情報の格納サイズ、それぞれ2、256、64の合計の322となる。一方、メモリ805へのリード転送サイズは、それぞれ32、4096、1024の合計の1288となる。メモリ805よりリード許可信号を受け取ると、算出した転送サイズに従って、メモリ805内に格納されているヘッダ、画像情報、及び属性情報を含めて1タイル全てのデータがリードデータとしてタイルバッファ1106へ転送される(S1223)。
1タイル分のデータのリードが終了し、メモリ805よりリード終了信号を受け取ると、リード制御部1901は、リードアドレスカウンタ1902へ、1タイル分のリード転送サイズをリードアドレスの加算値として送信する。リードアドレスカウンタ1902は、カウントイネーブル信号を受け取ると、送られた1タイル分の加算値をカウントする(S1224)。
次に、タイルバッファ1106に格納された全てのタイル情報を、タイルバンドバッファ1108へ転送する(S1225)。
ステップS1226では、タイルバンドバッファ1108への1ライン分のタイルデータのライトが終了したか判定する。タイルバンドバッファ1108への1ライン分のタイルデータのライトが終了したと判定した場合(S1226でYES)、タイルバンドバッファ1108のデータを読み出し、後段のタイル画像処理部もしくは圧縮部212へ転送する(S1227)。
ステップS1226で1ライン分のタイルデータのライトが終了していないと判定した場合(S1226でNO)、S1217へ進み、全白フラグテーブル806の次のタイルの全白フラグを参照し、以降の処理を繰り返す。
全てのタイル画像に対して、タイルバンドバッファ1108からの読み出しが終了した場合には(S1228でYES)、一連の画像処理を終了する。まだ終了していない場合には(S1228でNO)、S1202へ進み、タイルバンドバッファ1101の書き込みより、残りのタイルデータに対して処理を繰り返す。
以上説明したように、実施例の画像形成装置は、オフィスで使用される文書画像はタイル単位で見ても、全て白画素で構成されるタイルが多いことに着目している。白タイルの画像データをメモリ転送しないことで、パイプライン接続で構成されるタイル画像処理部のパフォーマンスを向上するという効果を奏する。
タイル画像処理部のパフォーマンスを向上することにより、システム効率が低下しないようにする。したがって、高解像度画像に対しても画像処理システムの処理速度の低下を抑えることができるという効果を奏する。
Claims (3)
- 所定の画像サイズごとに分割されたタイル画像に対して画像処理を実行する画像処理手段と、
前記画像処理手段とメモリバスを介して接続されたメモリと、
前記画像処理手段での画像処理を実行したタイル画像それぞれに対して、当該タイル画像内の画素が全て白であるか否かを示すフラグを設定するフラグ設定手段と、
前記フラグ設定手段によってタイル画像内の画素が全て白であることを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納は行わずに、当該フラグの情報を前記メモリに格納し、
前記フラグ設定手段によってタイル画像内の画素が全て白ではないことを示すフラグが設定されたタイル画像に対しては、前記画像処理手段で画像処理を実行したタイル画像の前記メモリへの格納を行うように制御する制御手段と、
を有することを特徴とする画像処理装置。 - 前記画像処理手段は、複数の画像処理手段を含み、且つ当該複数の画像処理手段はパイプラインで構成されることを特徴とする請求項1に記載の画像処理装置。
- 前記メモリに格納されたタイル画像に関するデータを読み出してバッファに書き込む際、前記タイル画像内の画素が全て白であることを示すフラグが設定されたタイル画像に対しては白画素を前記バッファに書き込み、前記タイル画像内の画素が全て白ではないことを示すフラグが設定されたタイル画像に対しては前記メモリに格納されたタイル画像を読み出して前記バッファに書き込むことを特徴とする請求項1または2のいずれかに記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010272708A JP2012124667A (ja) | 2010-12-07 | 2010-12-07 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010272708A JP2012124667A (ja) | 2010-12-07 | 2010-12-07 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012124667A true JP2012124667A (ja) | 2012-06-28 |
Family
ID=46505672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010272708A Pending JP2012124667A (ja) | 2010-12-07 | 2010-12-07 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012124667A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013239896A (ja) * | 2012-05-15 | 2013-11-28 | Seiko Epson Corp | 印刷装置および印刷制御方法 |
-
2010
- 2010-12-07 JP JP2010272708A patent/JP2012124667A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013239896A (ja) * | 2012-05-15 | 2013-11-28 | Seiko Epson Corp | 印刷装置および印刷制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2481206B1 (en) | Image processing apparatus and processing method therefor | |
JP5643574B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2011259246A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
US20110268355A1 (en) | Image processing apparatus, image processing method, and computer-readable medium | |
JP5501041B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP2830690B2 (ja) | 画像処理装置 | |
JP2011139164A (ja) | 画像処理装置及びその処理方法 | |
US7447384B2 (en) | Image processing method and apparatus | |
JP2012124667A (ja) | 画像処理装置 | |
JP4065550B2 (ja) | 画像入出力制御装置、画像処理装置、画像入出力制御装置における画像処理方法、及び画像処理装置における画像処理方法 | |
JP3346051B2 (ja) | 画像処理装置 | |
JP5538996B2 (ja) | 画像処理装置、画像処理方法、プログラム、および記憶媒体 | |
JP3938837B2 (ja) | 画像処理装置 | |
JP2005045342A (ja) | 画像処理装置及び画像処理をコンピュータに実行させる画像処理プログラム | |
JPH11187261A (ja) | 画像処理装置 | |
JP2018118477A (ja) | 画像処理装置とその制御方法、及びプログラム | |
JP2011139165A (ja) | 画像処理装置及びその処理方法 | |
JP2000227848A (ja) | 画像処理装置 | |
JP3377298B2 (ja) | カラー画像印刷システム | |
JP2003348338A (ja) | 情報処理装置 | |
JP2004120639A (ja) | 画像処理方法 | |
JP3344255B2 (ja) | 画像情報処理装置 | |
JP2008033432A (ja) | データ処理装置、画像形成装置、制御方法、及びプログラム | |
US8837021B2 (en) | Image processing apparatus, control method, and computer-readable medium | |
JP2012095227A (ja) | 画像処理装置、画像処理方法、及びプログラム |