IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

<>
  • 特許-印刷装置 図1
  • 特許-印刷装置 図2
  • 特許-印刷装置 図3
  • 特許-印刷装置 図4
  • 特許-印刷装置 図5
  • 特許-印刷装置 図6
  • 特許-印刷装置 図7
  • 特許-印刷装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】印刷装置
(51)【国際特許分類】
   B41J 5/30 20060101AFI20241106BHJP
   H04N 1/00 20060101ALI20241106BHJP
【FI】
B41J5/30 Z
H04N1/00 912
【請求項の数】 11
(21)【出願番号】P 2021062499
(22)【出願日】2021-04-01
(65)【公開番号】P2022157948
(43)【公開日】2022-10-14
【審査請求日】2024-02-16
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000291
【氏名又は名称】弁理士法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】中島 健志郎
(72)【発明者】
【氏名】田中 務
【審査官】佐藤 孝幸
(56)【参考文献】
【文献】特開2013-003965(JP,A)
【文献】特開2012-111210(JP,A)
【文献】特開2014-119998(JP,A)
【文献】特開2011-068010(JP,A)
【文献】特開2010-000624(JP,A)
【文献】特開2009-202488(JP,A)
【文献】特開2006-004183(JP,A)
【文献】特開2005-186470(JP,A)
【文献】特開2013-084219(JP,A)
【文献】特開2016-063407(JP,A)
【文献】特開2020-006514(JP,A)
【文献】米国特許出願公開第2010/0110467(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 5/30
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
プロセッサコアである第1コアと、前記第1コアと異なるプロセッサコアである第2コアと、を備えるコントローラと、
印刷ユニットと、
メモリと、
通信インタフェースと、
を備える印刷装置であって、
前記第1コアは、
前記通信インタフェースを介して受信した受信データを解析し、前記第2コアによる処理が必要であると判断した場合に、第1要求を前記第2コアに出力し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる所定の情報を検知した場合に、第2要求を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアのファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示すファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいてRIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項2】
請求項1に記載する印刷装置において、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第2要求を前記第1コアに出力しなかった場合、受信した前記受信データに基づいて前記RIP処理を行ってラスタデータを生成する、
ことを特徴とする印刷装置。
【請求項3】
請求項1または請求項2に記載する印刷装置において、
前記第1コアは、
受信した前記受信データを解析し、前記受信データの中から前記印刷装置の制御に用いるコマンドであるプリンタ制御コマンドを検知し、さらに検知した前記プリンタ制御コマンドの中に画像データの種類を示す種類特定コマンドが含まれる場合に、前記第2コアによる処理が必要であると判断し、前記第1要求を前記第2コアに出力し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる前記所定の情報を検知した場合に、前記第2要求を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアの前記ファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項4】
請求項3に記載する印刷装置において、
前記印刷ユニットによる印刷可能な画像データの種類があらかじめ決まっており、前記印刷可能な画像データの種類が複数あり、前記複数の種類には、ファイル化が必要な特定の種類が含まれ、
前記第1コアは、
受信した前記受信データを解析し、前記受信データの中から前記印刷装置の制御に用いるコマンドである前記プリンタ制御コマンドを検知し、さらに検知した前記プリンタ制御コマンドの中に前記種類特定コマンドが含まれる場合に、前記第2コアによる処理が必要であると判断し、前記第1要求を前記第2コアに出力し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中から画像データの先頭を示す先頭情報を検知し、さらに検知した前記先頭情報が前記所定の情報に該当する場合に、前記第2要求を前記第1コアに出力し、検知した前記先頭情報が前記所定の情報に該当しない場合に、前記第2要求を前記第1コアに出力せず、前記所定の情報は、前記特定の種類の画像データについての前記先頭情報であり、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアの前記ファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項5】
請求項4に記載する印刷装置において、
前記特定の種類の画像データには、PDF(Portable Document Format)が含まれる、
ことを特徴とする印刷装置。
【請求項6】
請求項4または請求項5に記載する印刷装置において、
前記特定の種類は複数あり、前記特定の種類ごとに前記先頭情報が異なり、
前記第2コアは、
前記特定の種類ごとに、データの抽出に用いる抽出情報を対応付けて記憶しており、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中から画像データの先頭を示す前記先頭情報を検知し、さらに検知した前記先頭情報が複数ある前記所定の情報のいずれかに該当する場合に、前記第2要求と、前記特定の種類ごとに対応付けられている前記抽出情報と、を前記第1コアに出力し、検知した前記先頭情報が前記所定の情報に該当しない場合に、前記第2要求を前記第1コアに出力せず、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第2コアから入力された前記抽出情報を用いて、前記受信データから画像データを抽出し、抽出した前記画像データを、前記第1コアの前記ファイルシステムによってファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記画像データに基づいて前記RIP処理を行って前記ラスタデータを生成する、
ことを特徴とする印刷装置。
【請求項7】
請求項3に記載する印刷装置において、
前記第1コアは、
受信した前記受信データを解析し、前記受信データの中から前記印刷装置の制御に用いるコマンドである前記プリンタ制御コマンドを検知し、さらに検知した前記プリンタ制御コマンドの中に前記種類特定コマンドが含まれる場合に、前記第2コアによる処理が必要であると判断し、前記第1要求を前記第2コアに出力し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる前記所定の情報を検知した場合に、前記第2要求を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアの前記ファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、読み出した前記ファイル全体から前記RIP処理に用いるパラメータを抽出し、抽出された前記パラメータに従って、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項8】
請求項3に記載する印刷装置において、
前記第1コアは、
受信した前記受信データを解析し、前記受信データの中から前記印刷装置の制御に用いるコマンドである前記プリンタ制御コマンドを検知し、さらに検知した前記プリンタ制御コマンドの中に前記種類特定コマンドが含まれる場合、あるいは前記受信データの中に前記プリンタ制御コマンドが検知されなかった場合に、前記第2コアによる処理が必要であると判断し、前記第1要求を前記第2コアに出力し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる前記所定の情報を検知した場合に、前記第2要求を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアの前記ファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項9】
請求項3から請求項8のいずれか1つに記載する印刷装置において、
前記第1コアは、
受信した前記受信データを解析し、前記受信データの中から前記印刷装置の制御に用いるコマンドである前記プリンタ制御コマンドを検知し、さらに検知した前記プリンタ制御コマンドの中に前記種類特定コマンドが含まれる場合に、前記第2コアによる処理が必要であると判断し、前記第1要求を前記第2コアに出力し、前記受信データの中に前記種類特定コマンドを検知せず、かつ前記受信データの中に印刷を行わない前記プリンタ制御コマンドである特定ジョブコマンドを検知した場合、前記第1要求を前記第2コアに出力せず、前記特定ジョブコマンドが示す処理を実行し、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる前記所定の情報を検知した場合に、前記第2要求を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアの前記ファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示す前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成し、
前記第1コアは、
前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、
ことを特徴とする印刷装置。
【請求項10】
請求項1から請求項9のいずれか1つに記載する印刷装置において、
前記通信インタフェースを介して受信した前記受信データを記憶する入力バッファを備え、
前記第2コアは、
前記第1コアからの前記第1要求に応じて、前記入力バッファに記憶された前記受信データを、前記所定の情報が検知されるまで解析し、前記所定の情報が検知された場合、前記第2要求と、前記所定の情報が記憶されるアドレスに基づく第1アドレスへのポインタと、を前記第1コアに出力し、
前記第1コアは、
前記第2コアからの前記第2要求に応じて、前記第1コアの前記ファイルシステムによって、前記第2コアから入力された前記ポインタが示す前記第1アドレスに基づいて、前記入力バッファに記憶される前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルが記憶されるアドレスに基づく第2アドレスへのポインタを含む前記ファイル情報を前記第2コアに出力し、
前記第2コアは、
前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報に含まれる前記第2アドレスへの前記ポインタを用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいて前記RIP処理を行ってラスタデータを生成する、
ことを特徴とする印刷装置。
【請求項11】
請求項1から請求項10のいずれか1つに記載する印刷装置において、
前記第1コアは、
前記ファイルシステムとして、前記メモリからの読み出しおよび前記メモリへの書き込みが可能な第1ファイルシステムを有し、
前記第2コアは、
前記第1コアが有する前記第1ファイルシステムとは異なるファイルシステムであって、前記メモリからの読み出しが可能で前記メモリへの書き込みが不可能な第2ファイルシステムを有する、
ことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術分野は、受信したデータに基づいて画像を印刷する印刷装置に関する。
【背景技術】
【0002】
従来、印刷ジョブを受信し、受信した印刷ジョブに基づいて画像を印刷する印刷装置が知られている。例えば特許文献1には、印刷エンジンと、印刷エンジンに印刷処理を実行させるコントローラと、を備える印刷装置であって、コントローラは、印刷ジョブに含まれるPDL(Page Description Languageの略)コマンドを解析してラスタデータを作成し、作成されたラスタデータに基づいて、印刷エンジンに画像を印刷させる構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2015-123712号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
印刷装置では、印刷ジョブを受信してから印刷を完了させるまでに要する処理時間の短縮が求められる。近年、印刷ジョブのデータ量の増加に伴って処理時間が長くなる傾向にあり、処理時間のさらなる短縮が望まれる。
【0005】
本明細書は、印刷装置において、印刷ジョブを受信してから印刷を完了させるまでに要する処理時間の短縮を図る技術を開示する。
【課題を解決するための手段】
【0006】
この課題の解決を目的としてなされた印刷装置は、プロセッサコアである第1コアと、前記第1コアと異なるプロセッサコアである第2コアと、を備えるコントローラと、印刷ユニットと、メモリと、通信インタフェースと、を備える印刷装置であって、前記第1コアは、前記通信インタフェースを介して受信した受信データを解析し、前記第2コアによる処理が必要であると判断した場合に、第1要求を前記第2コアに出力し、前記第2コアは、前記第1コアからの前記第1要求に応じて、前記受信データを解析し、前記受信データの中にファイル化処理の実行が必要となる所定の情報を検知した場合に、第2要求を前記第1コアに出力し、前記第1コアは、前記第2コアからの前記第2要求に応じて、前記ファイル化処理として前記第1コアのファイルシステムによって前記受信データをファイル化して前記メモリに書き込み、書き込まれたファイルを示すファイル情報を前記第2コアに出力し、前記第2コアは、前記第2要求を前記第1コアに出力した場合、前記第1コアから前記ファイル情報が入力されたことに応じて、前記第1コアから入力された前記ファイル情報を用いて、前記ファイルを前記メモリから読み出し、前記ファイルによって示される前記受信データに基づいてRIP処理を行ってラスタデータを生成し、前記第1コアは、前記第2コアによって生成された前記ラスタデータに基づいて、前記印刷ユニットに印刷を行わせる、ことを特徴としている。
【0007】
本明細書に開示される印刷装置は、第1コアによって、受信データについて画像データの可能性があるか否かを判断し、画像データの可能性があれば受信データの解析を第2コアに依頼する。そして、第2コアによってファイル化処理の実行が必要となる所定の情報が検知された場合には、第1コアがファイル化処理を実行する。これにより、印刷までの処理のうち、処理負荷が高いRIP処理と画像データの解析処理とを第2コアに任せ、それら以外の処理を、RIP処理や画像データの解析処理と並行して第1コアに実行させることが可能になり、各処理を1つのプロセッサコアにより実行する場合と比べて、印刷までの処理時間の短縮が期待できる。
【0008】
上記印刷装置の機能を実現するための制御方法、コンピュータプログラム、および当該コンピュータプログラムを格納するコンピュータにて読取可能な記憶媒体も、新規で有用である。
【発明の効果】
【0009】
本明細書に開示される技術によれば、印刷装置において、印刷ジョブを受信してから印刷を完了させるまでに要する処理時間の短縮を図る技術が実現される。
【図面の簡単な説明】
【0010】
図1】本形態のプリンタの概略構成を示すブロック図である。
図2】データ解析手順を示すシーケンス図である。
図3】PJLデータを含むPCLXLの印刷ジョブの構成を示す説明図である。
図4】PJLデータを含むPDFの印刷ジョブの構成を示す説明図である。
図5】PJLデータを含まない印刷ジョブの構成を示す説明図である。
図6】区切り文字情報の例を示す説明図である。
図7】ファイル化手順を示すシーケンス図である。
図8】ファイル化処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態にかかるプリンタについて、添付図面を参照しつつ詳細に説明する。本形態は、受信した画像データに基づいて印刷を実行するプリンタを開示するものである。
【0012】
本形態のプリンタ1は、図1に示すように、第1コントローラ10と、第2コントローラ20と、第3コントローラ30と、を備え、これらがバス19に接続されている。また、プリンタ1は、ユーザインタフェース(以下、「ユーザIF」とする)13と、通信インタフェース(以下、「通信IF」とする)14と、印刷エンジン15と、メモリ40と、を備え、これらがバス19に接続されている。プリンタ1は、印刷装置の一例である。
【0013】
第1コントローラ10と第2コントローラ20と第3コントローラ30とは、メモリ40から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。本形態のプリンタ1の第1コントローラ10は、プロセッサコアとして、第1コア11と、第2コア12と、を有するマルチコアCPUである。第1コントローラ10は、コントローラの一例である。一方、第2コントローラ20と第3コントローラ30とは、いずれも、1つのプロセッサコアを有するシングルコアCPUである。
【0014】
第1コントローラ10の第1コア11は、例えば、受信データの解析、メモリやファイルの管理、を担う。第1コントローラ10の第2コア12は、例えば、画像データのラスタライズ、受信データの解析、を担う。なお、本形態の第2コア12は、第1コア11よりもクロック周波数が高く、負荷の高い処理であるラスタライズ処理に適している。第2コントローラ20は、例えば、印刷エンジン15の制御、搬送機構の制御、を担う。第3コントローラ30は、例えば、着色剤の管理、LED等の制御、を担う。なお、図1中の第1コントローラ10や第2コントローラ20や第3コントローラ30は、それぞれ、プリンタ1の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にプリンタ1に存在する単一のハードウェアを表すとは限らない。
【0015】
メモリ40には、各種のプログラムや各種のデータが記憶される。メモリ40は、各種の処理が実行される際の作業領域としても利用される。メモリ40の一例は、プリンタ1に内蔵されるROM、RAM、HDD等に限らず、コンピュータが読み取り可能かつ書き込み可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。第1コントローラ10、第2コントローラ20、第3コントローラ30が備えるバッファも、メモリの一例である。
【0016】
ユーザIF13は、例えば、タッチパネルであり、ユーザに情報を報知するための画面を表示するハードウェアと、ユーザによる操作を受け付けるハードウェアと、を含む。ユーザIF13は、表示部と操作ボタン等との組であっても良い。通信IF14は、パーソナルコンピュータ等の外部デバイスと通信を行うためのハードウェアを含む。通信IF14の通信規格は、イーサネット(登録商標)、Wi-Fi(登録商標)、USBなどである。プリンタ1は、複数の通信規格に対応する複数の通信IF14を備えていてもよい。印刷エンジン15は、シート等に画像を印刷するための構成を含む。印刷エンジン15の画像形成方式は、例えば、電子写真方式、インクジェット方式である。印刷エンジン15は、印刷ユニットの一例である。
【0017】
次に、本形態のプリンタ1の動作について、シーケンス図などを参照して説明する。なお、以下の処理は、基本的に、プログラムに記述された命令に従った各CPUの処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPUの処理を表している。CPUによる処理は、OSのAPIを用いたハードウェア制御も含む。本明細書では、OSの記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムBがハードウェアCを制御する」という趣旨の記載は、「プログラムBがOSのAPIを用いてハードウェアCを制御する」ことを指してもよい。また、プログラムに記述された命令に従ったCPUの処理を、省略した文言で記載することがある。例えば、「CPUが行う」のように記載することがある。また、プログラムに記述された命令に従ったCPUの処理を、「プログラムAが行う」のようにCPUを省略した文言で記載することがある。
【0018】
なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPUが要求することなくデータを受信するという処理も、「CPUがデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【0019】
また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであることを示しているか、を判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
【0020】
本形態のプリンタ1は、通信IF14を介して印刷ジョブ等のデータの受信を開始すると、受信したデータを順に解析する。データ解析手順について、図2のシーケンス図を参照して説明する。データ解析手順では、図2に示すように、第1コア11には、受信データ解析部111と、各種の処理部112と、エンジン制御部113と、が設けられる。第2コア12には、RIP部121が設けられる。なお、受信データ解析部111、各種の処理部112、エンジン制御部113、RIP部121等の、第1コア11や第2コア12に設けられる各部は、第1コア11や第2コア12が対応するプログラムを実行することで実現される。プリンタ1の通信IF14は、受信したデータを順に入力バッファに溜める。入力バッファは、例えば数キロバイトまでのデータを溜めることができる揮発性のメモリである。
【0021】
第1コア11の受信データ解析部111は、入力バッファから受信データを取得して(S101)、受信データに印刷ジョブのPJLデータが含まれるか否かを判断する(S102)。PJLデータは、プリンタ1の制御に用いるコマンドや印刷パラメータを含むデータである。プリンタ1に対応するプリンタドライバを用いて生成された印刷データには、PJLデータが含まれる。
【0022】
PJLデータを含む印刷ジョブの一例を図3に示す。図3に示す印刷ジョブ200は、ヘッダ部201と、ボディ部202と、フッタ部203とによって構成されている。ヘッダ部201とフッタ部203とは、PJLデータであり、ボディ部202は、PCLXL形式の画像データである。受信データから「[ESC]%-12345X」が検出された場合、PJLデータが含まれると判断し(S102:YES)、受信データ解析部111は、必要な情報をメモリ40に記憶しつつ、PJLデータを解析する。
【0023】
図3に示すように、ヘッダ部201のPJLデータには、例えば、印刷ジョブのジョブ名やユーザ名等の識別情報、印刷設定を示す設定情報、ボディ部202の画像データの種類を示す種類情報、を指定する各種のコマンドが含まれる。PJLデータに含まれる各種のコマンドは、プリンタ制御コマンドの一例である。
【0024】
受信データ解析部111は、受信データから、PJLデータのコマンドの1つである「ENTER LANGUAGE」コマンドを検知したか否かを判断する(S103)。プリンタ1にて印刷可能な画像データには、PCLXL、PDF(Portable Document Format)、PostScript、JPEG等の複数の種類があり、「ENTER LANGUAGE」コマンドにて示される情報は、画像データの種類を示す種類情報である。「ENTER LANGUAGE」コマンドは、種類特定コマンドの一例である。「ENTER LANGUAGE」コマンドは、例えば、図3に示した印刷ジョブ200のヘッダ部201の最終ラインに含まれる。つまり、「ENTER LANGUAGE」コマンドに続くデータは、ボディ部202であって、画像データである。
【0025】
受信データ解析部111は、受信データから「ENTER LANGUAGE」コマンドを検知しなかったと判断した場合(S103:NO)、受信データをさらに解析する。受信データ解析部111は、「ENTER LANGUAGE」コマンドが含まれないPJLデータを受信した場合、その受信データは印刷を指示するジョブではないと判断する。「ENTER LANGUAGE」コマンドが含まれないPJLデータは、画像データを含まないジョブであり、印刷ジョブではない可能性が高い。「ENTER LANGUAGE」コマンドが含まれないPJLデータは、特定ジョブコマンドの一例である。特定ジョブコマンドの一例としては、例えば、プリンタ1の情報の取得要求コマンド、ファームウェアのアップデート要求コマンド、がある。
【0026】
「ENTER LANGUAGE」コマンドが含まれないPJLデータを受信した場合、受信データ解析部111は、PJLデータの内容に応じて、第1コア11の各処理部112に処理要求を渡す(S106)。処理部112は、処理要求に基づいて、適切な処理を行う。例えば、受信したコマンドがプリンタ1の情報の取得要求コマンドであれば、処理部112は、要求されている情報をプリンタ1の各構成部から取得し、取得した情報を返信するための処理を行う。受信したコマンドが,プリンタ1の設定変更コマンドであれば、処理部112は、メモリ40に記憶されている設定情報を変更して記憶する。印刷ジョブではないPJLデータの処理を第1コア11が実行することで、第2コア12を負荷の高い処理に集中させることができる。なお、受信データ解析部111は、処理部112に処理要求を渡した後も、受信データが無くなるまで解析を続け、受信済みの受信データの解析が全て終わったら、データの受信を待つ。
【0027】
一方、受信データ解析部111は、読み出した受信データにPJLデータが含まれないと判断した場合(S102:NO)、解析対象の受信データの先頭アドレスを示すポインタとともにドキュメント解析要求を第2コア12に出力する(S111)。受信データ解析部111は、印刷ジョブの先頭に「[ESC]%-12345X」が含まれない場合、PJLデータが含まれないと判断する。PJLデータが含まれない受信データの解析処理は、第2コア12による処理であり、ドキュメント解析要求は、第1要求の一例である。
【0028】
なお、プリンタ1は、PJLデータを含まない画像データのみからなる印刷ジョブを受信することもある。例えば、プリンタ1に対応するプリンタドライバ以外のプログラムには、PJLデータを含まない印刷ジョブを出力するものがある。本形態のプリンタ1は、画像データそのものを受信した場合も、PJLデータを含まない印刷ジョブを受信した場合も、画像データに基づく印刷を実行可能である。以下では、画像データそのものを受信した場合であっても、印刷ジョブを受信したと記載する。
【0029】
ドキュメント解析要求が入力されると、第2コア12は、ポインタに基づいて受信データを読み出し、その受信データにファイル化処理の実行が必要となる画像データを示す情報が含まれるか否かを判断する(S115)。ファイル化処理は、受信データをファイル化して、入力バッファとは異なる記憶場所、例えば、メモリ40のRAM領域または不揮発性メモリ領域に保存する処理である。ファイル化処理の実行が必要となる画像データについての詳細や、ファイル化処理についての詳細は、後述する。
【0030】
また、受信データ解析部111は、受信データにPJLデータが含まれ、かつ、「ENTER LANGUAGE」コマンドを検知したと判断した場合(S103:YES)、RIP要求を第2コア12に出力する(S112)。RIP要求は、第2コア12によるRIP処理を要求する情報であり、RIP要求は、第1要求の一例である。受信データ解析部111は、RIP要求とともに、「ENTER LANGUAGE」コマンドによって指定されている画像データの種類、ヘッダ部から取得した印刷パラメータの情報、入力バッファの次の読み出し位置であるボディ部の先頭アドレスへのポインタ、を第2コア12に渡す。入力バッファに記憶された受信データのアドレスへのポインタを渡すことで、プリンタ1は、第1コア11と第2コア12とで受信データを共用できる。
【0031】
第2コア12のRIP部121は、第1コア11からのRIP要求に基づいて、ポインタによって示されるアドレスから受信データを順に読み出し、その受信データにファイル化処理の実行が必要となる画像データを示す情報が含まれるか否かを判断する(S116)。ファイル化処理の実行が必要となる画像データについての詳細や、S116にてYESと判断した場合の処理の詳細については、後述する。
【0032】
RIP部121は、ファイル化処理の実行が必要となる画像データを示す情報が含まれないと判断した場合(S116:NO)、RIP処理を行って(S121)、ラスタデータを生成する。例えば、図3に示した印刷ジョブ200では、画像データの種類がPCLXLであり、ボディ部202の先頭には、PCLXLの画像データを示す情報が含まれている。PCLXLの印刷ジョブ200では、ヘッダ部201のPJLデータに、RIP処理に用いるパラメータが全て含まれていることから、第2コア12のRIP部121は、第1コア11から入力されたパラメータを用いて、ボディ部202の先頭から順次RIP処理を実行できる。PCLXLの画像データは、ファイル化処理の実行が必要ではない画像データである。
【0033】
RIP部121は、RIP処理を開始した後、受信データを順にラスタライズし、所定量のラスタデータを生成するごとに第1コア11のエンジン制御部113に出力要求を出力する(S123)。RIP部121は、出力要求において、ラスタライズ済みの画像データのアドレスを示す情報を第1コア11に渡す。RIP部121は、エンジン制御部113が読み込む所定のバッファに、出力指令データやラスタデータを書き込んでもよい。RIP部121は、RIP対象の画像データの最後までラスタライズしたら、第1コア11からの次の要求を待つ。
【0034】
第1コア11のエンジン制御部113は、第2コア12から受け取った出力要求に基づいて、印刷エンジン15が印刷を開始できるだけのラスタデータを受け取ったら、第2コントローラ20等を介して印刷エンジン15を制御し(S124)、印刷を実行させる。
【0035】
続いて、前述した図2のS115またはS116にてファイル化処理の実行が必要と判断された場合の処理について説明する。S115またはS116では、RIP部121は、例えば、画像データの種類に基づいて、ファイル化処理の実行が必要となる画像データであるか否かを判断する。ファイル化処理の実行が必要となる画像データは、例えば、PDFの画像データである。
【0036】
PDFでは既存のファイルに文字や画像を追加して保存する増分更新が可能であり、画像データの終端を示す終端文字の後にさらにデータが追加されている場合がある。例えば、図4に示すPDFの画像データを含む印刷ジョブ300は、ヘッダ部301と、ボディ部302と、フッタ部303と、を含む。ヘッダ部301とフッタ部303とは、PJLデータを含み、ボディ部302は、画像データ304と付加データ305とを含む。
【0037】
付加データ305には、画像データ304の印刷に関する印刷パラメータが含まれる場合もあることから、プリンタ1は、画像データ304のRIP処理を開始する前に、付加データ305を解析する必要がある。しかし、入力バッファはその容量に制限があり、付加データ305の解析が終了するまで画像データ304を入力バッファに溜めておけるとは限らない。RIP部121は、ボディ部の先頭にPDFの画像データを示す情報が含まれる場合、入力バッファのフルを回避するために、S116にてファイル化処理の実行が必要となると判断する。
【0038】
また、プリンタ1は、PDFの画像データを含みPJLデータを含まないボディ部のみの印刷ジョブを受信することもある。例えば、図5に示す印刷ジョブ310は、ヘッダ部やフッタ部が無く、画像データ311と付加データ312とで構成される。印刷ジョブ310を受信した場合、第1コア11の受信データ解析部111は、図2のS102にてNOと判断し、S111にて画像データ311の先頭アドレスを示すポインタとドキュメント解析要求とを第2コア12に渡す。第2コア12のRIP部121は、画像データ311の先頭から受信データを解析し、PDFの画像データを示す情報が含まれる場合、S115にてファイル化処理の実行が必要となると判断する。
【0039】
画像データの先頭には、画像データの種類ごとに所定の区切り文字が付加されている。RIP部121は、例えば、図6に示すように、各種の画像データについて、画像データの先頭や終端を示す区切り文字の情報と画像データの種類を示す情報とを対応付けて記憶する区切り文字情報51を備えている。画像データの先頭を示す区切り文字は、先頭情報の一例である。例えば、PDFの画像データの先頭には、区切り文字として「%PDF」が含まれる。RIP部121は、読み出した受信データから「%PDF」を検知した場合に、ファイル化処理の実行が必要であると判断する。「%PDF」は、所定の情報の一例である。なお、画像データの先頭を示す区切り文字の検知は、第1コア11にて行ってもよい。
【0040】
PDFは、終端文字の後に印刷パラメータなどの付加データが含まれる可能性がある画像データの種類であり、特定の種類の一例である。なお、画像データの先頭や終端を示す区切り文字は、複数の文字を含む文字列である場合もあり、本明細書では、「終端文字列」を単に「終端文字」、「先頭文字列」を単に「先頭文字」と記載する。先頭文字や終端文字についての詳細は、後述する。
【0041】
次に、図7のシーケンス図を参照して、RIP部121にてファイル化処理の実行が必要と判断された場合の手順について説明する。図7に示すように、第1コア11には、ドキュメントセパレータ部115と、ファイルシステム部116と、メモリ管理部117と、が設けられる。第2コア12には、RIP部121と、ファイル読出部122と、が設けられる。
【0042】
第1コア11のファイルシステム部116は、メモリ管理部117を介して、メモリ40からの読み出し、および、メモリ40への書き込みが可能な構成であり、第1ファイルシステムの一例である。第2コア12のファイル読出部122は、第1コア11のファイルシステム部116とは異なり、メモリ40からファイルを読み出すための構成であり、ファイルの書き込みやメモリ管理を行わない。ファイル読出部122は、メモリ40への書き込みが不可能な第2ファイルシステムの一例である。
【0043】
ファイル化処理の実行が必要であると判断した場合、RIP部121は、第1コア11にファイル化要求と画像データの先頭アドレスとを入力する(S201)。ファイル化要求は、第2要求の一例である。これにより、第1コア11は、入力されたアドレスから順に受信データを読み出して、ファイル化処理を実行する。第2コア12が、ファイル化要求にて第1コア11に出力するアドレスは、第1アドレスの一例である。
【0044】
S201にてファイル化要求を出力する際に、RIP部121は、図6に示した区切り文字情報51を第1コア11に渡す。第1コア11は、区切り文字情報51を利用して、ファイル化処理を実行する。第1コア11は、ドキュメントセパレータ部115とファイルシステム部116とメモリ管理部117との協働によってファイル化処理を実行する。
【0045】
区切り文字情報51を第2コア12から第1コア11に渡す代わりに、第1コア11にも区切り文字情報51を持たせても良い。ただし、画像データの構成や区切り文字の種類は変更される場合もあり、区切り文字情報51を第1コア11と第2コア12との両方で管理する構成とするためには、画像データの解析に必要なファームウェアのバージョンを第1コア11と第2コア12との両方で揃える必要があることから、バージョン管理が複雑になる。本形態では、画像データの解析を第2コア12に集めているので、バージョン管理が容易である。特に、ファイル化が必要な画像データの種類が複数ある場合には、第2コア12で実行されるプログラムが区切り文字情報51を管理することで、バージョン管理が容易になる。
【0046】
ドキュメントセパレータ部115によって実行されるファイル化処理の手順について、図8のフローチャートを参照して説明する。ファイル化処理は、受信した印刷ジョブに含まれる画像データおよびその後に続く印刷パラメータをファイル化して、メモリ40に保存する処理である。なお、以下では、メモリまたはファイルへ書き込む処理を、「保存する」と記載する。
【0047】
ファイル化処理を開始すると、ドキュメントセパレータ部115は、ファイルオープン指示を第1コア11のファイルシステム部116に渡す(S301)。指示を受け付けたファイルシステム部116は、S301の指示に基づいて、ファイル名と関連付けてファイルの記憶領域を設定し、その先頭アドレスを決定する。
【0048】
ドキュメントセパレータ部115は、入力バッファから受信データを取得し(S302)、取得したデータを解析する。ドキュメントセパレータ部115は、RIP部121から受け取った区切り文字情報51に基づいて、取得したデータ中にファイル化処理の対象である画像データの終端文字が含まれるか否かを判断する(S303)。区切り文字情報51は、抽出情報の一例である。実行中のファイル化処理の対象がPDFであれば、図6に示したように、終端文字は「%%EOF」であることから、ドキュメントセパレータ部115は、S303にて、取得した受信データ中に「%%EOF」が含まれるか否かを判断する。
【0049】
取得したデータ中に終端文字が含まれないと判断した場合(S303:NO)、ドキュメントセパレータ部115は、S302にて取得した受信データをファイルシステム部116に渡し、S301にてオープンしたファイルへの保存を指示する(S304)。終端文字が含まれない受信データは、画像データの一部であり、まだ後に画像データが続いていることを示している。ファイルシステム部116は、メモリ管理部117に指示してメモリを確保し、受信データを保存する。S304の後、ドキュメントセパレータ部115は、S302に戻り、次のデータを入力バッファから取得する。
【0050】
取得したデータ中に終端文字が含まれると判断した場合(S303:YES)、ドキュメントセパレータ部115は、終端文字が取得したデータの末尾にあるか否か、つまり、取得したデータが終端文字で終わっているか否かを判断する(S310)。末尾にあると判断した場合(S310:YES)、ドキュメントセパレータ部115は、所定時間待ち(S311)、再度、終端文字が末尾にあるか否かを判断する(S312)。所定時間は、例えば、数十ミリ秒である。プリンタ1は、継続してデータを受信中であれば、この間に、通信IF14を介して次のデータを受信する可能性が高い。
【0051】
所定時間待っても終端文字が末尾にあると判断した場合(S312:YES)、すなわち、所定時間中に終端文字以降のデータを受信しなかった場合、ドキュメントセパレータ部115は、終端文字までで受信中のデータが終了したと判断する。そして、ドキュメントセパレータ部115は、終端文字までのデータの保存と(S313)、ファイルクローズと(S314)を、ファイルシステム部116に指示し、ファイル化処理を終了する。これにより、例えば、PDFの先頭文字(「%PDF」)から終端文字(「%%EOF」)までのデータが、1つのファイルとして保存される。
【0052】
終端文字がデータの末尾ではないと判断した場合(S310:NO、または、S312:NO)、ドキュメントセパレータ部115は、終端文字に続くデータを解析し、先頭文字の検知を試行する(S320)。具体的には、ドキュメントセパレータ部115は、区切り文字情報51に基づいて、先頭文字が有るか否かを判断する。例えば、PDFでは、図5に示した印刷ジョブ310のように、画像データ311の末尾に終端文字「%%EOF」があり、さらにその後に付加データ312が続く場合がある。付加データ312の末尾にも、画像データ311と同じ終端文字「%%EOF」が含まれる。つまり、1つの終端文字があっても印刷ジョブの最後とは限らず、続くデータを解析する必要がある。
【0053】
また例えば、PJLデータを含まないPDFの印刷ジョブでは、図5に示したように、複数の印刷ジョブが連続して送信される場合がある。例えば、複数の画像データに基づく印刷指示を受け付けた場合、PJLデータが含まれていない印刷ジョブが、複数連続して送信される可能性がある。USB通信のプロトコルの仕様によって、画像データと画像データとの間を隙間なく送信することが可能となる。なお、ネットワーク接続された外部デバイスからのデータ送信では、画像データと画像データとが連続して送信されることはない。
【0054】
この図5の例では、印刷ジョブ310の付加データ312に続いて、他の印刷ジョブ320の画像データ321および付加データ322が送信される。PJLデータを含まない複数の印刷ジョブが連続して送信された場合、プリンタ1は、先行する印刷ジョブの末尾の終端文字の後に、後続する印刷ジョブの先頭文字を受信する。ドキュメントセパレータ部115は、終端文字の後に別の先頭文字が有れば、その終端文字は印刷ジョブの最後であると判断する。
【0055】
なお、印刷ジョブの末尾の終端文字と次の印刷ジョブの先頭文字等との間には、数個の改行コードなど、少数の文字が挟まれる場合があることから、ドキュメントセパレータ部115は、終端文字から数バイトの所定のデータ量だけ先まで解析して、別の先頭文字の有無を判断する。
【0056】
また、PJLデータを含むPDFの印刷ジョブの場合、図4に示した印刷ジョブ300のように、画像データを含むボディ部302の後にPJLデータのフッタ部303が続く。ドキュメントセパレータ部115は、終端文字の後に、PJLデータを示すデータである「[ESC]%-12345X」が有る場合、その終端文字はファイル化処理の対象となるデータの最後であると判断する。
【0057】
数バイト以内に先頭文字もPJLデータも無いと判断した場合(S320:NO)、ドキュメントセパレータ部115は、その終端文字は印刷ジョブの最後ではないと判断して、S304に進む。つまり、ドキュメントセパレータ部115は、S302にて取得した受信データをオープン中のファイルに保存するようファイルシステム部116に指示し、S302に戻って、さらに次のデータを取得する。そして、ドキュメントセパレータ部115は、取得したデータからさらに別の終端文字を検知した場合も、S303にてYESと判断してS310に進む。
【0058】
一方、数バイト以内に先頭文字またはPJLデータが有ると判断した場合(S320:YES)、ドキュメントセパレータ部115は、先頭文字またはPJLデータの直前までのデータの保存(S321)と、ファイルクローズと(S322)を、ファイルシステム部116に指示する。受信データに先頭文字またはPJLデータが含まれている場合、ファイル化の対象となるデータは終端文字までである。そこで、ドキュメントセパレータ部115は、まず、オープンしているファイルをクローズする。
【0059】
そして、次のデータが先頭文字である場合、ドキュメントセパレータ部115は、その先頭文字が、PDF等のファイル化の必要な画像データの先頭文字であるか否かを判断する(S323)。先頭文字から後は別の印刷ジョブである。区切り文字情報51に基づいて、後続の印刷ジョブのファイル化が必要であると判断した場合(S323:YES)、ドキュメントセパレータ部115は、ファイルシステム部116に次のファイルのオープンを指示し(S324)、オープンしたファイルに、その先頭文字から後のデータを保存させる(S325)。
【0060】
連続して送信された複数の印刷ジョブを受信した場合、ドキュメントセパレータ部115は、それぞれの印刷ジョブに含まれる画像データごとに1つのファイルに保存する。例えば、図5に示した例では、ドキュメントセパレータ部115は、印刷ジョブ310の画像データ311と付加データ312を1つのファイルとしてファイル化し、そのファイルをクローズした後、別のファイルをオープンして後続のデータを保存する。そして、ドキュメントセパレータ部115は、S325の後、S302に戻って、次のデータを取得する。そして、後続の印刷ジョブ320の画像データ321と付加データ322を1つのファイルとしてファイル化する。
【0061】
受信データに先頭文字が含まれている場合であっても、その先頭文字がPDFの先頭文字ではないと判断した場合(S323:NO)、または、終端文字に続くデータがPJLデータであると判断した場合、ドキュメントセパレータ部115は、ファイル化処理を終了する。PDFの印刷ジョブ以外のデータであればファイル化の必要はないことから、ドキュメントセパレータ部115は、ファイル化処理を終了して図7の処理に戻る。
【0062】
なお、PDF以外の先頭文字が含まれる場合、ドキュメントセパレータ部115は、その先頭文字の位置を示すポインタとドキュメント解析要求とを第2コア12のRIP部121に渡し、RIP部121は、先頭文字から以後のデータについて、ドキュメント解析処理を行う。また、PJLデータが含まれる場合、ドキュメントセパレータ部115は、続くデータの処理要求を、第1コア11の受信データ解析部111(図2参照)に渡す。
【0063】
図7の説明に戻る。ファイル化処理を終了すると、ドキュメントセパレータ部115は、第2コア12のRIP部121にファイル化終了を通知する(S211)。ドキュメントセパレータ部115は、第2コア12から入力されたファイル化要求に対する戻り値として、作成した各ファイルのファイル管理情報を第2コア12に出力する。ファイル管理情報は、ファイル保存領域の先頭アドレスを示すポインタ、ファイル名等の情報であり、ファイル情報の一例である。ファイル保存領域の先頭アドレスは、第2アドレスの一例である。
【0064】
なお、全てのデータのファイル化が終了する前であっても、ドキュメントセパレータ部115は、例えば、S322にてファイルをクローズしたら、クローズしたファイルのファイル管理情報を第2コア12に出力しても良い。第2コア12のRIP部121は、第1コア11から入力されたファイル管理情報に基づいて、そのファイルについての処理を開始しても良い。
【0065】
RIP部121は、第1コア11から入力されたファイル管理情報を、第2コア12のファイル読出部122に渡して(S213)、ファイルを読み出すための準備処理を行わせる。第2コア12にファイル読出部122を備えることで、RIP部121は、ファイルへのアクセスが容易になる。第2コア12のファイル読出部122は、第1コア11のファイルシステム部116よりも簡易な構成なので、両方にファイルシステムを備える場合に比較して、印刷のためのプログラムサイズの肥大化を抑えることができる。
【0066】
ファイル読出部122による読み出し準備が終了したら、RIP部121は、ファイル読出部122を介して、ファイルから画像データを読み出し(S214)、RIP処理を実行する(S215)。RIP部121は、まず、ファイルから読み出した画像データの全体を解析して印刷パラメータを抽出し、抽出した印刷パラメータに従ってRIP処理を行う。PJLデータに基づくパラメータを第1コア11から受け取っている場合には、RIP部121は、第1コア11から受け取ったパラメータとファイルから抽出したパラメータとの両方に基づいて、パラメータとして用いる。
【0067】
ファイル化された画像データは、画像データの後にパラメータが含まれている可能性があることからファイル全体からパラメータを抽出し、抽出したパラメータに従ってRIP処理を行うことで、適切なRIP処理を実行できる。なお、第1コア11から受け取ったパラメータとファイルから抽出したパラメータとで競合するパラメータがあった場合、プリンタ1は、あらかじめプログラムされた方法に従って、どちらかのパラメータを優先する。なお、プリンタ1は、優先するパラメータの選択を受け付けても良い。
【0068】
そして、RIP部121は、所定量のラスタデータを生成するごとに、第1コア11に出力要求を出力する(S216)。S216は、図2中のS123と同様の処理である。出力要求に基づいて、第1コア11のエンジン制御部113は、印刷エンジン15を制御して、印刷を実行させる。
【0069】
RIP部121は、ドキュメントセパレータ部115から受け取ったファイルの全体の処理が終了するまで、ファイルの読み出しとRIP処理とを繰り返す。これにより、1つの印刷ジョブについてのRIP処理が完了する。複数の印刷ジョブを連続して受信した場合であっても、印刷ジョブごとに1つのファイルとなっているので、RIP部121は、各印刷ジョブについて適切な処理を行うことができる。これにより、プリンタ1は、印刷ジョブごとに適切な印刷物を形成できる。
【0070】
以上、詳細に説明したように、本形態のプリンタ1は、データを受信した際に、受信した画像データからラスタデータを生成するRIP処理を第2コア12に行わせる。ただし、画像データには、データの後端まで受信しないとRIP処理に必要な情報が不明な場合があり、そのような画像データの場合には入力バッファのフルを回避するためにファイル化する必要がある。そこで、本形態のプリンタ1は、第1コア11により、受信データについて画像データの可能性があるか否かを判断し、画像データの可能性があれば、第2コア12に受信データの解析を依頼する。そして、第2コアによってファイル化処理の実行が必要となる所定の情報が検知された場合には、第1コアがファイル化処理を実行する。これにより、印刷までの処理のうち、処理負荷が高いRIP処理と画像データの解析処理とを第2コア12に任せ、それら以外の処理を第1コア11にてRIP処理や画像データの解析処理と並行して実行させることが可能になり、各処理を1つのプロセッサコアにより実行する場合と比べて、印刷までの処理時間の短縮が期待できる。
【0071】
特に、本形態のプリンタ1は、第1コア11だけで受信データのファイル化処理を行う。第2コア12が第1コア11のファイルシステム部116を利用してファイル化を行うと頻繁にコア間の通信が生じてしまう。例えば、4キロバイトごとにファイルを切り出して書き込む場合、4キロバイトごとにコア間の通信が生じてしまう。コア間の通信は遅く、処理時間の長時間化の要因となるが、本形態では、第1コア11が第1コア11のファイルシステム部116を利用してファイル化処理を行うため、コア間の通信の頻度が少なく、コア間の通信に伴う処理時間の長時間化を抑えることができる。
【0072】
さらに、本形態のプリンタ1は、受信データにPJLデータがあり、PJLデータに「ENTER LANGUAGE」コマンドが含まれる場合、または、受信データにPJLデータが無い場合、続く受信データが画像データである可能性が高いことから、第2コア12に受信データの解析を行わせる。第2コア12は、区切り文字情報51を有しており、先頭文字によって画像データの種類を特定できる。そして、第2コア12は、特定した画像データの種類が、ファイル化が必要な画像データであれば、第1コア11にファイル化を依頼し、ファイル化が必要な画像データでなければ、ファイル化せずにRIP処理を開始するので、印刷までの処理時間の短縮が期待できる。
【0073】
さらに、本形態の第2コア12は、第1コア11にファイル化要求を出力する際に、区切り文字情報51も第1コア11に渡す。画像データの種類によって区切り文字が異なることから、第1コア11は、区切り文字情報51を参照することで、ファイル化する画像データを抽出しやすい。なお、本形態では、第2コア12は、区切り文字情報51の全体を第1コア11に渡すとしたが、例えば、PDF以外の区切り文字については、先頭文字だけを渡してもよい。
【0074】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。従って本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、プリンタ1は、印刷単機能のものに限らず、複合機、複写機、FAX装置等、印刷機能を備えるものであれば適用可能である。また、プリンタ1での印刷対象となる画像データは、PC等から送信される印刷ジョブに限らず、スキャナ、クラウドサーバ、USBメモリ等から取得した画像データであっても良い。
【0075】
例えば、プリンタ1は、通信IF14としてUSBメモリの挿入口を有していれば、挿入されたUSBメモリに記憶されている画像データに基づく印刷指示を受け付けることができる。例えば、印刷ジョブを記憶しているUSBメモリを装着された場合、プリンタ1は、装着されたUSBメモリから印刷ジョブ等のデータを取得しても良い。USBメモリからデータを取得する場合、プリンタ1は、USBメモリから取得したデータを入力バッファに書き込みながら、入力バッファ内のデータを対象としてS101以降の処理を行っても良い。あるいは、プリンタ1は、入力バッファに書き込むことなく、USBメモリからデータを取得しながらS101以降の処理を行っても良い。入力バッファを介さずにデータを取得する場合、実施の形態中の各処理は、「入力バッファ」を「USBメモリ」に置き換えた処理となる。また、例えば、USBメモリに画像データがファイルとして記憶されていることもあり、その場合には、プリンタ1は、メモリ40内にファイル化して記憶することなく、USBメモリに記憶されているファイルを対象としてRIP処理を行っても良い。
【0076】
また、例えば、クラウドサーバ等からのダウンロードによって画像データを取得した場合、プリンタ1は、ダウンロードした画像データの全体を入力バッファとは別の記憶場所に記憶してから、USBメモリから取得したデータの場合と同様に処理しても良い。例えば、プリンタ1は、ダウンロードした画像データの全体を一旦ファイル化し、そのファイルを対象としてRIP処理を行っても良い。
【0077】
また、本形態では、プリンタ1は、画像データの種類がPDFの場合にファイル化処理を実行するとしたが、PDF以外の画像データについても、ファイル化処理を実行してもよい。その場合、第2コア12は、ファイル化の対象とする他の種類の画像データについても、先頭文字を検出したら、第1コア11にファイル化要求を入力する。第1コア11は、ファイル化要求とともに、その種類の画像データの終端文字の情報を第2コア12から受け取り、受信データから終端文字を検出するまでファイル化する。なお、終端文字を複数含む可能性のない種類の画像データをファイル化する場合には、第1コア11は、終端文字を検出した時点でファイル化を終了すればよい。具体的には、第1コア11は、ファイル化処理のS303にてYESと判断したら、S313に進むとすればよい。
【0078】
また、PJLデータが含まれる印刷ジョブの場合、「ENTER LANGUAGE」コマンドに画像データの種類を示す情報が含まれる。そこで、PJLデータが含まれる場合には、その画像データがPDFであるか否か、すなわち、ファイル化が必要な画像データであるか否かの判断を第1コア11が行っても良い。そして、ファイル化が必要であると判断した場合、第1コア11は、RIP要求を第2コア12に渡さず、ファイル化を開始しても良い。
【0079】
また、本形態では、第2コア12は、ファイルの書き込みを行わないファイル読出部122を有するとしたが、第2コア12も、第1コア11と同様に、書き込みと読み出しの可能なファイルシステムを備えていてもよい。また、本形態では、第2コア12が区切り文字情報51を有し、ファイル化要求とともに第1コア11に渡すとしたが、第1コア11も区切り文字情報51を有していてもよい。また、本形態では、1ページ分のラスタデータを生成するごとに印刷するとしたが、2ページ以上ごとに印刷するとしてもよい。
【0080】
また、実施の形態に開示されている任意のフローチャートにおいて、任意の複数のステップにおける複数の処理は、処理内容に矛盾が生じない範囲で、任意に実行順序を変更できる、または並列に実行できる。
【0081】
また、実施の形態に開示されている処理は、単一のCPU、複数のCPU、ASICなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【0082】
1 プリンタ
10 第1コントローラ
11 第1コア
12 第2コア
14 通信IF
15 印刷エンジン
40 メモリ
図1
図2
図3
図4
図5
図6
図7
図8