(57)【要約】【課題】画質低下を軽減できる画像処理装置、画像処理方法、及びそれらを実装した画像表示システムを提供することを目的の一つとする。【解決手段】複数の画素を有する表示面を含む画像表示装置に入力される入力データに対して表示面を複数の領域に分割してなる複数の誤差拡散ブロックの各々に対して誤差拡散処理を施す画像処理装置であって、画素に対応する誤差値を記憶する記憶部と、複数の画素のうち一の画素を囲む画素のうちの少なくとも一つの画素に対応する誤差値及び当該誤差値に対応する画素における入力データの階調に応じた係数に基づいて、当該画素に対応する画素データを算出する画素データ算出部と、算出された画素データを量子化して量子化データを算出する量子化データ算出部と、算出された画素データと当該画素データの量子化によって得られた量子化データとの誤差値を当該画素に対応させて記憶部に記憶させる誤差値算出部とを備える。【選択図】図５
2019012922.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素を有する表示面を含む画像表示装置に入力される入力データに対して、前記表示面を複数の領域に分割してなる複数の誤差拡散ブロックの各々に対して誤差拡散処理を施す画像処理装置であって、
前記画素に対応する誤差値を記憶する記憶部と、
前記複数の画素のうち一の画素を囲む画素のうちの少なくとも一つの画素に対応する前記誤差値及び当該誤差値に対応する画素における前記入力データの階調に応じた係数に基づいて、当該画素に対応する画素データを算出する画素データ算出部と、
前記画素データ算出部によって算出された画素データを量子化して量子化データを算出する量子化データ算出部と、
前記画素データ算出部によって算出された画素データと、当該画素データの量子化によって得られた前記量子化データとの誤差値を、当該画素に対応させて前記記憶部に記憶させる誤差値算出部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記一の画素が所定の範囲内にあるか否かを判定する判定部をさらに備え、
前記画素データ算出部は、当該画素が所定の範囲内にあると判定された場合には、当該画素を囲む画素のうち第１画素に対応する前記誤差値を用いて前記画素データを算出し、当該画素が所定の範囲内にないと判定された場合には、前記第１画素に対応する前記誤差値を用いずに前記画素データを算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素データは、前記画素に対応する誤差値に前記係数を乗算した値と、前記一の画素に対応する入力データとを加算することにより、算出されることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記入力データの階調の範囲が複数の区間に分割され、前記区間ごとに前記画素データの算出に用いる前記係数が異なることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記区間は、２つであることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記区間は、３つ以上であることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記一の画素を囲む画素のうち前記画像表示装置に画像を表示するためのスキャン方向と同じ方向かつ直前にスキャンされた行に位置する画素に対応する前記係数は、前記区間ごとに異なる、ことを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記区間ごとに異なる前記係数のうち、少なくとも一つは０であることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記量子化してなる出力画素データを算出する出力画素データ算出部をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記量子化は、８ビットのデータ、または６ビットのデータを３ビットのデータに変換することを特徴とする請求項１に記載の画像処理装置。
【請求項１１】
複数の画素を有する表示面を含む画像表示装置に入力される入力データに対して、前記表示面を複数の領域に分割してなる複数の誤差拡散ブロックの各々に対して誤差拡散処理を施す画像処理方法であって、
前記画素に応じて誤差値を記憶部に記憶させ、
前記複数の画素のうち一の画素を囲む画素のうちの少なくとも一つの画素に対応する前記誤差値及び当該誤差値に対応する画素における前記入力データの階調に応じた係数に基づいて、当該画素に対応する画素データを算出し、
当該画素データを量子化してなる量子化データを算出し、
当該画素データと、当該画素データを量子化してなる量子化データとに基づいて誤差値を算出し、
前記誤差値を、当該画素に対応させて前記記憶部に記憶する
ことを特徴とする画像処理方法。
【請求項１２】
前記画素データの算出は、前記一の画素が所定の範囲内にあると判定された場合には、当該画素を囲む画素のうち第１画素に対応する前記誤差値を少なくとも用いて前記画素データを算出し、前記当該画素が所定の範囲内にないと判定された場合には、前記第１画素に対応する前記誤差値を用いずに前記画素データを算出することを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
前記一の画素に対応する画素データの算出は、前記誤差値に前記係数を乗算し、乗算された値と、前記当該画素に対応する入力データとを加算すること
であることを特徴とする請求項１１に記載の画像処理方法。
【請求項１４】
前記入力データの階調が複数の区間に分割され、前記区間ごとに前記誤差値に乗算される前記画素データの算出に用いる前記係数が異なることを特徴とする請求項１１に記載の画像処理方法。
【請求項１５】
前記区間は、２つであることを特徴とする請求項１４に記載の画像処理方法。
【請求項１６】
前記区間は、３つ以上であることを特徴とする請求項１４に記載の画像処理方法。
【請求項１７】
前記量子化は、８ビットのデータ、または６ビットのデータを３ビットのデータに変換することを特徴とする請求項１１に記載の画像処理方法。
【請求項１８】
請求項１に記載の画像処理装置と、複数の画素を有する表示面を含む画像表示装置とを有し、
前記画像処理装置によって誤差拡散処理されたデータに基づいて前記画素の階調が制御される、
ことを特徴とする画像表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びそれらを実装した画像表示システムに関する。
【背景技術】
【０００２】
例えば、携帯電話機や携帯情報端末といった携帯電子機器、あるいは、パーソナルコンピュータやテレビジョン受像機等の表示部には、モノクロ表示やカラー表示の液晶表示パネル、無機材料若しくは有機材料のエレクトロルミネッセンスを用いたエレクトロルミネッセンス表示パネル、プラズマ表示パネル等が用いられている。
【０００３】
表示部の画素の階調表示能力が低い場合、換言すれば、画素の階調数が少ない場合には、画像のグラデーション部分に等高線状の輪郭が生じ、画質が低下する。このような場合に、誤差拡散法を用いることによって画質が向上することが知られている。
【０００４】
特許文献１には、例えば、表示面を複数の区画（誤差拡散ブロック）に区切り、それぞれの区画内でのみ誤差拡散を行う技術が開示されている。この技術によれば、誤差拡散の変化の伝搬範囲が限定されるので、画面のちらつき感を低減することが可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１４５８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
誤差拡散法は、計算の負荷が軽く実用的な手法である。しかしながら、特許文献１に記載された技術によれば、誤差拡散ブロックの境界が目立つ場合があり、画質が低下するという問題がある。このような傾向は、特に階調変化が少ない部分で顕著となる。
【０００７】
従って、本発明の目的は、画質の低下を軽減することができる画像処理装置、画像処理方法、及びそれらを実装した画像表示システムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００８】
複数の画素を有する表示面を含む画像表示装置に入力される入力データに対して、表示面を複数の領域に分割してなる複数の誤差拡散ブロックの各々に対して誤差拡散処理を施す画像処理装置であって、画素に対応する誤差値を記憶する記憶部と、前記複数の画素のうち一の画素を囲む画素のうちの少なくとも一つの画素に対応する誤差値及び当該誤差値に対応する画素における入力データの階調に応じた係数に基づいて、当該画素に対応する画素データを算出する画素データ算出部と、画素データ算出部によって算出された画素データを量子化して量子化データを算出する量子化データ算出部と、画素データ算出部によって算出された画素データと、当該画素データの量子化によって得られた量子化データとの誤差値を、当該画素に対応させて記憶部に記憶させる誤差値算出部とを備える。
【０００９】
複数の画素を有する表示面を含む画像表示装置に入力される入力データに対して、表示面を複数の領域に分割してなる複数の誤差拡散ブロックの各々に対して誤差拡散処理を施す画像処理方法であって、画素に応じて誤差値を記憶部に記憶させ、前記複数の画素のうち一の画素を囲む画素のうちの少なくとも一つの画素に対応する誤差値及び当該誤差値に対応する画素における入力データの階調に応じた係数に基づいて、当該画素に対応する画素データを算出し、当該画素データを量子化してなる量子化データを算出し、当該画素データと当該画素データを量子化してなる量子化データとに基づいて誤差値を算出し、誤差値を当該画素に対応させて記憶部に記憶する。
【００１０】
画像表示システムであって、上記画像処理装置と、複数の画素を有する表示面を含む画像表示装置とを有し、画像処理装置によって誤差拡散処理されたデータに基づいて画素の階調が制御される。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態による画像表示システムの概念図である。
【図２】（Ａ）は、図１に示した表示面に設けられる誤差拡散ブロックを示す図であり、（Ｂ）は、（Ａ）に示す領域Ａの拡大図である。
【図３】図１に示した誤差拡散処理部の機能ブロックを示す略ブロック図である。
【図４】図１に示した誤差拡散処理部が実行する処理を示すフロー図である。
【図５】図４に示したｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の詳細を示すフロー図である。
【図６】図５に示した各場合におけるｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法を説明する図である。
【図７】図３に示した第１の画素データ算出部３０の機能ブロックの例を示す略ブロック図である。
【図８】入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の詳細を示すフロー図である。
【図９】図８に示した入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法を説明する図である。
【図１０】図４に示したＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理及びＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理の詳細を示すフロー図である。
【図１１】図４に示したＥｒｒ２’（ｎ，ｍ）算出処理の詳細を示すフロー図である。
【図１２】図３及び図７に示した第１の画素データ算出部３０の機能ブロックの別の例を示す略ブロック図である。
【図１３】図８に示した、入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【図１４】図１３に示した、入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【図１５】図１３に示した、入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【図１６】図１３に示した、入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法を説明する図である。
【図１７】図３に示した第１の量子化データ算出部３２の機能ブロックを示す略ブロック図である。
【図１８】図４に示したＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理及びＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【図１９】図１８に示したＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理及びＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を、図面等を参照しながら説明する。但し、本発明は多くの異なる態様で実施することが可能であり、以下に例示する実施の形態の記載内容に限定して解釈されるものではない。また、図面は説明をより明確にするため、実際の態様に比べ、各部の構成等について模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。さらに、本明細書と各図において、既出の図に関して前述したものと同様の要素には、同一の符号（または数字の後にａ、ｂなどを付した符号）を付して、詳細な説明を適宜省略することがある。なお、各要素に対する「第１」、「第２」と付記された文字は、各要素を区別するために用いられる便宜的な標識であり、特段の説明がない限りそれ以上の意味を有さない。
【００１３】
（第１実施形態）
本実施形態では、本発明の一実施形態に係る像処理装置、画像処理装置の画像処理方法、及びそれらを実装した画像表示装置の構成を説明する。
【００１４】
図１は、本実施形態による画像表示システム１の概念図である。同図に示すように、画像表示システム１は、マトリクス状に配置された複数の画素ＰＸを含む表示面２１を有する表示部２０と、図示しない上位装置から供給される入力データｖｄ＿ｉｎに所定の階調変換処理を施すことによって出力データｖｄ＿ｏｕｔを生成し、表示部２０に供給する階調変換部１０とを備えて構成される。
【００１５】
表示部２０は、例えばモノクロ表示の液晶表示パネルにより構成される。ただし、表示部２０の構成や方式は特に限定されない。例えば、液晶表示パネル、エレクトロルミネッセンス表示パネル、プラズマ表示パネルといった周知の表示装置を表示部２０として用いることができるし、電気的に書き換え可能な電子ペーパーといった表示媒体を表示部２０として用いることもできる。また、表示部２０は、モノクロ表示であってもよいし、カラー表示であってもよい。以下では、説明を簡単にするため、モノクロ表示の表示部２０を用いる（したがって、１フレーム中に１つの画素ＰＸについて入力される入力データｖｄ＿ｉｎは１つだけとなる）ことを前提として説明を続ける。
【００１６】
表示部２０の表示面２１においては、水平方向にＭ個、垂直方向にＮ個の合計Ｍ×Ｎ個の画素ＰＸが、２次元マトリクス状に配列されている。本明細書においてＸ（ｎ，ｍ）と記載する場合があるが（Ｘは任意の構成。ｎは１〜Ｎの整数、ｍは１〜Ｍの整数）、これは、画素ＰＸごとに設けられる複数の構成Ｘのうちｎ行目かつｍ列目に位置する画素ＰＸに対応する構成Ｘであることを示している。
【００１７】
表示部２０が透過型の表示パネルである場合、表示部２０は、階調変換部１０から供給される出力データｖｄ＿ｏｕｔの値に基づいて各画素ＰＸの光透過率を制御するよう構成される。この制御により、図示しない光源装置からの光の透過量が制御され、その結果として表示部２０に画像が表示される。表示部２０が反射型の表示パネルである場合には、表示部２０は、階調変換部１０から供給される出力データｖｄ＿ｏｕｔの値に基づいて各画素ＰＸの光反射率を制御するよう構成される。この制御により外光の反射量が制御され、その結果として表示部２０に画像が表示される。
【００１８】
階調変換部１０は、誤差拡散法による階調処理を行う誤差拡散処理部１１を含んでおり、この誤差拡散処理部１１を用いて、入力データｖｄ＿ｉｎ（ｎ，ｍ）を出力データｖｄ＿ｏｕｔ（ｎ，ｍ）に変換するよう構成される。変換によって得られた出力データｖｄ＿ｏｕｔ（ｎ，ｍ）は、表示部２０に供給される。変換処理の詳細については、後ほど図３〜図１１を参照しながら詳しく説明する。
【００１９】
また、階調変換部１０は、表示面２１を複数の領域に分割してなる複数の誤差拡散ブロックＢＬ（図２（Ａ）および図２（Ｂ）参照）を記憶している。誤差拡散ブロックＢＬは仮想的な領域であり、誤差拡散法による階調処理を行う際の誤差の拡散範囲を規定するものである。ただし、本実施形態による誤差拡散処理部１１は、必ずしも誤差拡散ブロックＢＬ内に限定された誤差拡散を行うわけではない。この点についても、後ほど図３〜図１１を参照しながら詳しく説明する。
【００２０】
図２（Ａ）は、図１に示した表示面２１に設けられる誤差拡散ブロックＢＬを示す図であり、図２（Ｂ）は、図２（Ａ）に示す領域Ａの拡大図である。なお、図２（Ａ）では、画素ＰＸの図示を省略している。
【００２１】
本発明の一実施形態による誤差拡散ブロックＢＬは、図２（Ａ）に示すようにそれぞれ同じサイズの矩形の形状を有しており、境界Ｂで隣接する他の誤差拡散ブロックＢＬと区切られている。図２（Ａ）には、表示面２１を６×６＝３６個の誤差拡散ブロックＢＬに分割する例を示しているが、誤差拡散ブロックＢＬに分割数は、図２（Ａ）の例に限定されない。本発明の一実施形態においては、誤差拡散ブロックＢＬの個数は限定されない。また、図２（Ｂ）には、１つの誤差拡散ブロックＢＬが１６×９＝１４４個の画素ＰＸにより構成される例を示しているが、画素ＰＸの個数は、図２（Ｂ）の例に限定されない。本発明の一実施形態において、各誤差拡散ブロックＢＬを構成する画素ＰＸの個数は限定されない。
【００２２】
階調変換部１０には、１行目から順（ｎが１ずつ増加する順。上から下）に、入力データｖｄ＿ｉｎ（ｎ，ｍ）が供給される。各行内においては、図示した矢印ＯＲに沿う順（ｍが１ずつ増加する順、左から右）に入力データｖｄ＿ｉｎ（ｎ，ｍ）が供給される。階調変換部１０内の誤差拡散処理部１１は、こうして順次供給される入力データｖｄ＿ｉｎ（ｎ，ｍ）を、１画素ＰＸずつ出力データｖｄ＿ｏｕｔ（ｎ，ｍ）に変換し、表示部２０に供給するよう構成される。図示した矢印ＯＲに沿う順は、スキャンする順と言い換えてもよい。すなわち、図示した矢印ＯＲに沿う順は、図２（Ｂ）に示した上面視において左から右へのスキャンとなる。なお、スキャンする方向は、図２（Ｂ）に示した上面視において左から右へのスキャンに限定されない。例えば、図２（Ｂ）に示した上面視において右から左へのスキャンでもよい。その場合、以降の説明において、右は左、右下は左下、左は右、左下は右下、などのように、上面視において上下方向に対して鏡面反転した位置、方向に読み替えればよい。
【００２３】
図３は、誤差拡散処理部１１の機能ブロックを示す略ブロック図である。同図に示すように、誤差拡散処理部１１は、第１の画素データ算出部３０、第２の画素データ算出部３１、第１の量子化データ算出部３２、第１の出力画素データ算出部３３、第２の量子化データ算出部３４、第２の出力画素データ算出部３５、第１の誤差値算出部３６、第２の誤差値算出部３７、制限誤差値算出部３８、判定部３９、修正誤差値算出部４０、及び記憶部４１を有して構成される。
【００２４】
記憶部４１は、画素ＰＸごとに、第１の誤差値Ｅｒｒ１（ｎ，ｍ）と、修正誤差値Ｅｒｒ２’（ｎ，ｍ）とを記憶するよう構成される。これらは、各画素ＰＸについて順次階調処理を行っていく過程で、それぞれ第１の誤差値算出部３６及び修正誤差値算出部４０により算出されるものである。
【００２５】
第１の画素データ算出部３０は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じて、入力データｖｄ＿ｉｎ（ｎ，ｍ）と、この入力データｖｄ＿ｉｎ（ｎ，ｍ）に対応する画素ＰＸ（ｎ，ｍ）（注目画素）と所定の方向に隣接する所定数の画素のうち画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属するものそれぞれについて記憶部４１に記憶される第１の誤差値Ｅｒｒ１とに基づいて第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。詳細は図５及び図６を参照しながら後述することとしてここでは簡単に説明すると、第１の画素データ算出部３０は、第１の誤差値Ｅｒｒ１を参照する範囲を「画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属するもの」に限定することにより、誤差の拡散範囲を誤差拡散ブロックＢＬ内に限定している。したがって、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）は、誤差の拡散範囲を誤差拡散ブロックＢＬ内に限定することによって算出されたものとなる。ここで、所定の方向に隣接する所定数の画素とは、注目画素を囲う画素のことを指す。例えば、上面視において、注目画素の左下、下、右下、右隣、右上、上、左上、左隣が、所定の方向に隣接する所定数の画素に相当する。
【００２６】
第２の画素データ算出部３１は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じて、入力データｖｄ＿ｉｎ（ｎ，ｍ）と、画素ＰＸ（ｎ，ｍ）と上記所定の方向に隣接する所定数の画素それぞれについて記憶部４１に記憶される修正誤差値Ｅｒｒ２’とに基づいて第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する。第２の画素データ算出部３１は、第１の画素データ算出部３０とは異なり、修正誤差値Ｅｒｒ２’を参照する範囲を「画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属するもの」に限定しない。したがって、第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）は、誤差の拡散範囲を誤差拡散ブロックＢＬ内に限定しないで算出されたものとなる。
【００２７】
第１の量子化データ算出部３２は、第１の画素データ算出部３０により算出された第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を量子化してなる第１の量子化データＬＶ１（ｎ，ｍ）を算出する。また、第１の出力画素データ算出部３３は、第１の量子化データＬＶ１（ｎ，ｍ）を３ビットデータに変換することにより、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）を算出する。これらの処理の詳細については、後ほど図１０を参照しながら説明する。
【００２８】
第２の量子化データ算出部３４は、第２の画素データ算出部３１により算出された第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を量子化してなる第２の量子化データＬＶ２（ｎ，ｍ）を算出する。また、第２の出力画素データ算出部３５は、第２の量子化データＬＶ２（ｎ，ｍ）を３ビットデータに変換することにより、第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）を算出する。これらの処理の詳細についても、後ほど図８を参照しながら説明する。第２の出力画素データ算出部により算出された第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）は、図３にも示すように、階調変換部１０の出力データｖｄ＿ｏｕｔ（ｎ，ｍ）となる。
【００２９】
第１の誤差値算出部３６は、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）と第１の量子化データＬＶ１（ｎ，ｍ）との差分に基づいて第１の誤差値Ｅｒｒ１（ｎ，ｍ）を算出する。具体的には、次の式（１）に示すように、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）から第１の量子化データＬＶ１（ｎ，ｍ）を減じてなる値を、第１の誤差値Ｅｒｒ１（ｎ，ｍ）として算出する。
【００３０】
【数１】
2019012922.tif 000003
【００３１】
第１の誤差値算出部３６によって算出された第１の誤差値Ｅｒｒ１（ｎ，ｍ）は記憶部４１に供給され、誤差拡散処理部１１が同一フレームにかかる処理を実行している間、画素ＰＸ（ｎ，ｍ）に対応する第１の誤差値Ｅｒｒ１として記憶部４１内に記憶される。
【００３２】
第２の誤差値算出部３７は、第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）と第２の量子化データＬＶ２（ｎ，ｍ）との差分に基づいて第２の誤差値Ｅｒｒ２（ｎ，ｍ）を算出する。具体的には、次の式（２）に示すように、第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）から第２の量子化データＬＶ２（ｎ，ｍ）を減じてなる値を、第２の誤差値Ｅｒｒ２（ｎ，ｍ）として算出する。
【００３３】
【数２】
2019012922.tif 000004
【００３４】
制限誤差値算出部３８は、第１の量子化データＬＶ１（ｎ，ｍ）及び第２の量子化データＬＶ２（ｎ，ｍ）の値に応じて第１の誤差値Ｅｒｒ１（ｎ．ｍ）を制限してなる制限誤差値Ｅｒｒ１＿ｍｕｘを算出する。制限誤差値Ｅｒｒ１＿ｍｕｘは、後に修正誤差値算出部４０が修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出する際に使用される。制限誤差値算出部３８の処理の詳細については、後ほど図１１を参照しながら説明する。
【００３５】
判定部３９は、画素ＰＸ（ｎ，ｍ）が複数の誤差拡散ブロックＢＬの境界から所定の範囲内にあるか否かを判定する。具体的には、図２（Ｂ）に示した水平方向距離Ｈ及び垂直方向距離Ｖの閾値判定を行うことにより、上記判定を行う。判定部３９の処理の詳細についても、後ほど図１１を参照しながら説明する。
【００３６】
修正誤差値算出部４０は、判定部３９の判定結果に応じて、第１の誤差値Ｅｒｒ１（ｎ，ｍ）に近づける方向に第２の誤差値Ｅｒｒ２（ｎ，ｍ）を修正することにより、画素ＰＸ（ｎ，ｍ）の修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出する。より具体的に説明すると、修正誤差値算出部４０は、判定部３９の判定結果により画素ＰＸ（ｎ，ｍ）が複数の誤差拡散ブロックＢＬの境界から所定の範囲内にあることが示される場合に、第１の誤差値Ｅｒｒ１（ｎ，ｍ）に近づける方向に第２の誤差値Ｅｒｒ２（ｎ，ｍ）を修正することにより、画素ＰＸ（ｎ，ｍ）の修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出する。一方、判定部の判定結果により画素ＰＸ（ｎ，ｍ）が複数の誤差拡散ブロックＢＬの境界から所定の範囲内にないことが示される場合には、修正誤差値算出部４０は、制限誤差値算出部３８により算出された制限誤差値Ｅｒｒ１＿ｍｕｘを、画素ＰＸ（ｎ，ｍ）の修正誤差値Ｅｒｒ２’（ｎ，ｍ）とする。
【００３７】
修正誤差値算出部４０によって算出された修正誤差値Ｅｒｒ２’（ｎ，ｍ）は記憶部４１に供給され、誤差拡散処理部１１が同一フレームにかかる処理を実行している間、画素ＰＸ（ｎ，ｍ）に対応する修正誤差値Ｅｒｒ２’として記憶部４１内に記憶される。
【００３８】
第１の誤差値Ｅｒｒ１に基づいて算出される第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）から、出力データｖｄ＿ｏｕｔ（ｎ，ｍ）が算出されることになる。この第１の誤差値Ｅｒｒ１は、境界Ｂを超えたときに不連続に変化する。これが、上述したように、誤差拡散ブロックの境界が目立つ原因となる。本実施形態では、修正誤差値Ｅｒｒ２’に基づいて算出される第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）から、出力データｖｄ＿ｏｕｔ（ｎ，ｍ）が生成される。そして、修正誤差値Ｅｒｒ２’は、境界Ｂも含めて連続的に変化する。したがって、本実施形態によれば、誤差拡散ブロックＢＬの境界Ｂでの目立ちが抑制されることとなる。
【００３９】
以下、図４に示したフロー図を参照しながら、誤差拡散処理部１１内の各部が行う処理について、より詳しく説明する。
【００４０】
図４には、１フレーム分の処理を示している。同図に示すように、新たなフレームの処理が開始される際、まず記憶部４１の記憶内容がリセットされる（ステップＳ１）。その後、入力データｖｄ＿ｉｎ（ｎ，ｍ）が、ｎ＝１からｎ＝Ｎまでｎを１ずつインクリメントしつつ、さらに各ｎにおいてｍ＝１からｍ＝Ｍまでｍを１ずつインクリメントしつつ、図示しない上位装置から供給される。誤差拡散処理部１１は、こうして入力データｖｄ＿ｉｎ（ｎ，ｍ）が供給される都度、以下に説明するステップＳ４〜Ｓ１１の処理を繰り返す（図４のステップＳ２，Ｓ３）。
【００４１】
入力データｖｄ＿ｉｎ（ｎ，ｍ）が供給されると、まず第１の画素データ算出部３０により、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出するための処理（ｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理）が実行される（ステップＳ４）。
【００４２】
図５は、ｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の詳細を示すフロー図である。同図に示すように、第１の画素データ算出部３０はまず、画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う（ステップＳ２０）。そして、画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について境界に位置する場合と、水平方向のみについて境界に位置する場合と、垂直方向のみについて境界に位置する場合と、水平方向と垂直方向のいずれについても境界に位置しない場合とで、異なる数式により第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出を行う。なお、図５の「水平方向のみの場合」のｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法は、「両方向の場合」の算出方法と同じ数式であっても良い。
【００４３】
図６（Ａ）から図６（Ｄ）は、図５に示した各場合における第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法を説明する図である。まず図６（Ａ）は、画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても境界に位置しない場合を示している。この場合、第１の画素データ算出部３０は、画素ＰＸ（ｎ，ｍ）と左上方向に隣接する画素ＰＸ（ｎ−１，ｍ−１）と、画素ＰＸ（ｎ，ｍ）と上方向に隣接する画素ＰＸ（ｎ−１，ｍ）と、画素ＰＸ（ｎ，ｍ）と右上方向に隣接する画素ＰＸ（ｎ−１，ｍ＋１）と、画素ＰＸ（ｎ，ｍ）と左方向に隣接する画素ＰＸ（ｎ，ｍ−１）との４つの画素ＰＸのそれぞれについて、記憶部４１から第１の誤差値Ｅｒｒ１を読み出す。そして、次の式（３）に示すように、読み出した４つの第１の誤差値Ｅｒｒ１にそれぞれ係数ａ〜ｄを乗算したものを加算し、さらに、その結果に入力データｖｄ＿ｉｎ（ｎ，ｍ）を加算することにより、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。
【００４４】
【数３】
2019012922.tif 000005
【００４５】
ここで、式（３）中の定数ａ，ｂ，ｃ，ｄは拡散誤差の規格化係数であり、ａ＋ｂ＋ｃ＋ｄ＝１となるように予め定められる。それぞれの具体的な値の選択にはいくつかの方式がある。例えば、Ｆｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇ式では、ａ＝１／１６、ｂ＝５／１６、ｃ＝３／１６、ｄ＝７／１６となる。また、ＳｉｅｒｒａＦｉｌｔｅｒＬｉｔｅ式では、ａ＝０、ｂ＝１／４、ｃ＝１／４、ｄ＝１／２となる。いずれの方式を採用するかについては、画像表示システム１に対して要求される品質などを考慮して決定すればよい。
【００４６】
図６（Ｂ）は、画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について境界に位置する場合を示している。上述したように、第１の画素データ算出部３０は、第１の誤差値Ｅｒｒ１を参照する範囲を「画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属するもの」に限定するものである。したがって、この場合には、図６（Ａ）の例で参照した４つの第１の誤差値Ｅｒｒ１をいずれも参照せずに、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。具体的には、次の式（４）に示すように、入力データｖｄ＿ｉｎ（ｎ，ｍ）をそのまま第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）とする。
【００４７】
【数４】
2019012922.tif 000006
【００４８】
図６（Ｃ）は、画素ＰＸ（ｎ，ｍ）が垂直方向のみについて境界に位置する場合を示している。この場合、第１の画素データ算出部３０は、図６（Ａ）の例で参照した４つの第１の誤差値Ｅｒｒ１のうち、画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属しない２つの画素ＰＸ（ｎ−１，ｍ−１），ＰＸ（ｎ，ｍ−１）に対応する第１の誤差値Ｅｒｒ１（ｎ−１，ｍ−１），Ｅｒｒ１（ｎ，ｍ−１）を参照せずに、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。具体的には、次の式（５）に示すように、画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属する２つの画素ＰＸ（ｎ−１，ｍ），ＰＸ（ｎ−１，ｍ＋１）に対応する第１の誤差値Ｅｒｒ１（ｎ−１，ｍ），Ｅｒｒ１（ｎ−１，ｍ＋１）にそれぞれ上述した係数ｂ，ｃを乗算したものを加算し、さらに、その結果に入力データｖｄ＿ｉｎ（ｎ，ｍ）を加算することにより、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。
【００４９】
【数５】
2019012922.tif 000007
【００５０】
図６（Ｄ）は、画素ＰＸ（ｎ，ｍ）が水平方向のみについて境界に位置する場合を示している。この場合、第１の画素データ算出部３０は、図６（Ａ）の例で参照した４つの第１の誤差値Ｅｒｒ１のうち、画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属しない３つの画素ＰＸ（ｎ−１，ｍ−１），ＰＸ（ｎ−１，ｍ），ＰＸ（ｎ−１，ｍ＋１）に対応する第１の誤差値Ｅｒｒ１（ｎ−１，ｍ−１），Ｅｒｒ１（ｎ−１，ｍ），Ｅｒｒ１（ｎ−１，ｍ＋１）を参照せずに、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。具体的には、次の式（６）に示すように、画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬに属する画素ＰＸ（ｎ，ｍ−１）に対応する第１の誤差値Ｅｒｒ１（ｎ，ｍ−１）に上述した係数ｄを乗算したものに入力データｖｄ＿ｉｎ（ｎ，ｍ）を加算することにより、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。
【００５１】
【数６】
2019012922.tif 000008
【００５２】
本発明の一実施形態においては、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じて、第１の画素データ算出部３０により算出される第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する。したがって、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じて、第１の誤差値Ｅｒｒ１に乗算する係数が変わる。
【００５３】
図７は、図３に示した第１の画素データ算出部３０の機能ブロックの例を示す略ブロック図である。第１の画素データ算出部３０は、第１の境界判定回路１０３、第２の境界判定回路１０４、ラッチ回路１０７、選択信号発生回路１０８、選択回路１０９、及びデータ合成回路１１０を有する。第１の画素データ算出部３０は、第１の誤差値Ｅｒｒ１、入力データｖｄ＿ｉｎ（ｎ，ｍ）、及び、（ｎ，ｍ）が入力される。（ｎ，ｍ）は各画素の座標を示すデータを含む。また、第１の画素データ算出部３０は、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を出力する。入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調未満の場合、第１の境界判定回路１０３が画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調以上の場合、第２の境界判定回路１０４が、画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。なお、（ｎ，ｍ）は各機能ブロックに入力され、各データと各データの座標とを紐付けする役割を有していてもよい。
【００５４】
第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出の、回路の動作を説明する。第１の画素データ算出部３０に、第１の誤差値Ｅｒｒ１、入力データｖｄ＿ｉｎ（ｎ，ｍ）、及び、（ｎ，ｍ）が入力される。第１の誤差値Ｅｒｒ１は、第１の境界判定回路１０３、及び第２の境界判定回路１０４に入力される。第１の境界判定回路１０３、及び第２の境界判定回路１０４は、画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。
【００５５】
具体的には、第１の境界判定回路１０３、及び第２の境界判定回路１０４において、画素ＰＸ（ｎ，ｍ）と境界との関係を判定されて、注目画素ＰＸ（ｎ，ｍ）を囲む、それぞれの方向の画素に対する第１の誤差値Ｅｒｒ１に、拡散誤差の規格化係数が乗算される。
【００５６】
入力データｖｄ＿ｉｎ（ｎ，ｍ）はラッチ回路１０７に入力される。ラッチ回路１０７は、入力データｖｄ＿ｉｎ（ｎ，ｍ）を格納し、処理する入力データｖｄ＿ｉｎ（ｎ，ｍ）ごとに、当該入力データｖｄ＿ｉｎ（ｎ，ｍ）を出力する。ラッチ回路から出力されたデータ１２９は、選択信号発生回路１０８に入力される。選択信号発生回路１０８は、ラッチ回路から出力されたデータ１２９の階調が、２５階調未満か否かを判断し、選択信号１３０を出力する。
【００５７】
次に、拡散誤差の規格化係数が乗算されたデータ１２７、及び、選択信号１３０が、選択回路１０９に入力される。選択回路１０９は、選択信号１３０に応じて、２５階調未満の拡散誤差の規格化係数が乗算されたデータ、または、２５階調以上の拡散誤差の係数が乗算されたデータのいずれかを選択し、出力する。例えば、ラッチ回路から出力されたデータ１２９の階調が２５階調未満の場合、選択信号１３０は２５階調未満の拡散誤差の規格化係数が乗算されたデータを選択する信号であり、選択回路１０９は２５階調未満の拡散誤差の規格化係数が乗算されたデータを出力する。
【００５８】
続いて、選択回路１０９から出力されたデータ１２８及びラッチ回路から出力されたデータ１２９がデータ合成回路１１０に入力される。データ合成回路１１０は、選択回路１０９から出力されたデータ１２８とラッチ回路から出力されたデータ１２９とを加算し、出力する。合成回路１１０から出力されたデータが、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）である。第１の画素データ算出部３０は、入力される第１の誤差値Ｅｒｒ１が複数の場合、それぞれの誤差値Ｅｒｒ１に応じて拡散誤差の規格化係数が乗算されたデータを加算した後に、さらに、ラッチ回路から出力されたデータ１２９を加算してもよい。詳細は、以下の図８と図９で説明する。
【００５９】
図８は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の詳細を示すフロー図である。同図に示すように、第１の画素データ算出部３０は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合には、ステップＳ２２にしたがって、第１の境界判定回路１０３により画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。第１の画素データ算出部３０は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調以上の場合には、ステップＳ２３にしたがって、第２の境界判定回路１０４により画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。そして、それぞれのステップにおいて、画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について境界に位置する場合と、水平方向のみについて境界に位置する場合と、垂直方向のみについて境界に位置する場合と、水平方向と垂直方向のいずれについても境界に位置しない場合とで、異なる数式により第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出を行う。なお、図８の「水平方向のみの場合」のｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法は、「両方向の場合」の算出方法と同じ数式であっても良い。
【００６０】
ここでは、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調以上の場合、式（３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／４、ｃは１／４、ｄは１／２とする。図９は、図８に示したｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示す図である。図９（Ａ）は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調以上の場合のｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示している。図９（Ａ）に示すように、上面視において、注目画素ＰＸ（ｎ，ｍ）に対して、水平方向の画素に乗算される拡散誤差の規格化係数ｄは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、右下方向の画素に乗算される拡散誤差の規格化係数ａは０である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、垂直方向の画素に乗算される拡散誤差の規格化係数ｂは１／４である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、左下方向の画素に乗算される拡散誤差の規格化係数ｃは１／４である。
【００６１】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は前述した式（４）となる。
【００６２】
画素ＰＸ（ｎ，ｍ）が垂直方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は次の式（７）となる。
【００６３】
【数７】
2019012922.tif 000009
【００６４】
画素ＰＸ（ｎ，ｍ）が水平方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（８）となる。
【００６５】
【数８】
2019012922.tif 000010
【００６６】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても誤差拡散ブロックＢＬのブロック境界に位置しない場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（９）となる。
【００６７】
【数９】
2019012922.tif 000011
【００６８】
一方、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合、式（３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／２、ｃは０、ｄは１／２とする。図９は、図８に示したｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示す図である。図９（Ｂ）は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合のｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示している。図９（Ｂ）に示すように、上面視において、注目画素ＰＸ（ｎ，ｍ）に対して、水平方向の画素に乗算される拡散誤差の規格化係数ｄは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、右下方向の画素に乗算される拡散誤差の規格化係数ａは０である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、垂直方向の画素に乗算される拡散誤差の規格化係数ｂは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、左下方向の画素に乗算される拡散誤差の規格化係数ｃは０である。
【００６９】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は前述した式（４）となる。
【００７０】
画素ＰＸ（ｎ，ｍ）が垂直方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は次の式（１０）となる。
【００７１】
【数１０】
2019012922.tif 000012
【００７２】
画素ＰＸ（ｎ，ｍ）が水平方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（１１）となる。
【００７３】
【数１１】
2019012922.tif 000013
【００７４】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても誤差拡散ブロックＢＬのブロック境界に位置しない場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（１２）となる。
【００７５】
【数１２】
2019012922.tif 000014
【００７６】
図４に戻って説明する。ステップＳ４で第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出した後には、第２の画素データ算出部３１により第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる（ステップＳ５）。具体的に説明すると、第２の画素データ算出部３１はまず、画素ＰＸ（ｎ，ｍ）と左上方向に隣接する画素ＰＸ（ｎ−１，ｍ−１）と、画素ＰＸ（ｎ，ｍ）と上方向に隣接する画素ＰＸ（ｎ−１，ｍ）と、画素ＰＸ（ｎ，ｍ）と右上方向に隣接する画素ＰＸ（ｎ−１，ｍ＋１）と、画素ＰＸ（ｎ，ｍ）と左方向に隣接する画素ＰＸ（ｎ，ｍ−１）との４つの画素ＰＸのそれぞれについて、記憶部４１から修正誤差値Ｅｒｒ２’を読み出す。そして、次の式（７）に示すように、読み出した４つの修正誤差値Ｅｒｒ２’にそれぞれ上記係数ａ〜ｄを乗算したものを加算し、さらに、その結果に入力データｖｄ＿ｉｎ（ｎ，ｍ）を加算することにより、第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する。式（１３）は、式（３）において第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）に置き換えて、さらに、第１の誤差値Ｅｒｒ１を修正誤差値Ｅｒｒ２’に置き換えたものとなっている。
【００７７】
【数１３】
2019012922.tif 000015
【００７８】
また、第２の画素データ算出部３１により第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる場合においても、第１の画素データ算出部３０により第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる場合と同様に、２５階調以上と２５階調未満とで、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを変える。第２の画素データ算出部３１の回路の動作は、図７の説明において、第１の画素データ算出部３０を第２の画素データ算出部３１、第１の境界判定回路１０３を第２の画素データ算出部３１Ａ、第２の境界判定回路１０４を第２の画素データ算出部３１Ｂ、第１の誤差値Ｅｒｒ１を修正誤差値Ｅｒｒ２’に、それぞれおきかえることで、同様に説明することができる。したがって、詳細な説明は省略する。
【００７９】
修正誤差値Ｅｒｒ２’においては、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調以上の場合、式（１３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／４、ｃは１／４、ｄは１／２とする
【００８０】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は前述した式（４）となる。
【００８１】
画素ＰＸ（ｎ，ｍ）が垂直方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は次の式（１４）となる。
【００８２】
【数１４】
2019012922.tif 000016
【００８３】
画素ＰＸ（ｎ，ｍ）が水平方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は式（１５）となる。
【００８４】
【数１５】
2019012922.tif 000017
【００８５】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても誤差拡散ブロックＢＬのブロック境界に位置しない場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は式（１６）となる。
【００８６】
【数１６】
2019012922.tif 000018
【００８７】
一方、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合、式（１３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／２、ｃは０、ｄは１／２とする。第２の画素データ算出部３１は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調以上の場合には、第２の画素データ算出部３１Ｂにより処理を行う。
【００８８】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は前述した式（４）となる。
【００８９】
画素ＰＸ（ｎ，ｍ）が垂直方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は次の式（１７）となる。
【００９０】
【数１７】
2019012922.tif 000019
【００９１】
画素ＰＸ（ｎ，ｍ）が水平方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は式（１８）となる。
【００９２】
【数１８】
2019012922.tif 000020
【００９３】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても誤差拡散ブロックＢＬのブロック境界に位置しない場合、ｖｄ２＿ｍｏｄ（ｎ，ｍ）は式（１９）となる。
【００９４】
【数１９】
2019012922.tif 000021
【００９５】
図９は、ｖｄ２＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示す図でもある。図９の説明は、ｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理においてなされた説明と同様であるため、ここでの説明は省略する。ｖｄ２＿ｍｏｄ（ｎ，ｍ）の算出処理において、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調に応じて、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを変えた誤差拡散法による階調処理を行うことで、誤差の拡散範囲を誤差拡散ブロックＢＬ内に限定しない場合においても、注目画素に隣接する画素に注目画素の階調に応じた誤差を分配することができるため、画素間の階調差を少なくすることができる。すなわち、画像表示システムに表示される画像において、画質の低下を抑制することができる。
【００９６】
次に、第１の量子化データ算出部３２による第１の量子化データＬＶ１（ｎ，ｍ）の算出と、第１の出力画素データ算出部３３による第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の算出とが実行される（ステップＳ６の「ＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理」）。また、第２の量子化データ算出部３４による第２の量子化データＬＶ２（ｎ，ｍ）の算出と、第２の出力画素データ算出部３５による第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）の算出とが実行される（ステップＳ７の「ＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理」）。
【００９７】
図１０は、ＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理及びＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理の詳細を示すフロー図である。同図に示す「ｉ」は「１」又は「２」を表す変数である。以下では、ｉ＝１の場合の処理、すなわちＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理に着目して説明するが、ＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理についても同様である。
【００９８】
まず初めに、第１の量子化データ算出部３２により、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値の範囲が判定される（ステップＳ２２）。図１０の例では、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値が「２３７以上」「２０１以上２３７未満」「１６４以上２０１未満」「１２８以上１６４未満」「９１以上１２８未満」「５５以上９１未満」「１８以上５５未満」「その他（１８未満）」のいずれに属するかが判定される。なお、図１０ではこのように８つの範囲を用いているが、これは、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）のビット数３で表現可能な数が「０」〜「７」の８種類であることに対応するものである。第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）のビット数によっては、より細かく範囲を設定することとしてもよいし、逆により粗く範囲を設定することとしてもよい。細かく設定するほど、高精細な画像が得られることになる。
【００９９】
第１の量子化データ算出部３２は、ステップＳ３０の判定結果に基づいて、第１の量子化データＬＶ１（ｎ，ｍ）を算出する。図１０の例では、例えば第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値が「２３７以上」である場合、第１の量子化データ算出部３２は、第１の量子化データＬＶ１（ｎ，ｍ）の値を「２５５」と決定する。同様に、「２０１以上２３７未満」に対して「２１９」、「１６４以上２０１未満」に対して「１８２」、「１２８以上１６４未満」に対して「１４６」、「９１以上１２８未満」に対して「１０９」、「５５以上９１未満」に対して「７３」、「１８以上５５未満」に対して「３６」、「その他（１８未満）」に対して「０」をそれぞれ第１の量子化データＬＶ１（ｎ，ｍ）の値として決定する。
【０１００】
こうして第１の量子化データＬＶ１（ｎ，ｍ）が決定されると、次に第１の出力画素データ算出部３３により、３ビットデータである第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値が算出される。具体的に説明すると、第１の出力画素データ算出部３３は、例えば第１の量子化データＬＶ１（ｎ，ｍ）の値が「２５５」である場合、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値を「１１１ｂ」とする。同様に、「２１９」に対して「１１０ｂ」、「１８２」に対して「１０１ｂ」、「１４６」に対して「１００ｂ」、「１０９」に対して「０１１ｂ」、「７３」に対して「０１０ｂ」、「３６」に対して「００１ｂ」、「０」に対して「０００ｂ」をそれぞれ第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値として決定する。
【０１０１】
図４に戻って説明する。ステップＳ６，Ｓ７で第１の量子化データＬＶ１（ｎ，ｍ）、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）、第２の量子化データＬＶ２（ｎ，ｍ）、第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）が算出された後には、第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）が階調変換部１０の出力データｖｄ＿ｏｕｔ（ｎ，ｍ）として出力される（ステップＳ８）。出力された出力データｖｄ＿ｏｕｔ（ｎ，ｍ）は図１に示した表示部２０に供給され、表示面２１上に画像を表示する（描画する）ために使用される。
【０１０２】
次に、第１の誤差値算出部３６による第１の誤差値Ｅｒｒ１（ｎ，ｍ）の算出と、第２の誤差値算出部３７による第２の誤差値Ｅｒｒ２（ｎ，ｍ）の算出とが行われる（ステップＳ９，Ｓ１０）。これらの算出の具体的な方法は、上述した式（１）及び式（２）に示した通りである。第１の誤差値算出部３６により算出された第１の誤差値Ｅｒｒ１（ｎ，ｍ）は、上述したように、画素ＰＸ（ｎ，ｍ）に対応する第１の誤差値Ｅｒｒ１として図３に示した記憶部４１に格納され、画素ＰＸ（ｎ，ｍ）と隣接する他の画素ＰＸ（具体的には、画素ＰＸ（ｎ，ｍ＋１）、画素ＰＸ（ｎ＋１，ｍ−１）、ＰＸ（ｎ＋１，ｍ）、ＰＸ（ｎ＋１，ｍ＋１）の４画素ＰＸ）について第１の画素データｖｄ１＿ｍｏｄを算出する際に使用される。
【０１０３】
ここで、第１の誤差値Ｅｒｒ１の算出の際に使用する第１の画素データｖｄ１＿ｍｏｄ及び第１の量子化データＬＶ１が誤差拡散ブロックＢＬ内に制限されたものとなっている（すなわち、図５を参照して説明したように、画素ＰＸ（ｎ，ｍ）と同じ誤差拡散ブロックＢＬ内に属さない画素ＰＸの第１の誤差値を参照せずに算出されている）ことから、第１の誤差値Ｅｒｒ１も、誤差拡散ブロックＢＬ内に制限されたものとなっている。これに対し、第２の誤差値Ｅｒｒ２の算出の際に使用する第２の画素データｖｄ２＿ｍｏｄ及び第２の量子化データＬＶ２が誤差拡散ブロックＢＬ内に制限されないものとなっている（すなわち、図５を参照して説明したように、誤差拡散ブロックＢＬを考慮しないで算出されている）ことから、第２の誤差値Ｅｒｒ２も、誤差拡散ブロックＢＬ内に制限されないものとなっている。
【０１０４】
最後に、制限誤差値算出部３８、判定部３９、及び修正誤差値算出部４０により、修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出するための処理が実行される（ステップＳ１１の「Ｅｒｒ２’（ｎ，ｍ）算出処理」）。
【０１０５】
図１１は、Ｅｒｒ２’（ｎ，ｍ）算出処理の詳細を示すフロー図である。この処理では、まず制限誤差値算出部３８により、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）と第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）との関係が判定される（ステップＳ４０）。なお、この処理は、第１の量子化データＬＶ１（ｎ，ｍ）と第２の量子化データＬＶ２（ｎ，ｍ）との関係を判定することとしても同じことである。
【０１０６】
第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）が第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）より大きい場合、制限誤差値算出部３８は、数値「１５２」を制限誤差値Ｅｒｒ１＿ｍｕｘに設定する。一方、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）が第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）より小さい場合、制限誤差値算出部３８は、数値「−１５２」を制限誤差値Ｅｒｒ１＿ｍｕｘに設定する。その他の場合、すなわち第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）と第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）とが等しい場合には、制限誤差値算出部３８は、第１の誤差値Ｅｒｒ１（ｎ，ｍ）を制限誤差値Ｅｒｒ１＿ｍｕｘに設定する。
【０１０７】
次に、判定部３９により、図２（Ｂ）に示した水平方向距離Ｈ及び垂直方向距離Ｖの閾値判定が行われる。図２に示すように、水平方向距離Ｈは、画素ＰＸ（ｎ，ｍ）の属する誤差拡散ブロックＢＬの左端から画素ＰＸ（ｎ，ｍ）までの距離であり、画素数で表現される。同様に、垂直方向距離Ｖは、画素ＰＸ（ｎ，ｍ）の属する誤差拡散ブロックＢＬの上端から画素ＰＸ（ｎ，ｍ）までの距離であり、画素数で表現される。例えば、図２（Ｂ）において左下がりの斜線ハッチングで示した画素ＰＸについての水平方向距離Ｈ及び垂直方向距離Ｖは、いずれも「５」となる。なお、上記説明で水平方向距離Ｈ及び垂直方向距離Ｖの算出の基準をそれぞれ「左端」「上端」としているのは、画像表示システム１の走査方向（入力データｖｄ＿ｉｎ（ｎ，ｍ）の供給方向）が左から右かつ上から下であるからであり、走査方向が異なる場合には、水平方向距離Ｈ及び垂直方向距離Ｖの算出の基準も当然変化する。
【０１０８】
判定部３９は、水平方向距離Ｈの閾値として、閾値ｒｅｇ＿ｂｄｒ＿ｈ＿ｓｉｚｅを予め記憶している。また、垂直方向距離Ｖの閾値として、閾値ｒｅｇ＿ｂｄｒ＿ｖ＿ｓｉｚｅを予め記憶している。そして、これらと水平方向距離Ｈ及び垂直方向距離Ｖを比較することにより、上記閾値判定を行う（ステップＳ４１，Ｓ４２）。
【０１０９】
判定部３９により水平方向距離Ｈが閾値ｒｅｇ＿ｂｄｒ＿ｈ＿ｓｉｚｅより小さいか、又は、垂直方向距離Ｖが閾値ｒｅｇ＿ｂｄｒ＿ｖ＿ｓｉｚｅより小さいと判定された場合、すなわち、画素ＰＸ（ｎ，ｍ）が誤差拡散ブロックＢＬの上端又は左端から所定の範囲内に位置している場合、修正誤差値算出部４０は、第１の誤差値Ｅｒｒ１（ｎ，ｍ）に近づける方向に第２の誤差値Ｅｒｒ２（ｎ，ｍ）を修正することにより、画素ＰＸ（ｎ，ｍ）の修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出する。具体的には、次の式（２０）に示すように、制限誤差値Ｅｒｒ１＿ｍｕｘから第２の誤差値Ｅｒｒ２（ｎ，ｍ）を減じてなる値に基づく値（より具体的には、制限誤差値Ｅｒｒ１＿ｍｕｘから第２の誤差値Ｅｒｒ２（ｎ，ｍ）を減じてなる値を所定数Ｎで除してなる値）を、第２の誤差値Ｅｒｒ２（ｎ，ｍ）に加えることにより、修正誤差値Ｅｒｒ２’（ｎ，ｍ）を算出する（ステップＳ４４）。なお、所定数Ｎの具体的な値としては「１６」が好適である。
【０１１０】
【数２０】
2019012922.tif 000022
また、上記所定数Ｎの逆数の代わりに、誤差拡散ブロックの境界からの画素数の関数、または、ｎ及びｍの関数を用いてもよい。また、式（２０）の第２項は、Ｅｒｒ２（ｎ，ｍ）及びＥｒｒ１＿ｍｕｘの非線形関数としても良い。
【０１１１】
一方、判定部３９により水平方向距離Ｈが閾値ｒｅｇ＿ｂｄｒ＿ｈ＿ｓｉｚｅ以上であり、かつ、垂直方向距離Ｖが閾値ｒｅｇ＿ｂｄｒ＿ｖ＿ｓｉｚｅ以上であると判定された場合、すなわち、画素ＰＸ（ｎ，ｍ）が誤差拡散ブロックＢＬの上端又は左端から所定の範囲内に位置していない場合、修正誤差値算出部４０は、次の式（２１）に示すように、制限誤差値Ｅｒｒ１＿ｍｕｘを修正誤差値Ｅｒｒ２’（ｎ，ｍ）とする（ステップＳ４３）。
【０１１２】
【数２１】
2019012922.tif 000023
【０１１３】
修正誤差値算出部４０により算出された修正誤差値Ｅｒｒ２’（ｎ，ｍ）は、上述したように、画素ＰＸ（ｎ，ｍ）に対応する修正誤差値Ｅｒｒ２’として図３に示した記憶部４１に格納され、画素ＰＸ（ｎ，ｍ）と隣接する他の画素ＰＸ（具体的には、画素ＰＸ（ｎ，ｍ＋１）、画素ＰＸ（ｎ＋１，ｍ−１）、ＰＸ（ｎ＋１，ｍ）、ＰＸ（ｎ＋１，ｍ＋１）の４画素ＰＸ）について第２の画素データｖｄ２＿ｍｏｄを算出する際に使用される。
【０１１４】
図４に戻って説明する。ここまで説明した処理により、１つの入力データｖｄ＿ｉｎ（ｎ，ｍ）についての処理が完結する。すべての入力データｖｄ＿ｉｎ（ｎ，ｍ）についての処理が完結した時点で、誤差拡散処理部１１による１フレーム分の処理が完了する。その後は、図示していないが、次のフレームの処理が同様に実行される。
【０１１５】
以上説明したように、本実施形態による画像表示システム１によれば、修正誤差値Ｅｒｒ２’に基づいて算出される第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）から、出力データｖｄ＿ｏｕｔ（ｎ，ｍ）が生成される。そして、修正誤差値Ｅｒｒ２’は、修正誤差値算出部４０が上述した処理によって算出していることから、境界Ｂも含めて連続的に変化する。したがって、本実施形態による画像表示システム１によれば、特許文献１の技術で生ずるような誤差拡散ブロックの境界での目立ちを抑制することが可能になる。
【０１１６】
以上、本発明の一実施形態に係る好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【０１１７】
例えば、上記実施形態では、モノクロ表示の表示部２０を用いることを前提として本発明の一実施形態に係る構成を説明したが、上述したように、カラー表示の表示部２０を用いる場合にも本発明は適用可能である。その場合、階調変換部１０には色（例えば、赤（Ｒ）、緑（Ｇ）、青（Ｂ）、白（Ｗ））ごとに入力データｖｄ＿ｉｎ（ｎ，ｍ）が入力されることになるので、色ごとに上記処理を行えばよい。
【０１１８】
カラー表示の表示部２０を用いる場合において、誤差拡散ブロックＢＬの配置は、色によらず同じであるとしてもよいし、色ごとに異なることとしてもよい。最適な表示結果が得られる配置を適宜選択すればよい。
【０１１９】
また、上記実施形態では、個々の誤差拡散ブロックＢＬを水平方向及び垂直方向のそれぞれに平行な４辺により構成される長方形によって構成したが、その他の形状により個々の誤差拡散ブロックＢＬを構成することとしてもよい。個々の誤差拡散ブロックＢＬの形状は自由であり、最適な表示結果が得られるように適宜選択すればよい。
【０１２０】
また、上記実施形態で誤差拡散処理部１１に入力される入力データｖｄ＿ｉｎは、階調変換部１０の図示しないディザリング処理部によりディザリング済みのものであることとしてもよい。例えば、ディザリング処理部により元々８ビットの画像データをディザリング８により６ビットとし、さらに、この６ビットの画像データをディザリング６により４ビットとしたものを、入力データｖｄ＿ｉｎとして誤差拡散処理部１１に入力することとしてもよい。
【０１２１】
また、本発明の一実施形態の効果は、画面内の一部の領域に動画が埋め込まれ、他の領域は静止画となっているような場合に特に有効である。なお、誤差拡散処理部１１が処理を行うにあたっては、表示対象の入力データｖｄ＿ｉｎが、画面内の一部の領域に動画が埋め込まれ、他の領域は静止画となっているような画像を示すものであるか否かを判定し、その結果に応じて、処理を変えることとしてもよい。具体的には、判定結果が肯定である場合には、本実施形態で説明した処理を行う一方、判定結果が否定である場合には、例えば図４のステップＳ４で算出される第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を出力データｖｄ＿ｏｕｔ（ｎ，ｍ）として出力することとし、ステップＳ５，Ｓ７，Ｓ８，Ｓ１０，Ｓ１１にかかる処理はスキップすることとしてもよい。表示対象の入力データｖｄ＿ｉｎが、画面内の一部の領域に動画が埋め込まれ、他の領域は静止画となっているような画像を示すものであるか否かを判定し、その結果に応じて、処理を変えることで、効率のよい画像処理と、画像表示システムへの画像の表示が可能となる。
【０１２２】
以上説明したように、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調によって変えた誤差拡散法による階調処理を行うことで、誤差拡散ブロックＢＬのブロック境界を連続的に変化させることができる。したがって、誤差拡散ブロックＢＬのブロック境界が目立たなくなり、高画質な画像を提供することができる。本発明の一実施形態を利用することで、特に、低階調側において目立つ誤差拡散ブロックＢＬのブロック境界を目立たなくすることができる。
【０１２３】
（第２実施形態）
本実施形態では、本発明の一実施形態に係る別の画像処理装置を説明する。なお、第１実施形態と同様の構成に関しては説明を省略することがある。
【０１２４】
図１２は、図３及び図７に示した第１の画素データ算出部３０の機能ブロックの別の例を示す略ブロック図である。図７に対して、第２の境界判定回路１０４が削除され、第３の境界判定回路１０５、及び第４の境界判定回路１０６が追加された以外は同じである。本実施形態においては、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調未満の場合、第１の境界判定回路１０３が画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調以上６５階調未満の場合、第３の境界判定回路１０５が画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が６５階調以上の場合、第４の境界判定回路１０６が、画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。以上説明した内容以外は図７と同様であるから、説明は省略する。
【０１２５】
図１３は、図８に示した、入力データの階調に応じたｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。
【０１２６】
図１３は、第１の画素データ算出部３０は、ステップＳ５０にしたがって、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５以上の場合と、６５未満の場合とで処理が異なる。入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が６５以上の場合には、ステップ５２にしたがって、第４の境界判定回路１０６により画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。第１の画素データ算出部３０は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５未満の場合には、ステップＳ５１にしたがって、画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。ステップＳ５１では、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５以上の場合には、ステップＳ５３にしたがって、第３の境界判定回路１０５により画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。ステップＳ５１では、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５未満の場合には、ステップＳ５４にしたがって、第１の境界判定回路１０３により画素ＰＸ（ｎ，ｍ）と境界との関係を判定する処理を行う。そして、それぞれのステップにおいて、画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について境界に位置する場合と、水平方向のみについて境界に位置する場合と、垂直方向のみについて境界に位置する場合と、水平方向と垂直方向のいずれについても境界に位置しない場合とで、異なる数式により第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出を行う。なお、図８の「水平方向のみの場合」のｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出方法は、「両方向の場合」の算出方法と同じ数式であっても良い。
【０１２７】
具体的には、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５階調以上の場合のステップ５２では、式（３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／４、ｃは１／４、ｄは１／２とする。ステップ５２は、図８で説明したステップＳ２３と同様の処理を行うため、説明は省略する。
【０１２８】
入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５未満、かつ２５以上の場合のステップ５３では、図１４に示すフロー図にしたがって処理が行われる。ステップ５３では、式（３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは３／８、ｃは１／８、ｄは１／２とする。
【０１２９】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向の両方について誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は前述した式（４）となる。
【０１３０】
画素ＰＸ（ｎ，ｍ）が垂直方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は次の式（２２）となる。
【０１３１】
【数２２】
2019012922.tif 000024
【０１３２】
画素ＰＸ（ｎ，ｍ）が水平方向のみについて誤差拡散ブロックＢＬのブロック境界に位置する場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（２３）となる。
【０１３３】
【数２３】
2019012922.tif 000025
【０１３４】
画素ＰＸ（ｎ，ｍ）が水平方向と垂直方向のいずれについても誤差拡散ブロックＢＬのブロック境界に位置しない場合、ｖｄ１＿ｍｏｄ（ｎ，ｍ）は式（２４）となる。
【０１３５】
【数２４】
2019012922.tif 000026
【０１３６】
一方、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合のステップ５４では、図１５に示すフロー図にしたがって処理が行われる。ステップＳ５４では、式（３）に示した拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄをそれぞれ、ａは０、ｂは１／２、ｃは０、ｄは１／２とする。ステップＳ５４は、図８で説明したステップＳ２２と同様の処理を行うため、説明は省略する。
【０１３７】
また、第２の画素データ算出部３１により第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる場合においても、第１の画素データ算出部３０により第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる場合と同様に、６５階調以上と、２５階調以上６５階調未満と、２５階調未満とで、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを変える。第２の画素データ算出部３１は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調未満の場合の第２の画素データ算出部３１Ａ（図示せず）と、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が２５階調以上６５階調未満の場合の第２の画素データ算出部３１Ｃ（図示せず）と、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が６５階調以上の場合の第２の画素データ算出部３１Ｄ（図示せず）と、を有する。第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）を算出する処理が行われる場合には、第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）の算出式は、図８で説明したステップＳ２３と、図１４で説明したステップＳ５３と、図１５で説明したステップＳ５４で示した数式において、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を第２の画素データｖｄ２＿ｍｏｄ（ｎ，ｍ）に置き換えて、さらに、第１の誤差値Ｅｒｒ１を修正誤差値Ｅｒｒ２’に置き換えれればよい。
【０１３８】
図１６は、図１３に示したｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理、及びｖｄ２＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示す図である。図１６（Ａ）は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５階調以上の場合のｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示している。図１６（Ａ）に示すように、上面視において、注目画素ＰＸ（ｎ，ｍ）に対して、水平方向の画素に乗算される拡散誤差の規格化係数ｄは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、右下方向の画素に乗算される拡散誤差の規格化係数ａは０である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、垂直方向の画素に乗算される拡散誤差の規格化係数ｂは１／４である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、左下方向の画素に乗算される拡散誤差の規格化係数ｃは１／４である。図１６（Ｂ）は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調以上６４階調未満の場合のｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示している。図１６（Ｂ）に示すように、上面視において、注目画素ＰＸ（ｎ，ｍ）に対して、水平方向の画素に乗算される拡散誤差の規格化係数ｄは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、右下方向の画素に乗算される拡散誤差の規格化係数ａは０である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、垂直方向の画素に乗算される拡散誤差の規格化係数ｂは３／８である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、左下方向の画素に乗算される拡散誤差の規格化係数ｃは１／８である。図１６（Ｃ）は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、２５階調未満の場合のｖｄ１＿ｍｏｄ（ｎ，ｍ）算出処理の具体的な例を示している。図１６（Ｃ）に示すように、上面視において、注目画素ＰＸ（ｎ，ｍ）に対して、水平方向の画素に乗算される拡散誤差の規格化係数ｄは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、右下方向の画素に乗算される拡散誤差の規格化係数ａは０である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、垂直方向の画素に乗算される拡散誤差の規格化係数ｂは１／２である。同様に、注目画素ＰＸ（ｎ，ｍ）に対して、左下方向の画素に乗算される拡散誤差の規格化係数ｃは０である。
【０１３９】
本実施形態においては、図１６は、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調が、６５階調以上と、２５階調以上６５階調未満と、２５階調未満との、それぞれの階調の範囲に応じた３つの拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを利用する例を示したが、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを利用する例はこの例に限定されない。例えば、入力データｖｄ＿ｉｎ（ｎ，ｍ）の階調を、４つの範囲に分けて、誤差拡散ブロックＢＬのブロック境界を目立たなくしたければ、４つの範囲に分けたそれぞれの階調の範囲に応じた４つの拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを利用すればよい。誤差拡散ブロックＢＬのブロック境界を目立たなくしたい程度に応じて、適宜対応すればよい。
【０１４０】
以上のように、ｖｄ１＿ｍｏｄ（ｎ，ｍ）の算出処理において、入力データｖｄ＿ｉｎ（ｎ，ｍ）が、６５階調以上と、２５階調以上６５階調未満と、２５階調未満とで、拡散誤差の規格化係数を表す定数ａ、ｂ、ｃ、ｄを変えることで、誤差拡散法による階調処理を行い、誤差拡散ブロックＢＬのブロック境界を目立たなくすることができる。特に、低階調側に誤差拡散ブロックＢＬのブロック境界が目立つ場合において、本発明の一実施形態に係る画像処理装置、画像処理方法、それらを実装した画像表示システムを用いることで、誤差拡散ブロックＢＬのブロック境界が目立たなくなり、高画質な画像を表示可能な画像処理装置、画像処理装置の処理方法、それらを実装した画像表示システムを提供することができる。
【０１４１】
（第３実施形態）
本実施形態では、本発明の一実施形態に係るさらに別の画像処理装置の例を説明する。なお、第１実施形態または第２実施形態と同様の構成に関しては説明を省略することがある。
【０１４２】
図１７は、図３に示した第１の量子化データ算出部３２の機能ブロックを示す略ブロック図である。
【０１４３】
第１の量子化データ算出部３２は、第１の量子化部３２Ａ、第２の量子化部３２Ｂ、及び選択回路２０９を有する。第１の量子化データ算出部３２は、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）、及び入力データｖｄ＿ｉｎ（ｎ，ｍ）が入力される。また、第１の量子化データ算出部３２は、第１の量子化データＬＶ１（ｎ，ｍ）を出力する。なお、（ｎ，ｍ）が各機能ブロックに入力され、各データと各データの座標とを紐付けする役割を有していてもよい。
【０１４４】
第１の量子化データＬＶ１（ｎ，ｍ）の算出の、回路の動作を説明する。第１の量子化データ算出部３２に、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）、及び入力データｖｄ＿ｉｎ（ｎ，ｍ）が入力される。第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）は、第１の量子化部３２Ａ、及び第２の量子化部３２Ｂに入力される。第１の量子化部３２Ａは、入力データの階調が８ビットから３ビットへの符号化あるいは量子化を行う。第２の量子化部３２Ｂは、入力データの階調が６ビットから３ビットへの符号化あるいは量子化を行う。第１の量子化部３２Ａ、及び第２の量子化部３２Ｂは、符号化あるいは量子化されたデータ２２７を出力する。
【０１４５】
選択回路１０９は、選択信号１３０に応じて、符号化あるいは量子化されたデータ２２７のうち、８ビットから３ビットへの符号化あるいは量子化されたデータ、または、６ビットから３ビットへの符号化あるいは量子化されたデータのいずれかを選択する。第１の量子化データ算出部３２は、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を出力する。なお、選択信号２３０は、外部から入力される信号でもよいし、内部で生成された信号でもよい。選択信号２３０が、８ビットから３ビットへの符号化あるいは量子化されたデータ、または、６ビットから３ビットへの符号化あるいは量子化されたデータのいずれかを選択することができるように、本発明が、その要旨を逸脱しない範囲において、回路構成、機能を、適宜検討すればよい。
【０１４６】
図１８、及び図１９は、図４に示したＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理及びＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理の別の一実施形態の詳細を示すフロー図である。同図に示す「ｉ」は「１」又は「２」を表す変数である。以下では、ｉ＝１の場合の処理、すなわちＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理に着目して説明するが、ＬＶ２（ｎ，ｍ），ｖｄ２＿ｏｕｔ（ｎ，ｍ）算出処理についても同様である。
【０１４７】
まず初めに、ステップＳ６０によって、第１の量子化データ算出部３２により、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）を、入力データの階調が８ビットから３ビットへの符号化、あるいは量子化をするのか、入力データの階調が６ビットから３ビットへの符号化、あるいは量子化をするのか、を選択する。
【０１４８】
入力データの階調が８ビットから３ビットへの符号化、あるいは量子化を選択した場合は、ステップＳ６１によって、第１の量子化処理部３２Ａにより量子化処理１の処理を行う。入力データの階調が６ビットから３ビットへの符号化、あるいは量子化を選択した場合は、ステップ６２によって、第１の量子化処理部３２Ｂにより量子化処理２の処理を行う。
【０１４９】
ステップＳ６１に応じた、量子化処理１の処理は、図１０において説明したステップＳ３０と同様であるから、説明は省略する。
【０１５０】
ステップＳ６２では、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値の範囲が判定される。図１９の例では、第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値が「２３４以上」「１９８以上２３４未満」「１６２以上１９８未満」「１２６以上１６２未満」「９０以上１２６未満」「５４以上９０未満」「１８以上５４未満」「その他（１８未満）」のいずれに属するかが判定される。なお、図１９ではこのように８つの範囲を用いているが、これは、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）のビット数３で表現可能な数が「０」〜「７」の８種類であることに対応するものである。第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）のビット数によっては、より細かく範囲を設定することとしてもよいし、逆により粗く範囲を設定することとしてもよい。細かく設定するほど、高精細な画像が得られることになる。
【０１５１】
第１の量子化データ算出部３２は、ステップＳ６２の判定結果に基づいて、第１の量子化データＬＶ１（ｎ，ｍ）を算出する。図１９の例では、例えば第１の画素データｖｄ１＿ｍｏｄ（ｎ，ｍ）の値が「２３４以上」である場合、第１の量子化データ算出部３２は、第１の量子化データＬＶ１（ｎ，ｍ）の値を「２５２」と決定する。同様に、「１９８以上２３４未満」に対して「２１６」、「１６２以上１９８未満」に対して「１８０」「１２６以上１６２未満」に対して「１４４」、「９０以上１２６未満」に対して「１０８」、「５４以上９０未満」に対して「７２」、「１８以上５４未満」に対して「３６」、「その他（１８未満）」に対して「０」をそれぞれ第１の量子化データＬＶ１（ｎ，ｍ）の値として決定する。
【０１５２】
こうして第１の量子化データＬＶ１（ｎ，ｍ）が決定されると、次に第１の出力画素データ算出部３３により、３ビットデータである第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値が算出される。具体的に説明すると、第１の出力画素データ算出部３３は、例えば第１の量子化データＬＶ１（ｎ，ｍ）の値が「２５２」である場合、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値を「１１１ｂ」とする。同様に、「２１６」に対して「１１０ｂ」、「１８０」に対して「１０１ｂ」、「１４４」に対して「１００ｂ」、「１０８」に対して「０１１ｂ」、「７２」に対して「０１０ｂ」、「３６」に対して「００１ｂ」、「０」に対して「０００ｂ」をそれぞれ第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）の値として決定する。
【０１５３】
以上のように、第１の量子化データＬＶ１（ｎ，ｍ）、第１の出力画素データｖｄ１＿ｏｕｔ（ｎ，ｍ）、第２の量子化データＬＶ２（ｎ，ｍ）、第２の出力画素データｖｄ２＿ｏｕｔ（ｎ，ｍ）が算出される。
【０１５４】
本実施形態においては、ＬＶ１（ｎ，ｍ），ｖｄ１＿ｏｕｔ（ｎ，ｍ）算出処理において、第１の量子化データ算出部３２は、入力データの階調が８ビットから３ビットへの符号化あるいは量子化を行う第１の量子化処理部３２Ａと、入力データの階調が６ビットから３ビットへの符号化あるいは量子化を行う第１の量子化処理部３２Ｂとの、二つの処理部を有し、量子化処理をする例を示したが、この例に限定されない。例えば、入力データの階調が４ビット、あるいは、入力データの階調が１２ビットであっても対応できるように、入力データの階調が４ビットから３ビットへの符号化あるいは量子化を行う第１の量子化処理部３２Ｃと、入力データの階調が１２ビットから３ビットへの符号化あるいは量子化を行う第１の量子化処理部３２Ｄと、を有していてもよい。誤差拡散ブロックＢＬのブロック境界を目立たなくしたい程度に応じて、量子化処理を適宜検討すればよい。なお、第２の量子化データ算出部３４についても同様である。
【０１５５】
本実施形態において示したように、第１の量子化データ算出部３２、および第２の量子化データ算出部３４が、複数の量子化処理部を有することで、複数の入力データの階調に対して、一つの画像処理装置で画像処理を行うことができる。すなわち、信号源が変わったとしても、本実施形態において示した画像処理装置を用いることで、一つの画像処理回路で画像処理を行うことができる。
【０１５６】
本発明の実施形態として上述した各実施形態は、相互に矛盾しない限りにおいて、適宜組み合わせて実施することができる。
【０１５７】
本明細書においては、開示例として主に画像処理装置と画像処理方法とそれらを実装した画像表示システムを例示したが、画像処理装置が処理した画素データを表示する表示装置は、別の自発光型表示装置、液晶表示装置、あるいは電気泳動素子などを有する電子ペーパー型表示装置など、あらゆるフラットパネル型の表示装置が挙げられる。また、中小型から大型まで、特に限定することなく適用が可能である。
【０１５８】
上述した各実施形態の態様によりもたらされる作用効果とは異なる別の作用効果であっても、本明細書の記載から明らかなもの、または、当業者において容易に予測し得るものについては、当然に本発明によりもたらされるものと解される。
【符号の説明】
【０１５９】
１・・・画像表示システム、１０・・・階調変換部、１１・・・誤差拡散処理部、２０・・・表示部、２１・・・表示面、３０・・・第１の画素データ算出部、３１・・・第２の画素データ算出部、３２・・・第１の量子化データ算出部、３２Ａ・・・第１の量子化部、３２Ｂ・・・第２の量子化部、３３・・・第１の出力画素データ算出部、３４・・・第２の量子化データ算出部、３５・・・第２の出力画素データ算出部、３６・・・第１の誤差値算出部、３７・・・第２の誤差値算出部、３８・・・制限誤差値算出部、３９・・・判定部、４０・・・修正誤差値算出部、４１・・・記憶部、１０３・・・第１の境界判定回路、１０４・・・第２の境界判定回路、１０５・・・第３の境界判定回路、１０６・・・第４の境界判定回路、１０７・・・ラッチ回路、１０８・・・選択信号発生回路、１０９、２０９・・・選択回路、１１０・・・データ合成回路、１２７・・・拡散誤差の規格化係数が乗算されたデータ、１２８・・・選択回路１０９から出力されたデータ、１２９・・・ラッチ回路から出力されたデータ、１３０、２３０・・・選択信号、２２７・・・符号化あるいは量子化されたデータ、Ｂ・・・誤差拡散ブロックＢＬの境界、ＢＬ・・・誤差拡散ブロック、Ｅｒｒ１・・・第１の誤差値、Ｅｒｒ１＿ｍｕｘ・・・制限誤差値、Ｅｒｒ２・・・第２の誤差値、Ｅｒｒ２’・・・修正誤差値、Ｈ・・・水平方向距離、ＬＶ１・・・第１の量子化データ、ＬＶ２・・・第２の量子化データ、ＰＸ・・・画素、Ｖ・・・垂直方向距離、ｖｄ＿ｉｎ・・・入力データ、ｖｄ＿ｏｕｔ・・・出力データ、ｖｄ１＿ｍｏｄ・・・第１の画素データ、ｖｄ１＿ｏｕｔ・・・第１の出力画素データ、ｖｄ２＿ｍｏｄ・・・第２の画素データ、ｖｄ２＿ｏｕｔ・・・第２の出力画素データ
【図１】
2019012922.tif 000027
【図２】
2019012922.tif 000028
【図３】
2019012922.tif 000029
【図４】
2019012922.tif 000030
【図５】
2019012922.tif 000031
【図６】
2019012922.tif 000032
【図７】
2019012922.tif 000033
【図８】
2019012922.tif 000034
【図９】
2019012922.tif 000035
【図１０】
2019012922.tif 000036
【図１１】
2019012922.tif 000037
【図１２】
2019012922.tif 000038
【図１３】
2019012922.tif 000039
【図１４】
2019012922.tif 000040
【図１５】
2019012922.tif 000041
【図１６】
2019012922.tif 000042
【図１７】
2019012922.tif 000043
【図１８】
2019012922.tif 000044
【図１９】
2019012922.tif 000045