(57)【特許請求の範囲】
【請求項１】
小数精度の動き補償を用いる映像符号化方法において，
動きベクトルの指し示す参照画像データを取得し，得られた参照画像データからエッジ情報を算出するステップと，
前記エッジ情報をもとに符号化対象フレームを，適応的に補間フィルタを適用する単位となる複数の領域に分割するステップと，
前記領域単位で小数精度画素の補間フィルタを最適化するステップと，
最適化された補間フィルタを用いて参照画像に対する小数精度画素の補間を行い，小数精度の動き補償により予測符号化を行うステップとを有する
ことを特徴とする映像符号化方法。
【請求項２】
請求項１記載の映像符号化方法において，
前記エッジ情報は，動きベクトルの指し示す参照画像データから抽出されたエッジ角度，またはエッジ角度とエッジ強度であり，前記エッジ角度の範囲，または前記エッジ角度の範囲とエッジ強度の強弱によって，前記領域の分割を行う
ことを特徴とする映像符号化方法。
【請求項３】
小数精度の動き補償を用いる映像復号方法において，
小数精度画素の補間フィルタ係数を復号するステップと，
復号された動きベクトルから得られる参照画像データからエッジ情報を算出するステップと，
適応的に補間フィルタを適用する単位となる複数の領域のうち，復号対象データがどの領域に属するかを前記エッジ情報を用いて判定するステップと，
前記領域ごとに小数精度画素の補間フィルタを切り替えて，参照画像に対する小数精度画素の補間を行い，小数精度の動き補償により予測復号を行うステップとを有する
ことを特徴とする映像復号方法。
【請求項４】
請求項３記載の映像復号方法において，
前記エッジ情報は，動きベクトルの指し示す参照画像データから抽出されたエッジ角度，またはエッジ角度とエッジ強度であり，前記エッジ角度の範囲，または前記エッジ角度の範囲とエッジ強度の強弱によって，前記領域の判定を行う
ことを特徴とする映像復号方法。
【請求項５】
小数精度の動き補償を用いる映像符号化装置において，
動きベクトルの指し示す参照画像データを取得し，得られた参照画像データからエッジ情報を算出する手段と，
前記エッジ情報をもとに符号化対象フレームを，適応的に補間フィルタを適用する単位となる複数の領域に分割する手段と，
前記領域単位で小数精度画素の補間フィルタを最適化する手段と，
最適化された補間フィルタを用いて参照画像に対する小数精度画素の補間を行い，小数精度の動き補償により予測符号化を行う手段とを備える
ことを特徴とする映像符号化装置。
【請求項６】
小数精度の動き補償を用いる映像復号装置において，
小数精度画素の補間フィルタ係数を復号する手段と，
復号された動きベクトルから得られる参照画像データからエッジ情報を算出する手段と，
適応的に補間フィルタを適用する単位となる複数の領域のうち，復号対象データがどの領域に属するかを前記エッジ情報を用いて判定する手段と，
前記領域ごとに小数精度画素の補間フィルタを切り替えて，参照画像に対する小数精度画素の補間を行い，小数精度の動き補償により予測復号を行う手段とを備える
ことを特徴とする映像復号装置。
【請求項７】
請求項１または請求項２に記載の映像符号化方法を，コンピュータに実行させるための映像符号化プログラム。
【請求項８】
請求項３または請求項４に記載の映像復号方法を，コンピュータに実行させるための映像復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，動き補償を用いる映像符号化における適応補間フィルタの性能改善を図った映像符号化，復号技術に関するものである。
【背景技術】
【０００２】
映像符号化において，異なる画面間で予測を実行する画面間予測（動き補償）符号化では，すでに復号されたフレームを参照して，予測誤差エネルギーなどを最小にするように動きベクトルが求められ，その残差信号が直交変換され，量子化が施され，エントロピー符号化を経て，バイナリーデータとなる。符号化効率を高めるためには，より予測精度の高い予測方式が求められ，予測誤差エネルギーの低減が不可欠である。
【０００３】
映像符号化標準方式には，数多くの画面間予測の精度を高めるためのツールが導入されている。例えばＨ．２６４／ＡＶＣでは，直近のフレームにオクルージョンが存在する場合は，時間的に少し離れたフレームを参照したほうが予測誤差エネルギーを低減できるため，複数のフレームを参照可能としている。本ツールを複数参照フレーム予測と呼ぶ。
【０００４】
また，複雑な形状の動きにも対応可能とするために，１６×１６および８×８に加えて，１６×８，８×１６，８×４，４×８，４×４というように，ブロックサイズを細かく分割可能としている。本ツールを可変ブロックサイズ予測と呼ぶ。
【０００５】
これらと同様に，参照フレームの整数精度画素から６タップ（ｔａｐ）のフィルタを用いて１／２精度の画素を補間し，さらにその画素を利用して１／４精度の画素を線形補間で生成する。これにより，非整数精度の動きに対して予測が当たるようになる。本ツールを１／４画素精度予測と呼ぶ。
【０００６】
Ｈ．２６４／ＡＶＣよりも符号化効率の高い次世代映像符号化標準方式の策定に向け，国際標準化組織ＩＳＯ／ＩＥＣ“ＭＰＥＧ”やＩＴＵ−Ｔ“ＶＣＥＧ”において，現在世界各国から様々な提案が集められている。その中で特に画面間予測（動き補償）に関連する提案は多くなされており，ＶＣＥＧが主導で作成している次世代映像符号化向けソフトウェア（以下，ＫＴＡ（Key Technical Area）ソフトウェア）には，動きベクトルの符号量を削減するツールや，ブロックサイズを１６×１６以上に拡張するツールが採用されている。
【０００７】
特に，小数精度画素の補間フィルタ係数を適応的に変化させるツールは適応補間フィルタと呼ばれ，ほぼ全ての画像で効果があり，最初にＫＴＡソフトウェアに採用された。ＭＰＥＧとＶＣＥＧで共同で進めている次世代映像符号化標準策定のためのグループＪＣＴＶＣが発行した次世代映像符号化テストモデルの募集(Call for Proposal) に対しての寄書にも，本技術は数多く採用されている。符号化効率向上の寄与が高いため，今後適応補間フィルタの性能改善は非常に期待される領域と言える。
【０００８】
現在，以上のような状況であるが，映像符号化における補間フィルタとしては，従来，次のようなフィルタが用いられていた。
【０００９】
〔固定的補間〕
過去の映像符号化標準方式ＭＰＥＧ−１／２では，図１５（Ａ）に示されるように，１／２精度の画素を補間するために，両隣の２点の整数精度画素（単に整数画素ともいう）から加算平均を用いて補間画素を生成していた。すなわち，２点の整数画素に対して，［１／２，１／２］の平均値フィルタを施していることになる。非常に単純な処理のため，計算複雑度の観点からみると効果的であるが，１／４精度の画素を求める上ではフィルタの性能としては高くはない。
【００１０】
ＭＰＥＧ−４ Part ２も同様に１／２画素精度の画素を平均値フィルタで生成するが，Ａｄｖａｎｃｅｄ  Ｓｉｍｐｌｅ  Ｐｒｏｆｉｌｅ（ＡＳＰ）では，１／４画素精度の動き補償にも対応している。１／２画素の位置は，図１５（Ｂ）に示されるような１次元８タップフィルタを用いて算出する。その後，１／４画素位置は平均値フィルタで導出する。
【００１１】
また，Ｈ．２６４／ＡＶＣにおいては，図１５（Ｃ）に示されるように，１／２画素位置の補間時は，対象となる補間画素の左右３点ずつ計６整数画素を用いて補間を行う。垂直方向については上下３点ずつ計６整数画素を用いて補間する。フィルタ係数は，それぞれ［（１，−５，２０，２０，−５，１）／３２］となっている。１／２画素位置が補間された後，１／４画素位置は［１／２，１／２］の平均値フィルタを用いて補間を行う。一度，１／２画素位置を全て補間して求める必要があるため，計算複雑度は高いものの，性能の高い補間が可能となり，符号化効率向上を導いている。以上の固定的補間フィルタの詳細は，非特許文献１，非特許文献２，非特許文献３に示されている。
【００１２】
〔適応的補間〕
Ｈ．２６４／ＡＶＣでは，入力画像条件（シーケンス種類／画像サイズ／フレームレート）や符号化条件（ブロックサイズ／ＧＯＰ構造／ＱＰ）に関わらず，フィルタ係数値は一定である。フィルタ係数値が固定である場合，例えば，エイリアシング，量子化誤差，動き推定による誤差，カメラノイズといった時間的に変化する効果が考慮されていない。したがって，符号化効率の点で性能向上に限界があると考えられる。そこで，補間フィルタ係数を適応的に変化させる方式が，非特許文献４では提案されており，非分離型の適応補間フィルタと呼ばれている。
【００１３】
本方式では，２次元の補間フィルタ（６×６の計３６フィルタ係数）を考えており，予測誤差エネルギーを最小にするようにフィルタ係数が決定される。Ｈ．２６４／ＡＶＣに用いられている１次元６タップの固定補間フィルタを用いるよりも高い符号化効率が実現できたが，フィルタ係数を求める上での計算複雑度が非常に高いため，その計算複雑度を低減するための提案が，非特許文献５で紹介されている。
【００１４】
この非特許文献５で紹介されている手法は，分離型適応補間フィルタ（ＳＡＩＦ：Separable Adaptive Interpolation Filter ）と呼ばれ，2 次元の補間フィルタを用いるのではなく，１次元の６タップ補間フィルタを用いる。
【００１５】
図１６は，分離型適応補間フィルタ（ＳＡＩＦ）における非整数精度の画素補間方法を示す図である。手順としては，図１６（Ｂ）のＳｔｅｐ１に示すように，まず水平方向の画素（ａ，ｂ，ｃ）を補間する。フィルタ係数の決定には，整数精度画素Ｃ１からＣ６が用いられる。式（１）の予測誤差エネルギー関数Ｅ2 を最小化するような水平方向フィルタ係数が，一般に知られた最小二乗法（非特許文献４参照）により，解析的に決定される。
【００１６】
【数１】
0005524762.tif 000002
【００１７】
ここで，Ｓは原画像，Ｐは復号済み参照画像，ｘおよびｙはそれぞれ画像中の水平および垂直方向の位置を示す。また，〜ｘ（〜はｘの上に付く記号；他も同様）は，
〜ｘ＝ｘ＋ＭＶx − FilterOffset 
であり，ＭＶx は事前に得られた動きベクトルの水平成分，FilterOffsetは，調整のためのオフセット（水平方向フィルタ長を２で割った値）を示している。垂直方向については，〜ｙ＝ｙ＋ＭＶy となり，ＭＶy は動きベクトルの垂直成分を示す。ｗciは求めるべき水平方向フィルタ係数群ｃi （０≦ｃi ＜６）を示す。
【００１８】
式（１）を求めるフィルタ係数と同じ数の一次方程式が得られることになり，最小化処理は，水平方向の各小数画素位置ごとに独立に実施される。この最小化処理を経て，３種類の６タップフィルタ係数群が求まり，そのフィルタ係数を用いて小数精度画素ａ，ｂ，ｃが補間される。
【００１９】
水平方向の画素補間が完了した後，図１６（Ｃ）のＳｔｅｐ２に示すように，垂直方向の補間処理を実施する。水平方向と同様の線形問題を解くことで垂直方向のフィルタ係数を決定する。具体的には，式（２）の予測誤差エネルギー関数Ｅ2 を最小化するような垂直方向フィルタ係数が，解析的に決定される。
【００２０】
【数２】
0005524762.tif 000003
【００２１】
ここで，Ｓは原画像，＾Ｐ（＾はＰの上に付く記号）は復号後に水平方向に補間処理された画像，ｘおよびｙはそれぞれ画像中の水平および垂直方向の位置を示す。また，〜ｘ＝４・（ｘ＋ＭＶx ）で表現され，ＭＶx は丸められた動きベクトルの水平成分を示す。垂直方向については，〜ｙ＝ｙ＋ＭＶy − FilterOffset で表現され，ＭＶy は動きベクトルの垂直成分，FilterOffsetは，調整のためのオフセット（フィルタ長を２で割った値）を示す。ｗcjは求めるべき垂直方向フィルタ係数群ｃj （０≦ｃj ＜６）を示す。
【００２２】
最小化処理は，各小数精度画素ごとに独立に実施され，１２種類の６タップフィルタが得られる。このフィルタ係数を用いて，残りの小数精度画素が補間される。
【００２３】
以上により，合計９０（＝６×１５）のフィルタ係数を符号化して復号側に伝送する必要がある。特に低解像度の符号化については，このオーバーヘッドが大きくなるため，フィルタの対称性を用いて，伝送すべきフィルタ係数を削減している。例えば，図１６ではｂ，ｈ，ｉ，ｊ，ｋの位置は各整数精度画素から中心に位置しており，水平方向であれば，左３点に用いる係数を反転させて右３点に適用できる。同様に，垂直方向であれば，上３点に用いる係数を反転させて下３点に適用できる（ｃ1 ＝ｃ6 ，ｃ2 ＝ｃ5 ，ｃ3 ＝ｃ4 ）。
【００２４】
他にもｄとｌの関係はｈを挟んで対称となっているため，フィルタ係数もそれぞれ反転して利用できる。すなわち，ｄの６係数を伝送すれば，その値をｌにも適用できる。ｃ（ｄ）1 ＝ｃ（ｌ）6 ，ｃ（ｄ）2 ＝ｃ（ｌ）5 ，ｃ（ｄ）3 ＝ｃ（ｌ）4 ，ｃ（ｄ）4 ＝ｃ（ｌ）3 ，ｃ（ｄ）5 ＝ｃ（ｌ）2 ，ｃ（ｄ）6 ＝ｃ（ｌ）1 となる。この対称性は，ｅとｍ，ｆとｎ，そしてｇとｏにも利用可能となる。ａとｃについても同様の理論が成立するが，水平方向は垂直方向の補間にも結果が影響を及ぼすため，対称性は用いずに，ａとｃはそれぞれ別々に伝送を行う。以上の対称性を利用した結果，フレームごとに伝送すべきフィルタ係数は５１（水平方向が１５，垂直方向が３６）となる。
【００２５】
以上，非特許文献５の適応補間フィルタは，予測誤差エネルギーの最小化処理の単位がフレームで固定されていた。１枚のフレームに対して，５１のフィルタ係数が決定される。符号化対象フレームが仮に大きな２種類（もしくは複数種類の）テクスチャ領域に分けられる場合，最適なフィルタ係数はその両者（全てのテクスチャ）を考慮した係数群になる。Ａの領域では本来垂直方向のみ特徴的なフィルタ係数が出ていたとして，Ｂの領域で水平方向のみフィルタ係数が得られるような状況では，その両方が平均化された形でフィルタ係数が導出される。
【００２６】
１枚のフレームにつき１つのフィルタ係数群（５１係数）に限定されずに，画像の局所的性質に応じて，複数のフィルタ係数群を用意して切り替えることで，予測誤差エネルギーの低減を達成し，符号化効率の改善を実現する方法が非特許文献６にて提案されている。
【００２７】
図１７に示されるように，符号化対象フレームが性質の異なるテクスチャを含む場合を想定する。図１７（Ａ）に示すように，フレーム全体として１つのフィルタ係数群を最適化して送る場合，各テクスチャの性質全てを考慮することになる。テクスチャがあまり変わらない場合，全体最適化によるフィルタ係数が最良と考えられるが，相反する性質を有するテクスチャであった場合，図１７（Ｂ）に示すように，テクスチャごとに最適化したフィルタ係数を用いるほうが，フレーム全体の符号量を削減できる。このことから，非特許文献６では，１フレームに対して領域分割により複数の最適化されたフィルタ係数群を用いる方法が考えられている。
【００２８】
領域分割の手法として，非特許文献６では動きベクトル（水平垂直成分，向き）や空間座標（マクロブロック位置，ブロックのｘ座標やｙ座標）を採用しており，様々な画像の性質を考慮して領域分割を実施している。
【００２９】
図１８は，非特許文献６に示されるような，従来の領域分割型適応補間フィルタを用いる映像符号化装置の構成例を示している。
【００３０】
映像符号化装置１００において，領域分割部１０１は，入力した映像信号の符号化対象フレームを，適応的に補間フィルタ係数を切り替える単位となる複数ブロックからなる複数の領域に分割する。補間フィルタ係数切り替え部１０２は，領域分割部１０１により分割された領域ごとに，予測符号化における参照画像に対して用いる小数精度画素の補間フィルタ係数を切り替える。この切り替え対象となる補間フィルタ係数としては，例えばフィルタ係数最適化部１０２１によって最適化されたフィルタ係数を用いる。フィルタ係数最適化部１０２１は，領域ごとに，原画像と補間後の参照画像との予測誤差エネルギーが最小となる補間フィルタ係数を算出する。
【００３１】
予測信号生成部１０３は，参照画像補間部１０３１と動き検出部１０３２とを備える。参照画像補間部１０３１は，参照画像メモリ１０７に格納された復号済み参照画像に，補間フィルタ係数切り替え部１０２が選択した補間フィルタ係数による補間フィルタを適用し，動き検出部１０３２は，補間後の参照画像に対して動き探索を行うことにより，動きベクトルを算出する。予測信号生成部１０３は，動き検出部１０３２によって算出された小数精度の動きベクトルによる動き補償により予測信号を生成する。
【００３２】
予測符号化部１０４は，入力映像信号と予測信号との残差信号を算出し，それを直交変換し，変換係数の量子化などによって予測符号化を行う。また，復号部１０６は，予測符号化の結果を復号し，復号信号を後の予測符号化のために参照画像メモリ１０７に格納する。
【００３３】
可変長符号化部１０５は，量子化された変換係数，動きベクトルを可変長符号化するとともに，領域ごとに補間フィルタ係数切り替え部１０２が選択した補間フィルタ係数を可変長符号化し，これらを符号化ビットストリームとして出力する。
【００３４】
図１９は，従来の領域分割型適応補間フィルタを用いる映像復号装置の構成例を示している。図１８に示す映像符号化装置１００によって符号化されたストリームは，図１９に示す映像復号装置２００によって復号される。
【００３５】
映像復号装置２００において，可変長復号部２０１は，符号化ビットストリームを入力して，量子化変換係数，動きベクトル，補間フィルタ係数群などの復号を行う。領域判定部２０２は，復号対象フレームについて適応的に補間フィルタ係数を切り替える単位となる領域を判定する。補間フィルタ係数切り替え部２０３は，領域判定部２０２により判定された領域ごとに，可変長復号部２０１で復号した補間フィルタ係数を切り替える。
【００３６】
予測信号生成部２０４における参照画像補間部２０４１は，参照画像メモリ２０６に格納された復号済み参照画像に，補間フィルタ係数切り替え部２０３から受け取った補間フィルタ係数による補間フィルタを適用し，参照画像の小数精度画素の復元を行う。予測信号生成部２０４は，小数精度画素の復元が行われた参照画像から，復号対象ブロックの予測信号を生成する。
【００３７】
予測復号部２０５は，可変長復号部２０１で復号した量子化係数の逆量子化，逆直交変換などを行い，それにより算出された予測残差信号と，予測信号生成部２０４が生成した予測信号とを足し合わせて復号信号を生成し，復号画像として出力する。また，予測復号部２０５が復号した復号信号は，後の予測復号のために，参照画像メモリ２０６に格納する。
【先行技術文献】
【非特許文献】
【００３８】
【非特許文献１】原島博, 酒井善則, 吉田俊之: “映像情報符号化”，オーム社, pp.135-136, 2001
【非特許文献２】大久保榮, 角野眞也, 菊池義浩, 鈴木輝彦: “Ｈ．２６４／ＡＶＣ教科書改訂三版”，インプレス, pp.119-123, 2009
【非特許文献３】I. E. G. Richardson, G. J. Sullivan:“H.264 and MPEG-4 VIDEO COMPRESSION”, WILEY, pp.172-175, 2003
【非特許文献４】Y. Vatis, B. Edler, D. T. Nguyen , J. Ostermann:“Motion-and aliasing-compensated prediction using a two-dimensional non-separable adaptive Wiener interpolation filter ”, Proc. ICIP2005, IEEE International Conference on Image Processing, pp.II 894-897, Genova, Italy, Sep. 2005
【非特許文献５】S. Wittmann, T. Wedi: “Separable adaptive interpolation filter for video coding”，Proc. ICIP2008, IEEE International Conference on Image Processing, pp.2500-2503, San Diego, California, USA, Oct. 2008
【非特許文献６】松尾翔平，高村誠之，如澤裕尚: “領域分割機能を有する分離型適応補間フィルタに関する検討”, 電子情報通信学会画像工学研究会, pp.113-116, Nov. 2009
【発明の概要】
【発明が解決しようとする課題】
【００３９】
図１８に示すような映像符号化装置１００が用いる領域分割型適応補間フィルタ（非特許文献６）は，画像の有する局所的性質を考慮して，フレーム内で複数のフィルタ係数群を切り替えることで予測誤差エネルギーを削減して，符号化効率の向上を狙っている。しかし，領域分割を実施する上で動きベクトルおよび空間座標に着目しており，画像のテクスチャ成分を考慮していない。画像の有するエッジ情報は，画像局所性を示す重要な指標の一つと考えられるため，領域分割手法に採用することで，符号化効率の更なる改善が見込めると考えられる。
【００４０】
本発明は，この点に鑑み，参照画像のエッジを特徴量としてとらえて領域分割を行うことにより，フィルタ係数の最適化を行い，残差エネルギーをさらに低減することにより，符号化効率を向上させることを目的とする。
【課題を解決するための手段】
【００４１】
上記目的を達成するための方法として，動きベクトルの指す参照画像が原画像に近いテクスチャ情報を有しているという想定に基づき，その参照画像からエッジ成分を算出して，領域分割を実施する。本手段を用いることで，画像の有するテクスチャ情報を領域分割に利用可能とし，予測誤差エネルギーの低減によって，符号化効率の改善を実現する。
【００４２】
すなわち，本発明は，動き補償を用いる映像符号化方法であって，動きベクトルの指し示す参照画像を取得し，得られた参照画像からエッジ情報を算出する。その算出されたエッジ情報からフレーム内で領域分割を行い，領域単位で小数精度画素の補間フィルタ係数を最適化する。その後，最適化された補間フィルタを用いて小数精度画素の補間を行って符号化を実施する。
【００４３】
また，本発明は，前記映像符号化方法で符号化された符号化ストリームを復号する映像復号方法であって，小数精度画素の補間フィルタ係数を復号し，復号された動きベクトルから得られる参照画像からエッジ情報を算出する。その算出されたエッジ情報を用いて領域判定を行い，領域ごとに小数精度画素の補間フィルタを切り替えて，小数精度画素の補間を行い，復号を実施する。
【００４４】
本発明の作用は，以下のとおりである。従来の領域分割型適応補間フィルタでは，動きベクトルと空間座標を用いた領域分割手法を採用しており，画像のテクスチャ情報を用いた領域分割ができず，画像の局所性を十分に考慮できていなかった。一方，本発明では，画像のテクスチャが与える影響も吸収でき，領域分割機能に柔軟性を持たせ，符号化効率の改善が達成できる。
【発明の効果】
【００４５】
以上のように，本発明によれば，従来の分離型適応補間フィルタでは考慮できなかった，テクスチャ（エッジ）情報を利用した領域分割が可能となり，領域分割の種類に幅を持たせ，画面内の局所性に対する柔軟性を拡張し，予測誤差エネルギーの低減による符号化効率の改善が達成できる。
【図面の簡単な説明】
【００４６】
【図１】映像符号化装置の構成例を示す図である。
【図２】映像符号化処理のフローチャートである。
【図３】エッジ算出処理のフローチャートである。
【図４】エッジ算出処理の具体例を示す図である。
【図５】領域番号の割り振り処理のフローチャートである。
【図６】領域数が２の場合の領域番号テーブルの例を示す図である。
【図７】領域数が４の場合の領域番号テーブルの例を示す図である。
【図８】第２の例によるエッジ算出処理のフローチャートである。
【図９】第２の例によるエッジ算出処理の具体例を示す図である。
【図１０】第２の例による領域番号の割り振り処理のフローチャートである。
【図１１】領域数が３の場合の領域番号テーブルの例を示す図である。
【図１２】領域数が５の場合の領域番号テーブルの例を示す図である。
【図１３】映像復号装置の構成例を示す図である。
【図１４】映像復号処理のフローチャートである。
【図１５】過去の映像符号化標準方式における非整数精度の画素補間方法を示す図である。
【図１６】分離型適応補間フィルタ（ＳＡＩＦ）における非整数精度の画素補間方法を示す図である。
【図１７】従来の適応補間フィルタと領域分割型適応補間フィルタの比較を示す図である。
【図１８】従来の領域分割型適応補間フィルタを用いる映像符号化装置の構成例を示す図である。
【図１９】従来の領域分割型適応補間フィルタを用いる映像復号装置の構成例を示す図である。
【発明を実施するための形態】
【００４７】
以下，図面を用いながら，本発明の実施の形態を説明する。
【００４８】
〔映像符号化装置〕
図１は，本発明に係る映像符号化装置の構成例を示す図である。映像符号化装置１０は，エッジ情報を利用する領域分割型適応補間フィルタを用いて，小数精度画素の補間を行い，小数精度の動き補償によって符号化を行う装置であり，適応補間フィルタを切り替える単位となる領域の分割を，参照画像から検出したエッジ情報を用いて行う点が，図１８に示す従来の映像符号化装置１００と異なる。
【００４９】
映像符号化装置１０において，領域分割部１１は，入力した映像信号の符号化対象フレームを，エッジ計算部１２が算出したエッジ情報を用いて，適応的に補間フィルタ係数を切り替える単位となる複数ブロックからなる複数の領域に分割する。エッジ計算部１２は，動き補償時の参照画像からエッジ情報を抽出する処理を行う。詳しくは後述する。
【００５０】
補間フィルタ係数切り替え部１３は，領域分割部１１により分割された領域ごとに，予測符号化における参照画像に対して用いる小数精度画素の補間フィルタ係数を切り替える。この切り替え対象となる補間フィルタ係数としては，例えばフィルタ係数最適化部１３１によって最適化されたフィルタ係数を用いる。フィルタ係数最適化部１３１は，領域ごとに，原画像と補間後の参照画像との予測誤差エネルギーが最小となる補間フィルタ係数を算出する。
【００５１】
予測信号生成部１４は，参照画像補間部１４１と動き検出部１４２とを備える。参照画像補間部１４１は，参照画像メモリ１８に格納された復号済み参照画像に，補間フィルタ係数切り替え部１３が選択した補間フィルタ係数による補間フィルタを適用し，動き検出部１４２は，補間後の参照画像に対して動き探索を行うことにより，動きベクトルを算出する。予測信号生成部１４は，動き検出部１４２によって算出された小数精度の動きベクトルによる動き補償により予測信号を生成する。
【００５２】
予測符号化部１５は，入力映像信号と予測信号との残差信号を算出し，それを直交変換し，変換係数の量子化などによって予測符号化を行う。また，復号部１７は，予測符号化の結果を復号し，復号信号を後の予測符号化のために参照画像メモリ１８に格納する。
【００５３】
可変長符号化部１６は，量子化された変換係数，動きベクトルを可変長符号化するとともに，領域ごとに補間フィルタ係数切り替え部１３が選択した補間フィルタ係数を可変長符号化し，これらを符号化ビットストリームとして出力する。
【００５４】
〔映像符号化装置の処理フロー〕
図２は，映像符号化装置１０が実行する映像符号化処理のフローチャートである。以下では，特に断りがない限り，輝度信号での処理を仮定して説明するが，本例で述べている画像のエッジ情報を用いて領域分割を行い，領域単位で補間フィルタ係数を最適化して符号化する機能は，輝度信号だけでなく，色差信号にも適用可能である。
【００５５】
まず，ステップＳ１０１では，符号化対象のフレームを入力する。次に，ステップＳ１０２では，入力したフレームをブロック（例えば，１６×１６や８×８といった従来の動き予測のブロックサイズ）に分割し，動き検出部１４２により，ブロック単位で最適な動きベクトルを算出する。ステップＳ１０２における参照画像の小数精度画素の補間には，従来のＨ．２６４／ＡＶＣによる固定６タップフィルタを用いる。
【００５６】
続いて，ステップＳ１０３では，エッジ計算部１２が，ステップＳ１０２にて得られた動きベクトルを用いて，動きベクトルが指し示す参照画像を取得し，エッジ情報を算出する。エッジ情報の算出には，一般に知られているエッジ検出手法（例えば，ソーベルフィルタなど）を用いる。
【００５７】
続いて，ステップＳ１０４では，領域分割部１１が，ステップＳ１０３にて得られたエッジ情報を用いて，ブロックごとに領域判定を行い，領域分割を実施する。領域分割は，例えばエッジの水平成分が大きければＲa1，垂直成分が大きければＲa2というように２種類に分割したり，エッジの大きさも判定材料として，エッジの大きさが閾値Ｔ未満ならエッジなしでＲb1，エッジの大きさが閾値Ｔ以上でかつ水平成分が大きければＲb2，エッジの大きさが閾値Ｔ以上でかつ垂直成分が大きければＲb3というように，３種類に分割することもできる。領域分割数はエッジの定義により，任意の数を設定できる。
【００５８】
以上のエッジ算出処理および領域番号の割り振り処理の詳細については，図３から図１２を用いて後述する。
【００５９】
続いて，ステップＳ１０５では，ステップＳ１０４の領域分割の結果から，フィルタ係数最適化部１３１が，領域ごとに補間フィルタ係数の最適化処理を行う。まず，水平方向の補間フィルタ係数を導出するため，予測誤差エネルギー関数である式（３）を用いて，水平方向の各小数精度画素に対する補間フィルタ係数の最適化処理を行う。
【００６０】
【数３】
0005524762.tif 000004
【００６１】
ここで，αn は各領域を示しており，ｎは領域番号，Ｓは原画像，Ｐは復号済み参照画像，ｘおよびｙはそれぞれ画像中の水平および垂直方向の位置を示す。また，〜ｘ（〜はｘの上に付く記号）は，〜ｘ＝ｘ＋ＭＶx − FilterOffset であり，ＭＶx は事前に得られた動きベクトルの水平成分，FilterOffsetは調整のためのオフセット（水平方向フィルタ長を２で割った値）を示している。垂直方向については，〜ｙ＝ｙ＋ＭＶy となり，ＭＶy は動きベクトルの垂直成分を示す。ｗciは求めるべき水平方向フィルタ係数群ｃi （０≦ｃi ＜６）を示す。
【００６２】
続いて，ステップＳ１０６では，ステップＳ１０５で得られた水平方向の補間フィルタ係数を用いて，フレーム内の各領域ごとに独立して，水平方向の小数画素補間（図１６におけるａ，ｂ，ｃの補間）を実施する。
【００６３】
続いて，ステップＳ１０７では，垂直方向の補間フィルタ係数の最適化処理を実施する。垂直方向の補間フィルタ係数を導出するため，垂直方向の予測誤差エネルギー関数である式（４）を用いて，垂直方向の各小数画素に対する補間フィルタ係数の最適化処理を行う。
【００６４】
【数４】
0005524762.tif 000005
【００６５】
ここで，αn は各領域を示しており，ｎは領域番号，Ｓは原画像，＾ＰはステップＳ１０５にて水平方向に補間処理された画像，ｘおよびｙはそれぞれ画像中の水平および垂直方向の位置を示す。また，〜ｘ＝４・（ｘ＋ＭＶx ）で表現され，ＭＶx は丸められた動きベクトルの水平成分を示す。垂直方向については，〜ｙ＝ｙ＋ＭＶy − FilterOffset で表現され，ＭＶy は動きベクトルの垂直成分，FilterOffsetは調整のためのオフセット（フィルタ長を２で割った値）を示す。ｗcjは求めるべき垂直方向フィルタ係数群ｃj （０≦ｃj ＜６）を示す。
【００６６】
続いて，ステップＳ１０８では，ステップＳ１０７で得られた垂直方向の補間フィルタ係数を用いて，フレーム内の各領域ごとに独立して，垂直方向の小数画素補間（図１６におけるｄ〜ｏの補間）を実施する。
【００６７】
続いて，ステップＳ１０９では，ステップＳ１０８で得られた垂直方向に補間された画像を参照画像として，動き検出部１４２が，再度動きベクトルの算出を行う。
【００６８】
続いて，ステップＳ１１０では，レート歪みコスト（ＲＤコスト）を算出し，保存を行う。
【００６９】
続いて，ステップＳ１１１では，ステップＳ１０５およびステップＳ１０７で得られた最適な補間フィルタ係数を可変長符号化部１６へ送り，可変長符号化部１６がその補間フィルタ係数を符号化する。
【００７０】
続いて，ステップＳ１１２では，予測符号化部１５の出力である量子化後係数値や動き検出部１４２の出力である動きベクトル（ＭＶ），その他の符号化すべき情報を可変長符号化部１６で符号化し，ビットストリームを出力する。
【００７１】
以上のステップＳ１０１〜Ｓ１１２を，全フレームが終了するまで繰り返し，全フレームについての符号化が終了したならば，処理を終了する（ステップＳ１１３）。
【００７２】
〔エッジ算出処理の例１〕
次に，図３および図４に従って，エッジ算出処理の詳細を説明する。図３は，図２で説明したステップＳ１０３（エッジ算出処理）の詳細な処理フローチャートである。図４は，エッジ算出処理の具体例を示す図である。
【００７３】
まず，ステップＳ２０１では，水平フィルタｆx を対象ブロックＢi 全体に施し，マトリクスＭx を計算する。例えば図４に示すように，ブロックＢi に対して，左右に隣接する画素値の差分を算出する水平フィルタｆx を施すことにより，マトリクスＭx が導出される。
【００７４】
ステップＳ２０２では，マトリクスＭx の各成分の和Ｓx を計算する。図４の例では，Ｓx ＝３９が得られる。
【００７５】
次に，ステップＳ２０３では，垂直フィルタｆy を対象ブロックＢi 全体に施し，マトリクスＭy を計算する。例えば図４に示すように，ブロックＢi に対して，上下に隣接する画素値の差分を算出する垂直フィルタｆy を施すことにより，マトリクスＭy が導出される。
【００７６】
ステップＳ２０４では，マトリクスＭy の各成分の和Ｓy を計算する。図４の例では，Ｓy ＝４４が得られる。
【００７７】
ステップＳ２０５では，Ｓx およびＳy からエッジ角度Ｅ＝Ｓy ／Ｓx を計算する。図４の例では，Ｅ＝Ｓy ／Ｓx ＝４４／３９≒１．１２８となる。
【００７８】
ステップＳ２０６では，ステップＳ２０５で算出したエッジ角度から，ブロックＢi に対して，どの領域に属するかを示す領域番号を割り振る。
【００７９】
〔領域番号の割り振り処理の例１〕
図５から図７に従って，領域番号の割り振り処理の詳細を説明する。図５は，図３で説明したステップＳ２０６（領域番号の割り振り処理）の詳細なフローチャートである。
【００８０】
ステップＳ３０１では，エッジ角度Ｅを入力し，領域番号テーブルを照会する。ステップＳ３０２では，領域番号テーブルの照会結果から領域番号を決定する。
【００８１】
領域数は任意に設定可能であり，図６は，領域数が２の場合の領域番号テーブルの例を示している。領域数が２の場合，図６（Ａ）に示すように，エッジが水平であれば「領域１」，エッジが垂直であれば「領域２」に割り振る。すなわち，図６（Ｂ）に示すように，領域番号テーブルには，−１≦Ｅ≦１のときに領域番号が１（領域１），それ以外のＥ＜−１または１＜Ｅのときに領域番号が２（領域２）という定義情報が格納されている。図４の例では，Ｅ≒１．１２８であるので，ブロックＢi は「領域２」と判定されることになる。
【００８２】
同様に図７は，領域数が４の場合の領域番号テーブルの例を示している。領域数が４の場合，例えば図７（Ａ）に示すように，エッジ角度に応じて「領域１」，「領域２」，「領域３」，「領域４」の４つの領域に分類される。すなわち，図７（Ｂ）に示すように，領域番号テーブルには，−０．４１４≦Ｅ＜０．４１４のときに領域番号が１（領域１），０．４１４≦Ｅ＜２．４１４のときに領域番号が２（領域２），２．４１４≦ＥまたはＥ＜−２．４１４のときに領域番号が３（領域３），−２．４１４≦Ｅ＜−０．４１４のときに領域番号が４（領域４）という定義情報が格納されている。図４の例では，Ｅ≒１．１２８であるので，ブロックＢi は「領域２」と判定されることになる。
【００８３】
〔エッジ算出処理の例２〕
エッジ算出処理の他の例について説明する。この例では，エッジ角度の他に，エッジ強度を算出し，エッジ角度とエッジ強度とから領域番号の割り振りを行う。図８は，図２で説明したステップＳ１０３（エッジ算出処理）の第２の例の詳細な処理フローチャートである。図９は，エッジ強度を考慮したエッジ算出処理の具体例を示す図である。
【００８４】
まず，ステップＳ４０１では，前述した図３のステップＳ２０１〜Ｓ２０４と同じ処理によって，エッジ水平成分Ｓx とエッジ垂直成分Ｓy を取得する。図９の例に示すように，Ｓx ＝３９およびＳy ＝４４が求まる。
【００８５】
次に，ステップＳ４０２では，図３のステップＳ２０５と同じ処理によって，エッジ角度Ｅ＝Ｓy ／Ｓx を計算する。図９の例では，Ｅ＝Ｓy ／Ｓx ＝４４／３９≒１．１２８が求まる。
【００８６】
ステップＳ４０３では，ステップＳ４０１で算出したエッジ水平成分Ｓx とエッジ垂直成分Ｓy とを用いて，エッジ強度Ｚを算出する。エッジ強度Ｚは，例えば次式によって算出される。
【００８７】
Ｚ＝（Ｓx 2 ＋Ｓy 2 ）1/2 
Ｓx ＝３９およびＳy ＝４４の場合，図９の例では，Ｚ≒５８．８０となる。なお，エッジ強度は，上の式に限らず，他の式によって定義してもよい。例えば，演算コストを重視する場合には，
Ｚ＝｜Ｓx ｜＋｜Ｓy ｜
というように，エッジ強度をエッジ水平成分Ｓx とエッジ垂直成分Ｓy の絶対値の和として定義してもよい。
【００８８】
ステップＳ４０４では，ステップＳ４０２で算出したエッジ角度Ｅと，ステップＳ４０３で算出したエッジ強度Ｚとから，ブロックＢi に対して，どの領域に属するかを示す領域番号を割り振る。
【００８９】
〔領域番号の割り振り処理の例２〕
図１０から図１２に従って，第２の例における領域番号の割り振り処理の詳細を説明する。図１０は，図８で説明したステップＳ４０４（領域番号の割り振り処理）の詳細なフローチャートである。
【００９０】
ステップＳ５０１では，エッジ角度Ｅとエッジ強度Ｚとを入力し，領域番号テーブルを照会する。ステップＳ５０２では，領域番号テーブルの照会結果から領域番号を決定する。
【００９１】
図１１は，領域数が３の場合の領域番号テーブルの例を示している。この例では，図１１（Ａ）に示すように，エッジが強く，かつ水平であれば「領域１」，エッジが強く，かつ垂直であれば「領域２」，エッジが弱ければ「領域３」に領域番号を割り振る。
【００９２】
エッジ強度の閾値をＺt とする。閾値Ｚt は任意に設定可能である。図１１（Ｂ）に示すように，領域番号テーブルには，−１≦Ｅ≦１かつＺt ＜Ｚのときに領域番号が１（領域１），Ｅ＜−１または１＜Ｅ，かつＺt ＜Ｚのときに領域番号が２（領域２），Ｚ≦Ｚt のときに領域番号が３（領域３）という定義情報が格納されている。例えば閾値Ｚt が３０であるとすると，図９の例では，Ｅ≒１．１２８，Ｚ＝５８．８０であるので，ブロックＢi は「領域２」と判定されることになる。
【００９３】
同様に図１２は，領域数が５の場合の領域番号テーブルの例を示している。この例では，例えば図１２（Ａ）に示すように，エッジが強い場合，エッジ角度に応じて「領域１」，「領域２」，「領域３」，「領域４」の４つの領域に分類され，エッジが弱い場合，「領域５」に分類される。すなわち，図１２（Ｂ）に示すように，領域番号テーブルには，−０．４１４≦Ｅ＜０．４１４かつＺt ＜Ｚのときに領域番号が１（領域１），０．４１４≦Ｅ＜２．４１４かつＺt ＜Ｚのときに領域番号が２（領域２），２．４１４≦ＥまたはＥ＜−２．４１４かつＺt ＜Ｚのときに領域番号が３（領域３），−２．４１４≦Ｅ＜−０．４１４かつＺt ＜Ｚのときに領域番号が４（領域４），Ｚ≦Ｚt のときに領域番号が５（領域５）という定義情報が格納されている。例えば閾値Ｚt が３０であるとすると，図９の例では，Ｅ≒１．１２８，Ｚ＝５８．８０であるので，ブロックＢi は「領域２」と判定されることになる。
【００９４】
エッジ強度の閾値Ｚt は，ここでは任意に設定可能として説明したが，映像符号化装置１０が画像の特徴量または符号化状況に応じて定める場合には，閾値Ｚt を符号化して符号化ビットストリームに含め，映像復号装置へ伝送するようにしてもよい。また，既に符号化して復号した復号画像から閾値Ｚt を定めてもよく，この場合には，映像復号装置でも復号画像から閾値Ｚt を算出することができるので，閾値Ｚt を符号化して伝送する必要はない。例えば，第１０フレーム目の符号化で用いる閾値Ｚt を，既に符号化・復号済みの第１フレームから第９フレームの画像における全ブロックのエッジ強度の平均値として設定する。または領域分割のバランスを考慮し，領域数に応じて，領域数が３の場合には，閾値Ｚt を過去のエッジ強度の平均値の２／３，領域数が５の場合，過去のエッジ強度の平均値の２／５というように定めてもよい。
【００９５】
〔映像復号装置〕
図１３は，本発明に係る映像復号装置の構成例を示す図である。映像復号装置２０は，図１に示す映像符号化装置１０が符号化したビットストリームを入力し，エッジ情報を利用する領域分割型適応補間フィルタを用いて，小数精度画素の補間を行い，小数精度の動き補償によって復号する。参照画像から検出したエッジ情報を用いて領域を判定し，適応補間フィルタを切り替えて小数精度画素の補間を行う点が，図１９に示す従来の映像復号装置２００と異なる。
【００９６】
映像復号装置２０において，可変長復号部２１は，符号化ビットストリームを入力して，量子化変換係数，動きベクトル，補間フィルタ係数群などの復号を行う。エッジ算出部２２は，動き補償時の参照画像からエッジ角度またはさらにエッジ強度等のエッジ情報を抽出する処理を行う。領域判定部２３は，エッジ算出部２２が算出したエッジ情報を用いて，復号対象フレームについて適応的に補間フィルタ係数を切り替える単位となる領域を判定する。補間フィルタ係数切り替え部２４は，領域判定部２３により判定された領域ごとに，可変長復号部２１で復号した補間フィルタ係数を切り替える。
【００９７】
予測信号生成部２５における参照画像補間部２５１は，参照画像メモリ２７に格納された復号済み参照画像に，補間フィルタ係数切り替え部２４から受け取った補間フィルタ係数による補間フィルタを適用し，参照画像の小数精度画素の復元を行う。予測信号生成部２５は，小数精度画素の復元が行われた参照画像から，復号対象ブロックの予測信号を生成する。
【００９８】
予測復号部２６は，可変長復号部２１で復号した量子化係数の逆量子化，逆直交変換などを行い，それにより算出された予測誤差信号と，予測信号生成部２５が生成した予測信号とを足し合わせて復号信号を生成し，復号画像として出力する。また，予測復号部２６が復号した復号信号は，後の予測復号のために，参照画像メモリ２７に格納する。
【００９９】
〔映像復号装置の処理フロー〕
図１４は，映像復号装置２０が実行する映像復号処理のフローチャートである。以下では，特に断りがない限り，輝度信号での処理を仮定して説明するが，輝度信号だけでなく，色差信号にも適用可能である。
【０１００】
まず，ステップＳ６０１では，可変長復号部２１が入力ビットストリームからフレームヘッダの情報を取得する。次に，ステップＳ６０２では，各領域で用いられる補間フィルタ係数を復号する。ステップＳ６０３にて，動きベクトル（ＭＶ）などの各種情報の復号を行う。ステップＳ６０３における各種情報の復号は，従来の一般的な映像復号装置における復号処理と同様である。
【０１０１】
続いて，ステップＳ６０４では，エッジ算出部２２が，ステップＳ６０３で復号された動きベクトルを用いて，参照画像を取得し，その参照画像からエッジ情報を算出する。このエッジ情報の算出は，図３または図８で説明したエッジ算出処理と同様である。
【０１０２】
続いて，ステップＳ６０５では，領域判定部２３が，ステップＳ６０４で得られたエッジ情報からブロック単位で，復号対象ブロックがどの領域に属しているかの判定を実施し，領域情報（領域番号）を取得する。
【０１０３】
続いて，ステップＳ６０６では，補間フィルタ係数切り替え部２４が，ステップＳ６０５で得られた領域番号から，ステップＳ６０２で復号された最適な補間フィルタ係数を選択し，参照画像補間部２５１が参照画像の小数精度画素の復元を行い，小数精度画素の復元後に，予測信号生成部２５が，ステップＳ６０３で復号した動きベクトルを用いて，復号対象ブロックの予測信号を生成する。
【０１０４】
続いて，ステップＳ６０７では，可変長復号部２１が，入力ビットストリームから復号対象ブロックの予測残差信号の復号を行う。
【０１０５】
続いて，ステップＳ６０８では，予測復号部２６が，ステップＳ６０６で得られた予測信号と，ステップＳ６０７で得られた予測残差信号を足し合わせて，復号信号を生成する。生成した復号信号は復号画像として出力するとともに，参照画像メモリ２７に格納する。
【０１０６】
以上のステップＳ６０１〜Ｓ６０８を，全フレームの復号が終了するまで繰り返し，全フレームについての復号が終了したならば，処理を終了する（ステップＳ６０９）。
【０１０７】
以上の映像符号化および映像復号の処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【符号の説明】
【０１０８】
１０  映像符号化装置
１１  領域分割部
１２  エッジ計算部
１３  補間フィルタ係数切り替え部
１３１  フィルタ係数最適化部
１４  予測信号生成部
１４１  参照画像補間部
１４２  動き検出部
１５  予測符号化部
１６  可変長符号化部
１７  復号部
１８  参照画像メモリ
２０  映像復号装置
２１  可変長復号部
２２  エッジ算出部
２３  領域判定部
２４  補間フィルタ係数切り替え部
２５  予測信号生成部
２５１  参照画像補間部
２６  予測復号部
２７  参照画像メモリ
【図１】
0005524762.tif 000006
【図２】
0005524762.tif 000007
【図３】
0005524762.tif 000008
【図４】
0005524762.tif 000009
【図５】
0005524762.tif 000010
【図６】
0005524762.tif 000011
【図７】
0005524762.tif 000012
【図８】
0005524762.tif 000013
【図９】
0005524762.tif 000014
【図１０】
0005524762.tif 000015
【図１１】
0005524762.tif 000016
【図１２】
0005524762.tif 000017
【図１３】
0005524762.tif 000018
【図１４】
0005524762.tif 000019
【図１５】
0005524762.tif 000020
【図１６】
0005524762.tif 000021
【図１７】
0005524762.tif 000022
【図１８】
0005524762.tif 000023
【図１９】
0005524762.tif 000024