JP2011204025A - 画像処理アクセラレータ - Google Patents
画像処理アクセラレータ Download PDFInfo
- Publication number
- JP2011204025A JP2011204025A JP2010070839A JP2010070839A JP2011204025A JP 2011204025 A JP2011204025 A JP 2011204025A JP 2010070839 A JP2010070839 A JP 2010070839A JP 2010070839 A JP2010070839 A JP 2010070839A JP 2011204025 A JP2011204025 A JP 2011204025A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- data
- image
- processing
- memory
- 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
- Image Processing (AREA)
Abstract
【課題】 画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供する。
【解決手段】 メモリ512から読み出した画像データにダミーデータを付加して、ダミーデータを付加した画像データのデータ数が、描画プロセッサ511が画像データに回転処理を行う場合の処理単位の整数倍のデータ数となるようにし、ダミーデータを付加した画像データをメモリ512に記憶させる処理と、メモリ512に記憶された、ダミーデータを付加した画像データを処理単位ごとに読み出し、読み出した処理単位ごとの画像データを回転処理しながら第1の画像処理を行って、メモリ512に記憶させる処理とを実行する描画プロセッサ511を備えている。
【選択図】 図2
【解決手段】 メモリ512から読み出した画像データにダミーデータを付加して、ダミーデータを付加した画像データのデータ数が、描画プロセッサ511が画像データに回転処理を行う場合の処理単位の整数倍のデータ数となるようにし、ダミーデータを付加した画像データをメモリ512に記憶させる処理と、メモリ512に記憶された、ダミーデータを付加した画像データを処理単位ごとに読み出し、読み出した処理単位ごとの画像データを回転処理しながら第1の画像処理を行って、メモリ512に記憶させる処理とを実行する描画プロセッサ511を備えている。
【選択図】 図2
Description
本発明は、画像処理アクセラレータに関する。
画像処理などのデータ処理を実行する際、高速処理を実現するために、制御部(CPU)やメインメモリとは別に、画像処理を行うアクセラレータとメモリとを用意し、画像処理等のデータ処理をアクセラレータに任せる仕組みが提案されている。
特許文献1は、メモリのワードのBIT幅Mと画素のBIT幅NがM/Nの整数倍でないデータに対しても、高速な回転処理を実現する画像回転処理装置に関する技術を開示している。
本発明は、画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供することを目的とする。
かかる目的を達成するために請求項1記載の発明は、上位装置からの画像処理を指示する画像処理命令に基づいて、複数種類の画像処理を実行する複数の描画処理手段と、前記上位装置から送られた画像データを記憶する記憶手段とを有し、前記複数の描画処理手段は、前記記憶手段から読み出した画像データにダミーデータを付加し、該ダミーデータを付加した画像データのデータ数が、前記描画処理手段が画像データに回転処理を行う場合の処理単位の主走査方向又は副走査方向の整数倍のデータ数となるようにし、前記ダミーデータを付加した画像データを前記記憶手段に記憶させる第1描画処理手段と、前記記憶手段に記憶された、前記ダミーデータを付加した画像データを前記処理単位ごとに読み出し、該読み出した前記処理単位ごとの画像データを回転処理しながら第1の画像処理を行って、前記記憶手段に記憶させる第2描画処理手段とを備えている。
請求項2記載の発明は、請求項1記載の発明において、前記記憶手段に記憶した前記回転処理長さのデータ数ごとの画像データを読み出して第2の画像処理を行った後に、前記回転処理長さのデータ数ごとの画像データに付加された前記ダミーデータを取り除き、前記ダミーデータを取り除いた画像データを前記記憶手段に記憶させる第3描画処理手段を有している。
請求項3記載の発明は、請求項1又は2記載の発明において、前記複数の描画処理手段は、具備する回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、前記複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプログラマブル論理回路装置であるとよい。
請求項1記載の発明によれば、画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供することができる。
請求項2記載の発明によれば、不要なデータを取り除いて記憶手段に画像データを記憶させることができる。
請求項3記載の発明によれば、画像処理アクセラレータが処理する画像処理を変更することができる。
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
まず、図1を参照しながら本発明を画像形成装置に適用した実施例の構成について説明する。
画像形成装置1は、制御部10と、入出力インターフェース(以下、インターフェースをI/Fと略記する)20と、ネットワークI/F80と、グラフィックI/F90とを内部バス15で接続した構成を備える。入出力I/F20には、操作部30、スキャナ40、画像処理アクセラレータ50、画像形成部60、記憶装置70が接続されている。
また、画像形成装置1は、ネットワークI/F80を介してネットワーク100に接続している。ネットワーク100には、画像形成装置1に画像データを送信して、画像形成装置1に画像の形成を依頼するコンピュータ装置101が接続している。以下、画像形成装置1の各部について説明する。
画像形成装置1は、制御部10と、入出力インターフェース(以下、インターフェースをI/Fと略記する)20と、ネットワークI/F80と、グラフィックI/F90とを内部バス15で接続した構成を備える。入出力I/F20には、操作部30、スキャナ40、画像処理アクセラレータ50、画像形成部60、記憶装置70が接続されている。
また、画像形成装置1は、ネットワークI/F80を介してネットワーク100に接続している。ネットワーク100には、画像形成装置1に画像データを送信して、画像形成装置1に画像の形成を依頼するコンピュータ装置101が接続している。以下、画像形成装置1の各部について説明する。
制御部10は、ハードウェアとしてCPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13とを備える。ROM12には、CPU11が制御に使用する制御プログラムが記録されている。CPU11は、起動すると、制御プログラムをROM12から読み出してRAM13に記憶させる。その後、CPU11は、RAM13に記憶したプログラムに従って処理を実行する。RAM13は、CPU11のワークメモリとして使用され、CPU11が演算に使用するデータ等が記憶される。
操作部30は、テンキーや操作ボタンなどを備えている。入出力I/F20は、操作部30で入力を受け付けた操作情報を、制御部10に送る。制御部10は、操作部30で受け付けた操作情報に従って、画像処理アクセラレータ50に画像の処理を指示したり、画像形成部60に画像の形成を指示する。
スキャナ40は、原稿台上に置かれた原稿の画像を読み込み、読み込んだ画像データを入出力I/F20を介して記憶装置70に送り、記憶装置70に記憶させる。
画像処理アクセラレータ50は、制御部10からの指示により、入出力I/F20を介して記憶装置70から画像データを読み出し、読み出した画像データに、伸張、縮小、回転、色補正、色空間の変換などの画像処理を行う。なお、画像処理アクセラレータ50の詳細については後述する。
画像形成部60は、画像処理アクセラレータ50により画像処理された画像データを取得して、所定の用紙に画像を形成する。
画像形成部60は、画像処理アクセラレータ50により画像処理された画像データを取得して、所定の用紙に画像を形成する。
記憶装置70は、ハードディスク装置等の磁気記憶装置である。記憶装置70は、ネットワーク100に接続したコンピュータ装置101等の外部機器から送られる文書データや画像データを記憶する。
グラフィックI/F90は、制御部10で処理されたグラフィックデータを表示部91に表示させるためのインタフェースであり、表示部91に表示させるためにグラフィックデータを波形電気信号に変換する。
ネットワークI/F80は、例えば、LAN(Local Area Network)等のネットワーク100に接続したコンピュータ装置101と通信を行う通信インタフェースである。ネットワークI/F80は、ネットワーク100に接続したコンピュータ装置101や画像形成装置(不図示)等の外部機器から送られる文書データや画像データを受信して、受信した文書データや画像データを制御部10の制御により、記憶装置70に送って記憶させる。
次に、画像処理アクセラレータ50の詳細について図2を参照しながら説明する。図2には、画像処理アクセラレータ50のハードウェア構成の一例を示す。
画像処理アクセラレータ50は、複数の描画部510、520、530を備え、各描画部510、520、530は、バス55を介して入出力I/F20に接続している。描画部510は、描画プロセッサ511とメモリ512とを備えている。同様に、描画部520は、描画プロセッサ521とメモリ522とを備え、描画部530は、描画プロセッサ531とメモリ532とを備える。なお、本実施例では、描画部を3つ設けた画像処理アクセラレータ50を例に説明するが、描画部510、520、530の数は、3つに限られるわけではなく、4つ以上であってもよい。
画像処理アクセラレータ50は、複数の描画部510、520、530を備え、各描画部510、520、530は、バス55を介して入出力I/F20に接続している。描画部510は、描画プロセッサ511とメモリ512とを備えている。同様に、描画部520は、描画プロセッサ521とメモリ522とを備え、描画部530は、描画プロセッサ531とメモリ532とを備える。なお、本実施例では、描画部を3つ設けた画像処理アクセラレータ50を例に説明するが、描画部510、520、530の数は、3つに限られるわけではなく、4つ以上であってもよい。
描画プロセッサ511、521、531は、制御部10から送られた画像処理命令に基づいて、複数種類の画像処理を実行するプロセッサである。
メモリ512、522、532は、それぞれ、描画プロセッサ511、521、531に対応して設けられており、描画プロセッサ511、521、531により処理される画像データを一時的に格納する。
次に、描画プロセッサ511の構成を図3を参照して説明する。なお、描画プロセッサ521、531も同様な構成を備えているので、描画プロセッサ511の説明を他の描画プロセッサ521、531の説明に代える。
描画プロセッサ511には、動的にチップ内部の回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプロセッサ(ダイナミック・リコンフィギュアラブル・プロセッサ)を用いている。
描画プロセッサ511は、図3に示すように、システム制御部5111と、演算器群5112と、結線情報格納部5113と、高速バススイッチ5114と、メモリI/F5115と、バスI/F5116と、ダイレクト入出力I/F5117とを備えている。
演算器群5112は、加算器、乗算器等の各種演算器と、演算器が演算に使用する画像データ等を一時的に記憶するバッファとを備える。結線情報格納部5113は、演算器群5112の各種演算器を組み合わせて画像処理機能を実現するための結線情報を格納する。
システム制御部5111は、制御部10から送られた処理命令を受け付けると、結線情報格納部5113に格納されている結線情報に基づいて演算器群5112の各種演算器の接続を変更し、処理命令で要求された画像処理を実現する処理回路を実現する。
メモリI/F5115は、メモリ512との間でデータの送受信を行うためのインターフェースである。バスI/F5116は、入出力I/F20に接続し、入出力I/F20に接続した他の装置(例えば、制御部10)との間でデータや処理命令の送受信を行うインターフェースである。ダイレクト入出力I/F5117は、他の描画プロセッサ521に対してパイプラン処理により直接画像データを転送するためのインターフェースである。
高速バススイッチ5114は、システム制御部5111、演算器群5112、メモリI/F5115、バスI/F5116間のデータ転送の経路を高速に切り替えるためのバススイッチである。
描画プロセッサ511〜513は、上述の構成を備えることで、制御部10から指定された画像処理機能を短時間で実現することができる。
次に、図4を参照して、制御部10と、画像処理アクセラレータ50とにおいて行われるRIP(Raster Image processing)処理の流れについて説明する。なお、RIP処理とは、画像データを画像形成部60が処理可能なラスタデータに変換してページイメージを作成する処理である。
まず、制御部10は、コンピュータ装置101から受信した処理データを、画像処理アクセラレータ50に処理させる画像データと、制御部10のソフトウェアでRIP処理するテキストデータとに分割する。そして、制御部10は、画像処理命令と共に画像データを画像処理アクセラレータ50に送信する。
画像処理アクセラレータ50は、受信した画像処理命令に基づいて、制御部10か送られた画像データに対して、JPEG(Joint Photographic Experts Group)伸張処理、拡大・縮小処理、色空間変換処理等の各種画像処理を行う。その後、画像処理アクセラレータ50は、画像データにRIP処理を行ってY(イエロー)M(マゼンタ)C(シアン)K(ブラック)形式の画像データを生成する。画像処理部10は、生成したYMCK形式の画像データを制御部10に送る。なお、制御部10により分離されたテキストデータについては、制御部10内でソフトウェアによりRIP処理が行われる。
制御部10は、画像処理アクセラレータ50からYMCK形式の画像データを受け取って、YMCK形式の画像データと、ソフトウェアによりRIP処理を行ったテキストデータとを合成して、YMCK各色ごとに2値画像を生成する。そして、制御部10は、2値画像となった画像データを再度、画像処理アクセラレータ50に送信して、回転処理、圧縮処理を実行させる。画像処理アクセラレータ50は、回転処理、圧縮処理した画像データを画像形成部60に送る。画像形成部60は、画像処理アクセラレータ50で画像処理された圧縮画像データを受信して伸張し、所定の用紙に画像を形成する。
次に、図5を参照しながら画像処理アクセラレータ50の処理手順を説明する。図5には、制御部10と、画像処理アクセラレータ50との処理手順を示すシーケンス図を示す。
まず、制御部10は、制御部10のRAM13に格納した、圧縮された画像データを、画像処理を行わせる描画部510(520、530)に送る。なお、以下では、描画部510が画像処理を担当するものとして説明を行う。描画部510の描画プロセッサ511は、制御部10から送られた圧縮画像データをメモリ512に格納する。描画プロセッサ511は、メモリ512に格納した圧縮画像データを読み出して、演算器群5112に含まれるバッファ(図7に示す入力バッファ600や出力バッファ700)に格納する。そして、描画プロセッサ511は、演算器群5112に含まれる演算器で圧縮画像データをJPEG(Joint Photographic Experts Group)伸張し、伸張したR(レッド),G(グリーン),B(ブルー)の画像データにダミーデータを付加する。描画プロセッサ511は、ダミーデータを付加した画像データをメモリ512に送って格納する。ここまでの処理が、描画プロセッサ511が、メモリ512から読み出した画像データに対して行う一連の処理の1つ目の処理である。
図6(A)に示すメモリ512に格納された画像データは、圧縮された圧縮画像データである。描画プロセッサ511は、メモリ512に格納された圧縮画像データを読み出して入力バッファ600(図7参照)に格納する。描画プロセッサ511は、入力バッファ600から圧縮画像データを読み出して、読み出した圧縮画像データをR1,G1,B1(図6(B)参照)に伸張処理しながら伸張した画像データにダミーデータD1(図6(C)参照)を付加する。そして描画プロセッサ511は、ダミーデータを付加した画像データを出力バッファ700(図7参照)に格納する(図6(D)参照)。描画プロセッサ511は、出力バッファ700に格納した、ダミーデータを付加された画像データを、メモリ512に格納して一連の処理の1つ目の処理を終了させる。なお、画像データに付加されるダミーデータは、1画素分の画像データ(RGBの画像データ)に1つずつ付加される。1画素分のRGBの画像データにダミーデータを付加することで、1画素分のRGBの画像データとダミーデータとを合わせたデータ数が4byteとなる。データ数を4byteに調整することで、描画プロセッサ511が、RGBの画像データとダミーデータとを1セットとして、入力バッファ600から画像データを読み出すことができる。例えば、ダミーデータが付加されていない画像データ「R1,B1,G1,R2,B2,G2,・・・」を描画プロセッサ511が入力バッファ600から読み出す場合、読み出される画像データが「R1,B1,G1,R2,」となってしまうこともある。この場合、すでに読み出されている「R2」の画像データと、新たに読み出した「B2,G2」の画像データとを組み合わせる処理を行わなければならない。このような手間を省くため、RGBの画像データにダミーデータを付加する。すなわち、RGBの画像データにダミーデータDを付加しておくことで、描画プロセッサ511が入力バッファ600から読み出す画像データの単位が「R1,B1,G1,D1,」となり、RGBの画像データがばらばらに入力バッファ600から読み出されることがない。
まず、制御部10は、制御部10のRAM13に格納した、圧縮された画像データを、画像処理を行わせる描画部510(520、530)に送る。なお、以下では、描画部510が画像処理を担当するものとして説明を行う。描画部510の描画プロセッサ511は、制御部10から送られた圧縮画像データをメモリ512に格納する。描画プロセッサ511は、メモリ512に格納した圧縮画像データを読み出して、演算器群5112に含まれるバッファ(図7に示す入力バッファ600や出力バッファ700)に格納する。そして、描画プロセッサ511は、演算器群5112に含まれる演算器で圧縮画像データをJPEG(Joint Photographic Experts Group)伸張し、伸張したR(レッド),G(グリーン),B(ブルー)の画像データにダミーデータを付加する。描画プロセッサ511は、ダミーデータを付加した画像データをメモリ512に送って格納する。ここまでの処理が、描画プロセッサ511が、メモリ512から読み出した画像データに対して行う一連の処理の1つ目の処理である。
図6(A)に示すメモリ512に格納された画像データは、圧縮された圧縮画像データである。描画プロセッサ511は、メモリ512に格納された圧縮画像データを読み出して入力バッファ600(図7参照)に格納する。描画プロセッサ511は、入力バッファ600から圧縮画像データを読み出して、読み出した圧縮画像データをR1,G1,B1(図6(B)参照)に伸張処理しながら伸張した画像データにダミーデータD1(図6(C)参照)を付加する。そして描画プロセッサ511は、ダミーデータを付加した画像データを出力バッファ700(図7参照)に格納する(図6(D)参照)。描画プロセッサ511は、出力バッファ700に格納した、ダミーデータを付加された画像データを、メモリ512に格納して一連の処理の1つ目の処理を終了させる。なお、画像データに付加されるダミーデータは、1画素分の画像データ(RGBの画像データ)に1つずつ付加される。1画素分のRGBの画像データにダミーデータを付加することで、1画素分のRGBの画像データとダミーデータとを合わせたデータ数が4byteとなる。データ数を4byteに調整することで、描画プロセッサ511が、RGBの画像データとダミーデータとを1セットとして、入力バッファ600から画像データを読み出すことができる。例えば、ダミーデータが付加されていない画像データ「R1,B1,G1,R2,B2,G2,・・・」を描画プロセッサ511が入力バッファ600から読み出す場合、読み出される画像データが「R1,B1,G1,R2,」となってしまうこともある。この場合、すでに読み出されている「R2」の画像データと、新たに読み出した「B2,G2」の画像データとを組み合わせる処理を行わなければならない。このような手間を省くため、RGBの画像データにダミーデータを付加する。すなわち、RGBの画像データにダミーデータDを付加しておくことで、描画プロセッサ511が入力バッファ600から読み出す画像データの単位が「R1,B1,G1,D1,」となり、RGBの画像データがばらばらに入力バッファ600から読み出されることがない。
次に、描画プロセッサ511は、メモリ512から画像データを再度読み出し、画像データの主走査方向の1ラインごとにダミーデータを付加して、1ラインごとに区切られたバウンダリーデータに変換する。バウンダリーデータに変換された画像データは、描画プロセッサ511によってメモリ512に再度格納される。ここまでの処理が、描画プロセッサ511が、メモリ512から読み出した画像データに対して行う一連の処理の2つ目の処理である。なお、主走査方向の1ラインとは、描画プロセッサ511が、画像データに回転処理を行う場合の処理単位の主走査方向の整数倍の長さを備えている。例えば、図10(A)に示す例では、描画プロセッサ511は、64byte(主走査方向)×16ライン(副走査方向)=16画素(主走査方向)×16ライン(副走査方向)のデータ長の画像データを処理単位ブロックとして、後述する回転処理を行う。図10(A)に示す例では、処理単位ブロックがX方向に4個あるため、64×4=256byteが主走査方向の1ラインの長さ(データ数)である。なお、以下では、画像データの主走査方向(図10(A)に示す横方向)をX方向とも呼び、副走査方向(図10(A)に示す縦方向)をY方向とも呼ぶ。
図7を参照しながら主走査方向の1ラインごとに区切られたバウンダリーデータに変換する処理について詳細に説明する。図7(A)には、描画プロセッサ511によってメモリ512から読み出され、演算器群5112の入力バッファ600に格納された画像データを示す。また、図7(B)には、描画プロセッサ511によって入力バッファ600から読み出された画像データにダミーデータが付加して、演算器群5112の出力バッファ700に格納した画像データを示す。図7(A)に示すように入力バッファ600に格納された画像データは、X方向の1ラインが240byteの画像データを複数ライン(1ページ分)つなげた画像データである。すなわち、各ライン間に区切りはなく、連続する画像データである。このような構成の画像データに、図7(B)に示すようにダミーデータを付加し、X方向の1ラインが240byteの画像データと16byteのダミーデータとを含む画像データとする。また、画像データにダミーデータを付加することで、X方向の1ラインごとに区切られた画像データとする。
なお、上述した説明では、描画プロセッサ511は、X方向(主走査方向)の1ラインごとにダミーデータを付加して、X方向1ラインごとに区切られたバウンダリーデータとすると説明した。これ以外に、描画プロセッサ511は、画像データのY方向(副走査方向)にもダミーデータを付加して、Y方向1ラインごとに区切られたバウンダリーデータとしてもよい。Y方向のライン数も、描画プロセッサ511が、画像データに回転処理を行う場合の処理単位のY方向の整数倍の長さを備えている。
次に、描画プロセッサ511は、メモリ512から画像データを再度読み出して、読み出した画像データを回転処理しながら、色空間の変換処理、色補正処理等の画像処理(本願発明の第1の画像処理に該当する)を行う。色空間の変換処理とは、例えば、RGB形式の画像データをYMCK形式の画像データに変換する処理である。処理後の画像データは、描画プロセッサ511によりメモリ512に再度書き込まれる。ここまでの処理が、描画プロセッサ511が、メモリ512から読み出した画像データに対して行う一連の処理の3つ目の処理である。なお、描画プロセッサ511が行う1つ目の一連の処理で、画像データに付加されたダミーデータは、描画プロセッサ511が画像データの色空間の変換処理を行う前に画像データから削除される。
次に、描画プロセッサ511は、メモリ512から画像データを再度読み出して、読み出した画像データに再度色補正(本発明の第2の画像処理に該当する)を行って、色補正後の画像データからダミーデータを消去する。ダミーデータを消去した画像データは、描画プロセッサ511によりメモリ512に再度書き込まれる。ここまでの処理が、描画プロセッサ511が、メモリ512から読み出した画像データに対して行う一連の処理の4つ目の処理である。そして、この画像データ(多値)に対して同様に描画プロセッサ511でスクリーン処理をすることにより、印刷に適した2値画像データを得て、メモリ512に格納する。
次に、描画プロセッサ511が行う2つ目の一連の処理のうち、画像データにダミーデータを付加するアラインメント回路200について図8、9を参照しながら説明する。このアラインメント回路200は、結線情報格納部5113に格納されている結線情報に基づいて、演算器群5112の各種演算器を組み合わせることで、演算器群5112に形成される。
アラインメント回路200は、FIFOメモリ201と、第1レジスタ202と、第2レジスタ203と、実データカウンタ204と、出力データカウンタ205と、ダミーデータカウンタ206と、OR回路207とを備える。
アラインメント回路200は、FIFOメモリ201と、第1レジスタ202と、第2レジスタ203と、実データカウンタ204と、出力データカウンタ205と、ダミーデータカウンタ206と、OR回路207とを備える。
FIFOメモリ201は、メモリ512から読み込んだ画像データを入力する。また、FIFOメモリ201は、実データカウンタ204の出力信号(Read Enable信号)を入力する。FIFOメモリ201の出力側は、第1レジスタ202と実データカウンタ204と出力データカウンタ205とに接続している。
FIFOメモリ201は、画像データを入力すると(図9(A)に示すInput Data)、画像データの入力タイミングに1クロック遅れて、Not Empty信号(図9(B)参照)を実データカウンタ204と出力データカウンタ205とに出力する。なお、クロックとは、アラインメント回路200が同期をとる為に使用しているクロック信号である。また、FIFOメモリ201は、実データカウンタ204から出力されるRead enable信号がアクティブの状態(なお、図9のタイミングチャートでは、信号レベルがハイレベルになることでアクティブ状態になるものとする)となると、メモリ512から入力した画像データ(図9(F)に示すFIFO Read Data信号参照)を第1レジスタ202に出力する。
FIFOメモリ201は、画像データを入力すると(図9(A)に示すInput Data)、画像データの入力タイミングに1クロック遅れて、Not Empty信号(図9(B)参照)を実データカウンタ204と出力データカウンタ205とに出力する。なお、クロックとは、アラインメント回路200が同期をとる為に使用しているクロック信号である。また、FIFOメモリ201は、実データカウンタ204から出力されるRead enable信号がアクティブの状態(なお、図9のタイミングチャートでは、信号レベルがハイレベルになることでアクティブ状態になるものとする)となると、メモリ512から入力した画像データ(図9(F)に示すFIFO Read Data信号参照)を第1レジスタ202に出力する。
実データカウンタ204は、入力側をFIFOメモリ201と出力データカウンタ205とに接続し、出力側がダミーデータカウンタ206とFIFOメモリ201とに接続している。実データカウンタ204は、画像データのデータ数を1ラインごとに1画素ずつカウントするカウンタである(図9(D)Actual data Counter参照)。なお、図9(A)に示す画像データ(Input Data)は、1ライン分の画像データをN個(0、1、・・・N−1)として示している。実データカウンタ204は、FIFOメモリ201からNot Empty信号を入力すると、このNot Empty信号の入力タイミングから1クロック遅れて、クロック信号のカウントを開始する。また、実データカウンタ204は、クロック信号のカウントを開始すると、FIFOメモリ201にRead Enable信号を出力する。実データカウンタ204から送られるRead Enable信号がアクティブな状態のときに、FIFOメモリ201は、第1レジスタ202へ画像データを出力する。また、Read Enable信号がアクティブな状態ではなくなると、FIFOメモリ201は、画像データの第1レジスタ202への出力を停止する。また、実データカウンタ204は、画像データの1ライン分の画像データをカウントすると、ダミーデータカウンタ206に1ライン分の画像データのカウントが終了したことを通知する通知信号を出力する。
出力データカウンタ205は、入力側をFIFOメモリ201と、出力データカウンタ205の出力側に接続している。また、出力データカウンタ205は、出力側を実データカウンタ204と出力データカウンタ205の入力側に接続している。実データカウンタ204は、アラインメント回路200が実際に出力する1ラインの画像データのデータ数をカウントするカウンタである。例えば、FIFOメモリ201に入力した画像データの、1ライン分のデータ数がN個であり、付加するダミーデータのデータ数が3個であった場合、出力データカウンタ205は、0からN+2までのN+3をカウントする(図9(C)参照)。出力データカウンタ205は、画像データの1ライン分のデータ数と、1ラインに付加するダミーデータのデータ数とをカウントすると、リセット信号(Reset)を実データカウンタ204と出力データカウンタ205とに出力する。リセット信号(Reset)を入力した実データカウンタ204と出力データカウンタ205は、カウント値をリセットする。
ダミーデータカウンタ206は、入力側を実データカウンタ204に接続している。また、ダミーデータカウンタ206は、出力側をOR回路207に接続している。ダミーデータカウンタ206は、実データカウンタ204が画像データの1ライン分のデータをカウントすると出力する通知信号を入力する。ダミーデータカウンタ206は、この通知信号を入力すると、クロック信号のカウントを開始し、画像データの1ラインに付加するダミーデータのデータ数分をカウントする。ダミーデータカウンタ206は、カウント動作を行っている間、OR回路207にValid2信号(図9(I)参照)を出力する。
第1レジスタ202は、入力側をFIFOメモリ201に接続し、出力側を第2レジスタ203とOR回路207に接続している。第1レジスタ202は、FIFOメモリ201から出力される画像データを入力して、入力した画像データを第2レジスタ203に出力する。また、第1レジスタ202は、FIFOメモリ201から画像データを入力している期間、有効な画像データを入力していることを示すValid1信号をOR回路207に出力する(図9(G)参照)。
OR回路207は、入力側をダミーデータカウンタ206と第1レジスタ202とに接続し、出力側を第2レジスタ203に接続する。
OR回路207は、第1レジスタ202からValid1信号を入力し、ダミーデータカウンタ206からValid2信号を入力する。OR回路207は、Valid1信号とValid2信号との少なくとも一方の信号状態がアクティブな状態のときにアクティブとなるValid信号を第2レジスタ203に出力する(図9(J)参照)。
OR回路207は、第1レジスタ202からValid1信号を入力し、ダミーデータカウンタ206からValid2信号を入力する。OR回路207は、Valid1信号とValid2信号との少なくとも一方の信号状態がアクティブな状態のときにアクティブとなるValid信号を第2レジスタ203に出力する(図9(J)参照)。
第2レジスタ203は、入力側を第1レジスタ202とOR回路207とに接続し、1ライン毎にダミーデータが付加された画像データを出力する。
第2レジスタ203は、第1レジスタ202から画像データを入力して、OR回路207からValid信号を入力する。第2レジスタ203は、Valid信号の信号レベルがアクティブレベルとなると、第1レジスタ202から入力した画像データを出力する。また、Valid信号がアクティブな状態であって、第1レジスタ202から新たな画像データが入力されなくなると、最後に入力した画像データ(図9(K)に示すN−1の画像データ)をコピーして出力する。第2レジスタ203から出力された画像データは、メモリ512に送られ格納される。
第2レジスタ203は、第1レジスタ202から画像データを入力して、OR回路207からValid信号を入力する。第2レジスタ203は、Valid信号の信号レベルがアクティブレベルとなると、第1レジスタ202から入力した画像データを出力する。また、Valid信号がアクティブな状態であって、第1レジスタ202から新たな画像データが入力されなくなると、最後に入力した画像データ(図9(K)に示すN−1の画像データ)をコピーして出力する。第2レジスタ203から出力された画像データは、メモリ512に送られ格納される。
次に、図10を参照しながら、メモリ512から読み出された画像データに回転処理を行いながら、色空間の変換処理を施して、処理後の画像データを再度メモリ512に格納する手順について説明する。なお、回転処理とは、画像データをメモリ512から読み出してから、再度、メモリ512に格納するまでの一連の処理を示している。
図10(A)には、メモリ512に記憶した1ページ分の画像データを示す。図10(A)に示す画像データは、ダミーデータが付加され、1ラインが256byteの画像データとしてメモリ512に記憶されている。ダミーデータを付加して64byteの整数倍の画像データとしたのは、描画プロセッサ511は、64byteのデータ長の画像データを処理単位として回転処理を行うためである。
図10(A)には、メモリ512に記憶した1ページ分の画像データを示す。図10(A)に示す画像データは、ダミーデータが付加され、1ラインが256byteの画像データとしてメモリ512に記憶されている。ダミーデータを付加して64byteの整数倍の画像データとしたのは、描画プロセッサ511は、64byteのデータ長の画像データを処理単位として回転処理を行うためである。
描画プロセッサ511は、画像データを回転処理する場合、1ページ分の画像データを、図10(A)に示す複数の矩型領域に区切り、区切られた矩型領域ごとに回転処理を行う。図10(A)には、描画プロセッサ511が回転処理を行う領域を12個の矩型領域(a,b,c,・・・k,l)(以下、ブロックと呼ぶ)を示す。本実施例では16画素(64byte)×16画素を1ブロックとしている。描画プロセッサ511は、図10(A)に示すa,b,c,・・・k,lのブロックの順に、画像データを読み出して入力バッファ600に記憶させる。描画プロセッサ511は、図10(A)に示すようにブロックaの画像データをX方向の正方向に沿って1ライン分読み出し、1ライン分の画像データを読み出すと、読み出し位置をY方向の負の方向に移動して次の1ライン分の画像データを読み込む。なお、各ブロック(a,b,c,・・・k,l)のX方向の長さが、描画プロセッサ511が回転処理の処理単位とする64byteである。
図10(B)には、メモリ512から読み出され、入力バッファ600に格納されたブロックaの画像データを示す。なお、他のブロックの画像データについても同様にメモリ512から読み出され、入力バッファ600に格納される。
図10(B)には、メモリ512から読み出され、入力バッファ600に格納されたブロックaの画像データを示す。なお、他のブロックの画像データについても同様にメモリ512から読み出され、入力バッファ600に格納される。
描画プロセッサ511は、各ブロックの画像データを入力バッファ600に格納すると、入力バッファ600に格納した画像データに色空間の変換等の処理を行い、変換後の画像データを、回転させながら出力バッファ700に格納する。図10(C)に、出力バッファ700に格納されたブロックaの画像データを示す。図10(C)に示すように、描画プロセッサ511は、X方向の正方向に沿って読み出したブロックaの画像データを出力バッファ700のY方向に沿って書き込んでいき、各ブロックの画像データを回転させる。色空間の変換と、回転処理とを行った描画プロセッサ511は、出力バッファ700に格納された画像データをメモリ512に書き込む。
図10(D)には、処理後の画像データが書き込まれるメモリ512の領域を示す。図10(D)に示すように描画プロセッサ511は、ブロックaの画像データをまずメモリ512に書き込む。画像データの書き込み方向は、図10(D)に示すようにメモリ512のX方向の正方向に沿って書き込まれる。1ライン分の画像データを書き込むと、描画プロセッサ511は、画像データの書き込み位置をY方向の正の方向に移動させ、次の1ライン分の画像データをメモリ512に書き込む。ブロックaの書き込みが終わると、描画プロセッサ511はブロックbを書き込む。ブロックbは、図10(D)に示すようにブロックaの右隣り(X方向の正方向)に書き込まれる。ブロックa〜ブロックcまでの画像データのメモリ512への書き込みが終わると、描画プロセッサ511は、ブロックdをブロックaの下(Y方向の正方向)に書き込む。以下、同様の手順で、ブロックd〜f、ブロックg〜i、ブロックj〜lの画像データがメモリ512に書き込まれる。
図10(D)には、処理後の画像データが書き込まれるメモリ512の領域を示す。図10(D)に示すように描画プロセッサ511は、ブロックaの画像データをまずメモリ512に書き込む。画像データの書き込み方向は、図10(D)に示すようにメモリ512のX方向の正方向に沿って書き込まれる。1ライン分の画像データを書き込むと、描画プロセッサ511は、画像データの書き込み位置をY方向の正の方向に移動させ、次の1ライン分の画像データをメモリ512に書き込む。ブロックaの書き込みが終わると、描画プロセッサ511はブロックbを書き込む。ブロックbは、図10(D)に示すようにブロックaの右隣り(X方向の正方向)に書き込まれる。ブロックa〜ブロックcまでの画像データのメモリ512への書き込みが終わると、描画プロセッサ511は、ブロックdをブロックaの下(Y方向の正方向)に書き込む。以下、同様の手順で、ブロックd〜f、ブロックg〜i、ブロックj〜lの画像データがメモリ512に書き込まれる。
図11には、描画プロセッサ511内部のメモリI/F回路5115からの読出コマンドで、メモリ512から読み出される画像データのデータ数と、描画プロセッサ511内部のメモリI/F回路5115からの書込コマンドでメモリ512に書き込まれる画像データのデータ数とを示す。
図11に示すように、描画プロセッサ511は、バーストアクセスによってメモリ512から画像データを読み出して入力バッファ600に書き込む。1つの読出コマンドでメモリ512から8ワードの画像データが読み出される。1ワードには、図11に示すように2画素分の画像データが含まれ、1画素の画像データは、CMYK1バイト計4バイトであるので、8×8で64byteのデータとなる。同様に、描画プロセッサ511からの書込コマンドでメモリ512に一度に書き込まれる画像データ数も64byteとなる。この64byteが図10(A)に示す1ブロックのX方向の1ライン分の画像データ(16画素)となる。
図11に示すように、描画プロセッサ511は、バーストアクセスによってメモリ512から画像データを読み出して入力バッファ600に書き込む。1つの読出コマンドでメモリ512から8ワードの画像データが読み出される。1ワードには、図11に示すように2画素分の画像データが含まれ、1画素の画像データは、CMYK1バイト計4バイトであるので、8×8で64byteのデータとなる。同様に、描画プロセッサ511からの書込コマンドでメモリ512に一度に書き込まれる画像データ数も64byteとなる。この64byteが図10(A)に示す1ブロックのX方向の1ライン分の画像データ(16画素)となる。
次に、描画プロセッサ511が行う4つ目の一連の処理のうち、画像データからダミーデータを削除するトリミング回路300について図12、13を参照しながら説明する。このトリミング回路300も、結線情報格納部5113に格納されている結線情報に基づいて、演算器群5112の各種演算器を組み合わせることで、演算器群5112に形成される。
トリミング回路300は、図12に示すように、第3レジスタ301と、第4レジスタ302と、画素カウンタ303と、第1比較器304と、第2比較器305と、AND回路306とを備える。
トリミング回路300は、図12に示すように、第3レジスタ301と、第4レジスタ302と、画素カウンタ303と、第1比較器304と、第2比較器305と、AND回路306とを備える。
演算器群5112に構成される前段の処理回路で処理された画像データは、第3レジスタ301に送られる。第3レジスタ301の出力側は、画素カウンタ303と第4レジスタ302とに接続している。
第3レジスタ301は、前段の処理回路で処理された画像データを入力して、入力した画像データを第4レジスタ302に出力する。また、第3レジスタ301は、画像データを入力するごとに、画素カウンタ303に通知信号を出力する。
第3レジスタ301は、前段の処理回路で処理された画像データを入力して、入力した画像データを第4レジスタ302に出力する。また、第3レジスタ301は、画像データを入力するごとに、画素カウンタ303に通知信号を出力する。
画素カウンタ303は、入力側で第3レジスタ301に接続し、出力側で第1比較器304と第2比較器305とに接続している。画素カウンタ303は、第3レジスタ301が画像データを入力したタイミングから1クロック遅れて第3レジスタ301に入力される画像データの画素数のカウントを開始する(図13(B)Count参照)。画素カウンタ303のカウントするカウント値は、第1比較器304と第2比較器305とに出力される。
第1比較器304の入力側は、画素カウンタ303に接続し、出力側はAND回路306に接続している。第1比較器304は、予め設定された設定値が記録されており、画素カウンタ303から出力されるカウント値がこの設定値となるとアクティブ状態となり、画素カウンタ303が1ライン分の画像データをカウントするとアクティブ状態ではなくなるValid1信号をAND回路306に出力する(図13(C)Valid1信号参照)。この予め設定された値は、画像データの先頭側に付加されたダミーデータをカウントするためのカウント値である。なお、図7、8、9に示す例では、1ライン分の画像データの後端側にダミーデータを付加した例を説明したが、画像データは回転処理等を行っているため、ダミーデータが1ラインの画像データの先頭に位置している場合もある。この様な場合に、1ラインの画像データの先頭に付加されたダミーデータを削除するための、第1比較器304を設けている。
第2比較器305の入力側は、画素カウンタ303に接続し、出力側はAND回路306に接続している。第2比較器305は、予め設定された設定値が記録されており、画素カウンタ303がカウントを開始するとアクティブ状態となり、画素カウンタ303のカウント値が設定値となると、アクティブな状態ではなくなるValid2信号をAND回路306に出力する(図13(D)Valid2信号参照)。この予め設定された設定値は、画像データの後端側に付加されたダミーデータをカウントするためのカウント値である。
AND回路306は、入力側で第1比較器304と第2比較器305とに接続しており、出力側で第4レジスタ302に接続している。
AND回路306は、第1比較器304から出力されるValid1信号と、第2比較器305から出力されるValid2信号とが共にアクティブ状態にあるときに、アクティブ状態となるValid信号を第4レジスタ302に出力する(図13(E)Valid信号参照)。なお、アラインメントとトリミングは1色の多値画像についてのみ記載したが、本実施例ではYMCK4色分の回路が並列に接続され、同時に4色のアラインメント、およびトリミング処理を実施する。
AND回路306は、第1比較器304から出力されるValid1信号と、第2比較器305から出力されるValid2信号とが共にアクティブ状態にあるときに、アクティブ状態となるValid信号を第4レジスタ302に出力する(図13(E)Valid信号参照)。なお、アラインメントとトリミングは1色の多値画像についてのみ記載したが、本実施例ではYMCK4色分の回路が並列に接続され、同時に4色のアラインメント、およびトリミング処理を実施する。
第4レジスタ302は、入力側で第3レジスタ301とAND回路306とに接続している。第4レジスタ302は、AND回路306から送られるValid信号がアクティブ状態のときに、第3レジスタ301から入力した画像データを出力する(図13(F)Trimed Data参照)。第4レジスタ302から出力された画像データは、メモリ512に送られ記憶される。
以上のように本実施例では、描画プロセッサ511(521、531)は、メモリ512(522、532)から読み出された画像データに、回転処理、色変換処理、色空間変換の処理を連続して行い、処理後の画像データをメモリ512に格納している。従って、複数の処理をまとめて行うので、処理終了までの時間が短縮される。
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。
1 画像形成装置
10 制御部(上位装置)
50 画像処理アクセラレータ
510、520、530 描画部
511、521、531 描画プロセッサ(第1、第2、第3描画処理手段)
512、522、532 メモリ(記憶手段)
10 制御部(上位装置)
50 画像処理アクセラレータ
510、520、530 描画部
511、521、531 描画プロセッサ(第1、第2、第3描画処理手段)
512、522、532 メモリ(記憶手段)
Claims (3)
- 上位装置からの画像処理を指示する画像処理命令に基づいて、複数種類の画像処理を実行する複数の描画処理手段と、
前記上位装置から送られた画像データを記憶する記憶手段とを有し、
前記複数の描画処理手段は、前記記憶手段から読み出した画像データにダミーデータを付加し、該ダミーデータを付加した画像データのデータ数が、前記描画処理手段が画像データに回転処理を行う場合の処理単位の主走査方向又は副走査方向の整数倍のデータ数となるようにし、前記ダミーデータを付加した画像データを前記記憶手段に記憶させる第1描画処理手段と、
前記記憶手段に記憶された、前記ダミーデータを付加した画像データを前記処理単位ごとに読み出し、該読み出した前記処理単位ごとの画像データを回転処理しながら第1の画像処理を行って、前記記憶手段に記憶させる第2描画処理手段と、
を有することを特徴とする画像処理アクセラレータ。 - 前記記憶手段に記憶した前記ダミーデータを付加した画像データを前記処理単位のデータ数ごとに読み出して第2の画像処理を行った後に、画像データに付加された前記ダミーデータを取り除き、前記ダミーデータを取り除いた画像データを前記記憶手段に記憶させる第3描画処理手段を有することを特徴とする請求項1記載の画像処理アクセラレータ。
- 前記複数の描画処理手段は、具備する回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、前記複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプログラマブル論理回路装置であることを特徴とする請求項1又は2記載の画像処理アクセラレータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010070839A JP2011204025A (ja) | 2010-03-25 | 2010-03-25 | 画像処理アクセラレータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010070839A JP2011204025A (ja) | 2010-03-25 | 2010-03-25 | 画像処理アクセラレータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011204025A true JP2011204025A (ja) | 2011-10-13 |
Family
ID=44880597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010070839A Pending JP2011204025A (ja) | 2010-03-25 | 2010-03-25 | 画像処理アクセラレータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011204025A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014174898A (ja) * | 2013-03-12 | 2014-09-22 | Pfu Ltd | 画像データ処理装置、画像データ処理方法及び画像データ処理プログラム |
-
2010
- 2010-03-25 JP JP2010070839A patent/JP2011204025A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014174898A (ja) * | 2013-03-12 | 2014-09-22 | Pfu Ltd | 画像データ処理装置、画像データ処理方法及び画像データ処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6403430B2 (ja) | 画像処理装置および画像処理方法 | |
US9286697B2 (en) | Reconfigurable image processing apparatus with variable compression rate and recording medium for reconfigurable image processing | |
US7734103B2 (en) | Image processing apparatus and image processing method | |
JP6251029B2 (ja) | 制御装置、画像処理装置、制御方法、およびプログラム | |
JP5446047B2 (ja) | 印刷制御装置、画像形成システムおよびプログラム | |
JP2011204025A (ja) | 画像処理アクセラレータ | |
JP6238510B2 (ja) | バッファ、バッファの制御方法、同期制御装置、同期制御方法、画像処理装置および画像処理方法 | |
JP4086556B2 (ja) | 画像処理装置およびその制御方法 | |
JP6779263B2 (ja) | データ処理装置及び方法及びプログラム | |
US7460718B2 (en) | Conversion device for performing a raster scan conversion between a JPEG decoder and an image memory | |
JP6482320B2 (ja) | データ処理装置、並びに、制御装置およびその方法 | |
JP3997851B2 (ja) | 画像符号化装置および画像符号化プログラム | |
JP2012169916A (ja) | 画像処理装置および画像形成装置 | |
JP4748077B2 (ja) | 画素データ転送制御装置及び画素データ転送制御方法 | |
JP2012227598A (ja) | 画像処理装置、画像形成装置、画像処理方法、画像処理プログラム及び記録媒体 | |
JP2011054098A (ja) | 画像処理装置 | |
JP3189873B2 (ja) | 色変換装置 | |
JP2012124667A (ja) | 画像処理装置 | |
JP2010206721A (ja) | 画像処理装置及びその方法 | |
JP4791805B2 (ja) | 画像形成装置及び画像形成プログラム | |
JP2008048099A (ja) | 画像処理方法、画像処理装置、およびルックアップテーブルの設定方法 | |
JP2001287411A (ja) | プリンタ制御装置 | |
JP2006148808A (ja) | データ転送装置、データ転送方法、データ転送プログラム | |
JP2006092506A (ja) | 画像処理装置 | |
JP2020090075A (ja) | 画像形成装置および、画像形成方法 |