(58)【調査した分野】(Int.Cl.,DB名)
請求項1において、前記読み出し制御機能は、前記表示データを読み出すための前記メモリに対する周期的な読み出しを断続的に放棄して読み飛ばす機能を含む、表示制御ユニット。
請求項2において、前記読み飛ばす機能は、以前の前記表示データの前記間引かれた複数の画素の位置が重複しないように前記周期的な読み出しを放棄する機能を含む、表示制御ユニット。
請求項2または3において、前記読み飛ばす機能は、前記表示ユニットの画面において前記間引かれた複数の画素が上下および左右に連続しないように前記周期的な読み出しを放棄する機能を含む、表示制御ユニット。
請求項2ないし4のいずれかにおいて、前記読み飛ばす機能は、前記アクセス待ち時間の直近の第1の時間の平均が第1の値を超えたときに、その後の所定の時間内の前記周期的な読み出しを所定の比率で放棄する機能を含む、表示制御ユニット。
請求項2ないし5のいずれかにおいて、前記読み飛ばす機能は、前記アクセス待ち時間に周期的な増大があるときは、その後の前記周期的な増大のタイミングに合わせて、前記周期的な読み出しを所定の比率で放棄する機能を含む、表示制御ユニット。
請求項1ないし7のいずれかにおいて、前記表示データは、前記表示ユニットの画面をフレーム単位で所定のリフレッシュレートでリフレッシュするフレームデータの一部である、表示制御ユニット。
表示ユニットと、前記表示ユニットの画面に画像を表示する表示データを前記表示ユニットに供給する表示制御ユニットと、前記表示データを含む複数種類のデータが格納されたメモリと、前記表示制御ユニットを含む複数の制御ユニットの前記メモリに対するアクセスを制御するアクセス制御ユニットとを有する装置の制御方法であって、
前記表示制御ユニットが、前記アクセス制御ユニットを介して前記メモリから前記表示データを読み出すことと、
読み出した前記表示データを一時的にバッファに格納することと、
前記バッファに格納された前記表示データを前記表示ユニットへ出力することとを有し、
前記読み出すことは、前記メモリに対するアクセス待ち時間により前記メモリに対するアクセスが集中していると判断されるときは、前記表示データに含まれる複数の画素のデータを間引いて前記表示データを取得することを含み、
前記出力することは、間引かれた画素のデータを前記メモリから読み出された画素のデータから生成することを含む、制御方法。
請求項11において、前記読み出すことは、前記アクセス待ち時間により前記メモリに対するアクセスが集中していると判断されると、前記表示データを読み出すための前記メモリに対する周期的な読み出しを断続的に放棄して読み飛ばすことを含む、制御方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のように、ユーザインタフェースにLCDを用いた装置においては、表示制御ユニットはLCDに対する表示出力を優先し、同期信号とデータを常に送り続ける。LCDに対するデータ送信が途切れると即画像の乱れとして露見するためである。
【0005】
一方、プリンタにおいては、印刷にもリアルタイムな制御が要求される。CPUおよびその他のハードウェアによるメモリへのアクセス頻度が増大すると、印刷制御の遅延や、最悪の場合には破綻を引き起こす可能性がある。メモリへのアクセス頻度の増大は、タッチスクリーン処理が遅延したり、インタフェース回路の転送レートが低下したりする要因ともなる。したがって、処理の品質をできる限り低下させずにメモリへのアクセス頻度を低減することは重要である。
【課題を解決するための手段】
【0006】
本発明の一態様は、表示ユニットの画面に画像を表示する表示データを表示ユニットに供給する表示制御ユニットである。この表示制御ユニットは、画像データを含む複数種類のデータが格納されたメモリに対する複数の制御ユニットからのアクセスを制御するアクセス制御ユニットを介してメモリから表示データを読み込む入力ユニットと、入力ユニットが読み込んだ表示データを一時的に格納するバッファと、バッファに格納された表示データを表示ユニットへ出力する出力ユニットとを有する。入力ユニットは、メモリに対するアクセス待ち時間の履歴を保持する機能と、アクセス待ち時間の履歴によりメモリに対するアクセスが集中していると判断されるときは、表示データに含まれる複数の画素のデータを間引いて表示データを取得する読み出し制御機能とを含み、出力ユニットは、間引かれた画素のデータを、メモリから読み出され、間引かれなかった画素のデータから生成する機能を含む。
【0007】
この表示制御ユニットは、入力ユニットが、メモリにアクセスが集中したときに、LCDなどの表示ユニットに画像を出力するための表示データの全てを最優先でメモリから取得する代わりに、表示データに含まれる複数の画素データを間引いて表示データを取得する。これにより、表示制御ユニットは、メモリに対するアクセス集中の緩和に寄与するとともに、所定のタイミングの範囲内で表示データの取得を可能とし、アクセス集中が画像表示に大きな影響を及ぼすことを抑制する。また、表示制御ユニットで読み出すデータは表示データなので、隣接する画素との関連性が高い。このため、出力ユニットは、間引かれた画素のデータを、その画素の上下または左右などの間引かれなかった画素のデータから生成することにより、表示データが著しく劣化するのを抑制する。
【0008】
表示データは、表示ユニットの画面をフレーム単位で所定のリフレッシュレートでリフレッシュするフレームデータの一部であることが好ましい。表示データ中の幾つかの画素のデータが実際の画素のデータに対して劣化したものであっても、定期的にリフレッシュされることにより、表示ユニットの画面に表示される画像が著しく劣化することを抑制できる。
【0009】
したがって、この表示制御ユニットを含むシステム(装置)においては、メモリに対するアクセスが集中したときに、表示ユニットにおける画像の品質をそれほど劣化させることなく表示制御ユニットのメモリに対するアクセス頻度を低減し、システム全体の性能を改善できる。
【0010】
表示データに含まれる画素のデータ(画素データ)を適当なタイミングで、またはランダムに間引いて取得してもよい。画素データを間引いて取得する1つの方法は、表示データを読み出すためのメモリに対する周期的な読み出しを断続的に放棄して読み飛ばすことである。したがって、この表示制御ユニットの読み出し制御機能は、表示データを読み出すためのメモリに対する周期的な読み出しを断続的に放棄して読み飛ばす機能を含むことが好ましい。
【0011】
この表示制御ユニットの読み飛ばす機能は、以前の表示データの間引かれた複数の画素の位置が重複しないように周期的な読み出しを放棄する機能を含むことが好ましい。読み飛ばされた画素が表示ユニットの画面で重複したり規則的に現れたりしないようにすることにより、画面に表示される画像の劣化をさらに抑制できる。
【0012】
また、読み飛ばす機能は、表示ユニットの画面における間引かれた複数の画素が上下および左右に連続しないように周期的な読み出しを放棄する機能を含むことが好ましい。間引かれた複数の画素が上下および左右に連続していると、出力ユニットにおいて間引かれた画素のデータを周囲の画素のデータから生成(補完)することが難しくなる。
【0013】
読み飛ばす機能は、アクセス待ち時間の直近の第1の時間の平均が第1の値を超えたときに、その後の所定の時間内の周期的な読み出しを所定の比率で放棄する機能を含むことが好ましい。突発的な要因、非周期的な要因などによるメモリに対するアクセスの集中を緩和できる。
【0014】
読み飛ばす機能は、アクセス待ち時間に周期的な増大があるときに、その後の待ち時間の周期的な増大のタイミングを予測し、そのタイミングに合わせて、表示制御ユニットの周期的な読み出しを所定の比率で放棄する機能を含んでもよい。周期的な要因によるメモリに対するアクセスの集中を予測し、それを緩和できる。
【0015】
表示制御ユニットの読み出し制御機能は、間引かれた画素のデータに、画素のデータが間引かれたことを示すデータをセットする機能を含むことが好ましい。間引かれた画素のデータは不定であってもよいが、たとえば、表示データの周期的な読み出しが放棄された位置の画素のデータに間引かれたことを示すローバリューやハイバリューなどのデータをセットすることにより、入力ユニットによりバッファに格納された表示データを参照することで間引かれたデータを判別できる。
【0016】
本発明の異なる態様の1つは、上記表示制御ユニットと、アクセス制御ユニットと、アクセス制御ユニットを介してメモリにアクセスして印刷機構に対して印刷用のデータを供給する印刷制御ユニットとを有する装置である。表示制御ユニットと印刷制御ユニットとによるメモリに対するアクセスが集中したときに、表示制御ユニットのアクセス頻度を緩和し、印刷制御の遅延による印刷品質の劣化を抑制でき、印刷が破綻するのを未然に防止できる。この装置の一例は、表示制御ユニットおよび印刷制御ユニットを搭載したLSI、ASICなどのコントローラである。
【0017】
この装置は、さらに、メモリと、表示制御ユニットから表示データを受信する表示ユニットと、印刷制御ユニットから印刷用のデータを受信する印刷機構とを有する装置、たとえば、プリンタ、印刷装置、複合機などであってもよい。
【0018】
本発明のさらに異なる態様の1つは、表示ユニットと、表示ユニットの画面に画像を表示する表示データを表示ユニットに供給する表示制御ユニットと、表示データを含む複数種類のデータが格納されたメモリと、表示制御ユニットを含む複数の制御ユニットからのメモリに対するアクセスを制御するアクセス制御ユニットとを有する装置の制御方法である。この制御方法は、以下のステップを含む。
1.表示制御ユニットが、アクセス制御ユニットを介してメモリから表示を読み出すこと。
2.読み出した表示データを一時的にバッファに格納すること。
3.バッファに格納された表示データを表示ユニットへ出力すること。
【0019】
表示データを読み出すステップは、メモリに対するアクセス待ち時間によりメモリに対するアクセスが集中していると判断されるときは、表示データに含まれる複数の画素のデータを間引いて表示データを取得することを含む。また、出力するステップは、間引かれた画素のデータを、メモリから読み出された、間引かれなかった画素のデータから生成することを含む。
【0020】
この方法により、アクセスが集中することによる装置全体の性能の低下を抑制できるとともに、表示品質の大幅な劣化も抑制できる。また、読み出すステップは、さらに、アクセス待ち時間によりメモリに対するアクセスが集中していると判断されると、表示データを読み出すためのメモリに対する周期的な読み出しを断続的に放棄して読み飛ばすことを含むことが好ましい。
【発明を実施するための形態】
【0022】
図1に、ユーザインタフェースにLCDおよびタッチスクリーンを用いた装置(プリンタ、複合機)の概要を示している。この装置(プリンタ)1は、記録用紙(記録媒体)に画像、文字などの情報を印刷する印刷機構(プリンタメカ)2と、印刷機構2を制御する機能を含むプリンタコントローラ(システムコントローラ)5と、印刷するデータ(プリントデータ、印刷データ)61を一時的に格納する外部メモリ6とを含む。プリンタコントローラ5は、LSIあるいはASICなどの集積回路装置で実現されるが、1つのチップで提供されてもよく、複数のチップ(チップセット)で提供されてもよい。また、複数のチップを搭載したプリント基板で提供されてもよい。また、外部メモリ6は、集積回路に含まれていてもよい。このプリンタ1は、プリンタとしての機能を単独で提供するものであってもよく、スキャナーなどの機能を含めた複合機であってもよく、また、POSなどの他のシステムと複合化されたものであってもよい。
【0023】
プリンタ1は、さらに、ユーザインタフェースであるLCD(表示ユニット)3およびタッチスクリーン(タッチパネル)7と、印刷データ61などの情報を外部機器と送受信するUSBインタフェース4とを含む。プリンタ1は、さらに、外部機器との間で情報の送受信を行うインタフェース、たとえば、LANインタフェース、UARTインタフェース、IEEE1284インタフェースなどを含んでいてもよい。プリンタコントローラ5は、印刷機構2を制御する印刷制御回路(印刷制御ユニット)11と、LCD(表示ユニット)3を制御するLCD制御回路(表示制御ユニット)10と、タッチスクリーン7を制御するタッチスクリーンコントローラ17と、USBインタフェース4を制御するUSBインタフェース制御回路14とを含む。印刷制御回路11は、プリンタメカ2のモータ21を制御するモータ制御回路12と、プリントヘッド22を制御するプリントヘッド制御回路13とを含む。プリンタコントローラ5は、さらに、プリンタコントローラ5の全体の制御を行うCPU9と、メモリ6への入出力(書き込み、読み出し)を制御するメモリ制御回路(メモリ制御ユニット)16と、CPU9および複数の制御回路10、11、14とメモリ6との間のアクセスを制御するメモリアクセス調停回路(アクセス制御ユニット)15とを含む。
【0024】
メモリ6には、印刷データ61に加えて、CPU9を制御するためのプログラムおよびデータ(CPU命令コード/データ)62と、LCD3で画像を表示するためのデータ(フレームデータ)63と、モータ制御用のデータ(モータ相データ)64とが格納される。また、メモリ6は、USBインタフェース4によりデータを送受信する際の送信データバッファ65および受信データバッファ66としても使用される。
【0025】
したがって、メモリアクセス調停回路15は、メモリ6に対する数多くのアクセスが適宜行われるようにタイミングを制御する。メモリ6に対するアクセスには、CPU9によるCPU命令コード/データ62およびその他のデータの入出力、LCD制御回路10によるフレームデータ63の読み出し、モータ制御回路12によるモータ相データ64の読み出し、プリントヘッド制御回路13による印刷データ61の読み出し、USBインタフェース制御回路14による送信バッファ65および受信バッファ66に対する入出力が含まれる。
【0026】
図2に、LCD制御回路(表示制御ユニット)10の構成をブロック図により示している。LCD制御回路10は、メモリ6に格納されているフレームデータ63により、表示ユニットであるLCD3の画面をフレーム単位で定期的に、たとえば、50〜100Hz程度、望ましくは70〜75Hz程度のリフレッシュレートで書き換えてLCD3の画像を最新の状態に維持する。具体的には、LCD制御回路10は、フレームデータ63の一部、たとえば、1または複数の走査線のデータ(表示データ)63aを随時、メモリ6から読み込み、LCD3に出力して書き換える。
【0027】
そのため、LCD制御回路10は、メモリアクセス調停回路15を介してメモリ6に周期的にアクセスして表示データ63aを複数の画素単位のデータで読み込む入力ユニット30と、入力ユニット30が読み込んだ表示データ63aを一時的に格納するバッファ50と、バッファ50に格納された表示データ63aを、走査線単位(ライン単位)などのLCD3に表示しやすい状態(単位)のデータでLCD3へ出力する出力ユニット40とを有する。
【0028】
入力ユニット30は、メモリ6のフレームデータ63が格納されたフレームバッファ領域の所定のアドレスを出力し、表示データ63aを数個の画素単位、たとえば4画素単位で周期的に読み込むメモリアクセス回路32と、メモリアクセス回路32が表示データ63aを取得する際のアクセス待ち時間TWの履歴を保持する機能(待ち時間履歴保持回路)33とを含む。このプリンタコントローラ5においては、メモリ6に対するアクセス待ち時間TWはアクセス調停回路15により制御される。したがって、メモリ6に対するアクセスの集中度により、メモリ6に対するアクセス待ち時間TWは変化する。
【0029】
入力ユニット30は、待ち時間TWの履歴から、メモリアクセス回路32の機能を制御する読み出し制御ユニット(読み出し制御機能)31を含む。読み出し制御ユニット31は、待ち時間TWの履歴に基づいてメモリ6に対するアクセスが集中していることを判断し、メモリ6へのアクセスが集中していると判断されるときは、表示データ63aに含まれる複数の画素データを間引いて表示データ63aを取得する。このため、読み出し制御機能31は、メモリアクセス回路32の周期的な読み出しを断続的に放棄させて、表示データ63aを読み飛ばす機能(フレームバッファ読み出し制御回路)35と、待ち時間履歴保持回路33のアクセス待ち時間TWの履歴データ33dを解析して読み飛ばす条件34fを設定する読み飛ばし判定機能(読み飛ばし判定回路)34と、読み飛ばし判定した結果を保持する機能(結果保持回路)36とを含む。
【0030】
また、出力ユニット40は、間引かれた画素(読み飛ばされた画素)のデータを、メモリ6から読み込まれた画素のデータ、すなわち、読み飛ばされなかった画素のデータから生成する補間補正機能(補間補正回路)41を含む。
【0031】
ユーザインタフェース(UI)にLCD3などの表示ユニットを用いたプリンタ1において、LCD制御回路10はLCD3に対して同期信号とデータ(フレームデータ)63を送り続けなければならない。データ送信が途切れると即画像の乱れとして露見するため大きな問題となる。したがって、通常、LCD制御回路10とCPU9とを含む複数のハードウェア(制御回路)がメモリ6を共用する場合、通常は、LCD制御回路10のメモリ6へのアクセスを最優先とした調停を行うことでデータ転送が途切れることを防ぐ。しかしながら、プリンタ1の制御においては、印刷制御のリアルタイム性が高く、CPU9やその他のハードウェアのメモリアクセスの優先順位が下がることで、印刷制御の遅延、破綻となる可能性がある。また、タッチスクリーン7の処理が遅延したり、USBインタフェース制御回路14の転送帯域低下等を招いたりする要因にもなる。
【0032】
このプリンタコントローラ5においても、CPU9と、LCD制御回路10を含む多数のハードウェア、たとえば、モータ制御回路12、プリントヘッド制御回路13、USBインタフェース制御回路14とがメモリ6を共用する。LCD制御回路10は、メモリ6にアクセスが集中すると、表示データ63aの一部を読み飛ばすことにより、LCD3に表示される画像の品質を大きく落とさず、プリンタコントローラ5のピークメモリ帯域を低減することができる。
【0033】
すなわち、LCD制御回路10は、プリンタコントローラ5のシステム全体の必要メモリ帯域が小さいときには、メモリ6からフレームデータ63あるいは表示データ63aを全て読み出してLCD3へ転送する。しかしながら、印刷制御時等の必要メモリ帯域が大きいときにはメモリ6からの読み出しを間引き、読み出しを行わなかった画素を補間により生成する。LCD制御回路10が、メモリアクセス頻度が高い場合に読み飛ばしを行うことで、一時的にLCD3に表示される画像の画質は劣化する可能性がある。しかしながら、印刷制御時のメモリアクセス頻度は一定ではなく、モータの制御の周期などに合わせてメモリアクセス回数は一定間隔で増減を繰り返すため、連続して画質が劣化することはない。そのため、LCD3に表示される画像の品質をそれほど劣化させずに、メモリのピーク帯域を低減することが可能となる。
【0034】
したがって、プリンタコントローラ5は、メモリアクセスの集中による印刷制御の遅延を低減でき、印刷が破綻するのを回避できる。また、タッチスクリーン処理の遅延も低減でき、インタフェース回路の転送帯域向上を図ることができる。さらに、LCD制御回路10は、表示データ63aを所定のタイミングで取得できるので、LCD3に対して同期信号と表示データ63aを送り続けることが可能である。したがって、LCD3においてデータ送信が途切れたりすることはなく、画像に乱れが発生したりすることも未然に防止できる。
【0035】
ある時点におけるシステム(プリンタコントローラ)5の必要メモリ帯域は、メモリアクセス時の待ち時間TWの履歴データ33dを保持することで推測できる。すなわち、待ち時間TWの履歴データ33dを解析することにより、他の回路のメモリアクセスの頻度を推測できる。このため、履歴保持回路33は、履歴データ33dを保持する。
【0036】
メモリ帯域の判断手法の1つは、一定の長さの待ち時間TWが、一定の頻度で発生した場合に、他の回路のメモリアクセスの頻度が高く、システムの必要メモリ帯域が大きいと判断することである。このため、読み飛ばし判定回路34は、履歴データ33dの直近の第1の時間内に実行された読み出しのアクセス待ち時間TWの平均が第1の値を超えたときに、その後の所定の時間内の周期的な読み出しを所定の比率で放棄するように読み飛ばし条件34fをセットする機能(第1の機能)34aを含む。
【0037】
また、待ち時間TWの変化が周期性を持っている場合には周期にあわせてメモリ帯域を予測することが可能である。このため、読み飛ばし判定回路34は、アクセス待ち時間TWの履歴データ33dに周期的な増大があるときは、その後の周期的な増大のタイミングに合わせて、周期的な読み出しを所定の比率で放棄するように読み飛ばし条件34fをセットする機能(第2の機能)34bを含む。
【0038】
読み飛ばす画素はランダムに選択してもよいが、LCD3に表示される画像の同一画素や、同一のX座標またはY座標の画素を集中して読み飛ばすと、読み飛ばした後に補完した画素が集中し、画質が劣化する要因となる。したがって、読み飛ばし判定回路34は、結果保持回路36に保持された読み飛ばし結果を参照し、読み飛ばす画素の位置が、なるべく前のフレームデータ63や前の表示データ63aで読み飛ばした画素の位置と重複しないように制御する機能(第3の機能)34cを含む。これにより、出力ユニット40の補間補正回路41は、読み飛ばされた画素の補完が前のフレームデータ63または前の表示データ63aと異なる画素位置で行われ、表示画質の劣化を抑制できる。
【0039】
第3の機能34cは、結果保持回路36に保持された前フレームでの読み飛ばし画素位置を、画素の読み飛ばし判定時に読み飛ばし条件34fに加える。読み飛ばしを行う場合には、第1の機能34aおよび第2の機能34bにより、メモリアクセス回数を1/2、2/3などに減らす。読み出し比率が1/2であれば、読み出し制御回路35により、読み出し、読み飛ばしが交互に行われる。読み出し比率が2/3であれば、読み出し制御回路35により、2回連続で読み出したら、次は読み飛ばすようにメモリアクセス回路32が制御される。この読み飛ばし動作をする際に、第3の機能34cは、2フレーム連続で、同一位置の画素を読み飛ばすことを避けるため、前フレームで読み出しを行った箇所を先頭に読み飛ばしを開始する。これにより読み飛ばし比率が50%以下であれば、2フレームに1回は必ず読み出される。
【0040】
図3に読み飛ばし率50%(読み込みレート2分の1)で表示データ63aを読み込んだ場合の例を示す。図中、白抜きされたものは、実際に読み込まれた画素(実画素)63rを示し、黒塗りされたものは読み飛ばされて、後に補完された画素(補完画素)63cを示す。
図3(a)に示す直前のフレームデータ63(n−1)と、
図3(b)に示す現フレームデータ63(n)とで、読み飛ばすタイミングを変えることにより補完画素が重複するのを防止できる。
【0041】
図4に、読み飛ばし率33%(読み込みレート3分の2)で表示データ63aを読み込んだ場合の例を示す。この場合も、
図4(a)に示す直前のフレームデータ63(n−1)と、
図4(b)に示す現フレームデータ63(n)とで、読み飛ばすタイミングを変えることにより補完画素が重複するのを防止できる。
【0042】
読み飛ばしによるメモリアクセス回数を減らす期間がごく短い場合や、読み飛ばし頻度の少ない場合は、第3の機能34cによる読み飛ばし条件を無視してもよい。たとえば、メモリアクセスが集中する期間が短く、LCD3の1ラインデータ転送(1ラインの転送は480ラインのLCDで35us程度)よりも短い時間で読み飛ばし期間が終わる場合は、第3の機能34cにより重複読み飛ばし禁止を解除してもよい。また、読み飛ばし頻度が低く、多くても3ライン置き程度にしか発生しない場合(3ラインの転送は480ラインのLCDで100us程度)も同様である。さらに、LCD3の画質の多少の劣化を無視してもよい条件がユーザーなどにより設定された場合や、LCD3のフレームレートが高い場合(100Hzに近いような場合)等で、50%を超える読み飛ばし比率が要求される場合も、第3の機能34cにより重複読み飛ばし禁止を解除してもよい。
【0043】
さらに、読み飛ばし判定回路34は、結果保持回路36に保持された読み飛ばし結果を参照し、LCD3の画面において、間引かれた複数の画素が上下および左右に連続しないように周期的な読み出しを放棄する条件を読み飛ばし条件34fにセットする機能(第4の機能)34dを含む。出力ユニット40の補間補正回路41において、読み飛ばされた画素のデータを、その画素の上下または左右の読み飛ばされなかった画素のデータにより補間および/または補正することを可能にするためである。
【0044】
読み出し制御回路35は、読み出し判定回路34により読み飛ばす条件が設定されると、それにより読み飛ばすタイミングを制御する信号Sをメモリアクセス回路32に送って読み飛ばすタイミング(読むタイミング)を制御する。
【0045】
読み飛ばされた画素の位置は結果保持回路36に保存される。したがって、出力ユニット40の補間補正回路41は、結果保持回路36に保持された読み飛ばし結果(読み飛ばしの履歴)を参照して読み飛ばされた画素データを生成(復元)してもよい。一方、表示データ63aの中の読み飛ばされた画素のデータに所定の値を入れて、バッファ50から表示データ63aを読み出すことにより読み飛ばされた画素であるか否かを判断できるようにしてもよい。このため、読み出し制御回路35は、間引かれた画素のデータに、すなわち、メモリ6から読みだされたデータではないことを示す特定のデータをセットする機能35aを含む。画素データがRGB各色の階調を8ビットで示す8bit×3のデータセットであれば、読み飛ばされた画素データにセットされるデータの一例は、(7F/7F/7F)や(FF/FF/FF)である。
【0046】
LCD制御回路10のバッファ50は、入力ユニット30が画素単位、たとえば、4画素単位で読み込んだ表示データ63aを一時的に格納し、1ライン単位あるいは複数ライン単位で出力ユニット40がLCD3に出力して画像をリフレッシュできるようにする。本例のバッファ50は4ライン分の表示データ63aを格納できる容量を備えたシングルポートメモリである。表示データ63aのあるラインのデータで、入力ユニット30において読み飛ばされ、出力ユニット40の補間補正回路41により生成された画素のデータはバッファ50にフィードバックされ、次のラインの読み飛ばされた画素のデータの生成に利用される。
【0047】
出力ユニット40の補間補正回路41は、表示データ63aに読み飛ばされた画素があれば、そのデータを周囲の画素データを用いて生成(補完)する。したがって、読み飛ばし判定回路34の第4の機能34dは、画素の補間を可能にするため、読み飛ばしは周囲の画素のデータが読み飛ばされずに存在する場合にのみ行われるように制御する。補間および補正の対象となる読み飛ばされた画素であるか否かは、上述したように結果保持回路36の履歴を参照してもよく、読み飛ばされたことを示すデータ(ハイバリューなど)により判断してもよい。
【0048】
補間補正回路41は、隣接する2画素を参照して画素のデータを生成(補完)する画素補間回路42と、平滑化フィルタにより補完された画素(補完画素)と読み出された画素(実画素)との差異を目立たなくして画質を向上させる画像補正回路43とを含む。画素補間回路42は、隣接する4画素を参照して補完画素のデータを生成してもよい。
【0049】
図5に、補間方法と画素の読み飛ばしとの関係の幾つかの例を示している。
図5(a)の黒塗りのドット63cのように左右上下に連続しないように読み飛ばすと、読み飛ばされた画素63cのデータは上下左右の読み飛ばされなかった白抜きのドット(画素)63rのデータにより補間できる。
図5(b)のように上下に連続しないように読み飛ばすと、読み飛ばされた画素63cのデータは上下の読み飛ばされなかった画素63rのデータから補間できる。
図5(c)のように左右に読み飛ばすと、読み飛ばされた画素63cのデータは左右の読み飛ばされなかった画素63rのデータから補間できる。
【0050】
例えば、文字を含む画像をLCD3に表示する場合に、画素補間回路42により隣接上下の2画素参照により補完した場合、左右方向の1画素の線が消えてしまい、補完画素と実画素の画素値に大きな差異が生じる場合がある。LCD表示は、実画素と補完画素の重ね合わせ表示であるため、補完画素と実画素、周囲画素との輝度差を小さくすることで、補完画素と実画素の差異を目立たないようにすることができる。そのため、画像補正回路43においては、補完画素に対して平滑化フィルタを使用して平滑化処理をすることにより補完画素が目立ちにくくなる。
図6に、平滑化フィルタ49の一例を示す。
【0051】
本例の補間補正回路41の画素補間回路42は、表示データ63aに含まれる画素データのR、GおよびBのそれぞれの値を、周囲の2画素または4画素の値の平均値により生成する。画像補正回路43では画素データをRGB形式からYCbCr形式に変換してY値を平滑化し、その後、逆変換して周囲の画素との輝度差を縮小する。
【0052】
RGB形式からYCbCr形式への変換式の一例は以下の通りである。
Y = 0.256835938×R+0.50390625×G+0.098144531×B+16
Cb=−0.147949219×R−0.291015625×G+0.438964844×B+128
Cr= 0.438964844×R−0.368164063×G−0.070800781×B+128・・・(1)
YCbCr形式からRGB形式への変換式の一例は以下の通りである。
R=1.1640625×(Y−16)+1.596191406×(Cr−128)
G=1.1640625×(Y−16)−0.392089844×(Cb−128)−0.812988281×(Cr−128)
B=1.1640625×(Y−16)+2.017089844×(Cb−128)・・・(2)
【0053】
図7に、LCD制御回路10の処理の概要をフローチャートで示している。以下では、プリンタコントローラ5のメモリバスおよびCPUの周波数を100MHz(0.01μs周期)とし、入力ユニット30のメモリアクセス回路32は、1回のデータ読み出しで4画素(4クロック、1画素1クロック)の表示データ63aをメモリ6から取得するものとする。実際には、待ち時間TWが含まれるので、1回のデータ読み出しでは4クロック+待ち時間TWが消費される。
【0054】
ステップ71において、アクセス集中の有無を判断するタイミングになると、入力ユニット30の読み飛ばし判定回路34が読み飛ばしの設定が必要か否かを判断する。読み飛ばし判定回路34は、アクセス集中の有無を第1の時間T1(本例では1μs)の間に実行した読み出しの平均待ち時間TWA1と、第2の時間T2(本例では2μs)の間に実行した読み出しの平均待ち時間TWA2の2段階で判断する。したがって、読み飛ばし判定回路34は、ステップ71において、1μs毎にアクセス集中の有無を判断する。ステップ72において、第1の機能34aが直近の第1の時間T1(1μs)の平均待ち時間TWA1を算出し、第1の値、本例では8クロック以上であれば、突発的なアクセス集中があるとし、ステップ74において、その後の第1の時間T1と同じ間、すなわち、1μs間は比較的大きな比率、たとえば50%の比率で読み飛ばし条件34fをセットする。この際、第3の機能34cおよび第4の機能34dも協働して上述した条件を満足するような読み飛ばし条件34fをセットする。
【0055】
また、ステップ73において、第2の機能34bが第2の時間(2μs)毎の平均待ち時間TWA2を算出し、平均待ち時間TWA2が第2の値、本例では第1の値と同じく8クロック以上であれば、解消することが好ましい程度のアクセス集中があると判断する。さらに、第2の機能34bが、平均待ち時間TWA2の増減に周期性がある場合は、ステップ74において、その周期的なアクセス集中に合わせたタイミングで読み飛ばしするように、読み飛ばし条件34fをセットする。この場合も、第3の機能34cおよび第4の機能34dも協働して上述した条件を満足するような読み飛ばし条件34fをセットする。
【0056】
一方、ステップ72および73において、解消することが好ましい程度のアクセス集中が見つからない場合は、読み飛ばし判定回路34は、ステップ75において、読み飛ばし条件34fをリセットする。
【0057】
ステップ76において、表示データ63aを読み出すタイミングになると、入力ユニットの読み出し制御回路35が、表示データ63aに含まれる画素データを、メモリアクセス回路32を用いて調停回路15を介してメモリ6から読み出してバッファ50に格納する。待ち時間TWの有無に依存するが、メモリアクセス回路32は、1μsの間に5〜10回程度、周期的にメモリ6にアクセスして画素データを取得する。この際、ステップ77において、読み飛ばし条件がセットされていれば、読み出し制御回路35は、読み飛ばしの要否を判断する。読み飛ばし条件34fがセットされており、読み飛ばしが必要であれば、読み出し制御回路35は、ステップ81において、1/2または1/3などの頻度でメモリアクセス回路32の周期的なメモリアクセスをマスクし、バッファ50に4画素分の「FF」データを書き込む。読み飛ばしの必要がなければ、読み出し制御回路35は、ステップ78において、メモリアクセス回路32に周期的な読み出しを実行させ、ステップ79において読み出された画素データをバッファ50に格納する。ステップ80において、待ち時間履歴保持回路33は、アクセス待ち時間TWを記録する。
【0058】
ステップ82において、表示データ63aを出力するタイミングになると、出力ユニット40がバッファ50から読み出してLCD3に供給する。たとえば、バッファ50に1ライン分の表示データ63aが格納されると、ステップ86において、出力ユニット40はバッファ50から1ライン分の表示データ63aをLCD3に供給する。この際、ステップ83において読み飛ばした画素があれば、ステップ84において、補間補正回路41の画素補間回路42が読み飛ばされた画素のデータを補間し、ステップ85において、画像補正回路43が、さらに、補完された画素の周囲のデータを含めて補正する。
【0059】
図8に、読み飛ばし判定回路34の第1の機能34aにより読み飛ばし条件34fがセットされる様子を示している。第1の機能34aは、履歴データ33dに保存されている直近の第1の時間T1(本例では1μs)の平均待ち時間TWA1が第1の値(本例では8クロック)以上(図中のH)であれば、第1の時間T1だけ読み飛ばし条件34fを1/2にセットする。また、第1の機能34aは、履歴データ33dに保存されている直近の第1の時間T1の平均待ち時間TWA1が第1の値未満(図中のL)であれば、読み飛ばし条件34fをリセット(図中では0)する。したがって、第1の機能34aは、時刻t1に平均待ち時間TWA1が「H」になれば読み飛ばし条件34fを「1/2」にセットする。
【0060】
時刻t2に、平均待ち時間TWA1が「L」になると、第1の機能34aは読み飛ばし条件34fを「0」にリセットする。時刻t3に再び平均待ち時間TWA1が「H」になれば、第1の機能34aは読み飛ばし条件34fを「1/2」にセットし、時刻t4〜t6においても読み飛ばし条件34fを維持する。そして、時刻t7に平均待ち時間TWA1が「L」になると、第1の機能34aは読み飛ばし条件34fを「0」にリセットする。
【0061】
この例では、時刻t3〜t7の4μsの間、LCD制御回路10は、通常のレートの半分でアクセスを行う。通常は、8クロック程度のインターバルを開けて周期的に画素データを読み出すと33回程度(400クロック/(4+8)クロック)のアクセスが発生する。読み飛ばし条件34fを「1/2」にセットすることにより、読み出し制御回路35から12クロックのマスク信号(WAIT信号)Sが出力され、4μsの間のアクセス回数は16回程度に削減される。したがって、メモリ6に対するアクセスの集中を緩和できる。一方、LCD制御回路10においては、画素データの一部を読み飛ばすが、全体としては所定のタイミングで表示データ63aをメモリ6から読み出すことができる。また、読み飛ばした画素のデータは、出力ユニット40において補完することができる。
【0062】
図9に、読み飛ばし判定回路34の第2の機能34bにより読み飛ばし条件34fがセットされる様子を示している。第2の機能34bは、履歴データ33dに保存されている直近の第3の時間T3(本例では1000μs)の中で、平均待ち時間TWA2が第1の値(本例では8クロック)以上(図中のM)の状態が周期的に発生しているか否かを判断する。時刻t19に、第2の機能34bが第3の時間T3の履歴データ33dを解析したところ、時刻t11まで、さらに、時刻t12〜t13、時刻t14〜t15、時刻t16〜t17、時刻t18〜t19の各200μsの間は、第2の時間T2(本例では2μs)の平均待ち時間TWA2が3〜7クロックであり、時刻t11〜t12、時刻t13〜t14、時刻t15〜t16、時刻t17〜t18の各10μsの間は、平均待ち時間TWA2が8〜15クロックであった。したがって、履歴データ33dの中に、平均待ち時間TWA2が第1の値以上の期間が200μs置きに10μsの期間で4回発生しており、第2の機能34bは、この解析結果に基づいて周期的にメモリアクセスが集中する期間が発生していると判断する。
【0063】
そこで、第2の機能34bは、次のアクセス集中が始まる時刻t19から10μs後の時刻t20までの間、読み飛ばし条件34fを「1/2」にセットしてメモリアクセスの集中を緩和する。時刻t21においても、直近の第3の時間T3の間に平均待ち時間TWA2が第1の値以上の期間が200μs置きに10μsの期間で4回発生している。このため、第2の機能34bは、再び、次のアクセス集中が始まる時刻t21から10μs後の時刻t22までの間、読み飛ばし条件34fを「1/2」にセットしてメモリアクセスの集中を緩和する。
【0064】
図10に、読み飛ばし判定回路34の第1の機能34aおよび第2の機能34bによりそれぞれ読み飛ばし条件34fがセットされる様子を示している。
図9に示した条件に加えて、時刻t16〜t17の間の時刻t31〜時刻t33の間(たとえば20μs)、1μs毎の平均待ち時間TWA1が8クロック以上になると、第1の機能34aはそれに応じて時刻t31から1μs後の時刻t32に読み飛ばし条件34fを「1/2」にセットする。また、第1の機能34aは、時刻t33から1μs後の時刻t34に読み飛ばし条件34fを「0」にリセットする。
【0065】
図11にメモリ6に格納された表示データ63aの一例を示し、
図12に表示データ63aの一部の画素のデータを読み飛ばした後、補間および補正する様子を示している。なお、これらの図には、画素データをYCbCrデータに変換したY値のみを模式的に表している。
【0066】
図12(a)は、
図11に示す表示データ63aの内、(FF)で示した画素が読み飛ばされた状態を示している。
図12(b)は、読み飛ばされた画素のデータが、出力ユニット40の補間補正回路41の画素補間回路42により、読み飛ばされた画素(補完画素)のデータ63cが、読み飛ばされなかった上下の画素(実画素)のデータ63rから補間された状態を示している。
【0067】
図13(a)に
図12(b)の画像と
図11の画像とを重ね合わせた状態を示している。この状態は、LCD3に読み飛ばした画素データを含む表示データ63aを表示した状態を模式的に示している。部分的に読み飛ばされた表示データ63aを用いてLCD3に画像を表示すると多少の劣化は現れるが、文字は十分に判別できる程度の画像が表示される。実際には、数10Hzのフレームレートで次々と画像が書き換えられるので、
図13(a)よりも数段高い画質で画像が表示される。
【0068】
図12(c)は、さらに、画像補正回路43により、
図6に示した平滑化フィルタを用いて補完画素のデータ63cを周囲の画素のデータから補正した状態を示している。また、
図13(b)は、
図12(c)の画像と
図11の画像とを重ね合わせた状態を示している。この状態は、LCD3に読み飛ばした画素データを含む表示データ63aを表示した状態を模式的に示している。
図13(a)に比較すると、LCD3に表示される画像の画質はかなり改善され、文字は十分にはっきりと表示される。
【0069】
このように、表示データ63aの一部の画素のデータを一時的に読み飛ばしても、読み飛ばされなかった画素のデータ63rを用いることにより読み飛ばされた画素のデータ63cを補完できる。さらに、LCD3の画像は所定のフレームレートでリフレッシュされるので、読み飛ばされた画素による画像の劣化は殆ど目立たず、画像の劣化を抑制しながらメモリ6に対するアクセスの集中を緩和できる。
【0070】
したがって、このプリンタコントローラ5およびプリンタ1においては、印刷機構2により印刷する際にプリンタ制御回路11とメモリ6とのアクセス頻度が高くなったときに、LCD制御回路10のアクセス集中を緩和することによりメモリ6に対するピーク時のアクセス頻度を低減できる。このため、リアルタイム性の高い印刷制御に影響を与えることなく印刷を実行できる。また、タッチスクリーン7の処理や、USBインタフェース制御回路14の処理によりメモリ6へのアクセス頻度が高くなったときも同様である。そして、読み飛ばした画素のデータを補完することにより、プリンタ制御回路11のメモリ6に対するアクセス頻度を低下させても画像の劣化を抑制できる。
【0071】
したがって、このプリンタコントローラ5においては、LCD制御回路10の内部に専用の内蔵フレームバッファを設けたり、プリンタコントローラ(LSI)5の外部に専用の外付けフレームバッファメモリを用意するなどのハードコストアップを招く方法を採用せずに、LCD3へデータ送信するためのメモリアクセスの頻度を低減できる。また、プリンタ制御回路11や、その他の制御回路によりメモリ6へのアクセスが集中する頻度は、それほど高くなく、殆どの時間は、LCD制御回路10が読み飛ばしすることなく表示データ63aを取得できる。このため、実際にLCD3に表示される画像の品質が多少でも劣化する時間は非常に短く、ユーザインタフェースとしての性能に殆ど影響を与えない。
【0072】
なお、上記で説明した平滑化フィルタ、アクセス集中の判断方法および周期的なアクセス集中の判断方法は例示である。たとえば、平滑化フィルタは4×4画素あるいはそれ以上であってもよく、平均待ち時間を求める時間は1μsあるいは2μsに限定されない。また、周期的な待ち時間の発生は1000μsよりも短い時間あるいは長い時間で判断してもよく、周期性の有無を3回以下あるいは5回以上で判断してもよい。
【0073】
さらに、本実施形態においては、表示ユニットの一例としてLCDを用いて説明をおこなったが、リフレッシュを必要とする表示ユニットであれば、例えば、有機ELディスプレイ、プラズマディスプレイ等の他の表示ユニットであってもよい。また、プリンタに限らず、表示ユニットを有する他のシステムにおいても本発明を適用できる。