以下、図を参照して本発明の実施の形態について説明する。
図1は、本発明の画像符号化装置の一実施の形態の構成を表している。この画像符号化装置51は、A/D変換部61、画面並べ替えバッファ62、第1の符号化部63、代替ブロック検出部64、判定部65、第2の符号化部66、および出力部67により構成されている。判定部65は、ブロック分類部71、モーションスレッディング部72、およびイグゼンプラ部73により構成されている。
A/D変換部61は、入力された画像をA/D変換し、画面並べ替えバッファ62に出力し、記憶させる。画面並べ替えバッファ62は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ62に記憶された画像のうち、IピクチャとPピクチャの画像は、予め第1の符号化方式で符号化する画像とされているので第1の符号化部63に供給され、Bピクチャの情報は、画像の対象ブロックを第1の符号化方式と第2の符号化方式のいずれの方式で符号化するかを判定する判定部65に供給される。
判定部65のブロック分類部71は、画面並べ替えバッファ62から供給されたBピクチャの画像のうち、エッジ情報を有するブロックと有しないブロックとを分類し、エッジ情報を有するストラクチャルブロックを、第1の符号化処理を施すブロックとして第1の符号化部63に出力し、エッジ情報を有しないブロックをイグゼンプラ部73に供給する。モーションスレッディング部72は、画面並べ替えバッファ62から供給されたBピクチャの画像のモーションスレッドを検出し、イグゼンプラ部73に供給する。
イグゼンプラ部73は、モーションスレッドに基づいて、エッジ情報を有しないブロックのSTVの値を後述する式(2)に従って演算するとともに、その値を予め定められている閾値と比較する。STVの値が閾値より大きい場合、そのBピクチャのブロックの画像は、第1の符号化処理を施すブロックであるイグゼンプラの画像として第1の符号化部63に供給される。イグゼンプラ部73は、STVの値が閾値より小さい場合、そのBピクチャのブロックを第2の符号化処理を施すブロックであるリムーブドブロックとし、その位置を表す位置情報としてのバイナリマスクを第2の符号化部66に供給する。
第1の符号化部63は、画面並べ替えバッファ62より供給されたIピクチャとPピクチャ、ブロック分類部71より供給されたストラクチャルブロック、イグゼンプラ部73より供給されたイグゼンプラの各画像を、第1の符号化方式で符号化する。第1の符号化方式としては、例えば、H.264およびMPEG−4 Part10 (Advanced Video Coding)(以下H.264/AVCと記す)を用いることができる。
代替ブロック検出部64は、第1の符号化部63で符号化される対象ブロックに隣接する隣接ブロックが第2の符号化方式で符号化されている場合、対象ブロックと隣接ブロックを結ぶ方向の、対象ブロックに最も近い位置のブロックであって、第1の符号化方式で符号化されているブロックを代替ブロックとして検出する。第1の符号化部63は、この代替ブロックを周辺ブロックとして利用して対象ブロックを第1の符号化方式で符号化する。
第2の符号化部66は、イグゼンプラ部73より供給されたバイナリマスクを、第1の符号化方式とは異なる第2の符号化方式で符号化する。第2の符号化方式としては、テクスチャ解析・合成符号化方式を用いることができる。
出力部67は、第1の符号化部63の出力と第2の符号化部66の出力とを合成し、圧縮画像として出力する。
ここでモーションスレッディング部72が行う基本的処理について説明する。図2に示されるように、モーションスレッディング部72は画像をGOP単位で階層構造に分割する。図2の実施の形態では、GOP長が8であるGOPが、レイヤ0、レイヤ1およびレイヤ2の3つの階層構造に分割されている。GOP長は例えば2のべき乗とすることができるが、それに限られるものではない。
レイヤ2はフレーム(またはフィールド)F1乃至F9の9枚のフレームで構成される入力された画像の元のGOPである。レイヤ1はレイヤ2のフレームF2,F4,F6,F8を1フレームおきに間引くことで、フレームF1,F3,F5,F7,F9の5フレームで構成したレイヤであり、レイヤ0はレイヤ1のフレームF3,F7を1フレームおきに間引くことで、フレームF1,F5,F9の3フレームで構成したレイヤである。
モーションスレッディング部72は、より上位の階層(図2においてより上方に位置する小さい番号で示される階層)の動きベクトルを求めた後、それを利用して、その1つ下のレイヤの動きベクトルを求める。
すなわち、図3Aに示されるように、モーションスレッディング部72は、上位の階層のフレームF2nとフレームF2n+2の動きベクトルMv(F2n→F2n+2)をブロックマッチング法などにより演算するとともに、フレームF2nのブロックB2nに対応するフレームF2n+2のブロックB2n+2を演算する。
次に、図3Bに示されるように、モーションスレッディング部72は、フレームF2nとフレームF2n+1(フレームF2nとフレームF2n+2の中間のフレーム)の動きベクトルMv(F2n→F2n+1)をブロックマッチング法などにより演算するとともに、フレームF2nのブロックB2nに対応するフレームF2n+1のブロックB2n+1を演算する。
そして、モーションスレッディング部72は、フレームF2n+1とフレームF2n+2の動きベクトルMv(F2n+1→F2n+2)を、次式から演算する。
Mv(F2n+1→F2n+2)=Mv(F2n→F2n+2)−Mv(F2n→F2n+1) (1)
以上の原理に基づいて、図2のレイヤ0において、フレームF1とフレームF9の動きベクトルとフレームF1とフレームF5の動きベクトルから、フレームF5とフレームF9の動きベクトルが求められる。次にレイヤ1において、フレームF1とフレームF3の動きベクトルが求められ、フレームF3とフレームF5の動きベクトルが、フレームF1とフレームF5の動きベクトルと、フレームF1とフレームF3の動きベクトルから求められる。フレームF5とフレームF7の動きベクトルが求められ、フレームF7とフレームF9の動きベクトルが、フレームF5とフレームF9の動きベクトルと、フレームF5とフレームF7の動きベクトルから求められる。
さらに、レイヤ2において、フレームF1とフレームF2の動きベクトルが求められ、フレームF2とフレームF3の動きベクトルが、フレームF1とフレームF3の動きベクトルと、フレームF1とフレームF2の動きベクトルから求められる。フレームF3とフレームF4の動きベクトルが求められ、フレームF4とフレームF5の動きベクトルが、フレームF3とフレームF5の動きベクトルと、フレームF3とフレームF4の動きベクトルから求められる。
フレームF5とフレームF6の動きベクトルが求められ、フレームF6とフレームF7の動きベクトルが、フレームF5とフレームF7の動きベクトルと、フレームF5とフレームF6の動きベクトルから求められる。フレームF7とフレームF8の動きベクトルが求められ、フレームF8とフレームF9の動きベクトルが、フレームF7とフレームF9の動きベクトルと、フレームF7とフレームF8の動きベクトルから求められる。
図4は、以上のようにして求められた動きベクトルに基づき演算されたモーションスレッドの例を表している。図4において、黒いブロックは第2の符号化方式で符号化されたリムーブドブロックを表し、白いブロックは第1の符号化方式で符号化されたブロックを表している。
この例においては、例えば、ピクチャB0の最も上に位置するブロックは、ピクチャB1の上から2番目の位置、ピクチャB2の上から3番目の位置、ピクチャB3の上から3番目の位置、ピクチャB4の上から3番目の位置、ピクチャB5の上から2番目の位置まで達するスレッドに属している。
また、ピクチャB0の上から5番目に位置するブロックは、ピクチャB1の上から5番目の位置まで達するスレッドに属している。
このように、モーションスレッドは、所定のブロックの各ピクチャ上の位置の軌跡(すなわち、動きベクトルの連鎖)を表している。
次に、図5のフローチャートを参照して、図1の画像符号化装置51の符号化処理について説明する。
ステップS1において、A/D変換部61は入力された画像をA/D変換する。ステップS2において、画面並べ替えバッファ62は、A/D変換部61より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。並べ替えられたIピクチャとPピクチャは第1の符号化処理を行うピクチャであると判定部65により予め判定(決定)されており、第1の符号化部63に供給される。Bピクチャは判定部65のブロック分類部71とモーションスレッディング部72に供給される。
ステップS3において、ブロック分類部71は、入力されたBピクチャのブロックを分類する。具体的には、各ピクチャの第1の符号化部63で行われる符号化の単位としてのブロック(16×16画素のサイズのマクロブロック、またはそれ以下のサイズのブロック)が、エッジ情報を含むブロックであるかが判定され、エッジ情報を予め設定されている基準値以上含むブロックと含まないブロックに分類される。エッジ情報を含むブロックは人間の目につき易い画像のブロック(すなわち、第1の符号化処理を施すべきブロック)であるので、ストラクチャルブロックとして第1の符号化部63に供給される。エッジ情報を含まない画像はイグゼンプラ部73に供給される。
ステップS4において、モーションスレッディング部72は、Bピクチャをモーションスレッディングする。すなわち、図2乃至図4を参照して説明したように、モーションスレッドはブロックの位置の軌跡を表し、この情報がイグゼンプラ部73に供給される。イグゼンプラ部73は、この情報に基づいて、後述するSTVを演算する。
ステップS5において、イグゼンプラ部73は、イグゼンプラを抽出する。具体的には、イグゼンプラ部73は、次式に従ってSTVを演算する。
上記式において、Nはモーションスレッディング部72で求められたモーションスレッドの長さを表し、Biはモーションスレッドに含まれるブロックを表す。μ6はブロックに時空間(上下左右の空間と前後の時間)おいて隣接するブロックを表す。δはブロックに含まれる画素値の分散値を表し、Eはブロックに含まれる画素値の平均値を表す。w1,w2は、予め定められている重み係数である。
STVの値が大きいブロックは、隣接するブロックの画素値との差が大きいブロックなので、人の目につき易い画像のブロック(すなわち、第1の符号化処理を施すべきブロック)である。そこでイグゼンプラ部73は、STVの値が予め設定されている閾値より大きいブロックを、イグゼンプラとして第1の符号化部63に出力する。
以上のように、ステップS2乃至S5の処理は、判定部65により第1と第2の符号化方式のいずれにより符号化するかの判定を行う処理である。
ステップS6において、代替ブロック検出部64は代替ブロック検出処理を実行する。その処理の詳細は図6を参照して後述するが、この処理により、第1の符号化処理に必要な対象ブロックの周辺情報としての代替ブロックが検出される。ステップS7において、第1の符号化部63は第1の符号化処理を行う。その処理の詳細は、図8と図9を参照して後述するが、この処理により、判定部65により第1の符号化処理を施すべきブロックとして判定されたブロック、すなわち、Iピクチャ、Pピクチャ、ストラクチャルブロック、およびイグゼンプラが、代替ブロックを利用して、第1の符号化方式で符号化される。
ステップS8において、第2の符号化部66はイグゼンプラ部73より供給されたリムーブドブロックのバイナリマスクを第2の符号化方式で符号化する。この処理は、リムーブドブロックを直接的に符号化するものではないが、後述するように画像復号装置で画像を合成することで復号が行われるので、一種の符号化ということができる。
ステップS9において、出力部67は第1の符号化部63で符号化された圧縮画像に、第2の符号化部66で符号化された情報を合成して、出力する。この出力が伝送路を介して伝送され、画像復号装置で復号される。
次に図6を参照して、ステップS6における代替ブロック検出処理について説明する。同図に示されるように、ステップS41において、代替ブロック検出部64は、隣接ブロックが全て第1の符号化処理されたものであるかを判定する。
符号化処理は、画面の左上から右下方向のブロックの順番に行われる。図7に示されるように、いま符号化処理の対象とされている対象ブロックがブロックEであるとすると、既に符号化処理されているブロックであって、対象ブロックEに隣接するブロックは、対象ブロックEの左上のブロックA、上のブロックB、右上のブロックC、そして左のブロックDである。ステップS41では、これらの隣接ブロックA乃至Dが全て第1の符号化部63により符号化されたブロックであるかが判定される。
ブロックA乃至Dが全て第1の符号化部63により符号化されたブロックである場合、ステップS42において、代替ブロック検出部64は周辺ブロックとして隣接ブロックA乃至Dを選択する。すなわち第1の符号化部63は、対象ブロックEを符号化するに当たり、隣接ブロックA乃至Dの動きベクトルに基づく予測処理を行う。この場合、利用可能なブロックが存在するため、効率的な符号化が可能となる。
第1の符号化部63により符号化されないブロックはリムーブドブロックとされ、第2の符号化部66において符号化される。隣接ブロックA乃至Dが第2の符号化部66により符号化されたブロックである場合(第1の符号化部63により符号化されたブロックでない場合)、符号化の原理が異なるため、第1の符号化部63はその隣接ブロックA乃至Dを対象ブロックEの符号化に利用することができない。この場合、周辺情報としてのブロックが得られないunavailableの状態としての符号化処理を行うと、すなわち、例えば、対象ブロックが画面の端部に位置し、その外側には隣接ブロックが存在しない場合と同様の処理を行うと、この場合の符号化処理は、隣接ブロックが存在する場合に較べて、符号化効率が低下する。
そこで、隣接ブロックA乃至Dが全て第1の符号化部63により符号化されたブロックではない場合、ステップS43において、第1の符号化部63は、隣接ブロックのうち、リムーブドブロックとされたブロックから所定の閾値以内の距離に、第1の符号化処理が行われたブロックがあるかを判定する。すなわち、隣接ブロックの代わりに用いられる代替ブロックがあるかが判定される。そして、所定の閾値以内の距離に、第1の符号化処理が行われたブロックがある場合(代替ブロックが存在する場合)、代替ブロック検出部64は、ステップS44において、周辺ブロックとして、その所定の閾値以内の距離の代替ブロックを選択する。
例えば、図7に示されるように、隣接ブロックAが第1の符号化部63により符号化されたブロックではない場合(第2の符号化部66により符号化されたブロックである場合)、対象ブロックEから隣接ブロックAの方向の最短の距離に位置するブロックであって、第1の符号化部63により符号化されたブロックがブロックA’である場合、このブロックA’が代替ブロックとされる。
代替ブロックA’は隣接ブロックAの近傍のブロックであるため、隣接ブロックAと類似した特徴を有していると考えられる。すなわち、代替ブロックA’は隣接ブロックAと、比較的高い相関を有している。そこで、この隣接ブロックAに代えて代替ブロックA’を用いて対象ブロックEに対して第1の符号化を行うことで、すなわち、代替ブロックA’の動きベクトルを用いた予測処理を行うことで、符号化効率の低下を抑制することができる。
ただし、代替ブロックA’の隣接ブロックAからの距離が予め設定されている所定の閾値以上離れている場合、代替ブロックA’が隣接ブロックAと類似した特徴を有する画像である可能性が低くなる(相関が低くなる)。その結果、このような閾値以上の距離に位置する代替ブロックA’を利用しても、符号化効率の低下を抑制することは困難になる。そこで、閾値以内の距離に位置するブロックだけが代替ブロックとして対象ブロックEの符号化に利用される。
隣接ブロックB,C,Dについても同様であり、それらがリムーブドブロックである場合、その隣接ブロックB,C,Dに代えて、それぞれ対象ブロックEから隣接ブロックB,C,Dの方向の閾値以内の距離に位置する代替ブロックB’,C’,D’の動きベクトルが、対象ブロックEの第1の符号化に利用される。
なお、この距離の閾値は、固定値としてもよいし、ユーザが定め、第1の符号化部63により符号化し、圧縮画像に付随して伝送するようにしてもよい。
ステップS43において、隣接ブロックのうち、リムーブドブロックとされたブロックから所定の閾値以内の距離に、第1の符号化処理が行われたブロックが存在しないと判定された場合、ステップS45において、さらに動きベクトルに関しての代替処理が可能かが判定される。
すなわち、代替ブロック検出部64は、ステップS45において、対応ブロックの動きベクトルが利用可能であるかを判定する。対応ブロック(co-located block)とは、対象ブロックのピクチャと異なるピクチャ(前または後に位置するピクチャ)のブロックであって、対象ブロックに対応する位置のブロックである。この対応ブロックが第1の符号化処理されたブロックである場合には、対応ブロックの動きベクトルが利用可能であると判定される。この場合、ステップS46において、代替ブロック検出部64は、周辺ブロックとして、対応ブロックを選択する。すなわち、第1の符号化部63は対応ブロックを対象ブロックの代替ブロックとして、その動きベクトルに基づく予測処理を行って、符号化処理を行う。これによっても、符号化効率の低下を抑制することができる。
対応ブロックの動きベクトルが利用可能でない場合、ステップS47において、代替ブロック検出部64はブロックがunavailableであるとする。すなわち、この場合には、従来と同様の処理が行われる。
以上のように、IピクチャとPピクチャのブロックの他、Bピクチャの人の目につき易い画像のブロックに対して第1の符号化を施すに際し、隣接ブロックが、人の目につき難い画像の第2の符号化を施したブロックである場合、その方向の最も近い第1の符号化した代替ブロックを周辺ブロックとして、対象ブロックの第1の符号化に利用するようにしたので、符号化効率の低下を抑制することができる。
図8は、第1の符号化部63の一実施の形態の構成を表している。この第1の符号化部63は、入力部81、演算部82、直交変換部83、量子化部84、可逆符号化部85、蓄積バッファ86、逆量子化部87、逆直交変換部88、演算部89、デブロックフィルタ90、フレームメモリ91、スイッチ92、動き予測・補償部93、イントラ予測部94、スイッチ95、およびレート制御部96により構成されている。
入力部81は、画面並べ替えバッファ62からIピクチャとPピクチャ、ブロック分類部71からストラクチャルブロック、並びにイグゼンプラ部73からイグゼンプラの各画像を入力する。入力部81は入力された画像を代替ブロック検出部64、演算部82、動き予測・補償部93、およびイントラ予測部94に供給する。
演算部82は、入力部81より供給される画像から、スイッチ95により選択された動き予測・補償部93の予測画像またはイントラ予測部94の予測画像を減算し、その差分情報を直交変換部83に出力する。直交変換部83は、演算部82からの差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を出力する。量子化部84は直交変換部83が出力する変換係数を量子化する。
量子化部84の出力となる、量子化された変換係数は、可逆符号化部85に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施され、圧縮される。圧縮画像は、蓄積バッファ86に蓄積された後、出力される。レート制御部96は、蓄積バッファ86に蓄積された圧縮画像に基づいて、量子化部84の量子化動作を制御する。
また、量子化部84より出力された、量子化された変換係数は、逆量子化部87にも入力され、逆量子化された後、さらに逆直交変換部88において逆直交変換される。逆直交変換された出力は演算部89によりスイッチ95から供給される予測画像と加算されて、局部的に復号された画像となる。デブロックフィルタ90は、復号された画像のブロック歪を除去した後、フレームメモリ91に供給し、蓄積させる。フレームメモリ91には、デブロックフィルタ90によりデブロックフィルタ処理される前の画像も供給され、蓄積される。
スイッチ92はフレームメモリ91に蓄積された参照画像を動き予測・補償部93またはイントラ予測部94に出力する。イントラ予測部94は、入力部81から供給されたイントラ予測する画像とフレームメモリ91から供給された参照画像に基づいてイントラ予測処理を行い、予測画像を生成する。イントラ予測部94は、その際、ブロックに対して適用したイントラ予測モードに関する情報を、可逆符号化部85に供給する。可逆符号化部85は、この情報を符号化し、圧縮画像におけるヘッダ情報の一部とする。
動き予測・補償部93は、入力部81から供給されるインター符号化が行われる画像と、スイッチ92を介してフレームメモリ91から供給される参照画像に基づいて動きベクトルを検出し、動きベクトルに基づいて参照画像に動き予測と補償処理を施し、予測画像を生成する。
動き補償・予測装置93は、動きベクトルを可逆符号化部85に出力する。可逆符号化部85は、動きベクトルをやはり可変長符号化、算術符号化といった可逆符号化処理し、圧縮画像のヘッダ部に挿入する。
スイッチ95は動き予測・補償部93またはイントラ予測部94より出力された予測画像を選択し、演算部82,89に供給する。
代替ブロック検出部64は、イグゼンプラ部73が出力するバイナリマスクに基づいて、隣接ブロックがリムーブドブロックであるかを判定し、リムーブドブロックである場合、代替ブロックを検出し、その検出結果を可逆符号化部85、動き予測・補償部93、およびイントラ予測部94に出力する。
次に、図9を参照して、第1の符号化部63が実行する、図5のステップS7における第1の符号化処理について説明する。
ステップS81において、入力部81は画像を入力する。具体的には、入力部81は、画面並べ替えバッファ62からIピクチャとPピクチャ、ブロック分類部71からストラクチャルブロック、並びにイグゼンプラ部73からイグゼンプラの各画像を入力する。ステップS82において、演算部82は、ステップS81で入力された画像と予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部93から、イントラ予測する場合はイントラ予測部94から、それぞれスイッチ95を介して演算部82に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。従って、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS83において、直交変換部83は演算部82から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。ステップS84において、量子化部84は変換係数を量子化する。この量子化に際しては、後述するステップS95の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわちステップS85において、逆量子化部87は量子化部84により量子化された変換係数を量子化部84の特性に対応する特性で逆量子化する。ステップS86において逆直交変換部88は逆量子化部87により逆量子化された変換係数を直交変換部83の特性に対応する特性で逆直交変換する。
ステップS87で演算部89は、スイッチ95を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部82への入力に対応する画像)を生成する。ステップS88においてデブロックフィルタ90は、演算部89より出力された画像をフィルタリングする。これによりブロック歪みが除去される。ステップS89においてフレームメモリ91は、フィルタリングされた画像を記憶する。なお、フレームメモリ91にはデブロックフィルタ90によりフィルタ処理されていない画像も演算部89から供給され、記憶される。
入力部81から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ91から読み出され、スイッチ92を介して動き予測・補償部93に供給される。ステップS90において動き予測・補償部93は、フレームメモリ91から供給される画像を参照して動きを予測し、その動きに基づいて動き補償を行い、予測画像を生成する。
入力部81から供給される処理対象の画像(例えば、図10における画素a乃至p)がイントラ処理されるブロックの画像である場合、参照される復号済みの画像(図10における画素A乃至L)がフレームメモリ91から読み出され、スイッチ92を介してイントラ予測部94に供給される。これらの画像に基づいて、ステップS91においてイントラ予測部94は処理対象のブロックの画素を所定のイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素(図10における画素A乃至L)としては、デブロックフィルタ90によりデブロックフィルタリングされていない画素が用いられる。これは、イントラ予測はマクロブロック毎に逐次処理で行われるのに対して、デブロックフィルタリング処理は、一通りの復号処理がなされた後に行われるからである。
輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがあり、色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。輝度信号の4×4画素および8×8画素のイントラ予測モードについては、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが定義される。輝度信号の16×16画素のイントラ予測モードと色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが定義される。
予測モードの種類は、図11の番号0乃至8で示される方向に対応している。予測モード2は平均値予測である。
ステップS92において、スイッチ95は予測画像を選択する。すなわちインター予測の場合には動き予測・補償部93の予測画像が、またイントラ予測の場合にはイントラ予測部94の予測画像がそれぞれ選択され、演算部82,89に供給される。この予測画像が、上述したように、ステップS82,S87の演算に利用される。
ステップS93において可逆符号化部85は量子化部84より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。なお、このとき、ステップS90で動き予測・補償部93により検出された動きベクトル、並びにステップS91でイントラ予測部94がブロックに対して適用したイントラ予測モードに関する情報も符号化され、ヘッダ情報に付加される。
ステップS94において蓄積バッファ86は差分画像を圧縮画像として蓄積する。蓄積バッファ86に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS95においてレート制御部96は、蓄積バッファ86に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部84の量子化動作のレートを制御する。
ステップS90,S91,S93における動き予測処理、イントラ予測処理、および符号化処理において、図6のステップS44,S46で選択された周辺ブロックが利用される。すなわち、隣接ブロックに代えて選択された代替ブロックに対する動きベクトルを用いて予測処理が行われる。従って、隣接ブロックが全て第1の符号化処理されたブロックでない場合に、ステップS47における処理と同様に、周辺情報がunavailableであるとして処理するときに較べて、ブロックの効率的な第1の符号化処理が可能となる。
ここで、周辺情報がunavailableであるとされた場合の処理について説明する。
まず、イントラ予測において、イントラ4×4予測モードを例に、周辺情報がunavailableである場合に行なわれる処理について説明する。
図12Aにおいて、Xが4×4対象ブロック、AおよびBは、ブロックXの左および上に隣接する4×4ブロックであるとする。ブロックA若しくはBが、unavailable である場合には、フラグdcPredModePredictedFlag = 1となり、この時、対象ブロックXの予測モードは予測モード2(平均値予測モード)となる。すなわち、対象ブロックXの画素値の平均値の画素からなるブロックが、予測ブロックとされる。
対象ブロックXがイントラ8×8予測モード、イントラ16×16予測モード、色差信号のブロックである場合の動き予測モードに対する処理についても同様である。
動きベクトル符号化において、周辺情報がunavailable である場合に行なわれる処理は次のようになる。
図12Bにおいて、Xが対象動き予測ブロック、A乃至Dは、それぞれ対象ブロックXの左、上、右上、および左上に隣接する動き予測ブロックであるとする。動き予測ブロックA乃至Cの動きベクトルがavailableである場合、対象動き予測ブロックXに対する動きベクトルの予測値PredMVは、動き予測ブロックA乃至Cの動きベクトルのメディアンにより生成される。
これに対して、動き予測ブロックA乃至Cのいずれかの動きベクトルがunavailable である場合には、以下のような処理が行なわれる。
まず、ブロックCの動きベクトルがunavailable である場合、ブロックA,B,Dの動きベクトルがavailableであるときは、ブロックXの動きベクトルは、ブロックA,BおよびDの動きベクトルのメディアンにより生成される。ブロックBとブロックCのいずれもunavailable である場合、並びにブロックCとブロックDのいずれもunavailable である場合には、メディアン予測は行なわれず、ブロックAに対する動きベクトルがブロックXの動きベクトルの予測値とされる。ただし、ブロックAに対する動きベクトルがunavailable である場合、ブロックXの動きベクトルの予測値は0とされる。
次に、周辺情報がunavailable である場合の可変長符号化の処理について説明する。
図12Aにおいて、Xが4×4若しくは8×8対象直交変換ブロック、AおよびBが隣接ブロックであるとする。ブロックAおよびブロックBにおける値が0ではない直交変換係数の数をnA,nBとすると、ブロックXに対する可変長変換テーブルは、数nAおよびnBにより選択される。しかし、ブロックAがunavailable である場合には、数nA=0であるとして、またブロックBがunavailable である場合には、数nB=0であるとして、それに対応する変換テーブルが選択される。
周辺情報がunavailable である場合の算術符号化処理は次のようになる。
ここでは、フラグmb_skip_flagを例にとって説明するが、他のシンタクス要素に対する処理についても同様である。
マクロブロックKに対して、コンテクストctx(K)が次のように定義される。すなわち、マクロブロックKが、参照フレームの空間的に対応する位置の画素をそのまま用いるスキップトマクロブロックである場合、コンテクストctx(K)は1とされ、そうでない場合、0とされる。
対象ブロックXに対するコンテクストctx(X)は次式に示されるように、左の隣接ブロックAのコンテキストctx(A)と、上の隣接ブロックBのコンテキストctx(B)の和として算出される。
ctx(X)= ctx(A)+ctx(B) (4)
ブロックA若しくはブロックBがunavailable である場合、コンテクストctx(A)=0、若しくはコンテクストctx(B)=0であるとされる。
以上のように、周辺情報がunavailableであるとして処理を実行すると、効率的な処理が困難になるが、上述したように代替ブロックを周辺ブロックとして利用することで、効率的な処理が可能となる。
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。図13は、このような画像復号装置の一実施の形態の構成を表している。
画像復号装置101は、蓄積バッファ111、第1の復号部112、代替ブロック検出部113、第2の復号部114、画面並べ替えバッファ115、およびD/A変換部116を有している。第2の復号部114は、補助情報復号部121とテクスチャ合成部122とを有している。
蓄積バッファ111は伝送されてきた圧縮画像を蓄積する。第1の復号部112は蓄積バッファ111に蓄積された圧縮画像のうち、第1の符号化が行われている圧縮画像を、第1の復号処理で復号する。この第1の復号処理は、図1の画像符号化装置51の第1の符号化部63が行う第1の符号化処理に対応する処理、すなわち、この実施の形態の場合、H.264/AVC方式に対応する復号方式の処理である。代替ブロック検出部113は、補助情報復号部121から供給されるバイナリマスクに基づいて代替ブロックを検出する。その機能は図1の代替ブロック検出部64と同様である。
第2の復号部114は、蓄積バッファ111から供給される第2の符号化が行われている圧縮画像に対して第2の復号処理を行う。具体的には、補助情報復号部121が、図1の第2の符号化部66による第2の符号化処理に対応する復号処理を行い、テクスチャ合成部122が、補助情報復号部121から供給されるバイナリマスクに基づいて、テクスチャの合成処理を行う。このためテクスチャ合成部122には、第1の復号部112から対象フレームの画像(Bピクチャの画像)が供給され、画面並べ替えバッファ115から参照画像が供給される。
画面並べ替えバッファ115は、第1の復号部112で復号されたIピクチャとPピクチャの画像と、テクスチャ合成部122で合成されたBピクチャの画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ62により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部116は、画面並べ替えバッファ115から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
次に図14を参照して画像復号装置101が実行する復号処理について説明する。
ステップS131において、蓄積バッファ111は伝送されてきた画像を蓄積する。ステップS132において、第1の復号部112は蓄積バッファ111から読み出された第1の符号化処理が行われている画像に対して第1の復号処理を施す。その詳細は図16と図17を参照して後述するが、これにより図1の第1の符号化部63で符号化されたIピクチャとPピクチャ、並びにBピクチャのストラクチャルブロックとイグゼンプラの画像(STVの値が閾値より大きいブロックの画像)が復号される。IピクチャとPピクチャの画像は画面並べ替えバッファ115に供給され、蓄積される。Bピクチャの画像はテクスチャ合成部122に供給される。
ステップS133において代替ブロック検出部113は代替ブロック検出処理を実行する。この処理は図6を参照して説明した通りであり、隣接ブロックが第1の符号化が行われていないブロックである場合には、代替ブロックが検出される。この処理を行うため、後述するステップS134で補助情報復号部121により復号されたバイナリマスクが代替ブロック検出部113に供給されている。代替ブロック検出部113はバイナリマスクを利用して、各ブロックが第1の符号化処理が行われたブロックであるのか、あるいは第2の符号化処理が行われたブロックであるのかを確認する。検出された代替ブロックを利用して、ステップS132の第1の復号処理が行われる。
次に第2の復号部114はステップS134、S135において第2の復号を行う。すなわち、ステップS134において、補助情報復号部121は、蓄積バッファ111から供給された第2の符号化処理が行われているバイナリマスクを復号する。復号されたバイナリマスクは、テクスチャ合成部122と代替ブロック検出部113に出力される。バイナリマスクはリムーブドブロックの位置、すなわち第1の符号化処理が行われていないブロックの位置(第2の符号化処理が行われているブロックの位置)を表している。そこで、上述したように、代替ブロック検出部113はこのバイナリマスクを利用して代替ブロックを検出する。
ステップS135においてテクスチャ合成部122は、バイナリマスクで指定されるリムーブドブロックに対してテクスチャ合成を行う。このテクスチャ合成はリムーブドブロック(STVの値が閾値より小さい画像のブロック)を再生する処理であり、その原理が図15に示されている。同図に示されるように、復号の処理対象のブロックである対象ブロックB1が属するBピクチャのフレームが対象フレームFCであるとする。対象ブロックB1がリムーブドブロックであるとすると、その位置がバイナリマスクで表されていることになる。
テクスチャ合成部122は、補助情報復号部121からバイナリマスクを受け取ると、対象フレームFCの1フレーム前の前方参照フレームFPの、対象ブロックに対応する位置を中心とする所定の範囲に探索範囲Rを設定する。対象フレームFCは第1の復号部112から、前方参照フレームFPは画面並べ替えバッファから、それぞれテクスチャ合成部122に供給される。そしてテクスチャ合成部122は、探索範囲R内において対象ブロックB1と最も高い相関を有するブロックB1’を探索する。ただし、対象ブロックB1はリムーブドブロックであって、第1の符号化処理が行われていないので、画素値が存在しない。
そこで、テクスチャ合成部122は、対象ブロックB1の近傍の所定の範囲の領域の画素値を対象ブロックB1の画素値に代えて検索に使用する。図15の実施の形態の場合、対象ブロックB1の上方に隣接する領域A1と、下方に隣接する領域A2の画素値が用いられる。テクスチャ合成部122は、前方参照フレームFPにおいて、対象ブロックB1、領域A1,A2に対応する参照ブロックB1’、領域A1’,A2’を想定し、参照ブロックB1’が探索範囲Rに位置する範囲で、領域A1,A2と領域A1’,A2’の差分絶対値和や差分二乗和を演算する。
同様の演算が対象フレームFCの1フレーム後の後方参照フレームFbにおいても行われる。後方参照フレームFbも画面並べ替えバッファ115からテクスチャ合成部122に供給される。そして、演算値が最も小さい(最も相関の高い)位置の領域A1’,A2’に対応する参照ブロックB1’が探索され、その参照ブロックB1’が対象フレームFCの対象ブロックB1の画素値として合成される。リムーブドブロックが合成されたBピクチャは画面並べ替えバッファ115に供給され、記憶される。
このように、この実施の形態における第2の符号化/復号方式はテクスチャ解析・合成符号化/復号方式であるため、補助情報であるバイナリマスクが符号化され、伝送されるだけで、対象ブロックの画素値は直接的には符号化されず、伝送もされないが、画像復号装置側で、バイナリマスクに基づいて対象ブロックが合成される。
ステップS136において、画面並べ替えバッファ115は並べ替えを行う。すなわち画像符号化装置51の画面並べ替えバッファ62により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS137においてD/A変換部116は、画面並べ替えバッファ115からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
図16は第1の復号部112の一実施の形態の構成を表している。第1の復号部112は、可逆復号部141、逆量子化部142、逆直交変換部143、演算部144、デブロックフィルタ145、フレームメモリ146、スイッチ147、動き予測・補償部148、イントラ予測部149、およびスイッチ150により構成されている。
可逆復号部141は、蓄積バッファ111より供給された、図8の可逆符号化部85により符号化された情報を、可逆符号化部85の符号化方式に対応する方式で復号する。逆量子化部142は可逆復号部141により復号された画像を、図8の量子化部84の量子化方式に対応する方式で逆量子化する。逆直交変換部143は、図8の直交変換部83の直交変換方式に対応する方式で逆量子化部142の出力を逆直交変換する。
逆直交変換された出力は演算部144によりスイッチ150から供給される予測画像と加算されて復号される。デブロックフィルタ145は、復号された画像のブロック歪を除去した後、フレームメモリ146に供給し、蓄積させるとともに、Bピクチャを図13のテクスチャ合成部122に、IピクチャとPピクチャを画面並べ替えバッファ115に、それぞれ出力する。
スイッチ147は、インター符号化が行われる画像と参照される画像をフレームメモリ146から読み出し、動き予測・補償部148に出力するとともに、イントラ予測に用いられる画像をフレームメモリ146から読み出し、イントラ予測部149に供給する。
イントラ予測部149には、ヘッダ情報を復号して得られたイントラ予測モードに関する情報が可逆復号部141から給される。イントラ予測部149は、この情報に基づいて、予測画像を生成する。
動き予測・補償部148には、ヘッダ情報を復号して得られた動きベクトルが可逆復号部141から供給される。動き予測・補償部148は、動きベクトルに基づいて画像に動き予測と補償処理を施し、予測画像を生成する。
スイッチ150は、動き予測・補償部148またはイントラ予測部149により生成された予測画像を選択し、演算部144に供給する。
代替ブロック検出部113は、図13の補助情報復号部121が出力するバイナリマスクに基づいて代替ブロックを検出し、その検出結果を可逆復号部141、動き予測・補償部148、およびイントラ予測部149に出力する。
次に、図17を参照して、図16の第1の復号部112が行う図14のステップS132の第1の復号処理について説明する。
ステップS161において、可逆復号部141は、蓄積バッファ111から供給される圧縮画像を復号する。すなわち、図8の可逆符号化部85により符号化されたIピクチャ、Pピクチャ、並びにBピクチャのストラクチャルブロックとイグゼンプラが復号される。このとき動きベクトル、イントラ予測モードも復号され、動きベクトルは動き予測・補償部148に供給され、イントラ予測モードはイントラ予測部149に供給される。
ステップS162において、逆量子化部142は可逆復号部141により復号された変換係数を、図8の量子化部84の特性に対応する特性で逆量子化する。ステップS163において逆直交変換部143は逆量子化部142により逆量子化された変換係数を、図8の直交変換部83の特性に対応する特性で逆直交変換する。これにより図8の直交変換部83の入力(演算部82の出力)に対応する差分情報が復号されたことになる。
ステップS164で演算部144は、後述するステップS169の処理で選択され、スイッチ150を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS165においてデブロックフィルタ145は、演算部144より出力された画像をフィルタリングする。これによりブロック歪みが除去される。この画像のうちBピクチャが図13のテクスチャ合成部122に、IピクチャとPピクチャが画面並べ替えバッファ115に、それぞれ供給される。ステップS166においてフレームメモリ146は、フィルタリングされた画像を記憶する。
処理対象の画像がインター処理される画像である場合、必要な画像がフレームメモリ146から読み出され、スイッチ147を介して動き予測・補償部148に供給される。ステップS167において動き予測・補償部148は、可逆復号部141から供給される動きベクトルに基づいて動き予測し、予測画像を生成する。
処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ146から読み出され、スイッチ147を介してイントラ予測部149に供給される。ステップS168においてイントラ予測部149は、可逆復号部141から供給されるイントラ予測モードに従ってイントラ予測し、予測画像を生成する。
ステップS169において、スイッチ150は予測画像を選択する。すなわち動き予測・補償部148またはイントラ予測部149により生成された予測画像の一方が選択され、演算部144に供給され、上述したように、ステップS164において逆直交変換部143の出力と加算される。
なお、ステップS161の可逆復号部141の復号処理、ステップS167の動き予測・補償部148の動き予測・補償処理、そしてステップS168のイントラ予測部149のイントラ予測処理においては、代替ブロック検出部113により検出された代替ブロックが利用される。従って、効率的な処理が可能となる。
以上の処理が、図14のステップS132において行われる。この復号の処理は、図8の第1の符号化部63が行う、図9のステップS85乃至ステップS92の局部的復号処理と基本的に同様の処理である。
図18は画像符号化装置の他の実施の形態の構成を表している。この画像符号化装置51の判定部70はグローバル動きベクトル検出部181をさらに有している。グローバル動きベクトル検出部181は、画面並べ替えバッファ62から供給されるフレームの画面全体の、平行移動や拡大、縮小、回転といったグローバル動きの検出を行い、検出結果に対応するグローバル動きベクトルを、代替ブロック検出部64と第2の符号化部66に供給する。
代替ブロック検出部64は、グローバル動きベクトルに基づいて、元に戻るように画面全体を平行移動、拡大、縮小、または回転して、代替ブロックを検出する。これにより、画面全体が平行移動、拡大、縮小、または回転している場合でも、代替ブロックを正確に検出することができる。
第2の符号化部66は、バイナリマスクの他、グローバル動きベクトルに対しても第2の符号化処理を施し、復号側に伝送する。
その他の構成と動作は、図1の画像符号化装置51と同様である。
図18の符号化装置に対応する画像復号装置は、図13に示した場合と同様の構成となる。補助情報復号部121は、バイナリマスクとともにグローバル動きベクトルも復号し、代替ブロック検出部113に供給する。代替ブロック検出部113は、代替ブロック検出部64と同様に、グローバル動きに基づいて、元に戻るように画面全体を平行移動、拡大、縮小、または回転して、代替ブロックを検出する。これにより、画面全体が平行移動、拡大、縮小、または回転している場合でも、代替ブロックを正確に検出することができる。
補助情報復号部121により復号されたバイナリマスクとグローバル動きベクトルは、テクスチャ合成部122にも供給される。テクスチャ合成部122は、グローバル動きに基づいて、元に戻るように画面全体を平行移動、拡大、縮小、または回転して、テクスチャ合成を行う。これにより、画面全体が平行移動、拡大、縮小、または回転している場合でも、テクスチャ合成を正確に行うことができる。
その他の構成と動作は、図13の画像復号装置101と同様である。
以上のように、対象ブロックに隣接する隣接ブロックが、第2の符号化方式で符号化されている場合、対象ブロックと隣接ブロックを結ぶ方向の、対象ブロックに最も近い位置のブロックであって、第1の符号化方式で符号化されている代替ブロックを利用して第1の符号化方式で画像を符号化することで、圧縮率の低下を抑制することができる。
以上においては、第1の符号化方式としてH.264/AVC方式を、第1の復号方式としてそれに対応する復号方式を、第2の符号化方式としてテクスチャ・合成符号化方式を、第2の復号方式としてそれに対応する復号方式を、それぞれ用いるようにしたが、その他の符号化方式/復号方式を用いることもできる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア、または、プログラムが一時的もしくは永続的に格納されるROMやハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。