JP2006128939A - 画像形成装置 - Google Patents
画像形成装置 Download PDFInfo
- Publication number
- JP2006128939A JP2006128939A JP2004312733A JP2004312733A JP2006128939A JP 2006128939 A JP2006128939 A JP 2006128939A JP 2004312733 A JP2004312733 A JP 2004312733A JP 2004312733 A JP2004312733 A JP 2004312733A JP 2006128939 A JP2006128939 A JP 2006128939A
- Authority
- JP
- Japan
- Prior art keywords
- image
- processing
- block
- input
- data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
【課題】 本発明は、画像データ入出力の際に、システムに応じた分割サイズで常に処理を行うことにより、生産性の向上、小メモリによるコストダウン、リソースの有効利用ができる画像形成装置を提供することを目的とする。
【解決手段】 ある処理単位時間ProcTを基準にして、画像の入力中にいくつ割り込めるかの算出を行う。画像の入出力リングバッファ時間を処理単位時間ProcTで割ることで、画像の入力中にいくつ処理が割り込めるかが算出される。また、それぞれの処理に応じて、必要な二次アクセス単位時間も割り出しておき、上記一次データ中の割り込み数内に収まる処理内であればその実行を許可する。
【選択図】 図15
【解決手段】 ある処理単位時間ProcTを基準にして、画像の入力中にいくつ割り込めるかの算出を行う。画像の入出力リングバッファ時間を処理単位時間ProcTで割ることで、画像の入力中にいくつ処理が割り込めるかが算出される。また、それぞれの処理に応じて、必要な二次アクセス単位時間も割り出しておき、上記一次データ中の割り込み数内に収まる処理内であればその実行を許可する。
【選択図】 図15
Description
本発明は、画像の分割処理を行うと共に画像の形成処理を行う画像形成装置に関する。
画像形成装置において画像の印刷を行う際には、画像の入出力を行いつつ、画像の圧縮(伸長)、編集処理、二次記憶領域への蓄積を行っていた。この場合に、通常の画像データ量よりも画像データ量が多いと、通常の印刷よりも処理に時間がかかっていた。
そこで従来、画像データに対して、画像形成装置の制御によって、画像の分割を行いながら、画像形成を行うことで画像形成処理に遅れの出ないような技術が提案されている。
また、特許文献1では、印刷制御プログラムによって画像データのラスタ処理、各色プレーンの分割数の初期化を行い、展開されたイメージ画像データを圧縮した際のサイズを各プレーンに対してそれぞれ求め、サイズの転送スピード等から画像転送が間に合うかどうかの判断をし、間に合うと判断された場合には、画像データを実際に圧縮し、その後、プレーンの分割数をプリンタ本体の制御ユニットに通知するコマンドを発行し、実際にデータの転送処理を行う技術が提案されている。
特開2003−228221号公報
しかし、上記の技術では、画像データ量が大きい場合に、その処理に時間がかかる。そのため、画像の処理が終了するまで、使用するリソースが占有されたままの状態であり、他の動作の生産性に大きく影響を及ぼす。
また、一般的に画像の入出力より、画像の圧縮伸長、編集処理の方が時間的に早くできるため、画像入力待ち時間に他の処理を行うことができればパフォーマンス性の向上に資することになる。
本発明は、画像データ入出力の際に、システムに応じた分割サイズで常に処理を行うことにより、生産性の向上、小メモリによるコストダウン、リソースの有効利用ができる画像形成装置を提供することを目的とする。
請求項1記載の発明は、入力画像に対しバッファとしての機能を持つ一次記憶手段と、前記入力画像を前記一次記憶手段を介して保存する二次記憶手段と、前記入力画像の画像データの圧縮伸長を行う編集手段と、前記一次記憶手段および前記二次記憶手段に対するアクセス制御を行い、前記一次記憶手段に設けた前記バッファ領域と前記二次記憶手段相互の前記画像データの転送を制御する転送制御手段とを有する画像形成装置であって、前記転送制御手段により前記画像データの分割処理を行い、前記分割処理中に、前記分割処理に用いられるリソースを解放し、多重的に処理を実行することを特徴とする画像形成装置である。
請求項2記載の発明は、請求項1記載の発明において、前記転送制御手段は、入力される前記画像データ量が確定しているか否かに関わらず実行することを特徴とする。
請求項3記載の発明は、請求項1または2記載の発明において、前記転送制御手段は、前記画像データの出力を、前記分割処理を用いて実行することを特徴とする。
本発明により、画像データ入出力の際に、システムに応じた分割サイズで常に処理を行うことが可能となり、生産性の向上や小メモリによるコストダウンが実現できる。また、画像入力待ち時間に他の処理を行うことが可能となり、リソースの有効利用が実現できる。
図1は、本実施形態における画像形成装置のソフトウェア構成を示すブロック図である。画像形成装置1は、ソフトウェア群2と、画像形成装置起動部3と、ハードウェア資源4とを備える。
画像形成装置起動部3は、画像形成装置1の電源ON時に最初に実行され、ソフトウェア群2内のアプリケーション層5およびプラットフォーム6の起動を行う。例えば、画像形成装置起動部3は、アプリケーション層5およびプラットフォーム6のプログラムを、外部記憶手段であるハードディスク装置(HDD)等から読み出し、読み出した各プログラムをメモリ領域に転送して起動させる。
ハードウェア資源4は、白黒レーザプリンタ(B&W LP)11と、カラーレーザプリンタ(Color LP)12と、画像データの変換処理を行うMLC(Media Link Controller)43と、スキャナやファクシミリ等のその他のハードウェアリソース13とを有する。
ソフトウェア群2は、UNIX(登録商標)等のオペレーティングシステム(OS)上に起動されるアプリケーション層5とプラットフォーム6とを有する。アプリケーション層5は、プリンタ、コピー、ファックスおよびスキャナ等の画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを備える。また、プラットフォーム6は、アプリケーション層5からの処理要求を解釈してハードウェア資源4の獲得要求を発生するコントロールサービス層9と、1つ以上のハードウェア資源4の管理を行ってコントロールサービス層9からの獲得要求を調停するシステムリソースマネージャ(SRM)39と、SRM39からの獲得要求に応じてハードウェア資源4の管理を行うハンドラ層10とを有する。
アプリケーション層5は、プリンタ用のアプリケーションであるプリンタアプリ21と、コピー用アプリケーションであるコピーアプリ22と、ファックス用アプリケーションであるファックスアプリ23と、スキャナ用アプリケーションであるスキャナアプリ24とを有する。
コントロールサービス層9は、ネットワークコントロールサービス(NCS)31と、デリバリーコントロールサービス(DCS)32と、オペレーションパネルコントロールサービス(OCS)33と、ファックスコントロールサービス(FCS)34と、エンジンコントロールサービス(ECS)35と、メモリコントロールサービス(MCS)36と、ユーザインフォメーションコントロールサービス(UCS)37と、システムコントロールサービス(SCS)38とを有する。
また、プラットフォーム6は、予め定義されている関数によりアプリケーション層5からの処理要求を受信可能とするAPI(Application Program Interface)53を有するように構成される。OSは、アプリケーション層5およびプラットフォーム6の各ソフトウェアをプロセスとして並列実行する。
NCS31のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションの振り分けや、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。例えばNCS31は、ネットワークを介して接続される機器とのデータ通信を、httpd(HyperText Transfer Protocol Daemon)により、HTTP(HyperText Transfer Protocol)により制御する。
DCS32のプロセスは、蓄積文書の配信等の制御を行う。OCS33のプロセスは、ユーザと画像形成装置1本体との間の情報伝達手段であるオペレーションパネルの制御を行う。FCS34のプロセスは、アプリケーション層5からPSTNやISDN網を利用したファックス送受信、バックアップ用のメモリで管理される各種ファックスデータの登録や引用、ファックス読み取り、ファックス受信印刷等を行うためのAPIを提供する。
ECS35のプロセスは、白黒レーザプリンタ11、カラーレーザプリンタ12、その他のハードウェアリソース13等のエンジン制御を行う。MCS36のプロセスは、メモリの取得や開放、HDDの利用等のメモリ制御を行う。UCS37は、ユーザ情報の管理を行う。SCS38のプロセスは、アプリケーション管理、操作部制御、システム画面表示、LED表示、ハードウェア資源管理、割り込みアプリケーション制御等の処理を行う。
SRM39のプロセスは、SCS38と共にシステムの制御およびハードウェア資源4の管理を行う。例えばSRM39のプロセスは、白黒レーザプリンタ11やカラーレーザプリンタ12などのハードウェア資源4を利用する上位層からの獲得要求に従って調停を行い、実行制御する。具体的には、SRM39のプロセスは、獲得要求されたハードウェア資源4が利用可能であるか、言い換えれば他の獲得要求により利用されていないかどうかの判定を行う。利用可能であれば獲得要求されたハードウェア資源4が利用可能である旨の通知を上位層に行う。また、SRM39のプロセスは、上位層からの獲得要求に対してハードウェア資源4を利用するためのスケジューリングを行い、プリンタエンジンによる紙搬送や作像動作、メモリ確保、ファイル生成等の要求内容の直接実施を行う。
ハンドラ層10は、ファックスコントロールユニット(FCU)71の管理を行うファックスコントロールユニットハンドラ(FCUH)40と、プロセスに対するメモリの割り振り及びプロセスに割り振られたメモリの管理を行うイメージメモリハンドラ(IMH)41とを有する。SRM39およびFCUH40は、予め定義されている関数によりハードウェア資源4に対する処理要求を送信可能とするエンジンI/F54を利用して、ハードウェア資源4に対する処理要求を行う。
このように画像形成装置1は、各アプリケーションで共通的に必要な処理をプラットフォーム6で一元的に処理することができる。
次に、画像形成装置1のハードウェア構成について説明する。図2は、本実施形態における画像形成装置1のハードウェア構成を示す。画像形成装置1は、コントローラ60と、オペレーションパネル70と、FCU71と、USBデバイス72と、IEEE1394デバイス73と、エンジン部74とを含む。
コントローラ60は、CPU61と、システムメモリ62と、ノースブリッジ(NB)63と、サウスブリッジ(SB)64と、ASIC66と、ローカルメモリ67と、HDD68とを有する。
オペレーションパネル70は、コントローラ60のASIC66に接続される。また、MLC43、FCU80、USBデバイス90、IEEE1394デバイス100およびエンジン部120は、コントローラ60のASIC66にPCIバスにより接続される。
コントローラ60では、ASIC66に、ローカルメモリ67、HDD68等が接続されると共に、CPU61とASIC66とがCPUチップセットのNB63を介して接続される。このように、NB63を介してCPU61とASIC66とを接続すれば、CPU61のインタフェースが公開されていない場合に対応できる。
なお、ASIC66とNB63とはPCIバスを介して接続されているのでなく、AGP(Accelerated Graphics Port)65を介して接続される。このように、アプリケーション層5やプラットフォーム6を形成する一つ以上のプロセスを実行制御するため、ASIC66とNB63とを低速のPCIバスでなくAGP65を介して接続し、パフォーマンスの低下を防いでいる。
CPU61は、画像形成装置1の全体制御を行う。CPU61は、NCS31と、DCS32と、OCS33と、FCS34と、ECS35と、MCS36と、UCS37と、SCS38と、SRM39と、FCUH40と、IMH41とをOS上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層5を形成するプリンタアプリ21と、コピーアプリ22と、ファックスアプリ23と、スキャナアプリ24とを起動して実行させる。
NB63は、CPU61と、システムメモリ62と、SB64と、ASIC66とを接続させるためのブリッジである。システムメモリ62は、画像形成装置1の描画用メモリ等として用いるメモリである。SB64は、NB63とROM、PCIバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ67はコピー用画像バッファ、符号バッファとして用いるメモリである。
ASIC66は、圧縮伸張器や編集器等の画像処理用のハードウェア要素を有する画像処理用途向けのICである。HDD68は、画像データの蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積等を行うためのストレージである。また、オペレーションパネル70は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
次に、本実施形態において画像データが入力された際の、画像データの入力処理の制御を説明する。スキャナによる画像読み込み等により画像データが入力されると、圧縮伸長器に送り込まれ圧縮伸長処理がなされる。入力され圧縮伸長された画像データは、一旦一次記憶部である画像メモリに格納される。そして、格納された画像データは、二次記憶装置(二次記憶部)の記憶領域に転送され、蓄積される。二次記憶装置は、本実施形態においてはHDD68が該当する。
一次記憶部の記憶領域の取得および開放の管理を行うために、画像IDテーブル、ディスクリプタテーブル、ブロックテーブルの3つの管理テーブルが用いられる。
まず、画像IDテーブルについて説明する。図3は、画像IDテーブルの構成を示すブロック図である。画像IDテーブルは、0〜nからなるテーブルIDの下で、1テーブルが画像IDと、開始ディスクリプタテーブルIDから構成される。画像IDは、一次記憶部、二次記憶装置で特有なID(識別情報)である。開始ディスクリプタテーブルIDは、最初に取得したディスクリプタテーブルのIDを示す。画像IDテーブルの初期状態(未使用状態)においては、画像IDにはNULL、開始ディスクリプタテーブルIDにはEOD(End Of Discriptor)が設定される。
次に、ディスクリプタテーブルについて説明する。図4は、ディスクリプタテーブルの構成を示すブロック図である。ディスクリプタテーブルは、0〜nからなるテーブルIDの下で、1テーブルが、開始ブロックIDと、使用ブロック数と、次ディスクリプタテーブルIDから構成される。開始ブロックIDは、最初に取得したブロックのIDを示す。使用ブロック数は、開始ブロックから連続的に取得しているブロック数を示す。次ディスクリプタテーブルIDは、次のディスクリプタテーブルのIDを示す。これにより、二次記憶装置であるHDD68の記憶領域を連続的に取得できない場合に、チェーン構造として、記憶領域を不連続的に取得して管理することが可能となる。
開始ブロックIDとして、EOB(End Of Block)コードが挿入されていると、未使用ディスクリプタと判定できる。また、次ディスクリプタテーブルIDに、EOT(End Of Table)コードが挿入されていると、チェーン構造の最後にあたるテーブルと判定できる。ディスクリプタテーブルの初期状態(未使用状態)においては、開始ブロックにはEOB、使用ブロック数には0、次ディスクリプタテーブルIDにはEOTが設定される。
次に、ブロックテーブルについて説明する。図5は、ブロックテーブルの構成を示すブロック図である。ブロックテーブルは、二次記憶装置であるHDD68の記憶領域を固定長サイズ(ブロック)に細分化し、1ブロックの使用状態を1ビットで表すことでHDD68の記憶領域の使用状態を示すテーブル表である。"0"は未使用ブロック、"1"は使用ブロックを表し、これにより記憶領域の使用状態を管理する。ブロックテーブルの初期状態(未使用状態)は"0"である。
次に、画像IDテーブル、ディスクリプタテーブル、ブロックテーブルにより管理された一次記憶部である画像メモリの記憶領域において、連続した領域、分断された領域を確保し、入力画像データ(圧縮後の変換データを含む)を格納するための記憶領域を取得する処理についての制御フローを説明する。図6、図7、図8は、記憶領域の取得処理に係わる制御フローを示す図である。
記憶領域の取得要求が発生すると、まず、入力値のパラメータチェックが行われる(S101)。記憶領域の取得の際には、画像IDと、取得するブロックの連続性を指示する連続ブロック数と、該連続ブロック数を複数取得指示可能にするディスクリプタテーブル個数とが入力値として必要であるため、これらのパラメータに異常がないかチェックがなされる。入力値を示すパラメータに異常があれば(S101/No)、「入力パラメータ異常」を返し、取得処理を抜ける(S108)。
次に、画像IDテーブル取得処理時に用いられるテーブルIDカウンタ(画像IDテーブルを指示するカウンタ)および取得済ブロックテーブルカウンタの変数の初期化を行う(S102)。ここで、初期化とは変数を0にすることである。
次に、画像IDテーブルの取得が行われる。画像IDテーブルの取得は、未使用テーブル、すなわち画像IDがNULL値になっているテーブルを画像IDテーブルの先頭からループ検索することで行われる。ループ検索を実行し、テーブルIDカウンタが最終テーブルID値になった場合には、テーブルが全て使用されているため、テーブルIDカウントがFULLであるか否かのチェックを行う(S104)。FULLである場合(S104/Yes)、画像IDテーブル取得不能と判定し、「画像IDテーブルFULL」であることを返し、処理を抜ける(S109)。テーブルIDカウントがFULLではない場合(S104/No)、テーブルIDカウントがNULL値になるまで、つまり空き画像IDテーブルが存在するまで、テーブルIDカウンタを加算し、画像IDテーブルをループ検索する(S106/No、S105)。空き画像IDテーブを検索した場合は(S106/Yes)、対象画像IDテーブルの画像IDに要求画像IDを設定する(S107)。
次に、ディスクリプタテーブルの取得が行われる。まず、ディスクリプタ取得処理に必要なテーブルIDカウンタ(ディスクリプタテーブルを指示するカウンタ)と前ディスクリプタテーブルIDの初期化を行う(S101)。ここで、初期化とは、変数を0にし、前ディスクリプタテーブルID(変数)をEODにすることである。
ディスクリプタテーブルの取得は、開始ブロックがEOBになっているテーブルをディスクリプタテーブルの先頭からループ検索することで行われる。ループ検索を実行し、テーブルIDカウンタが最終テーブルID値になった場合には、テーブルが全て使用されているため、テーブルIDカウントがFULLであるか否かのチェックを行う(S112)。テーブルIDカウントがFULLである場合(S112/Yes)、ディスクリプタテーブル取得不能と判定し、「ディスクリプタテーブルFULL」であることを返し、処理を抜ける(S119)。テーブルIDカウントがFULLではない場合(S112/No)、開始ブロックがEOBになるまで、つまり空きディスクリプタテーブルが存在するまで、テーブルIDカウンタを加算し、ディスクリプタテーブルをループ検索する(S114/No、S113)。
上記のループ検索の結果、空きディスクリプタテーブルが存在した場合は(S114/Yes)、前ディスクリプタテーブルIDがEOTであるか否かにより以後の処理が分けられる。前ディスクリプタテーブルIDがEOTである場合は(S115/Yes)、最初のディスクリプタテーブルと判定し、上記ステップで取得済の画像IDテーブルの開始ディスクリプタテーブルIDに、テーブルIDカウンタ値で表される検索したディスクリプタテーブルIDを設定する(S117)。他方、前ディスクリプタテーブルIDにEOT以外の値が代入されている場合は(S115/No)、前ディスクリプタテーブルIDに設定されているディスクリプタテーブルの次ディスクリプタテーブルIDに、テーブルIDカウンタ値で表される検索したディスクリプタテーブルIDを設定する(S116)。上記処理後、前ディスクリプタテーブルIDに前ステップで取得したディスクリプタテーブルIDを設定し、取得済ディスクリプタテーブルカウンタのカウントアップを行う(S118)。
最後に、ブロックテーブル取得を行う。まず、ブロック取得処理に必要なブロックIDカウンタと、開始ブロックIDと、未使用ブロックカウンタの変数の初期化を行う(S121)。ここで初期化とは、変数を0にすることである。
ブロックテーブルの取得は、0(未使用)になっているビットをブロックテーブルの先頭からループ検索することで行われる。ループ検索でブロックIDカウンタが最終ブロックID値になった場合、全て使用されているため、テーブルIDカウントがFULLであるか否かのチェックを行う(S122)。テーブルIDカウントがFULLである場合(S122/Yes)、ブロック取得不能と判定し、「ブロックテーブルFULL」を返し、処理を抜ける(S133)。対象ブロックが存在し、ブロックテーブルを検索した結果、その対象ブロックのビットが1(使用)の場合は(S125/Yes)、連続ブロック数が途切れるので、未使用ブロックカウンタをリセットし(S124)、ブロックIDカウンタを加算し(S123)、ループ検索を続ける。
検索の結果、空きブロックが存在した場合は(S125/No)、未使用ブロックカウンタがリセットされているか、即ち0であるか判定がなされる(S126)。0である場合には、連続ブロックの最初であるから、連続取得の開始ブロックと判断し、画像IDテーブルの開始ブロックIDにブロックIDカウンタ値(現対象ブロックを示す)を保存し(S127)、未使用ブロックカウンタの1加算(カウントアップ)を行う(S128)。なお、未使用ブロックカウンタが0でない場合(S126)、すなわち対象ブロックが連続取得の開始ブロックではない場合は、未使用ブロックカウンタの1加算(カウントアップ)を行う(S128)。
最後に、未使用ブロックカウンタ値が連続ブロック数として設定される値に達したか、即ち要求されたブロック数分取得できたかの判定がなされる(S129)。取得できていない場合は(S129/No)、ブロックIDカウンタを加算させ(S123)、次ブロックの検索を続ける。要求されたブロック数分取得できた場合は(S129/Yes)、現在取得中のディスクリプタテーブルの開始ブロックに開始ブロックIDを、使用ブロック数には未使用ブロックカウンタのカウント値を設定する。また、ブロックテーブルの今回取得分のブロックに対し、使用を意味する"1"を設定する(S130)。
最後に、入力パラメータ中に設定されている要求ディスクリプタテーブル個数と、取得済ディスクリプタテーブルカウンタのカウント値との比較を行う(S131)。要求ディスクリプタテーブル個数と取得数が一致した場合は(S131/Yes)、取得完了と判断して、「取得完了」を返し、処理を抜ける(S132)。他方、要求ディスクリプタテーブル個数と取得数が一致しない場合は(S131/No)、次ディスクリプタテーブルを取得するため、S111に戻り、ディスクリプタテーブルの取得シーケンスを行う。
次に、一次記憶部の解放処理について説明する。一次記憶部に確保された領域はバッファとして機能するものであり、次の転送先である二次記憶装置への転送が終わると、取得していた記憶領域は解放され、次データのためのバッファ領域として使用される。この解放処理の制御フローを図9、図10を参照して説明する。
記憶領域の解放要求が発生すると、まず、入力値のパラメータチェックが行われる(S201)。記憶領域の解放の際には、対象画像の画像IDが入力値として必要であるため、このパラメータに異常がないかチェックがなされる。入力値を示すパラメータに異常があれば(S201/No)、「入力パラメータ異常」を返し、解放処理を抜ける(S208)。
対象画像の解放処理の始めに、画像IDテーブル検索処理時に必要なテーブルIDカウンタ(画像IDテーブルを指示するカウンタ)の初期化を行う(S202)。ここで初期化とは、変数を0にすることである。
まず、画像IDテーブルの検索が行われる(S203)。画像IDテーブルの検索は、画像IDテーブルの画像IDが対象画像の画像IDと一致するまで画像IDテーブルの先頭からループ検索することでなされる。ループ検索を行い、テーブルIDカウンタが最終テーブルID値になった場合は、テーブルIDカウントがFULLであるか否かのチェックがなされる(S204)。テーブルIDカウントがFULLである場合は(S204/Yes)、対象画像の画像IDテーブルの取得不能と判定し、「該当画像IDテーブルなし」を返し、処理を抜ける(S207)。他方、テーブルIDカウントがFULLではない場合は(S204/No)、テーブルIDカウントが対象画像IDと一致する値になるまで、テーブルIDカウンタを加算し、画像テーブルをループ検索する(S206/No、S205)。ループ検索の結果、対象画像の画像IDと一致する画像IDテーブルが存在した場合は(S206/Yes)、ディスクリプタテーブルの解放、ブロックテーブルの解放を実行するために、次工程に移行する。
次の工程では、検索した画像IDテーブルの開始ディスクリプタテーブルIDをもとに、対象画像の画像IDが使用している最終ディスクリプタテーブルを検索していく。最終ディスクリプタテーブルかどうかの判定は、そのディスクリプタテーブルの次ディスクリプタテーブルIDがEOTになっているか否かでなされる。
ディスクリプタテーブルの解放順は、そのチェーン構造上、最後のテーブルから解放しなければならない。そこで、まず、画像IDテーブルに入力されている開始ディスクリプタテーブルIDをディスクリプタテーブルIDカウンタに、前ディスクリプタテーブルIDをEOTに設定する(S211)。そして、ディスクリプタテーブルIDカウンタからディスクリプタテーブルのループ検索を行う。ディスクリプタテーブルIDカウンタが最終テーブルID値(FULL)になっても、目的のテーブルが検索できない場合は(S212/Yes)、ディスクリプタテーブルに何らかの異常が生じていると判定し、「ディスクリプタテーブル異常」を返し、処理を抜ける(S218)。
ディスクリプタテーブルを検索した結果、テーブルIDカウンタ値のIDを持つディスクリプタテーブルに記載した次ディスクリプタテーブルIDがEOT以外の場合(S214/No)、前ディスクリプタテーブルIDとして現テーブルIDカウンタが示す値を設定してから、テーブルIDカウンタに次ディスクリプタテーブルIDを再設定し(S213)、S212に戻る。
他方、ディスクリプタテーブルを検索した結果、テーブルIDカウンタ値のIDを持つディスクリプタテーブルに記載した次ディスクリプタテーブルIDがEOTの場合は(214/Yes)、前ディスクリプタテーブルIDのディスクリプタテーブルに記載した次ディスクリプタテーブルIDをEOTに設定する(S215)。
上記の制御フローで解放対象ディスクリプタテーブルIDが決定されると、その決定されたディスクリプタテーブルIDのブロックテーブルの解放が実行される。ブロックの解放は、開放対象のディスクリプタテーブル中に示される開始ブロックIDおよび使用ブロック数に基づいて、開始ブロックと使用ブロック数分のブロックビットをリセットする、すなわち未使用を示す0に設定することにより実行される(S216)。これで、対象ディスクリプタテーブルの解放処理が完了する。
なお、解放処理は1テーブルずつ実行されるので、複数テーブルがチェーン構造でつながっている場合には、次のテーブルの開放処理を行う必要がある。そのため、前ディスクリプタテーブルIDを参照し、EOTが設定されているかのチェックを行う(S217)。チェックの結果、EOTが設定されている場合は(S217/Yes)、対象画像の全てのディスクリプタテーブルとブロックテーブルの解放が完了したと判定し、処理を抜ける。他方、EOTが設定されていない場合は(S217/No)、次のテーブルの開放を行うために、テーブルIDカウンタに前ディスクリプタテーブルIDを設定して(S219)、S212に戻り、再び解放処理を行い、EOTが設定されているテーブルに至るまで最後のテーブルから順に解放処理を継続する。
次に、二次記憶装置における記憶領域の取得、解放について説明する。本実施形態では、二次記憶装置にはHDD68が該当する。一次記憶部である画像メモリに確保されたバッファ領域に送られた圧縮データは、二次記憶装置であるHDD68に転送され、データとして蓄積される。
二次記憶装置の記憶領域の取得、解放処理は、一次記憶部の取得、解放処理と共通の構造に従い実施される。図3〜5で示したものと同様のテーブルによるデータ構造を用いる。従って、ここではその説明を省略する。なお、ブロックテーブルについては、一次記憶部に比べ記憶領域の容量が大きいため固定長サイズにブロック化する際の単位を、論理アドレス上連続する複数のセクタの固まりで管理する。また、二次記憶装置にはアクセス不可能な領域保存するためにアクセス禁止セクタテーブルが設けてられている。
一般に、HDDへのアクセスは、物理アドレス方式ではなく論理アドレス方式で行われる。論理アドレスで指定したセクタが不良セクタである場合、HDDはセクタを自動的に代替セクタ領域に割り当て直し、論理アドレス上は連続して使用可能なように制御する。しかし、物理アドレス上では、不良セクタを代替セクタに割り当ててしまった結果として、不良セクタアドレス前後はアドレスが不連続となる。このため、データのやりとりに際してヘッドシークが発生してしまい、データ転送時間に影響が生じてしまう。アクセス禁止セクタテーブルは、記憶領域の取得の際にアクセスの対象とならないように、または、HDD68の代替セクタ処理により隠蔽される不良セクタの存在を論理アドレスとの関係で知ることができるようにするための管理テーブルであり、これによりヘッドシークの発生を抑制することが可能となる。
図11は、二次記憶装置アクセス禁止セクタテーブルの構成を示すブロック図である。アクセス禁止セクタテーブルは、不良セクタのみをテーブルに登録する。登録は、テーブル0〜nに不良セクタID(セクタアドレス)を記録する形でなされる。テーブル0〜nの初期状態は“0”とされるが、これだとセクタ0がアクセス禁止セクタと誤検出してしまうことが起こり得る。これを回避するために、アクセス禁止セクタテーブルは、アクセス禁止セクタとして登録されたセクタの計数(カウント)を行うための登録セクタカウンタ90を備えている。これにより、登録セクタカウンタ90が"0"を示す場合はアクセス禁止セクタが登録されていないことを表す。
アクセス禁止セクタテーブルと登録セクタカウンタ90は、二次記憶装置に保存され、電源投入時に二次記憶装置から一次記憶部へ転送されることで、参照可能となる。なお、アクセス禁止単位をブロック化単位でなく、セクタ単位で管理している理由は、ブロック化する際のセクタ数が変更になった場合や、二次記憶装置のパーティション変更等で使用可能な先頭セクタアドレスが変更になり、その結果先頭ブロックの開始セクタずれが生じ、登録しておいた不良セクタとブロックとの整合性がとれなくなってしまった場合に対応できるように考慮した結果である。
図を参照して、アクセス禁止セクタテーブルへの登録動作を説明する。図12は、不良セクタをアクセス禁止セクタとして登録する場合の動作フローを示す。
不良セクタは通常、HDD68読み出し時にHDD68が装備した検出手段により検出される。そこで、読み出し動作の実行をトリガとして、アクセス禁止セクタ登録動作を開始する。まず、HDD68の読み出しを行い、その際に読み出しセクタが不良セクタであるか否かのチェックがなされる(S301)。ここで、不良セクタと評価されなければ(S301/No)、そのまま処理を抜ける。他方、不良セクタと評価される場合は(S301/Yes)、アクセス禁止セクタテーブルを管理するための登録セクタカウンタ90を1加算し、アクセス禁止セクタテーブルのテーブル中の「登録カウンタ値−1」のテーブルに不良セクタアドレス(物理アドレス)を登録し、処理を抜ける(S302)。これによりアクセス禁止セクタの登録がなされる。
なお、登録セクタカウンタ90に限界値を設定し、登録カウンタ数が限界値を超えてしまった場合は、不良セクタ等でアクセス禁止セクタが多発しているためHDD68の信頼性が低下していることを理由に交換指示を促す等の動作を行うようにしてもよい。
次に、図13を参照して、アクセス禁止セクタテーブルに登録したアクセス禁止セクタを二次記憶装置のブロックテーブルに反映させるための制御を説明する。まず、内部ループ処理用のカウンタであるループカウンタのリセット、初期化を行う(S311)。そして、初期化したループカウンタ値と登録セクタカウンタ値(登録済みアクセス禁止セクタ数)の比較を行い、カウンタ値が等しければ(S312/Yes)、未処理のアクセス禁止セクタは存在しないとしてループ処理を抜ける。他方、カウンタ値が一致しない場合には(S312/No)、未処理のアクセス禁止セクタが存在するので、アクセス禁止セクタテーブルから「ループカウンタ番目」のテーブルのセクタIDを取得し、そのセクタのブロック変換を行う(S313)。このブロックIDにより指示されるブロックテーブル中の対象ブロックを予め使用ブロック状態、即ち"1"(使用状態)に設定し、ループカウンタを1加算し(S314)、S312に戻る。このように制御することで、未登録アクセス禁止セクタは形式的に使用状態扱いとなり、アクセスされなくなる。
次に、入力画像に対してデータ圧縮(データ変換)を施した後、圧縮処理後の画像データを一次記憶部のバッファ領域を経由して二次記憶装置に保存する際の制御について説明する。この処理において、画像転送の際に行われる各記憶手段における記憶領域の取得及び開放処理は、上記した取得/開放処理手段を用いる。上記した取得/開放処理手段を用いることにより、転送先の記憶領域を任意の容量で取得可能となるので、データ転送を1回の転送操作で行うことや、分割転送で行うことが可能になる。
図14は、1回の転送操作で一次記憶領域のデータ転送を行う場合の制御フローを示す。まず、圧縮等のデータ変換後の1画像分のデータ量が全て保持可能な容量を持つバッファ領域を一次記憶領域に確保する(S401)。この際、圧縮伸長器の特性によりデータ圧縮前の容量を越えてしまう可能性がある場合は、その分も考慮して領域を確保する。次に、圧縮伸長器を用いデータの編集/圧縮を行い(S402)、圧縮した画像データを確保したバッファ領域に格納する(S403)。格納完了後、二次記憶装置の記憶領域にデータ圧縮後の容量を確保する(S404)。この場合、バッファ領域に保持された1画像分の変換データ量は圧縮処理時にカウントされ既知であるので、この量を1回の転送操作により転送先であるHDDに確保すべき容量として設定することにより、記憶領域を過不足無く確保することができる。HDD68への転送も1回の操作よって転送を完了させるので、HDD68に取得する記憶領域は連続領域で確保することになる。連続領域の確保を行うときに、不良セクタが登録されたアクセス禁止セクタテーブルのデータを反映させたブロックテーブルを使用することにより、不良セクタの使用を回避して領域の確保が行われる。HDD68に連続領域を確保した後、画像メモリのバッファ領域のデータをHDD68の確保した記憶領域に転送する(S405)。転送終了後、画像メモリに確保したバッファ領域を解放し(S406)、フローを終了させる。
図15は、データ保存を複数の分割転送により行う場合の制御フローを示す。まず、圧縮等のデータ変換後のデータを分割格納するバッファ領域として固定容量を画像メモリに確保する(S411)。なお、確保する領域は固定容量であるため圧縮変換後のデータサイズと関係無く決められる。この後、圧縮伸長器を用いてデータ編集/圧縮を行い(S412)、圧縮した画像データを確保した固定容量のバッファ領域に格納する(S413)。このとき、確保した固定容量のバッファ領域ではデータ圧縮が完了しない場合があるので、圧縮伸長器の終了応答により処理を変える必要がある。そのため確保した固定容量の領域中、使用した容量分をHDD68に領域確保し(S414)、この確保した領域にバッファ領域で一時格納した変換データを転送する(S415)。
転送完了後、データ圧縮の完了/未完了を判断するために、圧縮伸長器の終了応答の有無確認を行う(S416)。終了応答のない場合、つまり圧縮未完了の場合は(S416/No)、データ圧縮を完了させるまで、圧縮処理からのループ処理を繰り返す。ここで、未完了の圧縮処理を継続する場合、データ圧縮した次のデータは、前に使用したものと同じ固定容量のバッファ領域に上書きされる。終了応答があった場合、つまり転送終了の場合は(S416/Yes)、画像メモリに確保したバッファ領域を解放し(S417)、処理動作を完了する。
画像形成の際に分割処理を行う場合では、所定の単位長さ、あるいは所定サイズの画像の入力をトリガとして二次記憶領域への画像の蓄積が開始される。一般に画像データの入力(一次データ)速度より、編集圧縮、二次記憶領域への画像の蓄積(二次アクセス)速度の方が速いので、後者を行う際にはリソースに時間的余裕が存在する。
そこで、本実施形態においては、データ転送を分割処理で行う際に、画像の入力をリングバッファ的に扱い、一次記憶領域の画像データが上書きされ、編集圧縮、二次記憶領域への画像の蓄積が行われるまで、そのリソースを開放しておくことにより、他の処理で必要とされていた場合リソースを明け渡すことが可能となる。
この際に、他の処理が割り込める数や時間等は、システムの性能に依存するので一概に基準を設けることは難しい。また、処理の内容によっては、他の処理が規定時間内に終わるかどうかが明確になっている必要があるので、割り込み可能な処理の数・時間は算出される必要がある。
そこで、ある処理単位時間ProcTを基準にして、画像の入力中にいくつ割り込めるかの算出を行う。画像の入出力リングバッファ時間を処理単位時間ProcTで割ることで、画像の入力中にいくつ処理が割り込めるかが算出される。また、それぞれの処理に応じて、必要な二次アクセス単位時間も割り出しておき、上記一次データ中の割り込み数内に収まる処理内であればその実行を許可する。
このように処理することにより、少量の一次記憶領域と二次記憶領域で、画像データサイズの大きい画像に関しても画像を形成することが可能となる。また、画像形成の際に、他の各処理の処理時間や優先度に応じた割り込み処理を入れることが可能となる。これにより、パフォーマンス性の向上が実現可能となる。
第二の実施形態について説明する。本実施形態において、画像形成装置は、入力される画像データ量が未確定の場合、一次データのリングバッファ展開中に一次データ終了通知を受けることにより、画像入力の終了の検知を行う。また、二次アクセスが前のリングバッファを処理中だった場合は、次回の二次アクセス量を実データ量にし、二次アクセスと一次データの展開リングバッファが同じ場合は、リングバッファのサイズが終わるまで行い、後にサイズ調整を行う。これにより、画像データの保障を行うことが可能となり、ライン数が確定しない長尺等の画像データサイズの大きい画像に対して、読み込んだ画像のサイズに合わせることが可能となる。
第三の実施形態について説明する。本実施形態において、画像形成装置は、出力する際に必要とされる画像領域が二次記憶領域のどのあたりにあるかを、画像ID、テーブルID、ディスクリプタ等の情報を元に特定を行う。これにより、出力画像対象部分を判断し、余計な部分を二次記憶領域から読み出さない処理を行うので、大量画像データに対しても、任意の部分のみを読み出し、高速に画像を出力展開することが可能となる。
1 画像形成装置
61 CPU
68 HDD
90 登録セクタカウンタ
61 CPU
68 HDD
90 登録セクタカウンタ
Claims (3)
- 入力画像に対しバッファとしての機能を持つ一次記憶手段と、
前記入力画像を前記一次記憶手段を介して保存する二次記憶手段と、
前記入力画像の画像データの圧縮伸長を行う編集手段と、
前記一次記憶手段および前記二次記憶手段に対するアクセス制御を行い、前記一次記憶手段に設けた前記バッファ領域と前記二次記憶手段相互の前記画像データの転送を制御する転送制御手段とを有する画像形成装置であって、
前記転送制御手段により前記画像データの分割処理を行い、
前記分割処理中に、前記分割処理に用いられるリソースを解放し、多重的に処理を実行することを特徴とする画像形成装置。 - 前記転送制御手段は、入力される前記画像データ量が確定しているか否かに関わらず実行することを特徴とする請求項1記載の画像形成装置。
- 前記転送制御手段は、前記画像データの出力を、前記分割処理を用いて実行することを特徴とする請求項1または2記載の画像形成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004312733A JP2006128939A (ja) | 2004-10-27 | 2004-10-27 | 画像形成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004312733A JP2006128939A (ja) | 2004-10-27 | 2004-10-27 | 画像形成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006128939A true JP2006128939A (ja) | 2006-05-18 |
Family
ID=36723167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004312733A Withdrawn JP2006128939A (ja) | 2004-10-27 | 2004-10-27 | 画像形成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006128939A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009152878A (ja) * | 2007-12-20 | 2009-07-09 | Ricoh Co Ltd | 画像処理装置及びデータ消去方法 |
-
2004
- 2004-10-27 JP JP2004312733A patent/JP2006128939A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009152878A (ja) * | 2007-12-20 | 2009-07-09 | Ricoh Co Ltd | 画像処理装置及びデータ消去方法 |
US8107337B2 (en) | 2007-12-20 | 2012-01-31 | Ricoh Company, Ltd. | Image processing apparatus and data erasing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7185151B2 (en) | Data processing device characterized in its data transfer method, program for executing on a computer to perform functions of the device, and computer readable recording medium storing such a program | |
JPH10289074A (ja) | 多機能印刷システムにおけるジョブ処理管理方法 | |
JP4612176B2 (ja) | 多機能印刷方法及び多機能印刷システム | |
JP4544728B2 (ja) | 低優先度ジョブから高優先度ジョブへのリソース移転の最適化方法および装置 | |
JP2006203655A (ja) | 画像形成装置設定方法、画像形成装置 | |
US7145681B2 (en) | Apparatus and method for processing divided image data | |
EP1308793B1 (en) | Image forming device having a memory assignment unit | |
JP6343913B2 (ja) | 画像形成装置及び画像形成装置の制御方法 | |
JP4001531B2 (ja) | 画像形成装置 | |
JP2006128939A (ja) | 画像形成装置 | |
JP5233608B2 (ja) | 画像形成装置、画像データ転送方法、及びプログラム | |
JP3857598B2 (ja) | データ転送方法およびそのデータ転送方法を利用するデバイス制御モジュール,画像形成装置 | |
JP2012061639A (ja) | 画像形成装置および印刷制御方法 | |
JPH10320156A (ja) | 多機能印刷システム | |
JP2004343157A (ja) | 画像形成装置 | |
JP4148680B2 (ja) | 画像処理装置 | |
JP2005064688A (ja) | 記憶装置および画像形成装置 | |
JP5168220B2 (ja) | 画像形成装置 | |
JP2006027055A (ja) | 画像形成方法及び画像形成装置 | |
JP2005202890A (ja) | 画像形成装置、ハードディスク管理方法 | |
JP3932275B2 (ja) | 画像入出力装置 | |
JP2002268940A (ja) | 画像処理装置 | |
JP2005189972A (ja) | 画像処理装置 | |
JP2003298820A (ja) | 画像形成装置 | |
JP2009070208A (ja) | 画像処理装置およびメモリ確保方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080108 |