本発明の実施の形態について、図2から図12を参照しながら説明する。
図2は、各種の動き情報に含まれるデータのうち、動きベクトルを説明する図である。また、図3から図5は本発明の符号化装置の構成を示す図であり、図6及び図7は本発明の復号装置の構成を示す図である。図8は本発明における補助データのデータフォーマット構成を示す図である。また、図9から図11は、それぞれ符号化の処理フロー、超解像画像生成の処理フロー及び復号の処理フローを説明する図である。図12は、画像符号化処理又は画像復号処理をコンピュータシステムにより実現するためのプログラムを格納するデータ記憶媒体について説明する図である。
本発明における補助データは補助動き情報を有しており、後述するように補助動き情報には低解像動き情報(LR動き情報)、修正超解像動き情報(修正SR動き情報)、高解像動き情報(HR動き情報)がある。なお、以下、「低解像」はLR、「高解像」はHR、「超解像」はSRと適宜省略しつつ説明する。また、「低解像画像(LR画像)」よりも解像度の高い画像を「高解像画像(HR画像)」として説明する。
まず、本発明の実施形態に係る符号化装置10について説明する。
図3は、本発明の実施形態に係る符号化装置10の全体構成を示す。符号化装置10は、画像標本化部302と、ブロック分割部303と、符号化処理部304と、復号処理部305と、データメモリ308と、フレームメモリ307と、データメモリ309と、解像度変換・符号化部306とを備えている。
原画HR画像101は、ローパスフィルタとダウンサンプリング処理部を備える画像標本化部302にて、原画HR画像よりも解像度の低い原画LR画像104に変換される。変換された原画LR画像104は、ブロック分割部303にて、符号化ブロックに分割され、例えば、画像の左上から右下に向かってラスタスキャン順で符号化処理部304に入力される。符号化処理部304は、入力ブロックを動画像符号化し、ビデオ符号化データ120に圧縮する。また、符号化処理部304は、ビデオ符号化データ120を復号処理部305に出力する。復号処理部305は、ビデオ符号化データ120を復号することで、再生LR画像102及び復号動き情報(以下、「DEC動き情報」とする)108を生成する。なお、符号化処理部304は内部に局部復号処理部を有しているため、復号処理部305は、符号化処理部304内の局部復号処理部でも代用できる。
符号化処理部304及び復号処理部305は、生成した再生LR画像102、動き情報(DEC動き情報)108及び量子化パラメータ114を、それぞれフレームメモリ307、データメモリ308及びデータメモリ309に出力する。フレームメモリ307、データメモリ308及びデータメモリ309は、それぞれ再生LR画像102、DEC動き情報108及び量子化パラメータ114を保存すると共に、それらを解像度変換・符号化部306に出力する。なお、ブロック分割、符号化処理及び(局部)復号処理の詳細は、例えば、“MPEG-4 Video Verification Model version 18.0”, Output document of MPEG Pisa Meeting, January 2001(以下、参考文献1とする)に記載されている。
DEC動き情報108は、予測タイプ、動きベクトル(以下、DEC動き情報における動きベクトルを「DECMV」とする)により構成されており、符号化ブロックごとに決定された後に、符号化される。
図2(a)を用いつつ、DEC動き情報の予測タイプ及びDECMVを説明する。予測タイプには、動きベクトルを用いて動き予測を行うインターモードと、動きベクトルを伴わず現フレーム内の符号化済み画素を用いて空間予測を行うイントラモードがある。さらにインターモードには、現フレームのLR画像910に対して表示時刻で過去の符号化済みフレームのLR画像920aを参照画像として時間予測を行う前方向動き予測、未来の符号化済みフレームのLR画像920bを参照画像として時間予測を行う後方向動き予測、その両方の画像を参照画像としてそれぞれ時間予測を行い内挿処理により予測画像を合成する双方向予測がある。図2(a)において、922aは前方向予測の予測ブロック、921aは前方向のDECMV、922bは後方向予測の予測ブロック、921bは後方向のDECMV、924aと924bは双方向予測の内挿前予測ブロック、923aと923bは双方向予測の前方向DECMVと後方向DECMVを示している。
次に解像度変換・符号化部306を図4及び図5を用いて説明する。解像度変換・符号化部306は、解像度拡張処理部310、補助データ生成部351、補助データ符号化・レート制御部311と、フレームメモリ315とを備える。また、補助データ生成部351は、低解像動き補償部312と、超解像動き補償部313と、高解像動き補償部314とを備える。低解像動き補償部312はLR動き情報109(後述)を補助データとして生成し、超解像動き補償部313は修正SR動き情報111(後述)を補助データとして生成し、高解像動き補償部314はHR動き情報112(後述)を補助データとして生成する。
解像度変換・符号化部306は、符号化処理部304及び復号処理部305において生成された複数の再生LR画像と、DEC動き情報(DECMVを含む)と、量子化パラメータとを入力として局部解像度拡張処理を行う。また、解像度変換・符号化部306において、解像度拡張処理部310は局部解像度拡張処理により再生HR画像106を生成し、外部からは原画HR画像101と原画LR画像104が入力される。これらの画像及び情報を用いて、解像度変換・符号化部306は、解像度拡張処理を補助する補助データを生成し、補助データ符号化・レート制御部311において補助データの符号化処理(すなわち、補助データ113の生成)を実施する。
本実施形態では、補助データ113の生成に、再生HR画像106と、SR動き情報(超解像動き情報)110と、量子化パラメータ114と、原画HR画像101と、原画LR画像104とが用いられる。なお、超解像動き情報とは、再生HR画像と複数のLR画像との間の時空間対応を表す動き情報を意味する。
図4を参照しながら、解像度変換・符号化部306の内部構成を説明する。解像度変換・符号化部306の処理は、解像度拡張を施すフレームに表示時刻の前後の3フレームを加えた計7フレームに関わる情報を用いて実施される。つまり、3フレーム先のフレームを符号化した後に、解像度拡張処理を実施する。
本発明の実施形態に係る符号化装置10における解像度拡張処理及び補助データの符号化処理は、7つのステップに分けられる。以下、処理順序に従って動作を説明する。
第1のステップでは、低解像動き補償部312にて、原画LR画像104を用いて、DEC動き情報108を高精度のLR動き情報109に修正する。LR動き情報は、LR画像上のブロック位置情報と補助動きベクトル(以下、LR動き情報における動きベクトルを「LRMV」とする)とにより構成される。低解像動き補償部312は、解像度拡張を施す再生LR画像にその前後の2フレームの再生LR画像(ビデオ符号化の際に動き予測の参照画像)を加えた計3枚の再生LR画像102と、対応する3枚の原画LR画像104と、DEC動き情報108との入力を受けて、LR動き情報109を補助データ符号化・レート制御部311と解像度拡張処理部310に出力する。
図2(b)を用いて、LR動き情報を説明する。LR動き情報には、DECMVを持たないブロックに補助動きベクトル(LRMV)を新たに追加するタイプと、DECMVは存在するがその値を異なる補助動きベクトル(LRMV)に変更するタイプとがある。
LRMVを追加するタイプでは、DECMVを持たないブロック915aについて、解像度拡張を施すフレームの原画LR画像910と前フレームの参照画像である再生LR画像920aとの間で動き検索を実施する。そして、評価値(例えば、ブロック内の画素の二乗誤差和)が最小となる動きベクトルをLRMVとして検出する。図2(b)では、前フレームの再生LR画像920a上のブロック926aが評価値最小となり、対応する動きベクトルLRMV925aが検出されている。なお、最小の評価値が予め設定した閾値より大きい場合には、そのブロックの動きベクトルは有効ではないと判断し、LR動き情報の追加は行わない。最小の評価値が閾値より小さい場合には、検出した動きベクトルをLRMVとするLR動き情報109を補助データ符号化・レート制御部311と解像度拡張処理部310に出力する。
一方、LRMVに変更するタイプでは、DECMVを持つブロック915bについて、解像度拡張を施すフレームの原画LR画像910と参照画像の原画LR画像920bとの間で動き検索を実施する。そして、評価値(例えば、ブロック内の画素の二乗誤差和)が最小となる動きベクトルを検出する。図2(b)では、後方フレームのLR画像920b上のブロック926bが評価値最小となり、対応する動きベクトル925bが検出されている。この動きベクトルとDECMVを比較し、差分値が予め設定した閾値より大きい場合には、検出した動きベクトルをLRMVとするLR動き情報109を補助データ符号化・レート制御部311と解像度拡張処理部310に出力する。
後述するようにDECMVは、SR技術にて検出する複数のLR画像とHR画像間の時空間対応を示す動き情報(SR動き情報)の初期データとして使用される。この初期データが実際の動きに近いほどSR動き情報の検出にかかる時間は削減できる。従って、復号動き情報を修正することで生成された低解像動き情報を用いることで、解像度拡張処理にかかる演算時間を削減できる。
第2のステップでは、解像度拡張処理部310にて、再生HR画像106とSR動き情報110の生成処理を実施する。解像度拡張処理部310は、解像度拡張を施す再生LR画像102に前後3フレームの再生LR画像102(参照再生LR画像)を加えた7枚の再生LR画像と、その符号化に用いたDEC動き情報108とLR動き情報109を入力して、再生HR画像106とSR動き情報110を生成する。
図5は、解像度拡張処理部310の内部構成を示す。最初に初期データ生成部405にて、解像度拡張処理のための初期データを生成する。具体的には、初期データ生成部405は、DEC動き情報108とLR動き情報109とを入力として、解像度拡張処理部310にて検出するSR動き情報110の動きベクトルの初期データを算出する。
ここでSR動き情報について説明する。SR動き情報は、再生LR画像のフレーム番号と動きベクトル(以下、SR動き情報における動きベクトルを「SRMV」とする)により構成される。背景技術において説明したように、SR技術を用いた解像度拡張処理を実施するためには、6枚の参照再生LR画像上の各画素について、再生HR画像を参照画像とした時の動きベクトル(SRMV)を検出する必要がある。また、原画LR画像上の1画素は、原画HR画像上の数画素にローパスフィルタとダウンサンプリングを施すことにより生成できる。
図2(c)を用いて、SRMVを説明する。図2(c)では、1マスが1画素を表している。また、6枚の参照再生LR画像の1枚の再生LR画像920上の画素927に注目すると、画素927は、再生HR画像940の上では、画素927に対応する画素941とその周辺の8画素から構成される画素ブロック942に相当するものと仮定する。この時、画素927の予測画素945は、再生HR画像上の画素ブロック942から9本の動きベクトルにて検出した9画素にて構成される画素ブロック944にローパスフィルタとダウンサンプリングを施すことで算出できる。従って、画素927のSRMV943は、画素927と予測画素945との誤差が最小となる9本の動きベクトルとなる。
本実施形態における初期データ生成部405では、再生LR画像上の1画素の予測に要する9本のSRMVの初期値を6枚の参照再生LR画像上のすべての画素について計算する。図1に示されるように、LR画像は、HR画像にローパスフィルタとダウンサンプリングを施すことにより生成される。そのため、1枚の参照再生LR画像上の全画素と再生HR画像との対応を決めるためには、参照再生LR画像をHR画像サイズに拡大した画像(参照HR画像)上の画素について、再生HR画像との対応点をSRMVの初期値として検出すれば良い。つまり、再生LR画像上の1画素の予測に要する9画素ブロック944の初期SRMVのうち、再生LR画像上の隣接画素の初期SRMVと重なるMVは同じ値となる。
ここで、図2(c)の再生LR画像920を再生HR画像940の直前フレームと考えると、図2(a)及び(b)の再生LR画像920aが画像920に対応し、再生LR画像910が再生HR画像940の解像度拡張前のLR画像に対応する。また、再生LR画像920aを参照画像とした時の再生LR画像910のDECMVあるいはLRMVを逆方向(画像920aから画像910の方向)にたどることにより、画像920a上の画素と画像910との対応点が求まる。この際、一致する対応点がない画素については、動きベクトルの空間内挿処理により対応点を計算する。さらに、対応点に相当するLR画像単位の動きベクトルをHR画像単位の動きベクトルに拡張する。
次に、画像920aの直前フレームの再生LR画像を参照画像とした時の再生LR画像920aのDECMVあるいはLRMVを逆方向にたどることにより、画像920aの直前フレームの再生LR画像上の画素と画像920aとの対応点が求まる。この際、一致する対応がない画素については、動きベクトルの空間内挿処理により対応点を求める。さらに、画像910と画像920aとの間の対応点と画像920aと画像920aの直前フレームとの間の対応点から、画像920aの直前フレームの再生LR画像上の画素と画像910との対応点を計算し、対応点に相当するLR画像単位の動きベクトルをHR画像単位の動きベクトルに拡張する。この処理を、6枚の参照再生LR画像すべてに対して、再生HR画像940から離れる方向に連続的に実施することにより、SRMV検索の初期データを生成する。
次に、超解像画像合成部410にて、再生HR画像106を生成する。超解像画像合成部410は、7枚の再生LR画像102と初期データ生成部405にて生成したSRMV探索の初期データ、ならびに量子化パラメータ114を入力として、動き検索部411によるSR動き情報110の最適化と符号化ノイズ推定部412による再生HR画像106の最適化の反復処理を実施し、SR動き情報110と再生HR画像106を出力する(反復処理を用いた最適化の詳細は、例えば、非特許文献1参照)。
第3のステップでは、超解像動き補償部313において、SR動き情報110を、原画像を用いて高精度の修正SR動き情報111に修正する。超解像動き補償部313は、6枚の参照再生LR画像の原画LR画像104と、解像度拡張処理対象の再生LR画像に6枚の参照再生LR画像を加えた計7枚の原画像である原画HR画像101と、SR動き情報110との入力を受けて、修正SR動き情報111を解像度拡張処理部310と補助データ符号化・レート制御部311とに出力する。
修正SR動き情報は、再生LR画像上のブロック位置情報、参照フレーム番号、ブロックサイズ、補助動きベクトル(以下、修正SR動き情報における動きベクトルを「修正SRMV」とする)により構成される。ブロックサイズは、数画素分を纏めて符号化することにより、補助データの符号量を削減する目的で用いる。修正SR動き情報に属する修正SRMVの数は、ブロックサイズが1×1画素の場合は9個であるが、N×N画素の場合には(2×N+1)×(2×N+1)個となる。
超解像動き補償部313では、6枚の原画LR画像と原画HR画像とを用いて、6枚の参照再生LR画像上の画素と原画HR画像との間のSRMVを検出する。さらに原画LR画像上の対象画素とその予測画素との差分値が予め定めた閾値より大きい場合には、ローパスフィルタとダウンサンプリングによる標本化処理を行わずに原画HR画像間でSRMVを検出する。検出したSRMVと入力されたSRMVとの差分値を指定した数種類の分割ブロック毎に平均値で比較し、差分値が閾値より大きい場合には、検出したSRMVの平均値と構成要素データを修正SR動き情報111として出力する。また、SRMVの差分値が閾値より小さい場合でも、検出したSRMVと入力したSRMVを適用した場合の予測画素と原画LR画素上の画素との差分値のブロック二乗誤差和が閾値より大きい場合には、検出したSRMVの平均値と構成要素データを修正SR動き情報111として出力する。この修正SRMVにより、再生LR画像と解像度拡張するHR画像間の対応点の推定精度が上がり、再生HR画像の画像品質が向上する。また、SRMVの検出にかかる時間が短縮できるため、超解像画像の生成にかかる演算時間が削減される。
第4のステップでは、解像度拡張処理部310にて、再生HR画像106とSR動き情報110を再度調整する。解像度拡張処理部310は、解像度拡張を施す再生LR画像102と前後3フレームの再生LR画像102、ならびに修正SR動き情報111を入力として、再生HR画像106とSR動き情報110を更新して出力する。具体的には、超解像画像合成部410にて、SRMVを修正SRMVに置き換えた後、動き検索部411によるSR動き情報110の最適化と符号化ノイズ推定部412による再生HR画像106の最適化の反復処理を実施し、SR動き情報110と再生HR画像106を更新する(反復処理を用いた最適化の詳細は、例えば、非特許文献1参照)。
第5のステップでは、高解像動き補償部314にて、生成済みの前3フレームの再生HR画像(参照HR画像)と原画HR画像を用いて、再生HR画像の画像品質を更に改善するための動き情報を生成する。高解像動き補償部314は、複数の参照HR画像107、再生HR画像106と再生HR画像の原画像である原画HR画像101を入力とし、参照HR画像107と再生HR画像106間のHR動き情報112を解像度拡張処理部310と補助データ符号化・レート制御部311に出力する。
HR動き情報は、参照HR画像上のブロック位置情報、参照フレーム番号、ブロックサイズ、補助動きベクトル(以下、HR動き情報における「動きベクトル」をHRMVとする)により構成される。
図2(d)を用いて、HRMVを説明する。図2(d)では、再生HR画像940上のブロック946を、直前フレームの参照HR画像950上のブロック952にて更新する場合について、参照HR画像950上でブロック946と空間的に同一位置のブロック951と、更新するブロック952との間の空間的な動きベクトルがHRMV954になることを示している。ブロックサイズは、補数画素分を纏めて符号化することにより、補助データの符号量を削減する目的で用いられる。
高解像動き補償部314では、まず、原画HR画像と再生HR画像とを予め指定した数種類の分割ブロックについて比較し、ブロック内の画素の差分値の二乗誤差和が予め定めた閾値より大きいブロックを検出する。次に、原画HR画像から検出位置のブロックを抽出し、抽出ブロックとの差分値の二乗誤差和が最小となるブロック位置を複数の参照HR画像を対象として探索する。そして、探索の結果得られたブロックと抽出ブロックとの差分値の二乗誤差和が閾値より小さい場合には、対応するHR動き情報112を出力する。この原画高解像画像の情報を利用するHR動き情報により、過去に解像度を拡張した高品質の参照高解像画像を用いて、再生高解像画像の画質を修正することが可能となり、再生HR画像の画像品質が向上する。
第6のステップでは、解像度拡張処理部310にて、再生HR画像106の画質改善処理を実施する。解像度拡張処理部310は、参照HR画像107及びHR動き情報112を入力として、再生HR画像106を更新して出力する。具体的には、図5の画像先鋭化部420の動き補償部421にて、HR動き情報112に基づいて参照HR画像107からブロック画像を1個ずつ抽出し、画質修復部422にて、抽出したブロック画像を再生HR画像に合成する。これをすべてのHR動き情報について実施し、更新した再生HR画像106を出力する。合成方法には、元の再生HR画像上の対応ブロックとの重み付け内挿を用いる。
第7のステップでは、補助データ符号化・レート制御部311にて、補助データ生成部351で生成された補助情報であるLR動き情報109と、修正SR動き情報111と、HR動き情報112とを符号化して補助データ113を生成し、復号装置20へ出力する。
1枚の再生HR画像に関わる補助データのデータフォーマットを図8に示す。補助データ符号化・レート制御部311による符号化の対象となる補助データ113は、1フレーム分の補助データの先頭を検索するためのスタートコード701から始まる。スタートコードには、そのデータパターンが補助データ内で発生しないユニークワードを用いている。同期コード707は、1フレームの補助データを後述するデータタイプ毎に区別するためのユニークワードであり、スタートコード直後は省略する。データタイプ702から動きベクトル705までは可変長符号により符号化する(可変長符号については、参考文献1参照)。
ブロック位置情報703は、参照フレーム番号と画像(LR動き情報及び修正SR動き情報ではLR画像、HR動き情報ではHR画像)上の画素位置を示している。なお、データタイプがLR動き情報の場合には、参照フレーム番号はDEC動き情報から決定されるため、画素位置の情報のみを符号化する。
ブロックサイズ情報704は、上記の画素位置を左上端とするブロックのサイズを示す。動きベクトル密度情報708は、上記のブロック範囲について、符号化する補助動きベクトルの画素間隔を示す。従って、画素間隔が0の場合、つまり、ブロックで符号化する補助動きベクトルが1本の場合を除いては、反復ループ712にて複数の補助動きベクトルが符号化される。動きベクトルは、LRMV、修正SRMVあるいはHRMVのベクトル値を水平成分、垂直成分の順で符号化する。実際に符号化する動きベクトルは予測動きベクトルとの差分ベクトルとする。
LRMVでは、DECMVが存在しないブロックについては、隣接3ブロックの動きベクトル成分の中間値(動きベクトルの中間値予測は、参考文献1参照)、DECMVが存在するブロックについては、DECMVのベクトル値が予測値となる。修正SRMVとHRMVでは、同じデータタイプの動きベクトルについて隣接3ブロックの動きベクトル成分の中間値が予測値となる。
補助データ符号化・レート制御部311は、符号化する情報量が多い場合には、優先順位に従って情報量を削減する。高速化を優先する場合には、LR動き情報、修正SR動き情報、HR動き情報の順で優先し、再生HR画像の画像品質を優先する場合には、HR動き情報、修正SR動き情報、LR動き情報の順で優先する。また、同じデータタイプ内においては、評価値(LR動き情報:DECMVとの差分値、修正SR動き情報:SRMVとの差分値、HR動き情報:参照SR画像からの抽出ブロックと再生HR画像上の対応ブロックとの間の画素単位の二乗誤差和)が大きいブロックを優先する。
続いて、本発明の実施形態に係る復号装置20について説明する。
図6は、本発明の実施形態に係る復号装置20の全体構成を示している。復号装置20は、復号処理部501と、解像度拡張処理部502と、フレームメモリ503と、データメモリ504と、データメモリ505と、フレームメモリ508と、補助データ復号・分離部531とを備えている。
まず、ビデオ符号化データ120は、復号処理部501にて再生LR画像102に復号される。復号された再生LR画像102はフレームメモリ503に、復号された動き情報(DEC動き情報)108はデータメモリ504に、復号された量子化パラメータ114はデータメモリ505にそれぞれ保存され、解像度拡張処理部502からの要求に応じて出力される。復号処理の詳細は、例えば“Text of ISO/IEC 14496-2 Third Edition”, March 2003(以下、参考文献2とする)に記載されている。解像度拡張処理部502は、再生LR画像102、DEC動き情報108、量子化パラメータ114、補助データ113を復号した補助情報(補助データ復号・分離部531により復号及び分離されたLR動き情報109、修正SR動き情報111及びHR動き情報112)及び参照HR画像107(フレームメモリ508から出力される過去に生成された再生HR画像)を入力として、再生HR画像106を生成する。
図7は、解像度拡張処理部502の内部構成及び補助データ復号・分離部531を示す。解像度拡張処理部502は、再生LR画像102、DEC動き情報108、量子化パラメータ114、復号された補助データ113及び参照HR画像107(既に生成されている再生HR画像)の入力を要求するが、この際、再生LR画像とDEC動き情報は、解像度拡張を施すフレームに表示時刻でその前後の3フレームを加えた計7フレームに関わる情報、また参照HR画像は前の3フレーム分の情報を必要とする。つまり、解像度拡張処理は、3フレーム先の再生LR画像を復号した後で実施される。
本発明の実施形態に係る復号装置20における解像度拡張処理は、3つのステップに分けられる。以下、処理順序に従って動作を説明する。
第1のステップでは、LR動き情報109の復号とSRMV探索の初期データ生成を行う。まず、補助データ復号・分離部531にて、解像度拡張対象フレームの補助データ113からLR動き情報109のデータを分離し、可変長復号する。次に、初期データ生成部405は、復号したLR動き情報109と7フレーム分のDEC動き情報108とを入力として、SRMV検索の初期データを生成する。初期データ生成部405の動作については、既に図5にて説明済みのためここでは説明を割愛する。
第2のステップでは、修正SR動き情報111の復号と再生HR画像106の生成を行う。まず、補助データ復号・分離部531にて、解像度拡張対象フレームの補助データ113から修正SR動き情報111のデータを分離し、可変長復号する。次に、超解像画像合成部510は、復号した修正SR動き情報111、7枚の再生LR画像102、SRMV探索の初期データ及び量子化パラメータ114を入力として、再生HR画像106を生成する。具体的には、動き検索部511において、SRMV探索の初期データを修正SR動き情報111によって修正した後、動き検索部511によるSRMVの最適化と符号化ノイズ推定部512による再生HR画像106の最適化の反復処理を実施することで、再生HR画像106を収束させる(反復処理を用いた最適化に関する詳細は、例えば非特許文献1参照)。但し、修正SR動き情報にて修正したSRMVについては、精度の高い値と推定できるため、整数画素以下の実数値の範囲に限定した微調整のみを行う。
第3のステップでは、HR動き情報112の復号と再生HR画像106の画質改善処理を行う。まず、補助データ復号・分離部531にて、解像度拡張対象フレームの補助データ113からHR動き情報112のデータを分離し、可変長復号する。次に、画像先鋭化部520は、HR動き情報112と参照HR画像107を用いて画質改善処理を実施する。具体的には、動き補償部521にて、HR動き情報112に基づいて参照HR画像107からブロック画像を1個ずつ抽出し、画質修復部522にて、抽出したブロック画像を超解像画像合成部510にて生成した再生HR画像123に合成することで再生HR画像106を更新する。これをすべてのHR動き情報について実施し、更新した再生HR画像106を出力する。合成方法には、元の再生HR画像上の対応ブロックとの重み付け内挿を用いる。
図9は、本発明を実施する符号化処理フローを示している。なお、図9の各ステップの詳細は図3、図4、図5の説明と重なるため、ここでは処理の流れのみを説明する。符号化処理開始601の後、処理602では、ローパスフィルタとダウンサンプリングによる標本化処理により、原画HR画像を原画LR画像に変換する。処理603では、変換した原画LR画像をビデオ符号化すると共に、局部復号処理により再生LR画像とDEC動き情報を生成する。処理604では、原画LR画像を用いて、DEC動き情報の少なくとも一部を高精度のLR動き情報に修正する。処理605では、複数フレームのDEC動き情報とLR動き情報を用いて、SRMV検索の初期データを生成する。処理606では、解像度拡張処理により、複数の再生LR画像から再生HR画像とSR動き情報を生成する。処理607では、原画HR画像と原画LR画像を用いて、処理606にて生成したSR動き情報の一部を高精度の修正SR動き情報に修正する。処理608では、SRMVを処理607にて生成した修正SRMVに置き換えて、再度解像度拡張処理を実施し、再生HR画像とSR動き情報を更新する。処理609では、参照HR画像を用いて、対象とする再生HR画像の画像品質を参照HR画像にて改善する参照HR画像と再生HR画像間の動き情報(HR動き情報)を検出する。処理610では、処理609にて検出したHR動き情報と参照HR画像を用いて、再生HR画像の画像品質を改善する。処理611では、処理604にて生成したLR動き情報と処理607にて生成した修正SR動き情報と処理609にて生成したHR動き情報を符号化し、補助データを生成する。処理611が終了した後、符号化処理が終了する(処理612)。
図10は、本発明を実施する復号処理内の超解像画像生成処理フローを示している。なお、図10の各ステップの詳細は図7の説明と重なるため、ここでは処理の流れのみを説明する。超解像度画像生成処理開始801の後、処理802では、LR動き情報を復号する。処理803では、処理802にて復号したLR動き情報と複数フレームのDEC動き情報を用いて、SRMV探索の初期データを生成する。処理804では、修正SR動き情報を復号する。処理805では、処理804にて復号した修正SR動き情報をSRMV探索の初期データとして設定すると共に、修正SR動き情報の更新を整数画素以下の範囲に限定するという条件にてSRMVを探索し、複数フレームの再生LR画像から再生HR画像を生成する。処理806では、HR動き情報を復号する。処理807では、処理806にて復号したHR動き情報に基づいて、参照HR画像から再生HR画像の画像品質を改善する。処理807が終了した後、超解像度画像生成処理は終了する(処理808)。
図11は、本発明を実施する復号処理フローを示している。なお、図11の各ステップの詳細は図6及び図7の説明と重なるため、ここでは処理の流れのみを説明する。復号処理開始901の後、処理902では、符号化ビデオデータを復号し、再生低解像画像とDEC動き情報と量子化パラメータとを生成する。次に、処理903では符号化された補助データの復号を実施し、LR動き情報と、修正SR動き情報と、HR動き情報とを生成する。その後、処理904では、処理903にて復号したLR動き情報と複数フレームのDEC動き情報を用いて、SRMV探索の初期データを生成する。処理905では、処理903にて復号した修正SR動き情報をSRMV探索の初期データとして設定すると共に、修正SR動き情報の更新を整数画素以下の範囲に限定するという条件にてSRMVを探索し、複数フレームの再生LR画像から再生HR画像を生成する。処理906では、処理903にて復号したHR動き情報に基づいて、参照HR画像から再生HR画像の画像品質を改善する。処理906が終了した後、復号処理は終了する(処理907)。
図12は、上記実施形態の画像符号化処理又は画像復号処理のプログラムを格納したフレキシブルディスク等の記憶媒体を用いて、コンピュータシステムにより実施する場合を説明するための図である。
図12(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図12(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16個のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムとしてのデータが記録されている。
また、図12(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしてのデータをフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記符号化あるいは復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
なお、上記説明では、データ記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。またコンピュータとして、CPUを具備しソフトウエアによる処理や制御を行なうDVDプレーヤ、セットトップボックス、携帯電話などを含む。
以上、本発明の実施形態について説明したが、次のような変形を行っても良く、いずれの形態も本発明に含まれる。
(1)機能の部分利用に関する変形例
本発明の補助データを構成する補助動き情報であるLR動き情報、修正SR動き情報、HR動き情報はすべて揃っている必要はなく、その一部の補助動き情報のみを用いて、低解像画像から高解像画像を生成する場合でも同様の効果を得ることができる。
すなわち、本発明の補助データは、原画LR画像よりも解像度の高い原画HR画像と原画LR画像との両者あるいはその一方を用いて生成された場合であっても、画像復号装置及び画像符号化装置における画像間の動き検出の精度が向上し、再生高解像画像の画像品質を向上させることができる。また、画像復号装置及び画像符号化装置における動き探索の処理量が減少するため、画像解像度拡張処理にかかる演算量を軽減させることができる。
具体的には、本発明の画像復号装置及び画像符号化装置によれば、修正SR動き情報のみを補助データとする構成とした場合、修正SR動き情報とHR動き情報とを補助データとする構成とした場合、修正SR動き情報とHR動き情報とLR動き情報とを補助データとする構成とした場合のいずれであっても、上述したような画像品質の向上及び演算量の軽減が実現される。なお、一部の補助動き情報を用いない構成とする場合には、符号化装置10の補助データ生成部351において、その補助動き情報に対応する動き情報の生成を行わないことで実現できる。
また、図5、図7の超解像画像合成処理は、SRMV探索の初期データがなくても実施可能である。したがって、初期データ生成とLR動き情報の符号化を実施しない場合も、本発明の修正SR動き情報とHR動き情報は有効である。
さらに、図5、図7の超解像画像合成処理により生成される再生HR画像は、画像先鋭化処理による再生HR画像の画質改善処理がなくても実施可能である。従って、画像先鋭化処理とHR動き情報の符号化を実施しない場合も、本発明のLR動き情報と修正SR動き情報は有効である。
また、ビデオ符号化データからの復号画像でなくカメラ等の手段を通じて取得した複数の画像や予めハードディスク等の装置に保存されている複数の画像からより解像度の高い超解像画像を生成する場合でも本発明の補助データは有効である。この場合、DEC動き情報は存在しないが、修正SR動き情報とHR動き情報は有効である。
(2)機能の定義の変更に関する変形例
画像先鋭化処理において抽出した参照HR画像上のブロックを再生HR画像に合成する方法は、重み付け合成処理により限定されるものでない。抽出したブロックにて再生HR画像の部分を置き換える場合などでも本発明のHR動き情報は有効である。
また、HR画像からLR画像に変換する際のローパスフィルタの種類は限定されない。図2(c)の説明では、フィルタのタップ数を水平・垂直とも3タップとしているが、長いタップ数のフィルタや係数の異なるフィルタも有効である。加えて、LR画像上の1画素にHR画像上の9画素が対応すると説明しているが、この対応も限定されない。具体的には、対応するHR画像上の画素が1画素あればLR画像上の1画素が生成できるため、フィルタが影響する領域内の画素の一部が欠けていてもよい。さらに図2(c)では、ダウンサンプリングにて切り捨てる画素をフィルタ処理後のHR画像の偶数列及び偶数ラインの画素としているが、これに限定されない。ローパスフィルタ処理にてHR画像上で実数位置のサンプルをLR画像上の画素サンプルとする場合でも、本発明は有効である。
さらに、SRMV探索の初期データ生成方法は、図5にて説明した方法には限定されない。再生HR画像から離れる方向にたどっていく方法ではなく、動きベクトルをフレーム間隔に応じてスケーリングする方法も有効である。
(3)補助データの符号化方法に関する変形例
本発明の符号化の対象となる補助データのデータフォーマットは、図8に限定されるものではない。また、動きベクトルの予測方法も図8にて説明した方法には限定されない。
また、図8のデータフォーマットにて、ブロック位置情報を参照フレーム番号情報とし、画素位置を符号化する代わりに、画像をブロック分割し、左上からラスタスキャン順に符号化する補助動き情報の有無を符号化する方法も有効である。このとき、ブロックサイズ情報は必ずしも必要としない。
さらに、図8のデータフォーマットにて、ブロック位置情報を参照フレーム番号情報とし、さらに、画素位置情報、ブロックサイズ情報、動きベクトル密度情報を符号化する代わりに、画像をブロック分割し、左上からラスタスキャン順に動きベクトルの有無を符号化する方法も有効である。
また、図8のデータフォーマットでは、1フレーム毎にデータタイプの情報を符号化するが、反復ループ713を削除し、補助データ情報内の各ブロックについてデータタイプを符号化する場合も考えられる。このフォーマットでは、1ブロックの補助動き情報毎に同期コードが付加されるため、補助データから特定画素の補助動き情報を検索したい場合には有効である。
さらに、動きベクトルの符号化精度は限定されない。例えば、参考文献2や“Text of ISO/IEC 14496-10 Advanced Video Coding 3rd Edition”, September 2004(以下、参考文献3とする)に記載されている高精度の動きベクトルも有効である。
また、図8の説明では、補助データの構成要素の符号化を可変長符号により行っているが、これに限定されない。参考文献3に記載される算術符号化方法なども有効である。
(4)補助データの構成要素に関する変形例
補助データの構成要素は、上記の実施の形態記載には限定されない。また、図8の補助動きベクトル情報は、2画像間に対応する動きベクトルがないことを示す場合も含まれる。ビデオシーケンスの任意の2画像内の画素が完全に1対1で対応しているという状況は極めて稀であり、対応点がないことを示す情報は有効である。
さらに、図8の補助動きベクトル情報は、ベクトル値ではなく、ブロックサイズ情報にて指定される範囲の動き探索範囲情報である場合も含まれる。この場合、動きベクトル密度情報は省略される。この探索範囲指定により、動きベクトルの検出時間が削減できる。
また、図8の補助動きベクトル情報は、ベクトル値ではなく、回転・拡大・変形などを表す動きパラメータの場合も有効である。動きパラメータ(アフィン変換パラメータ、射影変換パラメータ)の詳細については、参考文献1に記載されている。
さらに、図2(b)では、LR動き情報の予測タイプをDEC動き情報の予測タイプあるいはデフォルト値に限定しているが、その限りではない。この場合、LR動き情報には予測タイプ(前方予測/後方予測/双方向予測など)が含まれる。また、参考文献3に記載される複数参照フレームを用いた動き予測を適用する符号化・復号方式の場合には、DEC動き情報には参照フレーム番号が含まれる。さらに、参考文献3に記載されるように、動き予測を実施するブロックサイズを複数種類から選択できる符号化・復号方式の場合には、DEC動き情報にはブロックサイズも含まれる。この場合、同様にLR動き情報にも、参照フレーム番号とブロックサイズが含まれる。
また、SRMVは、再生LR画像上のすべての画素について求める必要はない。オクリュージョン等の影響により、再生HR画像上により検出できない場合には、その画素を用いずに最適化処理を行う方が有効な再生HR画像が生成できる。
さらに、修正SR動き情報のブロック位置情報は、再生LR画像を基準とした値ではなく、再生HR画像を基準とした値とすることも有効である。この場合で、動き密度情報が1のとき(ブロック内のすべての画素について動きベクトルを符号化する)、ブロック内の画素数と画素単位の修正SRMVの数は一致する。
また、補助動き情報のブロックの形状は任意形状でもよい。この場合、形状情報を符号化してもよい。形状情報の符号化方法には、例えば参考文献2に示される算術符号を使った方法がある。
(5)動き推定方法に関する変形例
上記では、修正SRMVの検出を複数の原画LR画像と原画HR画像との間で実施しているが、原画LR画像ではなく、HR画像を用いて実施する方法もSRMVの精度が向上するので、効果が高い。この場合、ブロック位置情報の画素位置はHR画像上の値となる。
また、上記では、SRMVの検出を複数の再生LR画像と再生HR画像との間で実施しているが、再生LR画像ではなく、参照HR画像を用いて実施する方法もSRMVの精度が向上するので、効果が高い。
(6)全体構成に関する変形例
上記では、ビデオシーケンスの符号化・復号方法を参考文献1及び参考文献2としているが、これに限定されることはない。
また、上記では、解像度拡張方法及び推定モデルを非特許文献1と非特許文献2にて説明しているが、複数の低解像度画像から高解像度画像を生成する技術には、本発明の補助動き情報の符号化とそれを利用した高画質化処理は適用できるため、この方法には限定されない。
さらに、上記では、解像度拡張処理に用いる再生LR画像の数を7枚としているが、この数以外でも本発明は実施できるため、それに限定されない。また、参照HR画像の数も限定されない。
本明細書にて紹介した解像度拡張処理は、1枚の未知の高解像画像と複数の既知の低解像画像との関係を定式化し、それらの式を満足する最適な高解像画像と動き情報を推測する技術であり、非特許文献1ならびに非特許文献2は、統計的な手法を用いて評価関数を満たす最適な高次ベクトルを推定する技術の例である。文献「Sung Cheol Park et. al, “Super-Resolution Image Reconstruction: A Technical Overview”, IEEE Signal Processing Magazine, May 2003」(以下、参考文献4とする)に示されるように、解像度拡張処理には様々な方法があるが、本明細書の補助データは、高解像画像と複数の低解像画像との間の関係を動き情報を用いて表現している場合にはすべて適用できる。非特許文献1や2以外の方法としては、連立方程式を解く方法や、凸集合への投影フレームワーク(projections onto convex sets)を用いた方法(例えば「A.M.Tekalp, M.K.Ozkan and M.I. Sezan, “High-resolution image reconstruction from lower-resolution image sequences and space varying image restoration”, in Proc. IEEE Int. Conf. Acoustics, Speech and Signal Processing (ICASSP), San Fransisco, CA., vol. 3, Mar. 1992, pp. 169-172」、(以下、参考文献5とする))などがある。生成される高解像画像には、既知である複数の低解像画像に対して空間的な解像度が高くなり、複数の低解像画像間の位置あわせと合成処理(たとえば、モザイキング)では発生しない高周波成分が画像上に生成されるという特徴がある。
上記では、図5と図7の符号化ノイズ推定部412の処理において、量子化パラメータ114を入力としているが、量子化パラメータを必要としない符号化ノイズ推定処理においても本発明は実施できる。そのため、本発明の実施は、解像度拡張処理における量子化パラメータの有無は影響されない。
上記では、DEC動き情報108を、予測タイプ、動きベクトル(DECMV)により構成されるとしているが、この構成要素には限定されない。例えば、参考文献3のように複数の再生LR画像を参照画像とする方式では、予測ブロック毎に参照フレーム番号を選択する必要があるため、参照フレーム番号もDEC動き情報に含まれる。
(7)補助データの生成方法
上記の図4における超解像動き補償部313の説明では、原画LR画像上の対象画素とその予測画素との差分値が予め定めた閾値により大きい場合に、修正SRMVの検出に用いる参照画像を原画LR画像から原画HR画像に切り替えているが、原画HR画像の利用はこの方法には限定されない。例えば、原画LR画像を使用せずに、すべての画素について原画HR画像を用いても良い。また、修正SR情報111の出力条件についても、図4の説明では、検出したSRMVとSR情報110に含まれるSRMVとの差分値を指定した数種類の分割ブロック毎に平均値で比較し、差分値が閾値より大きい場合に出力すると規定としているが、この方法には限定されない。例えば、MVの差分値ではなく、検出したSRMVとSRMVを適用した場合の予測値と原画像上の画素との差分値を出力条件として用いても良い。また、分割ブロックのサイズ選択方法も一つの方法には限定されない。さらに、図4の説明では出力する修正SRMVを検出したSRMVのブロック平均値としているが、これに限定されない。例えば、検出MVの平均値ではなく、ブロック内のSRMVを一定値として、ブロック単位で検出しても良い。
低解像動き補償部ならびに高解像動き補償部における補助データ選択方法についても同様に一つの手法には限定されない。
さらに、補助データ符号化・レート制御部における補助動き情報の選択に関わる優先順位ならびに評価方法についても、図4の説明にて示した方法には限定されない。例えば、符号量を考慮に入れた評価方法を用いた場合でも本発明の補助データを利用した解像度拡張処理は有効である。
(8)変形例(5)の実施形態
超解像画像合成部410では、複数枚の再生LR画像102を用いて再生HR画像106と複数の再生LR画像間のSR動き情報110を生成するが、変形例(4)や(5)に示すように、HR画像間の動き推定を用いることにより、SR動き情報ならびに修正SR動き情報の推定精度向上が見込める。そこで、HR画像間の動き推定の実施形態について、図13、図14ならびに図15を用いて詳細に説明する。なお、ここでは、変形例(1)について、解像度拡張処理がSR動き情報のみを要する場合を例として説明する。
図13は、解像度変換・符号化部306の内部構成、つまり図4の変形例を示している。解像度拡張処理部310は、複数の再生LR画像102から再生HR画像106とSR動き情報110の生成する処理部であり、その内部構成を図14に示す。
図14は図5の変形例となる。図の入出力から分かるように解像度拡張処理部310と超解像動き補償部313の構成は図4、図5とは異なっている。つまり、本発明では、SR情報を用いる解像度拡張処理の方法は図5に限定されず、修正SR情報の生成方法も図4に限定されない。図2(c)の説明では、SR情報を再生HR画像と複数のLR画像との間の時空間対応を表す動き情報とした。そのため、図2(c)の例では、LR画像上の1画素に対応するSRMV(修正SRMV)の本数は、HR画像からLR画像に変換する際に用いるローパスフィルタのタップ数により決まる(図2(c)では9本)。しかしながら、SRMVの構成は変形例(4)と(5)で示したように、図2(c)の構成には限定されず、本実施形態ではSR情報は再生HR画像と複数のHR画像との間の時空間対応を表す情報となるため、変形例(4)で説明したようにHR画像上の1画素に対応するSRMV(修正SRMV)は1本となる。
2例の違いを動きモデルの観点から考えた場合、図2(c)のSRMVが図1の動きモデル201と標本化モデル202までを含めて原画HR画像101と複数の原画LR画像102の時空間対応を表しているのに対して、本実施形態のSRMVは動きモデル201の動きベクトル、つまり原画HR画像101と複数の原画HR画像との時空間対応を表している。原画HR画像と原画LR画像は未知であるため、図2(c)では、仮想的に作成した仮想HR画像と再生LR画像からSR情報を生成する。これに対して、本実施形態では、仮想HR画像に加えて、複数の再生LR画像についても仮想的なHR画像を生成し、HR間の動き推定によりSR情報を生成する。従って、2例はSR情報の生成方法が異なっているため、同じ動きモデルに基づいてはいるが得られる結果は異なる。本実施形態によれば、仮想HR画像を適切に選ぶことにより、再生HR画像の品質ならびに処理速度が向上すると考えられる。また、原画HR画像間の動きベクトルを修正SRMVとして活用するため、補助データの導入効果は図2(c)よりも高いと考えられる。
本実施形態では、図13の解像度拡張処理部310は図5の超解像画像合成部410に相当する。解像度拡張処理部310では、図5と同様に複数の再生LR画像102を入力とするが、動き検索部411に入力される前にそれらを画像拡大処理部406にて拡大画像118に変換する。画像拡大処理部406の処理については、本発明では限定しないが、単純な線形内挿処理、B-spline関数を用いたスプライン内挿処理、さらに内挿処理により拡大した画像に非特許文献1に記載されるような画像修復モデルを利用して画質を改善する手法などが考えられる。
解像度拡張処理では、解像度拡張処理部310の処理を反復することにより、再生HR画像の高画質化を図る場合が多い。この場合、解像度拡張対象の再生LR画像について、最初(1回目の反復処理)は、画像拡大処理部406にて生成した拡大画像118を仮想HR画像119として動き検索部411に入力する。そして、仮想的な再生HR画像が生成された2回目以降の反復処理においては、スイッチ407にて、拡大画像118の替わりに、参照HR画像107(仮想的な再生HR画像)を仮想HR画像119として選択して動き検索部411に入力する。参照再生LR画像については、1回目の反復処理の前に、すでに解像度拡張処理により再生HR画像(参照HR画像107)が生成されている場合がある。この場合には、スイッチ407にて、参照HR画像107を仮想HR画像119として選択する。このように参照HR画像107を利用することにより、動き検索部411により生成されるSR情報110の推定精度向上や処理演算時間短縮といった効果が期待できる。
動き検索部411では、2枚のHR画像間の動き推定によりSR情報110を生成する。生成したSR動き情報110は、超解像動き補償部313に入力される、超解像動き補償部313では、SR動き情報110を、原画像を用いて高精度の修正SR動き情報111に修正する。本実施形態では、超解像動き補償部313は、複数(L枚)の参照再生LR画像に対応する原画HR画像に、解像度拡張処理対象の再生HR画像を加えた計(L+1)枚の原画HR画像101と、SR動き情報110との入力を受けて、修正SRMVを検出する。そして、SRMVと修正SRMVの差(あるいはSRMVと修正SRMVを適用したときの予測誤差の差)が大きい領域や、最適なSRMVの検出に多くの演算時間を要する領域について修正SR動き情報111を生成し、解像度拡張処理部310と補助データ符号化・レート制御部311と解像度拡張処理部310に出力する。なお、変形例(7)で示したように、超解像動き補償部313における修正SR動き情報の生成方法は、一つの手法に限定されるものではない。修正SR動き情報は、例えば、参照HR画像(参照再生LR画像をHRサイズに拡大した画像)上のブロック位置情報、参照フレーム番号、ブロックサイズ、修正SRMVにより構成されるものと考えられる。ブロックサイズは、数画素分を纏めて符号化することにより、補助データの符号量を削減する目的で用いる。修正SR動き情報に属する修正SRMVの数は、ブロックサイズがN×N画素のとき1個以上N×N個以下となる。修正SRMVの数は動きベクトル密度情報708などの情報を修正動きベクトル情報に追加することにより復号側に明示できる。
解像度拡張処理部310は、修正SR動き情報111を用いて動き検索部411にてSR動き情報110を更新する。符号化ノイズ推定部412では、解像度拡張を施す再生LR画像102とL枚の再生LR画像102、ならび更新したSR動き情報110を用いて仮想的な再生HR画像106を生成する。このように本実施形態では、解像度拡張処理と超解像動き補償処理を反復することにより、再生HR画像106、SR動き情報110ならびに修正SR動き情報111を最適化する。最適化方法としては、補助データの符号量を定め、その符号量において再生HR画像106と原画HR画像との誤差が最小となるように修正SR動き情報111を調整する方法などが考えられるが、本願では最適化方法は限定しない。なお、符号化側と復号側で同じ再生HR画像106が生成できるように、修正SR動き情報111の最適化後に、修正SR動き情報の適用方法に従って再生HR画像を再生成する必要がある。最適化された修正SR動き情報は、補助データ符号化・レート制御部311にて符号化することにより補助データ113となり、復号装置へ伝送される。
本実施形態においても、変形例(1)で示したようにビデオ符号化データからの復号画像ではなく、複数の画像からより解像度の高い画像を生成する場合でも本発明は有効である。また、変形例(4)に示したように、SRMVはすべての画素について算出する必要がなく、対応点が見つからない画素については、その画素の動きデータを用いずに再生HR画像106を生成する。したがって、本実施形態においても、変形例(4)に説明したように、修正SR動き情報として、対象画素の動きデータを用いないことを示す情報を送ることは有効である。
図15に本実施形態の解像度拡張処理部502の内部構成及び補助データ復号・分離部531を示す。本実施形態では、図15の解像度拡張処理部502は図7の超解像画像合成部510に相当する。
解像度拡張処理部502は、再生LR画像102、復号された修正SR動き情報111および参照HR画像107(既に生成されている再生HR画像)を用いて、再生HR画像106とSR動き情報110を生成する。まず、補助データ復号・分離部531にて、解像度拡張対象フレームの補助データ113から修正SR動き情報111のデータを分離し、可変長復号する。次に、解像度拡張処理部502は、画像拡大処理部406にて拡大画像118を生成する。図14で示したように、拡大画像118と参照HR画像107から予め定めた手順に従って仮想HR画像119を選択する。そして、複数の仮想HR画像119と修正SR動き情報111を用いてSR動き情報110と再生HR画像106を生成する。具体的には、動き検索部511によるSRMVの生成と符号化ノイズ推定部512による再生HR画像106の生成を反復処理により最適化する。
この実施形態では、HR画像間でSR動き情報110の生成を行っているが、参照HR画像が存在しない場合(1回目の反復処理)には、画像拡大処理部の処理を省略し、再生LR画像間で動き推定を実施し、動きベクトル値の内挿処理や零次ホールド法によりSRMVに拡大しても良い。そのため、この実施形態では、反復処理の回数に応じて、修正SR動き情報の構成要素である修正SRMVの意味や数が異なる場合がある。また、原画像間の動き探索ではなく、通常の再生画像間の動き探索にて検出した動きベクトルを修正SR動き情報として、復号側における演算量削減のために伝送する場合も考えられる。
修正SR動き情報の利用方法については、いくつかの手法が考えられ、本願では一つの手法には限定しない。修正SRMVを利用する方法としては、SRMVの動き探索を行わずに修正SRMVを適用する方法、修正SRMVを適用した後、動き探索により再調整を行う方法、そして動き探索の実施により検出したSRMVと修正SRMVから最終的なSRMVを決める方法が考えられる。再調整については、実際に再生HR画像の生成に用いる再生LR画像の違いを考慮して再生HR画像が高品質になるように調整する場合と、ブロック単位で伝送した修正SRMVを画素単位のSRMVに改善する場合や修正SRMVの画素精度をなど改善する場合など、MVの精度を上げる場合が考えられる。2つの動きベクトルから最終的な動きベクトルを決める方法については、修正SRMVが動き探索の実施により検出したSRMVと最終的なSRMVとの差分ベクトルである場合や、修正SRMVと動き探索の実施により検出したSRMVの平均値が最終的なSRMVである場合などが考えられる。即ち、修正SR動き情報が修正SRMVを含み、当該修正SRMVを動きベクトルとして用いる態様でもよいし、修正SR動き情報が修正SRMVを含み、複数の再生画像を用いて中間動きベクトルを検出し、該中間動きベクトルと修正SRMVとの加算処理により動きベクトルを生成してもよい。また、修正SR動き情報が修正SRMVを含み、修正SRMVを動きベクトルの初期動きベクトルとし、複数の再生画像を用いて初期動きベクトルを更新することにより動きベクトルを生成してもよい。
また、修正SR動き情報を利用する際の反復処理への対応についても、いくつかの手法が考えられる。大きく分けると、全ての回数の反復処理に同じ修正SRMVを適用する方法と反復処理の特定の回にのみ適用する方法がある。後者については、演算量の削減のため等の理由により、さらに同じ領域やブロックに反復回に対して異なる修正SRMVを伝送する場合も考えられる。
この変形例では、符号化装置、復号装置について説明したが、図9〜図11に示した処理フローについても、同様に変形は可能である。この場合、図示されないが、図10の超解像処理805にて上記に示した、仮想HR画像119の生成が上記に説明した方法により実施される。また、この変形例の画像符号化処理又は画像復号処理は、図12に説明するように、プログラムによるコンピュータシステムによって実施することが可能である。
(9)参照HR画像の利用に関する変形例
図5と図7では、HR動き情報112を利用して画質先鋭化処理を実施しているが、高解像動き補償部314にてHR補助情報を用いない方法でも、画質先鋭化処理は実施可能である。この場合、複数の参照HR画像107と、符号化ノイズ推定部412(512)が出力した再生HR画像123ならびに画質修復処理にてそれまでに修正した解像度拡張対象画像の仮想的な再生HR画像上の画素データを用いて、動き補償部421(521)にてHRMVを検出する。この際、再生HR画像上の修正済み画素データを利用することにより、探索精度が向上するものと考えられる。例えば、ブロック単位でラスタスキャン順に修正処理を実施した場合、更新した再生HR画像上の現ブロックの上端と左端の更新済み画素を探索に用いることができる。画質修復部422(522)では検出したHRMVを利用して再生HR画像106の画質を改善する。なお、変形例(2)で示したように、画像先鋭化処理において、参照HR画像を用いて再生HR画像の画質を改善する方法は、一つの手法に限定されるものではない。2画像(参照HR画像107とHRMVから生成されるHR画像と仮想的な再生HR画像1123)の画素を部分的に重み付け合成する方法のほかにも、参照HR画像から生成されるHR画像上の画素に置き換える方法や、複数の参照HR画像107と仮想HR画像間のSRMVを用いて再生HR画像の最適化を図る方法などがある。さらに、ここで動き補償部421(521)にて検出したHRMVをHR動き情報112にて修正する方法も画質先鋭化処理の性能を高める方法として有効である。この場合、HR動き情報112に含まれる動きベクトル(修正HRMV)は動き補償部421にて検出したHRMVと最終的なHRMVとの間の差分動きベクトルとなる。また、画質先鋭化処理の方法として、図5と図7に説明したHRMVを用いる方法と、ここで説明した修正HRMVを用いる方法と、HRMVを動き補償部421(521)にて検出する方法などを用意し、HR動き情報の構成要素にその選択情報を含める手段も、画質先鋭化処理の処理効率を高める方法として有効と考えられる。
また、上記では、図5、図7、図14ならびに図15の符号化ノイズ推定部において、複数の再生LR画像102とSR動き情報110を用いて再生HR画像123(図14と図15では106)の最適化を実施しているが、生成済みの再生HR画像が存在するフレームについては、再生LR画像102の替わりに参照HR画像107を用いることも有効である。この場合、再生HR画像107が図5と図14の符号化ノイズ推定部412ならびに図7と図15の符号化ノイズ推定部512に入力される。なお、この変形例では、図1において、標本化モデル202を省略したモデルを想定すれば良い。動きモデル201については、図14と図15の説明で示した仮想HR画像間のSRMVが利用できる。
(10)補助データの構成要素の利用方法に関する変形
構成要素のデータはすべて伝送する必要はなく、符号化側と復号側で一意に決まる情報については伝送する構成要素から除外できる。例えば、符号化側と復号側が同時に有する画像の特徴などの情報を用いて、構成要素の一部を規定できる場合には、その要素データの伝送は省略できる。構成要素のデータの組み合わせにおいて、必要のないデータについても、伝送する構成要素から除外できる。例えば、ブロック毎に補助動きベクトルを伝送するかしないかを示す方法を適用するときには、ブロック位置情報を伝送する必要はなく、状況に応じて補助動きベクトルの伝送も必要としない。また、変形例(4)に説明したように、任意の領域やブロックのSRMVが再生HR画像の生成に有効でないことを示す場合にも、修正SRMVの伝送は必要ない。さらに、符号化側と復号側の暗黙のルールに基づいて構成要素の一部のデータの伝送を抑制する方法ではなく、構成要素にどのデータの伝送を行うか示すモード情報を含め、明示的に伝送する構成要素を示す方法もある。
補助データを伝送する方法として、構成要素のデータをシーケンス単位、フレーム単位、スライス単位(複数のブロックにて構成)、ブロック単位等に分けて階層的に伝送する方法も符号量を削減するために有効な手段である。つまり、構成要素のデータをその役割に応じて階層的に伝送することにより符号量が削減できる。この場合、上位の階層で伝送されている情報は下位では伝送する必要はない。例えば、ブロックサイズをフレーム単位の補助情報として伝送している場合には、ブロック単位での補助動き情報では、その情報を送る必要はない。この場合も、ブロック単位で伝送する構成要素のデータをいくつかの伝送パターン(構成要素データの異なる組み合わせ)や伝送グループ(構成要素データの分類)に分割し、伝送パターンや伝送グループの組み合わせに応じたモード情報を明示的に復号側に示す方法が有効である。さらにモード情報をスライス単位やフレーム単位の情報として伝送する方法もあり、領域やフレーム単位での画像の傾向の変化を反映した制御を行う方法として有効と言える。
別の補助データ伝送方法としては、構成要素のデータをその局所性に応じていくつかのグループに分け、各グループの構成要素の値を変更するかしないかを示す情報を伝送する方法がある。この方法により、補助データの符号量を削減できると考えられる。変更しないグループのデータについては、直前に伝送した値やデフォルトの値を適用するという決まりを予め定めておく。変更するグループの構成要素のデータは補助データとして伝送する。
変形例(4)に示したようにLR動き情報、修正SR動き情報ならびにHR動き情報の構成要素は限定されない。例えば、LR動き情報、修正SR動き情報ならびにHR動き情報の種別(データタイプ702)をブロック単位で伝送する方法も考えられる。また、変形例(8)や上記で説明したように、補助動き情報の構成要素のデータの組み合わせや伝送方法を明示するモード情報も構成要素の変形例に含まれる。このモード情報の伝送方法は修正SR動き情報に限定されるものではなく、LR動き情報やHR動き情報についても適用できる。
さらに、変形例(8)で示した修正SR動き情報の利用方法を構成要素のデータとして明示的に示す方法も有効であり、復号側における処理を、原画像を用いて符号化側にて求めた情報に従って、効率良く実施することが可能となる。この補助動き情報の利用方法についても修正SR動き情報に限定されるものではなく、LR動き情報やHR動き情報の利用方法に関しても同様に適用できる。利用方法の情報には、補助動き情報の適用方法(デコーダにおける動き探索を行わずに補助動き情報を反映、または補助動き情報をデコーダにて調整する)、調整する場合の調整方法(さらに細かい単位の動きベクトルを生成、動きベクトルの画素精度を調整)が含まれる。また、変形例(8)で説明した反復処理への対応を示す情報(すべての反復処理に補助動き情報を適用、特定の反復回数の処理にのみ適用)や反復処理の特定回を示す情報も含まれる。補助動き情報の利用方法を示す方法としては、補助動き情報の利用目的(演算量の削減、再生HR画像の高品質化)を示す情報を受信側に伝送することにより受信側における処理を変更する方法も考えられる。
一方、動きベクトル密度情報707については、受信側に伝送せず、動きベクトル数を示す方法やブロックサイズ情報に応じて一意に決まる方法が別例として考えられる。
さらに、LR動き情報については、DECMVを持たないブロックにLRMVを新たに追加する方法と、DECMVは存在するがその値を異なるLRMVに変更する方法とがあるため、このLRMV利用情報をDECMVから生成するのではなく、明示的に伝送することも考えられる。この場合、ブロックサイズを構成要素に含めることにより、さらに精度の高い動き情報を解像度拡張処理のために提供することが可能となる。
HR動き情報の変形例としては、まず、動き推定の方法がある。再生HR画像間(変形例(9))にて実施するか、原画HR画像を用いて実施するかの適応選択とし、動き推定方法をHR動き情報の構成要素のデータとして伝送することにより、HR動き情報の符号量削減と再生HR画像の画質の最適化を図ることが可能となる。また、画質改善修復処理(参照HR画像を用いて再生HR画像の画質を改善する処理)についても、重み付け合成する方法や参照HR画像に置き換える方法などいくつかの候補があるため、合成方法を示す情報を明示的に伝送することにより再生HR画像の画質改善が期待できる。
SR動き情報についても変形が考えられる。例えば、SRMVは、図5ではLR画像とHR画像の時空間対応を示すデータであるが、図14では、HR画像間やLR画像間の時空間対応を示すデータを表しており、表現方法が異なる。この違いを解像度情報としてフレーム単位やブロック単位で明示的に伝送することにより局所的な特徴に応じた画質改善が可能となり、画質の更なる改善に繋がる。そこで、修正SR情報の構成要素にこの情報を追加し、修正SRMVの変わりに伝送するということにより、修正SRMVを伝送しなくても、SRMVの検出精度を高めることが可能となる。また、図14や図15に示したように、SRMVの検出に用いる仮想HR画像の候補には、拡大画像と参照HR画像があり、いずれかを選択できる。仮想HR画像の種類を明示的に選択するための参照画像情報を修正SR情報の構成要素に追加することによっても、SRMVの検出精度の向上が見込める。この際にも修正SRMVの伝送は不要である。
修正SR動き情報の変形例については、上記に示した以外に修正SRMVの解像度情報(LR画像レベルのMVかHR画像レベルのMVか)が考えられる。このデータを伝送することにより、領域の局所的な特徴に適した解像度を明示的に示すことが可能となる。また、有効な反復処理回数を明示的に示すことにより、指定した反復回数以降では、その領域のSRMVを再探索する必要がないことを受信側に伝える場合が考えられる。この情報により、無駄な動き探索処理が抑制できる。
(11)補助データの応用
ここまでは、修正SRMV等の補助動きベクトルを中心に補助動き情報の伝送ならびに補助動き情報説明してきた。この場合は、有用な動きベクトルを受信側に知らせることによって、受信側は、より高品質な再生HR画像を生成することが可能となる。一方、解像度拡張処理部にて生成するSRMV等の動きベクトルに着目すると、動きベクトルの生成に必要な条件、例えば動き探索を実施するための方法と条件は受信側にて予め定めた決まりにより実施している。以下、動き探索を例に説明する。この動き探索には、画像の各種特徴に適した数多くの方法があるが、検索した動きベクトルを受信側に伝送する場合は、動き探索のための好ましい方法ならびに条件を、原データを用いて送信側にて決めることができる。しかしながら、解像度拡張処理のように復号済み画素データを用いて動き探索を行う場合には、原データを持たない受信側にてその方法や条件を決める必要がある。そこで、ここでは、原データを有する符号化側にて、動き探索のための好ましい方法と条件の選定を実施し、その情報を受信側に補助動き情報として伝送する方法について示す。この方法も、原データを用いて、動きベクトルの精度を向上する効果ならびに動きベクトルの検出に要する時間を短縮する効果があるため、再生HR画像の高品質化ならびに高効率化の有効な手段と考えられる。また、再生HR画像を以降の処理に利用するためには、符号化側と受信側が同じ再生HR画像を生成する必要があるため、動き探索の方法と条件は符号化側と受信側で共有する必要がある。共有のためには、符号化側と受信側で予め動き探索の方法や条件を決めておく方法もあるが、ここに示したように、補助動き情報として伝送することにより、画像の局所性に応じた演算量の削減やHR画像の高画質化が可能となる。
動き探索の方法や条件(以降、動き探索条件情報と呼ぶ)の種類や数については、本明細書では限定しない。その種類の例については、探索範囲や動き探索手法などがあるが、詳しくは後述する。動き探索条件情報の生成方法を図13にて説明する。図示しないが、この場合、再生HR画像106は超解像動き補償部313にも出力されると考える。超解像動き補償部313は、動き探索条件情報の候補を修正SR動き情報111に含めて解像度拡張処理部310に入力する。解像度拡張処理部310では、修正SR動き情報111に含まれる動き探索条件情報に従ってSR動き情報110と再生HR画像106を生成する。超解像動き補償部313は再生HR画像106と原画HR画像を用いて動き探索条件情報を評価(例えば、評価値は絶対値誤差和)する。この処理を複数の動き探索条件情報の候補に対して実施し、評価結果が最適となる条件情報を選択する。なお、動き探索条件情報の生成方法の決定方法は、この方法に限定されない。例えば、再生HR画像と原画HR画像の比較ではなく、解像度拡張処理部にて生成されたSRMVと、超解像動き補償部313にて生成する修正SRMV111を比較し、その差が最小となるときの動き探索条件情報を選択する方法も有効である。この場合は、再生HR画像106を超解像動き補償部313に出力する必要はない。
動き探索条件情報の伝送方法については、動きベクトル情報と同様にいくつかの方法が考えられ、フレーム単位やブロック単位に分けて階層的に伝送する方法も符号量削減のために有効な手段である。伝送するデータについては、数値をそのまま伝送する方法や、いくつかの候補を用意し、選択情報を伝送する方法が考えられる。数値を伝送する方法は、自由度は高いが、その一方で符号量の増大にも繋がる。そのため、シーケンス単位やフレーム単位などまとまった単位で伝送する場合には活用可能な方法と考えられる。ブロック単位や画素単位で伝送する場合には、基本的には候補から選択する方法を適用する。
ここで、補助動きベクトルと、動き探索条件情報を利用する解像度拡張処理に適用する方法について説明する。本変形例のように補助動き情報が動き探索条件情報を含む可能性のある場合、画像領域内の局所的な処理としては、利用できる補助動きベクトルならびに動き探索条件情報により、異なる処理を実施する必要がある。
補助動き情報が、補助動きベクトルを含み、動き探索条件情報を含まない場合には、解像度拡張処理部は復元した補助動きベクトルを利用して、その領域(ブロック)のSRMV(HRMV)を検出し、再生HR画像を生成する。利用方法の詳細は、変形例(8)の修正SRMVの利用方法のところで説明済みのため、ここでは省略する。補助動きベクトルの復元方法としては、図8の説明にて示したように、予め定めた方法により求められる予測動きベクトルと補助データの復号により得られる差分動きベクトルとを加算する方法が一般的であるが、変形例(3)で示したように本願では限定しない。例えば、復号した動きベクトルが予め定められた方法により検出されたSRMV(HRMV)と最終的なSRMV(HRMV)との差分動きベクトルである場合には、そのまま符号化しても符号量は少ないため、予測処理は省略できる。なお、補助動きベクトルの利用方法を複数用意している場合の選定方法については、選定情報を補助動き情報として伝送することにより、適用方法を明示的に伝える方法や、条件(例えば、補助動き情報における構成要素のデータの値)に応じて一意に決まる方法などがある。
補助動き情報が、動き探索条件情報を含み、補助動きベクトルを含まない場合には、解像度拡張処理部は、復号した動き探索方法や条件に従って、その領域(ブロック)のSRMV(HRMV)を検出し、再生HR画像の生成に利用する。この際、復号した動き探索条件情報に必要とされるすべての情報が含まれていない場合には、その情報については、予め定めた値を適用する。例えば、予め定めた値よりも小さい探索範囲で十分な場合には、探索範囲の情報を送ることにより、動き探索に要する演算量を削減できるという効果がある。
また、補助動き情報が、動き探索条件情報を含み、補助動きベクトルを含まない場合の別例としては、予め定めた動き探索の条件情報に従ってSRMV(HRMV)を検出した後、復号した条件情報に従って検出したSRMV(HRMV)を修正する方法や、以前の反復処理により検出したSRMV(HRMV)を、復号した動き探索条件情報に従って修正する方法などが考えられる。例えば、SRMV(HRMV)を修正するための小さな探索範囲を伝送することにより、演算量と探索性能のバランスを取るなどの効果がある。なお、動き探索条件情報の利用方法の候補が複数ある場合の選定方法については、選定情報を補助動き情報として伝送することにより、適用方法を明示的に伝える方法や、条件(例えば、補助動き情報における構成要素のデータの値)に応じて一意に決まる方法などがある。
補助動き情報が、補助動きベクトルと動き探索条件情報を共に含む場合には、動き探索条件情報に従って検出したSRMV(HRMV)と復元した補助動きベクトルから最終的なSRMV(HRMV)を決める方法がある。この場合の例には、補助動きベクトルが動き探索条件情報に従って検出したSRMV(HRMV)と最終的なSRMV(HRMV)の差分ベクトルである場合が含まれる。例えば、動き探索条件情報はフレーム単位やスライス単位などの大きな領域単位で切り替え、ブロック単位以上の精度が必要となる動きベクトルについては、推定値からの差分値のみを符号化することにより符号量を削減できる。動きベクトルのばらつきが大きく隣接領域の動きベクトルを用いた動きベクトル予測の性能が悪い領域には有効である。また、動き探索条件情報に従って少ない演算量で大雑把な動きベクトルを検出し、それを差分動きベクトルと加算するという手順により、動き探索の演算量を削減できるという効果もある。
補助動き情報が、補助動きベクトルと動き探索条件情報を共に含む場合の別例としては、復元した補助動きベクトルを動き探索条件情報に従って修正し、修正した補助動きベクトルを最終的な動きベクトルとする方法がある。この方法によれば、補助動きベクトルを広い領域(ブロック)に対して伝送し、動き探索条件情報に従って、伝送した補助動きベクトルをより狭い領域(ブロックや画素)の動きベクトルに修正することが可能となる。そのため、符号量を削減することが可能となる。さらに、SRMV(HRMV)を補助動きベクトルにて修正したのち、修正SRMV(HRMV)を動き探索条件情報に従って再調整する方法もある。
補助動きベクトルならびに動き探索条件情報の有無については、変形例(10)の前半に示したようなモード情報として明示的に示す方法などが考えられる。また、動き探索条件情報に含まれる方法や条件等のパラメータについても、それぞれ階層的な伝送を用いることで符号量が削減できる。
補助動き情報が、補助動きベクトルも動き探索条件情報も含まない場合もあるので、その場合の解像度拡張処理の手順の例を説明する。一つには、補助動き情報が、その領域(ブロック)の動きベクトルが再生HR画像の生成に有効でないことを示す情報を含む場合である。この場合には、解像度拡張処理部は、その領域(ブロック)のSRMV(HRMV)の動き探索を実施せず、その領域のSRMV(HRMV)を用いずに再生HR画像を生成する。上記非特許文献1(図1のモデル)を例とすると、マトリックスC(d_lk)について、使用不可とする動きベクトルの替わりに、隣接画素の動きベクトルを用いて内挿処理により生成した動きベクトルで代用する方法や、マトリックスHについて、使用不可とする動きベクトルに対応するフィルタ係数を0とした上で、使用不可とした動きベクトルに関連する画素に対応するフィルタ係数を調整する方法がある。また、補助動きベクトルも動き探索条件情報も含まない別のケースとしては、補助動き情報が、その領域(ブロック)のSRMV(HRMV)の更新処理が有効となる反復処理の回数を含む場合がある。この場合には、解像度拡張処理部は、指定された回数以降の反復処理では、その領域のSRMV(HRMV)を再探索せずに、再生HR画像の生成を実施する。
以下に、動き探索に必要な条件の例を示す。
a)動き検出方法
図2では、動き検出方法としてブロックマッチング法を用いて説明したが、動き探索方法には勾配法(例えば、特許第3271369号(参考文献6とする))、画素マッチング法(例えば、特許第2934151号(参考文献7とする))、テンプレートマッチング法(例えば、特開平1−228384(参考文献8とする))など複数の手法がある。これらの手法の有効性は、画像内の領域の特徴によって異なるため、適した手法を復号側に動き探索の条件として通知することにより、復号側での動き検出の性能が向上するものと期待できる。
b)探索範囲と探索中心
動きの探索を行う際、画像全体を探索すると莫大な演算量を要するため、通常は探索範囲を設け、その範囲内を探索する。好ましい探索範囲は、画像領域の特徴に応じて異なるため、その条件が探索結果にもたらす影響は大きい。従って、適切な探索範囲を復号側に明示的に伝送することにより、無駄のない動き探索が可能となる。また、探索範囲の中心を適切に設定することにより、探索範囲を小さくすることが可能となる。従って、探索中心を決める方法を復号側に明示的に伝送することにより、復号側での動き探索に伴う処理効率を高めることが可能となる。動き探索中心を決める方法としては、例えば、隣接する領域の動き探索結果から推測される動き量を利用する方法や動き量0を探索中心とする方法などがある。図16にブロックマッチングの例を示す。図ではa100を現フレーム、a101を探索対象ブロックとし、a200を参照フレーム、ブロックa101と空間的に一致するa201を参照フレーム上のブロックとする。a202はa101の隣接ブロックの動きベクトルであり、ブロックa101の探索中心a204を設定するために用いる。探索範囲a206を探索中心a204の周囲に設定し、探索範囲内を探索することにより、動きベクトルa203と予測ブロックa205を検出する。探索中心を決めるための動きベクトルとしては、ブロックa101の左、上、右上の3ブロックの動きベクトルを候補として、各成分の中央値から構成される動きベクトルがエンコーダにおける動き探索では頻繁に用いられる。
c)探索ブロックサイズ
動き探索を実施する単位についても、画像領域の特徴によって適したサイズは異なる。例えばブロックマッチングの場合、複数の探索ブロックサイズを用意し、シーケンス単位、フレーム単位、スライス単位あるいはブロック単位(探索ブロックサイズよりも大きい)で探索ブロックサイズを復号側に伝送することにより、動き探索の精度は向上する。また、動き探索をブロック単位でなく、任意形状を単位として行う場合もある。この場合には、形状情報(三角パッチなど)や領域分割の方法などを伝送する。
d)動き探索方法
動きの探索を行う際、探索範囲内全体を探索すると多くの演算量を要するため、探索範囲内を間引き探索する場合が考えられる。そこで、動き探索の方法を復号側に明示的に伝送する機能を設けることにより、演算量と探索性能を調整することが可能となる。動き探索方法としては、探索範囲内をまんべんなく探索する全探索、縦横数画素間隔で探索を行ない、検索された位置の周辺をさらに狭い画素間隔で探索するという手順で動きを絞り込んでいく木探索などがある。また、探索範囲内を1回で探索するのではなく、大きな探索範囲を大きなブロックサイズで探索し、その結果に従って探索中心を定め、より小さな探索範囲を小さなブロックサイズで探索するという階層探索も演算量を削減する手法として有効である。なお、この階層探索では、探索範囲と探索ブロックサイズを階層数に応じて伝送する必要がある。
e)探索順序
動き探索を実施する際の探索順序については、動き探索の範囲内を左上から右下に向かってラスタスキャン順に探索する方法や、動き探索範囲の中心から外に向かってスパイラル順に探索する方法などいくつかの方法がある。探索順序を復号側に明示的に伝送することにより、符号化側と復号側で同様の結果が得られるようになる。また、高速化のために探索を中止する条件を設ける場合がある。この探索中止条件(予測誤差の閾値など)についても明示的に復号側に示すことにより、復号部の動き探索に要する演算時間を削減することが可能となる。
f)動き検出精度
動き探索における動き検出精度についても、複数の1画素精度、1/2画素精度、1/4画素精度さらに1/8画素精度など複数の精度がMPEG等の標準方式にて実際に用いられている。この探索精度も復号側に伝送することにより、演算時間と画質の最適化を図ることが可能となる。また、実数画素の生成方法についても、その方法を復号側に伝送することにより、画質の最適化を図ることが可能となる。
g)評価関数
動き探索を行う際の評価関数としては、予測誤差信号のブロック絶対値和、同じく二乗誤差和、予測誤差信号の絶対値和と動きベクトル符号量から算出される評価値など、複数の方法が用いられる。評価関数についても、原データを有する符号化側で選択し、復号側に伝送することにより、演算時間と動き探索性能の最適化を測ることが可能となる。これ以外にも、動きモデル(平行移動モデル、アフィン変換モデル、射影変換モデル)、動き探索方法(前方向、逆方向)など様々な条件がある。
ここまでは、解像度拡張処理を前提に動きベクトルの生成に必要な条件を符号化・伝送する方法について示したが、動きベクトルの生成に必要な条件を受信側に伝送するという手順は、受信側にて動きベクトルを生成する装置やソフトウエアには、限定なく適用可能である。例えば、動きベクトルを復号側にて生成するビデオ符号化などに適用可能である。図16は、ビデオ符号化方式において、復号済みの画素データを用いて復号側で動きベクトルを探索する方法を説明している。a200は復号済みの前フレーム、a100は符号化対象の現フレームを示している。a100はブロック単位で左上から右下に向かってラスタスキャン順に符号化され、図は、a103の領域のブロック(7ブロック)が符号化・復号済みであることを示している。ブロックa101の動きベクトルを探索する際、復号済み領域の復号画素データからテンプレートa108を構成し、テンプレート内の誤差和が最小となる領域a208を検出する。このとき、a203が動きベクトルとして検出され、ブロックa205がブロックa101の予測ブロックとなる。符号化側では、符号化ブロックa101と予測ブロックa205の誤差ブロックを符号化し、動きベクトルは符号化しない。復号側では、符号化側と同じ条件で動き探索を行い動きベクトルを検出する。そして、復号側にて検出した動きベクトルに従って生成した予測ブロックと復号した誤差ブロックとを加算することにより、符号化ブロックの再生値を求める。従って、このように復号側にて動きベクトルに関連する情報を生成する処理を含むビデオ符号化においても、原データを有する符号化側にて動き探索を実施する条件を決め、その条件を復号側に伝えることにより、符号側における動き探索の性能を高めることが可能となる。動きベクトルの生成に必要な条件の符号化方法については、階層的な伝送方法が有効である。図20は一般的なビデオ符号化のデータ構造を示している、一般的なビデオデータは、シーケンス全体の符号化条件を示すシーケンスヘッダb11、フレーム単位の符号化条件を示すフレームヘッダb12、スライス単位の符号化条件を示すスライスヘッダb13、動きベクトルや予測方法などのブロック単位の符号化条件を示すブロックヘッダb14、そして予測誤差信号の符号化データを含むブロックデータb15により構成される。動きベクトルの生成に必要な各種条件を、その局所性に応じて、4種類のヘッダ情報に振り分けて符号化することにより、符号化効率を高める。
図18と図19に動きベクトルを復号側にて生成するビデオ符号化の符号化装置ならびに復号装置の例を示す。図18に符号化装置の構成を示す。現フレームa100はブロック分割部c102にて符号化ブロックa101に分割される。符号化ブロックa101は動き探索条件決定部c112と減算器c103に入力される。動き探索条件決定部c112は動きベクトルの生成に必要となる条件の候補c115を動き探索部c114に出力する。なお、動きベクトルの生成に必要となる条件のうち、シーケンス単位やフレーム単位で選択する条件については、原画像を用いて動き探索条件部にて事前に選択する。選択方法としては、たとえば、原画像を用いた動き探索処理を複数の条件の候補に対して実施することにより、適切な条件が選択できる。動き探索部c114は、フレームメモリc111から復号済みの前フレームa200とテンプレートa108を入力し、動きベクトルの生成に必要となる条件c115に従って、動きベクトルa203を検出する。動き補償部c113は、動きベクトルa203に対応する予測ブロックc120をフレームメモリc111の復号済みの前フレームa200から抽出し、動き探索条件決定部c112に出力する。動き探索条件決定部c112は、動きベクトルの生成に必要となる条件の複数の候補に対応する予測ブロックc120を入力ブロックa101と比較し、予測誤差絶対値和が最小となる予測ブロックa205を決定する。また、そのときの条件を、動きベクトルの生成に必要となる条件c117として動き探索条件符号化部c120に出力する。動き探索条件符号化部c120は、動きベクトルの生成に必要となる条件を符号化し、符号化した情報をエントロピー符号化部に出力する。符号化方法については限定しないが、上記に示したように階層構造やグループに分ける方法、モード情報を用いて符号化する構成要素を限定する方法、数値をそのまま伝送する方法、符号化情報の候補を複数用意して選択する方法、隣接ブロックから推定される予測値からの差分を符号化する等を用いることが可能である。
予測ブロック205は減算器c103と加算器c108に出力される。減算器c103では、入力ブロックa101と予測ブロックa205との誤差ブロックc104を算出し、誤差ブロック符号化部c105に出力する。誤差ブロック符号化部c105は誤差ブロックの符号化処理を行い、誤差符号化データc106をエントロピー符号化部c110と誤差ブロック復号部c107に出力する。誤差ブロック復号部c107は誤差符号化データを復号して再生誤差ブロックc118を復元し、加算器c108に出力する。加算器c108は再生誤差ブロックc118と予測ブロックc205の加算処理により再生ブロックc109を生成し、フレームメモリ内の現フレームの再生画像に合成する。最後にエントロピー符号化部c110は、誤差符号化データc106と動きベクトルの生成に必要となる条件を示す情報c119ならびに各種ヘッダ情報を合成し、符号化データc116を出力する。
図19に復号装置の構成を示す。符号化データc116はエントロピー復号部にて復号データd102に復号され、分離部d103により、誤差符号化データc106と動きベクトルの生成に必要となる条件を示す情報c119に分離される。動きベクトルの生成に必要となる条件を示す情報c119は、動き探索条件復号部d109を動きベクトルの生成に必要となる条件c117に復号する。動き探索部d107は、フレームメモリd106から復号済みの前フレームa200とテンプレートa108を入力し、動きベクトルの生成に必要となる条件c117に従って、動きベクトルa203を検出する。動き補償部d108は、動きベクトルa203に対応する予測ブロックa205をフレームメモリd111の復号済みの前フレームa200から抽出し、加算器d105に出力する。誤差ブロック復号部d104は誤差符号化データを復号して再生誤差ブロックc118を復元し、加算器d105に出力する。加算器d105は再生誤差ブロックc118と予測ブロックc205の加算処理により再生ブロックc109を生成し、フレームメモリ内の現フレームの再生画像に合成する。
ビデオ符号化の例でも、ブロックが動きベクトルと動きベクトルの生成に必要となる条件を共に有する場合が考えられる。この場合、デコーダは復号した動きベクトルを動きベクトルの生成に必要となる条件に従って修正する。また、別例では、デコーダは動きベクトルの生成に必要となる条件に従って生成した動きベクトルと復号した動きベクトルから最終的な動きベクトルを生成する。この場合、復号動きベクトルは、デコーダにて生成した動きベクトルと最終的な動きベクトルとの差分動きベクトルと考えられる。このように、受信側にて動きベクトルを生成する装置やソフトウエアでは、動きベクトルの生成に必要な条件と動きベクトルを共に受信側に伝送する方法が適用できる。
この変形例では、符号化装置、復号装置について説明したが、符号化・復号処理フローについても、同様に変形は可能である。また、この変形例の画像符号化処理又は画像復号処理は、図12に説明するように、プログラムによるコンピュータシステムによって実施することが可能である。
図21と図22に本変形例を実施する符号化処理フローならびに復号処理フローにおけるブロック処理を示している。シーケンスヘッダ、フレームヘッダの符号化・復号については説明を省略するが、符号化処理では、動きベクトルの生成に必要となる条件のうち、フレーム単位ならびにシーケンス単位で伝送する情報を、それらの単位で選択する。選択の方法としては、図18の説明に示したように、原画像を用いた動き探索を利用する。復号処理では、シーケンスヘッダ、フレームヘッダの符号化データを復号後に保存し、各ブロックの復号処理を行う際に利用する。
図21にて本変形例を実施する符号化処理フローのブロック処理を説明する。ブロック符号化の開始処理c201の後、処理c202では、次の符号化ブロックを入力される。処理c203では、動きベクトルの生成に必要となる条件の候補が選定される。処理c204では、この条件に従って、図17に示すように復号済みの画像とテンプレートを用いて動きベクトルを検出する。処理c205では、復号済みの画像から動きベクトルに対応する予測ブロックを取得する。処理c206では、符号化ブロックと予測ブロックの予測誤差絶対値和を評価する。動きベクトルの生成に必要となる条件の複数の候補について、処理c203から処理c206を繰り返し、予測誤差絶対値和が最も小さいときの動きベクトル生成の条件と予測ブロックを選択する。処理c207では、符号化ブロックと予測ブロックの各画素を減算し、誤差ブロックを生成する。処理c208では、誤差ブロックを符号化する(例えば、離散コサイン変換、量子化)。処理c209では、誤差ブロックの復号する(例えば、量子化変換係数の逆量子化と逆離散コサイン変換)。処理c210では、復号した誤差ブロックと予測ブロックを加算して、復号ブロックを復元する。処理211では、誤差ブロックの符号化情報(量子化変換係数)と処理c206にて選択した動きベクトルの生成に必要となる条件を示す情報をエントロピー符号化し、符号化データを生成し、処理c212にてブロック符号化処理を終了する。
図22にて本変形例を実施する復号処理フローのブロック処理を説明する。ブロック復号の開始処理d201の後、処理c202では、次の復号ブロックに対応する符号化データが入力される。処理d203では、符号化データをエントロピー復号し、動きベクトルの生成に必要となる条件と誤差ブロックの符号化情報を取得する。処理d204では、この条件に従って、図17に示すように復号済みの画像とテンプレートを用いて動きベクトルを検出する。処理d205では、復号済みの画像から動きベクトルに対応する予測ブロックを取得する。処理d206では、誤差ブロックの符号化情報を復号する(例えば、量子化変換係数の逆量子化と逆離散コサイン変換)。処理d207では、復号した誤差ブロックと予測ブロックを加算して、復号ブロックを復元し、処理d208にてブロック符号化処理を終了する。
動きベクトルに加え、参照フレーム、予測モード(片方向予測、両方向予測)、予測ブロックの生成方法(2つの予測ブロックから1個の予測ブロックを生成する方法)などの動きベクトルに関連する情報を復号側にて生成する場合については、これらの情報を生成するために必要となる条件を符号化側にて決定し、その情報を復号側に伝送することにより、その情報の生成性能を高めることが可能となる。また、一度生成したこれらの情報を修正するための条件も含まれる。