(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-03-11
(45)【発行日】2025-03-19
(54)【発明の名称】情報処理システム、コントローラ、および、制御方法
(51)【国際特許分類】
G09G 3/34 20060101AFI20250312BHJP
G09G 3/20 20060101ALI20250312BHJP
H04N 5/66 20060101ALI20250312BHJP
【FI】
G09G3/34 C
G09G3/20 641P
G09G3/20 612U
G09G3/20 660W
G09G3/20 641H
G09G3/20 621D
G09G3/20 611A
G09G3/20 670K
G09G3/20 650M
H04N5/66 Z
(21)【出願番号】P 2024066942
(22)【出願日】2024-04-17
【審査請求日】2024-04-17
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100161207
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】野村 良太
(72)【発明者】
【氏名】鈴木 義従
【審査官】薄井 義明
(56)【参考文献】
【文献】特開2015-212749(JP,A)
【文献】特開2000-284755(JP,A)
【文献】特表2023-539036(JP,A)
【文献】米国特許第09245485(US,B1)
【文献】韓国公開特許第10-2005-0052194(KR,A)
【文献】特開2015-152608(JP,A)
【文献】特開2013-205731(JP,A)
【文献】特開2015-064421(JP,A)
【文献】特開2015-057637(JP,A)
【文献】特表2018-508820(JP,A)
【文献】米国特許出願公開第2015/0138122(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09G 3/20-34
H04N 5/66
(57)【特許請求の範囲】
【請求項1】
ホストシステムとディスプレイユニットを備え、
前記ディスプレイユニットは、
コントローラと電気泳動ディスプレイパネルを備え、
前記コントローラが、
画素ごとに階調を示す量子化値に基づいて前記電気泳動ディスプレイパネルに配置された当該画素を駆動する
情報処理システムであって、
前記ホストシステムは、
前記ディスプレイユニットに表示させる表示画像
からエッジを検出し、
前記エッジに囲まれる画像領域を検出し、
現時点までの所定期間内の階調分布の変動が一定頻度以上生じる前記画像領域を動的領域
として特定し、
前記コントローラは、
前記動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、
前
記動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、
前記動的領域外に前記量子化誤差を拡散しない、
情報処理システム。
【請求項2】
前記ホストシステムは、
前記表示画像に含まれる動画像の表示領域を
表示内容が動的に変動する動的領域として定める
請求項1に記載の情報処理システム。
【請求項3】
前記ホストシステムは、
前記表示画像に含まれ、変移するアプリケーションの画像の表示領域を
表示内容が動的に変動する動的領域と定める
請求項1に記載の情報処理システム。
【請求項4】
ホストシステムとディスプレイユニットを備え、
前記ディスプレイユニットは、
コントローラと電気泳動ディスプレイパネルを備え、
前記コントローラが、
画素ごとに階調を示す量子化値に基づいて前記電気泳動ディスプレイパネルに配置された当該画素を駆動する
情報処理システムにおける制御方法であって、
前記ホストシステムは、
前記ディスプレイユニットに表示させる表示画像
からエッジを検出し、
前記エッジに囲まれる画像領域を検出し、
現時点までの所定期間内の階調分布の変動が一定頻度以上生じる前記画像領域を動的領域
として特定し、
前記コントローラは、
前記動的領域に含まれる画素ごとの階調値を、非動的領域に含まれる画素よりも低いビット深度で量子化して量子化値を演算し、
前記動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、
前
記動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、
前記動的領域外に前記量子化誤差を拡散しない、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、情報処理システム、コントローラ、および、制御方法、例えば、量子化誤差の拡散に関する。
【背景技術】
【0002】
電気泳動ディスプレイ(EPD:Electro Phoretic Display)は、静止したコンテンツを表示している間は電力を消費しないため、少ない消費電力で各種の情報を表示することができる。EPDは、テキストを主とする情報の表示に用いられることがある。例えば、特許文献1には、電子書籍端末、電子カルテ、電子新聞などへの応用について記載されている。EPDは、電子ペーパーディスプレイ(Electric Paper Display)、電子インクディスプレイ、などとも呼ばれる。
【0003】
しかしながら、EPDは他種ディスプレイ装置、例えば、液晶ディスプレイ、有機発光ダイオードディスプレイなどよりも表示変更の応答性が低い。特に多ビットで階調を表現する場合は変更の遅延が顕著になる傾向がある。典型的なEPDではグラデーションを2段階で表示する1ビット階調時の応答は約100msecであるが、グラデーションを16段階で表示する4ビット階調時の応答は500msecに及ぶ。EPDでは一般に階調ビット深度が大きいほどなめらかな階調で画像を表示できる反面、応答性が低くなる。
【0004】
1ビット画像では、ディザリング(Dithering)を行って画素ごとの量子化誤差を、それぞれ周囲の画素に拡散することにより、原画像の輝度が高い部位ほど明画素の比率を多くすることができる。ディザリングにより、低ビット変換時の量子化エラー、ディスプレイ上では階調が元データから大幅に変動する現象(トーンジャンプ)が視覚上緩和され、1ビット画像においても多ビットの階調がマクロ的に、かつ擬似的に表現可能となる。量子化誤差の拡散は、画素ごとに行列演算を実行して実現される。拡散先の画素は、演算対象として注目する注目画素より行方向および列方向に隣接する画素を含む。また、量子化誤差の拡散では、注目画素を未処理の隣接画素に順次変更して、行列演算が繰り返される。そのため、1つの対象画素で生じた量子化誤差が、拡散先の方向に累積しながら伝搬する。量子化誤差の拡散は、量子化された階調の変化をもたらすためディスプレイパネルにおける画面の書き換えを必要とする。このディザリングの性質のため、書き換えが必要となる範囲は実際に階調の変化が起こった画素にとどまらず、量子化誤差の伝搬先となる広範囲の画素に及ぶ。他方、画面書き換え後に量子化誤差を伝搬させないと、階調を書き換えた画素と書き換えない画素とで量子化誤差の分散を実行するタイミングが異なる。そのため、階調が書き換わった領域において残像が恒常的に残り、ひいてはユーザに違和感を与えてしまうことがある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
他方、EPDは、書き換えの際に電力を消費する。書き換えの際の消費電力は、他種のディスプレイ装置、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機発光ダイオード(OLED:Organic Light Emitting diode)ディスプレイの消費電力よりも大きくなることすらある。また、EPDには書き換え寿命が存在する。書き換え寿命は、典型的には、1000万回程度である。10FPS(Frame per Second)で継続して動作させることを仮定すると、使用開始から約278時間で寿命に達する。従って、寿命に達するまでの期間を延長することが期待される。
【課題を解決するための手段】
【0007】
本願は上記の課題を解決するためになされたものであり、本願の一態様に係る情報処理システムは、ホストシステムとディスプレイユニットを備え、前記ディスプレイユニットは、コントローラと電気泳動ディスプレイパネルを備え、前記コントローラが、画素ごとに階調を示す量子化値に基づいて前記電気泳動ディスプレイパネルに配置された当該画素を駆動する情報処理システムであって、前記ホストシステムは、前記ディスプレイユニットに表示させる表示画像の要素ごとに、表示内容が動的に変動する動的領域を特定し、前記コントローラは、前記動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、前記要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、前記動的領域外に前記量子化誤差を拡散しない。
【0008】
上記の情報処理システムにおいて、前記ホストシステムは、前記表示画像に含まれる動画像の表示領域を前記動的領域として定めてもよい。
【0009】
上記の情報処理システムにおいて、前記ホストシステムは、前記表示画像に含まれ、変移するアプリケーションの画像の表示領域を前記動的領域と定めてもよい。
【0010】
上記の情報処理システムにおいて、前記ホストシステムは、前記表示画像からエッジを検出し、前記エッジに囲まれ、表示内容が動的に変動する領域を前記動的領域と定めてもよい。
【0011】
本願の第2態様に係るコントローラは、画素ごとに階調を示す量子化値に基づいて電気泳動ディスプレイパネルに配置された画素を駆動するコントローラであって、ホストシステムから通知される表示画像の要素ごとの動的領域に含まれる画素ごとの階調値を、非動的領域に含まれる画素よりも低いビット深度で量子化して量子化値を演算し、前記要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、前記動的領域外に当該画素の量子化誤差を拡散しない。
【0012】
本願の第3態様に係る制御方法は、ホストシステムとディスプレイユニットを備え、前記ディスプレイユニットは、コントローラと電気泳動ディスプレイパネルを備え、前記コントローラが、画素ごとに階調を示す量子化値に基づいて前記電気泳動ディスプレイパネルに配置された当該画素を駆動する情報処理システムにおける制御方法であって、前記ホストシステムは、前記ディスプレイユニットに表示させる表示画像の要素ごとに、表示内容が動的に変動する動的領域を特定し、前記コントローラは、前記動的領域に含まれる画素ごとの階調値を、非動的領域に含まれる画素よりも低いビット深度で量子化して量子化値を演算し、前記動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、前記要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、前記動的領域外に前記量子化誤差を拡散しない。
【発明の効果】
【0013】
本願の実施形態によれば、ディザリングによる不必要なディスプレイパネルの書き換えを減らして寿命に達するまでの期間を延ばすことができる。また、電力消費を伴う書き換えを減らすことで、消費電力を低減することができる。
【図面の簡単な説明】
【0014】
【
図1】本実施形態に係る情報処理システムのハードウェア構成例を示す概略ブロック図である。
【
図2】本実施形態に係る情報処理システムの機能構成例を示す概略ブロック図である。
【
図3】ディスプレイユニットへの画像の第1表示例を示す図である。
【
図4】ディスプレイユニットへの画像の第2表示例を示す図である。
【
図5】ディスプレイユニットへの画像の第3表示例を示す図である。
【
図6】ディザリングに係る行列の第1例を示す図である。
【
図7】ディザリングに係る行列の第2例を示す図である。
【
図8】ディザリングに係る行列の第3例を示す図である。
【
図11】本実施形態に係るディスプレイユニットの駆動処理を例示する図である。処理を例示するフローチャートである。
【発明を実施するための形態】
【0015】
以下、本願の実施形態について、図面を参照して説明する。まず、本願の実施形態に係る情報処理システムS1の構成例について説明する。
図1は、本実施形態に係る情報処理システムS1のハードウェア構成例を示す概略ブロック図である。
【0016】
情報処理システムS1は、ホストシステム10と、ディスプレイユニット30と、入力デバイス40と、を備える。情報処理システムS1は、ホストシステム10、ディスプレイユニット30および入力デバイス40をいずれも有する単一の電子機器として実現されてもよい。また、情報処理システムS1は、ホストシステム10と、ディスプレイユニット30ならびに入力デバイス40の一方または両方とが別個に構成されてもよい。情報処理システムS1は、パーソナルコンピュータ、タブレット端末、携帯電話機、電子書籍リーダ、など、いずれの種別の情報処理装置として実現されてもよい。ホストシステム10は、各種のプログラムに従って表示画像を示す表示データを取得し、取得した表示データをディスプレイユニット30に出力する。ホストシステム10は、入力デバイス40から入力される操作信号を監視し、入力される操作信号を参照して動作することがある。なお、本願では、入力デバイス40から入力される操作信号に基づいて動作することを、「操作に応じて動作する」などと呼ぶことがある。
【0017】
ディスプレイユニット30は、ホストシステム10から入力される表示データに基づいて表示画像を表示するEPD(Electric Paper Display(電子ペーパーディスプレイ)装置である。EPD装置は、電気泳動方式を採用した画素を有する電気泳動ディスプレイ(Electro Phoretic Display、電子泳動ディスプレイ)装置である。表示画像もしくは単に画像とは、画面に表われる表示内容、即ち、明るさや色の空間変化を意味する。表示画像には、模様、図形、記号、文字、または、これらの一部もしくは全部の組み合わせが要素として含まれる。ディスプレイユニット30は、一定の配置間隔で画素が配置された画面を有し、ホストシステム10から入力される表示データに基づく表示画像を表示媒体に表示させる。ディスプレイユニット30は、予め定めた複数種類の駆動モードのいずれかに従って表示画像を表示可能とする。
【0018】
駆動モードにより、画素ごとの階調を表す階調値のビット深度が異なる。階調は、その画素における明るさ、即ち、濃度もしくは濃淡に相当する。階調値は、画素値または信号値とも呼ばれる。特に、カラー表示に係る階調値は、色信号値とも呼ばれる。ビット深度は、階調値を表現するビット数に相当する。ビット深度が大きいほど、階調値の値域が広いが、表現される階調の範囲は共通となる。即ち、ビット深度に関わらず、階調値の最大値、最小値に対応する階調は、それぞれ共通となる。ビット深度が大きいほど隣接する階調値間の階調の差(階調幅とも呼ばれる)が小さくなる。ビット深度が1ビットである場合には、最大値(例えば、1)に対応する第1階調(例えば、モノクロの場合、黒)と最小値(例えば、0)に対応する(例えば、白)に対応する2通りの階調しか表現されない。但し、ビット深度が大きいほど多段階の階調を表現できる反面、画素の応答性が低くなる。2ビットよりも大きいビット深度で画素を駆動する場合には、所定のリフレッシュ周期ごとにリフレッシュ処理を要する。
【0019】
入力デバイス40は、ユーザの操作を受け付け可能とし、受け付けた操作に応じて操作信号を生成する。入力デバイス40は、生成した操作信号をホストシステム10に出力する。入力デバイス40として、例えば、タッチセンサ、マウス、キーボード、ジョイスティックなどの汎用のデバイスが用いられてもよいし、ボタン、つまみ、ダイヤル、などの専用のデバイスが用いられてもよい。入力デバイス40として適用されるタッチセンサは、ディスプレイユニット30のEPDパネル34と一体化し、タッチパネルとして構成されてもよい。
【0020】
本実施形態に係るホストシステム10は、ディスプレイユニット30に表示させる表示画像の各要素について、定常的に時間経過に従って表示内容を構成する像が変動する領域を動的領域として特定する。この動的領域は、定常動的領域と呼ばれることもある。典型的な表示画像の要素には、例えば、アプリケーションプログラム(本願では、「アプリケーション」または「アプリ」と呼ぶことがある)を実行して取得される画像(本願では、「アプリケーション画像」と呼ぶことがある)、OS(Operating System)の挙動を構成する要素画像、各種の動画像、が典型的である。OSの挙動を構成する要素画像には、例えば、ウィンドウ、アイコン、などの画面部品が含まれる。画面部品は、UI(User Interface)コンポーネントとも呼ばれる。一般に像は、異なる位置に隣接して配列された画素ごとの階調値の分布、即ち、階調分布で表現される。像の変動は、フレーム間の階調分布の変化で表現される。ホストシステム10は、表示画像と、その要素と、要素ごとに表示内容が動的に変動する動的領域をディスプレイユニット30に通知する。
【0021】
ディスプレイユニット30は、ホストシステム10から通知された動的領域において階調値を1ビットで量子化し、それ以外の領域である非動的領域では階調値を2ビット以上のビット深度で量子化する。ディスプレイユニット30は、画素ごとに量子化により得られる量子化値に対応する階調をもって表示画像を表示する。但し、階調値を1ビットで量子化する際、ディスプレイユニット30は、表示画素の要素ごとにディザリング処理を実行する。ここで、ディスプレイユニット30は、その要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された未処理の他の画素に拡散する。ディスプレイユニット30は、拡散先となる他の画素の量子化値を更新する。但し、ディスプレイユニット30は、拡散先となる他の画素が、その要素の動的領域外に配置される他の画素に対しては量子化誤差を拡散しない。よって、動的領域外には量子化誤差が伝搬しないため、量子化値の更新に伴う書き換えが生じない。
【0022】
次に、情報処理システムS1のハードウェア構成例について説明する。
ホストシステム10は、プロセッサ12と、メインメモリ14と、チップセット20と、補助記憶媒体22と、を備える。ホストシステム10は、情報処理システムS1全体の機能を制御する。
【0023】
プロセッサ12は、ホストシステム10を備える装置全体の機能を制御する。プロセッサ12として、例えば、1個以上のCPU(Central Processing Unit)が適用される。プロセッサ12は、所定のプログラムを実行し、メインメモリ14、チップセット20、補助記憶媒体22、その他のハードウェアの一部または全部と協働し、ホストシステム10の機能を奏する。
なお、本願では、プロセッサ12、または、その他のハードウェアがプログラムに記述された指令で指示される処理を実行することを、「プログラムを実行する」、「プログラムの実行」などと呼ぶことがある。
【0024】
メインメモリ14は、プロセッサ12の作業領域、即ち、実行されるプログラム、各種設定データの読み込み領域、プログラムの実行により取得した処理データの書き込み領域として利用される書き込み可能メモリである。メインメモリ14は、例えば、複数個のDRAM(Dynamic Random Access Memory)チップを含んで構成される。実行されるプログラムには、OS(Operating System、オペレーティングシステム)、周辺機器等を制御するための各種デバイスドライバ、各種サービス/ユーティリティ、アプリケーションプログラム(本願では、「アプリ」と呼ぶことがある)、などがある。
プロセッサ12とメインメモリ14は、ホストシステム10をなす最小限のシステムデバイスとして機能する。ホストシステム10は、ハードウェアとしてシステムデバイスと、OS、スケジュール・タスクなどのソフトウェアと、を含んで構成される。
【0025】
チップセット20は、1個または複数のコントローラを備え、ディスプレイユニット30をはじめ、他のデバイスと各種のデータを入出力できるように接続可能とする。チップセット20は、PCH(Platform Controller Hub)とも呼ばれる。チップセット20は、例えば、USB(Universal Serial Bus)、シリアルATA(Advanced Technology Attachment)、SPI(Serial Peripheral Interface)バス、PCI(Peripheral Component Interconnect)バス、PCI-Expressバス、および、LPC(Low Pin Count)などのバスコントローラのいずれか1個または複数個の組み合わせを有する。
【0026】
補助記憶媒体22には、各種のプログラムとデータが記憶される。各種のプログラムには、例えば、ファームウェア、デバイスドライバ、サービス/ユーティリティ、アプリ、などが含まれる。これらのプログラムは、プロセッサ12により実行される。記憶されるデータには、プロセッサ12において処理対象となるデータ、処理により生成もしくは入力されるデータが含まれる。補助記憶媒体22は、フラッシュメモリなどの不揮発性メモリを含んで構成される。補助記憶媒体22として、SSD(Solid State Drive)、HDD(Hard Disk Drive)などが用いられてもよい。
【0027】
ディスプレイユニット30は、タイミングコントローラ32と、EPDパネル34とを備える。
タイミングコントローラ(T-CON:Timing Controller)32には、ホストシステム10から所定の入出力規格で規定された入出力方式に従って表示データが入力される。入出力方式として、例えば、DP(Display)規格、MIPI(Mobile Industry Processor Interface)規格などのいずれかで規定された方式が用いられてもよい。タイミングコントローラ32は、入力される表示データで示される画素ごとの階調値を駆動モードに対応するビット深度で量子化し、量子化値に変換する。タイミングコントローラ32は、変換した量子化値に対応する階調で個々の画素を表示させるため、画素ごとの階調を示す駆動信号をEPDパネル34の表示タイミングに合わせて生成する。タイミングコントローラ32は、生成した駆動信号をEPDパネル34に出力する。タイミングコントローラ32は、駆動モードによっては所定のリフレッシュレートでリフレッシュ処理を行い、階調値を所定の基準値(例えば、最小値)に定める。タイミングコントローラ32は、例えば、ASIC(Application Specific Integrated Circuit)やFGPA(Field Programmable Gate Array)などから構成される演算回路を備え、書き換え可能なプログラムを実行して、その機能を実現してもよいし、専用のハードウェアにより実現されてもよい。
【0028】
EPD(Electric Phoretic Display、電気泳動ディスプレイ)パネル34には、基板、複数の画素および駆動回路を有する。駆動回路は、タイミングコントローラ32から入力される駆動信号で指示されるタイミングに対応する画素に対し指示される階調に対応する電圧を印加する。駆動回路は、例えば、TTL(Transistor-Transistor Logic)回路を備える。基板の表面には、複数の画素が周期的に二次元配置される。個々の画素は、駆動回路から印加される電圧に応じた階調を表現する。個々の画素は、1対の電極を有し、溶液を挟んで保持して構成される。溶液には顔料からなる帯電粒子が浮遊する。帯電粒子は、自身と極性が異なる電極に向けて、印加される電圧に応じて移動する。この移動が階調の変化をもたらす。
【0029】
次に、情報処理システムS1の機能構成例について説明する。
図2は、本実施形態に係る情報処理システムS1の機能構成例を示す概略ブロック図である。
ホストシステム10は、OS処理部102と、アプリケーション実行部104と、モード設定部106と、グラフィック処理部108と、を備える。
【0030】
OS処理部102は、OS(Operating System)を実行して、その機能を提供する。本願では、OSその他のプログラムの実行とは、そのプログラムに記述された各種の指令で指示される処理を実行することを意味する。OSの機能には、演算処理、データの記憶などに用いられるリソースの管理、アプリケーションやユーザに対する標準的なインターフェースの提供などがある。OS処理部102は、例えば、アプリケーションの起動、起動後のアプリケーションの実行状態の監視、アプリケーション画像に対する表示領域の設定、表示画像の構成要素に対する優先制御、カーソル表示などを実行する。
【0031】
OS処理部102は、操作に応じて操作信号で指示されるアプリケーションを起動させ、その実行を開始する。OS処理部102は、使用環境が予め定めた起動条件を満たすアプリケーションに対して、その実行を開始させることがある。起動条件として、例えば、現時刻が予め定めた起動時刻に達したこと(起動タイマー)などが適用されてもよい。OS処理部102は、アプリケーションの実行状態を管理するとともに、アプリケーション画像を収容するウィンドウ(本願では、「アプリケーションウィンドウ」)と呼ぶことがある)に対する処理を実行する。
【0032】
OS処理部102は、操作に応じて、表示対象として注目するアプリケーションウィンドウの指定、アプリケーションウィンドウの大きさもしくは表示画像上の位置の変更、消去、再表示などを実行する。OS処理部102は、複数のアプリケーション画像のうち、後に表示が開始されたアプリケーション画像、または、後に操作されたアプリケーション画像ほど優先して表示させる。あるアプリケーション画像を優先して表示させる際、OS処理部102は、あるアプリケーション画像のうち、他のアプリケーション画像とで共有される共有領域において、あるアプリケーション画像における共有領域の内容を表示させ、他のアプリケーション画像における共有領域の内容を表示させずに、棄却することに相当する。
【0033】
OS処理部102は、OSで指示される処理として各種の画面表示を実行する。画面表示において各種の画面部品が用いられる。OS処理部102は、例えば、操作に応じて指示される表示画像上の位置にカーソルを表示させる。OS処理部102は、アプリケーション画像の領域内の位置が操作に応じて指示される場合には、その位置に対応するアプリケーションの機能(例えば、ボタン押下による特定の機能のオン・オフ、など)を実行する。OS処理部102は、アプリケーション画像の領域以外の位置が操作に応じて指示される場合には、その位置に対応するOS固有もしくはOSに関連した他のソフトウェアの機能(例えば、ドラッグ操作によるデータファイルの移動、など)を実現する。OS処理部102は、OS固有もしくはOS関連機能により提供される要素画像と、その時点で実行中のアプリケーション画像を所定の優先度で重畳してディスプレイユニット30に表示させる表示画像を構成する。
【0034】
アプリケーション実行部104は、OS処理部102により起動が指示されたアプリケーションを実行する。アプリケーション実行部104は、アプリケーションの処理において、その機能として表示させる表示画像を構成する。例えば、動画再生アプリケーションによれば、再生が指示された動画をなす表示画像が構成される。構成された表示画像は、そのアプリケーションに対して割り当てられたアプリケーションウィンドウに収容される。
【0035】
モード設定部106は、ディスプレイユニット30に表示させる表示画像から、その要素ごとに動的領域を特定し、それ以外の領域である非動的領域と区分する。モード設定部106は、時刻が異なるフレームごとに表示画像における階調分布、もしくは、その変動要因となりうる情報の発生状況を監視する。モード設定部106は、表示画像のうち要素ごとの動的領域が占める部位を示す設定情報を含めて駆動コマンドを生成する。モード設定部106は、生成した駆動コマンドをディスプレイユニット30に出力する。これにより、動的領域に対して、非動的領域とは異なる駆動モードを用いて画像を表示させる。動的領域の判定方法の例については後述する。
【0036】
グラフィック処理部108は、ホストシステム10に接続されるディスプレイユニット30を認識する。グラフィック処理部108は、OS処理部102により構成された表示画像をフレームごとに示す表示データを生成する。1フレームの表示画像は、画素ごとの階調値で表現される。階調値のビット深度は、例えば、8~10ビットである。グラフィック処理部108は、生成した表示画像をディスプレイユニット30に出力し、その表示画像を表示させる。グラフィック処理部108の機能は、OSと同梱されたグラフィックスドライバを実行して実現されてもよいし、ディスプレイユニット30専用のデバイスドライバを実行して実現されてもよい。
【0037】
次に、タイミングコントローラ32の機能構成例について説明する。
タイミングコントローラ32は、量子化部322と、ディザリング部324と、駆動信号生成部326と、を備える。
【0038】
量子化部322は、フレームバッファ(図示せず)を有する。フレームバッファには、ホストシステム10から入力される表示データが一時的に保存され、新たな表示データが入力される都度、保存される表示データが新たな表示データに更新される。
量子化部322は、ホストシステム10から入力される駆動コマンドから設定情報を抽出し、抽出した設定情報に示される要素ごとの動的領域を特定し、動的領域以外の領域を非動的領域として特定する。量子化部322は、動的領域に対する駆動モードとして1ビットモードを設定する。1ビットモードは、階調値を1ビットで量子化して得られる量子化値をもって画素を駆動するモードである。量子化部322は、非動的領域に対して、2ビット以上のビット深度(例えば、4ビット)の駆動モードを設定する。
【0039】
量子化部322は、所定の読み出し周期ごとに動的領域、非動的領域それぞれに配置される各画素の階調値をフレームバッファから読み出す。読み出し周期は、ビット深度が小さいほど短くなるように設定されてもよい。
量子化部322は、各画素の階調値を、その画素が属する領域に対して設定したビット深度で量子化して量子化値に変換する。
量子化部322は、ビット深度を1ビットとする領域(以下の説明では、「1ビット領域」と呼ぶことがある)に属する画素ごとの量子化値を、変換前の階調値と、その領域に係る表示画像の要素を示す設定情報とともにディザリング部324に通知する。
【0040】
量子化部322は、ビット深度が2ビット以上である領域に対しては、その領域に属する画素ごとの量子化値を駆動信号生成部326に通知する。その領域に対しては、ディザリングを行わないためである。但し、量子化部322は、その領域内の画素に対しては、予め定めたリフレッシュ周期ごとにリフレッシュ処理を行う。リフレッシュ周期は、ビット深度が大きい駆動モードほど長くなるように設定されてもよい。量子化部322は、リフレッシュ処理において、画素ごとの量子化値を予め定めた基準値(例えば、最大階調もしくは最小階調に対応する量子化値)に設定し、その後、もとの量子化値に戻す。量子化部322は、量子化値が変更される都度、変更後の量子化値を駆動信号生成部326に通知する。
【0041】
ディザリング部324は、量子化部322において設定された1ビット領域においてディザリング(Dithering)を行って、表示データを量子化して生じる量子化誤差を空間的に分散させる。ディザリング部324は、量子化部322から通知される設定情報に基づいて表示画像の要素ごとに1ビット領域を特定する。ディザリング部324は、表示画像の要素ごとの1ビット領域における各画素について、量子化前の階調値と量子化値との差を量子化誤差として算出し、算出した量子化誤差をその周囲の未処理の画素に分散させる。
【0042】
量子化誤差を分散する際、各行各列に画素ごとに対応する係数を行列要素として有する分散行列を用いた行列演算が繰り返し実行される。行列演算によれば、演算対象となる対象画素の量子化誤差が未処理の分散先となる未処理の画素に分散行列で定期された係数に従って割り当てられ階調値に加算される。対象画素は1回の行列演算がなされるたびに未処理の隣接画素に変更されるため、未処理画素において量子化前の階調値ならびに、その階調値を量子化した量子化値は、自身が対象画素になるまで確定しない。
【0043】
本実施形態では、行列演算において、量子化誤差の分散先となる他の画素が、対象画素が属する表示画像の要素の動的領域の範囲外となる場合には、ディザリング部324は、当該他の画素への量子化誤差の分散を行わない。ディザリング部324は、1ビット領域の範囲内の各画素において最終的に得られた量子化値を採用し、もとの量子化値を新たに採用した量子化値に更新する。ディザリング部324は、更新した量子化値を含む各画素の量子化値を駆動信号生成部326に通知する。このようにして、ディザリング部324は、空間的に連接した一連の表示画像の要素に含まれる1ビット領域ごとに量子化誤差の分散が実行され、その領域の範囲外には量子化誤差は伝搬しない。
【0044】
駆動信号生成部326は、量子化部322またはディザリング部324から通知された各画素の量子化値に対応する電圧を有する駆動信号を生成する。駆動信号生成部326は、フレーム周期で画素ごとに異なるタイミングで、その画素に対して設定した電圧を有する駆動信号をEPDパネル34に出力する。EPDパネル34は、画素ごとに設定された電圧が印加され、印加された電圧に対応する階調で表示される。
【0045】
次に、ディスプレイユニット30への画像の表示例について説明する。
図3は、階調値のビット深度が8ビットである原画像を例示する。
図4は、
図3の原画像を、1ビットで量子化した量子化画像を例示する。
図5は、
図3の原画像に対してディザリングを行ってビット深度を1ビットとして表示された処理済画像を例示する。
図4に例示される量子化画像は、階調値を単純に1ビットで量子化して表現される。原画像において階調値が最大値と最小値に挟まれる中間値(例えば、8ビットの階調値に対して128)以上となる画素では、階調が最大となり黒で表される。原画像のうち階調が所定の中間値よりも小さい画素では、階調が最小となり白で表される。そのため、
図4に例示される量子化画像では、原画像における階調の漸進的な空間変化が失われ、原画像で表現されていた人物の表情が十分に表現されない。これに対し、
図5に例示される処理済画像は、階調値に対してディザリングを行って量子化誤差を拡散したうえで、1ビットで量子化して表現される。ディザリングによれば、階調値が大きい部位ほど、階調が最大値となる画素の密度が高く、階調値が小さい部位ほど階調が最小値となる画素の密度が低くなる。画像全体として階調分布が、階調値が最大値と最小値の一方となる画素の密度の空間分布により表現されるので、人物の表情が表現される。
【0046】
次に、ディザリングに係る行列演算について説明する。上記のように、行列演算によれば、処理対象となる対象画素に生じる量子化誤差が、その周囲の未処理の他の画素に分散される。本実施形態では、例えば、フロイド・スタインバーグ(Floyd-Steinberg)法、アトキンソン(Atkinson)法、最小平均誤差(minimized average error)法などのいずれの手法が採用されてもよい。フロイド・スタインバーグ法は、
図6に例示されるフロイド・スタインバーグ行列を用いる手法である。アトキンソン法は、
図7に例示されるアトキンソン行列を用いる手法である。最小平均誤差法は、
図8に例示される行列を用いる手法である。いずれの行列も、対象画素に生じた量子化誤差を対象画素に近接した未処理の他の画素に分散するために用いられる。
【0047】
例えば、
図6において、*印は、対象画素を示す。対象画素の左斜め下、真下、右斜め下、右のそれぞれに隣接する要素の要素値は、それぞれ対応する隣接画素への量子化誤差の分散に際し、その量子化誤差に乗じられる係数を示す。対象画素の左隣の行列要素では、表記が省略されているが、ゼロが設定される。このことは、対象画素の左隣の画素には量子化画素が分散されないことを示す。この左隣の画素は、処理済みの画素となる。
【0048】
ディザリング部324は、例えば、対象画素の量子化誤差に対してフロイド・スタインバーグ行列を作用する場合には、対象画素の左斜め下、真下、右斜め下、右のそれぞれに隣接する未処理の隣接画素に対して、それぞれ3/16、5/16、1/16、7/16を乗じて分散値を算出する。そして、ディザリング部324は、それぞれの隣接画素に対して、算出した分散値を加算することにより階調値を更新する。更新後の階調値が、その隣接画素が対象画素となるときに量子化される。
【0049】
ディザリングにおいては、起点となる対象画素は、動的領域の最上行の最左列に設定される。ディザリング部324は、対象画素を順次右隣に変更する。動的領域において右隣に未処理の画素が存在しない場合には、ディザリング部324は、対象画素を下隣の行の最左列の画素に変更する。このようにして、ディザリング部324は、対象画素を行ごとに左端から右端まで変更し、その後、下隣の行の左端に変更する。下隣の行に未処理の画素が存在しない場合には、ディザリング部324は、未処理の画素が存在しないと判定し、その動的領域に係る処理を終了する。そのため、量子化誤差は対象画素の移動に伴い更新されながら伝搬する。そして、量子化誤差の分散により分散先となる画素において量子化値が変更される。よって、量子化誤差の分散先の画素に制限を加えないと、
図9に例示されるように、対象画素psに生じた量子化誤差の影響が及ぶ範囲saは、対象画素psよりも斜め下よりも右下端の領域の全体に及ぶ。
【0050】
しかしながら、本実施形態では、量子化誤差の分散先の画素が同一の表示画像の要素に係る1ビット領域内の画素に限定される。また、一連のディザリング処理は、各要素の1個の1ビット領域を単位として実行される。そのため、ディザリングにより生じる量子化誤差は、個々の1ビット領域内に閉じる。
図10の例では、ps1、ps2のそれぞれを対象画素ps1、ps2とする量子化誤差の影響が及ぶ範囲sa1、sa2は、動的領域da1、da2の範囲内に含まれる。例えば、動的領域da1における量子化誤差の影響は、その動的領域da1の範囲外には及ばないので、その範囲外では動的領域da1における量子化値の変更に書き換えが生じない。よって、書き換えが生じる領域を制限することで、書き換えの繰り返しによる画素の劣化および消費電力の増加が抑制される。また、動的領域da1、da2それぞれの境界では、量子化誤差の分布が空間的に不連続となる。しかしながら、動的領域da1、da2は、その周囲とは異なる像を表す。このことは、それぞれの境界において階調が不連続となることを意味する。従って、動的領域da1、da2それぞれの境界において、量子化誤差が不連続となっても主観的な画質は低下しない。
【0051】
次に、表示画像の要素ごとに定常的に表示内容が動的に変動する動的領域を定める手法の具体例について説明する。動的領域を与える表示画像の要素として、例えば、動画像、アプリケーション画像を収容するアプリケーションウィンドウ、表示画面の一部をなすエッジで囲まれる画像領域などがある。
モード設定部106は、例えば、次の手順を実行して表示画像の要素をなす動画像の表示領域を特定することができる。モード設定部106には、予め所定のアプリケーションを示すアプリケーションリストを設定しておく。所定のアプリケーションとして、動画像の表示機能を示すアプリケーションが設定させておく。モード設定部106は、OS処理部102から通知されるアプリケーションの実行状況を監視し、実行中のアプリケーションを特定する。モード設定部106は、アプリケーションリストを参照し、特定した実行中のアプリケーションが所定のアプリケーションに該当するか否かを判定する。モード設定部106は、所定のアプリケーションに該当すると判定されたアプリケーションに係る画像の表示領域を監視中の実行状況から特定する。モード設定部106は、特定したアプリケーションの表示領域を、動的領域として判定する。
【0052】
モード設定部106は、次の手順を実行して、変移するアプリケーションウィンドウの表示領域を特定することができる。モード設定部106は、OS処理部102から通知されるアプリケーションの実行状況を所定の観測周期ごとに監視し、実行中のアプリケーションのそれぞれの表示領域を特定する。モード設定部106は、特定したアプリケーションの表示領域のうち、最新の観測周期までの間に直前の観測周期から表示領域の形状、大きさ、または、位置が変動した表示領域を検出する。表示領域が矩形のアプリケーションウィンドウで表される場合には、その表示領域の1つの頂点と、その頂点に対面する他の頂点の座標で特定できる。それらの座標は、操作に応じて入力デバイス40から入力される操作信号で指示されることがある。従って、モード設定部106は、2個の互いに対面する頂点のいずれ一方または両方が変更されるか否かにより、そのアプリケーションウィンドウに変移が生じたか否かを判定することができる。モード設定部106は、変移が生じたアプリケーションウィンドウの表示領域を、動的領域として判定する。
【0053】
モード設定部106は、次の手順を実行して、エッジで囲まれる画像領域を特定することができる。モード設定部106は、表示画像に対して公知のエッジ検出処理を実行してエッジを検出する。エッジは、階調の空間変化が、その周囲の部位よりも有意に大きい部位であって、幅よりも長さの方が大きくなるように空間的に隣接して構成された一連の領域である。モード設定部106は、表示画像のうち検出したエッジで囲まれる閉じた領域を画像領域の候補である候補領域として特定する。1フレームの表示画像には、1個または複数の候補領域が検出されうる。1個の候補領域を検出するとき、モード設定部106は、検出した候補領域を画像領域として特定する。複数の候補領域を検出するとき、モード設定部106は、他の候補領域を包含しない独立した1個の候補領域を1個の画像領域として特定する。モード設定部106は、包含関係を有する一群の複数個の候補領域に対しては、そのうち他の全ての候補領域を含む最大の候補領域を1個の画像領域として特定し、他の全ての候補領域を棄却する。
【0054】
そして、モード設定部106は、検出した個々の画像領域における階調分布の動的特性の有無により、動的領域に該当するか否かを判定する。モード設定部106は、例えば、その時点までの所定期間において階調分布の変動が一定の頻度以上生じる画像領域を、動的領域として定める。モード設定部106は、例えば、動的領域と判定した画像領域において、その時点までの所定期間までに階調分布が変動しない場合には、その画像領域を非動的領域と判定する。
【0055】
次に、本実施形態に係るディスプレイユニット30の駆動処理の例について説明する。
図11は、本実施形態に係るディスプレイユニット30の駆動処理を例示する図である。
(ステップS102)ホストシステム10のモード設定部106は、ディスプレイユニット30に表示させる表示画像の要素ごとに動的領域を特定する。
(ステップS104)モード設定部106は、特定した要素ごとの動的領域を示す設定情報をディスプレイユニット30のタイミングコントローラ32に通知する。
【0056】
(ステップS106)タイミングコントローラ32の量子化部322は、ホストシステム10から通知される設定情報に示される要素ごとの動的領域を特定する。量子化部322は、特定した動的領域に対する駆動モードを1ビットモードと定め、それ以外の領域である非動的領域に対する駆動モードをよりビット深度の大きい駆動モード(例えば、4ビットモード)と定める。
(ステップS108)量子化部322は、画素ごとに定めた駆動モードのビット深度で階調値を量子化し、量子化により得られる量子化値を駆動信号生成部326に通知する。ディザリング部324は、各要素の動的領域において、対象画素ごとに1ビットで量子化して得られる量子化誤差を当該動的領域内の他の未処理画素に拡散し、当該動的領域外に拡散しない。ディザリング部324は、量子化誤差の拡散により更新された量子化値を駆動信号生成部326に通知する。
(ステップS110)駆動信号生成部326は、通知された画素ごとの量子化値に対応する電圧で、EPDパネル34に配置された当該画素を駆動して、その量子化値に対応する階調で表示させる。その後、
図11の処理を終了する。
【0057】
以上に説明したように、本実施形態に係る情報処理システムS1は、ホストシステム10とディスプレイユニット30を備え、ディスプレイユニット30は、コントローラ(例えば、タイミングコントローラ32)と電気泳動ディスプレイパネル(例えば、EPDパネル34)を備える。コントローラは、画素ごとに階調を示す量子化値に基づいて電気泳動ディスプレイパネルに配置された当該画素を駆動する。ホストシステム10は、ディスプレイユニット30に表示させる表示画像の要素ごとに、表示内容が動的に変動する動的領域を特定し、コントローラは、特定した動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、表示画像の要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、当該動的領域外に前記量子化誤差を拡散しない。
この構成によれば、量子化誤差の拡散先が要素ごとの動的領域内の未処理の画素に限定され、動的領域外には拡散しない。量子化誤差の拡散による量子化値の更新が動的領域内に制限されるので、書き換えの頻度を低下させることができる。そのため、書き換えを減らすことで寿命に達するまでの期間を延ばすことができる。また、書き換えによって生ずる電力の消費を抑制することができるので、消費電力を低減することができる。
【0058】
また、本実施形態は、次のように実施されてもよい。
ホストシステム10は、表示画像に含まれる動画像の表示領域を表示画像の要素をなす動的領域として定めてもよい。
ホストシステム10は、表示画像に含まれ、変移するアプリケーションの画像の表示領域を表示画像の要素をなす動的領域と定めてもよい。
ホストシステム10は、表示画像からエッジを検出し、検出したエッジに囲まれ、表示内容が動的に変動する領域を表示画像の要素をなす動的領域と定めてもよい。
【0059】
画素ごとに階調を示す量子化値に基づいて電気泳動ディスプレイパネル(例えば、EPDパネル34)に配置された画素を駆動するコントローラ(例えば、タイミングコントローラ32)であって、ホストシステム10から通知される表示画像の要素ごとの動的領域に含まれる画素ごとの階調値を、非動的領域に含まれる画素よりも低いビット深度で量子化して量子化値を演算し、当該要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、動的領域外に当該画素の量子化誤差を拡散しない。
【0060】
ホストシステム10とディスプレイユニット30を備える情報処理システムS1における制御方法であって、ディスプレイユニットは、コントローラ(例えば、タイミングコントローラ32)と電気泳動ディスプレイパネル(例えば、EPDパネル34)を備え、コントローラは、画素ごとに階調を示す量子化値に基づいて電気泳動ディスプレイパネルに配置された当該画素を駆動する。ホストシステム10は、ディスプレイユニット30に表示させる表示画像の要素ごとに、表示内容が動的に変動する動的領域を特定し、コントローラは、特定した動的領域に含まれる画素ごとの階調値を、非動的領域に含まれる画素よりも低いビット深度で量子化して量子化値を演算し、動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、当該要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、動的領域外に前記量子化誤差を拡散しない。
【0061】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。上述の実施形態において説明した各構成は、任意に組み合わせることができる。
【符号の説明】
【0062】
S1…情報処理システム、10…ホストシステム、12…プロセッサ、14…メインメモリ、20…チップセット、22…補助記憶媒体、30…ディスプレイユニット、32…タイミングコントローラ、34…EPDパネル、40…入力デバイス、102…OS処理部、104…アプリケーション実行部、106…モード設定部、108…グラフィック処理部、322…量子化部、324…ディザリング部、326…駆動信号生成部
【要約】
【課題】ディザリングによるディスプレイパネルの書き換えを減らして寿命に達するまでの期間を延ばす。
【解決手段】 ディスプレイユニットは、コントローラと電気泳動ディスプレイパネルを備え、コントローラは、画素ごとに階調を示す量子化値に基づいて前記電気泳動ディスプレイパネルに配置された当該画素を駆動し、ホストシステムは、ディスプレイユニットに表示させる表示画像の要素ごとに、表示内容が動的に変動する動的領域を特定し、コントローラは、動的領域に含まれる画素ごとの階調値を、1ビットで量子化して量子化値を演算し、当該要素の動的領域内で画素ごとの量子化誤差を当該画素から所定範囲内に配置された他の画素に拡散して当該他の画素の量子化値を更新し、動的領域外に量子化誤差を拡散しない。
【選択図】
図2