(57)【特許請求の範囲】
【請求項１】
印刷媒体上を移動させることにより印刷を行う印刷装置であって、
複数の画素を同時に記録可能な記録ヘッドと、
前記記録ヘッドの現在位置と傾きを求める位置情報算出手段と、
前記記録ヘッドにより印刷すべき画像の画像データを格納するメモリと、
前記位置情報算出手段により算出された前記記録ヘッドの位置情報に基づき、前記メモリから必要な画素データを読み出し、前記記録ヘッドへ出力する画像読取手段を有する制御部と、を少なくとも備え、
前記メモリに格納された画像データは、少なくとも縦方向及び横方向の複数の画素を含む矩形または略正方形のブロックに分割されており、
前記画像読取手段は、画像データをブロック単位で一時的に蓄積するサブメモリと、前記記録ヘッドの位置情報とブロック単位の画像データとを対応させ、必要な画像データを読み出しまたは書き込むための前記メモリへのアクセスを管理するサブメモリ管理手段と、を有することを特徴とする印刷装置。
【請求項２】
前記画像読取手段は、所定の領域の画像が記録済みであることを示す情報を画素単位で前記メモリへ書き戻す手段を有し、前記情報に基づき、記録済の画像の領域には画素を記録しないように前記記録ヘッドを制御する手段を備えることを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記所定の領域の画像が記録済であることを示す情報を画素単位で前記メモリへ書き戻す手段は、記録済みの画像データのメモリをクリアする手段、および画像データとは別に記録済みを示す情報を記録する手段のいずれかであることを特徴とする請求項２に記載の印刷装置。
【請求項４】
前記サブメモリ管理手段は、画像データの各ブロック単位毎に寿命を示す情報であるＴＴＬを付加し、読み出し及び書き込みのアクセスによりＴＴＬを設定し、所定のタイミング毎にＴＴＬをカウントダウンし、ＴＴＬが一定の値に達したブロックからデータの破棄または前記メモリへの書き戻しを実行することを特徴とする請求項１から３のいずれかに記載の印刷装置。
【請求項５】
前記サブメモリ管理手段により管理されるＴＴＬは、前記サブメモリからメモリに書き戻す閾値が、読み出し時に設定される値以上となるように設定されることを特徴とする請求項４に記載の印刷装置。
【請求項６】
前記サブメモリ管理手段により管理されるＴＴＬは、書き出し時に設定される値が、前記サブメモリからメモリに書き戻す閾値に１を加えた値を超えるように設定されることを特徴とする請求項４または５に記載の印刷装置。
【請求項７】
前記サブメモリ管理手段により管理されるＴＴＬは、読み出し時に設定される値が、ブロックの破棄の判断に用いる閾値に１を加えた値を超えるように設定されることを特徴とする請求項４から６のいずれかに記載の印刷装置。
【請求項８】
前記メモリに格納された画像データは、縦方向の画素数と横方向の画素数とが同じブロックに分割されていることを特徴とする請求項１から７のいずれかに記載の印刷装置。
【請求項９】
前記メモリに格納された画像データは、千鳥状に配置されたブロックに分割されていることを特徴とする請求項１から８のいずれかに記載の印刷装置。
【請求項１０】
請求項１から９のいずれかに記載の印刷装置と、前記印刷装置に画像データを送信する電子機器とを含むことを特徴とする印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置および印刷システムに関する。
【背景技術】
【０００２】
近年、ノートＰＣの小型化やスマートデバイスの急激な普及により、プリンタにおいても小型化や携帯可能な態様が求められている。このような要求に対し、印刷媒体である用紙の搬送システムを省略し、用紙上をユーザ（操作者）の手で移動させながら画像を形成するハンドヘルド印刷装置が知られている。
【０００３】
ハンドヘルド印刷装置における記録ヘッドの位置検知と装置の移動方向（走査方向）の組合せとしては、例えば、一方向（例えば、Ｘ軸方向）の位置検知機能を備え、一方向にのみ走査させて印刷を行うもの、および二方向（例えば、Ｘ軸及びＹ軸方向）の位置検知機能を備え、二方向にのみ走査させて印刷を行うものが知られている。
さらに、三方向（例えば、Ｘ軸、Ｙ軸、及び回転軸方向）の位置検知機能を備え、平面上を自由に移動（フリーハンド走査）させて印刷を行う印刷装置が提案されている（例えば、特許文献１参照）。
【０００４】
特許文献１には、印刷装置を用紙平面上で自由に移動させて印刷を行うために、操作者が任意に移動させた記録ヘッドの位置を検出し、その位置に応じてメモリから画像データを読み込んで印刷を行う方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、操作者による記録ヘッドの動きは制御できないため、記録ヘッドの位置を検出してから、検出された記録ヘッドの位置に対応する画像データをメモリから読み込む必要がある。記録ヘッドは逐次移動しているため、位置を検出してから対応するメモリを読み込むまでの時間が長くなると、その間の記録ヘッドの移動により印刷位置の誤差が大きくなってしまうという問題がある。
【０００６】
また、記録ヘッドをフリーハンドで走査することで、記録ヘッドが同じ領域を複数回通過することによりインクの重ね打ちが発生し、インクの無駄を生じるとともに、形成される画像の濃度むらの原因となることがある。
【０００７】
インクの重ね打ちを防止するためには、例えば、既に印刷した領域の画像データを白データに書き換えてメモリに戻す必要がある。このような書き戻しのためのメモリへのアクセスを含めると、アクセスの回数が増大し、メモリから画像データを読み込む時間もさらに長くなってしまうという問題がある。
【０００８】
そこで本発明は、フリーハンド走査により画像形成を行う場合に、記録ヘッドの位置や傾きにかかわらず、メインメモリへのアクセス回数及びアクセス時間を低減可能な印刷装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため、本発明に係る印刷装置は、印刷媒体上を移動させることにより印刷を行う印刷装置であって、複数の画素を同時に記録可能な記録ヘッドと、前記記録ヘッドの現在位置と傾きを求める位置情報算出手段と、前記記録ヘッドにより印刷すべき画像の画像データを格納するメモリと、前記位置情報算出手段により算出された前記記録ヘッドの位置情報に基づき、前記メモリから必要な画素データを読み出し、前記記録ヘッドへ出力する画像読取手段を有する制御部と、を少なくとも備え、前記メモリに格納された画像データは、少なくとも縦方向及び横方向の複数の画素を含む矩形または略正方形のブロックに分割されており、前記画像読取手段は、画像データをブロック単位で一時的に蓄積するサブメモリと、前記記録ヘッドの位置情報とブロック単位の画像データとを対応させ、必要な画像データを読み出しまたは書き込むための前記メモリへのアクセスを管理するサブメモリ管理手段と、を有することを特徴とする印刷装置である。
【発明の効果】
【００１０】
本発明によれば、フリーハンド走査により画像形成を行う場合に、記録ヘッドの位置や傾きにかかわらず、メインメモリへのアクセス回数及びアクセス時間を低減可能な印刷装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の印刷装置のハードウエア基本構成の一例を示すブロック図である。
【図２】本実施形態の印刷システムを構成する電子機器と印刷装置の一例を示す模式図である。
【図３】本実施形態の印刷装置の制御部の構成の一例を示すブロック図である。
【図４】図４（Ａ）及び図４（Ｂ）は画像データをメモリ上に配置する順序を示した模式図であり、図４（Ｃ）はライン単位で配置されたメモリ、図４（Ｄ）は略正方形のブロック単位で配置されたメモリを示す模式図である。
【図５】記録ヘッドの動きにより必要となるメモリアクセス量を説明する模式図である。
【図６】本実施形態の印刷装置の画像読取部（回転器）の構成の一例を示すブロック図である。
【図７】本実施形態の印刷装置のアドレス生成部からの書き込み要求が発生したときの処理の流れを示すフローチャートである。
【図８】ブロック配置によるメモリ転送レートの違いを説明する模式図である。
【図９】本実施形態の印刷装置のテーブル管理部及びデータ蓄積部で管理される各情報を示した表である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る印刷装置および印刷システムについて、図面を参照して説明する。なお、本発明は以下に示す実施形態に限定されるものではなく、他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００１３】
図２は、本実施形態の印刷システムの一例を示す模式図であり、図２（Ａ）は本実施形態の印刷装置に画像データを送信する電子機器、図２（Ｂ）は本実施形態の印刷装置としてのハンドヘルドプリンタによる印刷の態様の一例を示している。
【００１４】
図２（Ｂ）に示すように、印刷装置（ハンドヘルドプリンタ）１０は、ユーザ８０が片手で操作可能な大きさ及び重量であり、ノートや印刷用紙などの印刷媒体７０の上を平面状に自由に（フリーハンド）走査して、画像を形成することができる。
【００１５】
以下、印刷装置１０の例として、複数のノズルを有するインクジェット記録ヘッドを備えたインクジェットプリンタについて説明するが、本実施形態の印刷装置１０は、同時に複数の画素を出力可能な記録ヘッドを備えたものであれば特に限定されず、例えば、サーマルヘッドプリンタであってもよい。また、印刷装置１０は、モノクロプリンタであっても、カラープリンタであってもよい。
【００１６】
印刷装置１０は、図２（Ａ）に示す画像データ出力器６０から画像データを無線通信（符号６１で模式的に示す）により受信して、印刷媒体７０上に画像を形成する。画像データとしては特に限定されず、例えば、文字からなるテキストデータ、図、絵、写真などを含む文書データ、及び表データなどが挙げられる。
【００１７】
印刷装置１０は、画像データ出力器６０から画像データとともに印刷設定情報（例えば、モノクロ／カラーの指定など）を受信し、該設定情報に基づいて画像を形成することができる。
【００１８】
画像データ出力器６０としては、例えば、スマートフォン、タブレット端末、およびノートＰＣ等の電子機器が挙げられる。画像データ出力器６０は、印刷装置１０と無線通信（符号６１で模式的に示す）を行い、画像データを送信する。印刷装置１０に送信される画像データは、画像データ出力器６０が保持するデータの他、サーバ等の他の機器から取得したデータであってもよい。
【００１９】
図１に印刷装置１０のハードウエア基本構成の一例を示す。
印刷装置１０のハードウエア制御を行うファームウエアや、記録ヘッドの駆動波形データは、メモリ１２に格納されている。
【００２０】
画像データ通信インターフェース（Ｉ／Ｆ）１５により画像データ出力器６０からの画像データ（印刷ジョブ）を受信すると、制御部（制御モジュール）１３は、ナビゲーションセンサ１７からの入力情報に基づき、記録ヘッド１９の各ノズルの位置を算出する。
【００２１】
ユーザ８０によるフリーハンド走査により印刷媒体７０上を移動している間、印刷装置１０は記録ヘッド１９の各ノズル位置の算出を継続し、算出されたノズル位置に対応する画像（周辺領域の画像を含む）のデータをメモリ１２から転送させる。転送された画像とノズル位置とが合致すると判断された場合、当該画像のデータを記録ヘッド駆動回路１４へ転送する。
記録ヘッド１９は、記録ヘッド駆動回路１４から画像データとともに印刷タイミング情報も受信し、そのタイミングに基づいて各ノズルからインクを印刷媒体７０へ吐出する。
【００２２】
操作ユニット１８は、操作ボタン、タッチパネル、液晶ディスプレイ（ＬＣＤ）等を含み、ユーザからの入力を受けるとともに、ユーザに対して処理の状況やエラー等の通知を行うことができる。
【００２３】
印刷装置１０はさらに、電源２６および各ユニットへ供給する電源を制御する電源回路１１等を備える。
【００２４】
図３に、図１に示す制御部１３の構成の一例を示す。
制御部１３は、例えば、ＳｏＣ（System  on  chip）と、ＡＳＩＣ（Application  Specific  Integrated  Circuit）及びＦＰＧＡ（Field  Programmable  gate  alley）とから構成することができる。
【００２５】
符号２０で示すＳｏＣは、印刷装置１０全体の制御を行うＣＰＵ２１と、メモリ１２を制御するメモリコントローラ２３と、記録ヘッド（各ノズル）の位置を算出する位置算出回路２２とを有する。これらはバス２４に接続され、バス２４を介してデータ等のやりとりを行う。
【００２６】
符号３０で示すＡＳＩＣ／ＦＰＧＡは、ナビゲーションセンサＩ／Ｆ３３と、タイミング生成部３４と、画像読取手段である画像読取部（回転器）３２と、割り込み通知部３１と、記録ヘッド制御部３５とを有する。これらはバス３６に接続され、バス３６を介してデータ等のやりとりを行う。
【００２７】
バス２４とバス３６は接続されており、ＳｏＣとＡＳＩＣ／ＦＰＧＡとは、バス２４とバス３６を介してデータ等のやりとりを行う。
【００２８】
ナビゲーションセンサインターフェース（Ｉ／Ｆ）３３は、ナビゲーションセンサ１７と通信し、ナビゲーションセンサ１７からの出力値を受信し、その値を内部メモリである内部レジスタに格納する。
【００２９】
割り込み通知部３１は、ナビゲーションセンサＩ／Ｆ３３がナビゲーションセンサ１７との通信を終了したときＳｏＣ２０へその旨を通知し、エラー等のステータス情報を通知する。
【００３０】
タイミング生成部３４は、例えば、センサが光を照射し、印刷媒体７０からの反射光をイメージデータとして取得するタイミングの情報を生成し、その情報をナビゲーションセンサＩ／Ｆ３４に送る。このように、タイミング生成部３４は、ナビゲーションセンサ１７に印刷媒体７０を読み取るタイミングを指示する。
【００３１】
一方、ＣＰＵ２１はナビゲーションセンサ１７の出力値を読み取り、記録ヘッド１９の位置を算出する。
ＣＰＵ２１により算出された記録ヘッド１９の位置情報は、画像読取部（回転器）３２へ入力される。
【００３２】
画像読取部（回転器）３２は、記録ヘッド１９の位置情報から各ノズル位置を算出し、ノズル位置に応じた画像データをメモリから読み出す。さらに、画像読取部（回転器）３２は、読み出された画像データをヘッドの位置や傾きに応じて回転させ、記録ヘッド１９が要求する並び順で記録ヘッド制御部３５へ出力する。
【００３３】
タイミング生成部３４はさらに、記録ヘッド１９を駆動するタイミングの情報を生成し、生成した情報を記録ヘッド制御部３５に送る。すなわち、タイミング生成部３４は、印刷を行うために記録ヘッド１９の複数のノズルからインクを吐出させるタイミングを指示する。
【００３４】
記録ヘッド制御部３５は、記録ヘッド１９を駆動するタイミングの情報から制御信号を生成し、画像読取部（回転器）３２から出力された画像データを受け付け、どのノズルからインクを吐出させるかを判断する。記録ヘッド制御部３５は、判断結果及びタイミングの情報に応じて、インクを吐出させるノズルの情報及び画像データを記録ヘッド駆動回路１４に出力する。
【００３５】
画像読取部（回転器）３２は、記録ヘッド制御部３５へ画像データを送信するのにあわせて、重ね打ちを防ぐための情報をメモリ１２（メモリコントローラ２３）に書き戻す手段を備える。
重ね打ちを防ぐための情報とは、所定の領域の画像が記録済であることを示す情報であれば特に限定されず、画素単位でメモリ１２へ書き戻す手段としては例えば以下の例が考えられる。
（１）記録済みの画像データのメモリをクリアする手段
（２）画像データとは別に記録済みを示す情報を記録する手段
【００３６】
上記（１）の手段は、元の画像データを、非吐出データとして書き換える（メモリをクリアする）。
上記（２）の手段は、元の画像データとは別に、当該画像データが記録済みの領域に対応したデータであることを示す情報を記録する。
上記（１）のパターンの場合、リードするデータが元の画像のみでよいため、メモリアクセス負荷が小さくなる。また、該当する画像データの読み込みと書き出しのみで済むため、メモリアクセス回数の増加も抑えることができる。
一方、上記（２）のパターンの場合、元の画像と記録済みであることを示すデータの両方をリードする必要があるため、メモリ負荷が増大する。しかしながら、元画像のメモリデータを壊すことがないため、元画像に応じて所望の処理（例えば、文字領域とグラフィック領域とを判定して何らかの処理を施す等の処理）を実現することができる。また、複数ページの印刷時に、元の画像データを再利用することができる。
【００３７】
上述のように、本実施形態の印刷装置は、印刷媒体７０上を移動させることにより印刷を行う印刷装置１０であって、複数の画素を同時に記録可能な記録ヘッド１９と、記録ヘッド１９の現在位置と傾きを求める位置情報算出手段であるＣＰＵ２１と、記録ヘッド１９により印刷すべき画像の画像データを格納するメモリ１２と、位置情報算出手段であるＣＰＵ２１により算出された記録ヘッド１９の位置情報に基づき、メモリ１２から必要な画素データを読み出し、記録ヘッド１９へ出力する画像読取手段を有する制御部１３と、を少なくとも備える。
メモリ１２に格納された画像データは、少なくとも縦方向及び横方向の複数の画素を含む矩形または略正方形のブロックに分割されている。
【００３８】
分割された画像データの配置について図４を参照して説明する。
図４（Ａ）及び図４（Ｂ）は画像データをメモリ上に配置する順序を示した模式図であり、矢印は、どのような順序で画像データをメモリに配置するかを示したものである。
図４（Ｃ）はライン単位で画像データが配置されたメモリ、図４（Ｄ）は略正方形のブロック単位で画像データが配置されたメモリを示す模式図である。
図４（Ａ）及び図４（Ｃ）は従来の印刷装置における態様であり、図４（Ｂ）及び図４（Ｄ）は本実施形態の印刷装置１０における態様である。
【００３９】
従来例を示した図４（Ｃ）では、１ライン分の画像データがメモリ上の連続したアドレスに配置され（Ｌ１）、次いで２ライン目以降の画像データがメモリ上に配置される（Ｌ２…Ｌｎ）ことを示している。
本実施形態の印刷装置１０は、フリーハンドで走査して画像形成を行うため、例えば、記録ヘッドを図面の縦向きに配置した場合、各ノズルにおいてラインＬごとに配列されたドット（画素）Ｄのデータを、その都度メモリから取得する必要がある。
図４（Ｃ）に示す画像データの配列では、画素のデータを取得するために、タイミングごとに飛び飛びのアクセスを行うことになり、ノズルの数に応じたメモリアクセスが生じ、効率が低下する。
【００４０】
これに対し、本実施形態の印刷装置１０では、図４（Ｄ）に示すように、縦方向にＭ、横方向にＮの略正方形のブロック単位Ｂでメモリを配置することにより、メモリアクセスの効率が改善される。すなわち、画像データを縦方向及び横方向それぞれ複数のドットＤを含むブロックＢに配置することにより、縦横方向の近接する画像データを一度のメモリアクセスで読み出すことができる。
【００４１】
なお、ブロックＢの形状がラインＬに近い横長の形状であると、従来例と同様に記録ヘッドを縦向きに配置した場合のアクセス回数が増加して効率が低下し、ブロックＢの形状が縦長の形状であると、ヘッドを横向きに配置した場合のアクセス回数が増加し、効率が低下する。
【００４２】
メモリ１２に格納された画像データは、縦方向の画素数と横方向の画素数とが同じブロックに分割されていることが好ましい。具体的には、分割されたブロックのサイズの高さが８〜３２ドット、幅が８〜３２ドットの範囲にあるものが好ましい。
例えば、ブロックＢの形状は、図４（Ｄ）に示すように正方形に近い形状であることが好ましく、例えば16dot×16dotとすることができる。
【００４３】
また、各ブロックのサイズと先頭アドレスとをアラインメントすることにより、１ブロックの画像データを１回のメモリアクセスで読み出し可能とし、メモリアクセス効率を向上させることができるため好ましい。具体的には、ブロックサイズを64Byte（16dot×16line×2bit/dot）として各ブロックの先頭アドレスを６４の倍数とすることができる。
【００４４】
このように、本実施形態の印刷装置１０では、ブロック単位で画像データを格納し、１ブロック分のメモリ読み出し／書き込みを１回の転送単位でアクセスできるサイズ、アドレス（アラインメント）でデータを配置する。
【００４５】
次いで、記録ヘッドの動きにより必要となるメモリアクセス量について、図５を参照して説明する。
図５（Ａ）は、Ｎ番目の吐出時（Ｎは０以上の整数）の記録ヘッドの位置Ｈ１と、読み出す必要のあるブロックＢ１を示したものである。すなわち、記録ヘッドがＨ１の位置にあるとき、ブロックＢ１がアクセスの対象となる。
図５（Ｂ）は、Ｎ＋１番目の吐出時の記録ヘッドの位置記録ヘッドの位置Ｈ２と、読み出す必要のあるブロックＢ１及びＢ２を示したものである。記録ヘッドの移動により新たに読み出す必要のあるブロックは、色分けして示したブロックＢ２のみであるため、Ｎ番目の吐出時に既に読み出したＢ１のデータを画像読取部（回転部）３２内に保持しておくことができれば、全てのブロックをメモリから読み出す場合と比較して、メモリへのアクセス回数を低減することが可能になる。
【００４６】
内部メモリに必要な容量は、１回の吐出時（Ｎ番目の吐出時）にアクセスするブロック数の最大値と、次の吐出時（Ｎ＋１番目の吐出時）にアクセスするブロック数の最大値との和で与えられる。
【００４７】
図５（Ｂ）に示す例において、Ｂ１ａ及びＢ１ｂで示す領域はＮ＋１番目の吐出では使用していないため、これらのデータを破棄するか、メモリへ書き戻すことにより開放可能である。
例えば、印刷済みのデータをマスクしてメインメモリに書き戻す際に、サブメモリ上にデータを書き込んでおき、該当するブロックが未使用となったときにブロックごとにまとめてメインメモリへ書き戻すことにより、重ね打ちの発生を防ぐことができる。
【００４８】
画像データを小サイズのブロックに分割し、同一ブロックの画像データがメモリ上連続的な配置となるようにあらかじめ画像データを並び替えておくことにより、記録ヘッドの位置や傾きにかかわらず、メインメモリへのアクセスの回数および１回のアクセスサイズ時間を低減することができる。
【００４９】
また、直前にメインメモリからリードした画像データを高速アクセス可能なサブメモリ（画像読取部３２）に格納しておき、記録ヘッドが移動して新たにメモリ読み出しが必要になった際に、新たに取り込むべきブロックのみをメインメモリからサブメモリに取り込み、更新のないブロックに関してはすでに格納されたサブメモリからデータを読み出すことにより、メインメモリへのアクセス回数をさらに低減することができる。
【００５０】
図５に示した動作を実現させるための画像読取部（回転器）３２の詳細について、図６を参照して説明する。
画像読取手段である画像読取部（回転器）３２は、ＣＰＵインターフェース（Ｉ／Ｆ）４１、ノズル位置生成部４２、アドレス生成部４３、出力インターフェース（Ｉ／Ｆ）４４、テーブル管理部４５、及びデータ蓄積部４６の各ブロックにより構成されている。
【００５１】
データ蓄積部４６は、画像データをブロック単位で一時的に蓄積するサブメモリである。
テーブル管理部４５は、記録ヘッド１９の位置情報とブロック単位の画像データとを対応させ、必要な画像データを読み出しまたは書き込むための前記メモリへのアクセスを管理するサブメモリ管理手段である。
【００５２】
ＣＰＵＩ／Ｆ４１は、ＣＰＵ２１から画像の幅、高さ、解像度などの各種設定情報を受け付ける。また、記録ヘッドからの吐出タイミング毎に、その時点における記録ヘッドの位置情報を受け付ける。
ＣＰＵ２１の負荷削減のために、ＣＰＵ２１から与えられる記録ヘッドの位置情報は、必要最低限のデータ（例えば、記録ヘッドの両端部の座標など）であることが好ましい。
【００５３】
ノズル位置生成部４２は、記録ヘッドの位置情報を１回受け取る毎に各ノズルの位置情報を生成し、生成した位置情報をアドレス生成部４３へ出力する。
アドレス生成部４３は、ノズル位置生成部４２から得た位置情報を元に、そのデータが格納されているメモリアドレスを生成する。
【００５４】
出力Ｉ／Ｆ４４は、メモリから読み出した画像データを記録ヘッド制御部３５の要求する形式に変換する。また、必要に応じてデータをバッファリングする。
【００５５】
テーブル管理部４５は、アドレス生成部４３により生成されたアドレスと、データ蓄積部４６に蓄積されたデータとの対応付けを行う。
データ蓄積部４６は、メモリ１２から読み出されたデータを蓄積する。また、メモリ１２へ書き込むデータを一時的に蓄積する。
【００５６】
テーブル管理部４５及びデータ蓄積部４６は、図９の表に示す各情報を管理する。
図９に示す表は、ブロックが３２個である場合の例を示している。
各項目はそれぞれ以下のとおりである。
enable：該当ブロックの有効／無効
TTL：該当ブロックの寿命
dirty：メモリとデータ蓄積部で値が異なることを示すフラグ。該当ブロックにライトが発生したときに立つ。
Addr：該当ブロックのデータと対応するデータが格納されたメモリ上のアドレスを示す。
Data：メモリ上のデータをコピーして保持する。
【００５７】
サブメモリ管理手段であるテーブル管理部４５は、画像データの各ブロック単位毎に寿命を示す情報であるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）を付加し、読み出し及び書き込みのアクセスによりＴＴＬを設定し、所定のタイミング毎にＴＴＬをカウントダウンし、ＴＴＬが一定の値に達したブロックからデータの破棄または前記メモリへの書き戻しを実行する。これにより、長時間アクセスされていないブロックをより早いタイミングで開放することができる。
【００５８】
画像データの各ブロック単位毎に設定され、サブメモリ管理手段により管理されるＴＴＬは、サブメモリであるデータ蓄積部４６からメモリ１２に書き戻す閾値（Ｖ１）が、読み出し時に設定される値（Ｖ２）以上となるように設定される。
すなわち、Ｖ１≧Ｖ２  を満たすように設定される。
読み出しが発生している状況であっても、一定期間書き込みが発生していなければフラッシュ可能とすることで、例えば、記録ヘッド１９が静止しているような状況においてもメモリ１２の値が最新に保たれる。
【００５９】
また、サブメモリ管理手段により管理されるＴＴＬは、書き出し時に設定される値（Ｖ３）が、サブメモリであるデータ蓄積部４６からメモリ１２に書き戻す閾値（Ｖ１）に１を加えた値を超えるように設定される。
すなわち、Ｖ３＞Ｖ１＋１  を満たすように設定される。
書き込みが発生したサイクル、１周期全体を通して書き込みが発生していないサイクル、フラッシュという流れを実現することで、フラッシュ後に再度書き込みが発生し、再フラッシュをするというような無駄を避けることができる。
【００６０】
さらに、サブメモリ管理手段により管理されるＴＴＬは、読み出し時に設定される値（Ｖ２）が、ブロックの破棄の判断に用いる閾値（Ｖ４）に１を加えた値を超えるように設定される。
すなわち、Ｖ２＞Ｖ４＋１  を満たすように設定される。
読み出しが発生したサイクル、１周期全体を通して読み出しが発生していないサイクル、ブロック開放という流れを実現することができ、開放後に再度読み込み、キャッシュヒットしない状態（ミスヒット）が発生するというような無駄を避けることができる。
【００６１】
テーブル管理部４５及びデータ蓄積部４６の動作を、図７のフローチャートを参照して説明する。
【００６２】
図７（Ａ）は、アドレス生成部４３からの読み込み要求（リード要求）が発生したときの処理の流れ（リード動作）を示すものである。
リード要求が発生した後（Ｓ１０）、リード動作ではまずキャッシュヒットかミスヒットかの判定を行う（Ｓ１１）。
「キャッシュヒット」とは、読み出したいアドレスのデータがデータ蓄積部４６に格納されていることを示しており、具体的には、enable==1かつリード要求のアドレス（の上位ビット）がテーブルのAddrと一致しているブロックが存在する場合にキャッシュヒットと判定される。
【００６３】
一方、キャッシュヒットしない状態である「ミスヒット」の場合には、まず、対応するデータをメモリ１２からデータ蓄積部４６に格納する。加えて、該当ブロックのenableを1に設定し、Addrにリード要求のアドレスに設定して更新することで、以降のキャッシュヒット判定に用いる（Ｓ１２）。
【００６４】
次に、データ蓄積部４６からアドレス生成部４３へデータを返す（Ｓ１３）。
該当ブロックのTTLを、TTL<2であればTTL=2に設定する（Ｓ１４）。ステップＳ１４ではリード発生時のTTLを２に設定しているが、これは、リード発生後、当該ブロックに２サイクル以上アクセスが発生しなければそのブロックを破棄することを示している。
【００６５】
図７（Ｂ）は、アドレス生成部４３からの書き込み要求（ライト要求）が発生したときの処理の流れを示すものである。
本実施形態において、ライトアクセスが発生するのは、読み出したデータを書き換えて同じアドレスに書き戻すときであるため、直前に同じアドレスを読み出しており、キャッシュミスヒットは発生しない。そのため、ライト要求が発生した後（Ｓ２０）。キャッシュヒットかミスヒットかの判定は行われない。
【００６６】
データ蓄積部４６の対応するブロックに、ライト要求のデータを格納し（Ｓ２１）、TTL=4、dirty=1に設定する（Ｓ２２）。
ステップＳ２２ではTTL=4に設定しているが、これは、ライト発生後、当該ブロックに２サイクル以上ライトアクセスが発生しなければ、そのブロックのデータをメモリに書き戻し、さらに２サイクル以上アクセスが発生しなければそのブロックを破棄することを示している。
【００６７】
図７（Ｃ）は、記録ヘッド制御部３５から与えられるインク吐出タイミング毎の処理の流れを示すものである。
インク吐出タイミングが発生した後（Ｓ３０）、安全な全ブロックにはTTL（Time  To  Live：寿命）が設定される。
一定期間書き込みが発生しなければ、データ蓄積部４６のデータをメモリ１２に書き戻したり（フラッシュ動作）、一定期間アクセスが発生しなければ、そのブロックを破棄し、次にキャッシュミスヒットが発生した際に利用できるようにする。
【００６８】
リードアクセス／ライトアクセスにより設定されたTTLを、TTL>0であればインク吐出タイミングの発生毎にカウントダウンする（Ｓ３１）。
【００６９】
カウントダウン後、TTL==２かつdirty==1であるかを判定する（Ｓ３２）。
TTL==２かつdirty==1となったブロック、すなわち、前回のライトアクセス後、２サイクルライトアクセスが発生していないブロックについては、データ蓄積部４６のデータをメモリ１２に書き戻し（Ｓ３３）、dirtyを0にクリアする（Ｓ３４）。
【００７０】
TTL==２かつdirty==1ではないブロックについては、TTL==0かつdirty!=1であるかを判定する（Ｓ３５）。
TTL==0かつdirty==0となったブロック、すなわち、前回のリードアクセスまたはフラッシュ動作から、２サイクルリードアクセスもライトアクセスも発生していないブロックについては、enableを0にクリアすることで、ブロックを開放する（Ｓ３６）。
【００７１】
なお、本実施形態ではステップＳ３６にenableを使用した制御を記述しているが、enableを使用せず、ミスヒットが発生した時にTTLが最小でdirty=0のブロックを使用するような制御としてもよい。
【００７２】
次に、分割された画像データのブロック配置によるメモリ転送レートの違いについて図８を参照して説明する。
図８（Ａ）は、ブロックが格子状に配置されている態様、図８（Ｂ）は、ブロックが千鳥状に配置されている態様を示している。
図８（Ａ）及び図８（Ｂ）において記録ヘッドの位置は、Ｎ番目の吐出時（Ｎは０以上の整数）の位置をＨ１、Ｎ＋１番目の吐出時の位置をＨ２、Ｎ＋２番目の吐出時の位置をＨ３でそれぞれ示している。
【００７３】
図８（Ａ）において、記録ヘッドがＨ１の位置からＨ２の位置へ移動した場合、必要なメモリアクセスはＢ２の領域となり、新たに４ブロック分の読み出しが必要となる。
【００７４】
一方、図８（Ｂ）において、記録ヘッドがＨ１の位置からＨ２の位置へ移動した場合、必要なメモリアクセスはＢ２の領域であり、新たに読み出しが必要なのは２ブロック分である。さらに記録ヘッドがＨ３の位置に移動した場合も、新たに読み出しが必要なのはＢ３で示す２ブロック分である。このように、駆動周期毎のメモリアクセスの回数を低減させることができる。
【００７５】
千鳥状の配置となるように分割されたメモリは、連続する複数のブロック間の境界が一直線ではなく、駆動周期毎に新たにリードが必要となるブロック数の最大値を低減させることができ、必要な転送レートを低下させることができる。
【００７６】
ブロックの形状が略正方形で、かつ千鳥状の配置とすることにより、記録ヘッド１９の傾きによるサブメモリであるデータ蓄積部４６に確保が必要なブロック数の変化が小さく、結果としてデータ蓄積部４６に必要とされる容量が最小となる。
【符号の説明】
【００７７】
１０  印刷装置
１２  メモリ
１３  制御部
１９  記録ヘッド
２１  ＣＰＵ
３２  画像読取部（回転器）
４５  テーブル管理部（サブメモリ管理手段）
４６  データ蓄積部（サブメモリ）
７０  印刷媒体
８０  ユーザ
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開２０１０−５２００８７号公報
【図１】
0006405922.tif 000002
【図２】
0006405922.tif 000003
【図３】
0006405922.tif 000004
【図４】
0006405922.tif 000005
【図５】
0006405922.tif 000006
【図６】
0006405922.tif 000007
【図７】
0006405922.tif 000008
【図８】
0006405922.tif 000009
【図９】
0006405922.tif 000010