画像処理装置
【課題】 受信した複数の圧縮受信ファイル順次解凍処理することにより、メモリ消費量の低減を図った画像処理装置を提供する。
【解決手段】 複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部4と、
アーカイブファイルを保存する記憶部11と、記憶部11に保存されたアーカイブファイル中の各圧縮ファイルを解凍する解凍部15と、解凍部15により、部分的に解凍された各圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部16とを備える。解凍部15は、メモリ管理部16の管理情報に従って複数の圧縮ファイルを順次解凍する。
【解決手段】 複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部4と、
アーカイブファイルを保存する記憶部11と、記憶部11に保存されたアーカイブファイル中の各圧縮ファイルを解凍する解凍部15と、解凍部15により、部分的に解凍された各圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部16とを備える。解凍部15は、メモリ管理部16の管理情報に従って複数の圧縮ファイルを順次解凍する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、圧縮されたデータを受信し、該受信データを解凍処理して画像出力する画像処理装置に関するものである。
【背景技術】
【0002】
外部端末等から送られるデータを受信して画像出力する装置として、例えば、特許文献1が知られている。
特許文献1の情報出力装置は、ワークステーション端末から転送された電子メールを受けて印刷出力するものであって、ファイル解凍部およびスプールメモリを備え、受信したファイルが圧縮ファイルから成る場合は、上記ファイル解凍部において、受信した圧縮ファイルの解凍処理が行われ、復元されたファイルとして一旦、上記スプールメモリに保存された後、ビットマップデータに変換され、該ビットマップデータが画像形成部(プリンタ装置)に出力されるように構成されている。
しかしながら、情報出力装置において、受信した全ての圧縮ファイルを一度に解凍すると、そのデータ保存用として大容量のメモリが必要であって、このことが、情報出力装置にとっては大きな負担となっていた。
【特許文献1】特開平11−161457号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、上記実情に鑑み成されたもので、受信した複数の圧縮受信ファイル順次解凍処理することにより、メモリ消費量の低減を図った画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【0004】
すなわち、本発明は、複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部と、上記アーカイブファイルを保存する記憶部と、上記記憶部に保存された上記アーカイブファイル中の各圧縮ファイルを解凍する解凍部と、上記解凍部により、部分的に解凍された各圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部とを備え、上記解凍部は、上記メモリ管理部の管理情報に従って上記複数の圧縮ファイルを順次解凍することを特徴としている。
【発明の効果】
【0005】
本発明によれば、アーカイブファイルに存在する複数の圧縮ファイルを、ファイル単位で部分的に解凍しながら逐次処理するようにしたので、全ての圧縮ファイルを一度に解凍する場合に比べ、データ保存のためのメモリ消費量を低減することができる。
【発明を実施するための最良の形態】
【0006】
以下、図面に基づいて本発明の画像処理装置の実施形態を説明する。
図1は実施例1による画像処理装置のブロック構成図、図2は画像処理装置におけるデータ受信動作を示すフローチャート、図3は受信データの事前解析動作を示すフローチャート、図4は受信データの解析動作を示すフローチャート、図5は受信した圧縮ファイルの構成を示す図、図6は解凍したファイルのマークアップ、図7はページ毎のファイル名リスト、図8は1ページ目のファイル情報によるリソースリスト、図9は2ページ目のファイル情報によるリソースリスト、図10はリソースリストのファイル削除リスト、図11は実施例2による画像処理装置のブロック構成図である。
【実施例1】
【0007】
図1中、符号3は画像処理装置としてのプリンタであり、上位装置であるホストPC1に接続されている。本実施例において、ホストPC1はプリンタ3に送信データ2としてXPS文書形式の印刷データを送信する。
上記プリンタ3は、ホストPCより送信される印刷データを受信する受信バッファ4(受信部)と、受信バッファ4が受信した印刷データからページ記述言語を判断する言語判断部5と、印刷データからXPS(XML Paper Specification)言語を解析するXPS言語解析部6と、XPS言語解析部6で解析されたXPS言語を中間コード化する編集処理部7と、中間コードを印刷イメージに展開する展開処理部8と、印刷イメージを印刷する印刷部9とから成る。
【0008】
また、XPS言語解析部6には、受信バッファ4が受信した印刷データを記憶装置11(記憶部)へ受信データ12として保持する受信データ保存部10と、XPS言語解析部6からの要求に応じて上記記憶装置11から受信データ12を読み出すと共に、その情報をXPS言語解析部6へ渡す受信データ読み出し部14に接続されており、また、受信データ読み出し部14は、記憶装置11に保存されている受信データ12を解凍するデータ解凍部15(解凍部)と、データ解凍部15で解凍した部分解凍データ13を管理するメモリ管理部16とを備える。
【0009】
以下、プリンタ3が上位ホストPC1よりXPS言語形式の印刷データを受信した場合の動作を、図2に基づき、図1を参照して説明する。
図2において、ホストPC1から印刷データが送信されると、印刷データはプリンタ3の受信バッファ4に書き込まれる。言語判断部5は、受信バッファ4から印刷データを取得してデータ解析し、印刷データがXPS言語データであると判定すると、印刷データが保存される受信バッファ4のアドレスをXPS言語解析部6へ渡す(S101)。
XPS言語解析部6は、このアドレスを基に受信バッファ4から印刷データを読み出し取得すると共に、受信データ保存部10を介して記憶装置11に受信データ12として保存する(S102)。尚、この受信データ12は、ZIPアーカイブされており、ZIPアーカイブ中には、図5に示すように、複数のディレクトリと複数のファイルが存在している。
【0010】
次に、XPS言語解析部6は、受信データ読み出し部14に受信データ12の事前解析を要求する(S103)。以下に、受信データ読み出し部14による受信データ12の事前解析動作を、図3に基づき、図5〜9を参照して説明する。
【0011】
図3において、先ず、XPS言語解析部6より解析の要求があると、データ解凍部15は、受信データ12から、図5中のファイル「_rels/.rels」25を部分的に解凍し、XPS言語解析部6は、このファイル情報の解析を行う(S201)。解凍したファイルのデータの内容は、図6の/_rels/.relsのマークアップ52のようにXML文書で記載されており、その記載内容から、次に解析すべきファイルを特定する。
すなわち、XPSのマークアップの規則より、/_rels/.relsのマークアップ52の3行目の<RelationshipTarget=”/FixedDocumentSequence.fdseq”Id=”RO”Type=http://schemas.microsoft.com/xps/2005/06/fixedrepresentation”/>という記述から、次に解析するファイルは、「/FixedDocumentSequence.fdseq」であると特定する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「_rels/.rels」を削除する。
【0012】
次に、データ解凍部15は、受信データ12から、図5のファイル「/FixedDocumentSequence.fdseq」23を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S202)。
解凍により得られた図6のFixedDocumentSequence.fdseqのマークアップ53の内容から次に解析すべきファイルを特定する。すなわち、FixedDocumentSequence.fdseqのマークアップ53の3行目の<DocumentReference Source=”/Documents/1/FixedDocument.fdoc”/>の記述から、次に解析するファイルは、「/Documents/1/FixedDocument.fdoc」であると特定する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/FixedDocumentSequence.fdseq」を削除する。
【0013】
次に、データ解凍部15は、受信データ12から、図5のファイル「Documents/1/FixedDocument.fdoc」31を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S203)。
解凍により得られた図6の/Documents/1/FixedDocument.fdocのマークアップ54の内容から次に解析すべきファイルを特定する。すなわち、/Documents/1/FixedDocument.fdocのマークアップ54の3行目の<PageContent Source=“/Documents/1/Pages/1.fpage”/>の記述から、次に解析するファイルは、「/Documents/1/Pages/1.fpage」であると特定し、図7のページ毎のファイル名リスト57に「/Documents/1/Pages/1.fpage」を登録する。
また、/Documents/1/FixedDocument.fdocのマークアップ54の4行目の<PageContent Source=“/Documents/1/Pages/2.fpage”/>の記述から、その次に解析すべきファイルは、「/Documents/1/Pages/2.fpage」であると特定し、図7のページ毎のファイル名リスト57に「/Documents/1/Pages/2.fpage」を登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/FixedDocument.fdoc」を削除する。
【0014】
次に、データ解凍部15は、図7のページ毎のファイル名リスト57より、1ページ目のファイル情報を取得し、受信データ12から、図5のファイル「/Documents/1/Pages/1.fpage」36を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S204)。
解凍により得られた図6の/Documents/1/Pages/1.fpageのマークアップ55の内容からフォントデータとイメージデータに関する記述を解析する。すなわち、XPSのマークアップの規則では、フォントデータを特定するには、FontUri属性の値を参照し、イメージデータはImageSource属性の値を参照すれば良いから、/Documents/1/Pages/1.fpageのマークアップ55を解析することにより、「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」が2回、「/Documents/1/Resources/Fonts/7DE7AEFF−F232−422E−BA0OC−79A088E6F0E9.odttf」が1回使用されることが判明する。解析結果を、図8のリソースリスト58のように登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/Pages/1.fpage」を削除する。
【0015】
次に、データ解凍部15は、図7のページ毎のファイル名リスト57より2ページ目のファイル情報を取得し、受信データ12から、図5のファイル「/Documents/1/Pages/2.fpage」37を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S205)。
解凍により得られた/Documents/1/Pages/2.fpageのマークアップ56の内容からフォントデータと、イメージデータに関する記述を解析する。
すなわち、/Documents/1/Pages/2.fpageのマークアップ56を解析することにより「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」が5回、「/Documents/1/Resources/Images/1.JPG」が1回使用されることが判明する。解析結果を、図9のリソース59のように登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/Pages/2.fpage」を削除する。
【0016】
また、図7のページ毎のファイル名リスト57からページ名が取得できなくなった時点で、図10に示すファイル削除リスト60を作成する。このファイル削除リスト60は、図9のリソースリスト59で、どのページでどのリソースが必要無くなるかを判断する際に使用されるものである。
これで、事前解析動作は終了する。
【0017】
次に、XPS言語解析部6は、受信データ12の解析を行う(S104)。以下に、XPS言語解析部6による受信データ12の解析動作(S104)を、図4に基づき、図5〜9を参照して説明する。
【0018】
図4において、先ず、XPS言語解析部6は、図5中のファイル「[Content_Types].xml」22を解析するため、受信データ読み出し部14に「[Content_Types].xmlの読み出しを要求する。
データ解凍部15は、受信データ12から「[Content_Types].xml」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より、「[Content_Types].xml」22の解析を行い、ファイル別の拡張子の情報などを取得する(S301)。
メモリ管理部16は、解析が終わった時点で、部分解凍した「[Content_Types].xml」を削除する。
【0019】
次に、XPS言語解析部6は、図5のファイル「_rels/.rels」25を解析するために、受信データ読み出し部14に「_rels/.rels」の読み出しを要求する。データ解凍部15は、受信データ12から「_rels/.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報の解析を行う(S302)。解析方法は、図2のS201と同様であるので説明は省略する。
メモリ管理部16は、解析が終わった時点で、部分解凍した「_rels/.rels」を削除する。
【0020】
次に、解析すべきファイルは「/FixedDocumentSequence.fdseq」であるので、XPSの仕様からそのファイルの関連ファイルとなる「/_rels/FixedDocumentSequence.fdseq.rels」が存在するかを確認し、実施例1では、図5にこのファイルが存在するため、その解析を行う。
XPS言語解析部6は、受信データ読み出し部14に「/_rels/FixedDocumentSequence.fdseq.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/_rels/FixedDocumentSequence.fdseq.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報により、ファイル「/_rels/FixedDocumentSequence.fdseq.rels」26の解析を行う(S303)。
メモリ管理部16は、解析が終わった時点で、分解凍した「/_rels/FixedDocumentSequence.fdseq.rels」を削除する。
【0021】
次に、XPS言語解析部6は、図5のファイル「/FixedDocumentSequence.fdseq」23を解析するため、受信データ読み出し部14に、「/FixedDocumentSequence.fdseq」の読み出しを要求する。データ解凍部15は、受信データ12から「/FixedDocumentSequence.fdseq」を部分的に解凍し、XPS言語解析部6は、そのファイル情報よりファイル「/FixedDocumentSequence.fdseq」23の解析を行う(S304)。解析方法は、図2のS202と同様であるため、説明は省略する。
メモリ管理部16は、解析が終わった時点で部分解凍した「/FixedDocumentSequence.fdseq」を削除する。
【0022】
次に、解析するファイルは「/Documents/1/FixedDocument.fdoc」であるので、XPSの仕様からそのファイルの関連ファイルとなる「/Documents/1/_rels/FixedDocument.fdoc.rels」が存在するかを確認する。実施例1では、ファイルが存在しないため、XPS言語解析部6は、図5のファイル「/Documents/1/FixedDocument.fdoc」31を解析するために、受信データ読み出し部14に、「/Documents/1/FixedDocument.fdoc」の読み出しを要求する。
データ解凍部15は、受信データ12から、「/Document/1/FixedDocument.fdoc」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より、ファイル「/Document/1/FixedDocument.fdoc」31の解析を行い(S305)、次以降のファイルを図7のページ毎のファイル名リスト57に登録する。解析方法は図2のS203と同様であるため説明は省略する。
「メモリ管理部16は、解析が終わった時点で、部分解凍した「/Document/1/FixedDocument.fdoc」を削除する。
【0023】
次に、XPS言語解析部6は、図7のページ毎のファイル名リスト57から1ページ目のファイル名を取得する。1ページ目のファイル名は「/Documents/1/Pages/1.fpage」であるので、XPSの仕様から関連ファイルとなる「/Documents/1/Pages/_rels/1.fpage.rels」が存在するかを確認し、実施例1では、このファイルが存在するため、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/_rels/1.fpage.rels」39を解析するため、受信データ読み出し部14に、「/Documents/1/Pages/_rels/1.fpage.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/_rels/1.fpage.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報により、ファイル「/Documents/1/Pages/_rels/1.fpage.rels」39の解析を行う(S306)。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/_rels/1.fpage.rels」を削除する。
【0024】
次に、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/1.fpage」36を解析するために、受信データ読み出し部14に、「/Documents/1/Pages/1.fpage」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/1.fpage」を部分的に解凍し、XPS言語解析部6は、そのファイル情報よりファイル「/Documents/1/Pages/1.fpage」36解析を行う(S307)。
【0025】
ここで、解凍により得られた図6の/Documents/1/Pages/1.fpageのマークアップ55の解析について説明する。
1行目はページに関する記述であり、Width属性、Heigth属性からページの大きさを決定する。また、2行目、3行目はフォントに関する記述である。FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
【0026】
これらの情報から、印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で一度フォントを部分解凍し、メモリ管理部16が記憶装置11上に部分解凍データ13として配置する。メモリ管理部16は、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」の使用が終わっても、その時点では解凍したフォントは削除しない。
【0027】
また、4行目、5行目にもフォントに関する記述があり、FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
これらの情報から印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で一度フォントを部分解凍し、メモリ管理部16が記憶装置11上に部分解凍データ13として配置するが、この場合も、メモリ管理部16は、フォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」の使用が終わった時点で解凍したフォントは削除しない。
【0028】
さらに、6行目、7行目にもフォントに関する記述があり、FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
これらの情報から印刷を行うための中間コードを作成する(S105)。この際、メモリ管理部16は、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」は、既に部分解凍済みであると判断して解凍済みのデータを使用する。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/1.fpage」を削除する。
【0029】
メモリ管理部16は、1ページ目の処理が終了した時点で、ファイル削除リスト60から1ページ目の削除対象リソースを取得する。取得したファイル「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」は、ファイル削除リスト60の内容から、次ページ以降は使用されないと判断し、このリソースを削除する。
また、ファイル「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」は、ファイル削除リスト60の1ページ目の削除対象リソースに存在しないことから、次ページ以降も使用されると判断し、リソースの削除は行わない。
【0030】
次にXPS言語解析部6は、図7のページ毎のファイル名リスト57から、2ページ目のファイル名を取得する。2ページ目のファイル名は「/Documents/1/Pages/2.fpage」であるので、XPSの仕様から関連ファイルとなる「/Documents/1/Pages/_rels /2.fpage.rels」が存在するかを確認する。
実施例1ではファイルが存在するので、XPS言語解析部6は、図5の「/Documents/1/Pages/_rels/2.fpage.rels」40を解析するため、受信データ読み出し部14に、「/Documents/1/Pages/_rels/2.fpage.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/_rels/2.fpage.rels」を部分的に解凍し、XPS言語解析部6は、ファイル情報によりファイルDocuments/1/Pages/_rels/2.fpage.rels」40の解析を行う(S308)。
メモリ管理部16は、解析が終わった時点で部分解凍した「/Documents/1/Pages/_rels/2.fpage.rels」を削除する。
【0031】
次に、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/2.fpage」37を解析するために、受信データ読みとり部14に、「/Documents/1/Pages/2.fpage」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/2.fpage」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より「/Documents/1/Pages/2.fpage」37の解析を行う(S309)。
【0032】
ここで、図6の/Documents/1/Pages/2.fpageのマークアップ56の解析について説明する。
1行目はページに関する記述であり、Width属性、Heigth属性からページの大きさを決定する。また、2〜8行目、15〜18行目はフォントに関する記述であり、1ページ目と同様の処理を行う。メモリ管理部16は、フォントは1ページ目の処理で解凍済みであると判断し、解凍済みフォントを使用する。
9〜14行目は、イメージに関するマークアップで、位置情報やイメージデータである「1.JPG」を使用して、図形を塗りつぶすという描画に関する内容が記述されている。これらの情報から印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で、一度イメージデータを部分解凍し、記憶装置11上に部分解凍データ13として配置するが、メモリ管理部16は、イメージデータの使用が終わっても、その時点では削除しない。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/2.fpage」を削除する。
【0033】
メモリ管理部16は、2ページ目の処理が終了した時点で、ファイル削除リスト60から2ページ目の削除対象リソースを取得する。取得したファイル「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」、「1.JPG」は、次ページ以降は使用されないと判断し、これらリソースを順次削除する。
【0034】
以上のように、S104において、XPS言語解析部6は、XPSファイルを逐次解析し、編集処理部7にページの編集を指示する。編集処理部7は、既述したように、その都度ページを構成する中間コードを生成し、1ページ分の編集が終了した時点で、展開処理部8にページの展開を指示する(S105)。
展開処理部8は、中間コードを読み込んで印刷イメージへと展開し、印刷イメージの生成が終了した時点で印刷部9に印刷イメージを渡し(S106)、印刷部9は、印刷イメージに基づいて印刷を行う(S107)。
【0035】
以上、実施例1によれば、アーカイブファイルに存在する複数の圧縮ファイルを、ファイル単位で部分的に解凍しながら逐次処理するようにしたので、全ての圧縮ファイルを一度に解凍する場合に比べ、データ保存のためのメモリ消費量を低減することができ、画像処理装置の負担を軽減できる。
また、印刷に不要なファイルは解凍せず、印刷に必要なファイルのみを逐次解凍して処理するので、メモリ効率の向上が図れる。
また、リソースリストにより、次ページ以降で使用されるリソースを管理するので、同じファイルをその都度解凍することを回避でき、処理速度の向上が図れる。
【実施例2】
【0036】
以下、本発明の実施例2を説明する。
実施例2では、図11に示すように、実施例1の構成に加えて、記憶装置11より高速の記憶装置17を新たに設けた構成としている。実施例2では、例えば、記憶装置11としてHDD(ハードディスク)を用い、記憶装置17としてRAM(Random Access Memory)を用いている。
【0037】
また、プリンタ3が上位ホストPC1よりXPS言語形式の印刷データを受信した場合の動作については、実施例1と同様であるが、実施例2では、記憶装置11より高速の記憶装置17を設けた構成としている点で、以下の動作が実施例1と相違している。
【0038】
すなわち、図4のフローチャートS307における、/Documents/1/Pages/1.fpageのマークアップ55の2行目、3行目の解析で、部分解凍したフォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」を記憶装置に配置する際、メモリ管理部16は、リソースリスト59を参照し、このフォントは、1、2ページ目で複数回使用されることから使用頻度が高いと判断し、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」を高速の記憶装置(RAM)17に部分解凍データ18として配置するようにしている。
また、4行目、5行目の解析では、部分解凍したフォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」を記憶装置に配置する際、メモリ管理部16は、リソースリスト59を参照し、このフォントは、1ページ目でのみ使用されることから使用頻度が低いと判断し、フォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」を低速の記憶装置11(HDD)に部分解凍データ13として配置するようにしている。
【0039】
また、図4のフローチャートS309における、/Documents/1/Pages/2.fpageのマークアップ56の解析で、部分解凍したイメージデータ「1.JPG」を記憶装置上に配置する際、メモリ管理部16は、リソースリスト59を参照し、このイメージデータは2ページ目でのみ使用されることから、使用頻度が低いと判断し、イメージデータ「1.JPG」を記憶装置(HDD)11に部分解凍データ13として展開するようにしている。
【0040】
以上、実施例2によれば、使用頻度の高いデータはRAMのような高速な記憶装置17に配置し、使用頻度の低いデータはHDD等の低速の記憶装置11に配置するようにしたので、記憶装置にHDDのみを使用する場合に比べ、処理速度の向上が図れると共に、RAMのみを使用する場合に比べ、メモリ効率の向上が図れる。
【産業上の利用可能性】
【0041】
以上、本実施例では、画像処理装置としてプリンタを例示したが、プリンタ記述言語を処理可能な複写機、複合機、ファクシミリ機等にも適用可能である。
【図面の簡単な説明】
【0042】
【図1】本発明の実施例1による画像処理装置のブロック構成図である。
【図2】画像処理装置におけるデータ受信動作を示すフローチャートである。
【図3】受信データの事前解析動作を示すフローチャートである。
【図4】受信データの解析動作を示すフローチャートである。
【図5】受信した圧縮ファイルの構成を示す図である。
【図6】解凍したファイルのマークアップである。
【図7】ページ毎のファイル名リストである。
【図8】1ページ目のファイル情報によるリソースリストである。
【図9】2ページ目のファイル情報によるリソースリストである。
【図10】リソースリストのファイル削除リストである。
【図11】本発明の実施例2による画像処理装置のブロック構成図である。
【符号の説明】
【0043】
1 受信バッファ(受信部)
3 プリンタ(画像処理装置)
11、17 記憶装置(記憶部)
15 データ解凍部(解凍部)
16 メモリ管理部
【技術分野】
【0001】
本発明は、圧縮されたデータを受信し、該受信データを解凍処理して画像出力する画像処理装置に関するものである。
【背景技術】
【0002】
外部端末等から送られるデータを受信して画像出力する装置として、例えば、特許文献1が知られている。
特許文献1の情報出力装置は、ワークステーション端末から転送された電子メールを受けて印刷出力するものであって、ファイル解凍部およびスプールメモリを備え、受信したファイルが圧縮ファイルから成る場合は、上記ファイル解凍部において、受信した圧縮ファイルの解凍処理が行われ、復元されたファイルとして一旦、上記スプールメモリに保存された後、ビットマップデータに変換され、該ビットマップデータが画像形成部(プリンタ装置)に出力されるように構成されている。
しかしながら、情報出力装置において、受信した全ての圧縮ファイルを一度に解凍すると、そのデータ保存用として大容量のメモリが必要であって、このことが、情報出力装置にとっては大きな負担となっていた。
【特許文献1】特開平11−161457号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、上記実情に鑑み成されたもので、受信した複数の圧縮受信ファイル順次解凍処理することにより、メモリ消費量の低減を図った画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【0004】
すなわち、本発明は、複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部と、上記アーカイブファイルを保存する記憶部と、上記記憶部に保存された上記アーカイブファイル中の各圧縮ファイルを解凍する解凍部と、上記解凍部により、部分的に解凍された各圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部とを備え、上記解凍部は、上記メモリ管理部の管理情報に従って上記複数の圧縮ファイルを順次解凍することを特徴としている。
【発明の効果】
【0005】
本発明によれば、アーカイブファイルに存在する複数の圧縮ファイルを、ファイル単位で部分的に解凍しながら逐次処理するようにしたので、全ての圧縮ファイルを一度に解凍する場合に比べ、データ保存のためのメモリ消費量を低減することができる。
【発明を実施するための最良の形態】
【0006】
以下、図面に基づいて本発明の画像処理装置の実施形態を説明する。
図1は実施例1による画像処理装置のブロック構成図、図2は画像処理装置におけるデータ受信動作を示すフローチャート、図3は受信データの事前解析動作を示すフローチャート、図4は受信データの解析動作を示すフローチャート、図5は受信した圧縮ファイルの構成を示す図、図6は解凍したファイルのマークアップ、図7はページ毎のファイル名リスト、図8は1ページ目のファイル情報によるリソースリスト、図9は2ページ目のファイル情報によるリソースリスト、図10はリソースリストのファイル削除リスト、図11は実施例2による画像処理装置のブロック構成図である。
【実施例1】
【0007】
図1中、符号3は画像処理装置としてのプリンタであり、上位装置であるホストPC1に接続されている。本実施例において、ホストPC1はプリンタ3に送信データ2としてXPS文書形式の印刷データを送信する。
上記プリンタ3は、ホストPCより送信される印刷データを受信する受信バッファ4(受信部)と、受信バッファ4が受信した印刷データからページ記述言語を判断する言語判断部5と、印刷データからXPS(XML Paper Specification)言語を解析するXPS言語解析部6と、XPS言語解析部6で解析されたXPS言語を中間コード化する編集処理部7と、中間コードを印刷イメージに展開する展開処理部8と、印刷イメージを印刷する印刷部9とから成る。
【0008】
また、XPS言語解析部6には、受信バッファ4が受信した印刷データを記憶装置11(記憶部)へ受信データ12として保持する受信データ保存部10と、XPS言語解析部6からの要求に応じて上記記憶装置11から受信データ12を読み出すと共に、その情報をXPS言語解析部6へ渡す受信データ読み出し部14に接続されており、また、受信データ読み出し部14は、記憶装置11に保存されている受信データ12を解凍するデータ解凍部15(解凍部)と、データ解凍部15で解凍した部分解凍データ13を管理するメモリ管理部16とを備える。
【0009】
以下、プリンタ3が上位ホストPC1よりXPS言語形式の印刷データを受信した場合の動作を、図2に基づき、図1を参照して説明する。
図2において、ホストPC1から印刷データが送信されると、印刷データはプリンタ3の受信バッファ4に書き込まれる。言語判断部5は、受信バッファ4から印刷データを取得してデータ解析し、印刷データがXPS言語データであると判定すると、印刷データが保存される受信バッファ4のアドレスをXPS言語解析部6へ渡す(S101)。
XPS言語解析部6は、このアドレスを基に受信バッファ4から印刷データを読み出し取得すると共に、受信データ保存部10を介して記憶装置11に受信データ12として保存する(S102)。尚、この受信データ12は、ZIPアーカイブされており、ZIPアーカイブ中には、図5に示すように、複数のディレクトリと複数のファイルが存在している。
【0010】
次に、XPS言語解析部6は、受信データ読み出し部14に受信データ12の事前解析を要求する(S103)。以下に、受信データ読み出し部14による受信データ12の事前解析動作を、図3に基づき、図5〜9を参照して説明する。
【0011】
図3において、先ず、XPS言語解析部6より解析の要求があると、データ解凍部15は、受信データ12から、図5中のファイル「_rels/.rels」25を部分的に解凍し、XPS言語解析部6は、このファイル情報の解析を行う(S201)。解凍したファイルのデータの内容は、図6の/_rels/.relsのマークアップ52のようにXML文書で記載されており、その記載内容から、次に解析すべきファイルを特定する。
すなわち、XPSのマークアップの規則より、/_rels/.relsのマークアップ52の3行目の<RelationshipTarget=”/FixedDocumentSequence.fdseq”Id=”RO”Type=http://schemas.microsoft.com/xps/2005/06/fixedrepresentation”/>という記述から、次に解析するファイルは、「/FixedDocumentSequence.fdseq」であると特定する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「_rels/.rels」を削除する。
【0012】
次に、データ解凍部15は、受信データ12から、図5のファイル「/FixedDocumentSequence.fdseq」23を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S202)。
解凍により得られた図6のFixedDocumentSequence.fdseqのマークアップ53の内容から次に解析すべきファイルを特定する。すなわち、FixedDocumentSequence.fdseqのマークアップ53の3行目の<DocumentReference Source=”/Documents/1/FixedDocument.fdoc”/>の記述から、次に解析するファイルは、「/Documents/1/FixedDocument.fdoc」であると特定する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/FixedDocumentSequence.fdseq」を削除する。
【0013】
次に、データ解凍部15は、受信データ12から、図5のファイル「Documents/1/FixedDocument.fdoc」31を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S203)。
解凍により得られた図6の/Documents/1/FixedDocument.fdocのマークアップ54の内容から次に解析すべきファイルを特定する。すなわち、/Documents/1/FixedDocument.fdocのマークアップ54の3行目の<PageContent Source=“/Documents/1/Pages/1.fpage”/>の記述から、次に解析するファイルは、「/Documents/1/Pages/1.fpage」であると特定し、図7のページ毎のファイル名リスト57に「/Documents/1/Pages/1.fpage」を登録する。
また、/Documents/1/FixedDocument.fdocのマークアップ54の4行目の<PageContent Source=“/Documents/1/Pages/2.fpage”/>の記述から、その次に解析すべきファイルは、「/Documents/1/Pages/2.fpage」であると特定し、図7のページ毎のファイル名リスト57に「/Documents/1/Pages/2.fpage」を登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/FixedDocument.fdoc」を削除する。
【0014】
次に、データ解凍部15は、図7のページ毎のファイル名リスト57より、1ページ目のファイル情報を取得し、受信データ12から、図5のファイル「/Documents/1/Pages/1.fpage」36を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S204)。
解凍により得られた図6の/Documents/1/Pages/1.fpageのマークアップ55の内容からフォントデータとイメージデータに関する記述を解析する。すなわち、XPSのマークアップの規則では、フォントデータを特定するには、FontUri属性の値を参照し、イメージデータはImageSource属性の値を参照すれば良いから、/Documents/1/Pages/1.fpageのマークアップ55を解析することにより、「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」が2回、「/Documents/1/Resources/Fonts/7DE7AEFF−F232−422E−BA0OC−79A088E6F0E9.odttf」が1回使用されることが判明する。解析結果を、図8のリソースリスト58のように登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/Pages/1.fpage」を削除する。
【0015】
次に、データ解凍部15は、図7のページ毎のファイル名リスト57より2ページ目のファイル情報を取得し、受信データ12から、図5のファイル「/Documents/1/Pages/2.fpage」37を部分的に解凍し、XPS言語解析部6は、そのファイル情報を解析する(S205)。
解凍により得られた/Documents/1/Pages/2.fpageのマークアップ56の内容からフォントデータと、イメージデータに関する記述を解析する。
すなわち、/Documents/1/Pages/2.fpageのマークアップ56を解析することにより「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」が5回、「/Documents/1/Resources/Images/1.JPG」が1回使用されることが判明する。解析結果を、図9のリソース59のように登録する。
メモリ管理部16は、解析が終わった時点で部分的に解凍した「/Documents/1/Pages/2.fpage」を削除する。
【0016】
また、図7のページ毎のファイル名リスト57からページ名が取得できなくなった時点で、図10に示すファイル削除リスト60を作成する。このファイル削除リスト60は、図9のリソースリスト59で、どのページでどのリソースが必要無くなるかを判断する際に使用されるものである。
これで、事前解析動作は終了する。
【0017】
次に、XPS言語解析部6は、受信データ12の解析を行う(S104)。以下に、XPS言語解析部6による受信データ12の解析動作(S104)を、図4に基づき、図5〜9を参照して説明する。
【0018】
図4において、先ず、XPS言語解析部6は、図5中のファイル「[Content_Types].xml」22を解析するため、受信データ読み出し部14に「[Content_Types].xmlの読み出しを要求する。
データ解凍部15は、受信データ12から「[Content_Types].xml」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より、「[Content_Types].xml」22の解析を行い、ファイル別の拡張子の情報などを取得する(S301)。
メモリ管理部16は、解析が終わった時点で、部分解凍した「[Content_Types].xml」を削除する。
【0019】
次に、XPS言語解析部6は、図5のファイル「_rels/.rels」25を解析するために、受信データ読み出し部14に「_rels/.rels」の読み出しを要求する。データ解凍部15は、受信データ12から「_rels/.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報の解析を行う(S302)。解析方法は、図2のS201と同様であるので説明は省略する。
メモリ管理部16は、解析が終わった時点で、部分解凍した「_rels/.rels」を削除する。
【0020】
次に、解析すべきファイルは「/FixedDocumentSequence.fdseq」であるので、XPSの仕様からそのファイルの関連ファイルとなる「/_rels/FixedDocumentSequence.fdseq.rels」が存在するかを確認し、実施例1では、図5にこのファイルが存在するため、その解析を行う。
XPS言語解析部6は、受信データ読み出し部14に「/_rels/FixedDocumentSequence.fdseq.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/_rels/FixedDocumentSequence.fdseq.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報により、ファイル「/_rels/FixedDocumentSequence.fdseq.rels」26の解析を行う(S303)。
メモリ管理部16は、解析が終わった時点で、分解凍した「/_rels/FixedDocumentSequence.fdseq.rels」を削除する。
【0021】
次に、XPS言語解析部6は、図5のファイル「/FixedDocumentSequence.fdseq」23を解析するため、受信データ読み出し部14に、「/FixedDocumentSequence.fdseq」の読み出しを要求する。データ解凍部15は、受信データ12から「/FixedDocumentSequence.fdseq」を部分的に解凍し、XPS言語解析部6は、そのファイル情報よりファイル「/FixedDocumentSequence.fdseq」23の解析を行う(S304)。解析方法は、図2のS202と同様であるため、説明は省略する。
メモリ管理部16は、解析が終わった時点で部分解凍した「/FixedDocumentSequence.fdseq」を削除する。
【0022】
次に、解析するファイルは「/Documents/1/FixedDocument.fdoc」であるので、XPSの仕様からそのファイルの関連ファイルとなる「/Documents/1/_rels/FixedDocument.fdoc.rels」が存在するかを確認する。実施例1では、ファイルが存在しないため、XPS言語解析部6は、図5のファイル「/Documents/1/FixedDocument.fdoc」31を解析するために、受信データ読み出し部14に、「/Documents/1/FixedDocument.fdoc」の読み出しを要求する。
データ解凍部15は、受信データ12から、「/Document/1/FixedDocument.fdoc」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より、ファイル「/Document/1/FixedDocument.fdoc」31の解析を行い(S305)、次以降のファイルを図7のページ毎のファイル名リスト57に登録する。解析方法は図2のS203と同様であるため説明は省略する。
「メモリ管理部16は、解析が終わった時点で、部分解凍した「/Document/1/FixedDocument.fdoc」を削除する。
【0023】
次に、XPS言語解析部6は、図7のページ毎のファイル名リスト57から1ページ目のファイル名を取得する。1ページ目のファイル名は「/Documents/1/Pages/1.fpage」であるので、XPSの仕様から関連ファイルとなる「/Documents/1/Pages/_rels/1.fpage.rels」が存在するかを確認し、実施例1では、このファイルが存在するため、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/_rels/1.fpage.rels」39を解析するため、受信データ読み出し部14に、「/Documents/1/Pages/_rels/1.fpage.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/_rels/1.fpage.rels」を部分的に解凍し、XPS言語解析部6は、そのファイル情報により、ファイル「/Documents/1/Pages/_rels/1.fpage.rels」39の解析を行う(S306)。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/_rels/1.fpage.rels」を削除する。
【0024】
次に、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/1.fpage」36を解析するために、受信データ読み出し部14に、「/Documents/1/Pages/1.fpage」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/1.fpage」を部分的に解凍し、XPS言語解析部6は、そのファイル情報よりファイル「/Documents/1/Pages/1.fpage」36解析を行う(S307)。
【0025】
ここで、解凍により得られた図6の/Documents/1/Pages/1.fpageのマークアップ55の解析について説明する。
1行目はページに関する記述であり、Width属性、Heigth属性からページの大きさを決定する。また、2行目、3行目はフォントに関する記述である。FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
【0026】
これらの情報から、印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で一度フォントを部分解凍し、メモリ管理部16が記憶装置11上に部分解凍データ13として配置する。メモリ管理部16は、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」の使用が終わっても、その時点では解凍したフォントは削除しない。
【0027】
また、4行目、5行目にもフォントに関する記述があり、FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
これらの情報から印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で一度フォントを部分解凍し、メモリ管理部16が記憶装置11上に部分解凍データ13として配置するが、この場合も、メモリ管理部16は、フォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」の使用が終わった時点で解凍したフォントは削除しない。
【0028】
さらに、6行目、7行目にもフォントに関する記述があり、FontUri属性から使用するフォントは「/Documents/1/Resources/Fonts/92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」であり、その他の属性からフォントの大きさや描画位置を取得することができる。
これらの情報から印刷を行うための中間コードを作成する(S105)。この際、メモリ管理部16は、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」は、既に部分解凍済みであると判断して解凍済みのデータを使用する。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/1.fpage」を削除する。
【0029】
メモリ管理部16は、1ページ目の処理が終了した時点で、ファイル削除リスト60から1ページ目の削除対象リソースを取得する。取得したファイル「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」は、ファイル削除リスト60の内容から、次ページ以降は使用されないと判断し、このリソースを削除する。
また、ファイル「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」は、ファイル削除リスト60の1ページ目の削除対象リソースに存在しないことから、次ページ以降も使用されると判断し、リソースの削除は行わない。
【0030】
次にXPS言語解析部6は、図7のページ毎のファイル名リスト57から、2ページ目のファイル名を取得する。2ページ目のファイル名は「/Documents/1/Pages/2.fpage」であるので、XPSの仕様から関連ファイルとなる「/Documents/1/Pages/_rels /2.fpage.rels」が存在するかを確認する。
実施例1ではファイルが存在するので、XPS言語解析部6は、図5の「/Documents/1/Pages/_rels/2.fpage.rels」40を解析するため、受信データ読み出し部14に、「/Documents/1/Pages/_rels/2.fpage.rels」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/_rels/2.fpage.rels」を部分的に解凍し、XPS言語解析部6は、ファイル情報によりファイルDocuments/1/Pages/_rels/2.fpage.rels」40の解析を行う(S308)。
メモリ管理部16は、解析が終わった時点で部分解凍した「/Documents/1/Pages/_rels/2.fpage.rels」を削除する。
【0031】
次に、XPS言語解析部6は、図5のファイル「/Documents/1/Pages/2.fpage」37を解析するために、受信データ読みとり部14に、「/Documents/1/Pages/2.fpage」の読み出しを要求する。データ解凍部15は、受信データ12から、「/Documents/1/Pages/2.fpage」を部分的に解凍し、XPS言語解析部6は、そのファイル情報より「/Documents/1/Pages/2.fpage」37の解析を行う(S309)。
【0032】
ここで、図6の/Documents/1/Pages/2.fpageのマークアップ56の解析について説明する。
1行目はページに関する記述であり、Width属性、Heigth属性からページの大きさを決定する。また、2〜8行目、15〜18行目はフォントに関する記述であり、1ページ目と同様の処理を行う。メモリ管理部16は、フォントは1ページ目の処理で解凍済みであると判断し、解凍済みフォントを使用する。
9〜14行目は、イメージに関するマークアップで、位置情報やイメージデータである「1.JPG」を使用して、図形を塗りつぶすという描画に関する内容が記述されている。これらの情報から印刷を行うための中間コードを作成する(S105)。中間コードを作成する過程で、一度イメージデータを部分解凍し、記憶装置11上に部分解凍データ13として配置するが、メモリ管理部16は、イメージデータの使用が終わっても、その時点では削除しない。
メモリ管理部16は、解析が終わった時点で、部分解凍した「/Documents/1/Pages/2.fpage」を削除する。
【0033】
メモリ管理部16は、2ページ目の処理が終了した時点で、ファイル削除リスト60から2ページ目の削除対象リソースを取得する。取得したファイル「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」、「1.JPG」は、次ページ以降は使用されないと判断し、これらリソースを順次削除する。
【0034】
以上のように、S104において、XPS言語解析部6は、XPSファイルを逐次解析し、編集処理部7にページの編集を指示する。編集処理部7は、既述したように、その都度ページを構成する中間コードを生成し、1ページ分の編集が終了した時点で、展開処理部8にページの展開を指示する(S105)。
展開処理部8は、中間コードを読み込んで印刷イメージへと展開し、印刷イメージの生成が終了した時点で印刷部9に印刷イメージを渡し(S106)、印刷部9は、印刷イメージに基づいて印刷を行う(S107)。
【0035】
以上、実施例1によれば、アーカイブファイルに存在する複数の圧縮ファイルを、ファイル単位で部分的に解凍しながら逐次処理するようにしたので、全ての圧縮ファイルを一度に解凍する場合に比べ、データ保存のためのメモリ消費量を低減することができ、画像処理装置の負担を軽減できる。
また、印刷に不要なファイルは解凍せず、印刷に必要なファイルのみを逐次解凍して処理するので、メモリ効率の向上が図れる。
また、リソースリストにより、次ページ以降で使用されるリソースを管理するので、同じファイルをその都度解凍することを回避でき、処理速度の向上が図れる。
【実施例2】
【0036】
以下、本発明の実施例2を説明する。
実施例2では、図11に示すように、実施例1の構成に加えて、記憶装置11より高速の記憶装置17を新たに設けた構成としている。実施例2では、例えば、記憶装置11としてHDD(ハードディスク)を用い、記憶装置17としてRAM(Random Access Memory)を用いている。
【0037】
また、プリンタ3が上位ホストPC1よりXPS言語形式の印刷データを受信した場合の動作については、実施例1と同様であるが、実施例2では、記憶装置11より高速の記憶装置17を設けた構成としている点で、以下の動作が実施例1と相違している。
【0038】
すなわち、図4のフローチャートS307における、/Documents/1/Pages/1.fpageのマークアップ55の2行目、3行目の解析で、部分解凍したフォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」を記憶装置に配置する際、メモリ管理部16は、リソースリスト59を参照し、このフォントは、1、2ページ目で複数回使用されることから使用頻度が高いと判断し、フォント「92FBA039−5257−442E−BFD8−9EF5F4C87DD3.odttf」を高速の記憶装置(RAM)17に部分解凍データ18として配置するようにしている。
また、4行目、5行目の解析では、部分解凍したフォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」を記憶装置に配置する際、メモリ管理部16は、リソースリスト59を参照し、このフォントは、1ページ目でのみ使用されることから使用頻度が低いと判断し、フォント「7DE7AEFF−F232−422E−BA0C−79A088E6F0E9.odttf」を低速の記憶装置11(HDD)に部分解凍データ13として配置するようにしている。
【0039】
また、図4のフローチャートS309における、/Documents/1/Pages/2.fpageのマークアップ56の解析で、部分解凍したイメージデータ「1.JPG」を記憶装置上に配置する際、メモリ管理部16は、リソースリスト59を参照し、このイメージデータは2ページ目でのみ使用されることから、使用頻度が低いと判断し、イメージデータ「1.JPG」を記憶装置(HDD)11に部分解凍データ13として展開するようにしている。
【0040】
以上、実施例2によれば、使用頻度の高いデータはRAMのような高速な記憶装置17に配置し、使用頻度の低いデータはHDD等の低速の記憶装置11に配置するようにしたので、記憶装置にHDDのみを使用する場合に比べ、処理速度の向上が図れると共に、RAMのみを使用する場合に比べ、メモリ効率の向上が図れる。
【産業上の利用可能性】
【0041】
以上、本実施例では、画像処理装置としてプリンタを例示したが、プリンタ記述言語を処理可能な複写機、複合機、ファクシミリ機等にも適用可能である。
【図面の簡単な説明】
【0042】
【図1】本発明の実施例1による画像処理装置のブロック構成図である。
【図2】画像処理装置におけるデータ受信動作を示すフローチャートである。
【図3】受信データの事前解析動作を示すフローチャートである。
【図4】受信データの解析動作を示すフローチャートである。
【図5】受信した圧縮ファイルの構成を示す図である。
【図6】解凍したファイルのマークアップである。
【図7】ページ毎のファイル名リストである。
【図8】1ページ目のファイル情報によるリソースリストである。
【図9】2ページ目のファイル情報によるリソースリストである。
【図10】リソースリストのファイル削除リストである。
【図11】本発明の実施例2による画像処理装置のブロック構成図である。
【符号の説明】
【0043】
1 受信バッファ(受信部)
3 プリンタ(画像処理装置)
11、17 記憶装置(記憶部)
15 データ解凍部(解凍部)
16 メモリ管理部
【特許請求の範囲】
【請求項1】
複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部と、
前記アーカイブファイルを保存する記憶部と、
前記記憶部に保存された前記アーカイブファイル中の各圧縮ファイルを解凍する解凍部と、
前記解凍部により、部分的に解凍された各前記圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部とを備え、
前記解凍部は、前記メモリ管理部の管理情報に従って前記複数の圧縮ファイルを順次解凍することを特徴とする画像処理装置。
【請求項2】
前記記憶部として高速の記憶装置と低速の記憶装置を備え、前記解凍データの内、使用頻度が高いものは前記高速の記憶装置に保存し、使用頻度の低いものは前記低速の記憶装置に保存することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記解凍データの内、不用となったものはメモリ上から削除することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項1】
複数の圧縮ファイルが存在するアーカイブファイルを受信する受信部と、
前記アーカイブファイルを保存する記憶部と、
前記記憶部に保存された前記アーカイブファイル中の各圧縮ファイルを解凍する解凍部と、
前記解凍部により、部分的に解凍された各前記圧縮ファイルの情報に基づき、解凍データのメモリ領域を割り当てるメモリ管理部とを備え、
前記解凍部は、前記メモリ管理部の管理情報に従って前記複数の圧縮ファイルを順次解凍することを特徴とする画像処理装置。
【請求項2】
前記記憶部として高速の記憶装置と低速の記憶装置を備え、前記解凍データの内、使用頻度が高いものは前記高速の記憶装置に保存し、使用頻度の低いものは前記低速の記憶装置に保存することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記解凍データの内、不用となったものはメモリ上から削除することを特徴とする請求項1または請求項2に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−9191(P2010−9191A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−165802(P2008−165802)
【出願日】平成20年6月25日(2008.6.25)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願日】平成20年6月25日(2008.6.25)
【出願人】(591044164)株式会社沖データ (2,444)
【出願人】(594202361)株式会社沖データシステムズ (259)
【Fターム(参考)】
[ Back to top ]