(57)【要約】【課題】本発明は、ＲＡＭアクセスの混雑を緩和することができ、処理パフォーマンスを向上することができる画像処理装置を提供することを目的とする。【解決手段】本発明の画像処理装置は、コマンドとデータを備えた受信データを処理する画像処理装置において、受信データを受信する入力インタフェース部１０１と、受信データのデータとコマンドを判定し分割するコマンド分離部１０２と、受信データまたはコマンドを格納するメインメモリ１０６と、データを格納するストレージ１３０を備えることを特徴とする。【選択図】  図２
2011224920.tif 000002
【特許請求の範囲】
【請求項１】
コマンドとデータを備えた受信データを処理する画像処理装置において、
前記受信データを受信する受信部と、
前記受信データの前記データと前記コマンドを判定し分割する判定部と、
前記受信データまたは前記コマンドを格納する第１の記憶部と、
前記データを格納する第２の記憶部を備えること
を特徴とする画像処理装置。
【請求項２】
前記判定部は前記第１の記憶部に前記受信データとは別の先行受信データが格納されていない場合には、前記受信データを前記第１の記憶部に格納し、
前記第１の記憶部に前記先行受信データが格納されている場合には、前記受信データの前記コマンドを前記第１の記憶部に、前記データを前記第２の記憶部に格納すること
を特徴とする請求項１記載の画像処理装置。
【請求項３】
処理中フラグに基づきデータの格納先を切り替えるデータ切り替え部を更に有し、
前記データ切り替え部は、前記処理中フラグがオンされている場合には、前記判定部から転送される前記データを、順次、前記第２の記憶部に転送すること
を特徴とする請求項１記載の画像処理装置。
【請求項４】
前記判定部は、前記コマンドに記された許可があった場合には、前記受信データを前記第１の記憶部に格納し、
前記許可がなかった場合には、前記コマンドを前記第１の記憶部に、前記データを前記第２の記憶部に格納すること
を特徴とする請求項１記載の画像処理装置。
【請求項５】
前記判定部は、前記コマンドに印刷時間として即時の旨が記されている場合には、前記受信データを前記第１の記憶部に格納し、
前記コマンドに印刷時間として所定の予約時間が記されている場合には、前記コマンドを前記第１の記憶部に、前記データを前記第２の記憶部に格納すること
を特徴とする請求項１記載の画像処理装置。
【請求項６】
前記第１の記憶部とはメインメモリであり、前記第２の記憶部とはストレージであることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
従来、一般的な画像処理装置では、入力されたデータをワークメモリとしてのＲＡＭ（Random Access Memory）に格納し、画像処理を行い、その結果を出力していた。
【０００３】
ここで、例えば特許文献１では、インタフェース部が受信した印刷データを受信バッファメモリに一時的に格納する印刷装置であって、情報出力部の印刷データを編集部にて編集して得た編集印刷データをページバッファメモリに格納した後、印刷起動をかけずに展開部にてバンド単位で展開処理し、得られたバンド単位の画像データを圧縮伸長部にて圧縮して圧縮ラスタバッファメモリに格納し、印刷起動時に圧縮ラスタバッファメモリより圧縮画像データを読み出し、圧縮伸長部にて伸長処理してラスタバッファメモリに印刷のために格納する印刷装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２５２９５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、前述したような構成の印刷装置では、特にネットワークに接続されている場合など、ＲＡＭにアクセスするクライアントが多数存在するため、大量のデータが連続的に入力された場合、ＲＡＭへのアクセスが混雑し、結果的に処理パフォーマンスが低下する場合があった。
【０００６】
そこで、本発明は上述の技術的な課題に鑑み、ＲＡＭアクセスの混雑を緩和することができ、処理パフォーマンスを向上することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述技術的な課題を解決するため、本発明の一態様に係る画像処理装置は、コマンドとデータを備えた受信データを処理する画像処理装置において、前記受信データを受信する受信部と、前記受信データの前記データと前記コマンドを判定し分割する判定部と、前記受信データまたは前記コマンドを格納する第１の記憶部と、前記データを格納する第２の記憶部を備えることを特徴とする。
【発明の効果】
【０００８】
本発明に係る画像処理装置によれば、ＲＡＭアクセスの混雑を緩和することができ、処理パフォーマンスを向上することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態に係る画像処理装置を採用した画像処理システムの構成を示す図である。
【図２】本発明の第１の実施形態に係る画像処理装置としてのプリンタの機能ブロック図である。
【図３】本発明の第１の実施形態に係る画像処理装置としてのプリンタの概略構成図である。
【図４】本発明の第１の実施形態に係る画像処理装置としてのプリンタ内部のシステムアドレスマップを示す図である。
【図５】本発明の第１の実施形態に係る画像処理装置としてのプリンタと外部装置としてのホストＰＣによる処理の流れを説明するフローチャートである。
【図６】印刷データの一例を示す図である。
【図７】印刷データの一例を示す図である。
【図８】非印刷データの一例を示す図である。
【図９】コマンド受信割り込みを受信した際の制御を示すフローチャートである。
【図１０】印刷終了割り込みを受信した際の制御を示すフローチャートである。
【図１１】制御部から印刷指示があったときの印刷制御部の動作を示すフローチャートである。
【図１２】本発明の第２の実施形態に係る画像処理装置としてのプリンタの機能ブロック図である。
【図１３】本発明の第２の実施形態に係る画像処理装置としてのプリンタと外部装置としてのホストＰＣによる処理の流れを説明するフローチャートである。
【図１４】印刷データの一例を示す図である。
【図１５】印刷データの一例を示す図である。
【図１６】コマンド受信割り込みを受信した際の制御を示すフローチャートである。
【図１７】タイマー割り込みを受信した際の制御を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の画像処理装置に係る好適な実施形態について、図面を参照しつつ説明する。なお、本発明の画像処理装置は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において、適宜変更可能である。
【００１１】
図１には、本発明の第１の実施形態に係る画像処理装置を採用した画像処理システムの構成を示し説明する。
【００１２】
この図１に示されるように、画像処理装置としてのプリンタ１００は、ＵＳＢ（Universal Serial Bus）ケーブルからなる通信路２００を介して、外部装置としてのホストパーソナルコンピュータ（以下、ＰＣと略記する）３００と通信自在に接続されている。
【００１３】
このような構成において、画像処理装置としてのプリンタ１００は、印刷データを受信し、所定の印刷処理を行う。外部装置としてのホストＰＣ３００は、ＵＳＢホスト機能を有しており、ＵＳＢケーブル経由で印刷データをプリンタ１００に送信する。ここで、ＵＳＢホスト機能とは、例えばＵＳＢ接続の周辺機器（この例では、プリンタ１００）を認識して利用するためのコントロール機能を意味する。
【００１４】
図２には、画像処理装置としてのプリンタ１００の機能ブロック図を示し説明する。
【００１５】
同図に示されるように、画像処理装置としてのプリンタ１００は、受信部としての入力インタフェース部１０１、判定部としてのコマンド分離部１０２、データ切り替え部１０３、印刷制御部１０４、全体の制御を司る制御部１０５、第１の記憶部としてのメインメモリ１０６、印刷エンジンである印刷部１２０、第２の記憶部としてのストレージ１３０を備えている。これらのうち、入力インタフェース部１０１、コマンド分離部１０２、データ切り替え部１０３、印刷制御部１０４、制御部１０５は、論理回路、ＣＰＵ（Central Processing Unit）、及びＣＰＵにて動作させるプログラム、ワークメモリ、プログラムで使う設定情報保存用の不揮発性メモリで構成可能である。さらに、メインメモリ１０６はＤＲＡＭ（Dynamic Random Access Memory）等により構成可能であり、ストレージ１３０はＳＤ（Secure Digital）メモリカード等により構成可能である。
【００１６】
このような構成の画像処理装置において、受信部としての入力インタフェース部１０１は、ＵＳＢデバイス・コントローラとして機能し、通信路２００であるＵＳＢケーブルを介して外部装置であるホストＰＣ３００と通信し、印刷データ、つまり外部装置であるホストＰＣ３００からの受信データを受信する。
【００１７】
判定部としてのコマンド分離部１０２は、入力インタフェース部１０１が受信した印刷データを解析し、印刷データの本体に関する情報を示す"コマンド"と、印刷する画像データそのものである"データ"に分離・分割し、コマンドは第１の記憶部としてのメインメモリ１０６にＤＭＡ（Direct Memory Access）転送し、データはデータ切り替え部１０３へと転送する。ここで、ＤＭＡ転送とは、ＣＰＵ（この例では、制御部１０５）を介さずに直接メインメモリにデータ転送を行う方式をいう。
【００１８】
より詳細には、コマンド分離部１０２は、印刷データの中の文字列「％ＰｒｉｎｔＤａｔａｉｎｆｏｒｍａｔｉｏｎ」を認識することで、それ以降をコマンドとして抽出し、メインメモリ１０６にＤＭＡ転送する。さらに、印刷データの中の文字列「％ＰｒｉｎｔＤａｔａＳｔａｒｔ」を認識することで、それ以降をデータとして抽出し、データ切り替え部１０３へと転送することになる。上記コマンドとしては、受信時間（RECEIVE TIME）やデータサイズ（DATA SIZE）等が含まれており、一方、上記データとしては、用紙サイズ（PAPER SIZE）や通信方式（DUPLEXのON/OFF）等が含まれている。
【００１９】
データ切り替え部１０３は、制御部１０５からの指示を受け、コマンド分離部１０２より受信したデータを、メインメモリ１０６にＤＭＡ転送する。このデータは、メインメモリ１０６の画像データ記憶領域１０６ｂに格納される。印刷制御部１０４は、入力されたデータに所定の画像処理を施し、さらに印刷可能なデータを読み取り、このデータを基に印刷部１２０に印刷を指示する。印刷部１２０は、印刷エンジンであり、印刷制御部１０４からの指示に基づいて媒体への印刷を行う。制御部１０５は、プリンタ１００全体の状況を判断してデータ切り替え部１０３のデータパスを制御する。
【００２０】
第１の記憶部としてのメインメモリ１０６は、前述した通り、コマンドやデータを記憶するＤＲＡＭで構成されており、この例では、２５６ＭＢの記憶容量を有し、その内部にコマンド記憶領域１０６ａや画像データ記憶領域１０６ｂなどを有している。第２の記憶部としてのストレージ１３０は、前述した通り、この例ではデータを記憶するＳＤメモリカードで構成されており、そのブロックサイズは５１２Ｂｙｔｅ、ブロック数は３３，５５４，２３２ブロックであり、従って記憶領域全体では、５１２（Ｂｙｔｅ）×３３，５５４，２３２（ブロック）、即ち、略１６ＧＢの記憶容量を有している。ただし、これは一例であって、ブロックサイズ、ブロック数はこれには限定されない。
【００２１】
図３には、画像処理装置としてのプリンタ１００の概略構成図を示し説明する。
【００２２】
この図３に示されるように、プリンタ１００内部には読取部１１０、印刷部１２０、ＳＤメモリカードからなるストレージ１３０が配設されている。さらに、入力インタフェース部１０１やコマンド分離部１０２、データ切り替え部１０３、印刷制御部１０４、制御部１０５、メインメモリ１０６等が実装された制御基板が内蔵されている。この制御基板の入力インタフェース部１０１に通信路２００であるＵＳＢケーブルが接続され、ここでは不図示のホストＰＣ（３００）から印刷データが送信される。
【００２３】
図４には、画像処理装置としてのプリンタ１００内部のシステムアドレスマップを示し説明する。
【００２４】
同図において、ＣＰＵとＤＭＡは同様に３２Ｂｉｔアドレス（４ＧＢ）でマッピングされている。０ｘ００００００００〜０ｘ０ＦＦＦＦＦＦＦの２５６ＭＢにメインメモリ１０６が配置される。メインメモリ１０６内部には、プログラムが展開されているプログラムメモリ領域（１６ＭＢ）と、プログラムが計算等の一時記憶等に使用するワークメモリ領域（２４ＭＢ）、コマンドを記憶するコマンド記憶領域（８ＭＢ）、データ及び画像処理の一時記憶に使用するデータ記憶領域（２０８ＭＢ）を持つ。一方、０ｘ１０００００００〜０ｘＦＦＦＦＦＦＦＦは、メインメモリ１０６以外のデバイス（ＲＯＭ／内部論理回路ＩＯ／外部デバイスＩＯ）が割り当てられているか、あるいはデバイスが割り当てられていない領域である。
【００２５】
以下、図５のフローチャートを参照して、本発明の第１の実施形態に係る画像処理装置としてのプリンタ１００と外部装置としてのホストＰＣ３００による処理の流れを説明する。尚、以下の説明では、印刷データ等の様子を示す図６乃至図８、および図９，１０のフローチャートを適宜参照する。また、以下の説明で用いる日時は説明の便宜上使用するものであって、特にこれに限定されるものではない。
【００２６】
いま、例えば２００９年８月１９日１５：３０に、プリンタ１００の電源が投入（パワーオン）され、起動したものとする（ステップＳ０１）。プリンタ１００は、制御部１０５の初期化プログラムにより、処理中フラグ＝ＯＦＦ、未処理数＝０、コマンドバッファ・ライト・アドレス＝０ｘ０２８０００００、コマンドバッファ・リード・アドレス＝０ｘ０２８０００００、入力バッファ・アドレス＝０ｘ０３００００００、ストレージ・ブロック・アドレス＝０が初期値として設定されている。
【００２７】
続いて、例えば２００９年８月１９日１６：００に、図示しないユーザがホストＰＣ３００を操作し、図６に示す第１の印刷データ２０１を通信路２００であるＵＳＢケーブルを介してプリンタ１００に送信する（ステップＳ０２）。
【００２８】
プリンタ１００内の入力インタフェース部１０１が第１の印刷データ２０１を受信すると、プリンタ１００内において以下の処理が行われる（ステップＳ０３）。
【００２９】
即ち、コマンド分離部１０２は、文字列２０１Ｘの「％ＰｒｉｎｔＤａｔａＩｎｆｏｒｍａｔｉｏｎ」を認識することで、それ以降に続く文字列をコマンド２０１Ａとして抽出する。コマンド分離部１０２は、コマンド２０１Ａを、メインメモリ１０６上、コマンド記憶領域１０６ａのコマンドバッファ・ライト・アドレスが示す０ｘ０２８０００００へとＤＭＡ転送する。このとき、コマンド２０１Ａのデータサイズは５１２（Ｂｙｔｅ）と規定されているものとする。このＤＭＡ転送により、メインメモリ１０６のコマンドバッファ・ライト・アドレスは５１２インクリメントされ、自動的に０ｘ０２８００２００となる。コマンド分離部１０２は、このコマンド２０１Ａのメインメモリ１０６へのＤＭＡ転送の終了後、制御部１０５にコマンド受信割り込みを発生する。
【００３０】
さらに、コマンド分離部１０２は、文字列２０１Ｙの「％ＰｒｉｎｔＤａｔａＳｔａｒｔ」を認識し、それ以降をデータ２０１Ｂとして抽出し、出力方向がデータ切り替え部１０３となるようパスを切り替え、待機する。
【００３１】
一方、制御部１０５はコマンド受信割り込みを受信するため、図９の制御フローチャートに従い、コマンドを読み取る。コマンド２０１Ａはコマンドバッファ・リード・アドレスの示す０ｘ０２８０００００に書き込まれている。コマンドの内容は図６に示した通りである。コマンド２０１Ａをリード後、コマンドバッファ・リード・アドレスを５１２インクリメントし、０ｘ０２８００２００とする（ステップＳ１０１）。
【００３２】
続いて、制御部１０５は、コマンド２０１Ａに含まれるコマンド２０１ＡＢから、受信したのは印刷データであり、８，１９２，１５１（Ｂｙｔｅ）のデータ２０１Ｂを受信中であると認識するので（ステップＳ１０２のＹｅｓ）、データ２０１Ｂの行き先を決定するため、処理中フラグを確認する（ステップＳ１０３）。ここでは、処理中フラグ＝ＯＦＦであるため（ステップＳ１０４のＹｅｓ）、制御部１０５は、データ切り替え部１０３に、８，１９２，１５１（Ｂｙｔｅ）のデータ２０１ＢのＤＭＡ転送を指示する。
【００３３】
次いで、データ切り替え部１０３は、パスを切り替え、コマンド分離部１０２から転送されるデータ２０１Ｂを、順次メインメモリ１０６のデータ記憶領域１０６ｂの０ｘ０３００００００〜にＤＭＡ転送する（ステップＳ１０５）。データ切り替え部１０３は、このデータ２０１ＢのＤＭＡ転送終了後、処理中フラグ＝ＯＮとし、印刷制御部１０４を起動する。印刷制御部１０４は、メインメモリ１０６のデータ記憶領域１０６ｂに格納されたデータ２０１Ｂの画像処理と印刷を開始する（ステップＳ１０６）。こうして、制御部１０５は、受信時の処理を終了し、待機状態に戻る。
【００３４】
続いて、例えば２００９年８月１９日１６：０１に、図示しないユーザがホストＰＣ３００を操作し、図６に示す第２の印刷データ２０２を通信路２００であるＵＳＢケーブルを介してプリンタ１００に送信する（ステップＳ０４）。
【００３５】
次いで、プリンタ１００内の入力インタフェース部１０１が第二の印刷データ２０２を受信すると、プリンタ１００内において以下の処理が行われる（ステップＳ０５）。
【００３６】
即ち、コマンド分離部１０２は、文字列２０２Ｘの「％ＰｒｉｎｔＤａｔａＩｎｆｏｒｍａｔｉｏｎ」を認識することで、それ以降に続く文字列をコマンド２０２Ａとして抽出する。コマンド分離部１０２は、コマンド２０２Ａを、メインメモリ１０６上、コマンド記憶領域１０６ａのコマンドバッファ・ライト・アドレスが示す０ｘ０２８００２００へＤＭＡ転送する。このとき、コマンド２０２Ａのデータサイズは５１２（Ｂｙｔｅ）と規定されているものとする。このＤＭＡ転送により、メインメモリ１０６のコマンドバッファ・ライト・アドレスは５１２インクリメントされ、自動的に０ｘ０２８００４００となる。コマンド分離部１０２は、このコマンド２０２Ａのメインメモリ１０６へのＤＭＡ転送の終了後、制御部１０５にコマンド受信割り込みを発生する。
【００３７】
さらに、コマンド分離部１０２は、文字列２０２Ｙの「％ＰｒｉｎｔＤａｔａＳｔａｒｔ」を認識し、それ以降のデータ２０２Ｂとして抽出し、出力方向がデータ切り替え部１０３となるようにパスを切り替え、待機する。
【００３８】
一方、制御部１０５はコマンド受信割り込みを受信するため、図９の制御フローチャートに従い、コマンドを読み取る。コマンド２０２Ａはコマンドバッファ・リード・アドレスの示す０ｘ０２８００２００に書き込まれている。コマンドの内容は図７に示した通りである。コマンド２０２Ａをリード後、コマンドバッファ・リード・アドレスを５１２インクリメントし、０ｘ０２８００４００とする（ステップＳ１０１）。
【００３９】
続いて、制御部１０５は、コマンド２０２Ａに含まれるコマンド２０２ＡＢから、受信したのは印刷データであり、２，５６０，２５２（Ｂｙｔｅ）のデータ２０２Ｂを受信中であると認識するので（ステップＳ１０２のＹｅｓ）、データ２０２Ｂの行き先を決定するため、処理中フラグを確認する（ステップＳ１０３）。
【００４０】
ここでは、処理中フラグ＝ＯＮであるため（ステップＳ１０４のＮｏ）、データ切り替え部１０３はパスを切り替え、コマンド分離部１０２から転送されるデータ２０２Ｂを、順次ダイレクトにストレージ１３０のブロック・ポインタ＝０以降に転送する。ストレージ１３０は、１ブロック＝５１２（Ｂｙｔｅ）のデータを格納できるため、２，５６０，２５２（Ｂｙｔｅ）のデータを記憶するために、２，５６０，２５２／５１２→４００１ブロックを使用する。そこで、ストレージ・ブロック・ポインタを４００１インクリメントし、ストレージ・ブロック・ポインタ＝４００１とする。データ切り替え部１０３は、ストレージ１３０へのデータ２０２Ｂの転送を終了した後、ワークメモリ上の図示しないストレージ情報記憶領域に「０  ０  ２５６０２５２」と記憶する。これは、０番目の未処理データが、ストレージ１３０のブロック・ポインタ＝０から２，５６０，２５２（Ｂｙｔｅ）記憶されていることを意味する（ステップＳ１０７）。
【００４１】
続いて、制御部１０５は未処理数をインクリメントし、未処理数＝１とする（ステップＳ１０８）。そして、制御部１０５は受信時の処理を終了し、待機状態に戻る。
【００４２】
次いで、例えば２００９年８月１９日１６：０２に、印刷制御部１０４は、印刷データ２０１にかかるデータ２０１Ｂの画像処理、及び印刷部１２０への印刷指示に必要なデータの読み取りを終え、制御部１０５に印刷終了割り込みを発生する（ステップＳ０６）。
【００４３】
即ち、制御部１０５は印刷終了割り込みを受信したため、図１０の制御フローチャートに従い、先ずは未処理数を確認する（ステップＳ２０１）。ここで、未処理数＝１であり０でないため（ステップＳ２０２のＮｏ）、ストレージ情報記憶領域から「０  ０  ２５６０２５２」を読み出し、２，５６０，２５２（Ｂｙｔｅ）の未処理データがストレージ１３０のブロック・ポインタ＝０からのブロックに格納されていると認識する。
【００４４】
そこで、データ切り替え部１０３はパスを切り替え、ストレージ１３０のブロック・ポインタ＝０から４００１ブロックを読み出し、２，５６０，２５２（Ｂｙｔｅ）のデータ２０２Ｂをメインメモリ１０６の０ｘ０３００００００〜にＤＭＡ転送する（ステップＳ２０４）。データ切り替え部１０３は、このＤＭＡ転送終了後、印刷制御部１０４を起動する。そして、未処理数をデクリメントし、未処理数＝０とする。処理中フラグはＯＮのままとし、ストレージ情報記憶領域「０  ０  ２５６０２５２」を削除する。次いで、印刷制御部１０４は、メインメモリ１０６のデータ記憶領域１０６ｂに格納されたデータ２０２Ｂの画像処理と印刷を開始する（ステップＳ２０５）。制御部１０５は、印刷終了時の処理を終了し、待機状態に戻る。
【００４５】
次いで、例えば２００９年８月１９日１６：０３に、図示しないユーザがホストＰＣ３００を操作し、図８に示す非印刷データ２０３を、通信路２００であるＵＳＢケーブルを介して、プリンタ１００に送信する（ステップＳ０７）。
【００４６】
そして、プリンタ１００内の入力インタフェース部１０１が、この非印刷データ２０３を受信すると、以下の処理を行う（ステップＳ０８）。
【００４７】
即ち、コマンド分離部１０２は、文字列２０３Ｘの「％ＰｒｉｎｔＳｅｔ」を認識することで、これ以降に続く文字列をコマンド２０３Ａとして抽出する。コマンド分離部１０２は、このコマンド２０３Ａを、メインメモリ１０６上、コマンド記憶領域１０６ａのコマンドバッファ・ライト・アドレスが示す０ｘ０２８００４００へＤＭＡ転送する。コマンドのデータサイズは５１２（Ｂｙｔｅ）と規定されているものとする。このコマンド２０３Ａのメインメモリ１０６へのＤＭＡ転送により、コマンドバッファ・ライト・アドレスは５１２インクリメントされ、自動的に０ｘ０２８００６００となる。コマンド分離部１０２は、このＤＭＡ終了後、制御部１０５にコマンド受信割り込みを発生する。
【００４８】
一方、制御部１０５は、コマンド分離部１０２からのコマンド割り込みを受信し、図９の制御フローチャートに従い、先ずはコマンド２０３Ａを読み取る。このコマンド２０３Ａはコマンドバッファ・リード・アドレスの示す０ｘ０２８００４００に書き込まれている。コマンド２０３Ａの内容は、図８に示した通りである。制御部１０５は、コマンド２０３Ａをリード後、コマンドバッファ・リード・アドレスを５１２インクリメントし、０ｘ０２８００６００とする（ステップＳ１０１）。
【００４９】
続いて、制御部１０５は、コマンド２０３Ａに含まれるコマンド２０３ＡＡから、受信したのは非印刷データであると認識し（ステップＳ１０２のＮｏ）、制御部１０５は、受信したコマンド２０３Ａに基づいて、不図示の処理パラメータ「ＴＯＮＥＲ＿ＳＡＶＥ」をＯＮする。この処理パラメータの設定により、印刷制御部１０４は、画像品質を犠牲にしてトナー消費量を抑える画像処理を行う（ステップＳ１０９）。こうして制御部１０５は受信時の処理を終了し、待機状態に戻る。
【００５０】
次いで、例えば、２００９年８月１９日１６：０４に、印刷制御部１０４は、印刷データ２０２に係るデータ２０２Ｂの画像処理を終え、更には印刷部１１０に印刷指示を開始し、メインメモリ１０６から必要なデータを全て読み取り終えたため、制御部１０５に印刷終了割り込みを発生する（ステップＳ０９）。
【００５１】
即ち、制御部１０５は印刷終了割り込みを受信するため、図１０の制御フローチャートに従い、先ずは未処理数を確認する（ステップＳ２０１）。ここでは、未処理数＝０なので（ステップＳ２０２のＹｅｓ）、もはや印刷すべきデータは無いため、処理中フラグ＝ＯＦＦとする（ステップＳ２０３）。こうして、制御部１０５は印刷終了時の処理を終了し、待機状態に戻る。
【００５２】
以上で、画像処理装置としてのプリンタ１００と外部装置としてのホストＰＣ３００による一連の処理を終了する。
【００５３】
ここで、単純に印刷データを１つ受信した際の動作で、コマンドとデータの意味が更に理解できるように、より詳細に説明することとする。
【００５４】
ホストＰＣ３００は、例えば先に図６に示したような印刷データ２０１をプリンタ１００に送信する。印刷データは、"コマンド"と"データ"から構成されているが、コマンド２０１Ａはデータサイズ等が書かれているものである。データ２０１Ｂは印刷を行うためのデータで、用紙サイズ等や、印刷したい画像が含まれている。印刷データ２０１は、入力インタフェース部１０１を介して、コマンド分離部１０２に送信される。
【００５５】
コマンド分離部１０２は、内部のデータフローを制御するハードウェアモジュール等により実現される。受け取った印刷データ２０１から、コマンド２０１Ａ（即ち、データサイズ２０１ＡＢ）を抽出し、制御部１０５に割り込みをかける。このタイミングでは、データを受信したことを伝えることが目的となっている。コマンド２０１Ａは、制御部１０５が確認できるメインメモリ１０６に格納される。この時点で、データ２０１Ｂはメインメモリ１０６に格納すればよいのか、ストレージ１３０に格納すればよいのかわからないので、制御部１０５に判断させることになる。
【００５６】
制御部１０５は、プリンタ１００全体を制御するファームウェア等により実現されることを想定している。制御部１０５は、印刷制御部１０４が動作しているかどうか、即ち印刷中かどうか、わかるようになっているので、印刷中であればデータ２０１Ｂをストレージ１３０に、印刷中でなければメインメモリ１０６に格納するように、コマンド分離部１０２に指示を出す。データ２０１Ｂがストレージ１３０に格納されたとしても、最終的には、先に説明した手順でメインメモリ１０６に移動される。
【００５７】
データ２０１Ｂがメインメモリ１０６に格納された後、制御部１０５はいよいよ印刷を開始するため、印刷制御部１０４に印刷開始を指示する。制御部１０５は、データ２０１Ｂがメインメモリ１０６のどこに、どういったサイズで格納されているかを把握しているので、これら情報を印刷制御部１０４に伝えて、起動する。
【００５８】
印刷制御部１０４は、印刷を制御するソフトウェア等により実現されることを想定している。印刷制御部１０４は、データ２０１Ｂの内容のみを基にして印刷を行うことができる。そして、印刷が終了したら制御部１０５に割り込みをかける。
【００５９】
以下、図１１のフローチャートを参照して、制御部１０５から印刷指示があったときの印刷制御部１０４の動作の流れを説明する。
【００６０】
印刷指示を受けると、印刷制御部１０４は動作を開始する。印刷指示の際に、制御部１０５からアドレスとサイズが通知されているので、印刷制御部１０４は、処理すべきデータ２０１Ｂにアクセスすることができる。このアクセスしたデータ２０１Ｂからページ数を読み取る（ステップＳ２５１）。続いて、データ２０１Ｂから１ページ分の画像データを読み取り、ラスタデータを作成し、該ラスタデータを印刷部１２０に出力する。これを全ページに対して行う（ステップＳ２５２〜Ｓ２５４）。
【００６１】
こうして全ページの処理が終わったら、制御部１０５に印刷終了割り込みを送信し（ステップＳ２５５）、動作を終了する。尚、印刷制御部１０４がステップＳ２５１〜Ｓ２５５を実行している間に新たな印刷データを受信しても、メインメモリ１０６に格納しないように制御する点は特徴的である。
【００６２】
以上説明したように、本発明の第１の実施形態によれば、コマンドとデータを備えた受信データ、即ち印刷データを処理する画像処理装置において、受信データを受信する受信部としての入力インタフェース部１０１と、受信データのデータとコマンドを判定し分割する判定部としてのコマンド分離部１０２と、受信データまたはコマンドを格納する第１の記憶部としてのメインメモリ１０６と、データを格納する第２の記憶部としてのストレージ１３０とを備えることを特徴とする画像処理装置が提供される。
【００６３】
ここで、判定部としてのコマンド分離部１０２は、第１の記憶部としてのメインメモリ１０６に受信データとは別の先行受信データが格納されていない場合には、受信データを第１の記憶部としてのメインメモリ１０６に格納し、第１の記憶部としてのメインメモリ１０６に先行受信データが格納されている場合には、受信データのコマンドを第１の記憶部としてのメインメモリ１０６に、データを第２の記憶部としてのストレージ１３０に格納することを特徴としてよい。
【００６４】
更に、処理中フラグに基づきデータの格納先を切り替えるデータ切り替え部１０３を更に有し、データ切り替え部１０３は、処理中フラグがオンされている場合には、判定部としてのコマンド分離部１０２から転送されるデータを、順次、第２の記憶部としてのストレージ１３０に転送することを特徴としてよい。
【００６５】
従って、第１の実施形態によれば、印刷動作中に後続のデータが入力された際、メインメモリ１０６ではなくストレージ１３０に格納するため、印刷クライアントと入力クライアントのＲＡＭアクセスが同時に発生せず、ＲＡＭアクセスの混雑を緩和することができ、処理パフォーマンスを向上することができる。一方、コマンドは必ずメインメモリ１０６に格納するため、コマンド処理に対する遅延が発生することもない。
【００６６】
（第２の実施形態）
【００６７】
図１２には、本発明の第２の実施形態に係る画像処理装置としてのプリンタ１００'の機能ブロック図を示し説明する。ここでは、第１の実施形態（図２）と同一構成については同一符号を用いて特徴部分を中心に説明する。
【００６８】
この図１２に示されるように、画像処理装置としてのプリンタ１００'は、受信部としての入力インタフェース部１０１、判定部としてのコマンド分離部１０２、データ切り替え部１０３、印刷制御部１０４、全体の制御を司る制御部１０５'、第１の記憶部としてのメインメモリ１０６、印刷エンジンである印刷部１２０、第２の記憶部としてのストレージ１３０、タイマー１０７'を備えている。
【００６９】
これらのうち、入力インタフェース部１０１、コマンド分離部１０２、データ切り替え部１０３、印刷制御部１０４、制御部１０５'、タイマー１０７'は、論理回路、ＣＰＵ（Central Processing Unit）、及びＣＰＵにて動作させるプログラム、ワークメモリ、プログラムで使う設定情報保存用の不揮発性メモリで構成可能である。
【００７０】
このような構成において、制御部１０５'は、プリンタ１００'全体の状況を判断してデータ切り替え部１０３のデータパスを制御する。また、制御部１０５'は、タイマー割り込みを制御する機能を有している。タイマー１０７'は、現在時刻を保持する。本実施例においては、所定の時間である１分に一度、制御部にタイマー割り込みを送信する。上記以外のブロックは第１の実施形態（図２）と同様である。
【００７１】
以下、図１３のフローチャートを参照して、本発明の第２の実施形態に係る画像処理装置としてのプリンタ１００'と外部装置としてのホストＰＣ３００による処理の流れを説明する。以下の説明では、印刷データの様子を示す図１４，１５及び図１０，１６，１７のフローチャートを適宜参照する。また、以下の説明で用いる日時は説明の便宜上使用するものであって、特にこれに限定されるものではない。また、図１６において、図９と同一処理については同一のステップ番号を付している。
【００７２】
いま、例えば、２００９年８月１９日１５：３０に、プリンタ１００'の電源が投入され、起動されたものとする。プリンタ１００'においては、制御部１０５'の初期化プログラムにより、処理中フラグ＝ＯＦＦ、未処理数＝０、コマンドバッファ・ライト・アドレス＝０ｘ０２８０００００、コマンドバッファ・リード・アドレス＝０ｘ０２８０００００、入力バッファ・アドレス＝０ｘ０３００００００、ストレージ・ブロック・アドレス＝０が初期値として設定されている（ステップＳ１１）。
【００７３】
続いて、例えば、２００９年８月１９日１６：００に、図示しないユーザがホストＰＣ３００を操作し、図１４に示す第３の印刷データ２１１を通信路２００であるＵＳＢケーブルを介してプリンタ１００'に送信する（ステップＳ１２）。
【００７４】
プリンタ１００'内の入力インタフェース部１０１が第１の印刷データ２１１を受信すると、以下の処理が行われる（ステップＳ１３）。
【００７５】
即ち、コマンド分離部１０２は、文字列２１１Ｘの「％ＰｒｉｎｔＤａｔａＩｎｆｏｒｍａｔｉｏｎ」を認識することで、それ以降に続く文字列をコマンド２１１Ａとして抽出する。コマンド分離部１０２は、このコマンド２１１Ａを、メインメモリ１０６上、コマンド記憶領域１０６ａのコマンドバッファ・ライト・アドレスが示す０ｘ０２８０００００へＤＭＡ転送する。コマンド２１１Ａのデータサイズは、５１２（Ｂｙｔｅ）と規定されているものとする。このＤＭＡ転送により、コマンドバッファ・ライト・アドレスは５１２インクリメントされ、自動的に０ｘ０２８００２００となる。そして、コマンド分離部１０２は、ＤＭＡ転送の終了後、制御部１０５'にコマンド受信割り込みを発生する。
【００７６】
さらに、コマンド分離部１０２は、文字列２１１Ｙの「％ＰｒｉｎｔＤａｔａＳｔａｒｔ」を認識し、それ以降をデータ２１１Ｂとして抽出し、出力方向がデータ切り替え部１０３となるようにパスを切り替え、待機する。
【００７７】
一方、制御部１０５'はコマンド受信割り込みを受信するため、図１６の制御フローチャートに従い、コマンド２１１Ａを読み取る。コマンド２１１Ａはコマンドバッファ・リード・アドレスの示す０ｘ０２８０００００に書き込まれている。コマンド２１１Ａの内容は図１４に示した通りである。制御部１０５'は、コマンド２１１Ａをリード後、コマンドバッファ・リード・アドレスを５１２インクリメントし、０ｘ０２８００２００とする（ステップＳ１０１）。
【００７８】
続いて、制御部１０５'は、コマンド２１１Ａに含まれるコマンド２１１ＡＢから、受信したのは印刷データであり、８，１９２，１５１（Ｂｙｔｅ）のデータ２１１Ｂを受信中であると認識するので（ステップＳ１０２のＹｅｓ）、さらに継続して解析し（ステップＳ３０１）、コマンド２１１ＡＣから、印刷データは２００９年８月１９日１７：００に印刷予約がなされていて、即座に印刷するべきデータではないことを認識し（ステップＳ３０２のＮｏ）、データ切り替え部１０３はパスを切り替え、コマンド分離部１０２から転送されるデータ２１１Ｂを、順次、ダイレクトにストレージ１３０のブロック・ポインタ＝０以降に転送する（ステップＳ３０３）。
【００７９】
ここで、ストレージ１３０は、１ブロック＝５１２（Ｂｙｔｅ）のデータを格納することができる為、８，１９２，１５１（Ｂｙｔｅ）のデータ２１１Ｂを記憶するために８，１９２，１５１／５１２→１６００１ブロックを使用する。そこで、データ切り替え部１０３は、ストレージ・ブロック・ポインタを１６００１インクリメントし、ストレージ・ブロック・ポインタ＝１６００１とする。
【００８０】
続いて、データ切り替え部１０３はストレージへの転送終了後、ワークメモリ上の不図示のストレージ情報記憶領域に「２００９／８／１９／１７００  ０  ８１９２１５１」と記憶する。これは、２００９年８月１９日１７：００に印刷予約されたデータが、ストレージ１３０のブロック・ポインタ＝０から８，１９２，１５１（Ｂｙｔｅ）記憶されていることを意味する（ステップＳ３０４）。こうして、制御部１０５'は受信時の処理を終了し、待機状態に戻る。
【００８１】
次いで、例えば２００９年８月１９日１６：０１に、図示しないユーザがホストＰＣ３００を操作し、図１５に示す第４の印刷データ２１２を通信路２００であるＵＳＢケーブルを介してプリンタ１００'に送信する（ステップＳ１４）。
【００８２】
プリンタ１００'内の入力インタフェース部１０１が第４の印刷データ２１２を受信すると、以下の処理が行われる（ステップＳ１５）。
【００８３】
即ち、コマンド分離部１０２は、文字列２１２Ｘの「％ＰｒｉｎｔＤａｔａＩｎｆｏｍａｔｉｏｎ」を認識することで、それ以降に続く文字列をコマンド２１２Ａとして抽出する。このコマンド２１２Ａを、メインメモリ１０６上、コマンド記憶領域１０６のコマンドバッファ・ライト・アドレスが示す０ｘ０２８００２００へＤＭＡ転送する。コマンド２１２Ａのデータサイズは５１２（Ｂｙｔｅ）と規定されているものとする。メインメモリ１０６のコマンドバッファ・ライト・アドレスは５１２インクリメントされ、自動的に０ｘ０２８００４００となる。コマンド分離部１０２は、このＤＭＡ終了後、制御部１０５'にコマンド受信割り込みを発生する。
【００８４】
さらに、コマンド分離部１０２は、文字列２１２Ｙの「％ＰｒｉｎｔＤａｔａＳｔａｒｔ」を認識し、それ以降をデータ２１２Ｂとして抽出し、出力方向がデータ切り替え部１０３となるようにパスを切り替え、待機する。
【００８５】
一方、制御部１０５'はコマンド受信割り込みを受信するため、図１６の制御フローチャートに従い、コマンド２１２Ａを読み取る。コマンド２１２Ａはコマンドバッファ・リード・アドレスの示す０ｘ０２８００２００に書き込まれている。コマンド２１２Ａの内容は図１５に示した通りである。制御部１０５'は、コマンド２１２Ａをリード後、コマンドバッファ・リード・アドレスを５１２インクリメントし、０ｘ０２８００４００とする（ステップＳ１０１）。
【００８６】
制御部１０５'は、コマンド２１２Ａに含まれる２１２ＡＢから、受信したのは印刷データであり、２，５６０，２５２（Ｂｙｔｅ）であると認識するので（ステップＳ１０２のＹｅｓ）、さらに継続して解析し（ステップＳ３０１）、コマンド２１２ＡＣから、即座に印刷するべきデータであると認識し（ステップＳ３０２のＹｅｓ）、データの行き先を決定するため、処理中フラグを確認する（ステップＳ１０３）。
【００８７】
ここでは、処理中フラグ＝ＯＦＦであるため、（ステップＳ１０４のＹｅｓ）、制御部１０５'はデータ切り替え部１０３に２，５６０，２５２（Ｂｙｔｅ）のＤＭＡ転送を指示する。データ切り替え部１０３はパスを切り替え、コマンド分離部１０２から転送されるデータを、順次メインメモリ１０６のデータ記憶領域１０６ｂの０ｘ０３００００００〜にＤＭＡ転送する（ステップＳ１０５）。
【００８８】
データ切り替え部１０３は、ＤＭＡ転送を終了した後、処理中フラグ＝ＯＮとし、印刷制御部１０４を起動する。印刷制御部１０４はメインメモリ１０６のデータ記憶領域１０６ｂに格納されたデータ２１２Ｂの画像処理と印刷を開始する（ステップＳ１０６）。こうして、制御部１０５'は受信時の処理を終了し、待機状態に戻る。
【００８９】
次いで、例えば２００９年８月１９日１６：０４に、印刷制御部１０４は、印刷データ２１２に係るデータ２１２Ｂの画像処理、及び印刷部１２０への印刷指示に必要なデータ読み取りを終えた為、制御部１０５'に対して印刷終了割り込みを発生する（ステップＳ１６）。
【００９０】
即ち、制御部１０５'は、印刷終了割り込みを受信すると、図１０の制御フローチャートに従い、先ずは未処理数を確認する（ステップＳ２０１）。ここで、未処理数＝０なので（ステップＳ２０２のＹｅｓ）、もはや印刷すべきデータはないため、制御部１０５'は処理中フラグ＝ＯＦＦとする（ステップＳ２０３）。こうして、制御部１０５'は印刷終了時の処理を終了し、待機状態に戻る。
【００９１】
次いで、例えば２００９年８月１９日１７：００に、タイマー１０７'はタイマー割り込みを発生する(ステップＳ１７)。
【００９２】
即ち、制御部１０５'はタイマー１０７'からのタイマー割り込みを受信し、図１７の制御フローチャートに従い、ワークメモリ上のストレージ情報記憶領域から、予約されたデータの有無、予約時刻、及び現在時刻を確認する。（ステップＳ４０１）。ここでは、ストレージ情報記憶領域に、「２００９／８／１９／１７００  ０  ８１９２１５１」のデータがあり、２００９年８月１９日１７：００に予約された８，１９２，１５１（Ｂｙｔｅ）のデータがストレージのブロック・ポインタ＝０から格納されており、予約時刻は現在時刻と一致するので（ステップＳ４０２のＹｅｓ）、ストレージ情報記憶領域から「２００９／８／１９／１７００  ０  ８１９２１５１」を削除する（ステップＳ４０３）。
【００９３】
続いて、制御部１０５'は、処理中フラグを確認する（ステップＳ４０４）。ここでは、処理中フラグ＝ＯＦＦであるため（ステップＳ４０５のＹｅｓ）、制御部１０５'は、データ切り替え部にメインメモリ１０６のデータ記憶領域１０６ｂへ、８，１９２，１５１（Ｂｙｔｅ）のＤＭＡ転送を指示する。データ切り替え部１０３はパスを切り替え、ストレージ１３０のブロック・ポインタ＝０から１６００１ブロックを読み出し、８，１９２，１５１（Ｂｙｔｅ）の２１１Ｂをメインメモリ１０６のデータ記憶領域１０６ｂの０ｘ０３００００００〜にＤＭＡ転送する（ステップＳ４０６）。
【００９４】
データ切り替え部１０３は、このＤＭＡ転送終了後、処理中フラグ＝ＯＮとし、印刷制御部１０４を起動する。印刷制御部１０４はメインメモリ１０６のデータ記憶領域１０６ｂに格納されたデータ２１１Ｂの画像処理と印刷を開始する（ステップＳ４０７）。こうして、制御部１０５'は受信時の処理を終了し、待機状態に戻る。
【００９５】
続いて、例えば、２００９年８月１９日１７：０４に、印刷制御部１０４は、印刷データ２１１にかかるデータ２１１Ｂの画像処理、および印刷部１２０への印刷指示に必要なデータ読み取りを終えたため、制御部１０５'に印刷終了割り込みを発生する（ステップＳ１７）。
【００９６】
即ち、制御部１０５'は印刷終了割り込みを受信するため、図１０の制御フローチャートに従い、未処理数を確認する（ステップＳ２０１）。ここでは、未処理数＝０なので（ステップＳ２０２のＹｅｓ）、もはや印刷するべきデータは無いため、処理中フラグ＝ＯＦＦとする（ステップＳ２０３）。制御部は印刷終了時の処理を終了し、待機状態に戻る。
【００９７】
以上説明したように、本発明の第２の実施形態によれば、判定部としてのコマンド分離部１０２は、コマンドに記された許可があった場合には、受信データを第１の記憶部としてのメインメモリ１０６に格納し、許可がなかった場合には、コマンドを第１の記憶部としてのメインメモリ１０６に、データを第２の記憶部としてのストレージ１３０に格納することを特徴とする画像処理装置が提供される。
【００９８】
更に、第２の実施形態によれば、判定部としてのコマンド分離部１０２は、コマンドに印刷時間として即時の旨が記されている場合には、受信データを第１の記憶部としてのメインメモリ１０６に格納し、コマンドに印刷時間として所定の予約時間が記されている場合には、コマンドを第１の記憶部としてのメインメモリ１０６に、データを第２の記憶部としてストレージ１３０に格納することを特徴とする画像処理装置が提供される。
【００９９】
従って、第２の実施形態によれば、印刷時刻が設定されたデータはメインメモリ１０６ではなく、ストレージ１３０に格納するため、入力クライアントの余分なＲＡＭアクセスが発生せず、ＲＡＭアクセスの混雑を緩和することができ、他の印刷データに対する処理パフォーマンスを向上することができる。
【０１００】
上述の各実施形態では、画像処理装置としてはプリンタを例に挙げて説明したが、コピー機、ＭＦＰ、ＦＡＸなどの画像処理装置にも適用できる。また、通信路としてＵＳＢケーブルを例に挙げて説明したが、Ｅｔｈｅｒｎｅｔ（登録商標）やＩＥＥＥ１２８４、シリアルなどデータ通信を行う通信路で代用することもできる。さらに、外部装置としてホストＰＣを用いた例を説明したが、プリンタサーバやスキャナ、ＭＦＰ、ＦＡＸなどデータを送信する装置で代用することもできる。また、メインメモリとしてＤＲＡＭを用いたが、ＳＲＡＭやＦｌａｓｈ−ＲＯＭでもよい。さらに、ストレージとしてＳＤメモリカードを用いる例を示したが、ＳＤメモリカード以外のメモリカードや、ＨＤＤ、ＳＳＤ、あるいはＦｌａｓｈ−ＲＯＭなどの記憶デバイスでもよい。
【符号の説明】
【０１０１】
１００  プリンタ
１０１  入力インタフェース部
１０２  コマンド分離部
１０３  データ切り替え部
１０４  印刷制御部
１０５  制御部
１０６  メインメモリ
１２０  印刷部
１３０  ストレージ
２００  通信路
３００  ホストＰＣ
１００'  プリンタ
１０５'  制御部
１０７'  タイマー
【図１】
2011224920.tif 000003
【図２】
2011224920.tif 000004
【図３】
2011224920.tif 000005
【図４】
2011224920.tif 000006
【図５】
2011224920.tif 000007
【図６】
2011224920.tif 000008
【図７】
2011224920.tif 000009
【図８】
2011224920.tif 000010
【図９】
2011224920.tif 000011
【図１０】
2011224920.tif 000012
【図１１】
2011224920.tif 000013
【図１２】
2011224920.tif 000014
【図１３】
2011224920.tif 000015
【図１４】
2011224920.tif 000016
【図１５】
2011224920.tif 000017
【図１６】
2011224920.tif 000018
【図１７】
2011224920.tif 000019