JP2004009326A - サーマルプリンタの熱履歴演算装置 - Google Patents
サーマルプリンタの熱履歴演算装置 Download PDFInfo
- Publication number
- JP2004009326A JP2004009326A JP2002161871A JP2002161871A JP2004009326A JP 2004009326 A JP2004009326 A JP 2004009326A JP 2002161871 A JP2002161871 A JP 2002161871A JP 2002161871 A JP2002161871 A JP 2002161871A JP 2004009326 A JP2004009326 A JP 2004009326A
- Authority
- JP
- Japan
- Prior art keywords
- heat storage
- storage data
- heat
- address
- memory
- 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.)
- Pending
Links
Images
Landscapes
- Electronic Switches (AREA)
Abstract
【解決手段】蓄熱データが書き込まれる熱メモリは、1ライン分の記憶容量よりも、データ書込み時のオフセット分だけ大きくされている。ラインメモリから読み出した所定のタップ数の蓄熱データを用いて拡散計算を含む熱履歴演算が行われ新たな蓄熱データが算出される、新たな蓄熱データは、更新前の蓄熱データを読出す際に用いたアドレスに対してタップ数に応じたオフセットを付けたアドレスが指定されてラインメモリに書き戻される。
【選択図】 図4
Description
【発明の属する技術分野】
本発明は、サーマルヘッドの発熱素子の蓄熱状態を演算する蓄熱演算装置に関するものである。
【0002】
【従来の技術】
サーマルプリンタには、サーマルヘッドで感熱記録紙を加熱して直接に発色させる感熱記録方式と、記録紙に重ねたインクリボンの背後をサーマルヘッドで加熱してインクリボンのインクを記録紙に転写する熱転写記録方式とがある。このサーマルヘッドは、多数の発熱素子がライン状に形成されている。
【0003】
各発熱素子から発生した熱エネルギーの多くは記録のために使われるが、記録に供しないものは、放熱されたり、サーマルヘッド蓄えられたりする。また、サーマルヘッドに蓄えられた熱エネルギーの一部は、発熱素子に向かって戻り、次のラインの記録に影響するものもある。
【0004】
このようにして、サーマルヘッドの各蓄熱層に蓄熱された熱エネルギーの一部が画素の記録に影響するため、記録する画素の濃度に対応する発熱データに応じてサーマルヘッドを駆動しただけでは、画素が所期の濃度で記録されなかったり、プリントされた画像に濃度ムラが発生したり、画像の輪郭がボヤけたりして、原画に忠実な画像を再現することができない。このため、サーマルプリンタでは、蓄熱補正を行っている。
【0005】
第Nラインの発熱データに対して蓄熱補正を行う場合には、第N−1ラインまでの各ラインの各発熱データを用いて求められたサーマルヘッドの蓄熱状態を示す1ライン分の蓄熱データから発熱素子毎の蓄熱補正データを算出し、この蓄熱補正データを用いて第Nラインの発熱データを補正する。また、補正された第Nラインの発熱データを用いて蓄熱データの更新を行い、この更新された蓄熱データは、次の第N+1ラインの蓄熱補正データを算出するのに用いられる。
【0006】
蓄熱データは、各蓄熱層を発熱素子に対応させた部分(以下、蓄熱セルという)に仮想的に分割し、その蓄熱セルごとに熱履歴演算を行って求められる。熱履歴演算は、発熱素子から蓄熱セルに伝わる熱エネルギーや、1個の発熱素子に対応した異なる蓄熱層の蓄熱セル間で移動する熱エネルギーを計算する累積計算の他に、注目する蓄熱セルと隣接した蓄熱セルとの間で移動する熱エネルギーを計算する拡散計算が含まれる。
【0007】
拡散計算は、例えばFIR(有限インパルス応答)フィルタなどに代表される演算であって、ラインメモリから読み出した蓄熱データと、所定の係数とを乗算して累積加算することを所定のタップ数だけ繰り返して行うものである。このような拡散計算を含む熱履歴演算の演算結果は、ラインメモリに書き戻される。
【0008】
【発明が解決しようとする課題】
ところで、拡散計算を含む熱履歴演算を行う場合では、熱履歴演算で得られる新たな蓄熱データを直ちにラインメモリに書き戻すことができない。これは拡散計算では、更新すべき蓄熱セルの蓄熱データの他に隣接した蓄熱セルの蓄熱データを用いるためであり、1つの蓄熱セルに対して行われた熱履歴演算で得られる蓄熱データをその演算直後にラインメモリ上の古い蓄熱データに置き換えてしまうと、次に隣接した蓄熱セルの新たな蓄熱データを求める際に、更新された蓄熱データを用いることになり、正しい演算結果が得られないからである。
【0009】
上記のように新たな蓄熱データを演算直後にラインメモリに書き戻せないため、従来ではライメモリの他に1ライン分の蓄熱データを保持可能なバッファメモリを設け、演算結果をバッファメモリに順次書き込み、1ライン分の演算が完了した後に、バッファメモリの内容をラインメモリに転送していた。しかしながら、このような構成では、ラインメモリ,演算回路などの他に、バッファメモリが必要であるため、熱履歴演算を行う熱履歴演算装置の回路規模が大きいという問題があった。また、サーマルヘッドを複数の蓄熱層に分けて、各蓄熱層毎に蓄熱状態を調べる場合には、各蓄熱層のそれぞれについてラインメモリとバッファメモリとが必要であり、熱履歴演算装置はより大きな回路規模となっていた。
【0010】
本発明は、上記の問題を解決するためになされたもので、回路規模を小さくできるサーマルプリンタの熱履歴演算装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、請求項1記載の発明では、発熱素子毎の蓄熱状態を示す1ライン分の蓄熱データが順番に書き込まれて保持し、少なくとも新たな蓄熱データの書込み時に付与されるオフセットの大きさ分だけ記憶容量が大きくされたラインメモリと、
1ライン分の各蓄熱データを順番に更新するように、1つの蓄熱データを更新する際には、更新すべき蓄熱データの読出アドレスとその前後の各アドレスを指定して所定タップ数分の1組の蓄熱データをラインメモリから読み出し、熱履歴演算で算出される新たな蓄熱データを書き込む際には、対応する更新前の蓄熱データの読出アドレスに対して前記所定タップ数に応じたオフセットを付けた書込アドレスを指定してラインメモリに書き込み、次に1ライン分の蓄熱データを更新する際には、前回の読出アドレスに対して前記所定タップ数に応じたオフセットを付けた読出アドレスを用いて蓄熱データをラインメモリから読み出すメモリ制御手段と、
ラインメモリから読み出した1組の蓄熱データを用いた拡散計算を含む熱履歴演算を行って新たな蓄熱データを算出する演算回路とを備えたものである。
【0012】
請求項2記載の発明では、メモリ制御手段に、読出アドレスを出力し、前記1組の蓄熱データ読み出す毎に読出アドレスを1ずつ変化させる読出アドレスカウンタと、新たに算出される蓄熱データがラインメモリに書き込まれるごとに毎に書込みアドレスを1ずつ変化させる書込アドレスカウンタとを備え、前記読出アドレスカウンタ及び書込アドレスカウンタを、それぞれラインメモリのアドレス範囲の一端までカウントした後にアドレス範囲の他端からカウントを行うようにし、任意の記憶容量のラインメモリに対応可能にしたものである。
【0013】
請求項3記載の発明では、発熱素子毎の蓄熱状態を示す1ライン分の蓄熱データが順番に書き込まれて保持するラインメモリと、
前記所定タップ数に応じた記憶容量を有するバッファメモリと、
1ライン分の各蓄熱データを順番に更新するように、1つの蓄熱データを更新する際に更新すべき蓄熱データの読出アドレスとその前後の各アドレスを指定して所定タップ数分の1組の蓄熱データをラインメモリから読み出し、熱履歴演算で順次に算出される新たな蓄熱データをアドレスを循環させながら指定して前記バッファメモリに書き込むとともに、この書き込みに先立って、書込みの対象となる前記バッファメモリのアドレスから蓄熱データを読み出し、対応する更新前の蓄熱データが書き込まれているラインメモリのアドレスに書き込むメモリ制御手段と、
ラインメモリから読み出した1組の蓄熱データを用いた拡散計算を含む熱履歴演算を行って新たな蓄熱データを算出する演算回路とを備えたものである。
【0014】
【発明の実施の形態】
図1に本発明を実施したカラー感熱プリンタの概略を示す。シート状のカラー感熱記録紙2は、図示しない給紙用カセットから回動自在なプラテンローラ3に向かって送られ、搬送路を往復動している間に3色面順次でカラー画像が発色記録される。カラー画像が記録されたカラー感熱記録紙2は排紙口4から排紙される。
【0015】
カラー感熱記録紙2は、周知のように、支持体上にシアン感熱発色層,マゼンタ感熱発色層,イエロー感熱発色層,透明な保護層が順番に層設されている。感熱発色層は、記録する順番に層設されており、イエロー感熱発色層は420nmの紫外線(近紫外線)が、マゼンタ感熱発色層は365nmの紫外線が照射されることによって発色能力が消失する。
【0016】
各感熱発色層は、深層になるほど発色するために大きな発色熱エネルギーが必要である。このカラー感熱記録紙2では、イエロー感熱発色層の発色熱エネルギーが最も低く、シアン感熱発色層の発色熱エネルギーが最も高い。発色熱エネルギーは、感熱発色層が発色する直前のバイアス熱エネルギーと、階調値すなわち記録すべき画素の発色濃度に応じた階調熱エネルギーとからなる。バイアス熱エネルギーは各感熱発色層毎に一定の値であるが、階調熱エネルギーは発色濃度が高いほど大きくなる。
【0017】
プラテンローラ3の下流には、搬送ローラ対5が配されている。この搬送ローラ対5は、一方がパルスモータ6で駆動されるキャプスタンローラ5aであり、他方がカラー感熱記録紙2の搬送に伴って従動回転するピンチローラ5bである。ピンチローラ5bは、キャプスタンローラ5aとの間にカラー感熱記録紙2をニップしたニップ位置と、カラー感熱記録紙2から離れたニップ解除位置との間で移動する。搬送ローラ対5は、キャプスタンローラ5aがパルスモータ6によって正逆両方向に回転されることにより、ニップしたカラー感熱記録紙2を往復動させる。
【0018】
プラテンローラ3に対向して、サーマルヘッド7が配されている。サーマルヘッド7の下部には、主走査方向(カラー感熱記録紙2の搬送方向(副走査方向)と直交する方向)に多数(Q+1個)の発熱素子8(図2参照)をライン状に配列した発熱素子アレイ9が形成されている。サーマルヘッド7は、軸10を中心にして、画像を記録するためにプラテンローラ3上のカラー感熱記録紙2に圧接した圧接位置と、カラー感熱記録紙2から離れた退避位置との間で揺動する。
【0019】
サーマルヘッド7としては、例えば発熱素子8側からグレーズ層,セラミック基板,アルミ板が順次に層設され、アルミ板に放熱性を良好にするための放熱板が取り付けられたものが用いられている。
【0020】
サーマルヘッド7には、その温度(以下、ヘッド温度という)を測定するためのヘッド温度センサ11が取り付けられている。ヘッド温度センサ11から得られるヘッド温度は、サーマルヘッド7の蓄熱状態の初期値を設定するのに用いられる。
【0021】
サーマルヘッド7は、搬送路の上流(図中左側)から下流に向けて搬送中のカラー感熱記録紙2に加熱を行って1色の画像を1ラインずつ画像を記録する。1色の画像の記録完了後、カラー感熱記録紙2が搬送路の下流から上流に向けて搬送されて戻され、この後に再びカラー感熱記録紙2が上流から下流に向けて搬送されている間に次の1色の画像が1ラインずつ記録される。このようにして、サーマルヘッドは、カラー感熱記録紙2の往復動によって3色面順次でカラー画像を記録する。
【0022】
搬送ローラ対5の下流には、イエロー用光定着器13とマゼンタ用光定着器14とが配されている。イエロー用光定着器13は、発光ピークが420nmのイエロー用紫外線を放出する紫外線ランプ13aを備えている。マゼンタ用光定着器14は、発光ピークが365nmのマゼンタ用紫外線を放出する紫外線ランプ14aを備えている。
【0023】
図2に上記カラー感熱プリンタの電気的な構成を示す。マイクロコンピュータ20は、カラー感熱プリンタの各部を制御する。記録すべき画像は、デジタルカメラやスキャナ等で取り込まれ、イエロー画像データ,マゼンタ画像データ,シアン画像データとして画像メモリ21に書き込まれる。プリント時には、記録すべき色の画像データが画像メモリ21から1ライン分ずつ順番に読み出されて、蓄熱補正部22に送られる。
【0024】
蓄熱補正部22は、入力される画像データに対して、保持しているサーマルヘッド7の蓄熱状態に基づいて蓄熱補正を行った補正発熱データを求め、これを発熱素子8の通電時間に変換した通電時間データを出力するとともに、サーマルヘッド7の蓄熱状態を更新する。サーマルヘッド7の蓄熱状態の初期値としては、ヘッド温度センサ11で測定されたヘッド温度に基づいたものがマイクロコンピュータ20によってセットされる。
【0025】
ラインメモリ23には、蓄熱補正部22から出力される1ライン分の通電時間データが書き込まれる。ヘッド駆動部24は、ラインメモリ23上の1ライン分の通電時間データを取り込み、マイクロコンピュータ20からの通電開始信号の入力に応答して、サーマルヘッド7の各発熱素子8を通電する。
【0026】
各発熱素子8の通電時間は、対応する通電時間データに表される通電時間である。これにより各発熱素子8は、対応する通電時間データの元である補正発熱データに表される熱エネルギーを発生する。通電開始信号は、所定の周期毎にマイクロコンピュータ20からヘッド駆動部24に入力される。なお、発熱素子8に対する通電時間を変化させることで、発熱素子8の発生する熱エネルギーを制御しているが、発熱素子8に対する通電回数を変化させることで、発熱素子8の発生する熱エネルギーを制御してもよい。
【0027】
パルスモータ6は、マイクロコンピュータ20に制御されるドライバ25で駆動され、1ラインの記録毎にカラー感熱記録紙2を1ライン分ステップ送りする。これにより、カラー感熱記録紙2に1ラインずつ画像が記録される。
【0028】
図3に蓄熱補正部22を示す。コントローラ30は、予め決められたシーケンスに基づいて蓄熱補正部22の各部を制御する。入力ラインメモリ31には、画像メモリ21から読み出された1ライン分の画像データが書き込まれる。入力ラインメモリ31に書き込まれた画像データは、順番に読み出されて第1LUT32に送られる。
【0029】
第1LUT32は、入力される画像データをそれに示される階調値に応じた発色熱エネルギーを表す発熱データに変換する。画像データに示される階調値と発色熱エネルギーとの対応関係は、カラー感熱記録紙2の発色特性に基づいて決まるため、同じ値の画像データであっても色が異なると発色熱エネルギーが異なったものとなる。第1LUT32からの発熱データは演算回路33に送られる。
【0030】
演算回路33は、サーマルヘッド7の蓄熱状態に応じて発熱データを補正するための補正演算と、サーマルヘッド7の蓄熱状態を更新するための熱履歴演算とを行う。この演算回路33としては、乗算器と加算器で構成されており、回路規模が小さくされている。
【0031】
蓄熱状態は、サーマルヘッド7の各蓄熱層の発熱素子8に対応する部分(以下、蓄熱セルという)毎に調べられる。この例では、サーマルヘッド7を構成するグレーズ層,セラミック基板,アルミ板,放熱性を、仮想的に発熱素子8側から第1,第2・・・第5蓄熱層に分割したモデルを用いて補正演算及び熱履歴演算を行う。
【0032】
演算回路33は、次の演算式▲1▼に基づいた補正演算を行い、発熱データを補正した補正発熱データを求める。この補正演算は、発熱素子8には、それに対応する第1〜第5蓄熱層の各蓄熱セルに蓄えられた熱エネルギーの一部が直接に伝わって記録に影響を与えるというモデルを想定したものである。なお蓄熱データは、蓄熱層の発熱素子毎の蓄熱状態、すなわち蓄熱セルに蓄えられている熱エネルギーを示す。
【0033】
【数1】
【0034】
上記演算式▲1▼中の記号の意味は次の通りである。
h(i,j):第iラインj番目の発熱データ
H(i,j):第iラインのj番目の補正発熱データ
D1(i,j):第iラインj番目用の第1蓄熱データ
D2(i,j):第iラインj番目用の第2蓄熱データ
D3(i,j):第iラインj番目用の第3蓄熱データ
D4(i,j):第iラインj番目用の第4蓄熱データ
D5(i,j):第iラインj番目用の第5蓄熱データ
k01〜k05:蓄熱セルに蓄えられた熱エネルギーを発熱素子に伝達される熱エネルギーに変換するための係数
【0035】
熱履歴演算は、発熱素子8と第1蓄熱層との間及び各蓄熱層の相互間で移動する熱エネルギー求める計算の他、隣接する蓄熱セル間で移動する熱エネルギーを求める計算、すなわちの熱の拡散計算を同時に行うものである。拡散計算のタップ数を「2t+1」としたときに、第M蓄熱層の1つの蓄熱セルに対応する新たな第M蓄熱データ( DM(i+1,j))を算出する熱履歴演算は、次の演算式▲2▼によって行われる。
【0036】
【数2】
【0037】
演算式▲2▼中の記号の意味は次の通りである。
AM1〜AMt:第M蓄熱層の熱拡散計算用の係数
k11〜k51:蓄熱層または発熱素子から他の蓄熱層への熱エネルギーの流移動量を求めるための係数
k12〜k52:蓄熱セルに残る熱エネルギーを求めるための係数
【0038】
上記演算式▲2▼は、第1蓄熱層については、1ラインの記録時において各発熱素子8で発生した熱エネルギーの一部が対応する第1蓄熱層の蓄熱セルから伝わり、また第1蓄熱層の各蓄熱セルから対応する第2蓄熱層の蓄熱セルに熱エネルギーの一部が伝わり、そして第1蓄熱層の各蓄熱セル間で熱エネルギーが拡散するというモデルに沿ったものである。
【0039】
また、第2〜第5蓄熱層についても同様であり、例えば第2蓄熱層については、1ラインの記録時において第1蓄熱層の蓄熱セルに蓄えられた熱エネルギーの一部が対応する第3蓄熱層の蓄熱セル伝わり、また第2蓄熱層の各蓄熱セルから対応する第2蓄熱層の蓄熱セルに熱エネルギーの一部が伝わり、第2蓄熱層の各蓄熱セル間で熱エネルギーが拡散するというモデルに沿ったものである。
【0040】
なお、拡散計算用のタップ数は、蓄熱層毎に設定することができるが、この例では説明を簡単にするために、第1〜第5蓄熱層のそれぞれの熱拡散計算用のタップ数を同じ値「2t+1」として説明する。
【0041】
j番目の新たな蓄熱データを算出する際に、(j−t)〜(j−1)番目、(j+1)〜(j+t)番目の補正発熱データあるいは蓄熱データを必要とするが、(j−t)〜(j−1)番目、(j+1)〜(j+t)番目のものが実在しない場合には、それに代えては最も位置が近い端部の発熱素子8に対応する補正発熱データあるいは蓄熱データが用いられる。例えば、t=3として第1蓄熱データD1(i+1,2)を求める場合には、 各補正発熱データH(i,−1)の代わりに補正発熱データD1(i,0)が用いられ、第1蓄熱データD1(i,−1)の代わりに第1蓄熱データD1(i,0)が用いられる。
【0042】
各演算に用いられる各種係数は、係数メモリ34に書き込まれており、演算に必要なタイミングで読み出される。また、各演算に必要な各蓄熱データは、後述する第1〜第5熱メモリ41〜45から演算に必要なタイミングで読み出され、補正発熱データは出力ラインメモリ35から読み出される。
【0043】
演算回路33は、1回の補正演算と、5層の蓄熱層に対応した5回の熱履歴演算とを1回の演算サイクルで行う。1ライン分の演算処理では、演算サイクルを繰り返し行うことで、1ライン分の補正発熱データを算出するとともに、各蓄熱層の1ライン分の蓄熱データを更新する。なお、熱履歴演算で新たなj番目の第1蓄熱データを算出する際には、(j−t)〜(j−1)番目の補正発熱データがが必要であるため、1ラインの演算処理時には、補正演算だけの演算サイクルが先行してt回行われ、最後のt回の演算サイクルでは熱履歴演算だけが行われる。
【0044】
演算回路33からの補正発熱データは出力ラインメモリ35に送られる。出力ラインメモリ35には、1ライン分の補正発熱データが書き込まれる。第1蓄熱データの熱履歴演算時には、更新すべき第1蓄熱データに対応する「2t+1」個の各補正発熱データが出力ラインメモリ35から読み出されて演算回路33に送られる。演算回路33による1ライン分の演算処理が完了すると、出力ラインメモリ35の補正発熱データが順番に読み出されて第2LUT36に送られる。なお、入力ラインメモリ31と、出力ラインメモリ35のデータの読出し及び書込みは、図示しないメモリコントローラによって制御される。
【0045】
第2LUT36は、補正発熱データを通電時間データに変換し、これにより、補正発熱データは、それに表される熱エネルギーを発熱素子8が発生するのに必要な通電時間に変換される。通電時間データは、順次にラインメモリ23に送られる。
【0046】
第1〜第5蓄熱層に対応して、第1〜第5熱メモリ41〜45が設けられており、これらはメモリコントローラ46によってデータの読み出し及び書き込みが制御される。各熱メモリ41〜45は、対応する蓄熱層の蓄熱データをそれぞれ保持する。各熱メモリ41〜45は、1つのアドレスに1個の蓄熱データを記憶する。これらの各熱メモリ41〜45は、1個の蓄熱データを1バイトとすれば、記憶容量が2n(nは自然数)バイトであり、「0」〜「2n−1」の範囲でアドレスが指定されるラインメモリである。
【0047】
上記の各熱メモリ41〜45の記憶容量はそれぞれ2nバイトであるが、その記憶容量は1ライン分の蓄熱データの個数よりも、後述するオフセットの大きさ分以上大きくされている。すなわち、1ライン分の蓄熱データ(発熱素子8)の個数を「Q+1」個,オフセットの大きさを「P」とすれば「熱メモリの記憶容量≧(P+Q+1)バイト」の関係を満たすと同時に、その記憶容量が「2n」バイトとなっている。
【0048】
第1熱メモリ41には、第1蓄熱層の蓄熱セル毎の蓄熱状態を示す1ライン分(0番目〜Q番目)の第1蓄熱データが保持される。補正演算時には、補正すべき発熱データに対応する第1蓄熱データが第1熱メモリ41から読み出され演算回路33に送られる。また、第1蓄熱データの熱履歴演算時には、更新すべき第1蓄熱データを含むタップ数分の各第1蓄熱データが第1熱メモリ41から読み出されて演算回路33に送られる。さらに、第2蓄熱データの熱履歴演算時においても、更新すべき第2蓄熱データに対応する第1蓄熱データを含むタップ数分の各第1蓄熱データが第1熱メモリ41から読み出されて演算回路33に送られる。
【0049】
演算回路33による第1蓄熱データの熱履歴演算の結果は、第1熱メモリ41に送られ、メモリコントローラ46の制御により、更新前の第1蓄熱データのアドレスに所定のオフセットを付けたアドレスに書き込まれる。
【0050】
同様に、第2〜第5熱メモリ42〜45には、対応する蓄熱層の第2〜第5蓄熱データがそれぞれ1ライン分保持されている。第2〜第5熱メモリ42〜45についても、第1熱メモリ41と同様に、補正演算時には、対応する蓄熱データが読み出され、熱履歴演算時にはタップ数分の各蓄熱データが読み出されて、演算回路33に送られる。また、第2〜第5蓄熱データの熱履歴演算の結果は、対応する熱メモリに送られ第1熱メモリ41と同様に更新前の蓄熱データのアドレスに所定のオフセットを付けたアドレスに書き込まれる。なお、各熱メモリ41〜45には、ヘッド温度センサ11で測定されたヘッド温度に基づいた値の蓄熱データが初期値としてそれぞれセットされる。
【0051】
蓄熱データを熱メモリに書き込む際のオフセットは、熱履歴演算時のタップ数と、熱メモリ上での蓄熱データの処理方向と応じて決められる。タップ数を「2t+1」としている場合では、オフセットの大きさは「t」アドレス分以上とすればよい。アドレスを増加する方向に蓄熱データの更新を順次に進める場合には、オフセット方向をアドレスを小さくする方向として、オフセットを「−t」とし、逆にアドレスを減少する方向に蓄熱データの更新を順次に進める場合には、オフセット方向をアドレスを大きくする方向として、オフセットを「+t」とればよい。
【0052】
なお、0〜(2n−1)までのアドレスを有し、nビットでアドレスが指定されるメモリに対しては、オフセットを「−t」とすることと「+(2n−t)」とすることは同じであり、オフセットを「+t」とすることと「−(2n−t)」とすることは同じである。
【0053】
この例では、サーマルヘッド7の発熱素子8の個数(Q+1)を「120」個,タップ数(2t−1)を「7」,オフセットを「−8」,各熱メモリ41〜45が「128(=27)」個の蓄熱データを記憶する容量を有し、「0」〜「127」の範囲でアドレスが指定されるものとして説明する。なお、この例ではタップ数を「7」としているので、オフセットの大きさは最低「3」あればよい。
【0054】
図4にメモリコントローラ46を示す。メモリコントローラ46の各部は、コントローラ30によって制御される。メモリコントローラ46は、第1〜第5熱メモリ41〜45のうちの1つを選択してデータの読出しと書込みを制御するR/W制御部50と、データの読み出し及び書き込み時のアドレスを指定するアドレス制御部51とからなる。
【0055】
R/W制御部50は、R/W制御信号と選択信号とを出力する。R/W制御信号は、各熱メモリ41〜45に同時に送られ、選択信号は各熱メモリ41〜45のうちでデータの読み出し,書き込みをすべき熱メモリに送られる。これにより、選択信号が入力されている熱メモリがR/W制御信号によりデータの読み出しまたは書き込みの動作を行う。
【0056】
アドレス制御部51は、セルカウンタ52,オフセットカウンタ53等から構成される。セルカウンタ52は、1ライン分の蓄熱データを番号を順次に指定するためのものであり、7ビットすなわち値0〜127のカウント値Cc(0〜127)を出力する。セルカウンタ52は、1ラインの演算処理の開始時にカウント値Ccとして初期値「125」がセットされ、演算サイクルが完了する毎にカウント値Ccが「1」ずづインクリメントされる。
【0057】
オフセットカウンタ53は、蓄熱データの読み出しの際に、セルカウンタ52のカウント値Ccで示される蓄熱データの番号とそれが記憶されている熱メモリのアドレスの対応と、算出される蓄熱データの番号とそれを書き込むべき熱メモリのアドレスの対応をとるためのものであり、そのカウント値Cfは「8」ずつインクリメント及びディクリメントされる。オフセットカウンタ53としては、カウント値Cfを7ビットで出力し、カウント値Cfをサイクリックにカウントするものが用いられているが、カウント値Cfを「8」ずつのインクリメント及びディクリメントできればよいから、実質的に上位4ビットを出力するための4ビットのカウンタで構成できる。
【0058】
カウント値Cfとしては、第1ラインの演算処理開始時に初期値「0」が与えられ、1ライン分の演算処理が完了する毎に、ディクリメントされる。また、演算回路33で算出される蓄熱データを書き込む際には、カウント値Cfは、読み出し時のアドレスにオフセットを付けて書込みを行うためにディクリメントされ、その蓄熱データ書き込み完了後に「8」だけインクリメントされて値が戻される。
【0059】
加算器54は、カウント値Ccと、カウント値Cfとを加算し、この結果を加算アドレスとして出力する。この加算アドレスは、熱履歴演算の結果を熱メモリに書き込む際の履歴演算用書込みアドレスとして用いられる。
【0060】
上記の加算器54は、7ビットの加算アドレスを出力するものであり、7ビットを超えるビットについては何ら出力を行わない。また、上記のように各熱メモリ41〜45は、アドレス範囲が0〜(27−1)とされている。このため、カウント値Ccとカウント値Cfとを加算したときの加算結果が7ビットを超えるオーバーフローとなるような場合に、加算器54では熱メモリの下位アドレスへの折り返しが自動的に行われる。したがって、熱メモリのアドレス範囲を意識した制御処理を行わなくても、適切にオフセットを付けた書込みアドレスが得られる。なお、後述する加算器55,57の加算についても同様である。
【0061】
加算器55は、補正演算だけを先行して行う回数と同じ値「3」を加算アドレスに加算し、この加算結果を補正演算で必要な蓄熱データを読み出すための補正演算用読出しアドレスとして出力する。
【0062】
走査カウンタ56は、1つの加算アドレスに対してタップ数に応じた走査値「−3」〜「+3」を順次に出力する。加算器57は、走査値が入力される毎に、その走査値を加算アドレスに加算したものを履歴演算用読出しアドレスとして順次に出力する。したがって、1つの加算アドレスに対してタップ数分の履歴演算用読出しアドレスが出力される。
【0063】
端部処理部58には、加算器57からの履歴演算用読出しアドレスの他に、セルカウンタ52からのカウント値Ccと、オフセットカウンタ53からのカウント値Cfと、加算器57からの履歴演算用読出しアドレスと、走査カウンタ56からの走査値とが入力される。
【0064】
この端部処理部58は、カウント値Ccと走査値との加算値が0〜119の範囲である場合には、端部処理部58は、入力される履歴演算用読出しアドレスをそのまま出力する。また、端部処理部58は、カウント値Ccと走査値との加算値が「−3」〜「−1」の範囲の場合には、加算器57からの入力に代えてカウント値Cfを履歴演算用読出しアドレスとして出力し、1ライン中の0番目の蓄熱データに対応した履歴演算用読出しアドレスを出力する。さらに、端部処理部58は、カウント値Ccと走査値との加算値が「120」〜「122」の範囲である場合には、カウント値Cfに値「119」との加算を7ビットで行い、その加算結果を履歴演算用読出しアドレスとして出力し、1ライン中の最後(119番目)の蓄熱データを指定する。
【0065】
メモリコントローラ46からは、上記の履歴演算用読出しアドレス,履歴演算用書込みアドレス,補正演算用読出しアドレスのうちの1つが処理に応じて各熱メモリ41〜45に与えられる。
【0066】
次に上記構成の作用について説明する。画像をプリントする場合には、プリントすべき画像のイエロー画像データ,マゼンタ画像データ,シアン画像データを画像メモリ21に取り込んだ後に、プリントの指示を与える。この指示により、カラー感熱記録紙2がサーマルヘッド7の位置に送られ、サーマルヘッド7がカラー感熱記録紙2の記録開始位置に圧接される。
【0067】
サーマルヘッド7がカラー感熱記録紙2の圧接された後に、イエロープリント工程が開始される。まず、ヘッド温度センサ11によってヘッド温度が測定される。そして、マイクロコンピュータ20によってヘッド温度に応じた各蓄熱層の蓄熱データが計算され、その結果が各蓄熱メモリ41〜45にそれぞれ1ライン分ずつ書き込まれる。このときに、図5(a)に示すように、0〜119番目の蓄熱データは、熱メモリのアドレス「0」〜「119」に順番に書き込まれる。続いて、セルカウンタ52,オフセットカウンタ53が初期化され、カウント値Ccとして値「125」が、カウント値Cfとして値「0」がそれぞれセットされる。
【0068】
上記のようにして各部が初期化されてから、イエロー画像の第1ラインに対する処理が開始される。第1ラインの各イエロー画像データが画像メモリ21から読み出されて、入力ラインメモリ31に書き込まれる。この後に、入力ラインメモリ31から第1ライン0番目のイエロ−画像データが読み出されて、第1LUT32に送られ、この第1LUT32で発熱データに変換されて演算回路33に送られる。
【0069】
一方、入力ラインメモリ31からの0番目のイエロ−画像データの読み出しに同期して、メモリコントローラ46の制御下で補正演算用読出しアドレスを用いた第1〜第5蓄熱データの読み出しが順次に行われる。カウント値Ccが値「125」,カウント値Cfが値「0」であるから、加算器55から「0(=128)」の補正演算用読出しアドレスが出力される。この「0」の補正演算用読出しアドレスの下で、R/W制御部50が選択信号で第1〜第5蓄熱メモリ41〜45を順番に選択しながら、データ読出しのためのR/W制御信号を送る。これにより、第1〜第5蓄熱メモリ41〜45のアドレス「0」に書き込まれている0番目の第1〜第5蓄熱データが順次に読み出されて演算回路33に送られる。
【0070】
上記のようにして、演算回路33には0番目の発熱データと、0番目の第1〜第5蓄熱データとが順次に入力される。そして、これらの各データと、係数メモリ36から読み出した係数k01〜k05とを用いて、上述の演算式▲1▼に基づいた補正演算が演算回路33で行われ、0番目の補正発熱データが算出される。この第1ライン0番目の補正発熱データが出力ラインメモリ35に書き込まれる。
【0071】
第1ライン0番目の補正発熱データの算出が完了すると、すなわち0番目の演算サイクルの完了すると、セルカウンタ52にカウントアップの指示が与えられカウント値CcCがインクリメントされて値「126」とされる。この後に、第1ラインの1番目のイエロー画像データが入力ラインメモリ31から読み出され、第1LUT32を介して演算回路33に送られる。
【0072】
また、1番目のイエロ−画像データの読み出しに同期して、上記と同様に第1〜第5蓄熱メモリ41〜45から第1〜第5蓄熱データが読み出されて演算回路33に送られる。このときにカウント値Ccが値「126」となっているので、補正演算用読出しアドレスは、「1(=129)」となる。したがって、第1〜第5蓄熱メモリ41〜45からはアドレス「1」に書き込まれている1番目の第1〜第5蓄熱データが順次に読み出される。
【0073】
1番目の補正発熱データと第1〜第5蓄熱データとを用いた補正演算により、1番目の補正発熱データが算出され、これが出力ラインメモリ35に書き込まれる。このようにして1番目の演算サイクルが完了すると、セルカウンタ52のカウント値Ccがインクリメントされて値「127」とされる。以下、同様に2番目の演算サイクルでは、2番目の発熱データと、2番目の第1〜第5蓄熱データから2番目の補正発熱データが算出され、出力ラインメモリ35に書き込まれる。
【0074】
3番目の演算サイクルでは、補正演算とともに、0番目の第1〜第5蓄熱データを更新するための熱履歴演算が行われる。上記と同様な手順で3番目の補正発熱データの算出が完了すると、最初に0番目の第1蓄熱データを更新するための熱履歴演算が行われる。
【0075】
第1蓄熱データの熱履歴演算では、カウント値Ccとカウント値Cfを加算した加算アドレスに走査カウンタ56からの走査値をさらに加算した履歴演算用読取しアドレスを用いて蓄熱データが読み出される。この3番目の演算サイクルの実行時では、カウント値Ccが値「0」,カウント値Cfが値「0」となっている。また、走査値は「−3」〜「+3」である。したがって、端部処理部58には履歴演算用読取しアドレス「−3」〜「+3」が順次に入力される。
【0076】
更新演算用読取しアドレス「−3」〜「−1」については、カウント値Ccと走査値との加算値は「−3」〜「−1」の範囲となるので、加算器57からの入力に代えてカウント値Cf(値「0」)が履歴演算用読取しアドレスとして端部処理部58から出力される。このようにして更新演算用読取しアドレス「0」を3回出力した後に、「0」〜「3」の更新演算用読出しアドレスを順番に出力する。
【0077】
このようにして更新演算用読出しアドレスが出力される毎に、選択信号で選択された第1熱メモリ41に対してデータ読出しのためのR/W制御信号が与えられる。これにより、第1熱メモリ41のアドレス「0」から0番目の第1蓄熱データが4回読み出され、引き続きアドレス「1」〜「3」から1番目〜3番目の第1蓄熱データが読み出されて演算回路33に送られる。他方、1個の第1蓄熱データが読み出される毎に、その第1蓄熱データと同じ番号の補正発熱データが出力ラインメモリ34から読み出されて演算回路33に送られる。
【0078】
上記のようにタップ数と同じ個数の第1蓄熱データと補正発熱データとが順次に読み出されて演算回路33に入力され、演算式▲2▼に基づいた熱履歴演算が行われて新たな0番目の第1蓄熱データが算出される。算出された新たな0番目の第1蓄熱データは、選択信号で選択中の第1熱メモリ41に書き込まれる。この新たな0番目の第1蓄熱データのデータ書込みに先立って、オフセットカウンタ53にカウントダウンの指示が与えられ、カウント値Cfがディクリメントされて「120」とされる。そして、このカウント値Cfと値「0」のカウント値Ccとを加算したものが履歴演算用書込みアドレスとされるから、新たな0番目の第1蓄熱データは、第1熱メモリ41のアドレス「120」に書き込まれる。
【0079】
結果として、新たな0番目の第1蓄熱データは、更新前の0番目の第1蓄熱データが書き込まれているアドレス「0」に対してオフセットを「−8」だけ付けたアドレス「120」に書き込まれる。このときに、更新前の1ライン分の第1蓄熱データはアドレス0〜119の範囲に書き込まれているから、これらの第1蓄熱データが新たな0番目の第1蓄熱データで上書きされることはない。
【0080】
0番目の第1蓄熱データが書き込み完了後、0番目の第2蓄熱データの熱履歴演算を行うために、オフセットカウンタ53にカウントアップの指示が与えられ、カウント値Cfが「0」とされる。
【0081】
0番目の第1蓄熱データの場合と同様に、「0」のカウント値Ccとカウント値Cfとの下で、走査値を「−3」〜「+3」の範囲で変化させて得られる各履歴演算用読出しアドレスを与え、選択信号で第1熱メモリ41と第2熱メモリ42とを交互に選択しながら0番目〜3番目の第1蓄熱データと第2蓄熱データを順次に読み出して演算回路33に送る。なお、この場合にも、0番目の第1蓄熱データと第2蓄熱データは4回ずつ読み出される。
【0082】
0番目〜3番目の第1蓄熱データと第2蓄熱データを用いて更新演算が行われ、新たな0番目の第2蓄熱データが算出される。新たな0番目の第2蓄熱データが算出されると、オフセットカウンタ53にカウントダウンが指示が与えられ、カウント値Cfが「120」となる。そして、このカウント値Cfの下で、第2熱メモリ42に新たな0番目の第2蓄熱データに書き込みが行われる。したがって、新たな0番目の第2蓄熱データはアドレス「120」に書き込まれる。
【0083】
新たな0番目の第2蓄熱データの書き込み完了後、オフセットカウンタ53にカウントアップの指示が与えられ、カウント値Cfが値「0」とされる。以下、同様な手順によって新たな0番目の第3〜第5蓄熱データが求められて、それぞれ対応する熱メモリのアドレス「120」に書き込まれる。なお、第3蓄熱データの熱履歴演算では、第2蓄熱データと第3蓄熱データとが、第4蓄熱データの熱履歴演算では、第3蓄熱データと第4蓄熱データとが、第5蓄熱データの熱履歴演算では、第4蓄熱データと第5蓄熱データとがそれぞれ読み出される。
【0084】
3番目の演算サイクルが終了すると、セルカウンタ52にカウントアップの指示が与えられてカウント値Ccが「1」とされてから、4番目の演算サイクルが開始される。なお、カウント値Cfは、新たな0番目の第5蓄熱データのデータ書込み完了後に「0」とされている。
【0085】
4番目の演算サイクルが3番目の演算サイクルと同様な手順で行われる。この4番目の演算サイクルでは、4番目の補正発熱データが算出されるとともに、新たな1番目の第1〜第5蓄熱データが算出される。そして、この新たな1番目の第1〜第5蓄熱データは、熱メモリへの書き込みの際に「120」とされたカウント値Cfと、「1」のカウント値Ccとから作成された履歴演算用書込みアドレスでアドレスが指定されるから、対応する熱メモリ41〜45のアドレス「121」に書き込まれ、結果として更新前のアドレスに対して「−8」アドレスのオフセットが付けられる。
【0086】
以下、同様にして演算サイクルを順次に行い、5番目以降の補正発熱データと、2番目以降の新たな第1〜第5蓄熱データを算出する。そして、得られる補正発熱データは出力ラインメモリ35に書き込まれ、新たな第1〜第5蓄熱データは、更新前のアドレスよりも「−8」だけオフセットが付けられて対応する熱メモリに書き込まれる。なお、120番目から最後(122番目)の演算サイクルでは補正演算は行われない。
【0087】
結果として、図5(b)に示されるように、第1ラインの演算処理が完了した時点では新たな0〜119番目の各蓄熱データは、対応する熱メモリのアドレス「120」〜「0」〜「111」にそれぞれ書き込まれた状態となる。
【0088】
上記のように1ライン分の蓄熱データの更新を行っているときに、例えば新たに算出された8番目の第1蓄熱データは、第1熱メモリ41のアドレス「0」に書き込まれる。この第1熱メモリ41のアドレス「0」には、更新前の0番目の第1蓄熱データが書き込まれているが、この0番目の第1蓄熱データを必要とする熱履歴演算は既に完了しているので問題はない。8番目以降の第1蓄熱データの書込みについても同様であり、第2〜第5蓄熱データについても同様である。
【0089】
以上のようにして第1ラインについての演算処理が完了すると、119番目の第5蓄熱データの書込み完了後に「0」とされたカウント値Cfは、第2ラインの演算処理のためにオフセットカウンタ53にカウントダウンの指示が与えられて「120」とされる。また、セルカウンタ52が初期化されてカウント値Ccが「125」とされる。
【0090】
さらに、出力ラインメモリ35から第1ラインの補正発熱データが順番に読み出されて、第2LUT36に送られる。そして、1ライン分の補正発熱データが第2LUT36で通電時間データに変換され、ラインメモリ23に書き込まれる。なお、補正発熱データを算出する毎に、これを通電時間データに変換してラインメモリ23に書き込んでもよい。
【0091】
ラインメモリ23に第1ラインの各通電時間データが書き込まれた後に、マイクロコンピュータ20からの通電開始信号がヘッド駆動部24に送られる。すると、ヘッド駆動部24は、ラインメモリ23上の1ライン分の通電時間データを取り込んで各発熱素子8の通電を開始し、対応する通電時間データに応じた時間が経過した時点で通電を停止する。これにより、各発熱素子8から対応する通電時間データの基となった補正発熱データに表される熱エネルギーが発生する。この各発熱素子8の発熱によりカラー感熱記録紙2のイエロー感熱発色層が発色してイエロー画像の第1ラインが記録される。
【0092】
イエロー画像の第1ラインをサーマルヘッド7で記録している間に、第2ラインの演算処理が行われる。前述のようにカウント値Ccが値「125」,カウント値Cfが「120」とされてから、第2ラインの演算処理が第1ラインの場合と同様な手順で行われる。
【0093】
補正演算時のデータ読出しでは、カウント値Cfが「120」とされているので、熱メモリのアドレス「120」〜「0」〜「111」を順番に指定する補正演算用読出しアドレスが加算器55で作成される。図5(b)に示されるように、メモリのアドレス「120」〜「0」〜「111」には、順番に0〜119番目の蓄熱データが書き込まれているから、結果的に0番目の蓄熱データから順番に読み出される。
【0094】
同様に、熱履歴演算時のデータ読出しにおいても、アドレス「120」〜「0」〜「111」を順番に指定する履歴演算用読出しアドレスが作成されるから、0〜119番目の各蓄熱データを順次に更新するのに必要な更新演算用読出しアドレスが作成されて蓄熱データが読み出される。
【0095】
そして、履歴演算で算出された蓄熱データのデータ書込み時には、カウント値Cfが「112」とされるので、更新前の蓄熱データが書き込まれているアドレス「−8」のオフセットを付けて書き込まれる。これにより、図5(c)に示すように、新たな0〜119番目の蓄熱データは、アドレス「112」〜「0」〜「103」に書き込まれる。
【0096】
第2ラインの演算処理が完了した後、カウント値Cfが値「112」とされ、またカウント値Ccが「125」とされる。また、第2ラインの各補正発熱データが通電時間データに変換され、ラインメモリ23に書き込まれる。
【0097】
イエロー画像の第1ラインの記録が終了した後に、パルスモータ6が駆動されてカラー感熱記録紙2が下流に向けて1ライン分送られてから、2番目の通電開始信号がヘッド駆動部24に入力される。これにより、ラインメモリ23上の第2ラインの通電時間データに基づいた通電時間で各発熱素子8が通電され、イエロー画像の第2ラインが記録される。
【0098】
以下、同様にして、イエロー画像の第3ライン以降の補正演算、更新演算を行って補正発熱データの算出,蓄熱データの更新を行うとともに、カラー感熱記録紙2をステップ送りしながらサーマルヘッド7を駆動してイエロー画像の第3ライン以降を順次記録する。
【0099】
イエロー画像の記録されたカラー感熱記録紙2の部分は、イエロー用光定着器13からの紫外線が照射されることにより光定着される。イエロー画像の最終ラインの記録が終了し、カラー感熱記録紙2の後端まで光定着が完了すると、サーマルヘッド7による圧接が解除されてからカラー感熱記録紙2が戻される。この搬送中に、カラー感熱記録紙2の記録開始位置がサーマルヘッド7に達すると、搬送が停止されるとともに、サーマルヘッド7がカラー感熱記録紙2に圧接される。
【0100】
サーマルヘッド7がカラー感熱記録紙2に圧接した後に、イエロー画像の場合と同様な手順で蓄熱補正部22での処理を行いながら、マゼンタ画像を1ラインずつ記録する。
【0101】
マゼンタ画像の記録されたカラー感熱記録紙2の部分は、マゼンタ用光定着器14からの紫外線が照射されることにより光定着される。マゼンタ画像の最終ラインの記録が終了すると、サーマルヘッド7による圧接が解除されてからカラー感熱記録紙2が戻される。この搬送中に、カラー感熱記録紙2の記録開始位置がサーマルヘッド7に達すると、搬送が停止されるとともに、サーマルヘッド7がカラー感熱記録紙2に圧接される。サーマルヘッド7が圧接された後に、シアンプリント工程が開始され、上記と同様な手順でシアン画像が1ラインずつ記録され、シアン画像の最終ラインが記録されたカラー感熱記録紙2は、排紙口4から排出される。
【0102】
図6は、蓄熱データの読出アドレスカウンタと、書込アドレスカウンタとを別々に設け、熱メモリとして任意の記憶容量のもの利用できる例を示すものである。なお、以下に説明する他は、上記実施形態と同様であり、実質的に同じ構成部材には同一の符号を付す。
【0103】
オフセットレジスタ61には、蓄熱データを書き込む際のオフセットの大きさを示すオフセット値Fが書き込まれる。例えば、8アドレス分のオフセットを付ける場合には、オフセット値Fは「8」とされる。
【0104】
読出(R)用初期値レジスタ62は、1色の画像の記録に先立って、そのカウント値Rsに「0」が設定される。減算器63は、1ライン分の演算処理が完了する毎に、その時点のカウント値Rsからオフセット値Fを減算し、その減算結果を読出用初期値レジスタ62の新たなカウント値Rsとしてセットする。このようにしてセットされる、カウント値Rsは1ラインの演算処理時における0番目の蓄熱データが書き込まれているアドレスを示している。なお、アドレスを増やす方向にオフセットを付ける場合には、減算器63及び後述する減算器73に代えて加算器を用い、カウント値にオフセット値Fを加算したものを新たなカウント値としてセットする。
【0105】
減算器64は、演算回路33で先行して行われる補正演算の回数だけカウント値Rsを小さくするものであり、カウント値Rsから値「3」減算し、これを読出(R)用カウンタ65に送る。読出用カウンタ65は、1ライン分の演算処理に先立って減算器64からの減算結果、すなわち値「Rs−3」が、そのカウント値Rcとしてセットされる。このカウント値Rcは、演算サイクルが完了する毎に「1」ずづインクリメントされ、カウント値Rcが熱メモリのアドレス範囲の上限に達すると、次のカウントアップで「0」となるように熱メモリのアドレス範囲に基づいた折り返し制御が行われる。このカウント値Rcは、更新すべき蓄熱データのアドレスを示している。
【0106】
読出用カウンタ63からのカウント値Rcは、加算器55,57に送られる。加算器55は、カウント値Rcに値「3」を加算することで補正演算用読出しアドレスを算出する。加算器57に送られたカウント値Rcには、走査カウウンタ56からの走査値「−3」〜「+3」が加算され、加算アドレスRaとして端部処理部66に送られる。
【0107】
端部処理部66には、上記実施形態と同様に実在する番号の蓄熱データに対応する履歴演算用読出しアドレスを出力するものである。この端部処理部66には、加算器65からの加算アドレスRaの他に、カウント値Rsと走査値が入力される。
【0108】
発熱素子8の個数(Q+1)としたときに、端部処理部66は、走査値≦「Ra−Rs」≦「走査値+Q」の条件を満たす場合には、加算アドレスRaを履歴演算用読出しアドレスとして出力する。そして、この条件を満たさない場合で、「走査値<「Ra−Rs」の場合には、カウント値Rsを更新演算用読出しアドレスとして出力することにより0番目の蓄熱データのアドレスを指定し、「Ra−Rs」<「走査値+Q」の場合には、値「Rs+Q」を更新演算用読出しアドレスとして出力することにより、最後すなわち「Q」番目の蓄熱データのアドレスを指定する。
【0109】
書込(R)用初期値レジスタ72は、1色の画像の記録に先立ってそのカウント値Wsに「−F」がセットされる。減算器73は、1ライン分の演算処理が完了する毎に、その時点のカウント値Wsからオフセット値Fを減算し、その減算結果を書込用初期値レジスタ67の新たなカウント値Wsとしてセットする。このようにしてセットされる、カウント値Wsは1ラインの演算処理時における新たな0番目の蓄熱データを書き込むべきアドレスを示している。
【0110】
減算器74は、上述の減算器64と同様に先行して行われる補正演算の回数だけカウント値Ws小さくするものであり、カウント値Wsから値「3」減算し、これを書込(W)用カウンタ75に送る。書込用カウンタ75は、1ライン分の演算処理に先立って減算器74からの減算結果、すなわち値「Ws−3」が、そのカウント値Wcとしてセットされる。カウント値Wcは、読出用カウンタ63からのカウント値Rcと同じく、演算サイクルが完了する毎に「1」ずつインクリメントされ、アドレス範囲に基づいた折り返し制御が行われる。このように制御されるカウント値Wcは、新たな蓄熱データを書き込むべきアドレスを示している。
【0111】
上記のように読出用アドレスカウンタとしての読出用カウンタ65、書込用アドレスカウンタとしての書込用カウンタ75をそれぞれ設け、熱メモリのアドレス範囲の上限に達してからの次のカウントアップで「0」となるようにカウンタ毎にカウント値を制御可能にしているので、熱メモリ41〜45としては、その記憶容量が1ライン分の蓄熱データの個数よりもオフセット分以上大きくされるが、任意の記憶容量のものを用いることができる。
【0112】
なお、各減算器63,64、73,74、加算器55,66による加減算,端部処理部67による条件判定とそれに基づく更新演算用読出しアドレスの出力制御は、熱メモリのアドレス範囲に基づくアドレスの折り返しを考慮して行われる。
【0113】
この例おいても蓄熱データの読出し、書込み時のアドレス指定は上記実施形態と同様に行われ、読出した更新すべき蓄熱データのアドレスに対して所定のオフセットを付けたアドレスに新たに算出された蓄熱データが書き込まれる。
【0114】
上記各実施形態では、各蓄熱層に対する熱履歴演算のタップ数を同じとして、オフセットの大きさ,ラインメモリの記憶容量を同じにしているが、各蓄熱層に対する熱履歴演算のタップ数が異なる場合であっても、最も大きいタップ数に合わせオフセット,ラインメモリの記憶容量を設定し、各蓄熱層の熱履歴演算の手順を共通化するのがよい。
【0115】
図7は、蓄熱データをオフセットを付けて書き込む代わりに、小容量のバッファメモリを設けたものである。なお、以下に説明する他は最初の実施形態と同様であり、同じ構成部材には同一の符号を付す。
【0116】
第1熱メモリ81は、1ライン分の第1蓄熱データを記憶する記憶容量を持っている。第1熱メモリ81に対応して第1バッファメモリ81aが設けられている。この第1バッファメモリ81aとしては、拡散計算のタップ数に応じた小容量のものが用いられる。この第1バッファメモリ81aのデータの読出し及び書込みはメモリコントローラ86によって制御される。演算回路33で算出される第1蓄熱データは、第1バッファメモリ81aに送られて書き込まれる。
【0117】
メモリコントローラ86は、熱履歴演算時には、最初の実施形態と同様に更新すべき第1蓄熱データとその前後の各第1蓄熱データを順次に読み出すが、第1熱メモリ81の各アドレスにそのアドレス番号と同じ番号の第1蓄熱データを書き込むため、第1蓄熱データを読み出しでは所望とする第1蓄熱データの番号がアドレスとして指定される。
【0118】
また、演算回路33からの新たな第1蓄熱データを第1バッファメモリ81aに書き込む際には、メモリコントローラ86は、アドレス0から順番に指定し、最後のアドレスを指定すると、次に再びアドレス0に戻るように循環的にアドレスの指定を行う。さらに、この第1蓄熱データの第1バッファメモリ81aへの書き込み先立って、メモリコントローラ86は、第1バッファメモリ81aの書き込みの対象となっているアドレスに書き込まれている第1蓄熱データを読み出し、この読み出した第1蓄熱データをその番号と同じ第1熱メモリ81のアドレスに書き込むように、第1熱メモリ81と第1バッファメモリ81aとを制御する。
【0119】
第2〜第5熱メモリ82〜85には、第2〜第5バッファメモリ82a〜85aが設けられており、これらは第1熱メモリ81,第1バッファメモリ81aと同様にメモリコントローラ86で制御される。
【0120】
各バッファメモリ81a〜85aの最低限必要な記憶容量は、熱履歴演算のタップ数に応じて決まる。例えば、演算式▲2▼で熱履歴演算を行う場合で、例えば第1蓄熱データと第2蓄熱データについてのタップ数がいずれも「2t+1」である場合には、第1バッファメモリ81aは、「t+1」個以上の蓄熱データを記憶できる容量があればよい。また、第1蓄熱データについてのタップ数が第1蓄熱データのものよりも大きくその値「2t+1」である場合も同じである。
【0121】
また、第1蓄熱データよりも第2蓄熱データについてのタップ数が大きい場合には、第2蓄熱層の更新演算の際に、第2蓄熱データについてのタップ数分だけ更新前の第1蓄熱データを読み出す必要があるので、第1バファメモリの最低限必要な記憶容量は、第2蓄熱データについてのタップ数に応じて決める必要がある。なお、各蓄熱データの熱履歴演算のタップ数が異なる場合には、各タップ数に応じて決まる最低限必要な記憶容量のうちの最大の記憶容量を各バッファメモリに持たせ、各熱メモリ,各バッファメモリの制御シーケンスを共通化するのが好ましい。
【0122】
なお、同一の蓄熱層の蓄熱データだけを用いて、熱拡散の計算を行うのであれば、タップ数を「2t+1」個としたときに、それの蓄熱データに対応するバッファメモリは「t」個以上の蓄熱データを記憶できる容量があればよい。
【0123】
この例では、各バッファメモリ81a〜85aの記憶容量を「8」(アドレス0〜7)としているが、各蓄熱層に対応する更新演算のタップ数が「7」であるので、各バッファメモリ81a〜85aの記憶容量は「4」あればよい。
【0124】
上記構成の作用を説明する。なお、第1〜第5メモリ81〜85,第1〜第5バッファメモリ81a〜85aの動作はいずれも同様であるので、第1熱メモリ81と第1バッファメモリ81aを例にして説明する。また、第1蓄熱データの熱履歴演算を行う場合には、補正発熱データが演算回路33に入力されるが、図8,図9では省略してある。
【0125】
例えば第iラインの8番目の第1蓄熱データの更新演算の開始時には、図8(a)に示すように、第i−1ラインのデータ処理演算で得られた第1蓄熱データ(ダッシュなしの番号で示す)が第1熱メモリ81のアドレス0から順番に書き込まれている。また、第1バッファメモリ81aには、第iラインのそれまでの熱履歴演算で得られた新たな0〜7番目(ダッシュ付きの番号で示す)がアドレス0〜7に順番に書き込まれている。
【0126】
8番目の第1蓄熱データの更新のために、第1熱メモリ81のアドレス5〜11から5〜11番目の第1蓄熱データが読み出され、演算回路33に送られる。演算回路33には、この他に第iラインの5〜11番目の補正発熱データが入力される。これらの第1蓄熱データと補正発熱データとが演算式▲2▼に適用されて、新たな8番目の第1蓄熱データが算出される。
【0127】
上記のように新たな8番目の第1蓄熱データを算出している間に、第1バッファメモリ81aのアドレス0から新たな0番目の第1蓄熱データが読み出されて第1熱メモリ81に送られる。そして、この新たな0番目の第1蓄熱データが第1熱メモリ81のアドレス0に書き込まれる。
【0128】
新たな0番目の第1蓄熱データが第1熱メモリ81に書き込まれた後に、演算回路33からの新たな8番目の第1蓄熱データが第1バッファメモリ81aに送られる。そして、図8(b)に示すように、新たな8番目の第1蓄熱データが第1熱メモリ81aのアドレス0に書き込まれる。
【0129】
新たな8番目の第1蓄熱データを第1熱メモリ81aに書き込んだ後に、第1熱メモリ81のアドレス6〜12から読み出された6〜12番目の第1蓄熱データと、第iラインの6〜12番目の補正発熱データが演算回路33に送られて、新たな9番目の第1蓄熱データが算出される。また、一方で第1バッファメモリ81aのアドレス1から読み出された新たな1番目の第1蓄熱データが第1熱メモリ81のアドレス1に書き込まれる。そして、この後に、新たな9番目の第1蓄熱データが第1熱メモリ81aのアドレス9に書き込まれる。
【0130】
以下、同様にして順次に算出される新たな第1蓄熱データを第1バッファメモリ81aに書込み、第1バッファメモリ81aに書き込まれている第1蓄熱データを第1熱メモリ81に書き込む。
【0131】
図9(a)に示すように、新たな7番目の第1蓄熱データが第1熱メモリ81に書き込まれ、また新たな15番目の第1蓄熱データが第1バッファメモリ81aのアドレス7に書き込まれた状態となると、次の16番目の第1蓄熱データの熱履歴演算時では、先に第1バッファメモリ81aのアドレス0に書き込まれた8番目の新たな第1蓄熱データが読み出されて第1熱メモリ81のアドレス8に書き込まれる。そして、この後に、新たに算出された16番目の第1蓄熱データが第1バッファメモリ81aのアドレス0に書き込まれる。
【0132】
このようにして、第1バッファメモリ81aのアドレスを循環させながら新たな蓄熱データを順次に書き込むようにしながら、第1バッファメモリ81aに書き込んだ第1蓄熱データを第1熱メモリ81に書き込む。
【0133】
上記各実施形態では、感熱プリンタを例にして説明したが、各種のサーマルプリンタにも利用できる。またラインプリンタの例について説明したが、本発明はシリアルプリンタにも利用することができる。
【0134】
【発明の効果】
本発明によれば、ラインメモリから読み出した所定のタップ数の蓄熱データを用いて拡散計算を含む熱履歴演算を行い、その結果をラインメモリに書き戻す際に、タップ数に応じたオフセットを付けてラインメモリに書き戻すようにするとともに、そのオフセットに応じてラインメモリの記憶容量を大きくしたから、バッファメモリを設けることなく蓄熱データをラインメモリに書き戻すことができるようになり、回路規模を小さくできる。
【0135】
また、タップ数に応じた小容量のバッファメモリを設け、順次に算出される熱履歴演算の結果をバッファメモリのアドレスを循環させながら順次に指定して書き込むようにしながら、その書き込むべきアドレスの蓄熱データをラインメモリに書き戻すようにしたから、回路規模を小さくできる。
【図面の簡単な説明】
【図1】本発明を実施したカラー感熱プリンタの概略を示すものである。
【図2】カラー感熱プリンタの電気的な構成を示すブロック図である。
【図3】サーマルヘッドの蓄熱補正と蓄熱状態の更新を行う蓄熱補正部の構成例を示すブロック図である。
【図4】メモリコントローラの構成を示すブロック図である。
【図5】熱メモリのアドレスと書き込まれている蓄熱データの関係を示す説明図である。
【図6】読出用と書込用のアドレスカウントを設けた例を示すものである。
【図7】小容量のバッファメモリを設けた例を示すものである。
【図8】熱メモリ,バッファメモリの各アドレスと書き込まれている蓄熱データの関係を示す説明図である。
【図9】バッファメモリのアドレスが循環的に指定される状態を示す説明図である。
【符号の説明】
7 サーマルヘッド
8 発熱素子
22 蓄熱補正部
33 演算回路
41〜45、81〜85 熱メモリ
46,86 メモリコントローラ
65 読出用カウンタ
75 書込用カウンタ
81a〜85a バッファメモリ
Claims (3)
- 所定タップ数の蓄熱データを用いた拡散計算を含む熱履歴演算を行うサーマルプリンタの熱履歴演算装置において、
発熱素子毎の蓄熱状態を示す1ライン分の蓄熱データが順番に書き込まれて保持し、少なくとも新たな蓄熱データの書込み時に付与されるオフセットの大きさ分だけ記憶容量が大きくされたラインメモリと、
1ライン分の各蓄熱データを順番に更新するように、1つの蓄熱データを更新する際には、更新すべき蓄熱データの読出アドレスとその前後の各アドレスを指定して所定タップ数分の1組の蓄熱データをラインメモリから読み出し、熱履歴演算で算出される新たな蓄熱データを書き込む際には、対応する更新前の蓄熱データの読出アドレスに対して前記所定タップ数に応じたオフセットを付けた書込アドレスを指定してラインメモリに書き込み、次に1ライン分の蓄熱データを更新する際には、前回の読出アドレスに対して前記所定タップ数に応じたオフセットを付けた読出アドレスを用いて蓄熱データをラインメモリから読み出すメモリ制御手段と、
ラインメモリから読み出した1組の蓄熱データを用いた拡散計算を含む熱履歴演算を行って新たな蓄熱データを算出する演算回路とを備えたことを特徴とするサーマルプリンタの熱履歴演算装置。 - 前記メモリ制御手段は、読出アドレスを出力し、前記1組の蓄熱データ読み出す毎に読出アドレスを1ずつ変化させる読出アドレスカウンタと、新たに算出される蓄熱データがラインメモリに書き込まれるごとに毎に書込みアドレスを1ずつ変化させる書込アドレスカウンタとを備え、前記読出アドレスカウンタ及び書込アドレスカウンタは、それぞれラインメモリのアドレス範囲の一端までカウントした後にアドレス範囲の他端からカウントを行うようにされ、任意の記憶容量のラインメモリに対応可能にされていることを特徴とする請求項1記載のサーマルプリンタの熱履歴演算装置。
- 所定タップ数の蓄熱データを用いた拡散計算を含む熱履歴演算を行うサーマルプリンタの熱履歴演算装置において、
発熱素子毎の蓄熱状態を示す1ライン分の蓄熱データが順番に書き込まれて保持するラインメモリと、
前記所定タップ数に応じた記憶容量を有するバッファメモリと、
1ライン分の各蓄熱データを順番に更新するように、1つの蓄熱データを更新する際に更新すべき蓄熱データの読出アドレスとその前後の各アドレスを指定して所定タップ数分の1組の蓄熱データをラインメモリから読み出し、熱履歴演算で順次に算出される新たな蓄熱データをアドレスを循環させながら指定して前記バッファメモリに書き込むとともに、この書き込みに先立って、書込みの対象となる前記バッファメモリのアドレスから蓄熱データを読み出し、対応する更新前の蓄熱データが書き込まれているラインメモリのアドレスに書き込むメモリ制御手段と、
ラインメモリから読み出した1組の蓄熱データを用いた拡散計算を含む熱履歴演算を行って新たな蓄熱データを算出する演算回路とを備えたことを特徴とするサーマルプリンタの熱履歴演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002161871A JP2004009326A (ja) | 2002-06-03 | 2002-06-03 | サーマルプリンタの熱履歴演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002161871A JP2004009326A (ja) | 2002-06-03 | 2002-06-03 | サーマルプリンタの熱履歴演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004009326A true JP2004009326A (ja) | 2004-01-15 |
Family
ID=30430813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002161871A Pending JP2004009326A (ja) | 2002-06-03 | 2002-06-03 | サーマルプリンタの熱履歴演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004009326A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021192347A1 (ja) * | 2020-03-25 | 2021-09-30 | 京セラ株式会社 | インターフェイス回路及び熱履歴制御方法 |
-
2002
- 2002-06-03 JP JP2002161871A patent/JP2004009326A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021192347A1 (ja) * | 2020-03-25 | 2021-09-30 | 京セラ株式会社 | インターフェイス回路及び熱履歴制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7264323B2 (en) | Achieving laser-quality medical hardcopy output from thermal print devices | |
JP2006272891A (ja) | 蓄熱補正方法及びサーマルプリンタ並び蓄熱補正プログラム | |
US5841461A (en) | Accumulated heat correction method and apparatus | |
JP3589783B2 (ja) | 蓄熱補正方法及び装置 | |
JP2004009326A (ja) | サーマルプリンタの熱履歴演算装置 | |
JP2002254708A (ja) | 色再現方法およびこの方法を用いるデジタルカラーハードコピー装置、並びに上記方法を実行するためのプログラム | |
JP3870240B2 (ja) | 蓄熱補正方法 | |
JP5361252B2 (ja) | 印刷装置及びその制御方法、プログラム、記録媒体 | |
JP3678385B2 (ja) | サーマルプリント方法及びサーマルプリンタ | |
JP2005212344A (ja) | 画像形成装置及び該画像形成装置のサーマルヘッドの熱制御方法 | |
JP2003080756A (ja) | サーマルプリンタ | |
JP2008279741A (ja) | 画像形成装置及び画像形成方法 | |
JP2007098774A (ja) | 熱転写記録装置及びその制御方法 | |
JP2001270144A (ja) | サーマルヘッドの蓄熱補正方法及び装置 | |
JP2003266755A (ja) | カラー感熱プリンタの濃度補正方法 | |
JP2007098774A5 (ja) | ||
JP2004330675A (ja) | 画像記録装置、画像記録方法 | |
JP3154589B2 (ja) | カラー感熱プリンタ | |
JPH0542705A (ja) | ビデオプリンタおよびそのサーマルヘツドの熱履歴補正方法 | |
JP3609213B2 (ja) | 感熱プリント方法及び感熱プリンタ | |
JP3739519B2 (ja) | 感熱記録方法および装置 | |
JPH02249663A (ja) | 印写装置 | |
JPH10146998A (ja) | 蓄熱補正方法及び装置 | |
JP2004050563A (ja) | サーマルプリンタ及びサーマルヘッドの蓄熱補正方法 | |
JP2001277572A (ja) | 感熱転写階調制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Effective date: 20050201 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20061214 |
|
A977 | Report on retrieval |
Effective date: 20061221 Free format text: JAPANESE INTERMEDIATE CODE: A971007 |
|
A131 | Notification of reasons for refusal |
Effective date: 20070207 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070808 |