JP4920879B2 - 画像処理装置及びデータ処理装置 - Google Patents

画像処理装置及びデータ処理装置 Download PDF

Info

Publication number
JP4920879B2
JP4920879B2 JP2004231431A JP2004231431A JP4920879B2 JP 4920879 B2 JP4920879 B2 JP 4920879B2 JP 2004231431 A JP2004231431 A JP 2004231431A JP 2004231431 A JP2004231431 A JP 2004231431A JP 4920879 B2 JP4920879 B2 JP 4920879B2
Authority
JP
Japan
Prior art keywords
filter
data
processing
setup mode
processing apparatus
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.)
Expired - Fee Related
Application number
JP2004231431A
Other languages
English (en)
Other versions
JP2006048534A (ja
JP2006048534A5 (ja
Inventor
俊久 奥津
仁一 種田
紀之 中澤
正美 角田
嘉則 伊藤
英雄 淺原
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 JP2004231431A priority Critical patent/JP4920879B2/ja
Priority to US11/197,466 priority patent/US7619757B2/en
Priority to CNB2005100893695A priority patent/CN100405810C/zh
Priority to KR1020050071699A priority patent/KR100734446B1/ko
Publication of JP2006048534A publication Critical patent/JP2006048534A/ja
Publication of JP2006048534A5 publication Critical patent/JP2006048534A5/ja
Application granted granted Critical
Publication of JP4920879B2 publication Critical patent/JP4920879B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1275Print workflow management, e.g. defining or changing a workflow, cross publishing
    • G06F3/1277Print workflow management, e.g. defining or changing a workflow, cross publishing using filter pipeline, e.g. outside the driver, adding traps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Description

本発明は、データ処理装置に含まれる複数の処理モジュールの有効化制御に関し、例えば、画像処理装置のファームウエア上に実装したフィルタ処理機能の有効化制御に好適なものである。
従来、画像処理装置のソフトウェアはリアルタイムオペレーティングシステム(OS)の上に静的かつ固定的ないわゆるファームウェアとして構築されることが主流であった。このようなファームウェアは内部的に複数の処理モジュールから構成されている場合でも全体が単一のロードモジュールに静的にリンクされた状態で装置の不揮発性メモリに記憶される。そして、このファームウェアはシステムの起動時にハードディスクなどの不揮発性メモリからRAMにロードされ実行されるか、または、ROMなどの不揮発性メモリ上で直接実行される。特に低価格な画像処理装置のような組み込みシステムを構成するファームウェアは、一般にその経済性や安全性などのために部分的なモジュールの動的なロードやリンクを行わないように構成されている。なぜならば、ダイナミックリンクを実現するために必要なシンボルテーブルの記憶容量やシンボルのアドレスへの解決を行うための処理に関するオーバヘッドなどが装置のコストパフォーマンスを悪化させたり、或いは、追加してロードおよびリンクされるサブモジュールによってそのサブモジュールをリンクする以前には十分に評価され達成されていたシステム全体の品質やセキュリティが脅かされる危険があるためである。
従来、組み込みシステムのファームウェアのリアルタイムOS上にさらにもう一層のソフトウェア動作環境を設け、追加で設けたソフトウェア動作環境においてダイナミックローディングやダイナミックリンキングや動的なメモリ操作などのソフトウェアの動的な特性をサポートする画像処理装置が開発されている。追加で設けられたソフトウェア動作環境は、インタプリタとひとそろいのアプリケーションプログラミングインタフェース(API)群やフレームワーク群から構成され、その上で動作するソフトウェアのために一種のOSあるいはコンピューティングプラットフォームというべきものを提供する。インタプリタは、所定の命令セットに含まれる命令からなる一連の命令列を逐次的に読み出し解釈し実行する。この命令セットをハードウェアのCPUのための命令セットと同等の位置づけに捉える場合、インタプリタは特に仮想マシン(virtual machine)と呼ばれることもある。
ひとそろいのAPI群およびフレームワーク群は、このソフトウェア動作環境の下層に内在する実際のリアルタイムOSが提供する資源やハードウェア資源を抽象化した各種の資源群に対するアクセスを、ソフトウェア動作環境上で動作するソフトウェアのために提供する。資源にはプロセッサによる命令実行コンテクストやメモリ、ファイルシステム、ネットワークインタフェースを含む各種入出力(I/O)などがある。特に、命令実行コンテクストは実際のCPUとリアルタイムOSが提供するマルチタスク機構とは独立に、ソフトウェア動作環境が独自にインタプリタ上の命令実行コンテクストを管理できる。また、メモリも同様にソフトウェア動作環境が独自のメモリ管理を提供できる。
このようなソフトウェア実行環境上で動作するソフトウェアはインタプリタによって逐次的に読み込み解釈実行されるため、これらの処理の過程で命令列を監視しシステムに悪影響を与える動作を除外できる可能性がある。また、ソフトウェア実行環境上のソフトウェアから各種資源に対するアクセスは、ソフトウェア実行環境が提供するAPI群やフレームワーク群を経由して間接的に資源を操作するため、この過程でシステムに悪影響を与える動作を除外できる可能性がある。したがって、ファームウェア内部にインタプリタおよびAPI群とフレームワーク群からなるソフトウェア実行環境の階層を設けるアプローチは、基本的には静的かつ固定的に構成されるべき低コスト組み込みシステムのファームウェアにおいて、ソフトウェアの動的な特性を部分的に導入するために非常に有効である(特許文献1、特許文献2を参照。)。
上記アプローチにおいて、ソフトウェア実行環境の階層を実現するためにインタプリタとしてJava(登録商標)仮想マシンを採用し、Java(登録商標)に関連するAPI群やフレームワーク群を採用することができる。本出願人は2003年に、画像処理装置のファームウェア内部にJava(登録商標)プラットフォームを内蔵した複合機であるMEAP(登録商標)を製品化している。
従来、内部にネットワークコンピュータを備えたアプリケーションダウンロード型プリンタを用い、コンピュータネットワークから、印刷すべきデータファイルと該データファイルに対応したアプリケーションとを上記プリンタ内にダウンロードし、上記ネットワークコンピュータ上で上記アプリケーションを立ち上げることにより該データファイルを開いてラスタイメージに変換し、印刷するネットワークコンピュータ内蔵プリンタおよびこれを備えたコンピュータネットワークシステムが開示されている。また、アプリケーションが「Java(登録商標)アプレット」である場合も開示されている。更に、アプリケーションは印刷データファイルとともにクライアントからプッシュされる場合も、プリンタがアプリケーションサーバなどからプルする場合も開示されている(特許文献3を参照)。
また、従来、複数の周辺機器および周辺機器を動作させるソフトウェアを搭載した複数の端末装置および少なくとも周辺装置を動作させるソフトウェアに関するデータベースを備えたサーバ装置を伝送路に接続させ、所定の通信プロトコルに基づいてネットワーク通信を行うネットワーク通信システムであって、周辺機器は、サーバ装置から周辺機器を動作させるソフトウェアの全部/一部、あるいはソフトウェアが使用するモジュールに対応する最新モジュール情報を要求・獲得するクライアント制御部と、獲得した最新モジュールを端末装置に配付するソフトウェア配信エージェントと、を備えたネットワーク通信システムが開示されている。周辺機器を操作するソフトウェアが使用するクライアント側モジュールとして、「java(登録商標)アプレット」や「java(登録商標)アプリケーション」が供給可能であることも開示されている(特許文献4を参照)。
特開平11−282684号公報 特開2003−256216号公報 特開平11−53132号公報 特開平11−306107号公報
一方、上記従来例を基にすることで、本出願人は以下の技術を提案している。多種多様の顧客のプリンティング環境および様々な環境における要求が存在している。特に基幹系の業務システムでは、ひとたび正常に稼働しはじめたシステム全体の安定性を維持したいという要望はとても強く、プリンタドライバやアプリケーション簡単に変更することは許されないことがある。このような現実のプリンティング環境の制約の中で、プリンタのベンダは顧客環境の側に対応を求めるのではなくプリンタ側の対応によって各種の顧客要望に応えるべき使命がある。たとえば、プリンタの新製品が提供する新しい機能として両面印刷や製本などのフィニッシング機能があった場合、同時に開発された専用のプリンタドライバ経由で新規機能を使用するコマンド列が含まれるプリントジョブを生成する、もしくは顧客の業務アプリケーションが新規追加されたコマンド列を含むプリントジョブを生成するように更新を行うことで、これらの新機能を使いこなせることは当然である。しかしながら、前述のように顧客システムに影響をおよぼさずプリンタ側の対応によって装置の新機能を利用可能とすることが求められている。
顧客システム側に影響を与えずプリンタ側でこれらの要望に対応するためには、プリンタを構成するファームウェアを改造して個別対応リリースする方法があり実際にこの方法がとられている場合もある。しかし、ファームウェアの改造による個別対応は装置全体の品質の再評価を含め開発期間や開発費などが多くかかり、また顧客環境に納品した装置に組み込まれたファームウェアの更新にはフィールドエンジニアなどによる高度なメンテナンスの手間を要するため、顧客要望に速やかに応えるためにもまた費用対効果の面でも課題を残している。実際には、これらの要望のうちの一部はプリンタのファームウェア全体を変更するまでもなく、受信したプリントデータストリームを解釈する前の前処理を追加してそこでプリントデータストリームそのものに変換を施すことによって対応できる。したがって、受信したプリントデータストリームを解釈する前の前処理を実現するソフトウェアだけを他のファームウェアとは独立に柔軟かつ拡張可能に追加できるより動的な機構が求められる。
組み込みシステムのファームウェア内にJava(登録商標)プラットフォームのようなソフトウェア動作環境階層を内蔵するMEAP(登録商標)のような従来例では、ソフトウェア動作環境上にファームウェアと独立した新たな装置組み込みアプリケーションを開発可能であり、APIによってJava(登録商標)アプリケーションから装置のプリント機能にアクセスすることはできた。しかしながら、Java(登録商標)プラットフォームがファームウェア内の組み込みアプリケーション階層に位置づけられているため、同階層においてネイティブの組み込みアプリケーションとして実現されているプリントデータ受信機能やプリントサーバ機能をJava(登録商標)アプリケーションのために流用できなかった。すなわち、たとえばネットワーク経由でプリントデータを受信するための各種プリントサービスプロトコルを実装したプリントサーバ機能をJava(登録商標)側にも再実装する必要があり、開発負荷や評価負荷ならびに実行時のメモリ面などでも非効率であった。
一方、その他の組み込みシステムのファームウェア内にソフトウェア動作環境階層を持たない従来例においては、組み込みシステム全体がダイナミックリンクやプラグイン可能な構成になっておりシステム全体が動的な構成になってしまっていた。動的な特性が求められる部分が、受信したPDLデータストリームを解釈する前の前処理を柔軟かつ拡張可能に追加する機構だけであることを前提とした場合には、これらの従来例のアプローチはシステム全体を動的なソフトウェアとして構成するためのオーバヘッドに伴うコストアップや品質保証の難しさから低価格の小規模システムには向かなかった。
そこでプリンタが受信したPDLデータストリームに対する解釈前の前処理を行うフィルタ部を柔軟かつ拡張可能なソフトウェアとして実装し、安定性が求められるプリンタファームウェアのその他の部分の実装と明確に分離する構成をとることによって、PDLプリンタのカスタマイズの生産性が向上される(特願2004−093215を参照)。
上記のフィルタ部の処理機能はユーザーの使用環境にあわせた種類の複数のフィルタのみを有効化するのが前提である。フィルタ数が少ない場合においては機器の操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作して有効化の設定作業を行う方法で対応可能である。
しかしながら、フィルタ数が増加した場合には人間による手作業の有効化作業は非常に煩雑であるという課題があった。またオペレータへ全てのフィルタの機能説明を行うことは困難であり有効化作業そのものが困難であるという課題もあった。
本発明は上記の課題に鑑みてなされたものであり、手作業によって個別に処理モジュールを有効化するというセットアップ作業を排除し、非常に簡単なオペレーションで処理モジュールの有効化を行えるようにすることを目的とする。
上記の目的を達成するための本発明の一態様による画像処理装置は以下の構成を備える。すなわち、
入力した印刷データ中の特定のデータに対して処理を加えるフィルタ処理部を有する複数のフィルタ処理モジュールと、
刷データを前記複数のフィルタ処理モジュールへ提供する提供手段と、
前記フィルタ処理部それぞれの有効または無効を設定する設定手段と、
を備える画像処理装置であって、
前記フィルタ処理部は、フィルタセットアップモード中においては、入力された印刷データの内容を変更する処理をした場合にのみ、当該フィルタ処理モジュールの置換検知フラグをtrueにセットするものであり
前記設定手段は、前記置換検知フラグがtrueにセットされたフィルタ処理モジュールのみを、前記フィルタセットアップモードの終了後において有効に設定するものである
また、上記の目的を達成するための本発明の他の態様によるデータ処理装置は以下の構成を備える。すなわち、
入力したデータ中の特定のデータに対して処理を加えるフィルタ処理部を有する複数のフィルタ処理モジュールと、
ータを前記複数のフィルタ処理モジュールへ提供する提供手段と、
前記フィルタ処理部それぞれの有効または無効を設定する設定手段と、
を備えるデータ処理装置であって、
前記フィルタ処理部は、フィルタセットアップモード中においては、入力されたデータの内容を変更する処理をした場合にのみ、当該フィルタ処理モジュールの置換検知フラグをtrueにセットするものであり
前記設定手段は、前記置換検知フラグがtrueにセットされたフィルタ処理モジュールのみを、前記フィルタセットアップモードの終了後において有効に設定するものである
本発明によれば、手作業によって個別に処理モジュールを有効化するというセットアップ作業が不要となり、非常に簡単なオペレーションで処理モジュールの有効化が行えるようになる。
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
<第1実施形態>
以下、本発明にかかる一実施形態の画像処理装置を図面を参照して説明する。
図1は本発明のプリンタの詳細ブロック図である。図1に示すように、プリンタ100は以下のブロックから構成され、内部メインバス101で接続される。制御部102はCPUとメモリを有し、CPUがメモリに記憶された各種制御プログラムを実行することでプリンタ100の全体を制御する。操作パネル103はオペレータがプリンタ100の動作モードや各種設定の指示を受け付ける。ホストインターフェースコントローラ104はイーサネット(登録商標)等のコンピュータネットワーク通信機能を備え、コンピュータネットワーク300を介してホストコンピュータ200を通信可能に接続する。このような通信機能は、コンピュータネットワークを介して接続されたホストコンピュータ200からプリントジョブを転送するのに用いられる。なお、インターフェース方式はコンピュータと接続される方式であれば特に限定するものではない。
ホストインターフェースコントローラ104受信したプリントジョブはフィルタ部105に転送される。フィルタ部105は、受信したPDL形式のプリントジョブのデータに対して特定のデータパターンマッチングなどの方法を用いてデータの置換すなわちフィルタ処理を行うものである。なお、フィルタ部105においては、1つ或いは複数のフィルタを連結することが可能な構成とする。フィルタ処理されたPDL形式のプリントジョブはトランスレータ106へ転送される。なおフィルタ部105の詳細については図2を参照して後述する。
トランスレータ106は、PDLによって記述された印刷データを解釈して、これをレンダリング処理に適した印刷用中間言語の記述に変換する。なお、レンダリング処理に適した印刷用中間言語によるプリントデータの記述をディスプレイリストと呼ぶ。トランスレータ106は各種のPDL仕様毎にそれぞれ異なる固有の実装を持ち、どのトランスレータもそれぞれのPDLをレンダラに固有のディスプレイリストへと変換する。変換されたディスプレイリストはレンダラ107へ転送される。
レンダラ107はディスプレイリストをラスタ画像に展開する。展開メモリ108は、レンダラ107により展開されたラスタ画像を格納するための画像をメモリである。すなわち、レンダラ107によって得られたラスタ画像は展開メモリ108に格納される。そして、プリンタエンジン109により、展開メモリ108に格納されたラスタ画像が記録紙等に永久可視像として形成される。
図2はフィルタ部105の詳細構成を示すブロック図である。フィルタ部105は前述のとおり1つ或いは複数のフィルタを連結することが可能な構成となっている。図2の例では3つのフィルタを連結した場合を示しているが、フィルタの個数はこれに限定されるものではなく同形式の構成のフィルタであれば何個でも連結可能である。
図2において、フィルタバスIF1000はプリンタの内部バス101を介して他のブロックとデータの入出力を行うものである。よい具体的には、フィルタ部105はホストインターフェース104で受信したPDL形式のプリントジョブをフィルタバスIF1000を介して入力し、フィルタ部105でフィルタ処理したPDL形式のプリントジョブをフィルタバスIF1000を介して次段のトランスレータ106へ出力する。
フィルタセットアップモードフラグ1100は、各フィルタモジュールに対してフィルタセットアップモードであることを通知する。フィルタセットアップモードフラグ1100はフラグであるため、true/falseの2つの状態を保持し、「true」にてフィルタセットアップモードであることを、「false」で通常動作モードであることを示す。
1200、1300、1400は当該フィルタ部105に実装されたフィルタモジュールを示している。各フィルタモジュール(1200,1300,1400)はそれぞれフィルタ処理部(1201,1301,1401)、フィルタ有効化フラグ(1202,1302,1402)、置換検知フラグ(1203,1304,1404)を含んで構成される。以下、これらのフィルタの代表としてフィルタAに対応するフィルタモジュール1200の詳細を説明するが、他のフィルタモジュール1300,1400についても基本的な構成は同一であり、フィルタ処理部1201,1301,1401がそれぞれ異なるフィルタ処理を行う。
フィルタモジュール1200において、フィルタ処理部1201は入力したPDL形式のプリントジョブのデータに対して特定のフィルタ処理、例えばデータパターンマッチングなどの方法で一致したデータを他のデータに置換するといった処理を行う。フィルタ有効化フラグ1202はフィルタ処理部1201でフィルタ処理を実行するか、フィルタ処理を実行せずに単純に入力データを出力する(バイパス)かを制御する。フィルタ有効化フラグ1202がtrueの場合はフィルタ処理が有効となり、falseの場合はフィルタ処理が無効、すなわちバイパスモードとなる。なお、バイパスモードではフィルタ処理を行わないため次段処理へ高速にデータを引き渡すことが可能である。従って、使用しないフィルタモジュールはフィルタ有効化フラグをfalseに設定しておくことにより、処理を高速化できることになる。置換検知フラグ1203はフィルタ処理部1201にてフィルタ処理が実際に行われるとtrueにセットされるフラグである。PDLデータをフィルタ処理した場合に一度もフィルタ処理が行われなければfalseのままである。
図3は手動によるフィルタセットアップのためのユーザインターフェース例を示す。一般には、このようなユーザインターフェースを用いてフィルタのセットアップが行われている。なお、図3はプリンタ100の操作パネル103の表示部を示した図である。図3において、一覧リスト401には、プリンタ100にインストールされたフィルタの一覧が表示されており、上ボタン403と下ボタン404でフィルタの名称を選択する。矢印402で示されたフィルタが設定対象であり、有効無効ボタン405により設定対象となっているフィルタの機能の有効化/無効化を設定する。
このように、フィル多機能の有効、無効の設定は、一般的には図3に示したように、各フィルタモジュールに対して個別に有効/無効を選択する構成が提案されていた。そのためオペレータはプリンタ100に装備されている各フィルタモジュールの処理内容に精通した上で、ユーザ毎のカスタマイズに適した有効化(有効/無効)を個別に設定する必要があった。この方法はフィルタモジュールの数が増加した場合には、オペレータに対して過大な負荷をかけることになり現実的ではない。
図4は本実施形態におけるフィルタセットアップの手順の概要を示す図である。図4はホストコンピュータ200からプリンタ100へコンピュータネットワーク300を介して、フィルタモジュール有効化PDLジョブ450を送信する様子を示した図である。フィルタモジュール有効化PDLジョブ450とは、プリンタ100のフィルタ部105に装備されるフィルタをオペレータが選択的に有効化させるためのPDLジョブである。即ち、フィルタ部105に装備されたフィルタのうち、有効化すべきフィルタにおいてフィルタ処理(データの置換)が実行されるようなデータを含むPDLジョブで構成されていする。このPDLジョブ450は有効化すべきフィルタをユーザ毎にカスタマイズすることを目的にプリンタの開発部門からサービス部門をオペレータに提供するものである。このように、本実施形態においては、フィルタを個別に有効化させるような特別なコマンドを定義するのではなく、フィルタモジュールにおいてデータの置換が行われるPDLジョブそのものをフィルタモジュールの有効化に使用する。
図5は本実施形態におけるフィルタモジュールの一例である互換化フィルタが行う処理を説明する図である。互換化フィルタモジュール501は、フィルタ処理部1201,1301,1401に相当する構成の一例であり、入力ストリームを読み出してデータストリーム中に現れる互換性の問題を解決する処理を施して出力ストリームに書き込むものである。
互換性の問題として、ここでは代表的なPDLのひとつであるAdobe社のPostScript仕様のPDLのインタプリタにおける、ベンダごとの解釈の差異にもとづく問題とその解決の例を説明する。例えば、あるベンダのプリンタは、PostScriptのsetpagedeviceでは/DeferredMediaSelectionが真のときにカスタム用紙扱いとして用紙要求をパネルに表示し、偽のときに指定されたサイズから±5の範囲で定型用紙を検索し、定型にない場合はPostScriptのPolicyに従うものと解釈して実装されている。これに対して、別のベンダのプリンタでは、/DeferredMediaSelectionが真のときに指定されたサイズそのもののサイズ(範囲なし)で定型用紙を検索し、定型にない場合はカスタム用紙扱いとし、偽のときは±5の範囲で定型用紙を検索し定型にない場合はPostScriptのPolicyに従うように実装されている。ここで、さらに別のベンダが供給する基幹系システムのためのインフラストラクチャ環境が、これらのうち後者の解釈に基づく挙動を前提として構築されたとする。この場合、そのシステムにおける印刷要求に対して前者のプリンタでは期待に反するシチュエーションでカスタム用紙扱いとなってしまい、「用紙なし」が操作パネルに表示されて印刷されないという顧客の不利益が生ずる。
上記の状況において、前者のプリンタのベンダはこの互換性の問題に対してできるだけ低コストでできるだけ速やかに解決を顧客に提供することが求められる。この要求は、印刷要求データストリーム中に現れるsetpagedeviceの/DeferredMediaSelectionパラメータをtrueからfalseに変換することで、少なくとも暫定的に、応えることができる。互換化フィルタモジュール501はこの問題解決のために機能するものであり、入力データストリーム中から/DefereedMediaSelectionがtrueで指定されたsetpagedeviceに対するパターンマッチングを行い、マッチした場合はtrueをfalseに置き換えたデータストリームを出力する。
図5において、502はフィルタへの入力データストリームの例を示しており、PostScriptのプリントデータである。2行目に上述したパターンに合致する部分データが出現する。503はフィルタからの出力データストリームの例であり、フィルタ処理されたPostScriptのプリントデータである。2行目のデータの中でtrueという文字列がfalseへと置換されている。
また、図6は本実施形態におけるフィルタモジュールの一例である障害回避フィルタモジュールが行う処理を説明する図である。障害回避フィルタモジュール601は、フィルタ処理部1201,1301,1401に相当する構成の一例である。上記の例では、プリンタ間の仕様解釈の差異に基づく互換性の問題を解決するためにフィルタによるデータストリームのパターンマッチングと置換の技術を用いたが、同様の技術をプリンタ実装の不具合(ファームウェアのバグなど)を緊急回避するために用いることもできる。たとえば、あるプリンタのあるバージョンのリリースにおいて、LIPS(登録商標)言語の「イメージ領域確保命令(VDM)」に指定されるイメージの幅が8の倍数でなければ描画不正が発生するというバグがあったとする。仮にこのようなパターンのデータストリームが特定のアプリケーションの特定の利用においてだけ稀に出力されるものであったとしても、また、本来はトランスレータやレンダラというLIPS(登録商標)言語処理系のコア部分で修正するべきバグであったとしても、現実の顧客環境において障害が生じた場合には迅速に対応しなければならない。
障害回避フィルタモジュール601は、たとえば602に示すようなデータを含むLIPS(登録商標)データストリームから障害を発現させるパターン(VDMのイメージ幅が8の倍数でないもの、図6の例では「225」の部分)を発見し、その障害を顕在化させず同等の機能を達成する603のようなデータ(VDMのイメージ幅を8の倍数でより大きい値である「232」)に置換する。
図7は本実施形態におけるフィルタモジュールの一例である最適化フィルタモジュールが行う処理を説明する図である。最適化フィルタモジュール701は、入力ストリームを読み出してデータストリーム中に現れる冗長に記述されたPDLデータを発見し、それをより効率のよい同機能のデータに変換して出力ストリームに書き込む。プリンタドライバが生成するPDLデータストリームは、クライアントのプリント要求システムやアプリケーション側の都合によって、どうしても繰り返しなどの冗長な処理パターンを含む傾向にある。最適化フィルタモジュール701はこのような冗長な記述パターンを一種の「慣用表現」として認識し、それをより高効率の等価な表現に置き換える。
702は最適化フィルタモジュール701への入力データストリームの例である。データストリーム702には、703に示すように、横長の長方形を塗りつぶすために3つの正方形の塗りつぶしを繰り返す記述が行われている。704は最適化フィルタモジュール701からの出力データストリームの例である。最適化フィルタモジュール701によってデータストリーム702に含まれていた冗長な繰り返しパターン(703)が検出され、705に示すような等価な1つの横長の矩形の塗りつぶしに書き換えられていることがわかる。
次に、本実施形態によるフィルタモジュールのセットアップ処理について詳細に説明する。
図8はフィルタセットアップ処理の操作を示す図である。本実施形態によるフィルタセットアップ処理は、図4で説明したように、ホストコンピュータ200からフィルタモジュール有効化PDLジョブ450を転送し、プリンタ100のフィルタ部105内のフィルタモジュールを選択的に有効化させる。このようなフィルタセットアップ処理のための操作はプリンタ100の操作パネル103にてオペレータが行う。
図8の(a)は、操作パネル103において、フィルタセットアップモードをONにすることをオペレータに対して促すためのインターフェースが表示された状態を示している。オペレータはフィルタセットアップを行うのでONボタン150を選択する。但し、なんらかの理由でフィルタセットアップを中止するのであればcancelボタン151を選択する。ONボタン150が押されると、画面は図8(b)に切り替わり、オペレータに対してフィルタモジュール有効化PDLジョブの送信を促すメッセージが表示される。この段階でオペレータは図4のホストコンピュータ200からプリンタ100に対してフィルタモジュール有効化PDLジョブを転送する。
プリンタ100でフィルタモジュール有効化PDLジョブを受信し、プリンタのフィルタが選択的に有効化されると、操作パネル103の画面は図8(c)に切り替わる。図8(c)ではフィルタセットアップが完了したことを表示し、オペレータに対してフィルタセットアップモードを抜けることの確認を促す画面である。オペレータがこの確認ボタン152を選択するすることで一連のフィルタセットアップ処理が完了することになる。
以上の操作により、プリンタ100のフィルタ1200,1300,1400はフィルタモジュール有効化PDLジョブに従い、選択的に有効化される。
以上の操作におけるプリンタ100の内部処理について、図9〜図13を参照して詳細に説明する。
図9はフィルタ処理部による主要な手順を示すフローチャートである。本フローチャートはフィルタ部105内のフィルタ1200,1300,1400の内部処理(フィルタ処理部の処理)を説明している。なお、各フィルタでの処理は、具体的なフィルタ処理(ステップS3002〜S3004の置換処理)を除いて同一である。
フィルタ処理では入力ストリームとしてPDLジョブを入力し、順次パターンマッチングを行い、マッチングした箇所のデータをあらかじめ決められた方法で置換を行い、出力ストリームへ出力するまでの処理を示す。本実施形態では、フィルタ処理部において置換処理が実行された際には、当該フィルタ処理部に対応した置換検知フラグをtrueにセットする。このように置換検知フラグをtrueにすることで本フィルタが有効化すべきフィルタであることが示されることになる。以下、図9および図10のフローチャートにより、本実施形態によるフィルタモジュールの有効/無効設定処理を説明する。
まず、図9により、印刷処理におけるフィルタ部105の動作を説明する。ステップS3000では、必要な前処理を行う。前処理には、フィルタが内部的に利用する属性の初期化や、パターンマッチングに使用するパターン記述に対する前処理などが含まれる。ステップS3001では、入力ストリームからパターンマッチング処理に必要な量のデータを読み出す。ステップS3002では、入力のデータストリーム中からこのフィルタが操作するべきデータパターンの出現を発見するためにパターンマッチングを行う。フィルタが操作するべきデータパターンは固定のデータ列そのものでもよいし、正規表現(regular expression)などの形式言語による記述でもよい。パターン記述に合致するデータの出現をデータストリーム中から発見する各種の実装が広く知られている(grep、sed、AWK、Perlなどが有名である)。
ステップS3003では、パターンマッチングの結果を判定しパターン記述に合致するデータをデータストリーム中に発見した場合はステップS3004に進む。そうでなければステップS3006に進む。ステップS3004では、パターン記述に合致したデータストリーム中の部分データ列に対してこのフィルタの目的に応じた操作を施しその結果で置き換える。
ステップS3005では、置換検知フラグの状態をtrueにする。ステップS3006では、処理済の部分データ列(すなわち、監視しているパターンが現れなかったデータ列、あるいは、監視しているパターンを含むデータ列に対してステップS3004の処理を施したデータ列)を出力ストリームに書き込む。ステップS3007では、入力ストリームが終了したかどうかを判定し、終端を迎えた場合は終了する。そうでなければステップS3001に戻り、上記の手順を繰り返す。
図10はフィルタセットアップモードの処理手順を示すフローチャートである。本フローチャートにょり、図8で説明したオペレータの手順におけるプリンタ100内部の処理を説明する。以下では、オペレータがフィルタセットアップモードをONにしてフィルタモジュール有効化PDLジョブ450をプリンタに転送し、フィルタ部105にて当該PDLジョブ450に対してフィルタ処理部がデータ置換を行ったフィルタを選択的に有効化するまでの処理を説明する。なお、処理は制御部102及びフィルタ部105にて行われる。
ステップS4000では、図8の(a)に示すパネル操作においてオペレータがフィルタセットアップモードをONすると、処理はステップS4000からステップS4001へ進む。ステップS4001では、フィルタセットアップモードフラグ1100をfalseからtrueにする。この処理によりフィルタ部105はフィルタセットアップモードの状態となる。ステップS4002では、フィルタセットアップモードフラグ110がfalseからtrueになったことを受けて、フィルタブ105内の全てのフィルタ1200,1300,1400の各フィルタ有効化フラグ1202,1302,1402がtrueにセットされ、更に各置換検知フラグ1203,1303,1403がfalseにセットされる。すなわち、フィルタセットアップモードが選択されると全てのフィルタモジュールのフィルタ有効化フラグがtrueに強制的にセットされてフィルタが強制的に有効化され、全てのフィルタモジュールの置換検知フラグがfalseに強制的にセットされる。本処理まで進んだ時点で操作パネル102は図8の(a)から(b)の画面となる。
ステップS4003では、フィルタ有効化PDLジョブ450をホストコンピュータから受信し、フィルタ処理する。このフィルタ有効化PDLジョブ450を処理する間に、各フィルタは図9で説明したように動作し、実際に機能したフィルタ(実際にデータ置換処理を行ったフィルタ)の置換検知フラグがtrueにセットされる。なお、フィルタ有効化PDLジョブは、印刷しなくてもよい。
ステップS4004では、フィルタバスIF1000の出力状態を検出する。フィルタバスIF1000の出力状態検出とは最終段フィルタ1400からPDLジョブのフィルタ処理されたデータが全て出力されたことを検出するものである。ステップS4005では、PDLジョブのフィルタ処理が終了したかを判定し、フィルタ処理が終了したならばステップS4006に進み、そうでなければステップS4004に戻りフィルタ処理の終了状態の判定を繰り返す。
ステップS4006では、フィルタセットアップモードフラグ1100をfalseにする。ステップS4007では、ステップS4006でフィルタセットアップモードフラグ1100がtrueからfalseになったことを受けて全てのフィルタ1200,1300,1400の各置換検知フラグ1203,1303,1403の状態を各フィルタ有効化フラグ1202,1302,1402にロードする。この結果、フィルタ有効化PDLジョブ450を処理する間に実際に機能したフィルタモジュールの有効化フラグがセットされ、フィルタモジュールのセットアップが行われることになる。
次に、図11〜図13を参照して、上述したフィルタセットアップモードの処理におけるフラグの状態の遷移を説明する。
図11はフィルタセットアップモードをONにした状態でのフラグの状態を示す図である。すなわち、図11は図10のフローチャートのステップS4002でのフラグの状態(フィルタ有効化PDLジョブ450を流す前の状態)を示す。図11に示すように、フィルタセットアップモードフラグ1100がfalseからtrueになると各フィルタのフィルタ有効化フラグ1202,1302,1402全てがtrueにセットされる。また、各フィルタの置換検知フラグ1203,1303,1403全てがfalseに強制的にセットされる。この状態でフィルタモジュール有効化PDLジョブ450がホストコンピュータから転送され、フィルタバスIF1000を介して先頭のフィルタ1200のフィルタ処理部1201に入力される(ステップS4003)。
図12はフィルタ有効化PDLジョブ450を全てのフィルタにて処理した後のフラグの状態を示す図である。なお、本例ではフィルタ1200,1400の2つのフィルタモジュールを有効化するフィルタ有効化PDLジョブを使用したものとする。従って、フィルタ1200で当該フィルタモジュール有効化PDLジョブ450を処理するとデータ置換処理が行われ置換検知フラグ1203がtrueにセットされる。フィルタ1300にフィルタモジュール有効化PDLジョブ450が供給されてもデータ置換処理は行われないので置換検知フラグ1303はfalseのままである。フィルタ1400でフィルタモジュール有効化PDLジョブ450を処理するとデータ置換処理が行われ、置換検知フラグ1403がtrueにセットされる。
以上の処理を経た結果、フィルタ処理によってデータ置換されたPDLジョブ460がフィルタバスIF1000を介して次段のトランスレータ106に転送される。
図13は、図11および図12で説明したフィルタセットアップモード完了後のフラグの状態を示す図である。図13は図10のフローチャートのステップS4007でのフラグの状態を示す。すなわち、フィルタセットアップモードフラグ1100がtrueからfalseになったことを受けて全てのフィルタ1200,1300,1400の各置換検知フラグ1203,1303,1403の状態がそれぞれのフィルタの有効化フラグ1202,1302,1402にロードされる。本例では、図12で説明したように、フィルタ有効化フラグ1202,1402がtrueに、フィルタ有効化フラグ1302がfalseにセットされる。よって、フィルタ1200,1400は有効に、フィルタ1300は無効に確定される。そして、以降のプリントジョブの処理時にはフィルタ1200,1400のみが有効化されてPDL変換処理が行われることになる。
以上説明した第1実施形態によれば、フィルタセットアップモードという処理モードを設け、フィルタセットアップモード時には所定のPDLジョブを処理した際に複数存在するフィルタモジュール毎に置換処理を行ったかを検知し、置換処理を行ったフィルタモジュールのみを有効化することによりフィルタモジュールのセットアップが行われる。このため、フィルタモジュール毎に行っていた人間による手作業のセットアップ作業を排除し、非常に簡単なオペレーションでフィルタモジュールの有効化設定を実現することができた。すなわち、操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作してオペレータがフィルタモジュールの有効化セットアップを行うという煩雑な作業に比べて、非常に容易に有効化セットアップを行える。特にプリンタのサービスマンは、開発部門から提供されたフィルタモジュール有効化PDLジョブを使用してフィルタモジュールのセットアップを行うことができるので、ユーザ毎の環境に合わせてフィルタモジュール有効化をカスタマイズするというような場面におけるサービス部門への負荷を軽減することができる。
<第2実施形態>
第1実施形態においてはフィルタモジュール有効化PDLジョブを一つ処理した段階でフィルタセットアップモードフラグをfalseにしてフィルタセットアップを完了させる構成であったが、オペレータが操作パネルから明示的にフィルタセットアップを完了させる構成も考えられる。この構成では複数のPDLジョブを使用してフィルタセットアップを行うことが可能になり、一般ユーザの通常印刷データからフィルタのセットアップ(有効/無効設定)を行うことを目的に一定期間お試し期間を設定することを想定している。以下、第2実施形態を説明する。
図14は第2実施形態におけるフィルタセットアップの概要を説明する図である。図14はホストコンピュータ200からプリンタ100へコンピュータネットワーク300を介して通常のPDLジョブ480を複数回送信することによりフィルタのセットアップを行う様子を示すものである。与えられた期間の間にプリンタ100に転送されたPDLジョブの処理において、データ置換処理を実行したフィルタが有効化される。第1実施形態ではプリンタのサービスマンが開発部門から提供されたフィルタモジュール有効化PDLジョブ450を使用して選択的にフィルタを有効化する場合を想定した。これに対して、第2実施形態では、ユーザが一定期間フィルタセットアップモードを行うためのお試し期間を設け、お試し期間中にデータ置換が行われたフィルタを次のフィルタセットアップが行われるまで有効に設定することを想定している。
第2実施形態においても、フィルタを個別に有効化させるような特別なコマンドを定義するのではなく、PDLジョブそのものをフィルタモジュールの有効化に使用する点を特徴の一つとする。
図15は第2実施形態におけるフィルタセットアップ処理の操作を示す図である。本操作は図8で説明した第1実施形態とは異なり、フィルタセットアップモードのスタートとストップをオペレータがプリンタ100の操作パネル103にて行うものである。なお、フィルタセットアップモードのスタートからの所定期間の経過を内部カレンダーを参照して検出することにより自動的にフィルタのセットアップモードを終了するようにしてもよい。
図15(a)は、操作パネル103においてオペレータに対してフィルタセットアップモードをONにすることを促す様子を示すものである。オペレータはフィルタセットアップを行うのでONボタン180を選択する。なんらかの理由でフィルタセットアップを中止するのであればcancelボタン181を選択する。すると画面は図15(b)に切り替わり、プリンタの定常状態である印刷可能を示すメッセージが表示される。なおフィルタセットアップモードがONになっているため画面の左上(185)にその旨表示されている。これにより、フィルタセットアップモードのお試し期間中であることを示している。
この状態でユーザは通常の印刷処理を行う。お試し期間を終了するにあたりオペレータはメニューボタン182を選択し、フィルタセットアップモードのメニューを呼び出す。すると図15(c)に画面が切り替わる。図15(c)はフィルタセットアップモードが実行中であることを表示している。オペレータはフィルタセットアップモードを停止するのであればOFFボタン183を、フィルタセットアップモードを継続する場合はcancelボタン184を選択する。
以上の操作でプリンタ100のフィルタ部105に装備されたフィルタ1200,1300,1400のうち、、お試し期間中に機能した(データ置換を行った)フィルタのみが有効化される。
図16は実施形態2におけるフィルタセットアップモードの処理手順を示すフローチャートである。図16のフローチャートを参照して、図15で説明したオペレータ操作が行われた際のプリンタ100内部の処理について説明する。すなわち、オペレータがフィルタセットアップモードをONにした後、お試し期間中にユーザから転送されたPDLジョブに対してデータ置換を実行したフィルタのみを有効化するフィルタセットアップ処理を説明する。なお、本処理は制御部102及びフィルタ部105にて行われる。
オペレータが図15(a)に示すパネルの操作によりフィルタセットアップモードをONにすると処理はステップS5000からステップS5001へ進む。ステップS5001ではフィルタセットアップモードフラグ1100をfalseからtrueにする。この処理によりフィルタ部105はフィルタセットアップモードの状態となる。ステップS5002では、フィルタセットアップモードフラグ1100がfalseからtrueになったことを受けて全てのフィルタ1200,1300,1400のフィルタ有効化フラグ1202,1302,1402をtrueにセットし、置換検知フラグ1203,1303,1403をfalseにセットする。すなわち、フィルタセットアップモードが選択されると全てのフィルタのフィルタ有効化フラグがtrueに強制的にセットされてフィルタが有効化されるとともに、全てのフィルタの置換検知フラグがfalseに強制的にセットされる。本処理まで進んだ時点で操作パネル102は図15の(a)から(b)の画面へ移行する。
ステップS5003では、ホストコンピュータ200よりPDLジョブを受信し、これを処理する。このとき、各フィルタは図9に示す処理を行い、実際にデータの置換処理を行ったフィルタの置換検知フラグはtrueにセットされる。ステップS5003によるPDLジョブの受信、処理はフィルタセットアップモードがOFFされるまで(ステップS5004)、すなわちフィルタセットアップのお試し期間中にPDLジョブを受信した場合に実行されることになる。
オペレータが図15(c)に示すパネル操作によりフィルタセットアップモードをOFFにすると、ステップS5005へ進み、フィルタセットアップモードフラグ1100をtrueからfalseにする。ステップS5006では、ステップS5005でフィルタセットアップモードフラグ1100がtrueからfalseになったことを受けて。全てのフィルタ1200,1300,1400の各置換検知フラグ1203,1303,1403の状態を各フィルタ有効化フラグ1202,1302,1402にロードする。こうして、フィルタのセットアップがなされることになる。
以上のような第2本実施形態によれば以下の効果がある。すなわち、第1実施形態ではプリンタのサービスマンが開発部門から提供されたフィルタモジュール有効化PDLジョブを使用して選択的に指定したフィルタを有効化するのを想定したことに対し、第2実施形態2ではユーザが一定期間フィルタセットアップモードを行うためのお試し期間を設け、お試し期間中にデータ置換が行われたフィルタを恒久的に有効化する。このため、プリンタ設置先の印刷環境にあわせて実際に使用されるフィルタモジュールのみを有効化できることになり、ユーザはフィルタモジュールに関して別段詳細な知識を持つことなく、適切なフィルタモジュールの有効化(カスタマイズ)が可能になる。
以上のような各実施形態によれば、フィルタセットアップモードという処理モードを画像処理装置に備え、フィルタセットアップモード時には、PDLジョブを処理した際に複数存在するフィルタモジュールの各々においてフィルタ処理(データ置換処理)を行ったかを検知し、フィルタ処理を行ったフィルタモジュールが有効に設定される。このため、人間による手作業のセットアップ作業を排除でき、非常に簡単なオペレーションでフィルタモジュールの有効化を行えるようになる。すなわち、操作パネルやネットワークを介したリモートユーザーインターフェースなどを操作してオペレータが個々のフィルタモジュールの有効化セットアップを行うという従来の煩雑な作業に比べて、遥かに簡単な手順でのフィルタモジュールの有効化を行えるという効果がある。
尚、上記各実施形態では、フィルタセットアップモードの終了時に置換検知フラグの内容をロードするので、フィルタセットアップモードの期間中に処理を実行したフィルタのみが有効に設定されることになる。しかしながら、それまで有効に設定されていたフィルタはフィルタセットアップモードでの実行結果に関らず有効に保ちたい場合があるかもしれない。従って、オプションとして、フィルタセットアップモード開始前の有効の状態を保つようにしてもよい。これは、例えば、次のようにして実現できる。すなわち、フィルタセットアップモード開始時に置換検知フラグをfalseにセットする代わりに、フィルタセットアップモード開始直前の有効化フラグの状態を置換検知フラグへロードする(S4002、S5002)。そして、フィルタセットアップモード終了時に置換検知フラグの状態を有効化フラグへロードする。このようにすれば、開始直前の有効化状態を保つことができる。
<その他の実施形態>
以上のように本発明の実施形態を詳述したが、本発明は障害対応フィルタの配布にも適用できる。つまりユーザ個別にカスタマイズしたフィルタの不具合を修正するパッチフィルタを配布する場合である。本来、ユーザ個別にカスタマイズしたフィルタの不具合修正は、そのユーザのみに適用するものであるが、本発明を適用すれば、例えばユーザa用のパッチフィルタA、ユーザb用のパッチフィルタBを1つの実行プログラムの形でCD−ROMなどのメディアで配布し、ユーザ個別対応を意識することなく障害対応フィルタを適応させることができる。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
実施形態によるプリンタの構成例を示すブロック図である。 実施形態のプリンタにおけるフィルタ部の構成例を示すブロック図である。 マニュアルによるフィルタセットアップのためのユーザインターフェース例を示す図である。 第1実施形態によるフィルタセットアップの概念を説明する図である。 実施形態におけるフィルタモジュールの一例である互換化フィルタが行う処理を説明する図である。 実施形態におけるフィルタモジュールの一例である障害回避フィルタが行う処理を説明する図である。 実施形態におけるフィルタモジュールの一例である最適化フィルタが行う処理を説明する図である。 第1実施形態によるフィルタセットアップ処理のユーザインターフェース例を示す図である。 実施形態によるフィルタ処理を示すフローチャートである。 第1実施形態によるフィルタセットアップモードの処理を示すフローチャートである。 フィルタセットアップモードをONにした状態でのフラグの状態を示す図である。 フィルタ有効化PDLジョブを全てのフィルタにて処理した直後のフラグの状態を示す図である。 フィルタセットアップモード完了後のフラグの状態を示す図である。 第2実施形態におけるフィルタセットアップの概念を説明する図である。 第2実施形態におけるフィルタセットアップ処理のユーザインターフェース例を示す図である。 第2実施形態におけるフィルタセットアップモードの処理手順を示すフローチャートである。

Claims (8)

  1. 入力した印刷データ中の特定のデータに対して処理を加えるフィルタ処理部を有する複数のフィルタ処理モジュールと、
    刷データを前記複数のフィルタ処理モジュールへ提供する提供手段と、
    前記フィルタ処理部それぞれの有効または無効を設定する設定手段と、
    を備える画像処理装置であって、
    前記フィルタ処理部は、フィルタセットアップモード中においては、入力された印刷データの内容を変更する処理をした場合にのみ、当該フィルタ処理モジュールの置換検知フラグをtrueにセットするものであり
    前記設定手段は、前記置換検知フラグがtrueにセットされたフィルタ処理モジュールのみを、前記フィルタセットアップモードの終了後において有効に設定するものであることを特徴とする画像処理装置。
  2. 前記フィルタセットアップモード中に入力された印刷データとは、フィルタセットアップモードの開始指示から終了指示までの間に入力された印刷データであることを特徴とする請求項1に記載の画像処理装置。
  3. 前記複数のフィルタ処理モジュールのそれぞれのフィルタ処理部は、印刷データ中に現れる特定のデータパターンを検出し、検出したデータ部分を新たなデータで置換する処理を行うことを特徴とする請求項1に記載の画像処理装置。
  4. 前記設定手段によって有効に設定されなかったフィルタ処理部は、入力された印刷データをバイパスさせることを特徴とする請求項1に記載の画像処理装置。
  5. 入力したデータ中の特定のデータに対して処理を加えるフィルタ処理部を有する複数のフィルタ処理モジュールと、
    ータを前記複数のフィルタ処理モジュールへ提供する提供手段と、
    前記フィルタ処理部それぞれの有効または無効を設定する設定手段と、
    を備えるデータ処理装置であって、
    前記フィルタ処理部は、フィルタセットアップモード中においては、入力されたデータの内容を変更する処理をした場合にのみ、当該フィルタ処理モジュールの置換検知フラグをtrueにセットするものであり
    前記設定手段は、前記置換検知フラグがtrueにセットされたフィルタ処理モジュールのみを、前記フィルタセットアップモードの終了後において有効に設定するものであることを特徴とするデータ処理装置。
  6. 前記フィルタセットアップモード中に入力されたデータとは、フィルタセットアップモードの開始指示から終了指示までの間に入力されたデータであることを特徴とする請求項5に記載のデータ処理装置。
  7. 前記複数のフィルタ処理モジュールのそれぞれのフィルタ処理部は、データ中に現れる特定のデータパターンを検出し、検出したデータ部分を新たなデータで置換する処理を行うことを特徴とする請求項5に記載のデータ処理装置。
  8. 前記設定手段によって有効に設定されなかったフィルタ処理部は、入力されたデータをバイパスさせることを特徴とする請求項5に記載のデータ処理装置。
JP2004231431A 2004-08-06 2004-08-06 画像処理装置及びデータ処理装置 Expired - Fee Related JP4920879B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004231431A JP4920879B2 (ja) 2004-08-06 2004-08-06 画像処理装置及びデータ処理装置
US11/197,466 US7619757B2 (en) 2004-08-06 2005-08-05 Image processing apparatus and control method thereof, processing module drive control method, and data processing apparatus
CNB2005100893695A CN100405810C (zh) 2004-08-06 2005-08-05 图像处理装置及控制方法、驱动控制方法和数据处理装置
KR1020050071699A KR100734446B1 (ko) 2004-08-06 2005-08-05 화상 처리 장치 및 그 제어 방법, 처리 모듈의 구동 제어방법, 및 데이터 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004231431A JP4920879B2 (ja) 2004-08-06 2004-08-06 画像処理装置及びデータ処理装置

Publications (3)

Publication Number Publication Date
JP2006048534A JP2006048534A (ja) 2006-02-16
JP2006048534A5 JP2006048534A5 (ja) 2007-02-08
JP4920879B2 true JP4920879B2 (ja) 2012-04-18

Family

ID=35909322

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004231431A Expired - Fee Related JP4920879B2 (ja) 2004-08-06 2004-08-06 画像処理装置及びデータ処理装置

Country Status (4)

Country Link
US (1) US7619757B2 (ja)
JP (1) JP4920879B2 (ja)
KR (1) KR100734446B1 (ja)
CN (1) CN100405810C (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4174480B2 (ja) * 2005-02-21 2008-10-29 キヤノン株式会社 データ送信装置及びその制御方法とそれを用いた画像読取装置
JP2007164526A (ja) * 2005-12-14 2007-06-28 Canon Inc 情報処理装置及び方法
JP4810332B2 (ja) * 2006-02-20 2011-11-09 キヤノン株式会社 情報処理装置、印刷設定方法、記憶媒体、プログラム
US20080304096A1 (en) * 2007-06-08 2008-12-11 Jose Elwin Simon Maglanque System and method for adaptive filter chain document processing
JP5001755B2 (ja) * 2007-08-29 2012-08-15 株式会社リコー データ処理システム及びデータ処理方法
JP5657062B2 (ja) 2013-06-20 2015-01-21 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、およびプログラム
JP2016178385A (ja) 2015-03-18 2016-10-06 キヤノン株式会社 通信システム、情報処理装置、通信制御方法およびプログラム
US9971714B2 (en) * 2015-05-05 2018-05-15 Oath Inc. Device interfacing
DE102015120347A1 (de) * 2015-11-24 2017-05-24 Pilz Gmbh & Co. Kg Sicherheitssteuerungseinrichtung und Verfahren zur Änderung eines Funktionsumfangs einer Sicherheitssteuerungseinrichtung
KR20200025473A (ko) * 2018-08-30 2020-03-10 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 커스텀 프린터 필터를 포함하는 프린터 필터 파이프라인
JP7007603B2 (ja) * 2020-03-03 2022-01-24 ダイキン工業株式会社 撮影順序提示プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825461A (en) 1985-01-31 1989-04-25 Canon Kabushiki Kaisha Data communication apparatus for data and/or speech communication on a plurality of communication lines
US4827349A (en) 1985-04-30 1989-05-02 Canon Kabushiki Kaisha Communication terminal device
JPH03145259A (ja) 1989-10-31 1991-06-20 Canon Inc 複合電子機器
DE69220819T2 (de) * 1991-02-01 1997-11-20 Canon Kk Bildverarbeitungsverfahren und -gerät
JP3043541B2 (ja) 1993-06-23 2000-05-22 キヤノン株式会社 像形成装置,像形成システムおよびその像形成方法
JP3683387B2 (ja) * 1997-08-01 2005-08-17 シャープ株式会社 ネットワークコンピュータ内蔵プリンタおよびこれを備えたコンピュータネットワークシステム
JPH11282684A (ja) 1998-03-27 1999-10-15 Canon Inc 画像処理装置、画像処理装置の制御方法、および記憶媒体
JPH11306107A (ja) 1998-04-20 1999-11-05 Ricoh Co Ltd ネットワーク通信システムおよびネットワーク通信システムにおける周辺機器のソフトウェア更新・配布方法並びにその方法をコンピュータに実行させるプログラムを記録した機械読み取り可能な記録媒体
JP3555924B2 (ja) 1998-06-15 2004-08-18 Nec化合物デバイス株式会社 半導体受光素子
US6661526B1 (en) * 1999-05-04 2003-12-09 Hewlett-Packard Development Company, L.P. Printer drivers using filters that are operating system-independent and printer-independent
JP2002041261A (ja) * 2000-07-28 2002-02-08 Canon Inc 情報処理装置及び情報処理方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体
JP4227342B2 (ja) * 2002-02-27 2009-02-18 キヤノン株式会社 画像形成装置、画像形成方法、および記憶媒体
JP4066747B2 (ja) 2002-08-29 2008-03-26 株式会社村田製作所 測定装置
JP4194425B2 (ja) 2003-06-18 2008-12-10 キヤノン株式会社 画像処理装置及びデータ転送方法
JP4174480B2 (ja) 2005-02-21 2008-10-29 キヤノン株式会社 データ送信装置及びその制御方法とそれを用いた画像読取装置

Also Published As

Publication number Publication date
CN100405810C (zh) 2008-07-23
KR100734446B1 (ko) 2007-07-02
US20060039028A1 (en) 2006-02-23
CN1731818A (zh) 2006-02-08
KR20060050258A (ko) 2006-05-19
JP2006048534A (ja) 2006-02-16
US7619757B2 (en) 2009-11-17

Similar Documents

Publication Publication Date Title
KR100734446B1 (ko) 화상 처리 장치 및 그 제어 방법, 처리 모듈의 구동 제어방법, 및 데이터 처리 장치
US8804172B2 (en) Non-transitory computer readable recording medium stored with printer driver updating program and printer driver updating method
CN1731350B (zh) 图像处理设备及其控制方法以及数据处理设备
JP4164467B2 (ja) 画像処理装置、画像処理制御方法、及びプログラム
JP4817474B2 (ja) データ処理装置およびデ―タ処理方法およびコンピュ―タが読み出し可能なプログラムを格納した記憶媒体
US7256901B2 (en) Printer driver customization using incremental custom print processor
US20110242565A1 (en) Printer control system, printing method, and storage medium
US8627343B2 (en) Information processing apparatus and data output managing system
JP5499584B2 (ja) 印刷制御プログラム、情報処理装置、及び記録媒体
JPH11249851A (ja) ネットワーク印刷システム
JP2004005417A (ja) バンドリングによるソフトウェア管理
KR101219428B1 (ko) 필터를 동적으로 호출 가능한 인쇄방법, 상기 인쇄방법을수행할 수 있는 프로그램이 수록된 기록매체 및 호스트장치
CN101331453A (zh) 信息处理设备和方法
US7069294B2 (en) Browser based multiple file upload
JP2002287842A (ja) トライアル管理システム、プログラムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
CN102693101A (zh) 信息处理装置
JP4174381B2 (ja) 情報処理装置、分散印刷制御方法及び分散印刷制御プログラム
US20110242564A1 (en) Printer control system, printing method, and storage medium
US20130258377A1 (en) Printer control system, printing method, and storage medium
KR101405920B1 (ko) 잡 컨트롤 장치 및 복합장치 그리고 그들의 동작 방법
JP2007086887A (ja) 画像処理装置
US20120257242A1 (en) Information processing apparatus, information processing method, and storage medium
JP2019008673A (ja) 情報処理装置およびドライバーインストール方法
JP2006215720A (ja) 画像処理装置及びその制御方法
JP2019128856A (ja) プリンタードライバーのカスタマイズツール

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100409

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100806

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100816

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120202

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees