(57)【要約】【課題】一様な画像や緩やかに変化する画像を入力して、その下位ビットを誤差拡散するとき、誤差拡散された画像に大きな変化が生じないようにする。【解決手段】入力画素データの所定数の下位ビットを切り捨てた上位ビットの値を出力する切捨回路１１３と、前記切り捨てた所定数の下位ビットの値を積算して桁上がりが発生したときに桁上がりビットを出力する積算回路１１１と、前記上位ビットの値に該桁上がりビットを加算して出力画素データを生成する加算回路１１２とからなる。【選択図】  図２
2009260856.tif 000002
【特許請求の範囲】
【請求項１】
複数のラインから構成される入力画像の、それぞれのライン内に配置された画素の画素値を表す、所定のビット数を有する入力画素データを、該所定のビット数よりも少ないビット数を有する出力画素データに変換して出力する画像処理装置であって、
１つのライン内に配置された複数の画素の画素値を表す入力画素データの入力を、該ライン内での配置の順番に受け、所定数の下位ビットを切り捨てた上位ビットの値を出力する切捨回路と、
前記切り捨てた所定数の下位ビットの値を積算し、桁上がりが発生したときに桁上がりビットを出力する積算回路と、
前記上位ビットの値に該桁上がりビットを加算して前記出力画素データを生成する加算回路とからなる第１の誤差拡散回路を含むことを特徴とする画像処理装置。
【請求項２】
前記積算回路が、前記１つのライン内に配置された複数の画素の画素値を表す入力画素データの下位ビットの値の積算に続いて、１以上の所定の値を加算してから、次のライン内に配置された複数の画素の画素値を表す入力画素データの下位ビットの値の積算を行うことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記入力画像の画素値が緩やかに変化することを検知したときに検知信号を出力する一様判定回路と、
前記第１の誤差拡散回路とは異なる処理を行って前記出力画素データを生成する第２の誤差拡散回路とをさらに含み、
前記一様判定回路が検知信号を出力したときに前記第１の誤差拡散回路が生成した出力画素データを出力し、それ以外のときに、前記第２の誤差拡散回路が生成した出力画素データを出力することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
１ライン分の入力画素データを記憶可能なラインメモリと、
第１のラインに配置された画素の画素値を表す入力画素データの入力を受け、該入力画素データに対する処理を行って処理済みの入力画素データを生成し、前記ラインメモリに書き込む他の画像処理回路とをさらに含み、
前記第２の誤差拡散回路が、前記第１のラインに配置された画素の画素値を表す入力画素データの入力を受けるとともに、前記ラインメモリに既に書き込まれた、前記第１のラインの直前のラインに配置された画素の画素値を表す処理済みの入力画素データを読み出し、該第１のラインに配置された画素の画素値を表す出力画素データを生成することを特徴とする請求項３記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データの階調数をより少ない階調数に変換する画像処理装置に関するものである。
【背景技術】
【０００２】
デジタル化されたＲＧＢの色信号を入力とし、それを伝送、表示させる技術は、入出力機器の物理的性質と画像通信、補正のアルゴリズムを分離することができるために、放送、通信の分野では無線、有線を問わず広く用いられている。近年では表示画面の大型化と撮影機器の高度化に伴い、ＲＧＢ信号の階調精度を従来の８ビットから１０ビットに増した規格が放送、データ通信において用いられることが検討されている。
【０００３】
しかしながら、液晶ディスプレー（ＬＣＤ）やプラズマディスプレー（ＰＤＰ）などのディスプレーには、各々の物理的性質に応じて、デジタル化された色信号を有効なものとして表示できる限界が存在し、多くの場合１０ビットの階調をそのまま表現することはできない。
【０００４】
ＬＣＤで表現できる階調の精度は、液晶分子の連続的な配向を制御するＡＤコンバータの制御に依存する。ＰＤＰではディスプレー表面の蛍光体の発光、非発光によって階調を表現するため、ＬＣＤに比べて、さらに、表示できる階調数が少ない。そこで、誤差拡散法と呼ばれる手法や、ディザ法と呼ばれる手法を用いて、擬似的に表現できる階調を増やす技術が開発されてきた。
【０００５】
誤差拡散法とは、あるビット数で表現される画素の色をより少ないビット数で表現する際に、ある画素から切り捨てられた下位ビットの値（誤差）を隣壊する画素に加算（拡散）することにより、画面全体としての画質の劣化を防止する技術である。通常、２次元画像を構成する画素は、上側から下側に、左側から右側に入力され、誤差拡散処理の後に出力されるので、切り捨て誤差の拡散は確定していない下側、右側の隣接画素に対してなされることになる。例として、１つ隣の画素に誤差を拡散させるFloyd-Steinberg法（特許文献１）、２つ隣の画素まで誤差を拡散させるJarvis法、Stucki法などが知られている。
【０００６】
Floyd-Steinberg法では、例えば、１つ前（上側）のラインの隣接する画素Ａ，Ｂ，Ｃ、および同一のラインの１つ前（左側）の画素Ｄから切り捨てられる下位ビットの値（誤差）を後の画素Ｘに一定の割合で加算する（図７）。加算された画素Ｘではその値の上位ビットを出力し、当該画素Ｘの切り捨てた下位ビットをさらに後の画素へ加算する（図８）。
【０００７】
ディザ法は、各画素の画像全体での位置に応じてその画素の階調値の切りあげ、切り捨てを選択する方法である。画像全体を所定のディザテーブルの大きさに分割し、各画素の下位ビットの値がテーブルの対応する部分の値より大きい場合は切り上げ、小さい場合には切り捨てを行う方法が一般的である。さらに、テレビなどの動映像に対しては、フレームごとに適用させるディザテーブルを回転させることによって、時間的にも切り上げ、切り捨ての誤差を分散させる。
【０００８】
また、このような擬似的に階調を増やす手法の実施による消費電力の増大を低減するために、入力映像信号の輝度が緩やかに変化することが検出されたときのみに、階調を増やす処理を実施することも提案されている（特許文献２）。
【０００９】
図９は上記の図７で説明した誤差拡散法を回路で実現するための誤差拡散回路４００の構成を示す図である。４０１〜４０３は、ラインメモリ２００から読み出した画素Ａ，Ｂ，Ｃの下位ビットの値を保持するレジスタ、４０４は現在のラインの直前の画素Ｄの全ビットを保持するレジスタ、４０５は現在の画素Ｘの全ビットを保持するレジスタである。４１１〜４１４は画素Ａ，Ｂ，Ｃ，Ｄの下位ビットを１倍、５倍、３倍、７倍し、１／１６にする（４ビットだけ下位ビット側にずらす）乗算器、４２１〜４２４は加算器、４３１は下位ビットを切り捨てて上位ビットのみを出力する下位ビット切捨回路である。
【００１０】
このように、１つ前のラインの画素の値を保持するため、最低でも１ライン分のラインメモリ２００が必要になる。これはＨＤＴＶ規格の画像では、１９２０画素×１０ビット×３色＝約９ｋＢの記憶容量に相当し、非常に大きな規模となる。そこで、図１０に示すように、ラインメモリ２００を、ノイズ除去処理回路等の他の画像処理回路３００と共有して、回路規模の節約を図る手法が用いられることがある。
【特許文献１】特開平１０−２１０２９１号公報
【特許文献２】特開平１１−３２７４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、図１０に示すようなラインメモリ２００の共有を図る方法を使うと、正確な誤差拡散法を実現することができない問題がある。図７の画素Ｘに対応するＲＧＢ各色の出力値は、その値に左側と上側の画素Ａ，Ｂ，Ｃ，Ｄの下位ビットを加え、その値からその下位ビット分を切り捨てた値となる。この切り捨てられた下位ビットの値は、一部は同一のラインの次（右側）の画素に拡散されるが、他の一部は、次のラインの画素に拡散される。図９の回路では、この、次のラインに拡散する下位ビットの値が、ラインメモリ２００に書き込まれる。すなわち、ラインメモリ２００には、入力された画素Ｘの値がそのまま書き込まれるのではなく、次のラインの画素に拡散されるべき誤差が加算された値が書き込まれる。
【００１２】
ところが、図１０のようにラインメモリ２００を他の画像処理回路３００と共用する場合には、その記憶内容を変更させてはいけない。このため、誤差を含めた画素Ｘの値を記憶領域に書き込むことはできない。その結果、一様な画像や緩やかに変化する画像に対して深刻な影響を与える。
【００１３】
例として、図１１のように緩やかな変化をする８ビット映像信号を５ビットで再現しようとする場合を考える。簡単のため１次元（誤差分を右側の画素に拡散させる）の場合を考えるが、２次元の画像の場合も同様である。左半分の画素ａ〜ｉの値は切り捨てられる下位３ビットの値が「３」、右半分の画素ｊ〜ｑの値は切り捨てられる下位３ビットの値が「４」である。
【００１４】
この場合、画素ｂでは画素ａの下位３ビットの誤差「３」が加算されるので加算誤差は「６」になるが、「８」には達せず、上位５ビットについて繰り上げは発生しない。このとき、この下位３ビットは下位ビット切捨回路４３１で切り捨てられる。また、この様子は、画素ａ〜画素iで同じである。画素ｊでは、左隣の画素ｉの誤差「３」に自身の誤差「４」が加算され「７」になるが、同様に「８」には達せず、上位５ビットについて繰り上げは発生しない。
【００１５】
しかし、画素ｋ〜ｑでは、左隣の画素の誤差「４」に自身の誤差「４」が加算されるので、誤差は「８」になり、各画素ｋ〜ｑで上位ビットが「１」ずつ繰り上がる。したがって、下位ビット切捨回路４３１から出力する画素の上位５ビットは、誤差が「３」である画素と誤差が「４」である画素の境目近くで、上位５ビットが「１」だけ繰り上った後は、画素毎に順次「１」ずつ繰り上げが発生して変化が激しくなり、目につきやすくなる。
【００１６】
本発明の目的は、上記のような一様な画像や緩やかに変化する画像であっても、誤差拡散された画像に大きな変化が生ぜず、自然な画像が出力されるようにした画像処理装置を提供することである。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、請求項１に係る発明の画像処理装置は、複数のラインから構成される入力画像の、それぞれのライン内に配置された画素の画素値を表す、所定のビット数を有する入力画素データを、該所定のビット数よりも少ないビット数を有する出力画素データに変換して出力する画像処理装置であって、１つのライン内に配置された複数の画素の画素値を表す入力画素データの入力を、該ライン内での配置の順番に受け、所定数の下位ビットを切り捨てた上位ビットの値を出力する切捨回路と、前記切り捨てた所定数の下位ビットの値を積算し、桁上がりが発生したときに桁上がりビットを出力する積算回路と、前記上位ビットの値に該桁上がりビットを加算して前記出力画素データを生成する加算回路とからなる第１の誤差拡散回路を含むことを特徴とする。
請求項２にかかる発明は、請求項１に記載の画像処理装置において、前記積算回路が、前記１つのライン内に配置された複数の画素の画素値を表す入力画素データの下位ビットの値の積算に続いて、１以上の所定の値を加算してから、次のライン内に配置された複数の画素の画素値を表す入力画素データの下位ビットの値の積算を行うことを特徴とする。
請求項３にかかる発明は、請求項１又は２に記載の画像処理装置において、前記入力画像の画素値が緩やかに変化することを検知したときに検知信号を出力する一様判定回路と、前記第１の誤差拡散回路とは異なる処理を行って前記出力画素データを生成する第２の誤差拡散回路とをさらに含み、前記一様判定回路が検知信号を出力したときに前記第１の誤差拡散回路が生成した出力画素データを出力し、それ以外のときに、前記第２の誤差拡散回路が生成した出力画素データを出力することを特徴とする。
請求項４にかかる発明は、請求項３に記載の画像処理装置において、１ライン分の入力画素データを記憶可能なラインメモリと、第１のラインに配置された画素の画素値を表す入力画素データの入力を受け、該入力画素データに対する処理を行って処理済みの入力画素データを生成し、前記ラインメモリに書き込む他の画像処理回路とをさらに含み、前記第２の誤差拡散回路が、前記第１のラインに配置された画素の画素値を表す入力画素データの入力を受けるとともに、前記ラインメモリに既に書き込まれた、前記第１のラインの直前のラインに配置された画素の画素値を表す処理済みの入力画素データを読み出し、該第１のラインに配置された画素の画素値を表す出力画素データを生成することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、１ラインメモリを共有することによる回路規模の節約の利点は維持したまま、一様な画像や緩やかに変化する画像に対する自然な再現性を小規模な回路で実現することができる。
【発明を実施するための最良の形態】
【００１９】
本発明では、入力画像が部分的に一様な画像あるいは緩やかに変化する画像であるか否かを判定し、それによって誤差拡散手法を誤差を累積しない手法と規則的な誤差拡散法とで切り替える。
【００２０】
一様でないと判定された場合の誤差拡散手法には、従来のＦｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇ法等の手法を用いる。ただし、画像縦方向への切捨て誤差拡散に必要なラインメモリは他の機能部分と共有するものとし、そこへの計算された累積誤差の記録は行わない。つまり、読み出しのみを行う。一方、一様であると判定された場合の誤差拡散手法には、一様誤差拡散法を用いる。これはその誤差部分としての下位ビットの値を累積するカウンタを設け、その値が切り捨て範囲を越えるごとに画素値を切り上げることで規則的に切り捨て、切り上げ画素を配置するようにする。
【００２１】
従来の誤差拡散法で生じた段差はすべて解消されたわけではなく、分散されるようになっただけであるため、画像の一様、滑らかな見た目を保持するために、誤差拡散処理部の後段にディザ処理部分を設けてもよい。その場合には規則的な誤差拡散処理部分と周期が合致しないようにディザテーブルの回転角度を場所ごとに変えるものとする。
【００２２】
＜実施例＞
図１は本発明の実施例の画像処理装置の構成を示すブロック図である。画後処理装置１００には、それぞれのライン内に配置された画素の画素値（各色の階調値、色差値、等）を表す所定のビット数を有する入力画素データが入力され、入力画素データよりも少ないビット数を有する出力画素データが出力される。具体的に、例えば、ＲＧＢ各色１０ビットの輝度値を有する入力画素データが入力され、ＲＧＢ各色６ビットの輝度値を有する出力画素データが出力される。
【００２３】
図１に示す画像処理装置１００は、各１０ビットのＲＧＢ画像データを入力して一様誤差拡散を行い各７ビットのＲＧＢ画像データを出力する第１の誤差拡散回路１１０、各１０ビットのＲＧＢ画像データを入力してＦｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇ法による誤差拡散を行い各７ビットのＲＧＢ画像データを出力する第２の誤差拡散回路１２０、入力する画像データが一様な画像あるいは緩やかに変化する画像であるか否かを判定する一様判定回路１３０、その一様判定回路１３０の判定結果に応じて第１の誤差拡散回路１１０の出力データと第２の誤差拡散回路１２０の出力画像データの一方を選択するセレクタ１４０、およびセレクタ１４０の各７ビットのＲＧＢ出力画像データに対してディザ処理を行い各６ビットのＲＧＢ画像データを出力するディザ処理回路１５を備える。２００はラインメモリであり、入力画像の１ライン分の画素値を第２誤差拡散回路１２０に供給すると共に、他の画像処理回路３００での処理用に使用される。
【００２４】
図１に示した例では、入力された画素のデータがそのままラインメモリ２００に書き込まれる。そして、他の画像処理回路３００がラインメモリ２００から入力画素データを読み出し、さまざまな処理を行い、処理済みの入力画素データを、ラインメモリ２００に書き込む。第２の誤差拡散回路１２０は、１つ前のラインの画素からの誤差拡散を行うために、この、処理済みの入力画素データを読み出す。他の画像処理回路３００としては、例えば、ノイズ低減処理回路を設けることができる。
【００２５】
第１の誤差拡散回路１１０の構成例を図２に示す。ＲＧＢ用の回路はそれぞれは同じであるので、１色の画像データ用の場合を代表して説明する。この第１の誤差拡散回路１１０は、カウンタ１１１と、加算器１１２と、入力１０ビットから上位７ビットを出力し下位３ビットを切り捨てる切捨回路１１３とから構成される。カウンタ１１１はレジスタ１１１Ａと加算器１１１Ｂから構成され、入力画像データの切り捨てられた下位３ビットの値を積算し、そのカウント値が「８」に達すると、オーバフローして桁上がりビットを発生し、加算器１１２において上位７ビットの値に「１」を加算する。上位７ビットはこれでその値が「１」だけ繰り上がる。
【００２６】
図３は緩やかに変化するライン画像ａ〜ｑを第１の誤差拡散回路１１０に入力して処理する場合の１次元での説明図である。画素ａ〜ｉはその下位３ビットの値が「３」、画素ｊ〜ｑは下位３ビットの値が「４」であるとする。
【００２７】
画素ａ〜ｃの下位３ビットを加算すると、画素ｃの時点で「９」（＝３＋３＋３）となるので、オーバフローにより画素ｃの上位７ビットの値が「１」だけ繰り上がる。カウンタ１１１の値は「１」になる。
【００２８】
さらに画素ｄ〜ｆの下位３ビットを加算すると、画素ｆの時点で「１０」（＝１＋３＋３＋３）となるので、このときも、オーバフローにより画素ｆの上位７ビットの値が「１」だけ繰り上がる。カウンタ１１１の値は「２」になる。
【００２９】
さらに画素ｇ〜ｈの下位３ビットを加算すると、画素ｆの時点で「８」（＝２＋３＋３）となるので、このときも、オーバフローにより画素ｈの上位７ビットの値が「１」だけ繰り上がる。カウンタ１１１の値は「０」になる。
【００３０】
さらに画素ｉ〜ｋの下位３ビットを加算すると、画素ｋの時点で「１１」（＝０＋３＋４＋４）となるので、このときも、オーバフローにより画素ｋの上位７ビットの値が「１」だけ繰り上がる。カウンタ１１１の値は「３」になる。
【００３１】
以下同様にして、下位３ビットの値が「３」で連続し、途中で「４」に変化し、さらに「４」で連続するような一様画像のときは、２〜４画素に１画素ずつ上位７ビットに「１」が加算される画像変化となる。これによって、画像が完全に一様な場合には、規則的に値の切り上げ画素が配置されるので、画像全体で階調を一定に保ち、かつ遠くから見た場合には一様な見た目を保つことができる。
【００３２】
図４は２次元の一様画像の場合の説明図である。白い四角部分は下位３ビットの誤差の値が「３」、網点の四角部分は同誤差の値が「４」である。数値は当該画素でのカウンタ１１１の値である。なお、図４の例では、１つのラインの最後の画素（図４の右端の画素）までの誤差の積算が終わった時点でのカウンタ１１１の値を、そのまま保って、次のラインの最初の画索（図の左端の画素）、および、それに続く画索の誤差の積算を行っている。誤差が「３」の画素領域では、カウンタ１１１の値が「０」、「１」、「２」、「３」の画素で上位７ビットが「１」だけ繰り上がる。誤差が「４」の画素領域では、カウンタ１１１の値が「０」、「１」、「２」の画素で上位７ビットが「１」だけ繰り上がる。
【００３３】
ところで、図５に示すように、１ラインの画素数が８の倍数（図５は１倍）のときは、カウンタ１１１の値が上下で同じ値で並び、上位７ビットが「１」だけ繰り上がる画素が縦に並ぶことになる。下位３ビットが「３」の白い四角部分では、カウント値が「０」、「１」、「２」、「３」が縦に並ぶところ、下位４ビットが「３」の網点の四角部分では、カウント値が「０」が縦に並ところで繰り上げが行われ、そこに縦縞が現れ、画像劣化を引き起こす。
【００３４】
そこで、このように１ラインの画素数が８の倍数のときは、図６に示すように、１ラインの最後の画素に所定の値（図５の例では、「３」又は「４」、すなわちラインの最後の画素の下位３ビットの値（誤差））を加算するようにした。この場合は、図２で説明したカウンタ１１１に、ラインの最後の画素のタイミング毎に、上記所定の値を加算すればよい。これによって、上位７ビットが「１」だけ繰り上がる画素が縦に並ぶことを回避することができる。
【００３５】
以上の例では、１つのライン内での誤差拡散のみを行う場合について説明した。しかし、図７に示したように、１つ前のラインの画素からの誤差拡散を合わせて行うことも可能である。具体的には、例えば、図１０に示されたように、１つ前のラインの画素Ａ，Ｂ，Ｃの下位ビットの値をレジスタ４０１，４０２，４０３に読み出し、適切な係数を乗算して、加算した値を、１つ前のラインの画素から拡散される誤差として、図２の第１の誤差拡散回路１１０に供給することも可能である。そして、図２の第１の誤差拡散回路１１０において、レジスタ１１１Ａから出力される値にも適切な係数を乗算し、上記１つ前のラインの画素から拡散される誤差と加算してから、加算器１１１Ｂに供給することが可能である。
【００３６】
第２の誤差拡散回路１２０は、Ｆｌｏｙｄ−Ｓｔｅｉｎｂｅｒｇ法による図１０で説明した誤差拡散回路４００と同じ構成であり、各画素での切り捨て誤差をその画素の右方、下方の画素へと一定の比率で分散させる。ただし、他の画像処理回路３００と共有するラインメモリ２００に、他の画素からの誤差を加算した新しい画素値を書き戻すことはしない。
【００３７】
一様判定回路１３０は、入力されたＲＧＢ画像データを用いて画像が一様な画像あるいは緩やかに変化する画像であるか否かを判定する。この一様判定回路１３０としては、当該画素の前方の例えば２個の画素の平均値と後方の２個の画素の平均値の差分をとり、その平均値の差分が所定の閾値の範囲内にあれば一様性有りと判定し、そうでないとき一様性無しと判定するよう動作する回路を使用できる。この例として、例えば、特許文献２に記載の水平方向のみ検出するもの（図３）があるが、その他に、水平・垂直方向に検出するもの（図５）、フィールド差分を考慮した時間的な移動によるもの（図１２）等も利用可能である。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施例の画像処理装置の構成を示すブロック図である。
【図２】図１の画像処理装置を構成する第１の誤差拡散回路の構成を示すブロック図である。
【図３】図２の第１の誤差拡散回路の動作説明図である。
【図４】図２の第１の誤差拡散回路を使用したときの２次元画像の各画素でのカウンタのカウント値のマップ図である。
【図５】図２の第１の誤差拡散回路を使用したときの２次元画像の１ラインの画素が８の整数倍のときの各画素でのカウンタのカウント値のマップ図である。
【図６】図５の欠点の改良を行ったマップ図である。
【図７】誤差拡散法の説明図である。
【図８】誤差拡散法の説明図である。
【図９】従来の誤差拡散回路の構成を示すブロック図である。
【図１０】従来の別の誤差拡散回路の構成を示すブロック図である。
【図１１】一様性画像を入力したときの誤差拡散の説明図である。
【符号の説明】
【００３９】
１００：画像処理装置
１１０：第１の誤差拡散回路、１１１：カウンタ、１１１Ａ：レジスタ、１１１Ｂ，１１２：加算器、１１３：切捨回路
１２０：第２の誤差拡散回路
１３０：一様判定回路
１４０：セレクタ
１５０：ディザ処理回路
２００：ラインメモリ
３００：他の画像処理回路
４００：誤差拡散回路、４０１〜４０５：レジスタ、４１１〜４１４：乗算器、４２１〜４２４：加算器、４３１：下位ビット切捨回路
【図１】
2009260856.tif 000003
【図２】
2009260856.tif 000004
【図３】
2009260856.tif 000005
【図４】
2009260856.tif 000006
【図５】
2009260856.tif 000007
【図６】
2009260856.tif 000008
【図７】
2009260856.tif 000009
【図８】
2009260856.tif 000010
【図９】
2009260856.tif 000011
【図１０】
2009260856.tif 000012
【図１１】
2009260856.tif 000013