(57)【要約】交流成分予測によるオーバーシュートおよびアンダーシュートを抑制して、リンギングノイズを有効に低減する。  傾き算出部３２ａは、一次元方向の傾きαを算出する。しきい値設定部３２ｂは、横方向の画素値の変化量｜Ｌ−Ｃ｜，｜Ｒ−Ｃ｜のうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値αthを設定する。傾き補正部３２ｃは、一次元方向の傾きαが傾きしきい値αthよりも大きい場合には、傾きαの値が小さくなるように、傾きαを補正して出力する。予測部は、出力された一次元方向の傾きα’を用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値Ｃを算出する。
2011042945.tif 000002
【特許請求の範囲】
【請求項１】
ブロックの交流成分予測を行う画像処理システムにおいて、
前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出する傾き算出部と、
前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するしきい値設定部と、
前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力する傾き補正部と、
前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出する予測部と
を有することを特徴とする画像処理システム。
【請求項２】
前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項１に記載された画像処理システム。
【請求項３】
前記傾き補正部は、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力することを特徴とする請求項１または２に記載された画像処理システム。
【請求項４】
前記予測部によって算出された前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出する加算器をさらに有することを特徴とする請求項１から３のいずれかに記載された画像処理システム。
【請求項５】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、
上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項４に記載された画像処理システム。
【請求項６】
前記画像処理システムは、画像を圧縮するエンコーダであって、
前記予測部によって算出された前記予測画素値と、真の画素値との差分を予測残差として算出する減算器と、
前記減算器によって算出された前記予測残差に対して、非可逆変換を施す非可逆変換部と、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する逆変換部と
をさらに有することを特徴とする請求項４または５に記載された画像処理システム。
【請求項７】
前記画像処理システムは、画像を伸張するデコーダであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を復元する逆変換部をさらに有することを特徴とする請求項４または５に記載された画像処理システム。
【請求項８】
ブロックの交流成分予測を行う画像処理プログラムにおいて、
前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出するステップと、
前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するステップと、
前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力するステップと、
前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出するステップと
を有する画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項９】
前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項８に記載された画像処理プログラム。
【請求項１０】
前記一次元方向の傾きを補正して出力するステップは、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力するステップであることを特徴とする請求項８または９に記載された画像処理プログラム。
【請求項１１】
前記算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出するステップをさらに有することを特徴とする請求項８から１０のいずれかに記載された画像処理プログラム。
【請求項１２】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、前記画像処理方法が再帰的に実行され、
上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項１１に記載された画像処理プログラム。
【請求項１３】
前記画像処理プログラムは、画像を圧縮するエンコードプログラムであって、
前記算出された予測画素値と、真の画素値との差分を予測残差として算出するステップと、
前記算出された予測残差に対して、非可逆変換を施すステップと、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するステップと、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記第６のステップに供給すべき前記予測残差を生成するステップと
をさらに有することを特徴とする請求項１１または１２に記載された画像処理プログラム。
【請求項１４】
前記画像処理プログラムは、画像を伸張するデコードプログラムであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記予測残差を復元するステップをさらに有することを特徴とする請求項１１または１２に記載された画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システムおよび画像処理プログラムに係り、特に、交流成分予測（ＡＣＰ：ＡＣ Component Prediction）のリンギングノイズ対策に関する。
【背景技術】
【０００２】
従来より、交流成分予測（ＡＣＰ）と呼ばれる画像処理手法が知られている。交流成分予測とは、図１に例示すように、処理対象となる対象ブロックＰＢsの周辺領域ＰＢl，ＰＢrの情報Ｌ，Ｒを参照して、このブロックＰＢsを細分化したサブブロックｓｂ0，ｓｂ1の情報ｃ0，ｃ1を求める手法をいう。交流成分予測では、対象ブロックＰＢsと、その近傍に位置する周辺領域ＰＢl，ＰＢrとの間における空間的な相関性を利用して、対象ブロックＰＢsのＤＣ値Ｓを保持しつつ、空間分解能がより高いＡＣ値ｃ0，ｃ1が算出される。特許文献１〜３には、対象ブロックを順次細分化し、画像データを階層的に符号化する再帰的交流成分予測符号化（ＲＡＣＰ）が開示されている。具体的には、まず画像平面上において対象ブロックを所定方向に順次シフトさせながら、これを細分化したサブブロックの予測画素値が順次算出される。つぎに、予測画素値と本来の画素値（真値）との差分が予測残差として算出される。そして、この予測残差に対して、非可逆変換およびエントロピー符号化を施すことによって、圧縮データの一部となる画像の交流成分が生成される。以上のような処理が、例えば、８×８画素のブロック（最上位階層）、４×４画素のブロック（第２位階層）、２×２画素のブロック(第３位階層）および１×１画素のブロック（最下位階層）よりなる階層構造において、再帰的に繰り返される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本特許第４０００１５７号公報
【特許文献２】日本特許第３７７４２０１号公報
【特許文献３】日本特許第３７００９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の交流成分予測では、画像の輪郭や文字等のエッジ周辺にリンギングノイズ、すなわち、エッジに沿った縞状のノイズが生じることがあった。図１に例示するように、リンギングノイズは、一次元方向に並んだ画素値Ｌ，Ｃ，Ｒが単調的に変化している場合（単調減少や単調増加）、または、これらがフラットな場合には、視覚的に認識され難い。しかしながら、図２に例示するように、画素値Ｌ，Ｓの差が大きく、画素値Ｓ，Ｒが等しい（Ｓ，Ｒの差が微小の場合も含む）エッジ周辺では、交流成分予測固有の特性として横方向の傾きαが急になる。その結果、予測画素値ｃ0が＋α分だけオーバーシュートするとともに、予測画素値ｃ1が−α分だけアンダーシュートして、交流成分予測前における一次元方向の画素値の大小関係が損なわれる。このような現象は、視覚的なノイズとなって画質の低下に繋がるほか、交流成分予測を用いた符号化では、予測誤差が増大して圧縮率の低下にも繋がる。【０００５】
そこで、本発明の目的は、交流成分予測によるオーバーシュートおよびアンダーシュートを抑制して、リンギングノイズを有効に低減することである。
【課題を解決するための手段】
【０００６】
かかる課題を解決すべく、第１の発明は、傾き算出部と、しきい値設定部と、傾き補正部と、予測部とを有し、ブロックの交流成分予測を行う画像処理システムを提供する。傾き算出部は、ブロックに関する参照領域の情報として特定された複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出する。これらの画素値は、画像平面上においてブロックを中心に対向している。しきい値設定部は、一次元方向における一方の方向に位置する画素値およびブロックの画素値の変化量と、一次元方向における他方の方向に位置する画素値およびブロックの画素値の変化量とのうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値を設定する。傾き補正部は、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きの値が小さくなるように、一次元方向の傾きを補正して出力する。予測部は、出力された一次元方向の傾きを用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出する。【０００７】
ここで、第１の発明において、一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることが好ましい。したがって、横方向の傾きおよび縦方向の傾きの双方に関して上記傾き補正を行ってもよいし、これ以外の斜め方向に関する上記傾き補正を追加してもよい。【０００８】
第１の発明において、傾き補正部は、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きを傾きしきい値以下に補正して出力することが好ましい。【０００９】
第１の発明において、予測部によって算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、サブブロックの画素値を算出する加算器をさらに設けてもよい。【００１０】
第１の発明は、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造に適用することもできる。この場合、上位階層において算出されたサブブロックの画素値は、上位階層の直下に位置する下位階層におけるブロックの画素値として、下位階層に供給される。【００１１】
第１の発明は、画像を圧縮するエンコーダに適用することもできる。このエンコーダは、予測部によって算出された予測画素値と、真の画素値との差分を予測残差として算出する減算器と、減算器によって算出された予測残差に対して、非可逆変換を施す非可逆変換部と、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する逆変換部と
をさらに有する。【００１２】
第１の発明は、画像を伸張するデコーダに適用することもできる。このデコーダは、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器に供給すべき予測残差を復元する逆変換部をさらに有する。【００１３】
第２の発明は、ブロックの交流成分予測を行う画像処理プログラムを提供する。この画像処理プログラムは、ブロックに関する参照領域の情報として特定され、画像平面上においてブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出するステップと、一次元方向における一方の方向に位置する画素値およびブロックの画素値の変化量と、一次元方向における他方の方向に位置する画素値およびブロックの画素値の変化量とのうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値を設定するステップと、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きの値が小さくなるように、一次元方向の傾きを補正して出力するステップと、出力された一次元方向の傾きを用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出するステップとを有する画像処理方法をコンピュータに実行させる。【００１４】
ここで、第２の発明において、一次元方向の傾きは、第１の発明と同様、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることが好ましい。【００１５】
第２の発明において、上記一次元方向の傾きを補正して出力するステップは、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きを傾きしきい値以下に補正して出力するステップであることが好ましい。【００１６】
第２の発明において、算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、サブブロックの画素値を算出するステップをさらに設けてもよい。【００１７】
第２の発明は、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造に適用することもできる。この場合、上記画像処理方法が再帰的に実行され、上位階層において算出されたサブブロックの画素値は、上位階層の直下に位置する下位階層におけるブロックの画素値として、下位階層に供給される。【００１８】
第２の発明は、画像を圧縮するエンコードプログラムに適用することもできる。このエンコードプログラムは、算出された予測画素値と、真の画素値との差分を予測残差として算出するステップと、算出された予測残差に対して、非可逆変換を施すステップと、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するステップと、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、第６のステップに供給すべき予測残差を生成するステップとをさらに有する。【００１９】
第２の発明は、画像を伸張するデコードプログラムに適用することもできる。このデコードプログラムは、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、予測残差を復元するステップをさらに有する。
【発明の効果】
【００２０】
第１および第２の発明によれば、一次元方向の傾きが傾きしきい値よりも大きいエッジ周辺では、一次元方向の傾きの値が小さくなるように一次元方向の傾きが補正される。一次元方向の傾きの抑制は、交流成分予測によるオーバーシュートおよびアンダーシュートが抑制される方向に作用するので、リンギングノイズの低減に寄与する。
【図面の簡単な説明】
【００２１】
【図１】エッジ周辺以外の領域における横方向の画素値の特性図
【図２】エッジ周辺における横方向の画素値の特性図
【図３】ＲＡＣＰエンコーダの全体構成図
【図４】画像平面上に設定されるブロックの説明図
【図５】並行処理における動作タイミングチャート-
【図６】逐次処理における動作タイミングチャート
【図７】ＲＡＣＰエンコーダにおける階層処理部の構成図
【図８】交流成分予測部の構成図
【図９】対象ブロックを中心とした参照ブロックの距離的関係を示す図
【図１０】横方向の傾きαの算出説明図
【図１１】一例としての横方向の傾きαの入出力特性図
【図１２】別の一例としての横方向の傾きαの入出力特性図
【図１３】オーバー／アンダーシュートが抑制された横方向の画素値の特性図
【図１４】参照ブロックの別の設定例を示す図
【図１５】参照ブロックの別の設定例を示す図
【図１６】ＲＡＣＰエンコードプログラムのフローチャート
【図１７】ＲＡＣＰデコーダの全体構成図
【図１８】ＲＡＣＰデコーダにおける階層処理部の構成図
【図１９】ＲＡＣＰデコードプログラムのフローチャート
【発明を実施するための形態】
【００２２】
以下、本発明に係る交流成分予測を適用した実施形態として、再帰的交流成分予測符号化（ＲＡＣＰ：Recursive ＡＣＰ）を例に説明する。
【００２３】
（ＲＡＣＰエンコーダ）
図３は、ＲＡＣＰエンコーダの全体構成図である。このエンコーダは、ＤＣ算出部１と、ＤＣ符号化部２と、階層処理部３ａ〜３ｃとを有し、一例として４階層で構成されている。これらのユニット１，２，３ａ〜３ｃより出力されたデータＴＤＣn，ＤＣn（n=0,1,2）は、図示しないバッファ（記憶部）に一時的に随時格納される。
【００２４】
ＤＣ算出部１は、圧縮対象となる入力画像を予め設定されたサイズのブロックに分割し、それぞれのブロックの平均画素値、すなわち、ブロック内に含まれる画素の平均値をＴＤＣ0〜ＴＤＣ3として出力する。ここで、ＴＤＣ0は８×８画素のブロック（以下「８×８ブロック」という）の平均画素値、ＴＤＣ1は４×４画素のブロック（以下「４×４ブロック」という）の平均画素値、ＴＤＣ2は２×２画素のブロック（以下「２×２ブロック」という）の平均画素値である。また、ＴＤＣ3は１×１画素のブロック（以下「１×１ブロック」という）の平均画素値、すなわち、画像の最小単位である画素の画素値そのものである。なお、入力画像から直接算出される平均画素値ＴＤＣ0〜ＴＤＣ3（真の値）は、ユニット２，３ａ〜３ｃ内での処理を経て復元される平均画素値ＤＣ0〜ＤＣ2（復元値）とは区別される点に留意されたい。両者の値は、符号化の過程で非可逆変換をともなうので、厳密には一致しない。
【００２５】
ＤＣ符号化部２および階層処理部３ａ〜３ｃは、８×８ブロック（最上位階層）、４×４ブロック（第２位階層）、２×２ブロック（第３位階層）、１×１ブロック（最下位階層）よりなる４階層構造において、自己に割り当てられた階層処理を行う。
【００２６】
最上位階層のＤＣ符号化部２は、バッファから読み出された８×８ブロック毎の平均画素値ＴＤＣ0に対して、差分パルス符号変調（ＤＰＣＭ：Differential Pulse Code Modulation）およびエントロピー符号化を施す。差分パルス符号変調によって、画像平面上において互いに隣接したブロックに関する平均画素値ＴＤＣ0の差分が符号化される。そして、この符号化された差分に対して、量子化後、ハフマン符号化や算術符号化といったエントロピー符号化が施される。このような処理を経たデータは、圧縮データの一部となる画像の直流成分ＤＣ0として出力されるとともに、直下位の階層の階層処理部３ａにも供給すべく、８×８ブロックの平均画素値を復元（逆量子化）した値ＤＣ0として出力される。
【００２７】
３つの階層処理部３ａ〜３ｃは、ＤＣ算出部１によって生成された平均画素値ＴＤＣn（n=1,2,3、以下同様）と、直上位の階層によって生成された平均画素値ＤＣn-1とを入力とした交流成分予測を含む処理によって、圧縮データの一部としての画像の交流成分ＡＣnを出力する。それとともに、階層処理部３ａ，３ｂ（３ｃは除く）は、交流成分ＡＣnより平均画素値ＤＣnを復元する。復元された平均画素値ＤＣ0,1,2は、直下位の階層に供給するために出力される。
【００２８】
具体的には、第２位階層の階層処理部３ａは、８×８ブロックを処理対象とした交流成分予測および予測残差の算出といった処理を経て、４×４ブロックの交流成分ＡＣ1と、４×４ブロックの平均画素値ＤＣ1とを出力する。この階層では、交流成分予測で参照すべき情報として、最上位階層で生成された８×８ブロックの平均画素値ＤＣ0が用いられる。それとともに、予測残差を算出するために、ＤＣ算出部１によって算出された４×４ブロックの平均画素値ＴＤＣ1が入力される。第３位階層の階層処理部３ｂは、４×４ブロックを処理対象とした交流成分予測等の処理を経て、２×２ブロックの交流成分ＡＣ2と、２×２ブロックの平均画素値ＤＣ2とを出力する。この階層では、交流成分予測の参照情報として、第２位階層で生成された４×４ブロックの平均画素値ＤＣ1とが用いられる。それとともに、予測残差を算出するために、ＤＣ算出部１によって算出された２×２ブロックの平均画素値ＴＤＣ2が入力される。最下位階層の階層処理部３ｃは、２×２ブロックを処理対象とした交流成分予測等の処理を経て、１×１ブロックの交流成分ＡＣ3を出力する（ＤＣ3の算出は不要）。この階層では、交流成分予測の参照情報として、第３位階層で生成された２×２ブロックの平均画素値ＤＣ2が用いられる。それとともに、予測残差を算出するために、ＤＣ算出部１によって算出された１×１ブロックの平均画素値ＴＤＣ3が用いられる。
【００２９】
このように、処理対象となるブロックのサイズが異なる階層構造において、ＤＣ符号化部２および階層処理部３ａ〜３ｃが互いに連係することによって、交流成分予測を主体とした画像処理が再帰的に実行される。これによって、圧縮データとして、画像の直流成分ＤＣ0と、その交流成分ＡＣ1〜ＡＣ3とが出力される。なお、圧縮データには、これら以外にもハフマンテーブル等の付随情報も含まれる。
【００３０】
図４は、画像平面上に設定されるブロックの説明図である。ブロックＰＢは、圧縮対象となる画像（例えば１フレームの画像またはその部分画像）を縦横に分割することで、画像平面上に複数設定され、ブロック単位で処理される。ブロックＰＢのサイズは、階層が下位になるにしたがって段階的に小さくなるように設定されている。ある階層におけるブロックＰＢのサイズは、その直上位に位置する階層で細分化されたサブブロックｓｂのサイズと一致する。逆にいえば、上位階層のサブブロックｓｂのサイズは、その直下に位置する下位階層のブロックＰＢのサイズと一致する。ある階層における画像全体の処理は、処理対象となる対象ブロックＰＢsを画面上で順次シフトさせながら処理を繰り返し、画像中の全ブロックを処理することによって達成される。このシフト方向（スキャン方向）は、図示したように、水平方向に沿った線順次走査的なものであってもよいが、垂直方向に沿ったものも含めて任意に設定してよい。また、それぞれの階層におけるシフトの方向は、必ずしも同一である必要もない。図示したシフト方向の場合、対象ブロックＰＢsが属する水平ラインよりも上側が処理済領域となり、これよりも下側が未処理領域となる。また、対象ブロックＰＢsの水平ラインについては、その左側が処理済領域となり、その右側が未処理領域となる。対象ブロックＰＢsの処理で参照される参照領域として、ブロックサイズが同一である４つのブロックＰＢt，ＰＢl，ＰＢb，ＰＢrが用いられる。左右のブロックＰＢl，ＰＢrは、対象ブロックＰＢsを中心として横方向に対向しており、上下のブロックＰＢt，ＰＢbは、対象ブロックＰＢsを中心として縦方向に対向している。対象ブロックＰＢsの交流成分予測によって、これを４つに分割したサブブロックｓｂ00，ｓｂ01，ｓｂ10，ｓｂ11の平均画素値が算出される。以下、あるブロックＰＢを細分化した際、左上のサブブロックｓｂを”00”、右上を”01”、左下を”10”、右下を”11”の添字を以て識別する。
【００３１】
ＲＡＣＰエンコーダの処理は、並行処理および逐次処理のどちらで行ってもよい。図５は、並行処理における動作タイミングチャートである。まず、ＤＣ算出部１が動作して、平均画素値ＴＤＣ0〜ＴＤＣ3を生成する。そして、すべての平均画素値ＴＤＣ0〜ＴＤＣ3の生成が終了したことを以て、ＤＣ符号化部２および階層処理部３ａ〜３ｃが並行して動作する。ただし、これらの動作が開始するタイミングは同じではなく、階層が下位になるほど開始タイミングが遅くなる。この遅延は、上位階層の順次シフトによる処理遅延に起因して生じる。ある階層で対象ブロックＰＢsの処理を開始する場合、その参照ブロックＰＢt〜ＰＢrの処理が直上位の階層で終了していることが条件となる（処理開始条件）。したがって、上位階層において、順次シフトが進行してブロックＰＢbまでの処理が終了しない限り、下位階層におけるブロックＰＢsの処理が開始できない。これが下位階層における動作遅延が生じる所以である。ただし、図６に示すような逐次処理と比較すると、図５に示したパイプライン的な並行処理の方が高速である。一方、図６の逐次処理では、ある階層の処理が全て終了した時点で、直下位の階層の処理が開始される。したがって、逐次処理においても、上記処理開始条件を当然に満たす。
【００３２】
図７は、ＲＡＣＰエンコーダにおける階層処理部３（３ａ〜３ｃの総称）の構成図である。それぞれの階層における階層処理部３は、取り扱うブロックサイズが異なる点を除けば、構成および処理の流れは基本的に同一である。ただし、最下位の階層処理部３ｃについては、これよりも下位の階層が存在しないため、ＤＣ3の生成系３６，３７が不要となる。階層処理部３は、画素値読出部３１と、交流成分予測部３２と、減算器３３と、非可逆変換部３４と、エントロピー符号化部３５と、逆変換部３６と、加算器３７とを有する。
【００３３】
画素値読出部３１は、今回の処理対象となる対象ブロックＰＢsと、その参照すべき領域となる参照ブロックＰＢt〜ＰＢrとを特定し、これらの平均画素値ＤＣn-1をバッファから読み出す。本実施形態において、参照ブロックＰＢt〜ＰＢrの情報は、そのブロックが処理済／未処理の区別に関わりなく、換言すれば、そのブロック内のサブブロックの情報が算出されているか否かに関わりなく、直上位の階層で算出済みの平均画素値ＤＣn-1が一律に用いられる。なお、後述する図１４および図１５のようにサブブロックも参照する場合には、同一階層で算出済みの平均画素値ＤＣnがバッファより読み出される。バッファから読み出された平均画素値ＤＣn-1は、交流成分予測部３２に供給される。
【００３４】
交流成分予測部３２は、対象ブロックＰＢsの平均画素値ＤＣn-1（以下、「Ｓ」という）と、参照ブロックＰＢt〜ＰＢrの平均画素値ＤＣn-1（以下、それぞれを「T」，「Ｌ」，「Ｂ」，「Ｒ」という）とを用いて、対象ブロックＰＢsの交流成分予測を行う。これにより、対象ブロックＰＢsを細分化した４つのサブブロックｓｂ00〜ｓｂ11の予測画素値Ｃ＝｛ｃ00，ｃ01，ｃ10，ｃ11｝が算出される。
【００３５】
図８は、交流成分予測部３２の構成図である。交流成分予測部３２は、傾き算出部３２ａと、しきい値設定部３２ｂと、傾き補正部３２ｃと、予測部３２ｄとを有する。傾き算出部３２ａは、対象ブロックＰＢsの参照領域の情報に基づいて、一次元方向の傾き、すなわち、一次元方向における単位距離あたりの画素値の変化量を算出する。本実施形態では、一次元方向の傾きとして、横方向の傾きαおよび縦方向の傾きβの双方を算出しているが、いずれか一方のみでもよく、或いは、これらに斜め方向等を追加してもよい。横方向の傾きαは、画像平面上において対象ブロックＰＢsを中心に横方向に対向した左右の画素値Ｌ，Ｒに基づいて算出される。また、縦方向の傾きβは、画像平面上において対象ブロックＰＢsを中心に縦方向に対向した上下の画素値Ｔ，Ｂに基づいて算出される。これらの傾きα，βの算出式を数式１に示す。
【００３６】
（数式１）
α ＝ （Ｌ−Ｒ）／８
β ＝ （Ｔ−Ｂ）／８
【００３７】
図９は、対象ブロックＰＢsを中心とした参照ブロックＰＢt〜ＰＢrの距離的関係を示す図である。それぞれのブロックＰＢの中心位置における中心画素値は、そのブロック自体の平均画素値ＤＣn-1とみなす。ブロックＰＢを４分割したときの正方形（サブブロックｓｂ）の１辺の長さを１とし、サブブロックｓｂを更に４分割したときの正方形の１辺の長さを１／２とする。隣り合ったブロック同士の中心間距離は２となり、ブロックおよびその内部のサブブロックの中心間距離は１／２（正規化係数）となる。上記数式１における除数８は、左右の中心画素値Ｌ，Ｒの中心間距離４を正規化係数１／２で正規化した値である。
【００３８】
図１０は、横方向の傾きαの算出説明図である。まず、左右の参照ブロックＰＢｌ，ＰＢrの中心画素値Ｌ，Ｒの差を両者の中心間距離４で除算する。そして、これによって得られた値を正規化係数１／２で正規化することで、横方向の傾きαが算出される。縦方向の傾きβについても同様であり、上下の参照ブロックＰＢt，ＰＢbの中心画素値Ｔ，Ｂの差を両者の中心間距離４で除算し、その除算値が正規化係数１／２で正規化される。傾き算出部３２ａにて算出された傾きα，βは、傾き補正部３２ｃに出力される。
【００３９】
しきい値設定部３２ｂは、傾きα，βのそれぞれに関して、傾きしきい値αth，βthを算出する。横方向の傾きαに関しては、対象ブロックＰＢsの左側の画素値Ｌと、対象ブロックＰＢs自体の画素値Ｓとの間の変化量｜Ｌ−Ｓ｜が算出されるとともに、対象ブロックＰＢsの右側の画素値Ｒと、対象ブロックＰＢs自体の画素値Ｓとの間の変化量｜Ｒ−Ｓ｜が算出される。そして、これらの変化量｜Ｌ−Ｓ｜，｜Ｒ−Ｓ｜の内の小さい方が選択され、これが横方向の傾きしきい値αthとして設定される。一方、縦方向の傾きβに関しては、対象ブロックＰＢsの上側の画素値Ｔと、対象ブロックＰＢs自体の画素値Ｓとの間の変化量｜Ｔ−Ｓ｜が算出されるとともに、対象ブロックＰＢsの下側の画素値Ｂと、対象ブロックＰＢs自体の画素値Ｓとの間の変化量｜Ｂ−Ｓ｜が算出される。そして、これらの変化量｜Ｔ−Ｓ｜，｜Ｂ−Ｓ｜の内の小さい方が選択され、これが縦方向の傾きしきい値βthとして設定される。しきい値設定部３２ｂにて設定された傾きしきい値αth，βthは、傾き補正部３２ｃに出力される。
【００４０】
傾き補正部３２ｃは、横方向の傾きαが傾きしきい値αth以下の場合には、横方向の傾きαを補正することなくそのまま予測部３２ｄに出力するとともに（入力値α＝出力値α’）、これが傾きしきい値αthよりも大きい場合には、この傾きαの値が小さくなるように傾きαを補正して出力する（入力値α＞出力値α’）。同様に、縦方向の傾きβが傾きしきい値βth以下の場合には、縦方向の傾きβがそのまま出力され（入力値｜β｜＝出力値｜β’｜）、これが傾きしきい値βthよりも大きい場合には、この傾きβの値が小さくなるように傾きβが補正・出力される（入力値｜β｜＞出力値｜β’｜）。
【００４１】
本実施形態では、一例として以下の数式２に基づいて傾きα，βを補正する。ここで、sign(x)は、傾きの符号を指定する符号関数であり、ｘ＞０で出力１、ｘ＝０で出力０、ｘ＜０で出力−１のいずれかを返す。
【００４２】
（数式２）
α’ ＝ sign(α) × αth
β’ ＝ sigin(β) × βth
【００４３】
図１１は、傾き補正部３２ｃにおける横方向の傾きαの入出力特性図である。｜α｜≦αthの非補正領域では、交流成分予測によるオーバー／アンダーシュートが生じないので、入力値｜α｜をそのまま出力値｜α’｜とする。これに対して、｜α｜＞αthの補正領域では、入力値｜α｜の値に関わりなく、出力値｜α’｜を傾きしきい値αth（一定）に制限する。傾き｜α｜が傾きしきい値αthよりも大きいということは、その方向の傾きが急であるがゆえに、そのままだとオーバー／アンダーシュートが生じることを意味する。このような場合、入力値｜α｜に対して出力値｜α’｜を小さくすれば、本来の値αとの差に相当する分だけオーバー／アンダーシュートが緩和される。特に、出力値｜α’｜を傾きしきい値αth以下に制限すれば、理論上、オーバー／アンダーシュートを完全に解消できる。なお、補正値として、傾きしきい値αthをそのまま用いてもよいが、これに所定の係数ｎ（０＜ｎ≦１）を乗じたものを用いてもよい。また、補正領域における出力値α’を一定値にするのではなく、図１２に示すように、｜α｜＞｜α’｜の条件を維持しながら、入力値｜α｜の増加と共に出力値｜α’｜を曲線状に増加させてもよい。入出力特性の設定に際しては、入力値｜α｜よりも出力値｜α’｜を小さくするという条件を最低限満たす必要があり、この条件を満たす限りどのような入出力特性を設定してもよい。さらに、傾きαの補正は、演算式を用いて行う以外に、入力値αおよび出力値α’の対応関係を記述したテーブルを参照して行ってもよい。以上の点は縦方向の傾きβについても同様である。傾き補正部３２ｃによって算出された傾きα’，β’は、予測部３２ｄに出力される。
【００４４】
予測部３２ｄは、横方向の傾きα’および縦方向の傾きβ’の双方を入力としたアダマール逆変換（数式３）を行い、対象ブロックＰＢsを細分化した複数のサブブロックｓｂ00〜ｓｂ11のそれぞれの予測画素値Ｃ＝｛ｃ00，ｃ01，ｃ10，ｃ11｝を算出する。また、数式４は、非補正領域の処理結果であるα’＝α，β’＝βを入力とした予測画素値Ｃの算出式である（数式１，３を単一式で表現したもの）。予測部３２ｄにおいて算出された予測画素値Ｃは、図７の減算器３３および加算器３７に供給される。
【００４５】
（数式３）
ｃ00 ＝ T＋（α’＋β’）
ｃ01 ＝ T＋（−α’＋β’）
ｃ10 ＝ T＋（α’−β’）
ｃ11 ＝ T＋（−α’−β’）
【００４６】
（数式４）
ｃ00 ＝ T＋（Ｌ−Ｒ＋Ｔ−Ｂ）／８
ｃ01 ＝ T＋（−Ｌ＋Ｒ＋Ｔ−Ｂ）／８
ｃ10 ＝ T＋（Ｌ−Ｒ−Ｔ＋Ｂ）／８
ｃ11 ＝ T＋（−Ｌ＋Ｒ−Ｔ＋Ｂ）／８
【００４７】
再び図７を参照すると、減算器３３は、交流成分予測部３２によって算出された予測画素値Ｃ（例えば４×４ブロック単位）と、これに対応する平均画素値ＴＤＣn（例えば４×４ブロック単位）、すなわち、入力画像に基づいて算出された真の画素値との差分を予測残差ＰＲとして算出する。交流成分予測によって生成された予測画像（予測画素値ｃ00〜ｃ11の集合）が本来の画像（真の画素値）に近いほど予測残差ＰＲが小さくなる。傾き補正部３２ｃにおける傾きα，βの補正によって、予測外れが解消する方向に作用するため、傾きα，βをそのまま用いる場合よりも予測残差ＰＲが小さくなる。予測残差ＰＲが小さくなるほど、統計的に見た予測残差の出現頻度が０近傍に偏る傾向が高まるので、エントロピー符号化を施す上で有利になる（圧縮率の向上に貢献する）。
【００４８】
非可逆変換部３４は、減算器３３によって算出された予測残差ＰＲに対して、例えばアダマール変換および量子化といった非可逆変換を施す。エントロピー符号化部３５は、非可逆変換が施された予測残差ＰＲに対して、ハフマン符号化や算術符号化といったエントロピー符号化を施すことによって、例えば４×４ブロック単位での交流成分ＡＣn（圧縮データ）を生成する。逆変換部３６は、非可逆変換が施された予測残差ＰＲに対して、この非可逆変換の逆処理を施すことによって予測残差ＰＲ’を算出する。この予測残差ＰＲ'は、本来の予測残差ＰＲを復元したものだが、非可逆変換（元の値を完全に復元することはできない）が施されている関係上、本来の予測残差ＰＲとは僅かに相違している。加算器３７は、交流成分予測部３２によって算出された予測画素値Ｃに、予測残差ＰＲ’を加算することによって、サブブロック（例えば４×４ブロック）の平均画素値ＤＣnを算出する。加算器３７の入力として本来の予測残差ＰＲではなく、復元された予測残差ＰＲ’を用いる理由は、デコード時の繰り返し処理によって誤差の累積することを防止し、伸張画像の再現性を担保するためである。加算器３７より出力された平均画素値ＤＣnは、バッファに一時的に格納され、直下位の階層での処理において随時読み出される。
【００４９】
このように、本実施形態に係るＲＡＣＰエンコーダによれば、一次元方向の傾きα，βが傾きしきい値αth，βth以下の場合、非補正領域の処理として、α，βの値がそのまま傾きα’，β’として出力される。そして、これらの傾きα’（＝α），β’（＝β）に基づいて予測画素値Ｃが算出される。この場合、例えば横方向の傾きαに関しては、図１で例示した従来技術と同様、本来的にオーバー／アンダーシュートを招くことなく、Ｓ±αの予測画素値ｃ0，ｃ1（ＡＣ値）が算出される。これに対して、エッジ周辺のように、一次元方向の傾きα，βが傾きしきい値αth，βthよりも大きい場合、補正領域の処理として、α，βの値が小さくなるように補正されたものが傾きα’，β’として出力される。そして、これらの傾き｜α’｜（＜｜α｜），｜β’｜（＜｜β｜）に基づいて予測画素値Ｃが算出される。この場合、例えば横方向の傾きαに関しては、図１３に例示するように、Ｓ（ＤＣ値）に対する変化量を規定する｜α’｜が傾きしきい値αth相当に規制される。これにより、交流成分予測前の大小関係（Ｌ＞Ｓ≧Ｒ）が交流成分予測後の大小関係（Ｌ＞ｃ0＞ｃ1＝Ｒ）として、或いは、それに近い形で維持される。これにより、予測画素値ｃ0のオーバーシュートおよび予測画素値ｃ1のアンダーシュートが抑制され、リンギングノイズの発生を有効に低減できる。その結果、画質の低下を抑制できるとともに、予測誤差の増大に起因した圧縮率の低下も防止できる。特に、傾きの大きさ｜α｜，｜β｜を傾きしきい値αth，βthの値、或いは、それ以下の値に置き換えれば、理論上、リンギングノイズを完全に解消できる。また、図５に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【００５０】
なお、上述した実施形態では、対象ブロックＰＢsの参照領域として、これに直接隣接した上下左右のブロックＰＢt〜ＰＢrを設定しているが、以下に示す設定例を含めて様々な設定に適用できる。また、上述した実施形態では、傾きα，βの計算と傾きしきい値αth，βthの計算とで同一の画素値Ｔ，Ｌ，Ｂ，Ｒ（参照情報）を用いているが、例えば傾きα，βの計算を大ブロック、傾きしきい値αth，βthの計算を小ブロックといった如く、両者の計算で用いる参照情報を相違させてもよい。
【００５１】
図１４の設定例では、対象ブロックＰＢsの参照領域として、ブロックサイズが同一である８つのブロックＰＢt，ＰＢtt，ＰＢl，ＰＢll，ＰＢb，ＰＢbb，ＰＢr，ＰＢrrが用いられる。参照ブロックＰＢt，ＰＢl，ＰＢb，ＰＢrは、対象ブロックＰＢsの上下左右に直接隣接している。また、参照ブロックＰＢtt，ＰＢll，ＰＢbb，ＰＢrrは、対象ブロックＰＢsの上下左右に一つ飛びで隣接している。本設定例において、傾きα，βの計算を数式１のままとし、傾きしきい値αth，βthの計算に関してのみ、予測画素値Ｔ’，Ｌ’，Ｂ’，Ｒ’を用いる（数式５）。予測画素値Ｔ’，Ｌ’，Ｂ’，Ｒ’は、対象ブロックＰＢsの画素値Ｓと、その方向に存在する２つのブロックの画素値（例えば左方向はＬ，ＬＬ）とを用いて予測される。傾きα，β等を算出した後の処理は、上述した実施形態と同様である。
【００５２】
（数式５）
Ｌ’ ＝ Ｌ＋（Ｓ−ＬＬ）／４
Ｒ’ ＝ Ｒ＋（Ｓ−ＲＲ）／４
Ｔ’ ＝ Ｔ＋（Ｓ−ＴＴ）／４
Ｂ’ ＝ Ｂ＋（Ｓ−ＢＢ）／４
α ＝ （Ｌ−Ｒ）／８
β ＝ （Ｔ−Ｂ）／８
αth ＝ min（｜Ｌ’−Ｓ｜，｜Ｒ’−Ｓ｜）
βth ＝ min（｜Ｔ’−Ｓ｜，｜Ｂ’−Ｓ｜）
【００５３】
図１５の設定例では、上左のブロックＰＢt，ＰＢlについては、サブブロックｓｂ(T)，ｓｂ(L)の中心画素値ｔ0，ｔ1，ｌ0，ｌ1が用いられる。これらの中心画素値ｔ0〜ｌ1は、同一階層における従前の処理でＤＣnとして処理済であり、その値がフィードバックされる。本設定例において、傾きα，βの計算および傾きしきい値αth，βthの計算の双方に関して、予測画素値Ｔ’，Ｌ’，Ｂ’，Ｒ’を用いる（数式６）。この場合、対象ブロックＰＢsを中心に一次元方向に対向した予測画素値が予測され、これらを用いて傾きα，βが算出される。傾きα，β等を算出した後の処理は、上述した実施形態と同様である。
【００５４】
（数式６）
Ｔ’ ＝ （ｔ0＋ｔ1）／２
Ｌ’ ＝ （ｌ0＋ｌ1）／２
Ｂ’ ＝ Ｂ＋（Ｓ−ＢＢ）／８
Ｒ’ ＝ Ｒ＋（Ｓ−ＲＲ）／８
α ＝ （Ｌ’−Ｒ’）／６
β ＝ （Ｔ’−Ｂ’）／６
αth ＝ min（｜Ｌ’−Ｓ｜，｜Ｒ’−Ｓ｜）
βth ＝ min（｜Ｔ’−Ｓ｜，｜Ｂ’−Ｓ｜）
【００５５】
（ＲＡＣＰエンコードプログラム）
つぎに、ハードウェアとして実現されるＲＡＣＰエンコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのＲＡＣＰエンコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載に譲るものとする。
【００５６】
図１６は、ＲＡＣＰエンコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図６に示したような逐次処理が基本となる。まず、ステップ１において、入力画像の画像平面上にブロック（４タイプ）を複数設定し、それぞれのブロックの平均画素値ＴＤＣ0〜ＴＤＣ3が算出される。算出された平均画素値ＴＤＣ0〜3は、バッファに随時格納される。すべてのブロックの処理が終了するとステップ２に進む。
【００５７】
ステップ２において、８×８ブロックの平均画素値ＴＤＣ0に対して、ＤＣ符号化、すなわち、差分パルス幅変調とエントロピー符号化とが施され、これによって、圧縮データの一部となる画像の直流成分ＤＣ0が生成・出力される。また、その復元値がＤＣ0としてバッファに格納される。
【００５８】
ステップ３において、階層番号ＬＮが１（初期値）にセットされる。ＬＮ＝１は、処理を行うべき階層が最上位階層であることを示す。そして、１つの階層処理が終了する毎に１ずつインクリメントされ（ステップ１４）、下位の階層へと順番に推移していく。そして、ＬＮ＝３、すなわち最下位階層の処理が終わった時点で、全ての処理が終了する（ステップ１３）。
【００５９】
ステップ４において、ブロック番号ＢＮが１（初期値）にセットされる。先のステップ３における階層番号ＬＮの設定にともない、その階層で処理対象となるブロックのサイズは一義的に特定され、全体のブロック数に応じた終了ブロック番号ＢＮendも特定される。同一階層内におけるブロックの処理が終了する毎にブロック番号ＢＮが１ずつインクリメントされ（ステップ１２）、処理対象が所定の方向に順次シフトしていく。そして、終了ブロック番号ＢＮendに相当するブロックの処理が終了した時点で、その階層における処理が終了する（ステップ１１）。
【００６０】
ステップ５において、ブロック番号ＢＮによって指定された対象ブロックＰＢsに関して、参照ブロックの画素値ＤＣn（＝Ｔ，Ｌ，Ｂ，Ｒ）が読み出される。
【００６１】
ステップ６において、ブロック番号ＢＮによって指定された対象ブロックＰＢsに関して、上述した数式１〜３に基づいて交流成分予測が行われ、これによって、予測画素値Ｃ（＝ｃ00〜ｃ11）が算出される。そして、これに続くステップ７において、先のステップ６で算出された予測画素値Ｃと真の画素値ＴＤＣnとの差分が予測残差ＰＲとして算出される。
【００６２】
ステップ８において、先のステップ７で算出された予測残差ＰＲに対して、非可逆変換およびエントロピー符号化を施す。これによって、圧縮データの一部としての画像の交流成分ＡＣnが生成される。これに続くステップ９において、非可逆変換が施された予測誤差ＰＲに対して、その逆処理を行い、本来の予測誤差ＰＲを復元した予測誤差ＰＲ’（復元値）が算出される。そして、ステップ１０において、ステップ６で算出された予測画素値Ｃに、予測残差ＰＲ’を加算することによって、サブブロックの平均画素値ＤＣnが算出され、バッファに格納される。なお、ステップ９，１０の処理は、ＬＮ＝３、すなわち最下位の階層処理ではスキップされる。
【００６３】
ステップ１１において、ブロック番号ＢＮが終了ブロック番号ＢＮendに到達したか否かが判断される。終了ブロック番号ＢＮendに到達するまでは、ステップ１２においてブロック番号ＢＮが１ずつインクリメントされていき、ステップ５〜１１の処理が繰り返される。そして、終了ブロック番号ＢＮendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ループを抜けてステップ１３に進む。
【００６４】
ステップ１３において、階層番号ＬＮが３（最下位階層）に到達したか否かが判断される。３に到達するまでは、ステップ１４において階層番号ＬＮが１ずつインクリメントされていき、ステップ５〜１２のループが繰り返される。これにより、階層が下位になるにしたがって、対象ブロックＰＢsのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値ＤＣn（出力）は、下位階層側の平均画素値ＤＣn-1（入力）として用いられる。そして、ＬＮ＝３で、かつ、ＢＮ＝ＢＮendに到達した場合、すなわち、最下位階層の全処理が終了した場合には、ステップ１１，１３の判断結果よりループを抜け、これによって、本プログラムの処理が終了する。
【００６５】
本実施形態に係るＲＡＣＰエンコードプログラムによれば、上述したＲＡＣＰエンコーダと同様、リンギングノイズによる画質の低下を抑制できるとともに、予測誤差の増大に起因した圧縮率の低下も防止できる。
【００６６】
（ＲＡＣＰデコーダ）
図１７は、上述したＲＡＣＰエンコーダまたはＲＡＣＰエンコードプログラムによって生成された圧縮データを伸張するＲＡＣＰデコーダの全体構成図である。このデコーダは、ＤＣ復号化５と、３つの階層処理部６ａ〜６ｃとを主体に構成されている。これらのユニット５，６ａ〜６ｃより出力されたデータＤＣn（n=0,1,2,3）は、図示しないバッファ（記憶部）に一時的に格納される。
【００６７】
ＤＣ復号化５および階層処理部６ａ〜６ｃは、８×８ブロック（最上位階層）、４×４ブロック（第２位階層）、２×２ブロック（第３位階層）、１×１ブロック（最下位階層）の階層構造において、自己に割り当てられた階層処理を行う。最上位階層のＤＣ復号化部５は、画像の直流成分ＤＣ0に関する圧縮データに対して、画像圧縮時に施された処理の逆処理を行うことによって、８×８ブロックの平均画素値ＤＣ0を生成し、これを第２位階層の階層処理部６ａに供給する。
【００６８】
ＲＡＣＰデコーダの階層構造自体は、ＲＡＣＰエンコーダのそれとほぼ同様であるが、エンコーダにおける階層処理部３ａ〜３ｃの出力となる交流成分ＡＣ1〜ＡＣ3が、デコーダにおける階層処理部６ａ〜６ｃの入力となる点が相違する。これらの階層処理部６ａ〜６ｃは、画像の交流成分ＡＣ1〜ＡＣ3に関する圧縮データと、直上位の階層より供給された平均画素値ＤＣn-1とに基づいて、平均画素値ＤＣnを復元する。復元された平均画素値ＤＣnは、必要に応じて直下位の階層に供給するために出力され、バッファに格納される。そして、最下位階層の階層処理部６ｃによって算出された１×１ブロックの平均画素値ＤＣ3の集合が最終的な伸張画像となる。なお、デコーダにおける順次シフトの方向は、エンコーダのそれに準じるものとする。また、デコーダの処理は、並列処理および逐次処理のどちらであってもよい。
【００６９】
図１８は、ＲＡＣＰデコーダにおける階層処理部６（６ａ〜６ｃの総称）の構成図である。それぞれの階層における階層処理部６は、取り扱うブロックのサイズが異なる点を除けば、基本構成および動作は同一である。階層処理部６は、画素値読出部６１と、交流成分予測部６２と、加算器６３と、逆変換部６４とを有する。
【００７０】
画素値読出部６１は、ＲＡＣＰエンコーダと同様、対象ブロックＰＢsの周辺に存在する参照ブロックＰＢt〜rrの平均画素値ＤＣn（＝T，L，B，R）をバッファから読み出す。この平均画素値ＤＣn-1は、直上位の階層において既に算出されており、直上位の階層よりバッファを介して供給される。バッファより読み出された平均画素値ＤＣn-1が交流成分予測部６２に供給される。
【００７１】
交流成分予測部６２は、図８に示した構造を有し、バッファより供給されたＤＣn-1を用いて、対象ブロックＰＢsの交流成分予測を行う。これによって、対象ブロックＰＢsの予測画素値Ｃ（＝ｃ00〜ｃ11）が算出される。算出された予測画素値Ｃは、加算器６３に供給される。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合には、デコーダとの間で予め取り決められた規則にしたがって処理される。例えば、対象ブロックＰＢsの平均画素値ＤＣn-1をその部分の情報として補うといった如くである。
【００７２】
逆変換部６４は、例えば４×４ブロックの交流成分ＡＣnの圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器６３に供給すべき予測残差ＰＲ’を復元する。加算器６３は、交流成分予測部６２によって算出された予測画素値Ｃに、逆変換部６４によって復元された予測残差ＰＲ’を加算することによって、サブブロック（例えば４×４ブロック）の平均画素値ＤＣnを算出し、バッファに一時的に格納する。バッファの格納された平均画素値ＤＣnは、直下位の階層でのブロック（例えば４×４ブロック）の平均画素値として、直下位の階層における交流成分予測部６２にも供給される。
【００７３】
このように、本実施形態に係るＲＡＣＰデコーダによれば、上述したＲＡＣＰデコーダまたはＲＡＣＰエンコードプログラムによって生成された圧縮データを適切に伸張することができる。特に、図５に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【００７４】
（ＲＡＣＰデコードプログラム）
つぎに、ハードウェアとして実現されるＲＡＣＰデコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのＲＡＣＰデコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載を参照するものとする。
【００７５】
図１９は、ＲＡＣＰデコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図６に示したような逐次処理が基本となる。まず、ステップ２１において、画像の直流成分ＤＣ0の圧縮データに対して、ＤＣ復号化、すなわち、データ圧縮時に施された符号化処理の逆処理が施され、これによって、８×８ブロックの平均画素値ＤＣ0が復元され、これがバッファに格納される。
【００７６】
ステップ２２，２３において、ＲＡＣＰエンコードプログラムと同様に、階層番号ＬＮが１（初期値）、ブロック番号ＢＮが１（初期値）にそれぞれセットされる。
【００７７】
ステップ２４において、ブロック番号ＢＮによって指定された対象ブロックＰＢsの参照情報Ｔ，Ｌ，Ｂ，Ｒがバッファより読み出される。
【００７８】
ステップ２５において、ブロック番号ＢＮによって指定された対象ブロックＰＢsに関して、上述した数式１〜３に基づき交流成分予測が行われ、これによって、対象ブロックＰＢsに関する予測画素値Ｃ（＝ｃ00〜ｃ11）が算出される。そして、これに続くステップ２６において、画像の交流成分ＡＣnの圧縮データが伸張され、これによって、予測残差ＰＲ’が復元される。そして、ステップ２７において、ステップ２５で算出された予測画素値Ｃに、ステップ２７で算出された予測残差ＰＲ’を加算することによって、サブブロックの平均画素値ＤＣnが算出され、バッファに格納される。
【００７９】
ステップ２８において、ブロック番号ＢＮが終了ブロック番号ＢＮendに到達したか否かが判断される。終了ブロック番号ＢＮendに到達するまでは、ステップ２９においてブロック番号ＢＮが１ずつインクリメントされていき、ステップ２４〜２７の処理が繰り返される。そして、終了ブロック番号ＢＮendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ステップ２８の判断結果よりループを抜け、ステップ３０に進む。
【００８０】
ステップ３０において、階層番号ＬＮが３（最下位階層）に到達したか否かが判断される。３に到達するまでは、ステップ３１において階層番号ＬＮが１ずつインクリメントされていき、ステップ２３〜２９のループが繰り返される。これにより、階層が下位になるにしたがって、ブロックＰＢのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値ＤＣn（出力）は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値ＤＣn-1（入力）として用いられる。そして、ＬＮ＝３で、かつ、ＢＮ＝ＢＮendに到達した場合、すなわち、最下位階層の処理が終了した場合には、ループを抜け、これによって、本プログラムの処理が終了する。
【００８１】
本実施形態に係るＲＡＣＰデコードプログラムによれば、上述したＲＡＣＰデコーダと同様の効果を奏する。
【産業上の利用可能性】
【００８２】
本発明に係る画像処理システムおよび画像処理プログラムは、交流成分予測符号化（再帰的交流成分予測符号化を含む）のみならず、交流成分予測を用いて解像度の高い画像を生成する画像処理等に対しても広く適用可能である。
【符号の説明】
【００８３】
１  ＤＣ算出部
２  ＤＣ符号化部
３（３ａ〜３ｃ）  階層処理部
５  ＤＣ復号化部
６（６ａ〜６ｃ）  階層処理部
３１，６１  画素値読出部
３２，６２  交流成分予測部
３２ａ  傾き算出部
３２ｂ  しきい値設定部
３２ｃ  傾き補正部
３２ｄ  予測部
３３  減算器
３４  非可逆変換部
３５  エントロピー符号化部
３６，６４  逆変換部
３７，６３  加算器
【図１】
2011042945.tif 000003
【図２】
2011042945.tif 000004
【図３】
2011042945.tif 000005
【図４】
2011042945.tif 000006
【図５】
2011042945.tif 000007
【図６】
2011042945.tif 000008
【図７】
2011042945.tif 000009
【図８】
2011042945.tif 000010
【図９】
2011042945.tif 000011
【図１０】
2011042945.tif 000012
【図１１】
2011042945.tif 000013
【図１２】
2011042945.tif 000014
【図１３】
2011042945.tif 000015
【図１４】
2011042945.tif 000016
【図１５】
2011042945.tif 000017
【図１６】
2011042945.tif 000018
【図１７】
2011042945.tif 000019
【図１８】
2011042945.tif 000020
【図１９】
2011042945.tif 000021
【手続補正書】
【提出日】平成24年2月28日(2012.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ブロックの交流成分予測を行う画像処理システムにおいて、
前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出する傾き算出部と、
前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するしきい値設定部と、
前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力する傾き補正部と、
前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出する予測部と
を有することを特徴とする画像処理システム。
【請求項２】
前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項１に記載された画像処理システム。
【請求項３】
前記傾き補正部は、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力することを特徴とする請求項１または２に記載された画像処理システム。
【請求項４】
前記予測部によって算出された前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出する加算器をさらに有することを特徴とする請求項１から３のいずれかに記載された画像処理システム。
【請求項５】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、
上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項４に記載された画像処理システム。
【請求項６】
前記画像処理システムは、画像を圧縮するエンコーダであって、
前記予測部によって算出された前記予測画素値と、真の画素値との差分を予測残差として算出する減算器と、
前記減算器によって算出された前記予測残差に対して、非可逆変換を施す非可逆変換部と、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する逆変換部と
をさらに有することを特徴とする請求項４または５に記載された画像処理システム。
【請求項７】
前記画像処理システムは、画像を伸張するデコーダであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を復元する逆変換部をさらに有することを特徴とする請求項４または５に記載された画像処理システム。
【請求項８】
ブロックの交流成分予測を行う画像処理プログラムにおいて、
前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出するステップと、
前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するステップと、
前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力するステップと、
前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出するステップと
を有する画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項９】
前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項８に記載された画像処理プログラム。
【請求項１０】
前記一次元方向の傾きを補正して出力するステップは、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力するステップであることを特徴とする請求項８または９に記載された画像処理プログラム。
【請求項１１】
前記算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出するステップをさらに有することを特徴とする請求項８から１０のいずれかに記載された画像処理プログラム。
【請求項１２】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、前記画像処理方法が再帰的に実行され、
上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項１１に記載された画像処理プログラム。
【請求項１３】
前記画像処理プログラムは、画像を圧縮するエンコードプログラムであって、
前記算出された予測画素値と、真の画素値との差分を予測残差として算出するステップと、
前記算出された予測残差に対して、非可逆変換を施すステップと、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するステップと、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記ステップに供給すべき前記予測残差を生成するステップと
をさらに有することを特徴とする請求項１１または１２に記載された画像処理プログラム。
【請求項１４】
前記画像処理プログラムは、画像を伸張するデコードプログラムであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記予測残差を復元するステップをさらに有することを特徴とする請求項１１または１２に記載された画像処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
従来の交流成分予測では、画像の輪郭や文字等のエッジ周辺にリンギングノイズ、すなわち、エッジに沿った縞状のノイズが生じることがあった。図１に例示するように、リンギングノイズは、一次元方向に並んだ画素値Ｌ，Ｓ，Ｒが単調的に変化している場合（単調減少や単調増加）、または、これらがフラットな場合には、視覚的に認識され難い。しかしながら、図２に例示するように、画素値Ｌ，Ｓの差が大きく、画素値Ｓ，Ｒが等しい（Ｓ，Ｒの差が微小の場合も含む）エッジ周辺では、交流成分予測固有の特性として横方向の傾きαが急になる。その結果、予測画素値ｃ0が＋α分だけオーバーシュートするとともに、予測画素値ｃ1が−α分だけアンダーシュートして、交流成分予測前における一次元方向の画素値の大小関係が損なわれる。このような現象は、視覚的なノイズとなって画質の低下に繋がるほか、交流成分予測を用いた符号化では、予測誤差が増大して圧縮率の低下にも繋がる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
【図１】エッジ周辺以外の領域における横方向の画素値の特性図
【図２】エッジ周辺における横方向の画素値の特性図
【図３】ＲＡＣＰエンコーダの全体構成図
【図４】画像平面上に設定されるブロックの説明図
【図５】並行処理における動作タイミングチャート
【図６】逐次処理における動作タイミングチャート
【図７】ＲＡＣＰエンコーダにおける階層処理部の構成図
【図８】交流成分予測部の構成図
【図９】対象ブロックを中心とした参照ブロックの距離的関係を示す図
【図１０】横方向の傾きαの算出説明図
【図１１】一例としての横方向の傾きαの入出力特性図
【図１２】オーバー／アンダーシュートが抑制された横方向の画素値の特性図
【図１３】別の一例としての横方向の傾きαの入出力特性図
【図１４】参照ブロックの別の設定例を示す図
【図１５】参照ブロックの別の設定例を示す図
【図１６】ＲＡＣＰエンコードプログラムのフローチャート
【図１７】ＲＡＣＰデコーダの全体構成図
【図１８】ＲＡＣＰデコーダにおける階層処理部の構成図
【図１９】ＲＡＣＰデコードプログラムのフローチャート
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
図１１は、傾き補正部３２ｃにおける横方向の傾きαの入出力特性図である。｜α｜≦αthの非補正領域では、交流成分予測によるオーバー／アンダーシュートが生じないので、入力値｜α｜をそのまま出力値｜α’｜とする。これに対して、｜α｜＞αthの補正領域では、入力値｜α｜の値に関わりなく、出力値｜α’｜を傾きしきい値αth（一定）に制限する。傾き｜α｜が傾きしきい値αthよりも大きいということは、その方向の傾きが急であるがゆえに、そのままだとオーバー／アンダーシュートが生じることを意味する。このような場合、入力値｜α｜に対して出力値｜α’｜を小さくすれば、本来の値αとの差に相当する分だけオーバー／アンダーシュートが緩和される。特に、出力値｜α’｜を傾きしきい値αth以下に制限すれば、理論上、オーバー／アンダーシュートを完全に解消できる。なお、補正値として、傾きしきい値αthをそのまま用いてもよいが、これに所定の係数ｎ（０＜ｎ≦１）を乗じたものを用いてもよい。また、補正領域における出力値α’を一定値にするのではなく、図１３に示すように、｜α｜＞｜α’｜の条件を維持しながら、入力値｜α｜の増加と共に出力値｜α’｜を曲線状に増加させてもよい。入出力特性の設定に際しては、入力値｜α｜よりも出力値｜α’｜を小さくするという条件を最低限満たす必要があり、この条件を満たす限りどのような入出力特性を設定してもよい。さらに、傾きαの補正は、演算式を用いて行う以外に、入力値αおよび出力値α’の対応関係を記述したテーブルを参照して行ってもよい。以上の点は縦方向の傾きβについても同様である。傾き補正部３２ｃによって算出された傾きα’，β’は、予測部３２ｄに出力される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
このように、本実施形態に係るＲＡＣＰエンコーダによれば、一次元方向の傾きα，βが傾きしきい値αth，βth以下の場合、非補正領域の処理として、α，βの値がそのまま傾きα’，β’として出力される。そして、これらの傾きα’（＝α），β’（＝β）に基づいて予測画素値Ｃが算出される。この場合、例えば横方向の傾きαに関しては、図１で例示した従来技術と同様、本来的にオーバー／アンダーシュートを招くことなく、Ｓ±αの予測画素値ｃ0，ｃ1（ＡＣ値）が算出される。これに対して、エッジ周辺のように、一次元方向の傾きα，βが傾きしきい値αth，βthよりも大きい場合、補正領域の処理として、α，βの値が小さくなるように補正されたものが傾きα’，β’として出力される。そして、これらの傾き｜α’｜（＜｜α｜），｜β’｜（＜｜β｜）に基づいて予測画素値Ｃが算出される。この場合、例えば横方向の傾きαに関しては、図１２に例示するように、Ｓ（ＤＣ値）に対する変化量を規定する｜α’｜が傾きしきい値αth相当に規制される。これにより、交流成分予測前の大小関係（Ｌ＞Ｓ≧Ｒ）が交流成分予測後の大小関係（Ｌ＞ｃ0＞ｃ1＝Ｒ）として、或いは、それに近い形で維持される。これにより、予測画素値ｃ0のオーバーシュートおよび予測画素値ｃ1のアンダーシュートが抑制され、リンギングノイズの発生を有効に低減できる。その結果、画質の低下を抑制できるとともに、予測誤差の増大に起因した圧縮率の低下も防止できる。特に、傾きの大きさ｜α｜，｜β｜を傾きしきい値αth，βthの値、或いは、それ以下の値に置き換えれば、理論上、リンギングノイズを完全に解消できる。また、図５に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
ステップ８において、先のステップ７で算出された予測残差ＰＲに対して、非可逆変換およびエントロピー符号化を施す。これによって、圧縮データの一部としての画像の交流成分ＡＣnが生成される。これに続くステップ９において、非可逆変換が施された予測残差ＰＲに対して、その逆処理を行い、本来の予測残差ＰＲを復元した予測残差ＰＲ’（復元値）が算出される。そして、ステップ１０において、ステップ６で算出された予測画素値Ｃに、予測残差ＰＲ’を加算することによって、サブブロックの平均画素値ＤＣnが算出され、バッファに格納される。なお、ステップ９，１０の処理は、ＬＮ＝３、すなわち最下位の階層処理ではスキップされる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
このように、本実施形態に係るＲＡＣＰデコーダによれば、上述したＲＡＣＰエンコーダまたはＲＡＣＰエンコードプログラムによって生成された圧縮データを適切に伸張することができる。特に、図５に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
ステップ２５において、ブロック番号ＢＮによって指定された対象ブロックＰＢsに関して、上述した数式１〜３に基づき交流成分予測が行われ、これによって、対象ブロックＰＢsに関する予測画素値Ｃ（＝ｃ00〜ｃ11）が算出される。そして、これに続くステップ２６において、画像の交流成分ＡＣnの圧縮データが伸張され、これによって、予測残差ＰＲ’が復元される。そして、ステップ２７において、ステップ２５で算出された予測画素値Ｃに、ステップ２６で算出された予測残差ＰＲ’を加算することによって、サブブロックの平均画素値ＤＣnが算出され、バッファに格納される。
【国際調査報告】
2011042945.tif 000022
2011042945.tif 000023
2011042945.tif 000024
2011042945.tif 000025