JP2015115837A - 制御装置、画像処理装置、制御方法、およびプログラム - Google Patents

制御装置、画像処理装置、制御方法、およびプログラム Download PDF

Info

Publication number
JP2015115837A
JP2015115837A JP2013257394A JP2013257394A JP2015115837A JP 2015115837 A JP2015115837 A JP 2015115837A JP 2013257394 A JP2013257394 A JP 2013257394A JP 2013257394 A JP2013257394 A JP 2013257394A JP 2015115837 A JP2015115837 A JP 2015115837A
Authority
JP
Japan
Prior art keywords
image processing
image
control device
color
image 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.)
Granted
Application number
JP2013257394A
Other languages
English (en)
Other versions
JP6251029B2 (ja
Inventor
伊藤 忠幸
Tadayuki Ito
忠幸 伊藤
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 JP2013257394A priority Critical patent/JP6251029B2/ja
Priority to US14/557,401 priority patent/US9786250B2/en
Publication of JP2015115837A publication Critical patent/JP2015115837A/ja
Application granted granted Critical
Publication of JP6251029B2 publication Critical patent/JP6251029B2/ja
Active 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/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/6027Correction or control of colour gradation or colour contrast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • 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/06Use of more than one graphics processor to process data before displaying to one or more screens
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

【課題】 点順次形式の画像データに対応したカラー処理を基本とする画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化すること。
【解決手段】 制御装置は、複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、その画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させる。制御装置は、単色画像データから、色成分の数に応じた数の複数の部分画像を抽出し、複数の部分画像のそれぞれから単色画素値を取得し、画像処理コマンドの複数のフィールドのそれぞれへ格納する。生成された画像処理コマンドは処理装置へ入力され、画像処理コマンドに含まれる画素値を用いた画像処理が実行される。
【選択図】 図10

Description

本発明は制御装置、画像処理装置、制御方法、およびプログラムに関する。
画像を形成して出力する際に、空間フィルタ処理などの局所(近傍)画像処理が適用される場合がある。この局所画像処理は、処理対象となる画素(以下、処理画素と略称する)を含む空間フィルタ領域に含まれる画素を用いて、何らかの演算を行なう画像処理のことである。局所(近傍)画像処理により、例えば、エッジ強調及びぼかし、入力した画像の拡大又は縮小により所望の大きさの画像に変換する解像度変換などを行うことができる。なお、以下の説明では、このような局所(近傍)画像処理のことを、「フィルタ処理」と呼ぶ。
画像処理装置は、入力された画像に対して上述のようなフィルタ処理を施す機能のためのフィルタ回路を備える。一般的に、スキャナ等の読取り機器、プリンタ等の印刷機器やディスプレイ等の表示機器の多くは、カラー画像/カラー原稿(例えばRGBカラー画像、CMYKカラー画像などの複数色を有する画像)に対応可能である。このため、このような機器の多くに搭載される画像処理装置は、カラー処理を基本として装置が構成されることが多い。画像処理装置は、例えば、RGBカラー画像に対しては3色を、CMYKカラー画像に対しては4色を、処理するフィルタ回路を備える。一般的なフィルタ回路は、その回路を1つの処理のみでなく他の処理にも使用できるように、例えば、フィルタ処理で使用するフィルタ係数はレジスタ設定などで任意に設定変更できるように設計されることが多い。そのため、各色に対応するフィルタ回路は同一回路でありうる。画像処理装置は、例えば、RGBカラー画像に対しては3基、CMYKカラー画像に対しては4基のように、対応する色の数分だけフィルタ回路を並列に備えることができる。また、機器が、複数の色のそれぞれに対応する複数の画像処理装置を有しうる。例えば、画像処理装置が1色分のフィルタ回路を備えるのみである場合であっても、対応する色の数分だけ画像処理装置を有することにより、機器全体ではカラー処理に対応することができる。このようにカラー処理を基本とする処理装置において、色数に応じた並列化の処理単位(粒度)は、小さくは回路レベルから、大きくは処理装置等のシステムレベルに至るまで多岐に渡る。
このようなカラー処理を基本とした処理装置に、モノクロ(単色)画像が入力される場合、上述のように並列化された処理単位(粒度)を効率的に利用することが考えられる。処理単位を効率的に利用することにより、画像処理装置が、カラー画像の処理速度に比べて単色画像の処理速度を向上できる。
例えば、特許文献1に記載の技術は、画像処理装置が複数の画像処理プロセッサを有し、まず入力原稿が単色原稿であるかカラー原稿であるかを判定する。そして、単色原稿に対しては、入力画像データを分割して複数の画像処理プロセッサに割り振ることで分散並列処理が行われる。また、特許文献1には、モノクロ(単色)画像が複数のページにわたる場合、そのページ毎の処理を複数の画像処理プロセッサが実行することにより、分散並列処理による高速化を達成することについても記載されている。
また、特許文献2には、画像処理装置が複数の縮小回路を有し、入力原稿が複数ページのモノクロ原稿であれば、その複数ページの原稿を複数の縮小回路にそれぞれ割り振ることで、分散並列処理により原稿縮小処理を高速化することが記載されている。なお、特許文献2においても、一部のページを分割して、それぞれ複数の縮小回路に割り振ることにより、分散並列処理を行うことが記載されている。
特開2000−148996号公報 特開2009−141430号公報
カラー画像/カラー原稿のデータ格納形式の一つに点順次形式があり、スキャナ、プリンタ、ディスプレイ等の組込み機器に広く採用されている。点順次形式では、1画素を構成する複数の色成分が1つのデータ単位にパッキングされて取り扱われる。このため、点順次形式のデータ格納方式には、1回のデータアクセスによって、1画素を構成する複数の色成分を一度に読み出せるという利点がある。点順次形式のデータ格納方式が採用されている場合、画像処理装置は、1回に読み出せる複数の色成分をもつ1画素を1つの処理単位(粒度)として、画像処理を実行する。点順次形式に対応した画像処理装置は、特に難しい制御をする必要はなく、例えば1画素単位で同期しながらパイプライン動作するような、一般的な画像処理回路を備えることにより実現できる。
しかし、特許文献1及び特許文献2には、このような点順次形式の画像データに対応したカラー処理を基本とする画像処理装置における、モノクロ(単色)処理のときに画像処理の性能を分散並列化して高速化する手法については記載されていない。
本発明は、このような事情に鑑みてなされたもので、点順次形式の画像データに対応したカラー処理を実行可能な画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化する技術を提供することを目的とする。
上記目的を達成するため、本発明による制御装置は、複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置であって、単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出手段と、前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成手段と、生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力手段と、を有する。
本発明によれば、点順次形式の画像データに対応したカラー処理を基本とする画像処理装置において、単色処理のときに画像処理の性能を分散並列化して高速化することができる。
画像処理装置の構成例を示すブロック図。 画像処理部の構成例を示すブロック図。 バンド処理の対象となるバンド領域の例を示す図。 バンド処理の対象となるバンド領域の例を示す図。 バンド処理の対象となるバンド領域の例を示す図。 画像データの格納例とデータ構造の一例を説明する図。 画像データの格納例とデータ構造の別の例を説明する図。 画像データの入出力の動作の一例を示す図。 画像処理コマンドの構成例を示す図。 単色画像の分割とコマンド生成の一例を説明する図。 単色画像の分割とコマンド生成の別の例を説明する図。 単色画像の分割とコマンド生成のさらに別の例を説明する図。 画像処理回路の動作の一例を説明するブロック図。 単色画像の処理の流れを示すフローチャート。 部分画像の抽出処理の流れを示すフローチャート。 部分画像の抽出処理の流れを示すフローチャート。 解像度変換回路の動作の一例を説明するブロック図。
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。以下の説明では、まず、以下で説明する各実施形態に係る画像処理装置の構成及びカラー画像に対する処理などを説明し、その後に、実施形態ごとのモノクロ画像(単色画像)に対する処理について説明する。
(画像処理装置の構成)
図1は、以下で説明する各実施形態で用いられる画像処理装置の構成例を示すブロック図である。画像処理装置は、例えば、CPU回路部100、画像読み取り部120、画像処理部150を有する。
画像読み取り部120は、例えば、レンズ124、CCDセンサ126、及びアナログ信号処理部127を有する。画像読み取り部120では、レンズ124を介してCCDセンサ126に原稿110の画像情報が結像され、CCDセンサ126によりその画像情報がR(Red)、G(Green)、B(Blue)のアナログ電気信号に変換される。アナログ電気信号に変換された画像情報は、アナログ信号処理部127に入力され、R、G、Bの色成分毎に補正等が行われた後にアナログ/デジタル変換(A/D変換)される。こうして、デジタル化されたフルカラーのデジタル画像信号(画素値)が生成される。生成されたデジタル画像信号は、映像入力部130へ入力され、その後、DMAC(ダイレクト・メモリ・アクセス・コントローラ)192へ入力される。
DMAC192は、CPU102により予め動作が設定されており、共有バス190を介して、入力されたデジタル画像信号をCPU回路部100のメモリ(RAM106)に記憶させる。なお、以下では、複数の画素についてのデジタル画像信号を、1枚の画像や一部の画像領域を形成するように集約したデータを、画像データと呼ぶ。ここでは、デジタル画像信号は画像データの形式でRAM106に記憶されるものとする。画像処理を行う場合、CPU102は、DMAC194を起動してRAM106に記憶された画像データを読み出させ、処理の対象となる画素に対応するデジタル画像信号を画像処理部150に入力させる。
画像処理部150は、データの処理を行う処理装置であり、例えば、入力されたデジタル画像信号に対して、例えば、スキャナなどのセンサ・デバイスの読み取り素子の個体差の補正と入力ガンマ補正などの色補正とを行い、画像データを生成する。そして、DMAC196は、これらの処理が施された画像データをRAM106に格納する。なお、DMAC196の制御については、例えばCPU102が予めDMAC196の動作を設定し、また、CPU102がDMAC196を起動するようにする。DMAC196の動作は、例えば処理後の画像データをRAM106へ書き込むように設定しておく。
これにより、画像処理部150は、例えば、入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理などの、画像の印刷のための画像処理を、入力されたデジタル画像信号に対して実行する。そして、画像処理部150は、印刷可能な画像データを生成し、その画像データを、DMAC196を通じてRAM106に格納する。
DMAC198は、RAM106に格納された画像処理済みの画像データを読み出して画像印刷部170へ出力する。画像印刷部170は例えばプリンタである。DMAC198の設定は例えばCPU102が行う。画像印刷部170は、例えば、インクジェットヘッドやサーマルヘッド等を使用した印刷出力部(不図示)を有する。そして、入力された画像データのデジタル画像信号に基づいて紙上に画像を記録する。なお、上述の説明では、画像印刷部170を用いる例を説明したがこれに限られない。例えば、映像入力部130や映像表示部160等を用いてもよく、この場合、入力された映像に対して所定の画像(映像)処理が施され、処理後の映像がディスプレイなどの表示装置(不図示)に表示される。
CPU回路部100は、演算制御用のCPU102、固定データやプログラムを格納するROM104、データの一時保存やプログラムのロードに使用されるRAM106、及び外部記憶装置108等を備える。CPU回路部100は、画像読み取り部120、画像処理部150、及び画像印刷部170等を制御し、画像処理装置のシーケンスを統括的に制御する。外部記憶装置108は、画像処理装置が使用するパラメータやプログラムや補正データを記憶するディスク等の記憶媒体であり、RAM106のデータやプログラム等は、外部記憶装置108からロードされてもよい。
(画像処理部の構成)
続いて、画像データに対する画像処理を実行する画像処理部150について、図2を用いて説明する。なお、画像処理部150の処理の実行に先立って、CPU102によりDMAC194が起動され、DMAC194がRAM106から画像データが読み出される。画像データのデータ構造については後述する。
読み出された画像データは、入力ポート151を介して、画像処理部150の画像入出力部152へ入力される。画像入出力部152に含まれる画像入力部1521は、画像データを取得すると、取得した画像データを、中間バッファ制御部1522に含まれる中間バッファの記憶領域に記憶させる。そして、画像入力部1521は、中間バッファに一時的に記憶された画像データを読み出しながら、後述する点順次形式の画素値のデータを含む画像処理コマンドを生成し、入力画像処理コマンド155として画像処理実行部153へ入力する。
画像処理実行部153は、入力された画像処理コマンド155に対して所定の画像処理を実行して、画像処理後の画素値のデータを含む画像処理コマンド156を画像入出力部152へ出力する。画像処理実行部153の詳細については後述する。このとき、入力画像処理コマンド155および出力画像処理コマンド156は、予め定められた点順次形式の複数の色成分に対応する画素値のデータを含む画像処理コマンドである。そして、画像処理実行部153は、例えば、このコマンド単位で同期しながら動作するパイプライン回路でありうる。
ここで、画像データは複数の点順次形式の画素値を含んで構成される。画像入出力部152は、複数の画素値から、複数の画像処理コマンドを生成して画像処理実行部153に入力する。また、画像入出力部152は、画像処理実行部153から出力された、画像処理が実行された後の画素値を含む複数の画像処理コマンド156を受け取り、1つの画像処理コマンド156から点順次形式の画素値を抜き出す。そして、画像入出力部152は、抜き出した画素値を中間バッファ制御部1522内の中間バッファに一時的に格納する。画像入出力部152は、このような記憶処理を繰り返し、複数の画像処理コマンド156から複数の画素値を抽出して、複数の画素値を集約して画像データを形成する。そして、画像入出力部152は、形成された画像データを中間バッファから読み出し、画像処理後の出力画像データとして、出力ポート154を介してDMAC196へ送出する。DMAC196は上述の通り、CPU102により既に起動されており、受け取った出力画像データをRAM106へ書き出す。
すなわち、画像処理部150では、画像入出力部152を介してDMAC194から画像データを取得し、画像処理実行部153で画像に対する画像処理を実行し、データ処理後の画像データを、画像入出力部152を介してDMAC196へ出力する。このようにして、画像処理部150は、画像処理装置内に含まれる画像データに画像処理を施し、処理後の画像データを画像処理装置へ戻すこととなる。
(領域分割手法の一例としてのバンド処理)
次に、以下で説明する各実施形態において用いられうる、画像データの領域分割について説明する。本実施形態では、領域分割手法の1つであるバンド処理を用いるものとする。以下、バンド処理について、図3〜図5を用いて説明する。バンド処理では、例えば、図3に示されるように、1枚の画像データ300が帯状のバンド領域301〜304に分割され、このバンド領域毎に逐次的に各種の画像処理が実行される。なお、バンド領域は、画像データを主走査方向または副走査方向のいずれかにおいて分割したものであり、バンド領域と画像データとは、主走査方向または副走査方向のいずれかにおいて長さが一致する。例えば、図3では、画像データは副走査方向において分割され、画像データとバンド領域とでは、主走査方向について同一の長さを有し、副走査方向において異なる長さを有する。以下では、この分割された細長い領域をバンド領域と呼び、バンド領域に含まれるデータが展開される記憶領域をバンドメモリと呼び、画像データを分割する処理をバンド分割と呼ぶ。バンドメモリは、RAM106内に記憶領域として確保されてもよく、また、システム上の適当な記憶装置内の領域として確保されてもよい。なお、ここでは、説明を簡潔にするためにバンドメモリがRAM106内に確保される場合の例について説明する。
また、以下では、図3の(e)に示すように、画像データの座標系(主走査方向−副走査方向)を、長さ方向、高さ方向という新たな座標系(バンド領域座標系)によって定義し、バンド領域を長さ×高さで表現する。バンド領域の長さ、すなわちバンド領域の長さ方向の一辺の大きさは、画像データの主走査方向の長さ、または副走査方向の長さの何れかの値とする。また、バンド領域の高さ、すなわちバンド領域の高さ方向の一辺の大きさは任意の値となる。例えば、図3では、長さ方向は主走査方向であり、高さ方向は副走査方向である。これに対し、図5のように、例えば画像データを主走査方向において分割した場合、図5の(s)に示すように、長さ方向が副走査方向となり高さ方向が主走査方向となる。図5のようなバンド分割は、例えば画像データの主走査方向の大きさが副走査方向の大きさより大きい場合に行われるようにしてもよい。
バンド処理では、まず、図3における第1のバンド領域301が、RAM106上のバンドメモリに展開されて、画像処理が施される。次に、第2のバンド領域302が、第1のバンド領域301が展開されたRAM106上のバンドメモリに上書き展開され、画像処理が施される。さらにその後、第3のバンド領域303が、第2のバンド領域302が展開されたRAM106上のバンドメモリに上書き展開され、画像処理が施される。最後に、第4のバンド領域304が、第3のバンド領域303が展開されたRAM106上のバンドメモリに上書き展開され、画像処理が施される。図3から明らかなように、バンド領域301〜304の長さは同じであるが、高さは同じでなくてもよい。したがって、メインメモリに確保される記憶領域であるバンドメモリの高さは、高さ方向の一辺の大きさが最も大きいバンド領域(図3の場合、第1のバンド領域301〜第3のバンド領域303)によって決定されてもよい。
なお、バンド処理では、各バンド領域間で隙間なく空間フィルタ処理などの局所(近傍)画像処理を行なうため、図4に示すように、各バンド領域が、それぞれ隣接する領域との境界で一部分が互いに重なり合うように構成されてもよい。この場合、例えば、各領域の高さの方向に1画素ずつ画素を走査することとして、局所(近傍)画像処理に必要な処理画素を保持する遅延メモリの容量が、各領域の高さで規定される。これにより、局所(近傍)画像処理で必要となる遅延メモリの省メモリ化を実現できる。
(カラー画像データのデータ構造)
次に、点順次形式のカラー画像データのデータ構造の一例について説明する。例えば、カラー画像の1画素が、R(Red)、G(Green)、B(Blue)で構成されるRGBカラー画像データの場合、点順次形式では各色を1つの画像データにパッキングして、1つのデータ単位として取り扱う。同様に、カラー画像の1画素が、C(Cyan)、M(Magenta)、Y(Yellow)、K(Black)で構成されるCMYKカラー画像データの場合も、点順次形式では、各色を1つの画像データにパッキングして、1つのデータ単位として取り扱う。
ここでは、上述のように、これらの点順次形式の画像データはRAM106に一時的に格納される。一般的に、RAM106は安価なDRAMで構成されることが多い。このとき、上述のようにDMACを介して画像データを読み書きする場合、DRAMが性能を落とさずに読み書きできる単位で画像データが取り扱われるようにすることができる。この場合のRAM106の画像データの格納方法と、画像データのデータ構造との一例について、図6を用いて説明する。図6は、RAM106(DRAM)上にデータが格納された状態を示している。図6の例では、あるデータ領域(IMG_AREA_STR_ADDRからIMG_AREA_END_ADDRまでの領域)が確保され、ここに画像処理に必要な種々の画像データが格納される。
図6は、点順次形式の画像データの構造のRAM106への格納例であり、RAM106(DRAM)のデータ領域に、S1_IMG425とS2_IMG426の2種の画像データが格納された例を示している。例では、DRAMの性能を落とさずに画像データを読み書きできるように、格納される画像データの容量の最小単位は、図6の408に示すように、32bit×8wordの32Byteとしている。すなわち、S1_IMG425とS2_IMG426の画像データの格納容量は32Byteの整数倍となる。なお、画像処理装置上でのRAM106の構成方法や、RAM106を実現する記憶装置(DRAM等)の種類、そして実行する画像処理の種類等により、画像データの読み書きの単位は必ずしも32Byteでなくてもよい。なお、読み書きの単位が変更される場合、画像データを記憶する後述の中間バッファの容量の算出方法が変更される。
次に、画像データのデータ構造を詳しく説明する。画像データ440は点順次形式で、第1色R(Red)、第2色G(Green)、第3色B(Blue)の色成分を備える画素値を有する。画像データ440に含まれる1つの領域442は32Byte単位のデータであり、1つの領域442の中には、複数個(8つ)の画素値がパッキングされている(444)。そして、これらの8つの画素値のそれぞれには、それぞれ10bitのR、G、Bの値が点順次形式でパッキングされる(446)。なお、この例では、残りの2bitは、DRAMへのアクセスを簡単にするための無効データであり、データを格納しないものとする。
さらに別のデータ構造を持つ画像データについて説明する。例えば、画像データ490は点順次形式で、第1色C(Cyan)、第2色M(Magenta)、第3色Y(Yellow)、第4色K(Black)の色成分を備える画素値を有する。画像データ490に含まれる1つの領域492は32Byte単位のデータであり、1つの領域492の中には、複数個(8つ)の画素値がパッキングされている(494)。そして、これらの8つの画素値のそれぞれには、それぞれ8bitのC、M、Y、Kの値が点順次形式でパッキングされる(447)。
なお、上述の例の1つの領域(442、492)は、8画素分の情報を含み、32Byte単位のデータとして構成される。このとき、各領域は、領域442のように縦1画素、横8画素を単位とする領域として定められてもよく、領域494のように縦2画素、横4画素を単位とする領域として定められてもよい。この場合、画像データ(440、490)が縦M個、横N個の領域により構成される場合、画像データ440は8M×N画素のサイズとなり、画像データ490は4M×2N画素のサイズとなる。
(画像データの入出力方法)
図8は、本実施形態の画像処理方法を用いた場合の、RAM106から画像入出力部152への、または画像入出力部152からRAM106への、画像データの入出力方法についての説明図である。画像処理装置は、図8の(a)及び(b)のように、1つの画像データ300からバンド領域301を抜き出し、入力画像データとしてRAM106に格納する。そして、このバンド領域の入力画像データは、先に図6を用いて説明したように、RAM106で取り扱いやすくなるように32Byteを単位とした点順次形式のデータ構造を有する。そのため、バンド領域の入力画像データは図8の(c)の210に示すようなデータ構造となる。
図8の(d)において、DMAC194は、図1の共有バス190を介して、このバンド領域の入力画像データ210をRAM106から読み出し、画像処理部150へ入力する。入力画像データ210は、先のデータ構造にしたがって、32Byte×Bdh_inの処理単位で、領域(1)211から領域(M)219までのM個の小さい画素領域(小領域)に分けられる。そして、DMAC194は、このM個の小領域(処理単位)の入力画像データを、小領域(1)211から小領域(M)219まで1つずつ読み出し、画像処理部150に入力する。画像処理部150は、この小領域(処理単位)の入力画像データを受け取り、この単位で画像処理を実行する。
DMAC194は、例えば、CPU102から入力された「読み出し先の先頭アドレス」、「連続読み出し量(32Byte単位のデータを連続何回読み出すか)」、「インクリメント・アドレス」および「繰り返し回数」に基づいて動作する。
例えば、図6の点順次形式のRGBの画像データでは以下の通りとなる。
・「先頭アドレス」:S1_IMG_STR_ADDR
・「連続読み出し量」:1回(32Byte)
・「インクリメント・アドレス」:1ラインのデータ量=32Byte×M
・「繰り返し数」:バンド領域の高さ=Bdh_in回
このようにすることにより、先頭アドレスS1_IMG_STR_ADDRから、まず32Byteのデータが読み出される。そして、次のデータを取得するため、アドレスを32Byte×Mだけ増加させることで、小領域(2)〜(M)の1行目のデータの読み出しが飛ばされて、小領域(1)211の第2行目の32Byteのデータを読み出すこととなる。そして、繰返し数Bdh_in回、すなわち、小領域(1)211のBdh_in行分のデータを読み出すことにより、小領域(1)211の全てのデータを読み出すことができる。小領域(2)〜小領域(M)の入力画像データの読み出しでは、順次「先頭アドレス」を順次32ByteずつずらしてDMAC194を動作させる。このように画像処理装置は、ある小領域の画像データをRAM106からDMA転送で読み出す。
画像入出力部152の画像入力部1521は、DMAC194から、入力画像データを受け取る。そして画像入力部1521は、そのデータを中間バッファ制御部1522へ転送して、中間バッファ制御部1522は、受け取った入力画像データを、内包する中間バッファ(記憶装置)の入力領域234に一時的に格納する。通常、入力領域234の容量は、1回のDMA転送の単位である小領域(処理単位)の画像データを格納できる容量となる。なお、DMAC194は、DMA転送や1つのバンド領域の入力画像データの転送が完了すると、そのことを割り込み信号222を用いてCPU102へ通知してもよい。
その後、画像入力部1521は、中間バッファ制御部1522を介して、一時的に記憶された小領域の入力画像データを読み出す。そして画像入力部1521は、点順次形式にパッキングされた1画素の色成分を含む画素値を抜き出し、後述する画像処理コマンドを順次生成して、画像処理実行部153へ入力する。そして画像処理実行部153は入力された画像処理コマンドに含まれる画素値のデータを用いて画像処理を施し、処理後の画像処理コマンドを生成する。なお、画像処理実行部153の詳細については後述する。
次に画像出力部1523は、処理後の画像処理コマンドから点順次形式の画素値(RGB、CMYK)を抜き出し、中間バッファ制御部1522へ転送し、外部記憶装置108に出力する画像データとして蓄える。このとき、出力画像データのデータ構造は上述の図6の点順次形式のままであるが、出力画像データの形状は、図8の(f)の250のように、入力時から形状が変わっていてもよい。画像処理実行部153では、入力画素領域のサイズと出力画素領域のサイズが異なる様々な画像処理が実行される。そのため、入力画像データ210と出力画像データ250の画素数は異なり、出力画像データ250の出力バンド領域の高さは、Bdh_outとなる。また出力画像データ250のバンド領域の長さは、8×Nとなる。すなわち、入力画像データ210と出力画像データ250では、バンド領域の高さが異なるため小領域(処理単位)の容量が異なる。そして、バンド領域の長さも異なるため小領域(処理単位)の数もM個からN個に変化する。しかしながら、入力と出力ではデータ構造が同一であるため、中間バッファ232の出力領域236の容量は入力領域234の容量と同じ考え方で設定できる。
画像出力部1523は、例えば、Bdh_out個の画素が4列分入力され、小領域(1)251の出力画像データが中間バッファ232の出力領域236に揃った時点で、画像処理実行部153からの処理後の画像処理コマンド156の受け取りを停止する。そして、出力領域236の出力画像データを順次読み出し、DMAC196へ送出する。そしてDMAC196は、CPU102からの指示信号(図8の(d)の225)に従って、処理後の画像データをRAM106へ書き込む。そして、同様の動作が、小領域(2)から小領域(N)まで順次繰り返し実行されることにより、図8の(g)記載の出力バンド領域の出力画像データが、すべてRAM106へ書き戻される。
(画像処理コマンドの構成)
図9の500に示すように、画像処理コマンドは、「ヘッダ」と「データ」とを含んで構成され、「データ」には点順次形式の画素値が格納される。本実施形態に係る画像処理装置は、このコマンドを利用することで、点順次形式の画像データを1画素単位で同期しながら、画像処理実行部153の画像処理回路(1)1531〜画像処理回路(P)1537をパイプライン的に動作させ、画像処理を行う。
また図9の(a)に示すように、画像処理コマンドは複数の点順次形式に対応可能である。例えば、図9の(a)の例では、「ヘッダ」の「op code」を切り替えることで、R(Red)、G(Green)、B(Blue)形式や、C(Cyan)、M(Magenta)、Y(Yellow)、K(Black)形式に対応することができる。
(画像処理実行部の処理)
次に、画像処理部150の画像処理実行部153について、図2を用いて説明する。画像処理実行部153は、画像処理回路(1)1531から画像処理回路(P)1537の、P個の画像処理回路と、インターコネクト1530とで構成される。P個の画像処理回路のそれぞれとインターコネクト1530とは、入力ポート1532、1535、並びに1538、および出力ポート1533、1536、並びに1539等のポートを介して互いに接続される。
画像処理回路は、例えば、入力色補正処理、色空間変換、濃度補正処理、中間調処理、空間フィルタ処理、解像度変換、トリミング処理、端部拡張処理、IP変換、クロマ・アップサンプリングの1つ以上を含む処理を行う。これらの画像処理回路は、パイプライン回路等のハードウェアで実現されてもよいし、プロセッサとプログラム(ソフトウェア)等で実現されてもよい。そして、例えば、入力ポート1532、1535、1538等から入力画像処理コマンド155を受け取り、処理を施した後に、出力ポート1533、1536、1539から処理後の出力画像処理コマンド156を出力する。
また、インターコネクト1530はクロスバーやリングバス等の接続機能で実現されており、入力ポートと出力ポートの接続先を任意に切り替えることができる。したがって、CPU102がこれらポートの接続先の指定を設定することで、インターコネクト1530は、例えばP個の画像処理回路の実行順序を変更し、または一部の処理をバイパスすることができる。このように、画像処理実行部153は、アプリケーションに応じて、各種の処理を取捨選択して組み合わせることにより、所望の画像処理を実現することができる。
画像処理実行部153は、複数個の画像処理コマンドを受け取り、それらの画像処理コマンドの各々から1画素の色成分を含む画素値を抽出する。そして、画像処理実行部153は、抽出した1画素の画素値を用いて画像処理を施し、処理後の1画素の画素値を生成する。このとき、画像処理実行部153の画像処理回路(1)1531〜画像処理回路(P)1537は、1画素単位で同期しながらパイプライン的に画像処理を行う。
以上のように、画像入出力部152から、小領域ごとに画像処理実行部153へと画像処理コマンドが入力される。そして、画像処理実行部153は、1つ以上の画素を含む画素領域を用いたフィルタ処理のような画像処理を施すことができる。このとき、例えば、フィルタ処理の入力となる画素領域をバンド領域の高さ方向(紙面の副走査方向)にスライドさせながら処理が進められ、高さ方向に1列分の画素値が出力されると、次の列の画素を出力するための処理が実行される。具体的には、画素領域に含まれる複数の画素値に対してそれぞれ所定の重み係数が乗算され、それらの値が全て加算されることにより、1つの出力画素が算出される。処理後の画像処理コマンドは、1画素ずつ画像入出力部152の画像出力部1523へ出力される。以上のようにして、本実施形態の画像処理装置は、点順次形式のカラー画像データに対して、フィルタ処理を含む画像処理を適用することができる。
続いて、上述の点順次形式の画像処理装置を利用することを前提として、モノクロ(単色)画像データを高速に画像処理する場合について説明する。
(単色画像データのデータ構造)
まず、図7を用いて単色画像データのデータ構造の一例について説明する。図7の例では、RAM106(DRAM)のデータ領域のS0_IMG420に単色画像データが格納されている。なお、単色画像データにおいても、カラー画像データと同様にDRAMの性能を落とさずに画像データを読み書きできるように、各々格納される画像データの容量の最小単位は、32Byte(32bit×8word)単位とすることができる。なお、S0_IMG420の単色画像データの格納容量は、32Byteの整数倍となる。
次に、単色画像データのデータ構造について説明する。画像データ410は、上述のS0_IMG420の領域に含まれる画素のそれぞれを、輝度値(Intensity)又はグレースケール(Glayscale)などで表現したデータとして格納される。画像データ410に含まれる領域412は、32Byte単位のデータであり、その中には、32個の8bit長のデータがパッキングされる(414)。そして、1つの単色画素値が、1つの8bit長のデータで表現される(416)。なお、以下では、このような8bit長のデータを記号「I」により表す。図7の画像データ410は、このような32個の画素のデータが含まれる領域をM×N個含むため、32M×N画素の大きさの単色画像データを表すこととなる。なお、図7では、領域412は、横方向に32個の画素を含むが、これ以外にも、縦方向に16個かつ横方向に2個など、全体で32個の画素を含む領域でありうる。領域412が縦方向に16個かつ横方向に2個の画素を含む場合、画像データ410は、16M×2N画素の大きさの単色画像データを表すこととなる。
ここで、上述のように、カラー画像処理のハードウェア・リソースを用いて単色画像データの画像処理の高速化技術はいくつか存在する。ここで、点順次形式の画像処理装置を用いる場合、上述の画像処理コマンドの複数の色(R、G、B、または、C、M、Y、K)を示す各フィールドに単色画素データを格納することにより、1つの画像処理コマンドに複数の単色画素データを含めることができる。しかしながら、画像処理でフィルタ処理を適用する場合、これらの画像処理は、処理対象となる着目画素の周辺画素を含む画素領域のすべての画素値(処理画素)を用いて画像処理を行うこととなる。この場合、複数の色成分ごとにフィルタ回路が用意されている場合であっても、1つの着目画素に関する処理に対応するフィルタ回路には処理画素の全てが入力されうるが、他の画素に関する処理に対応するフィルタ回路には処理画素の一部が入力されない。したがって、複数のフィルタ回路のうち1つしか使用することができないこととなるという問題があった。
これに対して、画像処理コマンドの複数の色を示す各フィールドに対して、単色画素データを点順次形式で格納するのではなく、処理対象の画像データを分割して、分割後の各領域から1画素ずつ抽出して格納する。これにより、画像処理コマンドに格納される複数の単色画像の画素が、互いに隣接画素(周辺画素)の関係になくなり、複数のフィルタ回路を有効活用できるようになる。以下、いくつかの具体的な実施形態について説明する。
<<実施形態1>>
以下では、RGB画像データに対する画像処理コマンドのように、色数が3つ(すなわち、画素データを格納するフィールドが3つ)のコマンドを一例に説明する。本実施形態では、図10に示すように、紙面の1つのバンド領域301から、点順次形式のカラー画像の読み出しと同様、単色画像データの小領域を1回のDMA転送を用いて中間バッファに一時記憶する。
その後、DMA転送された小領域は、さらに分割される。このとき、複数のフィルタ回路の各々においてフィルタ処理の処理画素全てが入力されるように、フィルタ処理に必要な画素領域を考慮して、重複領域を設定し、重複領域を考慮して3つの部分画像に分割する。ここで、本実施形態では、フィルタ処理は3画素×3画素の画素領域を用いるものとする。この場合、分割された領域の高さ方向における最上段の1ラインと、最下段の1ラインとの処理においても、その前のラインまたは次のラインの画素値が使用される。したがって、図10に示すように、重複領域はバンドの高さ方向に2ラインとなる。
なお、ここでは、DMA転送された小領域を3つの部分画像に分割すると説明したが、3つより多くの部分画像に分割して、その中から3つの部分画像を抽出するようにしてもよい。なお、分割により得られる部分画像の数は2つであってもよい。すなわち、フィルタ回路を有効活用できるだけの部分画像を作ることができればよく、例えば、3つに分割することにより、フィルタ回路に対して、フィルタ処理の処理画素の全てを入力することができなくなる場合は、分割数を減らしてもよい。さらに、フィルタ回路に対して、フィルタ処理の処理画素の全てを入力することができるならば、3つより多くの部分画像に分割してもよい。なお、フィルタ回路の数など、画像処理装置における並列処理可能な色及び画素の数などの並列処理能力に応じて、分割数と抽出される部分画像の数とが決定されうる。
その後、分割された部分画像の各々から単色画素が1つずつ取得され、画像処理コマンド155のフィールドI<0>〜I<2>にパッキングされる。具体的には、まず、図10の例では、ライン(A−0)とライン(A−8)とライン(A−16)からモノクロの1画素が抽出されて、画像処理コマンド155のフィールドI<0>〜I<2>に格納される。なお、各ラインにおける抽出する画素の位置を揃えておくことにより、部分画像から画像処理コマンドを生成するときの制御を容易にすることができる。すなわち、例えば、上記の3ラインに対して、初期的に、図7の414の画素番号“0”で示される画素に対応する画素が抽出されるようにする。また各部分画像のライン数が同じになるように中間バッファに一時記憶するバンドの高さを設定しておくと、画像処理コマンドを生成するときの制御を容易にすることができる。
なお、CMYK画像に対しては、4つの部分画像を抽出して、それぞれの部分画像から画素値を抽出することにより4つの単色画素値を取得し、4色成分のコマンド520や522に変換することができる。なお、この場合も、小領域を4つより多くの部分画像に分割して、そのうち4つの部分画像を抽出するようにしてもよいし、部分画像の数を3つ以下としてもよい。
その後、複数の単色画素値を含む画像処理コマンドを、画像処理回路(1)〜(P)に入力して、図13のように並列的に画像処理が実行されることにより、処理後の画像処理コマンド156が得られる。このとき単色画素(I<0>、I<1>、I<2>)は隣接画素ではないため、各々のフィルタ回路は、フィルタ処理の処理画素の画素値の全てをフィルタ回路内の遅延メモリ(不図示)に蓄えることができ、フィルタ処理を実行できる。処理後の画像処理コマンドでは、フィルタ処理により周辺画素が削除されるため、ライン(A−0)とライン(A−25)に対応する単色画素は出力されない。なお、ライン(A−0)とライン(A−25)については、その前のラインまたはその後のラインの画素値としてダミーの画素値を用いてフィルタ処理を実行して、そのフィルタ処理の結果が出力されるようにしてもよい。このようにして、画像処理装置は、処理後の画像処理コマンド156から、複数の処理後の単色画素(I<0>、I<1>、I<2>)を得ることができる。
ライン(A−0)とライン(A−8)とライン(A−16)の処理が終了した後は、それぞれの部分画像から次の1ラインをそれぞれ抜き出して、上述の処理が繰り返される。これにより、各部分画像に対する処理が並行して実行される。そして、各部分画像に対する処理が終了した時点で、それぞれの部分画像に対応する部分画像が得られる。なお、処理後の画像処理コマンドから処理後の単色画素が中間バッファに一時記憶される過程で、この複数の部分画像は、1つの単色画像データに集約される。最後に、処理後のバンド領域に対応したRAM106の格納領域の各々に、処理後の単色画素値がDMA転送されることにより、処理後の単色画像データが書き出される。
(画像処理の流れ)
一連の画像処理の流れについて、図14を用いてまとめる。まず、画像処理装置は、対応できる色成分の数(色数)又は使用するコマンドに対応する色数を設定する。例えば、図9の(a)のコマンド540を使用する場合は、色数は“3”となり、コマンド590を使用する場合は、色数は“4”に設定される(S800)。また、例えば、RGBとCMYKの両方に対応できる場合、4色のカラー処理に対応できるため、色数は“4”に設定されてもよい。
次に、中間バッファに一時記憶された単色画像データを設定した色数に応じて分割して、部分画像を抽出する(S802)。例えば、画像処理装置は、設定された色数が“3”の場合は単色画像データから3つの部分画像を抽出し、設定された色数が“4”の場合は単色画像データから4つの部分画像を抽出する。
そして、部分領域の各々から単色の画素値を1画素ずつ取得する(S804)。そして画像処理装置は、図9の(a)のような画像処理コマンドにおけるカラー画像の各色成分のデータが格納されるフィールドに、単色画素値のデータを格納する(S806)。これにより、画像処理装置は、設定した色数が“3”の場合は、図9の(b)のコマンド510のような画像処理コマンドを生成し、設定した色数が“4”の場合は、図9の(b)のコマンド520のような画像処理コマンドを生成する。
画像処理装置は、上述のように、画像処理実行部153を用いてこれらのコマンドを介して画像処理を実行する(S808)。そして、画像処理実行部153から出力される処理後の画像処理コマンドに含まれる複数の単色画素値を取り出す(S810)。そして画像処理装置は、取り出した単色画素を、中間バッファの各部分画像の格納領域に書き込んで、一時的に記憶する(S812)。最後に、画像処理装置は、中間バッファに一時的に記憶された部分画像をRAM106へ書き込むことで1枚の単色画像データに集約する(S814)。
(部分画像の抽出処理の流れ)
続いて、図15のフローチャートを用いて、本実施形態の部分画像の抽出処理の流れについて説明する。本処理では、まず、画像処理ステップと同様に、画像処理装置は、対応できる色成分の数(色数)又は使用するコマンドに対応する色数を設定する(S820)。このとき、設定した色数をCとする。
次に、画像処理装置は、画像処理実行部153で実行される全フィルタ処理の重複領域の画素数の合計(累計)Fを設定する(S822)。例えば、フィルタ処理のタップ数が“5x3”の場合、Fは2画素となる。また、例えば、タップ数“5x3”のフィルタが4回実行される場合は、Fは8(=2x4)画素となる。またタップ数“5x7”のフィルタがさらに1回実行されるなら、重複領域は6画素追加されて、Fは14画素となる。本実施形態ではバンドの高さ方向に重複領域が加算される。フィルタ処理の重複領域は中心1画素を除いた処理画素のことを意味するのでバンドの高さ方向のタップ数から1画素を減算した画素数が重複領域の画素数となる。そして実行されるフィルタ処理に応じて各々の重複領域の画素数を累計することにより、Fを算出することができる。
次に、フィルタ処理後の重複領域の画素が削除されて出力される部分画像の出力量LOが設定される(S824)。本実施形態では、バンドの高さ方向に分割して部分画像を抽出するため、出力量LOは部分画像の高さ方向の画素数となる。そして、これら設定に基づいて、処理後の部分画像を集約したときの画像データの出力量DMAOを算出する(S826)。出力量DMAOは、出力量LOと色数Cを乗算した値となる。本実施形態では、算出した出力量DMAOは上述の出力バンドの高さBdh_outと同一となる。上述の中間バッファの出力画像領域の大きさは出力量DMAOに転送単位である32Byteを乗算した容量となる。
最後に、上述の設定値と算出値とを用いて、画像処理の入力量DMAIを算出する(S828)。重複領域は、2つの部分画像の間に存在するのみであるため、色数から1を減算した数(C−1)と重複領域の合計Fを乗算した値を出力量DMAOに加算した値が、入力量DMAIとして算出される。本実施形態では、出力量DMAOと同様に、算出した入力量DMAIは上述の入力バンドの高さBdh_inと同一となる。上述の中間バッファの入力画像領域の大きさは入力量DMAIに転送単位である32Byteを乗算した容量となる。
このようにして、色数に応じて抽出される部分画像の大きさや中間バッファの容量を算出することができる。
以上のように、本実施形態によれば、単色画像データを中間バッファに読み込み、中間バッファに蓄積された単色画像データから、カラー画像に対する点順次形式の画像処理コマンドの色成分の数に応じた数の部分画像を抽出する。そして、各々の部分画像から単色画素を取得し、カラー画像に対する1つの画像処理コマンドの各色成分のデータが格納されるフィールドに、その複数の単色画素のデータを格納する。そして、この画像処理コマンドに対して画像処理を施すことにより、1回の処理で、画像処理装置が対応可能な色数に応じた単色画素を、並列(同時)処理することができ、処理を高速化することができる。なお、この高速化は、画像処理装置に含まれる画像入出力部の改良で実現できる。このため、画像処理装置の大半を占める画像処理実行部のカラー画像処理回路(ハードウェア・リソース)をそのまま利用することが可能となる。すなわち、単色画像データの処理のために画像処理実行部の回路規模を大きく増加させる必要はない。また、フィルタ処理のような、複数の処理画素を必要とする局所(近傍)画像処理においても、単色画像データの処理の高速化が可能となる。
<<実施形態2>>
実施形態1では、単色画像データをバンド領域の一部である小領域ごとに中間バッファに読み込み、中間バッファに一時的に記憶された単色画像データを、画像処理コマンドで処理可能な色数に応じて分割して、画像処理コマンドに変換した。本実施形態では、図11に示すように、紙面の1バンド領域(660)を、重複する小バンド領域(661、662、663)に分割して取り扱う。以下では、画像処理コマンド155及び156のように3色対応のコマンドを例に説明する。
本実施形態では、紙面の1バンド領域(660)を、コマンドの色数に合わせて小バンド領域661〜663の3つに分割して考える。そして、分割した小バンド領域の小領域(処理単位)ごとに、RAM106から、3回に分けて単色画像を読み出す。そのため、上述の説明と異なり、1つの小領域に対して、異なる「先頭アドレス」でDMA転送を3回実行することになる。
そして、読み出された3つの小領域の単色画像データは、すべて、一旦、中間バッファ232へ格納される。そして、3つの小領域の所定の画素番号(座標)から3つの単色画素(I<0>、I<1>、I<2>)が読み出され、カラー画像に対する点順次形式の画像処理コマンドの画素データ(R、G、B)に対応するフィールドにそれぞれ格納される。そして、この画像処理コマンドに含まれる各画素値をそれぞれ用いた画像処理が画像処理実行部153において実行され、処理後の画像処理コマンドから、処理後の複数の単色画素が得られる。最後に、処理後の小バンド領域(671、672、673)に対応した、RAM106の格納領域の各々に、処理後の単色画素が3回に分けてDMA転送され、処理後の単色画像データが書き出されて、3つの部分画像が1つの単色画像データに集約される。
図12に示すように、本実施形態では、RAM106上の単色画像データが部分画像に分けられて、複数回のDMA転送により中間バッファに読み込まれるため、中間バッファには、重複したラインの単色画像データが重複して読み出される。中間バッファの容量は増加することになるが、DMAC194及び196の設定を変更するだけで対応できるため、従来の画像入出力部152からの変更を最小限に留めることができる。
以上のように、本実施形態では、単色画像データを、画像処理装置が対応可能な色数に応じて、重複領域を含む複数バンド領域に分割する。そして複数のバンド領域が複数回のDMA転送で読み書きされる。このとき、画像処理装置として、点順次形式の画像データに対応した従来の画像処理装置そのものを用いることができる。本実施形態では、単色画像データを処理するときに、画像処理装置を制御するドライバ/ファームウェアのようなソフトウェアを変更することにより実現することができる。そしてソフトウェアにおいて、上記のバンド領域の分割のし方が決定(バンドの高さの値を算出)され、DMA転送の制御(転送回数、転送開始アドレス、転送量)が変更される。
(画像処理の流れ)
本実施形態の画像処理の流れについては、上述の図14の処理の流れと同様である。このため、説明を省略する。
(部分画像の抽出処理の流れ)
本実施形態の部分画像の抽出処理の流れについて図16のフローチャートを用いて説明する。画像処理装置は、色数Cと、画像処理実行部153で実行される全フィルタ処理の重複領域の合計(累計)Fとを、実施形態1と同様の手法で設定する(S840、S842)。次に、フィルタ処理後の重複領域の画素が削除されて出力される部分画像である出力のバンドの高さBdh_outと入力のバンドの高さBdh_inとを設定する(S844、S846)。入力のバンドの高さBdh_inは、出力のバンドの高さBdh_outと重複領域の合計(累計)Fとを加算した値となる。
そして、これらの設定と算出値とに基づいて、出力する部分画像を集約したときの出力量DMAOを算出する(S848)。出力量DMAOは出力バンドの高さBdh_outと色数Cとを乗算した値となる。本実施形態では、算出した出力量DMAOは出力バンドの高さBdh_outと異なる。上述の中間バッファの出力画像領域の大きさは出力量DMAOに転送単位である32Byteを乗算した容量となる。最後に上記の設定値と算出値を用いて画像処理の入力量DMAIを算出する(S850)。本実施形態では、重複領域は色数に応じて、その都度、RAM106から読み出されるので、入力量DMAIは、色数と入力バンドの高さBdh_inとを乗算した値となる。本実施形態では、算出した入力量DMAIは、上述の入力バンドの高さBdh_inと異なる。上述の中間バッファの入力画像領域の大きさは入力量DMAIに転送単位である32Byteを乗算した容量となる。
このようにして、本実施形態における、色数に応じて分割、抽出される部分画像の大きさや中間バッファの容量を算出することができる。
以上のように、本実施形態によれば、画像処理装置として、点順次形式の画像データに対応した従来の画像処理装置そのものを用いることができる。そのため、単色画像データの処理のために画像処理装置を改良する必要はなく、回路規模も大きくならない。このように、本実施形態によれば、単色画像データを処理するときの画像処理装置を制御するドライバ/ファームウェアを変更するだけで、単色画像データの処理を高速化することができる。
<<実施形態3>>
本実施形態では、入力した画像を拡大、または縮小して所望の大きさの画像に変換する解像度変換が行われる場合の処理について説明する。一般的に、カラー画像の処理に対応可能な画像処理装置では、色成分ごとの解像度変換用のフィルタ回路を備える。解像度変換では、拡大/縮小の度合いによって、処理後の画像にモアレ等の画質劣化が生じる場合がある。そこで、これらの画質劣化を軽減するために、画像処理装置は解像度変換のフィルタの初期位相を変更する場合がある。一般的にカラー画像の処理に対応可能な画像処理装置では、複数の色成分を含む1画素単位で解像度変換を行うため、この初期位相を変更するレジスタは、色成分全てに共通である。
しかしながら、本実施形態では、単色画像データから複数の部分画像を抽出して、その部分画像から画素を取得して点順次形式の画像処理コマンドを生成する。このため、本実施形態においては、初期位相の設定レジスタを、図17のように色成分ごとに備えるようにする。そして、ページ先頭の初期位相の設定から、各部分画像の初期位相を算出して、画像処理の実行前に色成分ごとの初期位相の設定レジスタに予め設定しておく。
拡大/縮小の度合いやページ先頭の初期位相の設定によっては、部分画像の大きさ(バンドの高さ等)は、上述の実施形態のように同一の値に揃えられない場合が存在する。このような場合は、部分画像のうち、最も小さい部分画像に合わせて、残りの部分画像の大きさを減算して大きさを揃えることができる。そのとき各部分画像の初期位相は、減算する前と変わるので再計算することになる。また逆に、最も大きな部分画像に合わせて、小さな部分画像の処理の領域を拡張する方法で、部分画像を揃えることも可能である。このとき拡張した処理の領域に含まれる画素は、複数回、画像処理されることになるが、画像処理結果は同じになるため、RAM106にそのまま書き出しても何ら問題はない。また拡張した処理の領域に含まれる画素は、中間バッファからRAM106に書き出すときのDMA設定において書き出さないように設定されてもよい。
以上のように本実施形態を用いれば、画像処理装置の解像度変換(拡大/縮小)回路を一部修正することにより、分割画像の初期位相が変わるようなフィルタ処理においても、単色画像データの処理を高速化することができる。
なお、上述の実施形態では、カラー画像に対する画像処理コマンドが、1画素単位で各色のデータを格納するコマンド形式である場合について説明した。しかしながら、例えば、点順次形式のRGB画像データを2画素単位で格納するコマンド形式が用いられる場合など、他の点順次形式のコマンドが用いられる場合にも上述の各実施形態を適用することができる。例えば、点順次形式のRGB画像データを2画素単位で格納するコマンド形式が用いられる場合、単色画像データから抽出した6つの部分画像の各々から単色画素を取得して、6つの単色画素値を含むコマンドを生成することで、上述の各方式を適用可能である。
また、上述の実施形態では、画像データの読み書きの単位を32Byteとして説明した。しかしながら、画像処理装置上でのRAM106の構成のし方や、RAM106を実現する記憶装置(DRAM等)の種類、そして実行する画像処理の種類等により、画像データの読み書きの単位は必ずしも32Byteでなくてもよい。なお、読み書きの単位が変わった場合、画像データを記憶する中間バッファの容量が変わるだけで、単色画像を含む画像処理コマンドの生成手法は変化しない。
また、画像データの32Byte単位のデータ構造が、図6の494のように4×2画素を示すような場合においても、上述の各実施形態を容易に適用することができる。上述の実施形態では、入力バンドの高さBdh_inや出力バンドの高さBdh_outで中間バッファの容量を割り当てた。一方で、4×2画素のデータ構造を用いる場合には、入力バンドの高さBdh_inや出力バンドの高さBdh_outを2で除算した値を基準に中間バッファの容量を割り当ててもよい。
また、上述の実施形態では、主にバンド処理について説明した。しかしながら、別の領域分割手法であるブロック(タイル)処理についても、上述の各実施形態の手法を適用することができる。ブロック(タイル)処理では、主走査方向と副走査方向に沿って画像データを2次元で領域分割する。例えば、上述の実施形態で説明した小領域(処理単位)が、この2次元で領域分割された画素領域と対応する。小領域(1)から小領域(M)まで順次読み出す手法はブロック(タイル)処理そのものである。ブロック(タイル)処理とバンド処理の主な違いは、画像データから画素を生成するときの画素の走査方向の違いにすぎない。ブロック(タイル)処理では、画像処理実行部に入力する画素の走査を主走査方向に沿って行う。一方、本発明のバンド処理では、画像処理実行部に入力する画素の走査をバンドの高さ(副走査方向)に沿って行う。しかしながら、いずれの場合も、複数の単色画像を含むように画像処理コマンドが生成される点は変わらない。
また、RAM106の記憶容量に余裕があり、局所(近傍)画像処理での遅延メモリを省容量化する必要がない場合は、バンド処理を行わず、1ページ分の画像データ300をRAM106に格納するようにして、1ページの単位で画像処理が行われてもよい。そのときバンドの高さではなく副走査方向の画像データの大きさで中間バッファの入力領域と出力領域の容量を割り当てることができる。
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (23)

  1. 複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置であって、
    単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出手段と、
    前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成手段と、
    生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力手段と、
    を有することを特徴とする制御装置。
  2. 前記処理装置から、前記複数の部分画像のそれぞれに対応する、前記画像処理の後の単色画素値を含むデータを受け付けて当該画像処理の後の単色画素値を集約し、前記画像処理を施された後の単色画像データを生成する集約手段をさらに有する、
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記画像処理の前の単色画素値と、前記画像処理の後の単色画素値との少なくともいずれかを一時的に記憶する記憶手段をさらに有する、
    ことを特徴とする請求項1または2に記載の制御装置。
  4. 前記画像処理の後の単色画素値を一時的に記憶する記憶手段をさらに有し、
    前記集約手段は、前記複数の部分画像のそれぞれに対応する前記画像処理の後の単色画素値を、前記記憶手段に一時的に記憶して集約し、前記画像処理を施した後の1つの単色画像データを生成し、
    生成された前記1つの単色画像データがRAMに書き込まれる、
    ことを特徴とする請求項2に記載の制御装置。
  5. 前記記憶手段は、1つの前記単色画像データについての前記画像処理の前の単色画素値をRAMから読み出して記憶し、
    前記抽出手段は、前記記憶手段に記憶された1つの前記単色画像データから、前記複数の部分画像を抽出する、
    ことを特徴とする請求項3に記載の制御装置。
  6. 前記抽出手段は、画像の領域における少なくとも1つの辺の長さが等しい前記複数の部分画像を抽出し、
    前記記憶手段は、当該複数の部分画像を含む1つの前記単色画像データをRAMから読み出して記憶する、
    ことを特徴とする請求項5に記載の制御装置。
  7. 前記記憶手段は、前記複数の部分画像のそれぞれについての前記画像処理の後の単色画素値を記憶し、
    当該複数の部分画像のそれぞれについての前記画像処理の後の単色画素値が、それぞれRAMに書き込まれ、当該RAMにおいて当該複数の部分画像についての前記画像処理の後の単色画素値が集約されて、前記画像処理を施された後の1つの前記単色画像データが生成される、
    ことを特徴とする請求項3に記載の制御装置。
  8. 前記抽出手段は、RAMに格納された1つの前記単色画像データから前記複数の部分画像をそれぞれ読み出して抽出し、
    読み出された前記複数の部分画像は、前記記憶手段に記憶される、
    ことを特徴とする請求項3に記載の制御装置。
  9. 前記抽出手段は、前記単色画像データを分割することにより、前記複数の部分画像を抽出する、
    ことを特徴とする請求項1から8のいずれか1項に記載の制御装置。
  10. 前記抽出手段は、前記単色画像データを前記色成分の数より多くの画像に分割して、分割により得られた画像から、前記複数の部分画像を選択して抽出する、
    ことを特徴とする請求項1から8のいずれか1項に記載の制御装置。
  11. 前記抽出手段は、前記単色画像データを、バンド領域を単位として分割して、前記複数の部分画像を抽出する、
    ことを特徴とする請求項9または10に記載の制御装置。
  12. 前記複数の部分画像は、互いに重なる領域を有する、
    ことを特徴とする請求項1から11のいずれか1項に記載の制御装置。
  13. 前記重なる領域は、前記画像処理で処理の対象となる画素の領域に応じて定められる、
    ことを特徴とする請求項12に記載の制御装置。
  14. 前記生成手段は、前記複数の部分画像のそれぞれから、当該部分画像のうちの対応する位置の前記単色画素値を取得して、前記画像処理コマンドを生成する、
    ことを特徴とする請求項1から13のいずれか1項に記載の制御装置。
  15. 前記画像処理は、フィルタ処理を含む、
    ことを特徴とする請求項1から14のいずれか1項に記載の制御装置。
  16. 前記画像処理は、解像度変換を含む、
    ことを特徴とする請求項1から15のいずれか1項に記載の制御装置。
  17. 前記複数の部分画像は、前記解像度変換の初期位相に応じて定まる互いに重なる領域を有する、
    ことを特徴とする請求項16に記載の制御装置。
  18. 前記解像度変換における初期位相を前記複数の部分画像のそれぞれに対して設定する設定手段をさらに有する、
    ことを特徴とする請求項16に記載の制御装置。
  19. 前記複数の色成分はRGBであり、前記色成分の数は3である、
    ことを特徴とする請求項1から18のいずれか1項に記載の制御装置。
  20. 前記複数の色成分はCMYKであり、前記色成分の数は4である、
    ことを特徴とする請求項1から18のいずれか1項に記載の制御装置。
  21. 請求項1から20のいずれか1項に記載の制御装置と、前記処理装置とを含むことを特徴とする画像処理装置。
  22. 複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置の制御方法であって、
    抽出手段が、単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出工程と、
    生成手段が、前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成工程と、
    入力手段が、生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力工程と、
    を有することを特徴とする制御方法。
  23. 複数の色成分を点順次形式でそれぞれ格納することができる複数のフィールドを含む画像処理コマンドを受け付けて、当該画像処理コマンドに含まれる画素値を用いて画像処理を実行する処理装置に、単色画像データの画像処理を実行させるための制御を行う制御装置に備えられたコンピュータに、
    単色画像データから、前記色成分の数に応じた数の複数の部分画像を抽出する抽出工程と、
    前記複数の部分画像のそれぞれから単色画素値を取得して前記複数のフィールドのそれぞれへ格納して画像処理コマンドを生成する生成工程と、
    生成された前記画像処理コマンドを前記処理装置へ入力し、当該画像処理コマンドに含まれる画素値を用いた画像処理を実行させる入力工程と、
    を実行させるためのプログラム。
JP2013257394A 2013-12-12 2013-12-12 制御装置、画像処理装置、制御方法、およびプログラム Active JP6251029B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013257394A JP6251029B2 (ja) 2013-12-12 2013-12-12 制御装置、画像処理装置、制御方法、およびプログラム
US14/557,401 US9786250B2 (en) 2013-12-12 2014-12-01 Control apparatus, image processing apparatus, control method, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013257394A JP6251029B2 (ja) 2013-12-12 2013-12-12 制御装置、画像処理装置、制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015115837A true JP2015115837A (ja) 2015-06-22
JP6251029B2 JP6251029B2 (ja) 2017-12-20

Family

ID=53369096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013257394A Active JP6251029B2 (ja) 2013-12-12 2013-12-12 制御装置、画像処理装置、制御方法、およびプログラム

Country Status (2)

Country Link
US (1) US9786250B2 (ja)
JP (1) JP6251029B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033896B2 (en) 2015-12-09 2018-07-24 Konica Minolta, Inc. Information processing device with substitute requesting part for sleep mode, information processing system, server and non-transitory recording medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6233279B2 (ja) * 2014-11-07 2017-11-22 コニカミノルタ株式会社 画像形成装置、画像形成装置の制御プログラム、およびコントローラー
EP3128480B1 (en) * 2015-08-06 2018-06-27 Canon Kabushiki Kaisha Image processing apparatus and control method therefor
JP6706985B2 (ja) 2015-08-06 2020-06-10 キヤノン株式会社 画像処理装置およびその制御方法
KR20210059457A (ko) * 2019-11-15 2021-05-25 엘지전자 주식회사 이동 단말기

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000270231A (ja) * 1999-03-16 2000-09-29 Fuji Xerox Co Ltd 画像処理装置
JP2005269502A (ja) * 2004-03-22 2005-09-29 Canon Inc 画像処理装置および画像処理方法
JP2005346639A (ja) * 2004-06-07 2005-12-15 Nec Display Solutions Ltd 画像処理装置および画像処理方法
JP2009141430A (ja) * 2007-12-03 2009-06-25 Murata Mach Ltd 画像処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289138B1 (en) * 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
JP3849326B2 (ja) 1998-11-12 2006-11-22 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US6970597B1 (en) * 2001-12-05 2005-11-29 Pixim, Inc. Method of defining coefficients for use in interpolating pixel values
EP2568467A1 (en) * 2002-12-20 2013-03-13 Trident Microsystems (Far East) Ltd. Apparatus for re-ordering video data for displays using two transpose steps and storage of intermediate partially re-ordered video data
US7961235B2 (en) * 2003-10-31 2011-06-14 Hewlett-Packard Development Company, L.P. Imaging apparatuses, image data processing methods, and articles of manufacture
US20060238830A1 (en) * 2005-04-21 2006-10-26 Peter Dikeman Color image capture system
JP5338630B2 (ja) * 2009-11-18 2013-11-13 セイコーエプソン株式会社 画像処理方法およびプログラム、画像処理装置
JP5620734B2 (ja) 2010-07-26 2014-11-05 キヤノン株式会社 色処理装置およびその方法
US9076233B2 (en) * 2012-02-03 2015-07-07 Seiko Epson Corporation Image processing device and electronic apparatus using the same
US9508031B2 (en) * 2012-05-22 2016-11-29 Andrew William Peter Cave Computer programs and methods for generating 1-bit image data from multiple-bit image data
JP2014200009A (ja) * 2013-03-29 2014-10-23 ソニー株式会社 画像処理装置および方法、並びにプログラム
US9438771B2 (en) * 2013-10-08 2016-09-06 Canon Kabushiki Kaisha Image processing apparatus, image pickup apparatus, image pickup system, image processing method, and non-transitory computer-readable storage medium
JP2015138417A (ja) * 2014-01-22 2015-07-30 キヤノン株式会社 画像処理装置および画像処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000270231A (ja) * 1999-03-16 2000-09-29 Fuji Xerox Co Ltd 画像処理装置
JP2005269502A (ja) * 2004-03-22 2005-09-29 Canon Inc 画像処理装置および画像処理方法
JP2005346639A (ja) * 2004-06-07 2005-12-15 Nec Display Solutions Ltd 画像処理装置および画像処理方法
JP2009141430A (ja) * 2007-12-03 2009-06-25 Murata Mach Ltd 画像処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033896B2 (en) 2015-12-09 2018-07-24 Konica Minolta, Inc. Information processing device with substitute requesting part for sleep mode, information processing system, server and non-transitory recording medium

Also Published As

Publication number Publication date
JP6251029B2 (ja) 2017-12-20
US20150170375A1 (en) 2015-06-18
US9786250B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
JP6251029B2 (ja) 制御装置、画像処理装置、制御方法、およびプログラム
JP5886583B2 (ja) データ処理装置、処理方法、制御方法、及びプログラム
JP4845801B2 (ja) 画像処理装置及びメモリのアクセス制御方法
JP4725336B2 (ja) 画像処理装置および画像処理プログラム
JP2010282429A (ja) 画像処理装置及びその制御方法
US9569703B2 (en) Data transfer apparatus and method thereof
JP4594042B2 (ja) 画像処理方法、画像処理装置、及びコンピュータプログラム
CN106296614B (zh) 图像处理装置及图像处理方法
JP6238510B2 (ja) バッファ、バッファの制御方法、同期制御装置、同期制御方法、画像処理装置および画像処理方法
JP2012195743A (ja) 画像処理装置
JP6463437B2 (ja) 画像処理装置及びその制御方法、並びに、プログラム
JP4748077B2 (ja) 画素データ転送制御装置及び画素データ転送制御方法
JP2012227598A (ja) 画像処理装置、画像形成装置、画像処理方法、画像処理プログラム及び記録媒体
JP2012155604A (ja) データ転送制御装置
JP5523226B2 (ja) 画像処理装置、画像処理プログラム、および画像処理方法
JP5885780B2 (ja) 画像処理装置及びその制御方法、並びに、プログラム
JP4855345B2 (ja) 画像処理装置及び画像形成装置
JP2010191836A (ja) 画像処理システム
JP2002218229A (ja) 画像処理装置、画像処理方法、画像処理方法をコンピュータに実行させるプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002077649A (ja) 色空間変換装置、画像出力装置および色空間変換方法
JP2007221343A (ja) 画像処理装置
JP2016076279A (ja) 画像処理装置及びその制御方法、並びに、プログラム
JP2006148808A (ja) データ転送装置、データ転送方法、データ転送プログラム
JP2006014378A (ja) 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2011066543A (ja) メモリアクセス制御装置及びメモリアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171013

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171124

R151 Written notification of patent or utility model registration

Ref document number: 6251029

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151