(57)【要約】【課題】ＣＰＵが全ての入力データを読まないで済む構成として処理の高速化を図ることのできる画像処理装置等を提供すると共に、そのための入力データの効率的な読み出し方法を提供する。【解決手段】制御用のコマンドと画像データを含む入力データを処理して画像作成用の出力データを生成する画像処理装置が、画像データに所定の画像処理を施して出力データを生成する画像データ処理手段と、コマンドを解釈して画像データ処理手段を制御する制御手段と、入力データを格納し、格納した入力データを順番に読み出して画像データ処理手段あるいは制御手段に転送するデータ格納手段であって、読み出すデータがコマンドである場合には、制御手段に転送し、読み出すデータがコマンドでなくなった時点で画像データ処理手段へのデータ転送を可能な状態とし、読み出すデータが画像データである場合には、画像データ処理手段に転送し、読み出すデータが画像データでなくなった時点で制御手段へのデータ転送を可能な状態とするデータ格納手段とを有する。【選択図】  図１
2005193569.tif 000002
【特許請求の範囲】
【請求項１】
制御用のコマンドと画像データを含む入力データを処理して画像作成用の出力データを
生成する画像処理装置であって、
前記画像データを受け取って当該画像データに所定の画像処理を施し、前記出力データを生成する画像データ処理手段と、
前記コマンドを受け取って当該コマンドを解釈し、前記画像データ処理手段を制御する制御手段と、
前記入力データを格納し、格納した入力データを順番に読み出して前記画像データ処理手段あるいは前記制御手段に転送するデータ格納手段であって、前記読み出すデータが前記コマンドである場合には、前記制御手段に転送し、前記読み出すデータがコマンドでなくなった時点で前記画像データ処理手段へのデータ転送を可能な状態とし、前記読み出すデータが前記画像データである場合には、前記画像データ処理手段に転送し、前記読み出すデータが画像データでなくなった時点で前記制御手段へのデータ転送を可能な状態とするデータ格納手段とを有する
ことを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記データ格納手段から前記コマンドを読み出す際に、
前記読み出すデータがコマンドでなくなる位置が判明するまで、読み出しの後に読み出す位置が変わらない第一の読み方と、読み出しの後に読み出す位置が次に移動する第二の読み方とを交互に用いて読み出し、
前記コマンドでなくなる位置が判明した後は、前記第二の読み方で読み出す
ことを特徴とする画像処理装置。
【請求項３】
請求項１あるいは請求項２において、
前記データ格納手段から前記画像データを読み出す際に、
前記読み出すデータが画像データでなくなる時点が、前記コマンドに含まれる画像データのサイズに関する情報、あるいは前記画像データ処理手段から発せられる終了信号に基づいて判断される
ことを特徴とする画像処理装置。
【請求項４】
請求項３において、
前記画像データ処理手段からの終了信号が、
前記データ格納手段に格納されている画像データが圧縮されている場合には、前記コマンドに含まれる画像データの解凍後のサイズに基づいて発せられる
ことを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置と、前記出力データに基づいて印刷を実行する印刷機構とを有するプリンタ。
【請求項６】
制御用のコマンドと画像データを含む入力データを格納するデータ格納手段と、前記画像データを受け取って当該画像データに所定の画像処理を施し、画像作成用の出力データを生成する画像データ処理手段と、前記コマンドを受け取って当該コマンドを解釈し、前記画像データ処理手段を制御する制御手段とを備える画像処理装置における前記データ格納手段からの格納データの読み出し方法であって、
格納した入力データを順番に読み出して前記画像データ処理手段あるいは前記制御手段に転送する際に、
前記読み出すデータが前記コマンドである場合には、前記制御手段に転送し、前記読み出すデータがコマンドでなくなった時点で前記画像データ処理手段へのデータ転送を可能な状態とし、
前記読み出すデータが前記画像データである場合には、前記画像データ処理手段に転送し、前記読み出すデータが画像データでなくなった時点で前記制御手段へのデータ転送を可能な状態とする
ことを特徴とする格納データの読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データを画像作成用の出力データに変換する画像処理装置等に関し、特に、処理の高速化を図ることのできる画像処理装置等に関する。
【背景技術】
【０００２】
通常、プリンタなどが有する画像処理装置では、ホストコンピュータなどから送信されるデータを入力データとして受信し、その入力データに対して所定の画像処理を施して画像作成用の出力データを生成する。プリンタなどでは、その出力データをプリンタが有する印刷機構に引渡し、印刷機構では当該出力データに従った印刷媒体への印刷が実行される。
【０００３】
また、上記入力データは、一般に、作成する画像そのものを表す画像データと画像処理を制御するためのコマンドとから構成されており、画像処理装置に受信された後、一旦、受信バッファなどに格納される。その後、格納された入力データは、画像処理装置に備えられているＣＰＵにより適宜読み出されて画像処理が実行されるが、従来の画像処理装置においては、上記ＣＰＵが、画像データを含めて全ての入力データを読んで処理を行っていた。このような画像処理装置としては、例えば、下記特許文献１に記載の装置などがある。
【特許文献１】特開平１１−７０７０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年、上記プリンタにおいては、印刷機構側の処理スピードが高速化しており、印刷機構に出力データを供給する画像処理装置側の処理が間に合わない傾向にある。このように、画像処理装置における処理の高速化が望まれるが、従来のように、全ての入力データについてＣＰＵが読み出して処理する手法では限界があった。
【０００５】
そこで、本発明の目的は、ＣＰＵが全ての入力データを読まないで済む構成として処理の高速化を図ることのできる画像処理装置等を提供すると共に、そのための入力データの効率的な読み出し方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明の一つの側面は、制御用のコマンドと画像データ
を含む入力データを処理して画像作成用の出力データを生成する画像処理装置が、前記画像データを受け取って当該画像データに所定の画像処理を施し、前記出力データを生成する画像データ処理手段と、前記コマンドを受け取って当該コマンドを解釈し、前記画像データ処理手段を制御する制御手段と、前記入力データを格納し、格納した入力データを順番に読み出して前記画像データ処理手段あるいは前記制御手段に転送するデータ格納手段であって、前記読み出すデータが前記コマンドである場合には、前記制御手段に転送し、前記読み出すデータがコマンドでなくなった時点で前記画像データ処理手段へのデータ転送を可能な状態とし、前記読み出すデータが前記画像データである場合には、前記画像データ処理手段に転送し、前記読み出すデータが画像データでなくなった時点で前記制御手段へのデータ転送を可能な状態とするデータ格納手段とを有することである。従って、本発明によれば、入力データに含まれるコマンドと画像データを分配して、それぞれ、制御手段と画像データ処理手段に正しく転送することができ、制御手段で入力データの全てを読まなくても良い画像処理装置とすることが可能となる。これにより、画像処理装置における処理スピードの高速化を図ることができる。
【０００７】
更に、上記の発明において、その好ましい態様は、前記データ格納手段から前記コマンドを読み出す際に、前記読み出すデータがコマンドでなくなる位置が判明するまで、読み出しの後に読み出す位置が変わらない第一の読み方と、読み出しの後に読み出す位置が次に移動する第二の読み方とを交互に用いて読み出し、前記コマンドでなくなる位置が判明した後は、前記第二の読み方で読み出すことを特徴とする。これにより、画像データを抜けなく画像データ処理手段に転送することができる。
【０００８】
更に、上記の発明において、好ましい態様は、前記データ格納手段から前記画像データを読み出す際に、前記読み出すデータが画像データでなくなる時点が、前記コマンドに含まれる画像データのサイズに関する情報、あるいは前記画像データ処理手段から発せられる終了信号に基づいて判断されることを特徴とする。これにより、画像データの画像データ処理手段への転送が正しく行なわれると共に、コマンドを抜けなく制御手段に転送することが可能となる。
【０００９】
更にまた、上記の発明において、別の態様は、前記画像データ処理手段からの終了信号が、前記データ格納手段に格納されている画像データが圧縮されている場合には、前記コマンドに含まれる画像データの解凍後のサイズに基づいて発せられることを特徴とする。
【００１０】
上記の目的を達成するために、本発明の別の側面は、プリンタが請求項１に記載の画像処理装置と前記出力データに基づいて印刷を実行する印刷機構とを有することである。
【００１１】
上記の目的を達成するために、本発明の更に別の側面は、制御用のコマンドと画像データを含む入力データを格納するデータ格納手段と、前記画像データを受け取って当該画像データに所定の画像処理を施し、画像作成用の出力データを生成する画像データ処理手段と、前記コマンドを受け取って当該コマンドを解釈し、前記画像データ処理手段を制御する制御手段とを備える画像処理装置における前記データ格納手段からの格納データの読み出し方法が、格納した入力データを順番に読み出して前記画像データ処理手段あるいは前記制御手段に転送する際に、前記読み出すデータが前記コマンドである場合には、前記制御手段に転送し、前記読み出すデータがコマンドでなくなった時点で前記画像データ処理手段へのデータ転送を可能な状態とし、前記読み出すデータが前記画像データである場合には、前記画像データ処理手段に転送し、前記読み出すデータが画像データでなくなった時点で前記制御手段へのデータ転送を可能な状態とすることを特徴とすることである。
【００１２】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１４】
図１は、本発明を適用したプリンタの実施の形態例に係る構成図である。図１に示す本実施の形態例に係るプリンタ１は、従来のプリンタと同様に、ホストコンピュータ２から送信される印刷データを受信して、当該印刷データに基づいて印刷媒体に対する印刷を実行するが、受信した印刷データ、即ち、入力データの格納後の読み出し方法等に特徴を有しており、入力データに対する画像処理を高速に行おうとするものである。
【００１５】
図１に示すように、本プリンタ１は、Ｉ／Ｆユニット１０、コントローラ（データ格納手段）２０、ＦＩＦＯメモリ（データ格納手段）３０、ＣＰＵ（制御手段）４０、画像データ処理部（画像データ処理手段）５０、メモリ６０、及びエンジン７０等から構成されている。なお、プリンタ１の前記Ｉ／Ｆユニット１０からメモリ６０までが本発明を適用した画像処理装置に相当する部分であり、プリンタ１は、当該画像処理装置とエンジン７０から構成されるということができる。
【００１６】
まず、Ｉ／Ｆユニット１０は、ホストコンピュータ２とのインタフェースを司る部分であり、ホストコンピュータ２から送信される印刷データを受信し、受信した印刷データをＦＩＦＯメモリ３０に引き渡す。なお、前記受信する印刷データには、前述の通り、画像そのものを表す画像データと画像処理を制御するためのコマンドが含まれており、以降、受信した印刷データを入力データとも呼ぶ。
【００１７】
また、コントローラ２０は、前記入力データのパスを制御する部分である。即ち、Ｉ／Ｆユニット１０が受信した印刷データのＦＩＦＯメモリ３０への読み込み、及びその後のＦＩＦＯメモリ３０からのＣＰＵ４０又は画像データ処理部５０への読み出しの制御を行なう。具体的な制御内容については後述するが、コントローラ２０には、図１に示すように、レジスタ２１及びカウンタ２２が備えられ、これらは上記ＦＩＦＯメモリ３０からのデータの読み出しに用いられる。
【００１８】
次に、ＦＩＦＯメモリ３０は、前記入力データを一時的に格納するメモリである。このメモリはＦＩＦＯ方式であるので、先に受け入れたデータから順番に外へ出していくが、本実施の形態例においては、そのデータの出力先がＣＰＵ４０と画像データ処理部５０の二つとなっている。本実施の形態例に係るプリンタ１は、このＦＩＦＯメモリ３０からのデータの読み出し方に主な特徴を有している。
【００１９】
また、ＣＰＵ４０は、前記入力データに含まれるコマンドを解釈しそれらの内容に基づき、本プリンタ１の各所を制御する部分である。上記特徴部分であるデータの読み出しについては、画像データの圧縮形式やデータ数の情報をコマンドから把握し、前記コントローラ２０内のレジスタ２１及びカウンタ２２に適切な値を設定する。なお、ＦＩＦＯメモリ３０からＣＰＵ４０へのデータ読み出し（データ転送）についての詳細は後述する。
【００２０】
次に、画像データ処理部５０は、前記入力データに含まれる画像データに適宜画像処理を施し、本プリンタ１における印刷機構であるエンジン７０用のデータを生成する部分である。実行する画像処理は入力データの内容によって相異するが、画像データ処理部５０には、本プリンタ１が対応可能な入力データに必要な各処理を行う各処理ユニットが備えられている。図１に示す例では、圧縮されている入力データを解凍する３つのデコーダＡ、Ｂ、及びＣ（５２〜５４）、それらのデコーダに画像データを振り分けるセレクタ５１、及びハーフトーン処理ユニット５５等が備えられている。
【００２１】
セレクタ５１は、ＦＩＦＯメモリ３０から読み出されて転送された画像データを、レジスタ２１の設定に従って所定のデコーダへ転送する機能を司る。前記３つのデコーダ５２、５３、及び５４は、画像データの各圧縮形式に対応するデコーダであり、ここでは、３種類の圧縮形式に対応可能であるが、デコーダの数は必要に応じ変更して構わない。前記デコーダで解凍された画像データは、メモリ６０に格納される。解凍後の画像データに、更に、ハーフトーン処理などが必要な場合には、前記ハーフトーン処理ユニット５５にデータが引き渡されて、色変換処理、ハーフトーン処理等、所定の処理が実行される。処理後のデータは、再びメモリ６０に格納される。画像データ処理部５０では、このような処理が実行されて、最終的にエンジン７０用の出力データがメモリ６０に蓄えられる。
【００２２】
メモリ６０は、上述の通り、エンジン７０へ出力するデータ及び処理過程のデータを格納する部分である。エンジン７０は、本プリンタ１の印刷機構部分であり、前記メモリ６０から所定のタイミングで前記出力データを読み出し、それらのデータに従って印刷媒体への印刷を実行する。
【００２３】
図２は、本プリンタ１におけるＦＩＦＯメモリ３０からの入力データの読み出し処理を例示したフローチャートである。以下、図２に基づいて、ＦＩＦＯメモリ３０からのデータ読み出し処理について説明する。前述の通り、Ｉ／Ｆユニット１０を介して格納される入力データにはコマンドと画像データが含まれており、その両方がＦＩＦＯメモリ３０に格納されるが、本プリンタ１においては、その全てをＣＰＵ４０に読み出す（転送する）ということはせず、コマンドはＣＰＵ４０に転送し、画像データは画像データ処理部５０に転送するという処理を行う。従って、本プリンタ１においては、ＦＩＦＯメモリ３０に格納した入力データをその内容により２方向に振り分けて転送する。
【００２４】
また、ホストコンピュータ２から送信される印刷データ（入力データ）は、通常、画像データの前にその画像データの属性等を示すコマンドが付いている構造をしている。図４は、ホストコンピュータ２から送信される印刷データの構造を例示した図である。図４の（ａ）は、画像データがＪＰＥＧ形式で圧縮されている場合の例であり、図４の（ｂ）は、ランレングス（ＲＬ）形式で圧縮されている場合の例である。
【００２５】
図に示すように、ＪＰＥＧ形式の場合には、印刷媒体１枚分の画像データ毎にコマンドが付いているとは限らず、コマンドの後に複数枚分の画像データが連続する場合がある。また、ＪＰＥＧの場合には、画像データはＲＧＢの色形式によって表現されたデータであり、プリンタ１の画像データ処理部５０において、例えば、ＣＭＹＫの色形式への色変換処理やハーフトーン処理を行う必要がある。
【００２６】
また、ＲＬ方式の場合には、通常、各色成分毎にコマンドとその画像データが対となっている構造であり、図４の（ｂ）に示す例では、プリンタ１で使用するＣＭＹＫの色形式による画像データが、各色毎にコマンドを付随している。そして、ＣＭＹＫの４対のデータで印刷媒体１枚分のデータが構成されている。
【００２７】
以上説明したような印刷データ（入力データ）が、ＦＩＦＯメモリ３０に格納されるものとして、以下、データ読み出し処理の内容を説明する。まず、Ｉ／Ｆユニット１０が印刷データを受信すると、その旨がコントローラ２０に知らされ、受信した入力データが順次ＦＩＦＯメモリ３０に格納される。入力データがＦＩＦＯメモリ３０に格納されると（図２のステップＳ１０のＹｅｓ）、ＦＩＦＯメモリ３０からのデータ読み出し処理が開始される。
【００２８】
まず、ＦＩＦＯメモリ３０からのデータの出力（転送）先がＣＰＵ４０側へ切り替えられる（図２のステップＳ２０）。これにより、ＦＩＦＯメモリ３０からＣＰＵ４０へのデータ転送が可能な状態となる。その後、ＦＩＦＯメモリ３０に格納されている最初のデータ、即ち、最初に格納されたデータから読み出しが開始される。そして、格納された入力データがコマンドでなくなるまで、順次、ＦＩＦＯメモリ３０からのデータ読み出し（リード）及び読み出したデータのＣＰＵ４０への転送が繰り返し行われる（図２のステップＳ３０）。換言すれば、格納された入力データのコマンド部分が終了するまで、データ読み出しとＣＰＵ４０への転送が行なわれる。なお、当該コマンドの読み出し処理（図２のステップＳ３０）の具体的な内容については後述する。
【００２９】
次に、ＦＩＦＯメモリ３０からのデータの出力（転送）先が画像データ処理部５０側へ切り替えら、ＦＩＦＯメモリ３０から画像データ処理部５０へのデータ転送が可能な状態となる（図２のステップＳ４０）。なお、ＦＩＦＯメモリ３０にＩ／Ｆユニット１０からの入力データが格納された時点で（図２のステップＳ１０のＹｅｓ）、最初のデータがコマンドではなく画像データであった場合には、上記コマンドのＣＰＵ４０への転送処理は行われず、当該切り替え処理（図２のステップＳ４０）が行われる。
【００３０】
その後、ＦＩＦＯメモリ３０に格納されている画像データの読み出しと読み出した画像データの画像データ処理部５０（セレクタ５１）への転送が、画像データが終了するまで繰り返し行われる（図２のステップＳ５０）。ここで、画像データが終了するという判断については図６に基づいて後述するが、例えば、図４に示した入力データがＦＩＦＯメモリ３０に格納されている場合には、図に示すデータの上部から読み出されたとすると図のイやロに示す位置が、画像データが終了する位置である。
【００３１】
かかる画像データ処理部５０への画像データの転送が終了すると、次に、再びＦＩＦＯメモリ３０からのデータの出力（転送）先がＣＰＵ４０側へ切り替えられ、ＦＩＦＯメモリ３０からＣＰＵ４０へのデータ転送が可能な状態となる（図２のステップＳ６０）。その後、ＦＩＦＯメモリ３０にデータが格納されているか否かが判断される（図２のステップＳ７０）。即ち、Ｉ／Ｆユニット１０を介して受け取った入力データのうち前記読み出し及び転送が行なわれていないデータが残っているか否かが判断される。
【００３２】
ここで、ＦＩＦＯメモリ３０にデータが残っていれば（図２のステップＳ７０のＹｅｓ）、前記ステップＳ３０からの処理が繰り返し実行される（図２のステップＳ３０〜Ｓ７０）。例えば、図４の（ａ）に示す入力データが格納され図のイに示す位置までデータの読み出し及び転送が終了しているとすると、ステップＳ３０において、格納されているデータが画像データであるためコマンドの読み出し及び転送は行なわれずに、直ぐに出力先の切り替え（ステップＳ４０）が行なわれることとなる。一方、図４の（ｂ）に示す入力データが格納され図のロに示す位置までデータの読み出し及び転送が終了している場合には、前述の通り、コマンドの読み出し及び転送と、画像データの読み出し及び転送が順番に行なわれることとなる。
【００３３】
また、前記ステップＳ７０において、ＦＩＦＯメモリ３０にデータが残っていないと判断された場合には（図２のステップＳ７０のＮｏ）、一連のデータ読み出し処理を終了し、ＦＩＦＯメモリ３０に次の入力データが格納されるのを待つ。
【００３４】
以上説明したようにＦＩＦＯメモリ３０に格納された入力データの読み出し及び転送が実行されるが、本実施の形態例においては、前述した図２のステップＳ３０におけるコマンドの読み出し方法と、ステップＳ５０における画像データの読み出し終了方法に特徴を有しており、以下、それらの詳細について説明する。
【００３５】
通常、ＦＩＦＯメモリからデータを読み出す場合には、次に読み出す位置を示すポインタが設けられ、そのポインタがデータを読み出す毎に次の位置へ移動するという方法が取られる。かかる方法を図２のステップＳ３０における読み出し時に用いた場合、始めに読むデータがコマンドであるか、あるいは画像データであるかがわからないため、とりあえずデータの転送先をＣＰＵ４０側にした状態でデータを読むこととなる。このとき、最初のデータが画像データであった場合には、その画像データが読み出されるが、本来転送すべき画像データ処理部５０へ転送できず、さらに、一度読み出しているのでポインタの位置は当該画像データの次の位置へ移動してしまう。従って、その後転送先を画像データ処理部５０側へ切り替えても当該画像データは画像データ処理部５０に転送できない。このような問題を解決するために、本実施の形態例においては、２種類のデータの読み出し方を設けている。
【００３６】
その一つは、データを読み出してもポインタの位置を移動させない読み出し方であり、これを、以下、リード（１）と称することとする。もう一つは、上記通常の読み出し方の通り、データの読み出し後ポインタの位置を次のデータに移動させる方法である。これを、以下、リード（２）と称することとする。これらリード（１）及びリード（２）を用いた図２のステップＳ３０における処理内容を以下に説明する。
【００３７】
図３は、図２のステップＳ３０における処理内容を例示したフローチャートである。また、図５は、その処理内容を説明するための図である。まず、ＣＰＵ４０が前記リード（１）でＦＩＦＯメモリ３０をリードする（図３のステップＳ３１）。図５の（ａ）は、ＦＩＦＯメモリ３０に格納されている入力データを概念的に示したものであり、上のデータから順番に読み出されるものとする。また、図のＰで示す矢印が前記次の読み出し位置を示すポインタである。この図の（ａ）に示す状態から上記ステップＳ３１のリードが行なわれると、図５の（ｂ）あるいは（ｃ）の状態となる。
【００３８】
次に、読んだデータがコマンドであるか否かを判断し（図３のステップＳ３２）、コマンドでない場合には（図３のステップＳ３２のＮｏ）、前記ステップＳ３０の処理を終了し、処理が図２のステップＳ４０に移行する。図５に示す例では、図の（ｂ）に示す場合であり、この状態でＦＩＦＯメモリ３０からの転送先が画像データ処理部５０側に切り替えられ、画像データが画像データ処理部５０に転送されることとなる。ステップＳ３１において前述のようにリード（１）で読んでいるため、ポインタＰの位置が移動しておらず、これにより、画像データを始めから抜かすことなく画像データ処理部５０に転送することができる。
【００３９】
一方、ステップＳ３２において、読んだデータがコマンドである場合には（図３のステップＳ３２のＹｅｓ）、コマンドの長さが判明したか否かがチェックされる（図３のステップＳ３３）。なお、コマンドの長さが判明するということは、現在読み出しているコマンドのデータがＦＩＦＯメモリ３０においてどこまで続いて格納されているかということがわかるということである。ここで、コマンドの長さが判明すれば（図３のステップＳ３３のＹｅｓ）、ＣＰＵ４０が前記リード（２）でＦＩＦＯメモリ３０をリードする（図３のステップＳ３４）。図５に示す例では、図の（ｃ）の状態においてコマンドの長さが判明し、ステップＳ３４の処理が行われて、図の（ｄ）に示す状態となる。ここでは、リード（２）が行なわれているので、ポインタＰの位置が進んでいる。
【００４０】
次に、コマンドの読み出しが終了したか否か、言い換えれば、コマンドのＣＰＵ４０への転送が終了したか否かが判断される（図３のステップＳ３５）。即ち、次に読み出すデータが画像データであるか否かが判断される。前述の通り、この時点ではコマンドの長さが判明しているのでかかる判断が可能となる。コマンドの読み出しが終了していない場合には（図３のステップＳ３５のＮｏ）、コマンドの読み出しが終了するまで、ステップＳ３４の処理が繰り返し行われる。即ち、リード（２）で、最後のコマンドの読み出しまで行なわれる。
【００４１】
そして、コマンドの読み出しが終了すると（図３のステップＳ３５のＹｅｓ）、前記ステップＳ３０の処理を終了し、処理が図２のステップＳ４０に移行する。図５に示す例では、図の（ｄ）の状態において、コマンドの読み出しが終了していないので、ステップＳ３４に従って再度リード（２）が行なわれることとなる。その結果、図５の（ｅ）に示すような状態となり、この時点でコマンドの読み出しが終了しているので、処理がステップＳ４０に移行し、画像データの画像データ処理部５０への転送が開始される。図からも明らかなように、この時点でポインタＰは、最初の画像データの位置にあり、画像データを抜けなく画像データ処理部５０へ転送することが可能となる。
【００４２】
一方、前記ステップＳ３３において、コマンドの長さが判明しなければ（図３のステップＳ３３のＮｏ）、ＣＰＵ４０がリード（２）でＦＩＦＯメモリ３０をリードする（図３のステップＳ３６）。その後、前述したステップＳ３１からの処理を行う。即ち、コマンド長さが判明するまで、リード（１）とリード（２）が交互に繰り返される読み方が行なわれる。図５に示す例では、図の（ｃ）の時点で、コマンドの長さが判明しなければ、ステップＳ３６に従ってリード（２）が行なわれて図の（ｄ）の状態となる。その後、ステップＳ３１に従ってリード（１）が行なわれ、ポインタＰの位置が移動しないまま図の（ｆ）の状態となる。ここで、ポインタＰが指しているコマンドによりコマンド長さが判明すれば、この場合にはこのデータでコマンドが終了することがわかれば、ステップＳ３４に従ってリード（２）が行なわれて、図の（ｇ）の状態となる。そして、コマンド転送が終了しているので、図の（ｇ）のポインタＰが指す画像データから画像データ処理部５０に転送される。
【００４３】
このように、本実施の形態例においては、ＦＩＦＯメモリ３０からデータを読み出す際に、前記リード（１）及びリード（２）を用いた前述のような読み出し方をするので、コマンドと画像データの２種類のデータを、それぞれ所定の方向へ、データを抜かすことなく正しく転送することが可能となる。
【００４４】
次に、図２のステップＳ５０における画像データの読み出し終了方法について説明する。図６は、図２のステップＳ５０における処理内容を例示したフローチャートである。まず、図２のステップＳ４０が終了した時点で、コマンドのＣＰＵ４０への転送が終了しているので、ＣＰＵ４０はこのコマンドの内容から、これから画像データ処理部５０に転送される画像データの属性を把握している。通常、かかる属性には、画像データの圧縮形式やデータの大きさの情報等が含まれている。
【００４５】
ここで、ＦＩＦＯメモリ３０に格納されている画像データが圧縮されているデータであれば、ＣＰＵ４０は、把握した圧縮形式をコントローラ２０のレジスタ２１に設定すると共に、格納されておる画像データの数（大きさ）である圧縮データ数が転送されたコマンドに有れば（図６のステップＳ５１のＹｅｓ）、その値をカウンタ２２に設定する（図６のステップＳ５２）。例えば、圧縮形式がＪＰＥＧ形式であれば、通常、コマンド内に上記圧縮データ数が有るので、その数がカウンタ２２に設定される。
【００４６】
次に、ＦＩＦＯメモリ３０からのデータ転送先が画像データ処理部５０側になっているので、ＦＩＦＯメモリ３０のリード及びデータ転送が順次行なわれるれ、前記カウンタ２２に設定された値の回数だけ上記リード及びデータ転送を行なった時点で読み出しを終了する（図６のステップＳ５３）。そして、ＦＩＦＯメモリ３０からのデータ転送先がＣＰＵ４０側に切り替えられる（Ｓ６０）。
【００４７】
一方、ＣＰＵ４０に転送されたコマンド内に前記圧縮データ数がない場合には（図６のステップＳ５１のＮｏ）、コントローラ２０のカウンタ２２には無限大のデータ数が設定される（図６のステップＳ５４）。例えば、圧縮形式がＲＬ形式であれば、通常、コマンド内に解凍後（復元後）のデータサイズは含まれているが、上記圧縮データ数が無いので、カウンタ２２に無限大が設定される。
【００４８】
その後、ＦＩＦＯメモリ３０のリード及びデータ転送が順次行なわれ、画像データ処理部５０から転送を終了させるための信号であるＥＮＤ信号（終了信号）が発せられてコントローラ２０がその信号を受信した時点で上記リード及びデータ転送を終了する（図６のステップＳ５５）。このＥＮＤ信号は、例えば、上述のように解凍後のデータサイズがコマンドによりわかっている場合には、その値がデコーダ側に渡され、デコーダが解凍処理を行った結果のデータサイズが前記データサイズに達した時点で、デコーダがＥＮＤ信号を発信する。
【００４９】
前記画像データ処理部５０へのデータ転送が終了すると、ＦＩＦＯメモリ３０からのデータ転送先がＣＰＵ４０側に切り替えられる（Ｓ６０）。
【００５０】
このように、本実施の形態例においては、画像データ処理部５０側に転送すべき画像データのサイズを正しく把握してＦＩＦＯメモリ３０に格納される最後の画像データの読み出しを行なった時点で画像データの読み出し処理を終了するので、誤ってコマンドを画像データ処理部５０側へ転送してしまうことがなく、また、画像データの次に格納されているであろうコマンドを抜けなくＣＰＵ４０側へ転送することが可能となる。なお、この画像データの読み出しには、通常の読み出し方である前述したリード（２）の方法が用いられる。また、ＦＩＦＯメモリ３０に格納されている画像データが圧縮されていない場合には、通常、その画像データのサイズがコマンド内に含まれているので、その値がカウンタ２２に設定されて、前述した図６のステップＳ５２及びＳ５３と同様の方法で、画像データの転送が行なわれる。
【００５１】
以上説明したように、本実施の形態例に係るプリンタ１では、入力データの全てをＣＰＵ４０が読み出すのではなく、入力データのコマンドはＣＰＵ４０に読み出し、画像データは画像データ処理部５０に読み出して、コマンドと画像データを別々に処理する。従って、入力データに対する処理を従来よりも高速に行なうことが可能となる。また、それを実現するために、ＦＩＦＯメモリ３０に格納された入力データを２方向に振り分けて転送する必要があるが、言い換えれば、コマンドと画像データを識別してコマンドはＣＰＵ４０側へ画像データは画像データ処理部５０側へ転送する必要があるが、前述したリード（１）とリード（２）を用いた読み出し方法を採用すると共に、前述した画像データの読み出し終了方法を用いることにより、間違えなく上記データの転送を行うことができる。
【００５２】
なお、本実施の形態例においては、画像データ処理部５０内に３種類のデコーダを設ける構成としたが、圧縮データを扱わない場合にはデコーダを備えなくてもよく、画像データ処理部５０には入力データに適した処理ユニットが備えられればよい。また、本プリンタ１では、図１においてＦＩＦＯメモリ３０を一つのメモリとして描いているが、ＦＩＦＯメモリ３０を複数のメモリによって構成しても構わない。
【００５３】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００５４】
【図１】本発明を適用したプリンタの実施の形態例に係る構成図である。
【図２】ＦＩＦＯメモリ３０からのデータ読み出し処理を示したフローチャートである。
【図３】図２のステップＳ３０における処理内容を例示したフローチャートである。
【図４】ホストコンピュータ２から送信される印刷データの構造を例示した図である。
【図５】コマンドの読み出し処理を説明するための図である。
【図６】図２のステップＳ５０における処理内容を例示したフローチャートである。
【符号の説明】
【００５５】
１  プリンタ、  ２  ホストコンピュータ、  １０  Ｉ／Ｆユニット、  ２０  コントローラ（データ格納手段）、  ２１  レジスタ、  ２２  カウンタ、  ３０  ＦＩＦＯメモリ（データ格納手段）、  ４０  ＣＰＵ（制御手段）、  ５０  画像データ処理部（画像データ処理手段）、  ５１  セレクタ、  ５２  デコーダＡ、  ５３  デコーダＢ、  ５４  デコーダＣ、  ５５  ハーフトーン処理ユニット、  ６０  メモリ、  ７０  エンジン
【図１】
2005193569.tif 000003
【図２】
2005193569.tif 000004
【図３】
2005193569.tif 000005
【図４】
2005193569.tif 000006
【図５】
2005193569.tif 000007
【図６】
2005193569.tif 000008