(57)【要約】【課題】画像信号を構成する画素値としてのＮビット（Ｎは整数）の入力データをＭビット（Ｍは整数、且つＮ＞Ｍ）のデータに量子化する際に生じるバンディングの抑制のために誤差拡散を行う場合において、当該誤差拡散に伴い発生する伝送路上でのスイッチングノイズの抑制を図る。【解決手段】誤差拡散処理部に入力される前のＮビットのデータをＭビットのデータに量子化（副量子化）し、当該副量子化部により得たＭビットのデータに基づいて、誤差拡散処理部が有する主量子化部を経て得られるＭビットのデータに上記誤差拡散処理に起因して生じることとなるビット値反転の発生量を予測する。この予測結果に応じて、上記誤差拡散処理部におけるノイズシェーピングの周波数特性が変更されるように制御を行う。これにより、スイッチングノイズの発生量が大となることが予測される場合に対応して、誤差拡散効果の調整ができる。この結果、伝送路上で生じるスイッチングノイズの抑制を図ることができる。【選択図】図１
2012049582.tif 000002
【特許請求の範囲】
【請求項１】
画像信号を構成する画素値としてのＮビット（Ｎは整数）の入力データをＭビット（Ｍは整数、且つＮ＞Ｍ）のデータに量子化して出力する信号処理装置であって、
ＮビットのデータをＭビットのデータに量子化する主量子化部を有すると共に、当該主量子化部による量子化後のＭビットのデータとその量子化前のＮビットのデータとから算出した量子化誤差の値に基づき、ノイズシェーピングとしての誤差拡散処理を行う誤差拡散処理部と、
上記誤差拡散処理部に入力される前のＮビットのデータをＭビットのデータに量子化する副量子化部と、
上記副量子化部により得られたＭビットのデータに基づき、上記主量子化部を経て得られるＭビットのデータに上記誤差拡散処理に伴って生じるビット値反転の発生量を予測する予測部と、
上記予測部による予測結果に応じて、上記誤差拡散処理部におけるノイズシェーピングの周波数特性が変更されるように制御を行う特性変更制御部と
を備える信号処理装置。
【請求項２】
上記特性変更制御部は、上記ノイズシェーピングの周波数特性に関し、
上記予測部により上記ビット値反転の発生量が大であるとの予測結果が得られた場合は高域側の強調度合いがより低い周波数特性が設定されるように制御を行い、
上記ビット値反転の発生量が小であるとの予測結果が得られた場合は高域側の強調度合いがより高い周波数特性が設定されるように制御を行う
請求項１に記載の信号処理装置。
【請求項３】
上記予測部は、
上記副量子化部により得られたＭビットのデータについて、その最下位ビット側からのビット値「１」の連続数をカウントした結果に基づき上記ビット値反転の発生量を予測する
請求項２に記載の信号処理装置。
【請求項４】
上記誤差拡散処理部に入力される前のＮビットのデータが量子化されて得られたＭビットのデータに基づき、画素値が所定複数画素にわたって同値で連続している平坦領域を検出する平坦領域検出部をさらに備えると共に、
上記特性変更制御部は、
上記平坦領域検出部による検出結果に基づき、上記平坦領域を対象として上記予測結果に応じた上記周波数特性の変更制御を行う
請求項３に記載の信号処理装置。
【請求項５】
上記画像信号に基づいて空間周波数の高い領域である高域領域を検出する高域領域検出部と、
上記高域領域検出部が検出した上記高域領域に対して上記誤差拡散処理部による誤差拡散効果が与えられないように制御を行う処理制御部とをさらに備える
請求項４に記載の信号処理装置。
【請求項６】
上記処理制御部は、
上記高域領域検出部が検出した上記高域領域に対して上記誤差拡散効果が与えられず、且つ当該高域領域についての上記量子化誤差の算出及び蓄積が実行されるように制御を行う
請求項５に記載の信号処理装置。
【請求項７】
上記誤差拡散処理部は、上記量子化誤差の値に対してフィルタ処理を施すフィルタ処理部を有しており、
上記処理制御部は、
上記高域領域検出部による検出結果に基づき上記フィルタ処理部によるフィルタ処理出力と固定値との何れか一方を選択し、該選択した値を上記主量子化部に入力されるＮビットのデータに対して加算するように構成されている
請求項６に記載の信号処理装置。
【請求項８】
画像信号を構成する画素値としてのＮビット（Ｎは整数）の入力データをＭビット（Ｍは整数、且つＮ＞Ｍ）のデータに量子化して出力するにあたり、ＮビットのデータをＭビットのデータに量子化する主量子化部を有すると共に当該主量子化部による量子化後のＭビットのデータとその量子化前のＮビットのデータとから算出した量子化誤差の値に基づきノイズシェーピングとしての誤差拡散処理を行う誤差拡散処理部によって、誤差拡散処理を施す信号処理方法であって、
上記誤差拡散処理部に入力される前のＮビットのデータをＭビットのデータに量子化する副量子化ステップと、
上記副量子化ステップにより得たＭビットのデータに基づき、上記主量子化部を経て得られるＭビットのデータに上記誤差拡散処理に伴って生じるビット値反転の発生量を予測する予測ステップと、
上記予測ステップによる予測結果に応じて、上記誤差拡散処理部におけるノイズシェーピングの周波数特性が変更されるように制御を行う特性変更制御ステップと
を有する信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号を構成する画素値としてのＮビット（Ｎは整数）の入力データをＭビット（Ｍは整数、且つＮ＞Ｍ）のデータに量子化して出力するにあたり、いわゆるバンディング抑制のための誤差拡散処理を施す信号処理装置とその方法とに関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２００９−８１８４８号公報
【背景技術】
【０００３】
画像信号についての信号処理を行う画像信号処理装置には、画素値がＮビットによる画像を、Ｎビットよりも小さなＭビットによる画素値の画像に変換するという、いわゆる階調変換を行うものがある。
このようなＮビットからＭビットへの階調変換は、Ｎビットの画素値における下位Ｎ−Ｍビットの値を単純に切り捨てて、Ｍビットの画素値に量子化するということで行われる。
【０００４】
但し、このようなＮビットからＭビットの量子化を行った場合には、画像中におけるいわゆるグラデーション部分のように、画素値が緩やかに変化する領域において、量子化誤差の影響で帯状の模様が知覚されてしまうという問題がある。いわゆる、バンディングと呼ばれる現象である。
【０００５】
このようなバンディングの抑制を図るための技術として、いわゆるディザと呼ばれるものや、特許文献１にも開示されている誤差拡散と呼ばれるものが広く知られている。
周知のようにディザは、ランダムノイズなどの固定のノイズパターンを画像信号に付加することでバンディングの抑制を図る技術である。
また誤差拡散は、特許文献１にも記載されるように、Ｎビット→Ｍビットの量子化を行ったときの量子化誤差の値に基づき、空間周波数の高い領域に量子化誤差を拡散させる（ノイズシェーピング）ことによりバンディングの抑制を図るものである。
【０００６】
確認のため、図８を参照して、バンディングと、これらディザや誤差拡散との関係について説明しておく。
なお、以下では説明上、Ｎ＝１６、Ｍ＝８である場合を例示する。すなわち、１６ビットの画素値を８ビットの画素値に量子化して階調変換を行うものである。
この場合の量子化は、入力される１６ビットのデータの下位８ビットを切り捨てることで行われる。
【０００７】
先ず、オリジナルの１６ビットの画像として、図８（ａ）に示すようなグラデーション画像が入力された場合を考える。
この１６ビットの入力画像を８ビットの画像に量子化する場合において、ディザや誤差拡散を行わなかった場合には、図８（ｂ）に示されるような階調の不連続性、つまりはバンディングが生じる。これは、１６ビットの場合よりも８ビットの場合の方が分解能が低下することによって、図８（ｂ）の右側に示すように同一の画素値が連続する平坦部分が発生してしまうことに起因したものである。
【０００８】
一方、ディザや誤差拡散を行った場合には、図８（ｃ）の右側に示すように画素値の平坦化が緩和され、その結果、図８（ｃ）左側に示されるように、オリジナルの１６ビット画像により近い階調表現が実現されるものとなる。
このようにディザや誤差拡散は、ドット密度で階調を表現するものであると捉えることができる。
【０００９】
図９は、誤差拡散の作用について説明するための図である。
図９（ａ）は、横軸を画素、縦軸を画素値として、１６ビットから８ビットの量子化を行った結果（実線）とその場合に生じる量子化誤差（グレー部分）とを示している。
また図９（ｂ）は、同様に横軸を画素、縦軸を画素値として、図９（ａ）の状態から誤差拡散により量子化誤差が拡散された状態と、その場合の視覚上の階調（一点鎖線）とを示している。
確認のため述べておくと、この場合も量子化前の１６ビットの画像は、図８（ａ）に示したグラデーション画像であることを前提としている。
【００１０】
これら図９（ａ）（ｂ）の対比より、誤差拡散は、量子化誤差を高周波信号に変換するものであるということが理解できる。
【００１１】
また、図９において、図９（ｃ）（ｄ）では、図９（ａ）（ｂ）で示した変化を、人間の視覚特性との関係で表している。具体的に、これら図９（ｃ）（ｄ）では、共に横軸を空間周波数（ｃｐｄ：cycle／degree）、縦軸にコントラスト感度をとり、図９（ｃ）では人間の視覚特性と共に誤差拡散を行わない場合の量子化誤差の分布を示し、図９（ｄ）では人間の視覚特性と共に誤差拡散を行った場合の量子化誤差の分布を示している。
なお、上記の「ｃｐｄ」は、所定の単位視野角（視野角１°）あたりで表示できる縞の本数を表すものであり、例えば１０ｃｐｄといったときは、視野角１°の範囲に白線と黒線のペアが１０ペア見えることを意味するものとなる。
【００１２】
これら図９（ｃ）（ｄ）を対比しても、誤差拡散は、量子化誤差を空間周波数の高い領域に拡散させるものであるという点が理解できる。
また図９（ｄ）によれば、誤差拡散が行われることによって、量子化誤差は人間に知覚され難い周波数領域に拡散されているということが示されている。つまりこの点からも、誤差拡散によって、図９（ｂ）に示したような視覚上の階調が実現されるということが理解できる。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記のようにディザや誤差拡散を行うことによっては、ＮビットをＭビットに量子化する際に生じるバンディングを抑制できる。
しかしながら、これらディザや誤差拡散のうち、特に誤差拡散は、上述のように量子化誤差を高周波数帯域に拡散させるものであるため、量子化後のＭビットデータを伝送する伝送路上において、スイッチングノイズを発生させ易いという問題がある。
【００１４】
図１０は、この点について説明するための図である。
図１０において、図１０（ａ）では、横軸を画素、縦軸を画素値（0x7D〜0x81）として、誤差拡散を行わない場合の１６ビット→８ビット量子化の結果を示すと共に、画素値が平坦化した画素部分（ここでは画素値＝0x7Fの部分を例示）についての伝送上のデータ列を示している。
また図１０（ｂ）では、同様に横軸を画素、縦軸を画素値（0x7D〜0x81）とした上で、誤差拡散を行った場合の１６ビット→８ビット量子化の結果を示すと共に、図１０（ａ）における画素値の平坦部分と同一の画素部分についての伝送路上のデータ列を示している。
なお確認のため述べておくと、一般に画像信号処理ではラスタ走査の順で処理が行われるので、伝送路上では、図中の左側から右側の画素の順で画素値が伝送されていくものとなる。
また図１０においても１６ビットの画像は図８（ａ）のグラデーション画像であったものとしている。
【００１５】
図１０（ａ）を参照して分かるように、誤差拡散を行わない場合には、画素値の平坦化により、伝送路上でのビット値の反転（スイッチング）は生じないことが分かる。
これに対し、図１０（ｂ）に示す誤差拡散を行った場合は、量子化誤差が高周波数帯域に拡散される影響で、図のように伝送されるデータの値が頻繁に変化する傾向となる。具体的にこの図の例の場合では、図１０（ａ）の平坦部分と同一の画素部分において、１画素ごとにその画素値が0x7F→0x80→0x7F…と交互に変化することで、伝送路上においては、各ビット位置でその値が頻繁に反転することになる。
【００１６】
このようにして誤差拡散を行う場合には、伝送路上でのビット値の反転が頻繁に生じる（時間軸上において頻繁に生じる）傾向となり、その結果、スイッチングノイズが発生し易いという問題がある。
スイッチングノイズが発生することによっては、例えばビデオ機器など音声信号を扱う機器において音質の劣化が生じるなど、種々の問題が生じる。従って、これを抑制することが要請される。
【００１７】
本発明は上記のような問題点に鑑み為されたものであり、誤差拡散によるバンディングの抑制を図りつつ、伝送路上でのスイッチングノイズの抑制を図ることをその目的とする。
【課題を解決するための手段】
【００１８】
かかる課題の解決のため、本発明では信号処理装置として以下のように構成することとした。
すなわち、本発明の信号処理装置は、画像信号を構成する画素値としてのＮビット（Ｎは整数）の入力データをＭビット（Ｍは整数、且つＮ＞Ｍ）のデータに量子化して出力する信号処理装置であって、ＮビットのデータをＭビットのデータに量子化する主量子化部を有すると共に、当該主量子化部による量子化後のＭビットのデータとその量子化前のＮビットのデータとから算出した量子化誤差の値に基づき、ノイズシェーピングとしての誤差拡散処理を行う誤差拡散処理部を備える。
また、上記誤差拡散処理部に入力される前のＮビットのデータをＭビットのデータに量子化する副量子化部を備える。
また、上記副量子化部により得られたＭビットのデータに基づき、上記主量子化部を経て得られるＭビットのデータに上記誤差拡散処理に伴って生じるビット値反転の発生量を予測する予測部を備える。
また、上記予測部による予測結果に応じて、上記誤差拡散処理部におけるノイズシェーピングの周波数特性が変更されるように制御を行う特性変更制御部を備えるものである。
【００１９】
ここで、周知のように誤差拡散は、量子化前のＮビットのデータ（上記主量子化部に入力されるＮビットのデータ）に対して、量子化誤差に基づく値をフィードバック加算することで行われるものである。
そして、前述した伝送路上でのスイッチングノイズを招来する量子化後のＭビットデータの値の変化（ビット値反転）は、このような誤差拡散処理におけるフィードバック加算が行われた結果発生するものである。
後に詳述するように、このような、フィードバック加算が行われることに伴うビット値反転の発生量は、フィードバック加算前のデータの値（誤差拡散処理部に入力される前のＮビットデータの上位Ｍビットのデータの値）から予測することができる。
このため本発明では、上記の副量子化として、誤差拡散処理部に入力される前のＮビットデータをＭビットのデータに量子化し、当該副量子化により得たＭビットのデータに基づいて、上記主量子化部を経て得られる上記誤差拡散処理後のＭビットのデータに生じるビット値反転の発生量を予測するものとしている。なお確認のため述べておくと、上記副量子化は、上記誤差拡散処理部に入力される前のＮビットデータの上位Ｍビットのデータを抽出することに相当するものである。前述もしたように、量子化は、Ｎビットのデータから下位Ｎ−Ｍビットのデータを切り捨てることで行われるためである。
そして、本発明では、上記ビット値反転の発生量の予測をした結果に基づき、上記誤差拡散処理部におけるノイズシェーピングの周波数特性が変更されるように制御を行うものとしている。
これにより、例えばビット値反転の発生量が大であることが予測される場合に対応して、ノイズシェーピングの周波数特性を高域の強調度合いをより低くした特性に変更するといったことができる。つまりは、スイッチングノイズの発生量が大となることが予測される場合には、誤差拡散効果を低くするなどといったことができるものである。
【発明の効果】
【００２０】
上記のように本発明によれば、スイッチングノイズの発生量が大となることが予測される場合に対応して、誤差拡散効果の調整ができる。
この結果、伝送路上で生じるスイッチングノイズの抑制を図ることができる。
【００２１】
また、本発明は、上記のようにビット値反転量の予測結果に応じてノイズシェーピングの周波数特性を変化させるものであるので、スイッチングノイズの発生量が小であることが予測される場合には誤差拡散による効果を通常時と同様に設定することもできる。
【００２２】
これらの点から理解されるように、本発明によれば、伝送路上でのスイッチングノイズを抑制することと、誤差拡散によりバンディングを抑制することとの両立を図ることができる。
【図面の簡単な説明】
【００２３】
【図１】実施の形態としての信号処理装置の内部構成を示した図である。
【図２】図１における誤差拡散に係る構成を抽出して示した図である。
【図３】フィルタ処理の内容について説明するための図である。
【図４】フィードバック加算（誤差拡散処理）に伴い量子化後のＭビットデータの値に変化が生じる具体的なイメージを表した図である。
【図５】スイッチング量の予測処理を示したフローチャートである。
【図６】スイッチング量の予測結果に応じてフィルタ部に設定されるべきフィルタ特性を示した図である。
【図７】実施の形態の信号処理装置が実行する処理の手順（実施の形態の信号処理方法を実現するための処理の手順）を示したフローチャートである。
【図８】バンディングとディザ・誤差拡散との関係について説明するための図である。
【図９】誤差拡散の作用について説明するための図である。
【図１０】誤差拡散の影響により伝送路上でスイッチングノイズが生じ易いことについて説明するための図である。
【発明を実施するための形態】
【００２４】
以下、発明を実施するための形態（以下実施の形態とする）について説明していく。なお、説明は以下の順序で行うものとする。
＜１．信号処理装置の構成＞
［1-1．構成の概要］
［1-2．誤差拡散処理について］
［1-3．誤差拡散に伴うｍビットデータの桁上がり起因のビット値反転］
［1-4．スイッチングノイズの抑制］
［1-5．エッジ部分を処理対象から除外した誤差拡散の実現］
＜２．処理手順＞
＜３．変形例＞
【００２５】
＜１．信号処理装置の構成＞
［1-1．構成の概要］
図１は、本発明の信号処理装置の一実施形態である信号処理装置１の内部構成を示している。
先ず、図中「入力Ｘ(ｎ)」と示す信号処理装置１への入力データ（以下、入力データＸ(ｎ)とも称する）は、画像信号を構成する画素値を表すデータとなる。信号処理装置１には、このような画素値としての入力データＸ(ｎ)が、ラスタ走査の順で毎時入力されてくる。
図示しているように、入力データＸ(ｎ)はＮビットのデータである。
【００２６】
信号処理装置１は、このようなＮビットの入力データＸ(ｎ)を、Ｍビットに量子化（つまりＮビット→Ｍビットの階調変換）して出力する。
ここで、Ｎ，Ｍは共に整数であり、Ｎ＞Ｍである。すなわち信号処理装置１は、画素値がＮビットの画像を、Ｎビットよりも小さなＭビットの画素値の画像に変換するように構成されているものである。
以下では具体例として、Ｎ＝１６、Ｍ＝８であるとする。
【００２７】
信号処理装置１内には、誤差拡散部２、量子化部８、平坦部検出部１０、スイッチング予測部９、フィルタ係数決定部１１、メモリ１２、ハイパスフィルタ（ＨＰＦ）１３、及びレベル検出部１４が備えられる。
【００２８】
先ず、誤差拡散部２は、入力データＸ(ｎ)を入力し、当該入力データＸ(ｎ)をＭビットのデータに量子化すると共に、当該量子化で生じる虞のあるバンディングの抑制のための誤差拡散処理を行う。
図示するように誤差拡散部２内には、加算器３、量子化部４、減算器５、フィルタ部７、マルチプレクサ（ＭＵＸ）７が形成されている。
この誤差拡散部２は、ΔΣ変調器を構成するものであり、量子化部４による量子化誤差（量子化ノイズ）を空間周波数の高い領域に変調するノイズシェーピング効果を有するものとなる。
【００２９】
誤差拡散部２において、入力データＸ(ｎ)は加算器３に入力され、当該加算器３の出力が量子化部４に入力されると共に、図のように減算器５に対しても分岐して入力される。
量子化部４は、加算器３を介して入力されたＮビットのデータをＭビットのデータに量子化する。具体的には、上記入力されたＮビットのデータの下位Ｎ−Ｍビットを切り捨てて、Ｍビットのデータを得る。
図示しているように、量子化部４の量子化結果については出力Ｙ(ｎ)と表記する（出力データＹ(ｎ)とも称する）。
【００３０】
出力データＹ(ｎ)は、信号処理装置１の外部に出力されると共に、前述の減算器５に対しても入力される。
減算器５は、出力データＹ(ｎ)を加算器３の出力から減算することで、量子化部４の量子化で生じた量子化誤差を算出する。減算器５により算出された量子化誤差の値は、フィルタ部６に入力される。
【００３１】
フィルタ部６は、例えばＦＩＲ（Finit Impulse Response）フィルタなどのデジタルフィルタで構成され、減算器５から入力される上記量子化誤差の値に対してフィルタ処理を施す。フィルタ部６によるフィルタ処理結果（フィルタ出力とも称する）は、図のようにマルチプレクサ７を介して加算器３に入力される。
【００３２】
なお、マルチプレクサ７の役割については後述するものとし、ここではフィルタ出力が加算器３に直接的に入力されるものとして以下の説明を続ける。
【００３３】
加算器３は、入力データＸ(ｎ)に対して、フィルタ部６によるフィルタ出力を加算する。これにより、誤差拡散（ノイズシェーピング）を実現するためのフィードバックループ（加算器３→量子化部４→減算器５→フィルタ部６→加算器３）が形成される。
【００３４】
［1-2．誤差拡散処理について］
図２は、図１における誤差拡散に係る構成を抽出して示している。
先ず、上記説明からも理解されるように、図１に示す構成のうち誤差拡散に係る構成は、加算器３、量子化部４、減算器５、及びフィルタ部６となる。
【００３５】
ここで、図示するように、加算器３の出力をＵ(ｎ)とおくこととする。また、減算器５により算出される量子化誤差をＱ(ｎ)とおく。さらに、フィルタ部６のフィルタ特性をＧとおく。
【００３６】
誤差拡散効果を得るにあたっては、フィルタ部６のフィルタ特性Ｇとして、ＬＰＦ（ローパスフィルタ）特性を設定することになる。
このようにＬＰＦとしてのフィルタ特性Ｇが設定されることによって、以下で説明するように、量子化誤差を空間周波数の高い領域に拡散する効果が得られることになる。
【００３７】
ここで、誤差拡散部２についての入出力関係式は、次の［式１］［式２］となる。
Ｕ(ｎ)＝Ｘ(ｎ)−Ｇ・Ｑ(ｎ)  …［式１］
−Ｑ(ｎ)＝Ｕ(ｎ)−Ｙ(ｎ)      …［式２］
これら［式１］［式２］より、出力データＹ(ｎ)は、
Ｙ(ｎ)＝Ｘ(ｎ)＋(１−Ｇ)・Ｑ(ｎ)  …［式３］
と表わされる。
【００３８】
上記［式３］において、「１−Ｇ」の特性はＨＰＦ特性となる。このことより、上記フィルタ特性Ｇ（ＬＰＦ特性）の設定によって、量子化誤差Ｑ(ｎ)を空間周波数の高い領域にシェーピングするという誤差拡散の効果が得られる。
【００３９】
図３は、フィルタ部６による具体的なフィルタ処理の内容について説明するための図である。なお図３において、矢印Ｈは水平方向を表し、矢印Ｖは垂直方向を表すものである。
誤差拡散のためのフィルタ処理は、ラスタ走査の順番で行われるものとなる。具体的には、ラスタ走査の順に従って処理対象画素が毎時遷移していくものであり、フィルタ部６には、時刻ｎにおける対象画素（画素(ｎ)）についての量子化誤差Ｑ(ｎ)の値が順次入力されてくる。
【００４０】
そして、フィルタ部６は、処理対象とされる画素(ｎ)の量子化誤差Ｑ(ｎ)に対するフィルタ演算にあたって、当該画素(ｎ)の周囲の画素の量子化誤差Ｑの値を用いるようにされている。すなわち、対象とする画素(ｎ)についてのフィードバック加算値は、当該画素(ｎ)の量子化誤差Ｑ(ｎ)の値と、その周囲の画素の量子化誤差Ｑの値とを用いて演算されるものである。
一例として、本例のフィルタ部６は、図中のスクリーン部分で表す周辺画素の量子化誤差Ｑを用いるようにされている。すなわち、図中斜線部により表す対象とする画素(ｎ)と同水平ライン上で且つ当該画素(ｎ)に対し過去方向（ラスタ走査方向とは逆方向）に隣接する２画素と、画素(ｎ)の１つ前の水平ライン上における、画素(ｎ)と水平方向画素位置が一致する画素を中心とした５つの画素の計７画素分の量子化誤差Ｑの値を用いるようにされている。
【００４１】
ここで、図１や図２では図示は省略したが、このように誤差拡散のためのフィルタ処理には処理対象画素以外の画素の量子化誤差Ｑを用いるようにされているので、フィルタ部６内には、実際にはそれらの画素（過去に処理対象とされた画素）についての量子化誤差Ｑの値を蓄積するためのメモリ（例えばラインメモリ）や遅延素子が設けられていることになる。
【００４２】
［1-3．誤差拡散に伴うｍビットデータの桁上がり起因のビット値反転］
上記のように本実施の形態では、ＮビットのデータをＭビットのデータに量子化するにあたり誤差拡散処理を行うようにしていることで、量子化に伴い生じるバンディングを抑制するものとしている。
しかしながら、先の図９、図１０を参照して説明したように、誤差拡散は、量子化誤差を空間周波数の高周波数領域に拡散させるものであるため、量子化後のＭビットデータ（出力データＹ(ｎ)）の値の変化が頻繁に生じる傾向となり、出力データＹ(ｎ)の伝送路上においてスイッチングノイズを発生させ易いという問題がある。
【００４３】
ここで、スイッチングノイズを招来する出力データＹ(ｎ)の値の変化は、誤差拡散処理によるフィードバック加算前の入力データＸ(ｎ)の上位Ｍビットのデータが、フィードバック加算が行われることに伴って桁上げされることによって生じるものである。
なお確認のため述べておくと、前述もしたように量子化部４による量子化は単純に入力Ｎビットデータの下位Ｎ−Ｍ（つまりこの場合は下位８ビット）を切り捨てることで行われるので、上記のようにフィードバック加算によってＮビットデータの上位Ｍビットに生じた桁上がりは、出力データＹ(ｎ)にそのまま影響するものである。
【００４４】
図４は、フィードバック加算（誤差拡散処理）に伴い出力データＹ(ｎ)の値に変化が生じる具体的なイメージを表した図である。
この図４では、同じ入力データに対して、それぞれ異なるフィードバック値（フィルタ出力値）が加算された場合に桁上がりが発生／非発生となる例を示している。図４（ａ）は桁上がりが発生する例、図４（ｂ）は桁上がりが非発生となる例を示している。
【００４５】
これら図４（ａ）（ｂ）において、入力データＸ(ｎ)は図のように「01111111 10000000」であるとしている。
また図４（ａ）の例では、図１に示した加算器３にてフィードバック加算される値Ａ(ｎ)を「10000000」としている。
一方、図４（ｂ）の例では値Ａ(ｎ)を「00000000」としている。
【００４６】
先の図１及び図２の説明によれば、誤差拡散部２において、入力データＸ(ｎ)に対しては値Ａ(ｎ)が加算される。そしてこの加算結果がフィードバック加算後の値Ｕ(ｎ)として量子化部４に入力される。
これを踏まえると、図４（ａ）の例においては、フィードバック加算後の値Ｕ(ｎ)として図のように「10000000 00000000」が算出されることになる。この値Ｕ(ｎ)が量子化部４にて量子化されることで、出力データＹ(ｎ)は「10000000」となる。
このようにして図４（ａ）の例では、入力データＸ(ｎ)の上位Ｍビットの値「01111111」が、フィードバック加算に伴って「10000000」と桁上げされる。
【００４７】
一方、図４（ｂ）の例では、フィードバック加算後の値Ｕ(ｎ)は図のように「01111111 00000000」となる。従って、出力データＹ(ｎ)は「01111111」となり、フィードバック加算に伴う桁上がりは発生しないものとなる。
【００４８】
図４（ａ）（ｂ）それぞれの出力データＹ(ｎ)の値を対比すると、上記のようにフィードバック加算に伴って桁上がりが発生／非発生となることに応じて、時間軸方向でのビット値の反転（スイッチング）が生じることが分かる。
このようにして、桁上がりの発生が、伝送路上でのスイッチングノイズの発生を招来することになる。
【００４９】
このとき、図４を参照すると、ビット値のスイッチングの発生量（つまりＭビットデータ中でビット値の反転が生じるビット数に同じ）は、桁上がりの桁数に応じたものとなることが分かる。
例えば、図４（ａ）に示した例では、「01111111」→「10000000」の桁上がりであるので、その桁上がりの桁数は「７」である。
或いは、桁上がりの態様として「00001111」→「00010000」であれば、その桁上がり桁数は「４」であり、また「00110111」→「00111000」であれば桁上がり桁数は「３」となる。
【００５０】
ここで、これらの例を参照して分かるように、誤差拡散に伴う出力データＹ(ｎ)のビット値の反転量（スイッチングノイズの発生量）は、入力データＸ(ｎ)の上位Ｍビットのビット値の並びを確認することで予測可能となる。具体的に、スイッチングノイズの発生量は、入力データＸ(ｎ)の上位Ｍビットにおける、最下位ビット側からのビット値「１」の連続数から予測可能となる。
【００５１】
［1-4．スイッチングノイズの抑制］
そこで、本実施の形態では、上記のように入力データＸ(ｎ)の上位Ｍビットにおける最下位ビット側からのビット値「１」の連続数をカウントした結果に基づき、誤差拡散に伴い出力データＹ(ｎ)に生じるビット値の反転量を予測する。
【００５２】
そして、本実施の形態では、このように誤差拡散に伴うビット値の反転量を予測した結果に基づいて、フィルタ部６のフィルタ特性を変更することで、桁上がりの発生が抑制されるようにし、それによって伝送路上におけるスイッチングノイズの発生の抑制を図る。
【００５３】
これらビット値の反転量の予測、及び予測結果に基づくフィルタ特性の変更を実現するために、本実施の形態の信号処理装置１では、図１に示す量子化部８、平坦部検出部１０、スイッチング予測部９、フィルタ係数決定部１１、及びメモリ１２を備えるものとしている。
【００５４】
図１において、量子化部８には、入力データＸ(ｎ)が入力される。
量子化部８は、Ｎビットによる入力データＸ(ｎ)を、Ｍビットのデータに量子化する。換言すれば、入力データＸ(ｎ)の上位Ｍビットのデータを抽出するものである。
量子化部８により得られたＭビットのデータ（以下、データαとする）は、図のようにスイッチング予測部９と平坦部検出部１０とに供給される。
【００５５】
スイッチング予測部９は、上記データα（つまり入力データＸ(ｎ)の上位Ｍビットのデータと同じ）に基づき、伝送路上のスイッチングノイズ発生量（単にスイッチング量とも称する）を予測する。
【００５６】
図５は、スイッチング予測部９が行うスイッチング量の予測処理を示したフローチャートである。
この図５に示されるように、スイッチング予測部９は、データαについて、最下位ビット側からのビット値「１」の連続数をカウントするようにされている。具体的にこの場合は、ステップＳ１０１〜Ｓ１０９により、０ビット目〜７ビット目までにかけて順にそのビット値が「１」であるか否かの判別を行う。
【００５７】
そして、ステップＳ１０１において０ビット目が「１」でなかった場合は、ステップＳ１０９でスイッチング量を「小」に設定する。また、ステップＳ１０２において１ビット目が「１」でなかった場合はステップＳ１１０でスイッチング量を「小」に設定する。
さらに、ステップＳ１０３において２ビット目が「１」でなかった場合はステップＳ１１１でスイッチング量を「小」に設定するものとしている。
【００５８】
さらに、ステップＳ１０４において３ビット目が「１」でなかった場合はステップＳ１１１２でスイッチング量を「中」に、またステップＳ１０５において４ビット目が「１」でなかった場合はステップＳ１１３でスイッチング量を「中」に、ステップＳ１０６において５ビット目が「１」でなかった場合はステップＳ１１４でスイッチング量を「中」に、それぞれ設定するものとしている。
【００５９】
また、ステップＳ１０７において６ビット目が「１」でなかった場合はステップＳ１１５でスイッチング量を「大」に設定する。さらに、ステップＳ１０８において７ビット目が「１」でなかった場合はステップＳ１１６でスイッチング量を「大」に設定し、７ビット目が「１」であった場合はステップＳ１１７で同様にスイッチング量を「大」に設定するものとしている。
【００６０】
このように本例のスイッチング予測部９では、最下位ビット側からビット値「１」の連続数に応じて、スイッチング量を「小」「中」「大」の３段階に分けて予測するものとしている。具体的に、最下位ビット側からの「１」の連続数が０〜２であればスイッチング量＝「小」、３〜５であればスイッチング量＝「中」、６〜８であればスイッチング量＝「大」を設定するものである。
【００６１】
図１において、スイッチング予測部９による予測結果（「小」「中」「大」の別を表す値となる）は、フィルタ係数決定部１１に供給される。
【００６２】
また図１において、平坦部検出部１０は、バンディングの発生部分としての、入力画像内で画素値が平坦化している部分（平坦部分とも称する）を検出するために設けられる。
具体的に、平坦部検出部１０は、量子化部８からのデータαの値が、予め設定されたｐ画素連続して同値で得られたか否かを判別することで平坦部分を検出する。
本例の場合、上記「ｐ」としては例えば「５」が設定されているとする。つまりこの場合、画素値が同値の画素が５画素連続して得られた場合は、それらの画素について平坦部分であるとの判別結果を得る。
【００６３】
フィルタ係数決定部１１は、スイッチング予測部９による予測結果と、平坦部検出部１０による検出結果とに基づき、フィルタ部６におけるフィルタ特性を変更する制御を行う。具体的には、平坦部検出部１０が検出した平坦部分を対象としてのみ、スイッチング予測部９による予測結果に応じたフィルタ特性の変更設定を行う。
【００６４】
フィルタ係数決定部１１に対しては、メモリ１２が接続されている。このメモリ１２内にはスイッチング量・係数対応情報１２ａが格納されている。
このスイッチング量・係数対応情報１２ａは、スイッチング量の予測結果（「小」「中」「大」）と、各予測結果が得られたときにフィルタ部６に設定されるべきフィルタ特性を実現するための係数（タップ係数）とを対応づけた情報とされる。
【００６５】
図６は、スイッチング量の予測結果に応じてフィルタ部６に設定されるべきフィルタ特性を示している。
なお図６では、先の図９（ｃ）（ｄ）と同様に横軸を空間周波数（ｃｐｄ：cycle／degree）、縦軸をコントラスト感度として、スイッチング量の予測結果に応じてフィルタ部６に設定されるべきそれぞれのフィルタ特性を表している。
また、図示もしているように、ここで言う「フィルタ特性」は、前述した「１−Ｇ」（ＨＰＦ特性）としての特性を示すものである。すなわち、実効的なフィルタ特性である。
【００６６】
図６において、実線により示すフィルタ特性Ｆ１は、スイッチング量「小」に対応して設定されるべきフィルタ特性である。また一点鎖線で示すフィルタ特性Ｆ２はスイッチング量「中」に対応して設定されるべきフィルタ特性であり、破線により示すフィルタ特性Ｆ３はスイッチング量「大」に対応して設定されるべきフィルタ特性である。
【００６７】
この図に例示するように、スイッチング量「小」に対応させるフィルタ特性Ｆ１としては、高域の強調度合いを相対的に最も高くした特性を設定する。
また、スイッチング量「大」に対応して設定されるべきフィルタ特性Ｆ３としては、高域の強調度合いを相対的に最も低くした特性を設定する。
スイッチング量「中」に対応して設定されるフィルタ特性Ｆ２については、高域の強調度合いを特性Ｆ１と特性Ｆ３の間（例えば中間）とする特性を設定する。
このようにスイッチング量の大きさに応じて、誤差拡散の効果（高域へのノイズシェーピングの効果）が減衰されるようにしている。
【００６８】
図１において、フィルタ係数決定部１１は、これら特性Ｆ１、Ｆ２、Ｆ３をそれぞれ実現するための係数が特性Ｆ１、Ｆ２、Ｆ３に対応づけられて格納されたスイッチング量・係数対応情報１２ａに基づき、スイッチング予測部９による予測結果に応じた、フィルタ部６のフィルタ特性についての変更制御を行う。
具体的にフィルタ係数決定部１１は、平坦部検出部１０による検出結果が平坦部分である旨を表すものである場合において、スイッチング量予測部９の予測結果に応じた係数をスイッチング量・係数対応情報１２ａから取得し、該取得した係数をフィルタ部６に設定する。
また、フィルタ係数決定部１１は、平坦部検出部１０による検出結果が平坦部分ではない旨を表すものである場合には、フィルタ部６に対し、フィルタ特性Ｆ１を実現するための係数を設定する。すなわち、平坦部分以外の領域では、スイッチング量が「小」のときと同等のフィルタ特性が設定されるようにしている。
【００６９】
上記により説明した構成により、スイッチング量の大きさに応じて誤差拡散の効果を減衰させることができ、その結果、伝送路上におけるスイッチングノイズの抑制を図ることができる。
【００７０】
また、本実施の形態では、ビット値反転の発生量の予測結果に応じてノイズシェーピングの周波数特性を変更するものとしているので、スイッチングノイズの発生量が小であることが予測される場合には、誤差拡散による効果を通常時と同様に設定するということができる。この点から理解されるように、本実施の形態によれば、伝送路上でのスイッチングノイズを抑制することと、誤差拡散によりバンディングを抑制することとの両立を図ることができる。
【００７１】
［1-5．エッジ部分を処理対象から除外した誤差拡散の実現］
ここで、本実施の形態の信号処理装置１には、図１に示されるように、ハイパスフィルタ１３、レベル検出部１４、及びマルチプレクサ７も備えられている。
本実施の形態では、これらの構成によって、誤差拡散部２による誤差拡散が、バンディングの生じる虞のある画像のグラデーション部分を対象としてのみ行われるようにしている。
【００７２】
ここで、例えば画像のエッジ部分などの空間周波数の高い領域では、バンディングが生じる虞はない。そこで、ハイパスフィルタ１３、及びレベル検出部１４によって、入力データＸ(ｎ)から（つまり入力画像から）そのような空間周波数の高い領域を検出する。
【００７３】
ハイパスフィルタ１３は、入力データＸ(ｎ)の高域成分を抽出する。
レベル検出部１４は当該高域成分のレベルと予め定められた所定の閾値との比較を行った結果に基づき、入力画像内における空間周波数の高い領域を検出する。具体的に、レベル検出部１４は、対象としている画素(ｎ)が空間周波数の高い領域に該当するか否かの別を表す信号を、その検出結果としてマルチプレクサ７に出力する。
【００７４】
マルチプレクサ７は、上記レベル検出部１４による検出結果に基づき、フィルタ部６によるフィルタ出力と予め設定された固定値とを択一的に加算器３に出力する。
具体的に、マルチプレクサ７は、レベル検出部１４の検出結果が空間周波数の高い領域には該当しない旨を表す場合には、フィルタ部６からのフィルタ出力を加算器３に出力し、レベル検出部１４の検出結果が空間周波数の高い領域に該当する旨を表す場合には上記固定値を加算器３に出力する。
ここで本例の場合、上記固定値としては「０．５」が設定されているとする。なお確認のため述べておくと、上記固定値の数値の表記は画素値による表記であり、例えばＭビットデータが表現する０〜２Mの画素値（８ビットであれば０〜２５５の画素値）での「０．５」という意である。
【００７５】
上記の構成により、空間周波数の高い領域についてはフィルタ部６のフィルタ出力がフィードバック加算されないようにでき、その結果、空間周波数の高い領域に対する誤差拡散効果は与えられないようにできる。すなわち、空間周波数の高い領域以外を対象とした誤差拡散を実現できる。
【００７６】
ここで、上記構成によると、画素(ｎ)が空間周波数の高い領域に該当するとされたときは、当該画素(ｎ)に対するフィードバック加算が行われないのみで、当該画素(ｎ)についての量子化誤差の算出、及び算出された量子化誤差の値のフィルタ部６に対する蓄積については実行されることが分かる。
このように量子化誤差の値のフィルタ部６に対する蓄積は実行されるようにしていることで、例えばグラデーション部分の一部にノイズが生じたような場合でも、より確実にバンディング抑制効果が得られるようにできる。
つまり、仮に、空間周波数の高い領域での量子化誤差の蓄積までもが行われないようにしてしまうと、上記のようにグラデーション部分の一部にノイズが生じた場合には、その周囲の画素（グラデーション部分の画素）の誤差拡散処理で必要となる量子化誤差（対象画素の周囲画素の量子化誤差）が蓄積されていない状態でフィードバック処理を行うことになるので、その結果、バンディングの抑制効果が低下してしまうことになる。
これに対し、上記のように空間周波数の高い領域であってもその量子化誤差の算出・蓄積は行われるようにしていれば、そのような問題の発生は回避でき、より確実にバンディングの抑制をすることができる。
【００７７】
＜２．処理手順＞
確認のため、図７のフローチャートにより、本実施の形態の信号処理装置１が実行する処理の手順（実施の形態の信号処理方法を実現するための処理の手順）について説明しておく。
図７において、先ずステップＳ２０１では、入力データＸ(ｎ)についてハイパスフィルタ処理をする。これは、図１におけるハイパスフィルタ１３のフィルタ処理に相当するものである。
【００７８】
ステップＳ２０２では、ステップＳ２０１によるハイパスフィルタ処理後のレベル（つまり抽出された高域成分のレベル）が閾値以上であるか否かを判別する。これは、レベル検出部１４が行う処理に相当する。
ステップＳ２０２において、ハイパスフィルタ処理後のレベルが閾値以上ではないとして否定結果が得られた場合は、ステップＳ２１４において、入力データＸ(ｎ)に「０．５」を加算する。すなわち、レベル検出部１４がマルチプレクサ７に固定値「０．５」を出力させ、加算器３が入力データＸ(ｎ)に当該固定値を加算する処理に相当する。
なお、当該ステップＳ２１４以降に実行されるステップＳ２１５〜Ｓ２１７については後述する。
【００７９】
一方ステップＳ２０２において、ハイパスフィルタ処理後のレベルが閾値以上であるとして肯定結果が得られた場合は、ステップＳ２０３〜Ｓ２１３に示す処理が実行される。
これらステップＳ２０３〜Ｓ２１３において、先ずステップＳ２０３では、副量子化を行う。すなわち、量子化部８が入力データＸ(ｎ)について量子化（Ｎビット→Ｍビット）を行うことに相当する。
【００８０】
続くステップＳ２０４では、平坦部検出を行い、ステップＳ２０５で平坦部であるか否かの判別を行う。これらステップＳ２０４・Ｓ２０５の処理は、平坦部検出部１０が先に説明した平坦部分の検出処理を行うことに相当する。
【００８１】
ステップＳ２０５において、平坦部ではないとして否定結果が得られた場合は、ステップＳ２１１に進み、フィルタ特性Ｆ１を設定するための処理を行う。つまり、フィルタ係数決定部１１がフィルタ部６に対してフィルタ特性Ｆ１を実現するための係数を設定する処理に相当するものである。
【００８２】
またステップＳ２０５において、平坦部であるとの肯定結果が得られた場合は、ステップＳ２０６において、スイッチング予測処理を行う。すなわち、先の図５で説明した処理を実行するものである。
【００８３】
続くステップＳ２０７を含むステップＳ２１１までの処理は、上記スイッチング量の予測処理結果として得られるスイッチング量「小」「中」「大」の別に応じたフィルタ特性を設定するための処理となる。これは、フィルタ係数決定部１１がスイッチング量予測部９の予測結果に応じた係数をスイッチング量・係数対応情報１２ａから取得してフィルタ部６に設定する処理に相当する。
【００８４】
具体的に、ステップＳ２０７では、スイッチング量が「大」であるか否かを判別し、「大」でないとして否定結果が得られた場合はステップＳ２０８に進んでスイッチング量が「中」であるか否かを判別する。
ステップＳ２０７において、スイッチング量が「大」であるとの肯定結果が得られた場合には、ステップＳ２０９に進んでフィルタ特性Ｆ３を設定した後、ステップＳ２１２に進む。
また、ステップＳ２０８において、スイッチング量が「中」であるとの肯定結果が得られた場合は、ステップＳ２１０に進んでフィルタ特性Ｆ２を設定した後、ステップＳ２１２に進む。
さらに、ステップＳ２０８において、スイッチング量が「中」ではないとの否定結果が得られた場合は、前述したステップＳ２１１に進んでフィルタ特性Ｆ１を設定した後、ステップＳ２１２に進む。
【００８５】
ステップＳ２１２では、フィルタ演算を行う。これは、フィルタ部６が設定されたフィルタ特性によりフィルタ処理を実行することに相当する。
【００８６】
続くステップＳ２１３では、入力データＸ(ｎ)にフィルタ出力を加算する。つまり、加算器３がマルチプレクサ７を介して入力されるフィルタ出力を入力データＸ(ｎ)に加算する処理に相当する。
当該ステップＳ２１３の加算処理を実行した後は、ステップＳ２１５に進む。
【００８７】
ステップＳ２１５では、主量子化を行う。すなわち、量子化部４が加算器３の出力について量子化（Ｎビット→Ｍビット）を行うことに相当するものである。
【００８８】
続くステップＳ２１６では、量子化誤差を算出する。つまりステップＳ２１３による加算処理の結果、又はステップＳ２１４による加算処理の結果から、ステップＳ２１５による主量子化処理の結果を減算するものである。
これは、減算器５が加算器３の出力（Ｕ(ｎ)）から量子化部４の出力（Ｙ(ｎ)）を減算する処理に相当する。
【００８９】
そして次のステップＳ２１６では、量子化誤差を保存する。つまり、フィルタ部６が減算器５から入力される量子化誤差の値を内部のメモリ（又は遅延素子）に蓄積する処理に相当するものである。
【００９０】
以上のステップＳ２０１〜Ｓ２１７の処理を繰り返し実行することで、先に説明した実施の形態としての信号処理装置１による信号処理が実現される。
【００９１】
＜３．変形例＞
以上、本発明の実施の形態について説明したが、本発明はこれまでに説明した具体例に限定されるべきではない。
例えばこれまでの説明では、スイッチング量の予測に関して、最下位ビット側からのビット値「１」の連続数の０〜２、３〜５、６〜８の別でスイッチング量を「小」「中」「大」と区分する場合を例示したが、ビット値「１」の連続数と区分との関係はこれに限定されるべきものではない。例えば、「１」の連続数０〜３を「小」、４及び５を「中」、６〜８を「大」とするなどといったこともできる。
【００９２】
また、これまでの説明では、スイッチング量を３段階に区分し、それらに対応する３つのフィルタ特性をスイッチング量予測結果に応じて変更設定する場合を例示したが、スイッチング量の区分及びそれらに対応するフィルタ特性の数は、２又は４以上とすることもできる。
この場合においても、スイッチング量の大きさに応じて誤差拡散の効果が減衰されるようなフィルタ特性を割り当てることで、スイッチングノイズの抑制を図ることができる。
【００９３】
また、図５に示したスイッチング量の予測処理の内容はあくまで一例を示したものに過ぎず、これに限定されるべきものではない。
例えば、先の例においては、最下位ビット側からのビット値「１」の連続数が６〜８の場合は全てスイッチング量「大」を設定するものとしているが、このとき、ビット値「１」の連続数が６〜８に該当するか否かは、ステップＳ１０６において５ビット目が「１」であるか否かを判別すれば判明する。従って、ステップＳ１０７・Ｓ１０８及びＳ１１５・Ｓ１１６の処理は省略して、ステップＳ１０６にて５ビット目が「１」でないとの否定結果が得られた場合にスイッチング量「大」を設定するように処理を変更するといったこともできる。
【符号の説明】
【００９４】
１  信号処理装置、２  誤差拡散部、３  加算器、４,８  量子化部、５  減算器、６  フィルタ部、７  マルチプレクサ、９  スイッチング予測部、１０  平坦部検出部、１１  フィルタ係数決定部、１２  メモリ、１２ａ  スイッチング量・係数対応情報
【図１】
2012049582.tif 000003
【図２】
2012049582.tif 000004
【図３】
2012049582.tif 000005
【図４】
2012049582.tif 000006
【図５】
2012049582.tif 000007
【図６】
2012049582.tif 000008
【図７】
2012049582.tif 000009
【図１０】
2012049582.tif 000010
【図８】
2012049582.tif 000011
【図９】
2012049582.tif 000012