画像処理システムおよび画像処理プログラム
【課題】交流成分予測における画像の予測精度の一層の向上を図る。
【解決手段】領域特定部31は、対象ブロックSの参照領域として、ブロックT,L,B,R,BB,RRを特定する。処理済ブロックT,Lは、順次シフトによる処理が既に行われたブロックである。未処理ブロックB,Rは、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックSと隣接したブロックである。未処理ブロックBB,RRは、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックSから未処理ブロックB,Rに至る方向において未処理ブロックB,Rと隣接したブロックである。予測処理部32は、対象ブロックSの平均画素値と、処理済ブロックT,L内に存在する処理済サブブロックの平均画素値と、未処理ブロックB,Rの平均画素値と、未処理ブロックBB,RRの平均画素値とを用いた交流成分予測によって、対象ブロックS内に存在するそれぞれの対象サブブロックの予測画素値を算出する。
【解決手段】領域特定部31は、対象ブロックSの参照領域として、ブロックT,L,B,R,BB,RRを特定する。処理済ブロックT,Lは、順次シフトによる処理が既に行われたブロックである。未処理ブロックB,Rは、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックSと隣接したブロックである。未処理ブロックBB,RRは、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックSから未処理ブロックB,Rに至る方向において未処理ブロックB,Rと隣接したブロックである。予測処理部32は、対象ブロックSの平均画素値と、処理済ブロックT,L内に存在する処理済サブブロックの平均画素値と、未処理ブロックB,Rの平均画素値と、未処理ブロックBB,RRの平均画素値とを用いた交流成分予測によって、対象ブロックS内に存在するそれぞれの対象サブブロックの予測画素値を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システムおよび画像処理プログラムに係り、特に、交流成分予測(ACP:AC Component Prediction)に関する。
【背景技術】
【0002】
従来より、交流成分予測(ACP)と呼ばれる画像処理手法が知られている。交流成分予測とは、処理対象となる画素ブロックの周辺領域の情報を参照して、その画素ブロックを細分化した小領域の情報を求める手法をいい、周辺領域との空間的な相関性を利用したものである。例えば、特許文献1〜3には、処理対象となるブロックを順次細分化し、画像データを階層的に符号化する再帰的交流成分予測符号化が開示されている。具体的には、まず、画像平面上において、処理対象となるブロックを所定方向に順次シフトさせながら、これを細分化したサブブロックの予測画素値を順次算出する。この予測画素値は、処理対象の周辺領域を参照した交流成分予測によって算出される。つぎに、予測画素値と本来の画素値(真値)との差分を予測残差として算出する。そして、この予測残差に対して、非可逆変換およびエントロピー符号化を施すことによって、圧縮データの一部となる画像の交流成分が生成される。以上のような処理が、例えば、8×8画素のブロック(最上位階層)、4×4画素のブロック(第2位階層)、2×2画素のブロック(第3位階層)および1×1画素のブロック(最下位階層)よりなる階層構造において、再帰的に繰り返される。
【0003】
特に、特許文献1には、予測精度の向上を図るために、交流成分予測で参照される参照領域(周辺領域)のうち、上記順次シフトで既に処理が終了した領域については、より相関性の高いサブブロックの情報を参照する手法が開示されている。例えば、4×4画素のブロックを水平方向に線順次走査的に処理していく場合、処理対象となるブロックの上および左に隣接したブロックが処理済となる。この場合、処理済のブロックに関しては、このブロック自体の平均画素値ではなく、これを4つに細分化した2×2画素のサブブロックのうち、処理対象と隣接した2つのサブブロックの平均画素値を参照する。そして、2つの平均画素値の平均を8×8画素のブロックの「中心画素値」と仮定し、これを前提に交流成分予測を行う。ここで、「中心画素値」とは、無限解像度における画素ブロックの中心位置の真の画素値をいう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4000157号公報
【特許文献2】特許第3774201号公報
【特許文献3】特許3700976号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
周知のように、交流成分予測による画像の予測精度は高い方が好ましい。予測精度が高いほど、予測画素値の集合としての予測画像と本来の画像との相関性が高まり、両者の差分に相当する予測残差が小さくなるからである。予測残差の低減は、統計的に見た予測残差の出現頻度が0近傍に偏る傾向が高まることを意味する。したがって、例えば、予測残差にエントロピー符号化を施してデータ圧縮する場合、予測残差の低減によって、圧縮率を高めることができる。この点に関して、上述した特許文献1の手法では、予測精度の改善を図る余地が依然として残されている。なぜなら、参照領域のうち、順次シフトによる処理が終了した処理済領域に関しては、小さなサブブロックが用いられるが、順次シフトによる処理が未だ終了していない未処理領域に関しては、大きなブロックがそのまま用いられるからである。処理済領域と同様、未処理領域に関しても、サブブロック相当の分解能で取り扱うことができれば、予測精度の一層の向上が期待できる。
【0006】
本発明は、このような点に鑑みなされたもので、その目的は、交流成分予測における画像の予測精度の一層の向上を図ることである。
【課題を解決するための手段】
【0007】
かかる課題を解決すべく、第1の発明は、領域特定部と、予測処理部とを有し、画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理システムを提供する。領域特定部は、今回の処理で処理対象となる対象ブロックの参照領域として、少なくとも1つの処理済ブロックと、少なくとも1つの第1の未処理ブロックと、少なくとも1つの第2の未処理ブロックとを特定する。ここで、処理済ブロックは、順次シフトによる処理が既に行われたブロックである。第1の未処理ブロックは、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックと隣接したブロックである。第2の未処理ブロックは、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックから第1の未処理ブロックに至る方向において第1の未処理ブロックと隣接したブロックである。予測処理部は、対象ブロックに関する第1の平均画素値と、処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、第1の未処理ブロックに関する第3の平均画素値と、第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する。
【0008】
ここで、第1の発明において、交流成分予測は、対象ブロックと処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、第3の平均画素値と第4の平均画素値とに基づいて予測された予測値を用いて行われることが好ましい。
【0009】
第1の発明において、上記予測処理部によって算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、対象サブブロックの平均画素値を算出する加算器をさらに設けてもよい。この場合、加算器によって算出された対象サブブロックの平均画素値は、以後の処理で必要となる参照領域の情報として、予測処理部にフィードバックされることが好ましい。
【0010】
第1の発明において、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造を有していてもよい。この場合、上位階層において算出されたサブブロックの平均画素値は、この上位階層の直下に位置する下位階層におけるブロックの平均画素値として、この下位階層に供給される。
【0011】
第1の発明において、上記画像処理システムは、画像を圧縮するエンコーダであってもよい。この場合、予測処理部によって算出された予測画素値と、真の画素値との差分を予測残差として算出する減算器と、減算器によって算出された予測残差に対して、非可逆変換を施す非可逆変換部と、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する逆変換部とをさらに設けることが好ましい。
【0012】
第1の発明において、上記画像処理システムは、画像を伸張するデコーダであってもよい。この場合、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器に供給すべき予測残差を復元する逆変換部をさらに設けることが好ましい。
【0013】
第2の発明は、画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理プログラムを提供する。この画像処理プログラムは、今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックから第1の未処理ブロックに至る方向において第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する第1のステップと、対象ブロックに関する第1の平均画素値と、処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、第1の未処理ブロックに関する第3の平均画素値と、第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する第2のステップとを有する画像処理方法をコンピュータに実行させる。
【0014】
ここで、第2の発明において、上記交流成分予測は、対象ブロックと処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、第3の平均画素値と第4の平均画素値とに基づいて予測された予測値を用いて行われることが好ましい。
【0015】
第2の発明において、予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、対象サブブロックの平均画素値を算出する第4のステップをさらに設けてもよい。この場合、第4のステップで算出された対象サブブロックの平均画素値は、以後の処理で必要となる参照領域の情報としてフィードバックするために記憶部に格納され、以後の処理において記憶部から随時読み出される。
【0016】
第2の発明において、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造で上記画像処理方法を再帰的に実行するようにしてもよい。この場合、上位階層において算出されたサブブロックの平均画素値は、この上位階層の直下に位置する下位階層におけるブロックの平均画素値として、この下位階層に供給される。
【0017】
第2の発明において、上記画像処理プログラムは、画像を圧縮するエンコードプログラムであってもよい。この場合、対象サブブロックの予測画素値と、真の画素値との差分を予測残差として算出する第5のステップと、算出された予測残差に対して、非可逆変換を施す第6のステップと、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成する第7のステップと、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する第8のステップとをさらに設けることが好ましい。
【0018】
第2の発明において、上記画像処理プログラムは、画像を伸張するデコードプログラムであってもよい。この場合、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、対象サブブロックの平均画素値の算出に用いられる予測残差を復元する第9のステップをさらに設けることが好ましい。
【発明の効果】
【0019】
交流成分予測では、参照領域との空間的な相関性を利用して、対象ブロックを細分化した対象サブブロックの予測画素値が算出される。参照領域のうちの未処理領域に関する情報として、第1の未処理ブロックの情報(第3の平均画素値)のみならず、これと隣接した第2の未処理ブロックの情報(第4の平均画素値)も考慮した上で、交流成分予測を行う。これにより、上記未処理領域に関する情報として、第1の未処理ブロックの情報のみを用いる交流成分予測と比較して、画像の予測精度の一層の向上を図ることが可能になる。
【図面の簡単な説明】
【0020】
【図1】RACPエンコーダの全体構成図
【図2】画像平面上に設定されるブロックの説明図
【図3】並行処理における動作タイミングチャート
【図4】逐次処理における動作タイミングチャート
【図5】階層処理部の構成図
【図6】対象ブロック周辺の中心間距離の説明図
【図7】一例としての線形予測による予測値算出の説明図
【図8】他の例としての線形予測による予測値算出の説明図
【図9】RACPエンコードプログラムのフローチャート
【図10】RACPデコーダの全体構成図
【図11】階層処理部の構成図
【図12】RACPデコードプログラムのフローチャート
【発明を実施するための最良の形態】
【0021】
以下、本発明に係る交流成分予測を適用した実施形態として、再帰的交流成分予測符号化(RACP:Recursive ACP)を例に説明する。
【0022】
(RACPエンコーダ)
図1は、RACPエンコーダの全体構成図である。このエンコーダは、DC算出部1と、DC符号化部2と、階層処理部3a〜3cとを有し、本実施形態では、4階層によって構成されている。これらのユニット1,2,3a〜3cより出力されたデータTDCn,DCn(n=0,1,2,3)は、図示しないバッファ(記憶部)に一時的に随時格納される。
【0023】
DC算出部1は、圧縮対象となる入力画像を予め設定されたサイズのブロックに分割し、それぞれのブロックの平均画素値、すなわち、ブロック内に含まれる画素の平均値をTDC0〜TDC3として出力する。ここで、TDC0は8×8画素のブロック(以下「8×8ブロック」という)の平均画素値、TDC1は4×4画素のブロック(以下「4×4ブロック」という)の平均画素値、TDC2は2×2画素のブロック(以下「2×2ブロック」という)の平均画素値である。また、TDC3は1×1画素のブロック(以下「1×1ブロック」という)の平均画素値、すなわち、画像の最小単位である画素の画素値そのものである。なお、入力画像から直接算出される平均画素値TDC0〜TDC3(真の値)は、ユニット2,3a〜3c内での処理を経て復元される平均画素値DC0〜DC3(復元値)とは区別される点に留意されたい。両者の値は、符号化の過程で非可逆変換をともなうので、厳密には一致しない。
【0024】
DC符号化部2および階層処理部3a〜3cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)よりなる4階層構造において、自己に割り当てられた階層処理を行う。
【0025】
最上位階層のDC符号化部2は、バッファから読み出された8×8ブロック毎の平均画素値TDC0に対して、差分パルス符号変調(DPCM:Differential Pulse Code Modulation)およびエントロピー符号化を施す。差分パルス符号変調によって、画像平面上において互いに隣接したブロックに関する平均画素値TDC0の差分が符号化される。そして、この符号化された差分に対して、量子化後、ハフマン符号化や算術符号化といったエントロピー符号化が施される。このような処理を経たデータは、圧縮データの一部となる画像の直流成分DC0として出力されるとともに、直下位の階層の階層処理部3aに供給すべく、8×8ブロックの平均画素値を復元(逆量子化)した値DC0として出力される。
【0026】
3つの階層処理部3a〜3cは、DC算出部1によって生成された平均画素値TDCn(n=1,2,3、以下同様)と、直上位の階層によって生成された平均画素値DCn-1とを入力とした交流成分予測を含む処理によって、圧縮データの一部としての画像の交流成分ACnを出力する。それとともに、階層処理部3a〜3cは、交流成分ACnより平均画素値DCnを復元する。復元された平均画素値DCnは、同一階層にフィードバックするために、および、必要に応じて直下位の階層に供給するために出力される。
【0027】
具体的には、第2位階層の階層処理部3aは、8×8ブロックを処理対象とした交流成分予測および予測残差の算出といった処理を経て、4×4ブロックの交流成分AC1と、4×4ブロックの平均画素値DC1とを出力する。この階層では、交流成分予測で参照すべき情報として、最上位階層で生成された8×8ブロックの平均画素値DC0と、同一階層でフィードバックされた4×4ブロックの平均画素値DC1とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された4×4ブロックの平均画素値TDC1が入力される。第3位階層の階層処理部3bは、4×4ブロックを処理対象とした交流成分予測等の処理を経て、2×2ブロックの交流成分AC2と、2×2ブロックの平均画素値DC2とを出力する。この階層では、交流成分予測の参照情報として、第2位階層で生成された4×4ブロックの平均画素値DC1と、同一階層でフィードバックされた2×2ブロックの平均画素値DC2とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された2×2ブロックの平均画素値TDC2が入力される。最下位階層の階層処理部3cは、2×2ブロックを処理対象とした交流成分予測等の処理を経て、1×1ブロックの交流成分AC3と、1×1ブロックの平均画素値DC3とを出力する。この階層では、交流成分予測の参照情報として、第3位階層で生成された2×2ブロックの平均画素値DC2と、同一階層でフィードバックされた1×1ブロックの平均画素値DC3とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された1×1ブロックの平均画素値TDC3が用いられる。
【0028】
このように、処理対象となるブロックのサイズが異なる多階層構造において、DC符号化部2および階層処理部3a〜3cが互いに連係することによって、交流成分予測を主体とした画像処理が再帰的に実行される。これによって、圧縮データとして、画像の直流成分DC0と、その交流成分AC1〜AC3とが出力される。なお、圧縮データには、これら以外にもハフマンテーブル等の付随情報も含まれる。
【0029】
図2は、画像平面上に設定されるブロックの説明図である。ブロックは、圧縮対象となる画像(1フレームの画像またはその部分画像)を縦横に分割することで、画像平面上に複数設定され、ブロック単位で処理される。ブロックのサイズは、階層が下位になるにしたがって段階的に小さくなるように設定されている。ある階層で処理対象となるブロックのサイズは、その直上位に位置する階層で細分化されたサブブロックのサイズと一致する。逆にいえば、上位階層のサブブロックのサイズは、その直下に位置する下位階層のブロックのサイズと一致する。ある階層における画像全体の処理は、処理対象となるブロックを画面上で順次シフトさせながら処理を繰り返し、画像中の全ブロックを処理することによって達成される。このシフト方向(スキャン方向)は、図示したように、水平方向に沿った線順次走査的なものであってもよいが、垂直方向に沿ったものも含めて任意に設定してよい。また、それぞれの階層におけるシフトの方向は、必ずしも同一である必要もない。図示したシフト方向の場合、処理対象となるブロックをSとすると、この対象ブロックSが属する水平ラインよりも上側が処理済領域となり、これよりも下側が未処理領域となる。また、対象ブロックSの水平ラインについては、対象ブロックSの左側が処理済領域となり、その右側が未処理領域となる。本実施形態では、対象ブロックSの交流成分予測において参照される参照領域として、ブロックT,L,B,BB,R,RRが用いられる。これらよりなる参照領域のうち、順次シフトによる処理が既に行われたブロックT,Lを「処理済ブロック」と定義する。処理済ブロックTは、対象ブロックSの上方に隣接しており、処理済ブロックLは、対象ブロックSの左方に隣接している。これらの処理済ブロックT,Lに関しては、同一階層内での順次シフトによる従前処理によって、これを4つに分割したサブブロックの平均画素値(予測画素値)が算出済みである。以下、あるブロックを細分化したサブブロックについては、ブロックの左上”00”,右上を”01”,右下を”11”,左下を”10”の添字を以て識別する。一方、上記参照領域のうち、順次シフトによる処理が未だ行われていないブロックB,R,BB,RRを「未処理ブロック」と定義する。未処理ブロックBは、対象ブロックSの下方に隣接しており、未処理ブロックRは、対象ブロックSの右方に隣接している。未処理ブロックBBは、対象ブロックSから未処理ブロックBに至る方向(下方)において、未処理ブロックBと隣接している。未処理ブロックRRは、対象ブロックSから未処理ブロックRに至る方向(右方)において、未処理ブロックRと隣接している。本実施形態の特徴の一つは、対象ブロックSの参照領域として、これと直接隣接したブロックB,Rのみならず、これからブロック1つ分離れたブロックBB,RRも併用している点である。これらの未処理ブロックB,R,BB,RRに関しては、これを細分化したサブブロックの平均画素値(予測画素値)が未だ算出されておらず、直上位の階層で算出されたブロックB,R,BB,RRの全体的な平均画素値のみが既知となっている。
【0030】
なお、本実施形態では、対象ブロックSの参照領域として、6つのブロックT,L,B,R,BB,RRを用いているが、これは一例に過ぎず、これ以外の設定の仕方にしてもよい。例えば、これらの一部のみ、或いは、それ以外の追加(斜め方向、1つ飛び等)といった如くである。
【0031】
RACPエンコーダの処理は、並行処理および逐次処理のどちらであってもよい。図3は、並行処理における動作タイミングチャートである。まず、DC算出部1が動作して、平均画素値TDC0〜TDC3を生成する。そして、すべての平均画素値TDC0〜TDC3の生成が終了したことを以て、DC符号化部2および階層処理部3a〜3cが並行して動作する。ただし、これらの動作が開始するタイミングは同じではなく、階層が下位になるほど開始タイミングが遅くなる。この遅延は、上位階層の順次シフトによる処理遅延に起因したものである。図2を参照すると、ある階層でブロックSの処理を行う場合、その参照領域T,L,B,R,BB,RRの処理が直上位の階層で終了していることが条件(階層処理開始条件)となる。換言すれば、上位階層において、順次シフトが進行してブロックBBまでの処理が終了しない限り、下位階層におけるブロックSの処理が開始できない。これが下位階層における動作遅延が生じる所以である。ただし、図4に示すような逐次処理と比較すると、図3に示したパイプライン的な並行処理の方が高速である。一方、図4の逐次処理では、ある階層の処理が全て終了した時点で、直下位の階層の処理が開始される。したがって、逐次処理においても、上記階層処理開始条件を当然に満たす。
【0032】
図5は、RACPエンコーダにおける階層処理部3(3a〜3cの総称)の構成図である。それぞれの階層における階層処理部3は、取り扱うブロックサイズが異なる点を除けば、構成および処理の流れは同一である。階層処理部3は、領域特定部31と、予測処理部32と、減算器33と、非可逆変換部34と、エントロピー符号化部35と、逆変換部36と、加算器37とを有する。
【0033】
領域特定部31は、今回の処理対象となる対象ブロックSと、その参照領域となるブロックT(t10,t11),L(l01,l11),B,R,BB,RRとを特定する。図2に示したように、対象ブロックSの上方および左方のブロックT,Lが処理済ブロックとなり、対象ブロックSの下方および右方のブロックB,R,BB,RRが未処理ブロックとなる。処理済/未処理の判別は、ブロックのサイズ(例えば8×8画素)、画面のサイズ(例えば1024×768画素)、および、シフト方向(例えば水平ラインに沿った線順次走査)が既知であることを前提に、対象ブロックSのブロック番号BNより行うことができる。対象ブロックSに関しては、そのブロック(例えば8×8ブロック)の平均画素値DCn-1がバッファから読み出される。また、処理済ブロックT,Lに関しては、これを細分化した処理済サブブロックt,l(例えば4×4ブロック)の平均画素値DCnがバッファから読み出される。これらの平均画素値DCnは、同一階層における順次シフトの従前処理によって既に算出されており、バッファを介してフィードバックされる。すべてのサブブロックt,lの平均画素値DCnを読み出す必要はなく、対象ブロックSと位置的に隣り合ったもののみが読み出せば足りる。具体的には、上ブロックTを構成する4つのサブブロックt00〜t11のうち、対象ブロックSと直接隣接した下2つのサブブロックt10,t11の平均画素値DCnのみ読み出される。画像の空間的な相関性から、これらのサブブロックt10,t11は、上ブロックTよりも対象ブロックSの特性を色濃く反映している傾向がある。したがって、対象ブロックSの交流成分予測にあたっては、上ブロックT全体ではなく、その要部t10,t11を参照する方が予測精度を高める上で有利である。同様に、左ブロックLに関しては、これを構成する4つのサブブロックl00〜l11のうち、対象ブロックSと隣接した右2つのサブブロックl01,l11の平均画素値DCnのみが読み出される。一方、未処理ブロックB,R,BB,RRに関しては、現時点では、それぞれのサブブロックの情報は未だ生成されていないため、直上位の階層で算出済みの平均画素値DCn-1がバッファから読み出される。バッファから読み出された平均画素値DCn-1,DCnは、予測処理部32に供給される。
【0034】
予測処理部32は、対象ブロックSの平均画素値DCn-1と、処理済ブロックT,L内に存在する処理済サブブロックt10,t11,l01,l11の各平均画素値DCnと、未処理ブロックB,R,BB,RRの各平均画素値DCn-1とを用いて、対象ブロックSの交流成分予測を行う。これにより、対象ブロックSを細分化したサブブロックs00〜s11の予測画素値が算出される。本実施形態の特徴の一つは、参照領域の未処理部分の情報に関して、大きなブロックの平均画素値DCn-1そのものではなく、これよりも小さなサブブロック相当の予測値を周囲から予測し、この予測値を用いる点にある。ただし、このサブブロック相当の予測値は、今回の対象ブロックSの交流成分予測のためだけに用いられ、それ自体がサブブロックの平均画素値DCnになるわけではない(DCnは同一階層内の以後の処理で別途生成される)。
【0035】
予測処理部32は、以下の数式1,2に基づいて、対象ブロックSを細分化した対象サブブロックs00〜s11の予測画素値C(=c00〜c11)、すなわち予測画像を算出する。同数式および以下の説明において、S,T,L,B,R、BB,RRは、ブロックそのものを指すのではなく、平均画素値を示す。t10,t11,l01,l11についても同様である。算出された予測画素値C={c00,c01,c10,c11}は、減算器33および加算器37に供給される。
【0036】
(数式1)
c00 = S+3×(T−B’+L−R’)/16
c01 = S+3×(T−B’−L+R’)/16
c10 = S+3×(−T+B’+L−R’)/16
c11 = S+3×(−T+B’−L+R’)/16
【0037】
(数式2)
T = (t10+t11)/2
L = (l01+l11)/2
B’ = (8×B−BB+S)/8
R’ = (8×R−RR+S)/8
【0038】
B’,R’は、平均画素値そのものではなく、後述する所定の中心間距離におけるサブブロック相当の予測値である。図6は、対象ブロックS周辺の中心間距離の説明図である。ブロックの中心位置における中心画素値は、そのブロック自体の平均画素値DCn-1と仮定するとともに、サブブロックの中心位置における中心画素値は、そのサブブロック自体の平均画素値DCnと仮定する。ブロックを4分割したときの正方形の1辺の長さを2とし、サブブロックを更に4分割したときの正方形の1辺の長さを1とする。この場合、隣接したブロック間の中心間距離は4、隣接したサブブロック間の中心間距離は2、隣接したブロックおよびサブブロック間の中心間距離は3となる。まず、対象ブロックの上方に位置する中心画素値Tは、対象ブロックから中心間距離3の位置に存在し、上ブロック内に含まれる2つサブブロックの平均画素値t10,t11(中心画素値)を中心間距離1:1で按分した値(t10+t11)/2となる。中心間距離3で左方に存在する中心画素値Lも同様の考え方に基づく。つぎに、対象ブロックの右方に位置する予測値R’は、横方向に並んだ3つのブロック(3点)の中心間距離を考慮しつつ、これらのブロックの中心画素値S,R,RRの線形予測によって算出される。具体的には、図7に示すように、対象ブロックと第2の右ブロックの間の中心画素値S,RRの変化量(S−RR)を、S,RR間の中心間距離8と、R,R’間の中心間距離1とに基づいて比例配分し、これを中心画素値Rに加算することによって、予測値R’が算出される。この考え方は、対象ブロックの下方に位置する予測値B’についても同様である。これにより、対象ブロックの上方/左方と同様、対象ブロックからの中心間距離がすべて3で共通化された予測値B’,R’が下方/右方において算出される。画像の空間的な相関性から、これらの予測値B’,R’は、下方/右方のブロックの中心画素値B,Rよりも対象ブロックの特性を色濃く反映している傾向があり、より真値に近いと考えることができる。したがって、このような予測値B’,R’を用いることで、より予測精度の高い交流成分予測を行うことが可能になる。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合、予測処理部32は、例外的に、処理対象となるブロックSの平均画素値DCn-1をその部分の情報として用いる。また、上記数式1,2は、両者をマージして、単一式で表現してもよい。
【0039】
本予測手法は、処理済領域のみならず未処理領域も含めて、すべての参照領域の情報をサブブロック相当の中心画素値を入力として予測する点に特徴がある。ただし、処理済領域とは異なり、未処理領域については、サブブロックの中心画素値が未だ特定されていないので、大きなブロックの情報をベースに予測された予測値を小さなサブブロックの中心画素値として用いる。未処理領域に関しても、サブブロック相当の分解能を有する値(予測値)を用いることで、処理済領域におけるサブブロックの値をそのまま、すなわち、大きい方のブロックの中心画素値の予測による変換なしに利用できる。これにより、予測誤差の影響を低減でき、より高精度な予測が可能になる。また、処理対象となる画素と参照画素との中心間距離が近づくため、両者の相関が高くなることが期待でき、これによる予測精度の向上も可能になる。当然、処理済でない未知の画素に対しては、サブブロックの中心画素値を予測する際に予測誤差の影響を受けることになる。しかしながら、そもそも従来手法では、サブブロックの単純平均値をサブブロックの中心画素値として予測しており、予測誤差の影響を既に受けているため、本予測手法のような別の予測を採用しても、予測誤差の影響の度合いに大きな差はないといえる。
【0040】
また、上述した数式2に代えて、以下のような数式3によって、予測値B’,R’を算出してもよい。
【0041】
(数式3)
B’ = (5×B−BB)/4
R’ = (5×R−RR)/4
【0042】
この場合、図8に示すように、第1および第2の右ブロック(2点)の間の中心画素値R,RRの変化量(R−RR)を、R,RR間の中心間距離4と、R,R’間の中心間距離1とに基づいて比例配分し、これを中心画素値Rに加算することによって、対象ブロックからの中心間距離が3となる予測値R’が算出される(予測値B’についても同様)。数式3の予測手法は、数式2のそれと比較して、予測精度はやや劣るが、サンプル数が少ない分だけ計算量が少なくて済むという利点がある。
【0043】
予測値B’,R’の算出式は、上述した2つの例に限定されるものではなく様々なものが考えられる。しかしながら、いずれの場合であっても、有効な予測精度を確保するためには、図6に示した第1および第2の右ブロックといった如く、対象ブロックから一方向上(一次元方向)に存在する中心画素値R,RRを少なくとも用いるべきである。この点について詳述すると、上述した数式1をアダマール変換すると、以下のような数式4になる。
【0044】
(数式4)
α = c00−c01+c10−c11 = 12×(L−R’)/16
β = c00+c01−c10−c11 = 12×(T−B’)/16
【0045】
数式4からわかるように、L,R’は水平方向の傾きαにしか、T,B’は垂直方向の傾きβにしかそれぞれ関与しない。したがって、R’の算出は、RRのように右側の一次元方向に存在する値を主体に行うべきであり、この水平方向とは独立した垂直方向の成分のみで行った場合には、予測精度の著しい低下を招く(ただし、斜め方向を含めて垂直成分の加味を排除するものではない)。同様に、B’の算出は、BBのように下側の一次元方向に存在する値を主体に行うべきであり、この垂直方向とは独立した水平方向の成分のみで行った場合には、予測精度の著しい低下を招く(ただし、斜め方向を含めて水平成分の加味を排除するものではない)。
【0046】
予測精度の観点でいえば、3点予測(数式2)の方が2点予測(数式3)よりも優れている。上述したように、例えばR’の予測は、R点での傾きを距離に応じて除算した値をRに加算することによって行われる。この傾きは、差分法によって算出することができ、その具体的な計算手法としては、計算の簡単さを重視した前進差分(Δu(n)=u(n+1)−u(n))と、傾きの精度を重視した中央差分(Δu(n)=(u(n+1)−u(n−1))/2)とがある。これらの計算手法は、1次の差分であってもよいが、より高精度な傾きを算出すべく、2次以降の差分としてもよい。
【0047】
再び図5を参照すると、減算器33は、予測処理部32によって算出された予測画素値C(例えば4×4ブロック単位)と、これに対応する平均画素値TDCn(例えば4×4ブロック単位)、すなわち、入力画像に基づいて算出された真の画素値との差分を予測残差PRとして算出する。交流成分予測によって生成された予測画像(予測画素値c00〜c11の集合)が本来の画像(予測画素値c00〜c11に対応する真の画素値)に近いほど、予測残差PRが小さくなる。予測残差PRが小さくなるほど、統計的に見た予測残差の出現頻度が0近傍に偏る傾向が高まるので、エントロピー符号化を施す上で有利になる。
【0048】
非可逆変換部34は、減算器33によって算出された予測残差PRに対して、例えばアダマール変換および量子化といった非可逆変換を施す。エントロピー符号化部35は、非可逆変換が施された予測残差PRに対して、ハフマン符号化や算術符号化といったエントロピー符号化を施すことによって、例えば4×4ブロック単位での交流成分ACn(圧縮データ))を生成する。逆変換部36は、非可逆変換が施された予測残差PRに対して、この非可逆変換の逆処理を施すことによって予測残差PR’を算出する。この予測残差PR'は、本来の予測残差PRを復元したものだが、非可逆変換(元の値を完全に復元することはできない))が施されている関係上、本来の予測残差PRとは僅かに相違している。加算器37は、予測処理部32によって算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出する。加算器37の入力として本来の予測残差PRではなく、復元された予測残差PR’を用いる理由は、デコード時の繰り返し処理によって誤差の累積することを防止し、伸張画像の再現性を担保するためである。加算器37より出力された平均画素値DCnは、順次シフトにおける以後の処理で必要となる処理済周辺領域の情報として、バッファに一時的に格納される。バッファの格納された平均画素値DCnは、領域特定部31によって適宜読み出され、同一階層における予測処理部32にフィードバックされる。それとともに、直下位の階層における処理対象および未処理周辺領域となるブロック(例えば4×4ブロック)の平均画素値として、直下位の階層における予測処理部32にも供給される。
【0049】
このように、本実施形態に係るRACPエンコーダによれば、参照領域のうちの未処理部分に関する情報として、対象ブロックに直接隣接した未処理ブロックと、同方向に更に隣接した未処理ブロックとを少なくとも用いて、対象ブロックからの中心間距離がより近い予測値を算出する。これにより、処理済ブロックと同様、未処理ブロックに関しても、サブブロック相当の分解能で取り扱うことができる。また、対象ブロックとの相関がより高い予測値を用いた交流成分予測を行うことで、画像の予測精度の一層の向上を図ることが可能になる。その結果、真の画素値との差分である予測残差PRを低減できるので、圧縮効率の一層の向上が期待できる。特に、図3に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【0050】
(RACPエンコードプログラム)
つぎに、ハードウェアとして実現されるRACPエンコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPエンコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載に譲るものとする。
【0051】
図9は、RACPエンコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図4に示したような逐次処理が基本となる。まず、ステップ1において、入力画像の画像平面上にブロック(4タイプ)を複数設定し、それぞれのブロックの平均画素値TDC0〜TDC3が算出される。算出された平均画素値TDC0〜3は、バッファに随時格納される。すべてのブロックの処理が終了するとステップ2に進む。
【0052】
ステップ2において、8×8ブロックの平均画素値TDC0に対して、DC符号化、すなわち、差分パルス幅変調とエントロピー符号化とが施され、これによって、圧縮データの一部となる画像の直流成分DC0が生成・出力される。また、その復元値がDC0としてバッファに格納される。
【0053】
ステップ3において、階層番号LNが1(初期値)にセットされる。LN=1は、処理を行うべき階層が最上位階層であることを示す。そして、1つの階層処理が終了する毎に1ずつインクリメントされ(ステップ14)、下位の階層へと順番に推移していく。そして、LN=3、すなわち最下位階層の処理が終わった時点で、全ての処理が終了する(ステップ13)。
【0054】
ステップ4において、ブロック番号BNが1(初期値)にセットされる。先のステップ3における階層番号LNの設定にともない、その階層で処理対象となるブロックのサイズは一義的に特定され、全体のブロック数に応じた終了ブロック番号BNendも特定される。同一階層内におけるブロックの処理が終了する毎にブロック番号BNが1ずつインクリメントされ(ステップ12)、処理対象が所定の方向に順次シフトしていく。そして、終了ブロック番号BNendに相当するブロックの処理が終了した時点で、その階層における処理が終了する(ステップ11)。
【0055】
ステップ5において、ブロック番号BNによって指定されたブロックSに関して、例えば数式2に基づいて画素値T,L,B’,R’が算出される。
【0056】
ステップ6において、ブロック番号BNによって指定されたブロックSに関して、数式1に基づいて交流成分予測が行われ、これによって、ブロックSを細分化したサブブロックs00〜s11の予測画素値C(=c00〜c11)が算出される。そして、これに続くステップ7において、先のステップ6で算出された予測画素値Cと真の画素値TDCnとの差分が予測残差PRとして算出される。
【0057】
ステップ8において、先のステップ7で算出された予測残差PRに対して、非可逆変換およびエントロピー符号化を施す。これによって、圧縮データの一部としての画像の交流成分ACnが生成される。これに続くステップ9において、非可逆変換が施された予測誤差PRに対して、その逆処理を行い、本来の予測誤差PRを復元した予測誤差PR’(復元値)が算出される。そして、ステップ10において、ステップ6で算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。
【0058】
ステップ11において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ12においてブロック番号BNが1ずつインクリメントされていき、ステップ5〜11の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ループを抜けてステップ13に進む。
【0059】
ステップ13において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ14において階層番号LNが1ずつインクリメントされていき、ステップ5〜12のループが繰り返される。これにより、階層が下位になるにしたがって、処理対象となるブロックSのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値DCn-1(入力)として用いられる。そして、ブロック番号BNが3に到達した場合、すなわち、最下位階層の処理が終了した場合には、ステップ11の判断結果よりループを抜け、これによって、本プログラムの処理が終了する。
【0060】
本実施形態に係るRACPエンコードプログラムによれば、上述したRACPエンコーダと同様、交流成分予測における画像の予測精度の一層の向上を図ることができ、圧縮効率の向上が期待できる。
【0061】
(RACPデコーダ)
図10は、上述したRACPエンコーダまたはRACPエンコードプログラムによって生成された圧縮データを伸張するRACPデコーダの全体構成図である。このデコーダは、DC復号化5と、3つの階層処理部6a〜6cとを主体に構成されている。これらのユニット5,6a〜6cより出力されたデータDCn(n=0,1,2,3)は、図示しないバッファ(記憶部)に一時的に格納される。
【0062】
DC復号化5および階層処理部6a〜6cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)の階層構造において、自己に割り当てられた階層処理を行う。最上位階層のDC復号化部5は、画像の直流成分DC0に関する圧縮データに対して、画像圧縮時に施された処理の逆処理を行うことによって、8×8ブロックの平均画素値DC0を生成し、これを第2位階層の階層処理部6aに供給する。
【0063】
RACPデコーダの階層構造自体は、RACPエンコーダのそれとほぼ同様であるが、エンコーダにおける階層処理部3a〜3cの出力となる交流成分AC1〜AC3が、デコーダにおける階層処理部6a〜6cの入力となる点が相違する。これらの階層処理部6a〜6cは、画像の交流成分AC1〜AC3に関する圧縮データと、直上位の階層より供給された平均画素値DCn-1とに基づいて、平均画素値DCnを復元する。復元された平均画素値DCnは、同一階層にフィードバックするために、および、必要に応じて直下位の階層に供給するために出力され、バッファに格納される。そして、最下位階層の階層処理部6cによって算出された1×1ブロックの平均画素値DC3の集合が最終的な伸張画像となる。なお、デコーダにおける順次シフトの方向は、エンコーダのそれに準じるものとする。また、デコーダの処理は、並列処理および逐次処理のどちらであってもよい。
【0064】
図11は、RACPデコーダにおける階層処理部6(6a〜6cの総称)の構成図である。それぞれの階層における階層処理部6は、取り扱うブロックのサイズが異なる点を除けば、基本構成および動作は同一である。階層処理部6は、領域特定部61と、予測処理部62と、加算器63と、逆変換部64とを有する。
【0065】
領域特定部61は、RACPエンコーダと同様、今回の処理対象となる対象ブロックSと、その参照領域となるブロックT(t10,t11),L(l01,l11),B,R,BB,RRとを特定する。すなわち、図2に示したように、ブロックS,B,R,BB,RRに関しては、そのブロック自体(例えば8×8ブロック)の平均画素値DCn-1がバッファから読み出される。これらの平均画素値DCn-1は、直上位の階層において既に算出されており、直上位の階層よりバッファを介して供給される。一方、ブロックT,Lに関しては、これを細分化したサブブロックt,l(例えば4×4ブロック)の平均画素値DCnがバッファから読み出される。これらの平均画素値DCnは、同一階層におけるシフト順序での従前処理によって既に算出されており、バッファを介してフィードバックされる。読み出す必要があるデータは、上ブロックTを構成する4つのサブブロックtに関しては、ブロックSと隣り合った下2つのサブブロックt10,t11の平均画素値DCnであり、左ブロックLを構成する4つのサブブロックlに関しては、ブロックSと隣り合った右2つのサブブロックl01,l11の平均画素値DCnである。そして、これらの読み出された平均画素値DCn-1,DCnが予測処理部62に供給される。
【0066】
予測処理部62は、対象ブロックSの平均画素値DCn-1と、処理済ブロックT,L内に存在する処理済サブブロックt10,t11,l01,l11の各平均画素値DCnと、未処理ブロックB,R,BB,RRの各平均画素値DCn-1とを用いて、対象ブロックSの交流成分予測を行う。これによって、対象ブロックSを細分化した対象サブブロックs00〜s11の予測画素値C(=c00〜c11)、すなわち予測画像が算出される。算出された予測画素値Cは、加算器63に供給される。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合には、デコーダとの間で予め取り決められた規則にしたがって処理される。例えば、処理対象となるブロックSの平均画素値DCn-1をその部分の情報として補うといった如くである。
【0067】
逆変換部64は、例えば4×4ブロックの交流成分ACnの圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器63に供給すべき予測残差PR’を復元する。加算器63は、予測処理部62によって算出された予測画素値Cに、逆変換部64によって復元された予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出する。加算器63より出力された平均画素値DCnは、順次シフトにおける以後の処理で必要となる処理済周辺領域の情報として、バッファに一時的に格納される。バッファの格納された平均画素値DCnは、領域特定部61によって適宜読み出され、同一階層における予測処理部62にフィードバックされる。それとともに、直下位の階層における処理対象および未処理周辺領域となるブロック(例えば4×4ブロック)の平均画素値として、直下位の階層における予測処理部62にも供給される。
【0068】
このように、本実施形態に係るRACPデコーダによれば、上述したRACPデコーダまたはRACPエンコードプログラムによって生成された圧縮データを適切に伸張することができる。それとともに、未処理周辺領域におけるブロックB,Rの中心画素値として、従来技術よりも信頼性の高い値を算出することができるので、高い予測精度を活かした画像の伸張が可能になる。特に、図3に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【0069】
(RACPデコードプログラム)
つぎに、ハードウェアとして実現されるRACPデコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPデコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載を参照するものとする。
【0070】
図12は、RACPデコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図4に示したような逐次処理が基本となる。まず、ステップ21において、画像の直流成分DC0の圧縮データに対して、DC復号化、すなわち、データ圧縮時に施された符号化処理の逆処理が施され、これによって、8×8ブロックの平均画素値DC0が復元され、これがバッファに格納される。
【0071】
ステップ22,23において、RACPエンコードプログラムと同様に、階層番号LNが1(初期値)、ブロック番号BNが1(初期値)にそれぞれセットされる。
【0072】
ステップ24において、ブロック番号BNによって指定されたブロックSに関して、例えば数式2に基づいて、画素値T,L,B’,R’が算出される。
【0073】
ステップ25において、ブロック番号BNによって指定されたブロックSに関して、上述した数式1に基づき交流成分予測が行われ、これによって、ブロックSを細分化したサブブロックs00〜s11の予測画素値C(=c00〜c11)が算出される。そして、これに続くステップ26において、画像の交流成分ACnの圧縮データが伸張され、これによって、予測残差PR’が復元される。そして、ステップ27において、ステップ25で算出された予測画素値Cに、ステップ27で算出された予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。
【0074】
ステップ28において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ29においてブロック番号BNが1ずつインクリメントされていき、ステップ24〜27の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ステップ28の判断結果よりループを抜け、ステップ30に進む。
【0075】
ステップ30において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ31において階層番号LNが1ずつインクリメントされていき、ステップ23〜29のループが繰り返される。これにより、階層が下位になるにしたがって、処理対象となるブロックSのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値DCn-1(入力)として用いられる。そして、ブロック番号BNが3に到達した場合、すなわち、最下位階層の処理が終了した場合には、ループを抜け、これによって、本プログラムの処理が終了する。
【0076】
本実施形態に係るRACPデコードプログラムによれば、上述したRACPデコーダと同様の効果を奏する。
【0077】
なお、上述した実施形態では、交流成分予測符号化、特に、再帰的交流成分予測符号化について説明したが、本発明はこれに限定されるものではなく、交流成分予測を用いて解像度の高い画像を生成する画像処理にも適用可能である。
【符号の説明】
【0078】
1 DC算出部
2 DC符号化部
3(3a〜3c) 階層処理部
5 DC復号化部
6(6a〜6c) 階層処理部
31,61 領域特定部
32,62 予測処理部
33 減算器
34 非可逆変換部
35 エントロピー符号化部
36,64 逆変換部
37,63 加算器
【技術分野】
【0001】
本発明は、画像処理システムおよび画像処理プログラムに係り、特に、交流成分予測(ACP:AC Component Prediction)に関する。
【背景技術】
【0002】
従来より、交流成分予測(ACP)と呼ばれる画像処理手法が知られている。交流成分予測とは、処理対象となる画素ブロックの周辺領域の情報を参照して、その画素ブロックを細分化した小領域の情報を求める手法をいい、周辺領域との空間的な相関性を利用したものである。例えば、特許文献1〜3には、処理対象となるブロックを順次細分化し、画像データを階層的に符号化する再帰的交流成分予測符号化が開示されている。具体的には、まず、画像平面上において、処理対象となるブロックを所定方向に順次シフトさせながら、これを細分化したサブブロックの予測画素値を順次算出する。この予測画素値は、処理対象の周辺領域を参照した交流成分予測によって算出される。つぎに、予測画素値と本来の画素値(真値)との差分を予測残差として算出する。そして、この予測残差に対して、非可逆変換およびエントロピー符号化を施すことによって、圧縮データの一部となる画像の交流成分が生成される。以上のような処理が、例えば、8×8画素のブロック(最上位階層)、4×4画素のブロック(第2位階層)、2×2画素のブロック(第3位階層)および1×1画素のブロック(最下位階層)よりなる階層構造において、再帰的に繰り返される。
【0003】
特に、特許文献1には、予測精度の向上を図るために、交流成分予測で参照される参照領域(周辺領域)のうち、上記順次シフトで既に処理が終了した領域については、より相関性の高いサブブロックの情報を参照する手法が開示されている。例えば、4×4画素のブロックを水平方向に線順次走査的に処理していく場合、処理対象となるブロックの上および左に隣接したブロックが処理済となる。この場合、処理済のブロックに関しては、このブロック自体の平均画素値ではなく、これを4つに細分化した2×2画素のサブブロックのうち、処理対象と隣接した2つのサブブロックの平均画素値を参照する。そして、2つの平均画素値の平均を8×8画素のブロックの「中心画素値」と仮定し、これを前提に交流成分予測を行う。ここで、「中心画素値」とは、無限解像度における画素ブロックの中心位置の真の画素値をいう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4000157号公報
【特許文献2】特許第3774201号公報
【特許文献3】特許3700976号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
周知のように、交流成分予測による画像の予測精度は高い方が好ましい。予測精度が高いほど、予測画素値の集合としての予測画像と本来の画像との相関性が高まり、両者の差分に相当する予測残差が小さくなるからである。予測残差の低減は、統計的に見た予測残差の出現頻度が0近傍に偏る傾向が高まることを意味する。したがって、例えば、予測残差にエントロピー符号化を施してデータ圧縮する場合、予測残差の低減によって、圧縮率を高めることができる。この点に関して、上述した特許文献1の手法では、予測精度の改善を図る余地が依然として残されている。なぜなら、参照領域のうち、順次シフトによる処理が終了した処理済領域に関しては、小さなサブブロックが用いられるが、順次シフトによる処理が未だ終了していない未処理領域に関しては、大きなブロックがそのまま用いられるからである。処理済領域と同様、未処理領域に関しても、サブブロック相当の分解能で取り扱うことができれば、予測精度の一層の向上が期待できる。
【0006】
本発明は、このような点に鑑みなされたもので、その目的は、交流成分予測における画像の予測精度の一層の向上を図ることである。
【課題を解決するための手段】
【0007】
かかる課題を解決すべく、第1の発明は、領域特定部と、予測処理部とを有し、画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理システムを提供する。領域特定部は、今回の処理で処理対象となる対象ブロックの参照領域として、少なくとも1つの処理済ブロックと、少なくとも1つの第1の未処理ブロックと、少なくとも1つの第2の未処理ブロックとを特定する。ここで、処理済ブロックは、順次シフトによる処理が既に行われたブロックである。第1の未処理ブロックは、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックと隣接したブロックである。第2の未処理ブロックは、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックから第1の未処理ブロックに至る方向において第1の未処理ブロックと隣接したブロックである。予測処理部は、対象ブロックに関する第1の平均画素値と、処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、第1の未処理ブロックに関する第3の平均画素値と、第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する。
【0008】
ここで、第1の発明において、交流成分予測は、対象ブロックと処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、第3の平均画素値と第4の平均画素値とに基づいて予測された予測値を用いて行われることが好ましい。
【0009】
第1の発明において、上記予測処理部によって算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、対象サブブロックの平均画素値を算出する加算器をさらに設けてもよい。この場合、加算器によって算出された対象サブブロックの平均画素値は、以後の処理で必要となる参照領域の情報として、予測処理部にフィードバックされることが好ましい。
【0010】
第1の発明において、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造を有していてもよい。この場合、上位階層において算出されたサブブロックの平均画素値は、この上位階層の直下に位置する下位階層におけるブロックの平均画素値として、この下位階層に供給される。
【0011】
第1の発明において、上記画像処理システムは、画像を圧縮するエンコーダであってもよい。この場合、予測処理部によって算出された予測画素値と、真の画素値との差分を予測残差として算出する減算器と、減算器によって算出された予測残差に対して、非可逆変換を施す非可逆変換部と、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する逆変換部とをさらに設けることが好ましい。
【0012】
第1の発明において、上記画像処理システムは、画像を伸張するデコーダであってもよい。この場合、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器に供給すべき予測残差を復元する逆変換部をさらに設けることが好ましい。
【0013】
第2の発明は、画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理プログラムを提供する。この画像処理プログラムは、今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、対象ブロックから第1の未処理ブロックに至る方向において第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する第1のステップと、対象ブロックに関する第1の平均画素値と、処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、第1の未処理ブロックに関する第3の平均画素値と、第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する第2のステップとを有する画像処理方法をコンピュータに実行させる。
【0014】
ここで、第2の発明において、上記交流成分予測は、対象ブロックと処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、第3の平均画素値と第4の平均画素値とに基づいて予測された予測値を用いて行われることが好ましい。
【0015】
第2の発明において、予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、対象サブブロックの平均画素値を算出する第4のステップをさらに設けてもよい。この場合、第4のステップで算出された対象サブブロックの平均画素値は、以後の処理で必要となる参照領域の情報としてフィードバックするために記憶部に格納され、以後の処理において記憶部から随時読み出される。
【0016】
第2の発明において、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造で上記画像処理方法を再帰的に実行するようにしてもよい。この場合、上位階層において算出されたサブブロックの平均画素値は、この上位階層の直下に位置する下位階層におけるブロックの平均画素値として、この下位階層に供給される。
【0017】
第2の発明において、上記画像処理プログラムは、画像を圧縮するエンコードプログラムであってもよい。この場合、対象サブブロックの予測画素値と、真の画素値との差分を予測残差として算出する第5のステップと、算出された予測残差に対して、非可逆変換を施す第6のステップと、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成する第7のステップと、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する第8のステップとをさらに設けることが好ましい。
【0018】
第2の発明において、上記画像処理プログラムは、画像を伸張するデコードプログラムであってもよい。この場合、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、対象サブブロックの平均画素値の算出に用いられる予測残差を復元する第9のステップをさらに設けることが好ましい。
【発明の効果】
【0019】
交流成分予測では、参照領域との空間的な相関性を利用して、対象ブロックを細分化した対象サブブロックの予測画素値が算出される。参照領域のうちの未処理領域に関する情報として、第1の未処理ブロックの情報(第3の平均画素値)のみならず、これと隣接した第2の未処理ブロックの情報(第4の平均画素値)も考慮した上で、交流成分予測を行う。これにより、上記未処理領域に関する情報として、第1の未処理ブロックの情報のみを用いる交流成分予測と比較して、画像の予測精度の一層の向上を図ることが可能になる。
【図面の簡単な説明】
【0020】
【図1】RACPエンコーダの全体構成図
【図2】画像平面上に設定されるブロックの説明図
【図3】並行処理における動作タイミングチャート
【図4】逐次処理における動作タイミングチャート
【図5】階層処理部の構成図
【図6】対象ブロック周辺の中心間距離の説明図
【図7】一例としての線形予測による予測値算出の説明図
【図8】他の例としての線形予測による予測値算出の説明図
【図9】RACPエンコードプログラムのフローチャート
【図10】RACPデコーダの全体構成図
【図11】階層処理部の構成図
【図12】RACPデコードプログラムのフローチャート
【発明を実施するための最良の形態】
【0021】
以下、本発明に係る交流成分予測を適用した実施形態として、再帰的交流成分予測符号化(RACP:Recursive ACP)を例に説明する。
【0022】
(RACPエンコーダ)
図1は、RACPエンコーダの全体構成図である。このエンコーダは、DC算出部1と、DC符号化部2と、階層処理部3a〜3cとを有し、本実施形態では、4階層によって構成されている。これらのユニット1,2,3a〜3cより出力されたデータTDCn,DCn(n=0,1,2,3)は、図示しないバッファ(記憶部)に一時的に随時格納される。
【0023】
DC算出部1は、圧縮対象となる入力画像を予め設定されたサイズのブロックに分割し、それぞれのブロックの平均画素値、すなわち、ブロック内に含まれる画素の平均値をTDC0〜TDC3として出力する。ここで、TDC0は8×8画素のブロック(以下「8×8ブロック」という)の平均画素値、TDC1は4×4画素のブロック(以下「4×4ブロック」という)の平均画素値、TDC2は2×2画素のブロック(以下「2×2ブロック」という)の平均画素値である。また、TDC3は1×1画素のブロック(以下「1×1ブロック」という)の平均画素値、すなわち、画像の最小単位である画素の画素値そのものである。なお、入力画像から直接算出される平均画素値TDC0〜TDC3(真の値)は、ユニット2,3a〜3c内での処理を経て復元される平均画素値DC0〜DC3(復元値)とは区別される点に留意されたい。両者の値は、符号化の過程で非可逆変換をともなうので、厳密には一致しない。
【0024】
DC符号化部2および階層処理部3a〜3cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)よりなる4階層構造において、自己に割り当てられた階層処理を行う。
【0025】
最上位階層のDC符号化部2は、バッファから読み出された8×8ブロック毎の平均画素値TDC0に対して、差分パルス符号変調(DPCM:Differential Pulse Code Modulation)およびエントロピー符号化を施す。差分パルス符号変調によって、画像平面上において互いに隣接したブロックに関する平均画素値TDC0の差分が符号化される。そして、この符号化された差分に対して、量子化後、ハフマン符号化や算術符号化といったエントロピー符号化が施される。このような処理を経たデータは、圧縮データの一部となる画像の直流成分DC0として出力されるとともに、直下位の階層の階層処理部3aに供給すべく、8×8ブロックの平均画素値を復元(逆量子化)した値DC0として出力される。
【0026】
3つの階層処理部3a〜3cは、DC算出部1によって生成された平均画素値TDCn(n=1,2,3、以下同様)と、直上位の階層によって生成された平均画素値DCn-1とを入力とした交流成分予測を含む処理によって、圧縮データの一部としての画像の交流成分ACnを出力する。それとともに、階層処理部3a〜3cは、交流成分ACnより平均画素値DCnを復元する。復元された平均画素値DCnは、同一階層にフィードバックするために、および、必要に応じて直下位の階層に供給するために出力される。
【0027】
具体的には、第2位階層の階層処理部3aは、8×8ブロックを処理対象とした交流成分予測および予測残差の算出といった処理を経て、4×4ブロックの交流成分AC1と、4×4ブロックの平均画素値DC1とを出力する。この階層では、交流成分予測で参照すべき情報として、最上位階層で生成された8×8ブロックの平均画素値DC0と、同一階層でフィードバックされた4×4ブロックの平均画素値DC1とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された4×4ブロックの平均画素値TDC1が入力される。第3位階層の階層処理部3bは、4×4ブロックを処理対象とした交流成分予測等の処理を経て、2×2ブロックの交流成分AC2と、2×2ブロックの平均画素値DC2とを出力する。この階層では、交流成分予測の参照情報として、第2位階層で生成された4×4ブロックの平均画素値DC1と、同一階層でフィードバックされた2×2ブロックの平均画素値DC2とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された2×2ブロックの平均画素値TDC2が入力される。最下位階層の階層処理部3cは、2×2ブロックを処理対象とした交流成分予測等の処理を経て、1×1ブロックの交流成分AC3と、1×1ブロックの平均画素値DC3とを出力する。この階層では、交流成分予測の参照情報として、第3位階層で生成された2×2ブロックの平均画素値DC2と、同一階層でフィードバックされた1×1ブロックの平均画素値DC3とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された1×1ブロックの平均画素値TDC3が用いられる。
【0028】
このように、処理対象となるブロックのサイズが異なる多階層構造において、DC符号化部2および階層処理部3a〜3cが互いに連係することによって、交流成分予測を主体とした画像処理が再帰的に実行される。これによって、圧縮データとして、画像の直流成分DC0と、その交流成分AC1〜AC3とが出力される。なお、圧縮データには、これら以外にもハフマンテーブル等の付随情報も含まれる。
【0029】
図2は、画像平面上に設定されるブロックの説明図である。ブロックは、圧縮対象となる画像(1フレームの画像またはその部分画像)を縦横に分割することで、画像平面上に複数設定され、ブロック単位で処理される。ブロックのサイズは、階層が下位になるにしたがって段階的に小さくなるように設定されている。ある階層で処理対象となるブロックのサイズは、その直上位に位置する階層で細分化されたサブブロックのサイズと一致する。逆にいえば、上位階層のサブブロックのサイズは、その直下に位置する下位階層のブロックのサイズと一致する。ある階層における画像全体の処理は、処理対象となるブロックを画面上で順次シフトさせながら処理を繰り返し、画像中の全ブロックを処理することによって達成される。このシフト方向(スキャン方向)は、図示したように、水平方向に沿った線順次走査的なものであってもよいが、垂直方向に沿ったものも含めて任意に設定してよい。また、それぞれの階層におけるシフトの方向は、必ずしも同一である必要もない。図示したシフト方向の場合、処理対象となるブロックをSとすると、この対象ブロックSが属する水平ラインよりも上側が処理済領域となり、これよりも下側が未処理領域となる。また、対象ブロックSの水平ラインについては、対象ブロックSの左側が処理済領域となり、その右側が未処理領域となる。本実施形態では、対象ブロックSの交流成分予測において参照される参照領域として、ブロックT,L,B,BB,R,RRが用いられる。これらよりなる参照領域のうち、順次シフトによる処理が既に行われたブロックT,Lを「処理済ブロック」と定義する。処理済ブロックTは、対象ブロックSの上方に隣接しており、処理済ブロックLは、対象ブロックSの左方に隣接している。これらの処理済ブロックT,Lに関しては、同一階層内での順次シフトによる従前処理によって、これを4つに分割したサブブロックの平均画素値(予測画素値)が算出済みである。以下、あるブロックを細分化したサブブロックについては、ブロックの左上”00”,右上を”01”,右下を”11”,左下を”10”の添字を以て識別する。一方、上記参照領域のうち、順次シフトによる処理が未だ行われていないブロックB,R,BB,RRを「未処理ブロック」と定義する。未処理ブロックBは、対象ブロックSの下方に隣接しており、未処理ブロックRは、対象ブロックSの右方に隣接している。未処理ブロックBBは、対象ブロックSから未処理ブロックBに至る方向(下方)において、未処理ブロックBと隣接している。未処理ブロックRRは、対象ブロックSから未処理ブロックRに至る方向(右方)において、未処理ブロックRと隣接している。本実施形態の特徴の一つは、対象ブロックSの参照領域として、これと直接隣接したブロックB,Rのみならず、これからブロック1つ分離れたブロックBB,RRも併用している点である。これらの未処理ブロックB,R,BB,RRに関しては、これを細分化したサブブロックの平均画素値(予測画素値)が未だ算出されておらず、直上位の階層で算出されたブロックB,R,BB,RRの全体的な平均画素値のみが既知となっている。
【0030】
なお、本実施形態では、対象ブロックSの参照領域として、6つのブロックT,L,B,R,BB,RRを用いているが、これは一例に過ぎず、これ以外の設定の仕方にしてもよい。例えば、これらの一部のみ、或いは、それ以外の追加(斜め方向、1つ飛び等)といった如くである。
【0031】
RACPエンコーダの処理は、並行処理および逐次処理のどちらであってもよい。図3は、並行処理における動作タイミングチャートである。まず、DC算出部1が動作して、平均画素値TDC0〜TDC3を生成する。そして、すべての平均画素値TDC0〜TDC3の生成が終了したことを以て、DC符号化部2および階層処理部3a〜3cが並行して動作する。ただし、これらの動作が開始するタイミングは同じではなく、階層が下位になるほど開始タイミングが遅くなる。この遅延は、上位階層の順次シフトによる処理遅延に起因したものである。図2を参照すると、ある階層でブロックSの処理を行う場合、その参照領域T,L,B,R,BB,RRの処理が直上位の階層で終了していることが条件(階層処理開始条件)となる。換言すれば、上位階層において、順次シフトが進行してブロックBBまでの処理が終了しない限り、下位階層におけるブロックSの処理が開始できない。これが下位階層における動作遅延が生じる所以である。ただし、図4に示すような逐次処理と比較すると、図3に示したパイプライン的な並行処理の方が高速である。一方、図4の逐次処理では、ある階層の処理が全て終了した時点で、直下位の階層の処理が開始される。したがって、逐次処理においても、上記階層処理開始条件を当然に満たす。
【0032】
図5は、RACPエンコーダにおける階層処理部3(3a〜3cの総称)の構成図である。それぞれの階層における階層処理部3は、取り扱うブロックサイズが異なる点を除けば、構成および処理の流れは同一である。階層処理部3は、領域特定部31と、予測処理部32と、減算器33と、非可逆変換部34と、エントロピー符号化部35と、逆変換部36と、加算器37とを有する。
【0033】
領域特定部31は、今回の処理対象となる対象ブロックSと、その参照領域となるブロックT(t10,t11),L(l01,l11),B,R,BB,RRとを特定する。図2に示したように、対象ブロックSの上方および左方のブロックT,Lが処理済ブロックとなり、対象ブロックSの下方および右方のブロックB,R,BB,RRが未処理ブロックとなる。処理済/未処理の判別は、ブロックのサイズ(例えば8×8画素)、画面のサイズ(例えば1024×768画素)、および、シフト方向(例えば水平ラインに沿った線順次走査)が既知であることを前提に、対象ブロックSのブロック番号BNより行うことができる。対象ブロックSに関しては、そのブロック(例えば8×8ブロック)の平均画素値DCn-1がバッファから読み出される。また、処理済ブロックT,Lに関しては、これを細分化した処理済サブブロックt,l(例えば4×4ブロック)の平均画素値DCnがバッファから読み出される。これらの平均画素値DCnは、同一階層における順次シフトの従前処理によって既に算出されており、バッファを介してフィードバックされる。すべてのサブブロックt,lの平均画素値DCnを読み出す必要はなく、対象ブロックSと位置的に隣り合ったもののみが読み出せば足りる。具体的には、上ブロックTを構成する4つのサブブロックt00〜t11のうち、対象ブロックSと直接隣接した下2つのサブブロックt10,t11の平均画素値DCnのみ読み出される。画像の空間的な相関性から、これらのサブブロックt10,t11は、上ブロックTよりも対象ブロックSの特性を色濃く反映している傾向がある。したがって、対象ブロックSの交流成分予測にあたっては、上ブロックT全体ではなく、その要部t10,t11を参照する方が予測精度を高める上で有利である。同様に、左ブロックLに関しては、これを構成する4つのサブブロックl00〜l11のうち、対象ブロックSと隣接した右2つのサブブロックl01,l11の平均画素値DCnのみが読み出される。一方、未処理ブロックB,R,BB,RRに関しては、現時点では、それぞれのサブブロックの情報は未だ生成されていないため、直上位の階層で算出済みの平均画素値DCn-1がバッファから読み出される。バッファから読み出された平均画素値DCn-1,DCnは、予測処理部32に供給される。
【0034】
予測処理部32は、対象ブロックSの平均画素値DCn-1と、処理済ブロックT,L内に存在する処理済サブブロックt10,t11,l01,l11の各平均画素値DCnと、未処理ブロックB,R,BB,RRの各平均画素値DCn-1とを用いて、対象ブロックSの交流成分予測を行う。これにより、対象ブロックSを細分化したサブブロックs00〜s11の予測画素値が算出される。本実施形態の特徴の一つは、参照領域の未処理部分の情報に関して、大きなブロックの平均画素値DCn-1そのものではなく、これよりも小さなサブブロック相当の予測値を周囲から予測し、この予測値を用いる点にある。ただし、このサブブロック相当の予測値は、今回の対象ブロックSの交流成分予測のためだけに用いられ、それ自体がサブブロックの平均画素値DCnになるわけではない(DCnは同一階層内の以後の処理で別途生成される)。
【0035】
予測処理部32は、以下の数式1,2に基づいて、対象ブロックSを細分化した対象サブブロックs00〜s11の予測画素値C(=c00〜c11)、すなわち予測画像を算出する。同数式および以下の説明において、S,T,L,B,R、BB,RRは、ブロックそのものを指すのではなく、平均画素値を示す。t10,t11,l01,l11についても同様である。算出された予測画素値C={c00,c01,c10,c11}は、減算器33および加算器37に供給される。
【0036】
(数式1)
c00 = S+3×(T−B’+L−R’)/16
c01 = S+3×(T−B’−L+R’)/16
c10 = S+3×(−T+B’+L−R’)/16
c11 = S+3×(−T+B’−L+R’)/16
【0037】
(数式2)
T = (t10+t11)/2
L = (l01+l11)/2
B’ = (8×B−BB+S)/8
R’ = (8×R−RR+S)/8
【0038】
B’,R’は、平均画素値そのものではなく、後述する所定の中心間距離におけるサブブロック相当の予測値である。図6は、対象ブロックS周辺の中心間距離の説明図である。ブロックの中心位置における中心画素値は、そのブロック自体の平均画素値DCn-1と仮定するとともに、サブブロックの中心位置における中心画素値は、そのサブブロック自体の平均画素値DCnと仮定する。ブロックを4分割したときの正方形の1辺の長さを2とし、サブブロックを更に4分割したときの正方形の1辺の長さを1とする。この場合、隣接したブロック間の中心間距離は4、隣接したサブブロック間の中心間距離は2、隣接したブロックおよびサブブロック間の中心間距離は3となる。まず、対象ブロックの上方に位置する中心画素値Tは、対象ブロックから中心間距離3の位置に存在し、上ブロック内に含まれる2つサブブロックの平均画素値t10,t11(中心画素値)を中心間距離1:1で按分した値(t10+t11)/2となる。中心間距離3で左方に存在する中心画素値Lも同様の考え方に基づく。つぎに、対象ブロックの右方に位置する予測値R’は、横方向に並んだ3つのブロック(3点)の中心間距離を考慮しつつ、これらのブロックの中心画素値S,R,RRの線形予測によって算出される。具体的には、図7に示すように、対象ブロックと第2の右ブロックの間の中心画素値S,RRの変化量(S−RR)を、S,RR間の中心間距離8と、R,R’間の中心間距離1とに基づいて比例配分し、これを中心画素値Rに加算することによって、予測値R’が算出される。この考え方は、対象ブロックの下方に位置する予測値B’についても同様である。これにより、対象ブロックの上方/左方と同様、対象ブロックからの中心間距離がすべて3で共通化された予測値B’,R’が下方/右方において算出される。画像の空間的な相関性から、これらの予測値B’,R’は、下方/右方のブロックの中心画素値B,Rよりも対象ブロックの特性を色濃く反映している傾向があり、より真値に近いと考えることができる。したがって、このような予測値B’,R’を用いることで、より予測精度の高い交流成分予測を行うことが可能になる。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合、予測処理部32は、例外的に、処理対象となるブロックSの平均画素値DCn-1をその部分の情報として用いる。また、上記数式1,2は、両者をマージして、単一式で表現してもよい。
【0039】
本予測手法は、処理済領域のみならず未処理領域も含めて、すべての参照領域の情報をサブブロック相当の中心画素値を入力として予測する点に特徴がある。ただし、処理済領域とは異なり、未処理領域については、サブブロックの中心画素値が未だ特定されていないので、大きなブロックの情報をベースに予測された予測値を小さなサブブロックの中心画素値として用いる。未処理領域に関しても、サブブロック相当の分解能を有する値(予測値)を用いることで、処理済領域におけるサブブロックの値をそのまま、すなわち、大きい方のブロックの中心画素値の予測による変換なしに利用できる。これにより、予測誤差の影響を低減でき、より高精度な予測が可能になる。また、処理対象となる画素と参照画素との中心間距離が近づくため、両者の相関が高くなることが期待でき、これによる予測精度の向上も可能になる。当然、処理済でない未知の画素に対しては、サブブロックの中心画素値を予測する際に予測誤差の影響を受けることになる。しかしながら、そもそも従来手法では、サブブロックの単純平均値をサブブロックの中心画素値として予測しており、予測誤差の影響を既に受けているため、本予測手法のような別の予測を採用しても、予測誤差の影響の度合いに大きな差はないといえる。
【0040】
また、上述した数式2に代えて、以下のような数式3によって、予測値B’,R’を算出してもよい。
【0041】
(数式3)
B’ = (5×B−BB)/4
R’ = (5×R−RR)/4
【0042】
この場合、図8に示すように、第1および第2の右ブロック(2点)の間の中心画素値R,RRの変化量(R−RR)を、R,RR間の中心間距離4と、R,R’間の中心間距離1とに基づいて比例配分し、これを中心画素値Rに加算することによって、対象ブロックからの中心間距離が3となる予測値R’が算出される(予測値B’についても同様)。数式3の予測手法は、数式2のそれと比較して、予測精度はやや劣るが、サンプル数が少ない分だけ計算量が少なくて済むという利点がある。
【0043】
予測値B’,R’の算出式は、上述した2つの例に限定されるものではなく様々なものが考えられる。しかしながら、いずれの場合であっても、有効な予測精度を確保するためには、図6に示した第1および第2の右ブロックといった如く、対象ブロックから一方向上(一次元方向)に存在する中心画素値R,RRを少なくとも用いるべきである。この点について詳述すると、上述した数式1をアダマール変換すると、以下のような数式4になる。
【0044】
(数式4)
α = c00−c01+c10−c11 = 12×(L−R’)/16
β = c00+c01−c10−c11 = 12×(T−B’)/16
【0045】
数式4からわかるように、L,R’は水平方向の傾きαにしか、T,B’は垂直方向の傾きβにしかそれぞれ関与しない。したがって、R’の算出は、RRのように右側の一次元方向に存在する値を主体に行うべきであり、この水平方向とは独立した垂直方向の成分のみで行った場合には、予測精度の著しい低下を招く(ただし、斜め方向を含めて垂直成分の加味を排除するものではない)。同様に、B’の算出は、BBのように下側の一次元方向に存在する値を主体に行うべきであり、この垂直方向とは独立した水平方向の成分のみで行った場合には、予測精度の著しい低下を招く(ただし、斜め方向を含めて水平成分の加味を排除するものではない)。
【0046】
予測精度の観点でいえば、3点予測(数式2)の方が2点予測(数式3)よりも優れている。上述したように、例えばR’の予測は、R点での傾きを距離に応じて除算した値をRに加算することによって行われる。この傾きは、差分法によって算出することができ、その具体的な計算手法としては、計算の簡単さを重視した前進差分(Δu(n)=u(n+1)−u(n))と、傾きの精度を重視した中央差分(Δu(n)=(u(n+1)−u(n−1))/2)とがある。これらの計算手法は、1次の差分であってもよいが、より高精度な傾きを算出すべく、2次以降の差分としてもよい。
【0047】
再び図5を参照すると、減算器33は、予測処理部32によって算出された予測画素値C(例えば4×4ブロック単位)と、これに対応する平均画素値TDCn(例えば4×4ブロック単位)、すなわち、入力画像に基づいて算出された真の画素値との差分を予測残差PRとして算出する。交流成分予測によって生成された予測画像(予測画素値c00〜c11の集合)が本来の画像(予測画素値c00〜c11に対応する真の画素値)に近いほど、予測残差PRが小さくなる。予測残差PRが小さくなるほど、統計的に見た予測残差の出現頻度が0近傍に偏る傾向が高まるので、エントロピー符号化を施す上で有利になる。
【0048】
非可逆変換部34は、減算器33によって算出された予測残差PRに対して、例えばアダマール変換および量子化といった非可逆変換を施す。エントロピー符号化部35は、非可逆変換が施された予測残差PRに対して、ハフマン符号化や算術符号化といったエントロピー符号化を施すことによって、例えば4×4ブロック単位での交流成分ACn(圧縮データ))を生成する。逆変換部36は、非可逆変換が施された予測残差PRに対して、この非可逆変換の逆処理を施すことによって予測残差PR’を算出する。この予測残差PR'は、本来の予測残差PRを復元したものだが、非可逆変換(元の値を完全に復元することはできない))が施されている関係上、本来の予測残差PRとは僅かに相違している。加算器37は、予測処理部32によって算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出する。加算器37の入力として本来の予測残差PRではなく、復元された予測残差PR’を用いる理由は、デコード時の繰り返し処理によって誤差の累積することを防止し、伸張画像の再現性を担保するためである。加算器37より出力された平均画素値DCnは、順次シフトにおける以後の処理で必要となる処理済周辺領域の情報として、バッファに一時的に格納される。バッファの格納された平均画素値DCnは、領域特定部31によって適宜読み出され、同一階層における予測処理部32にフィードバックされる。それとともに、直下位の階層における処理対象および未処理周辺領域となるブロック(例えば4×4ブロック)の平均画素値として、直下位の階層における予測処理部32にも供給される。
【0049】
このように、本実施形態に係るRACPエンコーダによれば、参照領域のうちの未処理部分に関する情報として、対象ブロックに直接隣接した未処理ブロックと、同方向に更に隣接した未処理ブロックとを少なくとも用いて、対象ブロックからの中心間距離がより近い予測値を算出する。これにより、処理済ブロックと同様、未処理ブロックに関しても、サブブロック相当の分解能で取り扱うことができる。また、対象ブロックとの相関がより高い予測値を用いた交流成分予測を行うことで、画像の予測精度の一層の向上を図ることが可能になる。その結果、真の画素値との差分である予測残差PRを低減できるので、圧縮効率の一層の向上が期待できる。特に、図3に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【0050】
(RACPエンコードプログラム)
つぎに、ハードウェアとして実現されるRACPエンコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPエンコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載に譲るものとする。
【0051】
図9は、RACPエンコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図4に示したような逐次処理が基本となる。まず、ステップ1において、入力画像の画像平面上にブロック(4タイプ)を複数設定し、それぞれのブロックの平均画素値TDC0〜TDC3が算出される。算出された平均画素値TDC0〜3は、バッファに随時格納される。すべてのブロックの処理が終了するとステップ2に進む。
【0052】
ステップ2において、8×8ブロックの平均画素値TDC0に対して、DC符号化、すなわち、差分パルス幅変調とエントロピー符号化とが施され、これによって、圧縮データの一部となる画像の直流成分DC0が生成・出力される。また、その復元値がDC0としてバッファに格納される。
【0053】
ステップ3において、階層番号LNが1(初期値)にセットされる。LN=1は、処理を行うべき階層が最上位階層であることを示す。そして、1つの階層処理が終了する毎に1ずつインクリメントされ(ステップ14)、下位の階層へと順番に推移していく。そして、LN=3、すなわち最下位階層の処理が終わった時点で、全ての処理が終了する(ステップ13)。
【0054】
ステップ4において、ブロック番号BNが1(初期値)にセットされる。先のステップ3における階層番号LNの設定にともない、その階層で処理対象となるブロックのサイズは一義的に特定され、全体のブロック数に応じた終了ブロック番号BNendも特定される。同一階層内におけるブロックの処理が終了する毎にブロック番号BNが1ずつインクリメントされ(ステップ12)、処理対象が所定の方向に順次シフトしていく。そして、終了ブロック番号BNendに相当するブロックの処理が終了した時点で、その階層における処理が終了する(ステップ11)。
【0055】
ステップ5において、ブロック番号BNによって指定されたブロックSに関して、例えば数式2に基づいて画素値T,L,B’,R’が算出される。
【0056】
ステップ6において、ブロック番号BNによって指定されたブロックSに関して、数式1に基づいて交流成分予測が行われ、これによって、ブロックSを細分化したサブブロックs00〜s11の予測画素値C(=c00〜c11)が算出される。そして、これに続くステップ7において、先のステップ6で算出された予測画素値Cと真の画素値TDCnとの差分が予測残差PRとして算出される。
【0057】
ステップ8において、先のステップ7で算出された予測残差PRに対して、非可逆変換およびエントロピー符号化を施す。これによって、圧縮データの一部としての画像の交流成分ACnが生成される。これに続くステップ9において、非可逆変換が施された予測誤差PRに対して、その逆処理を行い、本来の予測誤差PRを復元した予測誤差PR’(復元値)が算出される。そして、ステップ10において、ステップ6で算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。
【0058】
ステップ11において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ12においてブロック番号BNが1ずつインクリメントされていき、ステップ5〜11の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ループを抜けてステップ13に進む。
【0059】
ステップ13において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ14において階層番号LNが1ずつインクリメントされていき、ステップ5〜12のループが繰り返される。これにより、階層が下位になるにしたがって、処理対象となるブロックSのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値DCn-1(入力)として用いられる。そして、ブロック番号BNが3に到達した場合、すなわち、最下位階層の処理が終了した場合には、ステップ11の判断結果よりループを抜け、これによって、本プログラムの処理が終了する。
【0060】
本実施形態に係るRACPエンコードプログラムによれば、上述したRACPエンコーダと同様、交流成分予測における画像の予測精度の一層の向上を図ることができ、圧縮効率の向上が期待できる。
【0061】
(RACPデコーダ)
図10は、上述したRACPエンコーダまたはRACPエンコードプログラムによって生成された圧縮データを伸張するRACPデコーダの全体構成図である。このデコーダは、DC復号化5と、3つの階層処理部6a〜6cとを主体に構成されている。これらのユニット5,6a〜6cより出力されたデータDCn(n=0,1,2,3)は、図示しないバッファ(記憶部)に一時的に格納される。
【0062】
DC復号化5および階層処理部6a〜6cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)の階層構造において、自己に割り当てられた階層処理を行う。最上位階層のDC復号化部5は、画像の直流成分DC0に関する圧縮データに対して、画像圧縮時に施された処理の逆処理を行うことによって、8×8ブロックの平均画素値DC0を生成し、これを第2位階層の階層処理部6aに供給する。
【0063】
RACPデコーダの階層構造自体は、RACPエンコーダのそれとほぼ同様であるが、エンコーダにおける階層処理部3a〜3cの出力となる交流成分AC1〜AC3が、デコーダにおける階層処理部6a〜6cの入力となる点が相違する。これらの階層処理部6a〜6cは、画像の交流成分AC1〜AC3に関する圧縮データと、直上位の階層より供給された平均画素値DCn-1とに基づいて、平均画素値DCnを復元する。復元された平均画素値DCnは、同一階層にフィードバックするために、および、必要に応じて直下位の階層に供給するために出力され、バッファに格納される。そして、最下位階層の階層処理部6cによって算出された1×1ブロックの平均画素値DC3の集合が最終的な伸張画像となる。なお、デコーダにおける順次シフトの方向は、エンコーダのそれに準じるものとする。また、デコーダの処理は、並列処理および逐次処理のどちらであってもよい。
【0064】
図11は、RACPデコーダにおける階層処理部6(6a〜6cの総称)の構成図である。それぞれの階層における階層処理部6は、取り扱うブロックのサイズが異なる点を除けば、基本構成および動作は同一である。階層処理部6は、領域特定部61と、予測処理部62と、加算器63と、逆変換部64とを有する。
【0065】
領域特定部61は、RACPエンコーダと同様、今回の処理対象となる対象ブロックSと、その参照領域となるブロックT(t10,t11),L(l01,l11),B,R,BB,RRとを特定する。すなわち、図2に示したように、ブロックS,B,R,BB,RRに関しては、そのブロック自体(例えば8×8ブロック)の平均画素値DCn-1がバッファから読み出される。これらの平均画素値DCn-1は、直上位の階層において既に算出されており、直上位の階層よりバッファを介して供給される。一方、ブロックT,Lに関しては、これを細分化したサブブロックt,l(例えば4×4ブロック)の平均画素値DCnがバッファから読み出される。これらの平均画素値DCnは、同一階層におけるシフト順序での従前処理によって既に算出されており、バッファを介してフィードバックされる。読み出す必要があるデータは、上ブロックTを構成する4つのサブブロックtに関しては、ブロックSと隣り合った下2つのサブブロックt10,t11の平均画素値DCnであり、左ブロックLを構成する4つのサブブロックlに関しては、ブロックSと隣り合った右2つのサブブロックl01,l11の平均画素値DCnである。そして、これらの読み出された平均画素値DCn-1,DCnが予測処理部62に供給される。
【0066】
予測処理部62は、対象ブロックSの平均画素値DCn-1と、処理済ブロックT,L内に存在する処理済サブブロックt10,t11,l01,l11の各平均画素値DCnと、未処理ブロックB,R,BB,RRの各平均画素値DCn-1とを用いて、対象ブロックSの交流成分予測を行う。これによって、対象ブロックSを細分化した対象サブブロックs00〜s11の予測画素値C(=c00〜c11)、すなわち予測画像が算出される。算出された予測画素値Cは、加算器63に供給される。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合には、デコーダとの間で予め取り決められた規則にしたがって処理される。例えば、処理対象となるブロックSの平均画素値DCn-1をその部分の情報として補うといった如くである。
【0067】
逆変換部64は、例えば4×4ブロックの交流成分ACnの圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器63に供給すべき予測残差PR’を復元する。加算器63は、予測処理部62によって算出された予測画素値Cに、逆変換部64によって復元された予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出する。加算器63より出力された平均画素値DCnは、順次シフトにおける以後の処理で必要となる処理済周辺領域の情報として、バッファに一時的に格納される。バッファの格納された平均画素値DCnは、領域特定部61によって適宜読み出され、同一階層における予測処理部62にフィードバックされる。それとともに、直下位の階層における処理対象および未処理周辺領域となるブロック(例えば4×4ブロック)の平均画素値として、直下位の階層における予測処理部62にも供給される。
【0068】
このように、本実施形態に係るRACPデコーダによれば、上述したRACPデコーダまたはRACPエンコードプログラムによって生成された圧縮データを適切に伸張することができる。それとともに、未処理周辺領域におけるブロックB,Rの中心画素値として、従来技術よりも信頼性の高い値を算出することができるので、高い予測精度を活かした画像の伸張が可能になる。特に、図3に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
【0069】
(RACPデコードプログラム)
つぎに、ハードウェアとして実現されるRACPデコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPデコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載を参照するものとする。
【0070】
図12は、RACPデコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図4に示したような逐次処理が基本となる。まず、ステップ21において、画像の直流成分DC0の圧縮データに対して、DC復号化、すなわち、データ圧縮時に施された符号化処理の逆処理が施され、これによって、8×8ブロックの平均画素値DC0が復元され、これがバッファに格納される。
【0071】
ステップ22,23において、RACPエンコードプログラムと同様に、階層番号LNが1(初期値)、ブロック番号BNが1(初期値)にそれぞれセットされる。
【0072】
ステップ24において、ブロック番号BNによって指定されたブロックSに関して、例えば数式2に基づいて、画素値T,L,B’,R’が算出される。
【0073】
ステップ25において、ブロック番号BNによって指定されたブロックSに関して、上述した数式1に基づき交流成分予測が行われ、これによって、ブロックSを細分化したサブブロックs00〜s11の予測画素値C(=c00〜c11)が算出される。そして、これに続くステップ26において、画像の交流成分ACnの圧縮データが伸張され、これによって、予測残差PR’が復元される。そして、ステップ27において、ステップ25で算出された予測画素値Cに、ステップ27で算出された予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。
【0074】
ステップ28において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ29においてブロック番号BNが1ずつインクリメントされていき、ステップ24〜27の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ステップ28の判断結果よりループを抜け、ステップ30に進む。
【0075】
ステップ30において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ31において階層番号LNが1ずつインクリメントされていき、ステップ23〜29のループが繰り返される。これにより、階層が下位になるにしたがって、処理対象となるブロックSのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値DCn-1(入力)として用いられる。そして、ブロック番号BNが3に到達した場合、すなわち、最下位階層の処理が終了した場合には、ループを抜け、これによって、本プログラムの処理が終了する。
【0076】
本実施形態に係るRACPデコードプログラムによれば、上述したRACPデコーダと同様の効果を奏する。
【0077】
なお、上述した実施形態では、交流成分予測符号化、特に、再帰的交流成分予測符号化について説明したが、本発明はこれに限定されるものではなく、交流成分予測を用いて解像度の高い画像を生成する画像処理にも適用可能である。
【符号の説明】
【0078】
1 DC算出部
2 DC符号化部
3(3a〜3c) 階層処理部
5 DC復号化部
6(6a〜6c) 階層処理部
31,61 領域特定部
32,62 予測処理部
33 減算器
34 非可逆変換部
35 エントロピー符号化部
36,64 逆変換部
37,63 加算器
【特許請求の範囲】
【請求項1】
画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理システムにおいて、
今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、前記対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、前記対象ブロックから前記第1の未処理ブロックに至る方向において前記第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する領域特定部と、
前記対象ブロックに関する第1の平均画素値と、前記処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、前記第1の未処理ブロックに関する第3の平均画素値と、前記第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、前記対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する予測処理部と
を有することを特徴とする画像処理システム。
【請求項2】
前記交流成分予測は、前記対象ブロックと前記処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、前記第3の平均画素値と前記第4の平均画素値とに基づいて予測された予測値を用いて行われることを特徴とする請求項1に記載された画像処理システム。
【請求項3】
前記予測処理部によって算出された前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記対象サブブロックの平均画素値を算出する加算器をさらに有し、
前記加算器によって算出された前記対象サブブロックの平均画素値は、以後の処理で必要となる前記参照領域の情報として、前記予測処理部にフィードバックされることを特徴とする請求項1または2に記載された画像処理システム。
【請求項4】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、
上位階層において算出された前記サブブロックの平均画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの平均画素値として、当該下位階層に供給されることを特徴とする請求項3に記載された画像処理システム。
【請求項5】
前記画像処理システムは、画像を圧縮するエンコーダであって、
前記予測処理部によって算出された前記予測画素値と、真の画素値との差分を予測残差として算出する減算器と、
前記減算器によって算出された前記予測残差に対して、非可逆変換を施す非可逆変換部と、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する逆変換部と
をさらに有することを特徴とする請求項3または4に記載された画像処理システム。
【請求項6】
前記画像処理システムは、画像を伸張するデコーダであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を復元する逆変換部をさらに有することを特徴とする請求項3または4に記載された画像処理システム。
【請求項7】
画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理プログラムにおいて、
今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、前記対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、前記対象ブロックから前記第1の未処理ブロックに至る方向において前記第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する第1のステップと、
前記対象ブロックに関する第1の平均画素値と、前記処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、前記第1の未処理ブロックに関する第3の平均画素値と、前記第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、前記対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する第2のステップと
を有することを特徴とする画像処理方法をコンピュータに実行させる画像処理プログラム。
【請求項8】
前記交流成分予測は、前記対象ブロックと前記処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、前記第3の平均画素値と前記第4の平均画素値とに基づいて予測された予測値を用いて行われることを特徴とする請求項7に記載された画像処理プログラム。
【請求項9】
前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記対象サブブロックの平均画素値を算出する第4のステップをさらに有し、
前記第4のステップで算出された前記対象サブブロックの平均画素値は、以後の処理で必要となる前記参照領域の情報としてフィードバックするために記憶部に格納され、以後の処理において前記記憶部から随時読み出されることを特徴とする請求項7または8に記載された画像処理プログラム。
【請求項10】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、前記画像処理方法が再帰的に実行され、
上位階層において算出された前記サブブロックの平均画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの平均画素値として、当該下位階層に供給されることを特徴とする請求項9に記載された画像処理プログラム。
【請求項11】
前記画像処理プログラムは、画像を圧縮するエンコードプログラムであって、
前記対象サブブロックの予測画素値と、真の画素値との差分を予測残差として算出する第5のステップと、
前記算出された予測残差に対して、非可逆変換を施す第6のステップと、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成する第7のステップと、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する第8のステップと
をさらに有することを特徴とする請求項9または10に記載された画像処理プログラム。
【請求項12】
前記画像処理プログラムは、画像を伸張するデコードプログラムであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記対象サブブロックの平均画素値の算出に用いられる前記予測残差を復元する第9のステップをさらに有することを特徴とする請求項9または10に記載された画像処理プログラム。
【請求項1】
画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理システムにおいて、
今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、前記対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、前記対象ブロックから前記第1の未処理ブロックに至る方向において前記第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する領域特定部と、
前記対象ブロックに関する第1の平均画素値と、前記処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、前記第1の未処理ブロックに関する第3の平均画素値と、前記第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、前記対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する予測処理部と
を有することを特徴とする画像処理システム。
【請求項2】
前記交流成分予測は、前記対象ブロックと前記処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、前記第3の平均画素値と前記第4の平均画素値とに基づいて予測された予測値を用いて行われることを特徴とする請求項1に記載された画像処理システム。
【請求項3】
前記予測処理部によって算出された前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記対象サブブロックの平均画素値を算出する加算器をさらに有し、
前記加算器によって算出された前記対象サブブロックの平均画素値は、以後の処理で必要となる前記参照領域の情報として、前記予測処理部にフィードバックされることを特徴とする請求項1または2に記載された画像処理システム。
【請求項4】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、
上位階層において算出された前記サブブロックの平均画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの平均画素値として、当該下位階層に供給されることを特徴とする請求項3に記載された画像処理システム。
【請求項5】
前記画像処理システムは、画像を圧縮するエンコーダであって、
前記予測処理部によって算出された前記予測画素値と、真の画素値との差分を予測残差として算出する減算器と、
前記減算器によって算出された前記予測残差に対して、非可逆変換を施す非可逆変換部と、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する逆変換部と
をさらに有することを特徴とする請求項3または4に記載された画像処理システム。
【請求項6】
前記画像処理システムは、画像を伸張するデコーダであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を復元する逆変換部をさらに有することを特徴とする請求項3または4に記載された画像処理システム。
【請求項7】
画像平面上に所定サイズのブロックを複数設定するとともに、処理対象となるブロックを所定方向に順次シフトさせながら、ブロックを細分化した複数のサブブロックの交流成分予測を行う画像処理プログラムにおいて、
今回の処理で処理対象となる対象ブロックの参照領域のうち、順次シフトによる処理が既に行われた少なくとも1つの処理済ブロックと、順次シフトによる処理が未だ行われておらず、かつ、前記対象ブロックと隣接した少なくとも1つの第1の未処理ブロックと、順次シフトによる処理が未だ行われたおらず、かつ、前記対象ブロックから前記第1の未処理ブロックに至る方向において前記第1の未処理ブロックと隣接した少なくとも1つの第2の未処理ブロックとを特定する第1のステップと、
前記対象ブロックに関する第1の平均画素値と、前記処理済ブロック内に存在する処理済サブブロックに関する従前の処理で算出された第2の平均画素値と、前記第1の未処理ブロックに関する第3の平均画素値と、前記第2の未処理ブロックに関する第4の平均画素値とを用いた交流成分予測によって、前記対象ブロック内に存在するそれぞれの対象サブブロックの予測画素値を算出する第2のステップと
を有することを特徴とする画像処理方法をコンピュータに実行させる画像処理プログラム。
【請求項8】
前記交流成分予測は、前記対象ブロックと前記処理済サブブロックとの間の中心間距離と同じ中心間距離を有し、少なくとも、前記第3の平均画素値と前記第4の平均画素値とに基づいて予測された予測値を用いて行われることを特徴とする請求項7に記載された画像処理プログラム。
【請求項9】
前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記対象サブブロックの平均画素値を算出する第4のステップをさらに有し、
前記第4のステップで算出された前記対象サブブロックの平均画素値は、以後の処理で必要となる前記参照領域の情報としてフィードバックするために記憶部に格納され、以後の処理において前記記憶部から随時読み出されることを特徴とする請求項7または8に記載された画像処理プログラム。
【請求項10】
階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、前記画像処理方法が再帰的に実行され、
上位階層において算出された前記サブブロックの平均画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの平均画素値として、当該下位階層に供給されることを特徴とする請求項9に記載された画像処理プログラム。
【請求項11】
前記画像処理プログラムは、画像を圧縮するエンコードプログラムであって、
前記対象サブブロックの予測画素値と、真の画素値との差分を予測残差として算出する第5のステップと、
前記算出された予測残差に対して、非可逆変換を施す第6のステップと、
前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成する第7のステップと、
前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する第8のステップと
をさらに有することを特徴とする請求項9または10に記載された画像処理プログラム。
【請求項12】
前記画像処理プログラムは、画像を伸張するデコードプログラムであって、
画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記対象サブブロックの平均画素値の算出に用いられる前記予測残差を復元する第9のステップをさらに有することを特徴とする請求項9または10に記載された画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−49942(P2011−49942A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−197940(P2009−197940)
【出願日】平成21年8月28日(2009.8.28)
【出願人】(398034168)株式会社アクセル (80)
【Fターム(参考)】
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願日】平成21年8月28日(2009.8.28)
【出願人】(398034168)株式会社アクセル (80)
【Fターム(参考)】
[ Back to top ]