(57)【要約】【課題】限られたメモリリソースの有効利用を図りつつ、確実かつ迅速にコマンド解析処理を行う。【解決手段】ホストコンピュータ１１より受信した印刷制御コマンドをワークメモリ３６上に展開して、解析し、印刷を行うに際し、受信した印刷制御コマンドの種類を判別し、予め記憶した印刷制御コマンドの種類と、メモリ上に確保すべきコマンド解析処理用メモリ領域の容量との対応関係に基づいて、印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用領域３６Ａをワークメモリ３６上に確保する。【選択図】図３
2010089332.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置であって、
前記受信した印刷制御コマンドの種類を判別するコマンド種類判別部と、
前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部と、
前記確保容量記憶部を参照し、前記コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保部と、
を備えたことを特徴とする印刷装置。
【請求項２】
請求項１記載の印刷装置において、
前記印刷制御コマンドの種類におけるコマンド解析処理用メモリ領域の確保履歴に基づいて前記確保容量記憶部に記憶した当該印刷制御コマンドに対応する前記容量を更新することを特徴とする印刷装置。
【請求項３】
請求項１または請求項２記載の印刷装置において、
前記ホスト装置から受信したデータを一時的格納するバッファ部を備え、
前記コマンド種類判別部は、前記バッファ部から前記印刷制御コマンドのヘッダ部を読み出し、前記ヘッダ部に含まれる印刷制御コマンドの種類に関連する情報に基づいて前記印刷制御コマンドの種類を判別することを特徴とする印刷装置。
【請求項４】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置を制御するための印刷装置の制御方法であって、
前記印刷装置は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備え、
前記受信した印刷制御コマンドの種類を判別するコマンド種類判別過程と、
前記確保容量記憶部を参照し、前記コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保過程と、
を備えたことを特徴とする印刷装置の制御方法。
【請求項５】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行うとともに、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備えた印刷装置をコンピュータにより制御するための制御プログラムであって、
前記受信した印刷制御コマンドの種類を判別させる処理と、
前記確保容量記憶部を参照させ、前記判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保させる処理と、
を前記コンピュータに実現させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、印刷装置の制御方法および制御プログラムに係り、特に印刷制御コマンド（プリンタコントロール言語）を解析して動作する印刷装置、印刷装置の制御方法および制御プログラムに関する。
【背景技術】
【０００２】
従来、ホストコンピュータにプリンタを直接あるいは通信ネットワークを介して接続する印刷システムが知られている。
ところで、この様な印刷システムを構成する場合に、プリンタに接続されるホストコンピュータには様々な仕様のものが存在し、その印刷情報を処理する印刷制御コマンド、ひいては、制御コマンド体系が異なる場合がある。
【０００３】
このような状況に対応するため、従来のプリンタにおいては、複数の制御コマンド体系に容易に対応するため、制御コマンド体系毎に印刷制御コマンドを解析するエミュレーション機能を切り替える構成を採っていた（例えば、特許文献１参照）。
このようなプリンタにおいて、印刷制御コマンドを解析するためには、パラメータあるいは実データを一括してコマンド解析用のワーキングメモリ内に確保しておいて、逐次解析を進めるのが効率的である。
【特許文献１】特開２０００−２９６４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、印刷制御コマンドの種類には様々なものが存在し、印刷制御コマンドの種類によって含まれるパラメータや実データの容量が大きく異なっていた。
したがって、コマンド解析用のワーキングメモリを固定容量（例えば、６４バイト）とした場合には、容量を超える実データが制御コマンドに含まれる場合には、ワーキングメモリの確保回数が増加し、メモリ確保処理の比率が高くなってシステム全体の動作が遅くなってしまうという問題点があった。
また、コマンド解析用のワーキングメモリを、想定される最大容量とした場合には、コマンド解析以外の処理に割り当てられるメモリ領域により確保可能なメモリ容量が、コマンド解析用のワーキングメモリの容量未満となってしまった場合には、コマンド解析処理自体を行うことができない状況となり、システム全体の動作遅延を招くという問題点があった。
そこで本発明の目的は、限られたメモリリソースの有効利用を図りつつ、確実かつ迅速にコマンド解析処理を行うことが可能な印刷装置、印刷装置の制御方法および制御プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明の第１態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置であって、前記受信した印刷制御コマンドの種類を判別するコマンド種類判別部と、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部と、前記確保容量記憶部を参照し、前記コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保部と、を備えたことを特徴としている。
上記構成によれば、コマンド種類判別部は、受信した印刷制御コマンドの種類を判別する。
確保容量記憶部は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する。
これらにより領域確保部は、確保容量記憶部を参照し、コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保する。
したがって、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域をメモリ上に確保できる。
【０００６】
本発明の第２態様は、第１の態様において、前記印刷制御コマンドの種類におけるコマンド解析処理用メモリ領域の確保履歴に基づいて前記確保容量記憶部に記憶した当該印刷制御コマンドに対応する前記容量を更新することを特徴としている。
上記構成によれば、確保履歴に基づいて確保容量記憶部に記憶した当該印刷制御コマンドに対応する容量を更新するので、印刷制御コマンドの種類に応じてメモリ上に確保されるコマンド解析用メモリ領域の容量は、印刷処理を行うだけで徐々に最適化される。
【０００７】
本発明の第３態様は、第１態様または第２態様において、前記ホスト装置から受信したデータを一時的格納するバッファ部を備え、前記コマンド種類判別部は、前記バッファ部から前記印刷制御コマンドのヘッダ部を読み出し、前記ヘッダ部に含まれる印刷制御コマンドの種類に関連する情報に基づいて前記印刷制御コマンドの種類を判別することを特徴としている。
上記構成によれば、印刷制御コマンドをメモリ上に展開するに先立って、ヘッダ部を読み出すだけであるので、迅速、確実に必要なコマンド解析用メモリ領域の容量を把握することができる。
【０００８】
本発明の第４態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置を制御するための印刷装置の制御方法であって、前記印刷装置は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備え、前記受信した印刷制御コマンドの種類を判別するコマンド種類判別過程と、前記確保容量記憶部を参照し、前記コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保過程と、を備えたことを特徴としている。
上記構成によれば、領域確保過程において、確保容量記憶部を参照し、コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保するので、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域をメモリ上に確保できる。
【０００９】
本発明の第５態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行うとともに、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備えた印刷装置をコンピュータにより制御するための制御プログラムであって、前記受信した印刷制御コマンドの種類を判別させる処理と、前記確保容量記憶部を参照させ、前記判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保させる処理と、を前記コンピュータに実現させることを特徴としている。
上記構成によれば、確保容量記憶部を参照するとともに、判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保するので、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域を確保できる。
【発明の効果】
【００１０】
本発明によれば、印刷制御コマンド解析に際し、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域を確保するので、メモリ確保処理回数を低減するとともに、迅速にコマンド解析を行うことができる。
【発明を実施するための最良の形態】
【００１１】
次に本発明の好適な実施の形態について図面を参照して説明する。
図１は、実施形態の印刷システムの概要構成ブロック図である。
印刷システム１０は、印刷制御コマンドを含む各種印刷データを出力するホストコンピュータ１１（ホスト装置）と、ホストコンピュータ１１に接続ケーブル１２を介して接続され、印刷制御コマンドを解釈して印刷を行うプリンタ１３（印刷装置）と、を備えている。
【００１２】
この場合において、接続ケーブルとしては、ＵＳＢ、ＲＳ−２３２Ｃなどのシリアル通信ケーブルや、セントロニクスインタフェースなどのパラレル通信ケーブルが挙げられる。
【００１３】
図２は、プリンタの概要構成ブロック図である。
プリンタ１３は、プリンタ１３全体を制御するＭＰＵ２１と、ファームウェアを含む制御プログラム等の各種データを記憶するＲＯＭ２２と、各種データを一時的に記憶するワークエリアとして機能するＲＡＭ２３と、実際に印刷を行うプリントエンジン２４と、ＬＥＤ表示部２５を有し、各種情報の表示およびユーザが各種操作を行うための表示操作部２６と、警告音等を生成し出力するブザー部２７と、外部とのデータの送受信を行うインタフェース部２８と、ＭＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、プリントエンジン２４、表示操作部２６、ブザー部２７の相互間を接続するバス２９と、を備えている。
【００１４】
図３は、プリンタの主要部の機能構成ブロック図である。
プリンタ１３は、ホストコンピュータ１１とのデータの送受信を行うインタフェース機能部３１と、インタフェース機能部３１を介して受信したホストコンピュータ１１からの印刷制御コマンドを言語データベース（ＤＢ）３２およびメモリ確保情報データベース（ＤＢ）３３を参照して、後述するワークメモリ３６上にコマンド解析処理用領域３６Ａを確保して印刷制御コマンドを解析するコマンド解析機能部３４と、コマンド解析機能部３４の制御下でプリントエンジン２４、ＬＥＤ表示部２５あるいはブザー部２７の駆動制御を行う駆動制御機能部３５と、一時的に処理対象の各種データを記憶するワークメモリ３６と、を備えている。
【００１５】
インタフェース機能部３１は、例えば、ＵＳＢインタフェース機能、ＲＳ−２３２Ｃインタフェース機能、セントロニクスインタフェース機能を実現するものであるとともに、ホストコンピュータ１１からデータを受信して一時的に格納するバッファ部３１Ａを備えている。
言語データベース（ＤＢ）３２は、予め設定された制御コマンド体系を構成する印刷制御コマンドと、当該印刷制御コマンドを実際に処理させる制御コマンドとを対応付けたデータ（コマンドライブラリ群）を格納するものである。印刷制御コマンドとしては、紙送り動作などのプリンタ１３自体を制御するコントロールコマンドや、ビットマップデータに基づいて画像を展開する描画コマンドや、アウトラインフォントを表示するアウトラインフォントコマンドなどがある。
【００１６】
メモリ確保情報データベース（ＤＢ）３３は、印刷制御コマンドの解析処理において、受信した解析対象の印刷制御コマンドを処理する際に、ワークメモリ３６として機能するＲＡＭ２３に確保するメモリ領域に関する情報を印刷制御コマンドの種類（あるいは印刷制御コマンド）に対応づけたデータを格納するものである。確保するメモリ領域に関する情報としては、ある印刷制御コマンドを受信した場合に、当該印刷制御コマンドを構成するパラメータあるいは実データ（ビットマップデータなど）をワークメモリ３６上に展開する際に必要となるメモリ領域の容量を印刷制御コマンドが属する印刷制御コマンドの種類あるいは印刷制御コマンドに対応づけて記憶している。
【００１７】
また、印刷制御コマンドの種類あるいは印刷制御コマンドに対応づけて過去の複数回（例えば、過去１０回）において、実際に使用されたメモリ領域の容量の履歴を履歴データとして記憶している。この場合に、予め確保したメモリ領域の容量が不足していた場合には、本来確保すべきであった容量を履歴データとして更新しつつ記憶する。この履歴データは、次回に同一の種類に属する印刷制御コマンドあるいは同一の印刷制御コマンドを受信した場合に確保すべきメモリ領域の容量を算出し、更新するために用いられる。具体的な算出方法としては、単純平均値や、新しいものほど重み付けを大きくした平均値、最大値などが用いられる。
【００１８】
コマンド解析機能部３４は、インタフェース機能部３１のバッファ部３１Ａから印刷制御コマンドのヘッダ部を抽出し、当該印刷制御コマンドの種類を判別するコマンド種類判別部３４Ａと、コマンド種類判別部３４Ａの判別結果による印刷制御コマンドの種類に基づいて、メモリ確保情報ＤＢを参照してワークメモリ３６の記憶領域上にコマンド解析処理用領域３６Ａを確保するメモリ領域確保部３４Ｂと、を備えている。上述したように、印刷制御コマンドとしては、コントロールコマンド、描画コマンド、アウトラインフォントコマンドなどがあるが、印刷制御コマンドの種類によってコマンド解析のためにデータを格納するために必要なメモリ容量は大きく異なる（数ｋバイト〜数Ｍバイト）。特に描画コマンドデータの場合、実データは他の印刷制御コマンドと比較して桁違いに大きなメモリ容量を確保することが必要となる。
このため、コマンド解析機能部３４のメモリ領域確保部３４Ｂは、メモリ確保情報ＤＢ３３を参照し、印刷制御コマンドの種類に応じた容量のコマンド解析用メモリ領域をワークメモリ３６上に確保することとなる。
【００１９】
ワークメモリ３６は、実質的にはＲＡＭ２３として構築されており、その記憶領域には、印刷制御コマンドをコマンド解析機能部３４が解析を行うために展開するコマンド解析処理用領域３６Ａと、コマンド解析処理の結果、オブジェクトを作成することが必要となった場合に、オブジェクトのデータを展開するためのオブジェクト作成領域３６Ｂと、コマンド解析結果及び作成したオブジェクトに基づいて１頁分の印刷データを作成するためのページ作成領域３６Ｃと、が動的に確保される。なお、本実施形態では、印刷データを１頁単位で扱っているが、これは、制御コマンド体系の違いを吸収してプリントエンジン２４が扱えるようにするためと、実際のプリンタの装置構成の影響を受けないためである。したがって、プリンタ１３を容易に複数の制御コマンドに対応させることができる。また、上述したプリントエンジン２４は、ページプリンタとして構成されている必要はなく、生成された１ページ単位の印刷データの一部（例えば、行単位、バンド単位、ブロック単位）を読み出して転送することにより、ドットインパクトプリンタ、インクジェットプリンタなどのように走査型の記録ヘッドを有するプリンタとして構成されていても構わない。
【００２０】
次に実施形態の動作について説明する。
図４は、プリンタの処理フローチャートである。
以下の動作は、プリンタ１３のファームウェアをＭＰＵ２１が実行することにより実現されている。
まず、プリンタ１３のインタフェース部２８は、インタフェース機能部３１として機能し、ホストコンピュータ１１より接続ケーブル１２を介して受信した印刷制御コマンド（印刷制御コマンド群）をバッファ部３１Ａに格納する（ステップＳ１１）。
これによりＭＰＵ２１は、バッファ部３１Ａから未処理の印刷制御コマンドのうち、先頭の印刷制御コマンドのヘッダ部を図示しないメモリに取り込むとともに、コマンド解析機能部３４のコマンド種類判別部３４Ａとして機能し、ＲＯＭ２２に予め格納されている言語データベース３２を参照して印刷制御コマンドの種類を判別する（ステップＳ１２）。
【００２１】
続いてＭＰＵ２１は、コマンド解析機能部３４のメモリ領域確保部３４Ｂとして機能し、メモリ確保情報データベース３３を参照して、ステップＳ１２で判別した印刷制御コマンドの種類に対応するワークメモリ３６上に確保すべきコマンド解析処理用領域３６Ａの容量を読み出して設定し、メモリ領域確保処理を行う（ステップＳ１３）。
【００２２】
この場合において、メモリ確保情報データベース３３に格納されているワークメモリ３６上に確保すべきコマンド解析処理用領域３６Ａの容量は、印刷処理を繰り返すことにより、当該プリンタ１３のユーザの使用態様に応じて、解析対象の印刷制御コマンドを全て展開可能な容量が設定されるようになるが、今まで使用していなかった新たな図形を描画させるなどのように、例外的にデータ量が多くなってしまった場合には、不足することとなる。この場合には、一旦、メモリ確保情報データベース３３を参照して得られた容量で、ワークメモリ３６上にコマンド解析処理用領域３６Ａを確保し、その後、追加的にメモリ領域を確保する。なお、逆にデータ量が少なかった場合には、今回はそのまま処理を行い、次回以降、ワークメモリ３６上に確保すべきコマンド解析処理用領域３６Ａの容量を小さくする。
【００２３】
次にＭＰＵ２１は、コマンド解析処理用領域３６Ａに格納され、展開された印刷制御コマンドの解析を言語データベース３２を参照して行う（ステップＳ１４）。
この場合において、言語データベース３２が複数の制御コマンド体系の印刷制御コマンドの情報を含んでいる場合には、ＭＰＵ２１は、全ての制御コマンド体系について解析を行う。
【００２４】
続いてＭＰＵ２１は、言語データベース３２の内容に基づいて当該印刷制御コマンドに対応する印刷データを生成し、予め確保したページ作成領域３６Ｃに印刷データを順次格納する印刷データ生成処理を行う（ステップＳ１５）。
この場合において、ＭＰＵ２１は、印刷データを生成するにあたって、オブジェクトの作成が必要な場合には、ワークメモリ３６上にオブジェクトを作成するためのオブジェクト作成領域３６Ｂを確保し、当該オブジェクト作成領域３６Ｂに作成したオブジェクトを格納することとなる。
続いて、ＭＰＵ２１は、１ページ分の印刷データが生成済みか否かを判別する（ステップＳ１６）。
ステップＳ１６の判別において、未だ１ページ分の印刷データが生成されていない場合には（ステップＳ１６；Ｎｏ）、再び処理をステップＳ１１に移行し、以下、当該ページの印刷データの生成が完了するまで、同様の処理を繰り返す。
ステップＳ１６の判別において、１ページ分の印刷データが生成済みの場合には（ステップＳ１６；Ｙｅｓ）、ＭＰＵ２１は、生成した印刷データをプリントエンジン２４に転送し、印刷を指示する。
【００２５】
これにより、プリントエンジン２４は、転送された印刷データに基づいて１ページ分の印刷処理を行う（ステップＳ１８）。
続いてＭＰＵ２１は、全ページの印刷データが処理済みであるか否かを判別する（ステップＳ１９）。
ステップＳ１９の判別において、未だ全ページの印刷データが処理されていない場合には（ステップＳ１９；Ｎｏ）、再び処理をステップＳ１１に移行し、以下、全ページの印刷データが処理済みとなるまで、同様の処理を繰り返す。
【００２６】
以上の説明のように、本実施形態によれば、印刷制御コマンドの解析に際し、ワークメモリ３６として機能するＲＡＭ２３上に、印刷制御コマンドの種類に応じたより最適な容量を有するコマンド解析処理用領域３６Ａを確保することができるので、コマンド解析処理におけるメモリ領域の確保処理の回数を減少させて、処理効率（例えば、処理速度）の向上を図ることができる。さらに、不必要にコマンド解析処理用領域３６Ａの容量を大きく設定しておく必要がないため、共用のメモリ領域として用いているＲＡＭ２３の記憶容量が、使われないにもかかわらず確保されてしまうことに起因して他の処理が滞ることもないので、限られたシステムリソースを有効に利用して、システム全体の処理能力の向上が図れる。
また、本実施形態によれば、コマンド体系が異なることにより、実データが圧縮されていたり、実データが圧縮されていなかったりする等に起因する動作速度の差を、コマンド解析機能部で展開することにより吸収することができるため、コマンド体系の異なる印刷制御コマンドをエミュレーションすることに起因する動作速度の違いを少なくすることが可能となる。
【００２７】
以上の説明においては、実際に使用されたメモリ領域の容量の履歴を履歴データとして記憶し、次回に同一の種類に属する印刷制御コマンドあるいは同一の印刷制御コマンドを受信した場合に確保すべきメモリ領域の容量を算出し、更新するために用いていたが、履歴データを用いることなく、本来印刷制御コマンドが実データの多い容量の大きなコマンドである場合には、確保すべきメモリ領域の容量を一時的に大きくするように構成することも可能である。
【００２８】
以上の説明においては、制御プログラムが予めファームウェアとしてＲＯＭ２２に記憶されていたが、このＲＯＭ２２に代えて、あるいは、加えて、書き換え可能なメモリ（例えば、ＥＥＰＲＯＭ、フラッシュＲＯＭなど）にホストコンピュータ１１側から制御プログラムをダウンロードするように構成することも可能である。
また、以上の説明においては、プリンタの種類については言及していなかったが、インクジェットプリンタ、ドットインパクトプリンタ、サーマルプリンタ、レーザプリンタなどの様々なプリンタに対して適用が可能である。
【図面の簡単な説明】
【００２９】
【図１】実施形態の印刷システムの概要構成ブロック図である。
【図２】プリンタの概要構成ブロック図である。
【図３】プリンタの主要部の機能構成ブロック図である。
【図４】プリンタの処理フローチャートである。
【符号の説明】
【００３０】
１０…印刷システム、１１…ホストコンピュータ、１３…プリンタ、２１…ＭＰＵ（コマンド種類判別部、領域確保部）、２２…ＲＯＭ、２３…ＲＡＭ（メモリ）、２４…プリントエンジン、３１…インタフェース機能部、３１Ａ…バッファ部、３２…言語データベース、３３…メモリ確保情報データベース（確保容量記憶部）、３４…コマンド解析機能部、３４Ａ…コマンド種類判別部、３４Ｂ…メモリ領域確保部、３５…駆動制御機能部、３６…ワークメモリ、３６Ａ…コマンド解析処理用領域。
【図１】
2010089332.tif 000003
【図２】
2010089332.tif 000004
【図３】
2010089332.tif 000005
【図４】
2010089332.tif 000006