次に、本発明を実施するための最良の形態について、図1から図13を用いて説明する。図1は本発明になる復号化装置の一実施の形態のブロック図を示す。同図中、図20と同一構成部分には同一符号を付し、その説明を省略する。図1に示すように、本実施の形態の動き補償時間方向逆フィルタ処理(以降、逆MCTF)を行う復号化装置は、DEMUX部102、エントロピー復号化部103、逆量子化部104及び逆MCTF部200とから構成される。また、逆MCTF部200は、入力管理部201、MC部202、フレーム間復号化部203、重なり順序制御部204、逆MC部205、画素補間部109及びフレーム間復号化管理部110とから構成される。
ここで、本実施の形態の復号化装置を説明する前に、復号化装置に入力されるビットストリーム101を動き補償時間方向フィルタ処理(以降、MCTF)にて生成する符号化装置についてまず説明する。図2はこの符号化装置の一例のブロック図を示す。 この符号化装置は、図2に示すように、入力管理部302、MCTF部200、量子化部312、エントロピー符号化部313及びMUX部314から構成されている。また、MCTF部200は、ME部303、MC部304、フレーム間符号化部305、制御部306、重なり特定部307、誤差補正部308、フレーム間符号化管理部309、逆MC部310及び画素補間部311によって構成される。
図2において、入力管理部302は、入力される動画像フレーム101の管理を行う機能を有する。一般に、この入力管理部302は、入力される動画像フレーム101からGOPを構成するために必要なフレーム数を取得し、後述するME部303、MC部304、フレーム間符号化部305、画素補間部311に対して、処理対象となるフレームを供給する機能を有する。
ME部303は、入力管理部302から取得した少なくとも2フレーム(N−1フレームとNフレーム)を利用して、動き推定(ME)を行う。ここで、N−1フレーム側は動き推定を行う際に動きベクトル探索される側のフレームであるものとし、Nフレーム側は動き推定を行う際の基準となるフレームであるものとする。一般に、ME部303は、動き推定(ME)を行う際に、N−1フレームに対して領域外参照を許容するために、フレームの外側の領域を拡張するための所定のパディング処理を行う。しかし、動き推定(ME)を行う際に領域外参照を禁止するようにしてもよい。領域外参照を禁止した場合には、必ずしも所定のパディング処理を行わなくてもよい。
また、ME部303は、Nフレーム側では、フレームを所定の領域分割方法に基づいて各領域間が重複しないように複数の基準領域に分割する。所定の領域分割方法によって分割される基準領域の形状は、一般には所定の矩形ブロックであり、基準フレームは、この複数に分割された矩形ブロック基準領域の集合で表現できる。そして、ME部303は、このNフレーム側で分割した各基準領域に対して、対応する領域の位置をN−1フレーム内からそれぞれの基準領域に対して最も適合した領域を探索することで動きベクトル情報を求める。
ME部303は、求めた動きベクトル情報をMC部304、重なり特定部307、逆MC部310、エントロピー符号化部313にそれぞれ供給する。また、ME部303は、パディング処理後のN−1フレームをMC部304、逆MC部310に供給する機能を有してもよい。更に、ME部303は、Nフレームにおける基準領域の形状に関する情報をMC部304、重なり特定部307、逆MC部310にそれぞれ供給する機能を有してもよい。
ただし、ここでは以後の説明を簡単にするため、基準領域の形状は予め符号化装置及び復号化装置で決められた所定の4画素×4画素のブロック形状であるものとし、基準領域の形状情報の授受に関しては言及する必要がないものとする。
MC部304は、入力管理部302からNフレームとN−1フレームを取得する機能と、ME部303から動きベクトル情報を取得する機能を有する。また、MC部304は、必要であれば、ME部303からパディング処理後のN−1フレームを取得する機能を有してもよい。また、MC部304は、通常は、領域外参照を許容するために、フレームの外側の領域を拡張するための所定のパディング処理を、取得したN−1フレームに対して行う。しかし、領域外参照を禁止してもよく、その場合には、必ずしも所定のパディング処理を行わなくてもよく、入力管理部302から取得したN−1フレームをパディング後のN−1フレームとして利用する。
MC部304は、パディング処理後のN−1フレーム、対応する領域の形状情報、動きベクトル情報に基づいて動き補償フレーム(以降、MCフレーム)を生成する機能を有する。MC部304は、フレーム間符号化部305に対してN−1フレームを基に生成したMCフレームを供給する機能を有する。
フレーム間符号化部305は、入力管理部302からNフレーム、MC部304からMCフレームを取得し、その取得したMCフレームとNフレームに対して、所定のサブバンド分割によって帯域分割(ここでは、2分割)を行うと共に、得られるL成分をMCフレーム側に格納し、得られるH成分をNフレーム側に格納する。更に、フレーム間符号化部305は、Nフレーム側に格納したH成分フレームを誤差補正部308に通知すると共に、MCフレーム側に格納したL成分フレームを逆MC部310に通知する。
制御部306は、少なくともフレーム間符号化部305、誤差補正部308、フレーム間符号化管理部309、逆MC部310、画素補間部311の動作をそれぞれ制御する機能を有する。制御部306は、誤差補正部308と逆MC部310に対しては、逆MCする際の各基準領域の重なり順序情報を通知する機能を有してもよい。ただし、ここでは以後の説明を簡単にするため、各基準領域の重なり順序情報は、予め符号化装置及び復号化装置で決められた所定の順序であるものとし、各基準領域の重なり順序情報の授受に関しては言及する必要がないものとする。ここでの所定の順序は、画面の左上に配置される基準領域から右下に向かってラスタ順に処理を行うものとする。
制御部306は、現在処理しているフレームのGOP内の位置とフレーム間の帯域分割の状態から、処理後のフレームの格納位置を管理する。また、制御部306は、フレーム間符号化管理部309に対して、帯域分割の状態を示す帯域分割状態情報とフレーム格納位置情報を通知する。制御部306は、画素補間部311に対して、画素を補間する方法を切り替えるための画素補間モード情報を通知してもよい。
ただし、ここでは以後の説明を簡単にするため、画素補間モード情報は、予め符号化装置及び復号化装置で決められた所定の画素補間方法であるものとし、画素補間モード情報の授受に関しては言及する必要がないものとする。ここでの画素補間方法は、N−1フレーム側の補間対象となる位置の画素を用いるものとする。
重なり特定部307は、入力管理部302からNフレーム、ME部303から動きベクトル情報を取得し、その取得した動きベクトル情報と基準領域の形状情報から、ME部303でN−1フレームの動き補償を行った際に、多重参照される領域(以降、多重参照領域とする)を特定し、多重参照領域情報を生成する。
また、重なり特定部307は、サブバンド分割された2つの分割周波数帯域のうちの低域分割周波数帯域のL成分フレームに対して、取得した動きベクトル情報を逆方向に適用した動き補償、つまり逆動き補償(以降、逆MC)を行った際に、どの基準領域が、どの多重参照領域に逆MCされるかを特定し、対応する多重参照領域と複数の基準領域との関連を表すための情報である多重参照領域−基準領域関係情報を生成する。
更に、重なり特定部307は、多重参照領域に逆MCされる各基準領域において、各基準領域内におけるどの部分が多重参照領域に関与しているかを特定し、後述する誤差補正部308が誤差を補正する対象となる部分を示すための情報として誤差補正対象領域情報を生成する。重なり特定部307は、このようにして生成した多重参照領域情報、多重参照領域−基準領域関係情報及び誤差補正対象領域情報を、それぞれ誤差補正部308に供給する。
誤差補正部308は、重なり特定部307から供給された多重参照領域情報、多重参照領域−基準領域関係情報及び誤差補正対象領域情報を入力として受け、これらの入力情報からサブバンド分割された2つの分割周波数帯域のうちの高域分割周波数帯域のH成分フレームの多重参照領域と関係している基準領域中の誤差補正対象領域に対して、誤差を補正するための誤差情報を算出する。誤差情報の算出過程の詳細は後述するためここでは省略する。
また、誤差補正部308は、算出した誤差情報を、フレーム間符号化部305から取得したH成分フレームの誤差補正が必要な領域に対して付加し、その誤差補正を行ったH成分フレームをフレーム間符号化管理部309に通知する。
フレーム間符号化管理部309は、誤差補正部308から誤差補正を行ったH成分フレームを取得し、画素補間部311から画素補間を行ったL成分フレームを取得し、制御部306から帯域分割状態情報とフレーム格納位置情報とを取得する。その後、フレーム間符号化管理部309は、帯域分割状態情報とフレーム格納位置情報とに基づいて、L成分フレーム、H成分フレームの正しい位置への格納及び通知を行う。
フレーム間符号化管理部309は、上記の各フレームの通知先を帯域分割状態情報に基づいて決定し、GOP内のフレーム間に対して帯域分割を行う必要がある場合には、再度入力フレームとして入力管理部302に通知し、帯域分割を行う必要がない場合には出力フレームとして量子化部312に通知する。
逆MC部310は、入力管理部302からNフレーム、ME部303から動きベクトル情報、フレーム間符号化部305からL成分フレームを取得し、取得した動きベクトル情報と基準領域の形状情報から、帯域分割後のL成分フレームに対して、所定の各基準領域の重なり順序に基づき、取得した動きベクトル情報を逆方向に適用して動き補償を行う機能、つまり逆MCを行い、逆MC後のL成分フレームを生成する。ここで、逆MCを行う際に用いる各基準領域の重なり順序情報を、制御部306から取得するようにしてもよい。
そして、逆MC部310は、生成した逆MC後のL成分フレームを画素補間部311に供給する。逆MCによって画素が埋められていない(配置されていない)領域に対しては、画素補間部311に対して画素補間領域情報を供給するようにしてもよい。ここでは、処理を簡単にするために、画素補間領域情報は、逆MC後のL成分フレームに−1の値を格納し、画素補間部311では、この情報を基にして画素補間領域情報を取得することとする。後述において、この画素補間領域情報の授受に関しては言及する必要がないものとする。
画素補間部311は、入力管理部302からN−1フレーム、逆MC部310から逆MC後のL成分フレームを取得し、その取得した逆MC後のL成分フレームにおいて、逆MCによって画素が埋められていない領域に関する情報である画素補間領域情報に基づいて画素の補間を行う。画素が埋められていない領域の判定は、制御部306から取得する、もしくは逆MC部310から前記画素補間領域情報を取得してもよい。画素補間部311による画素補間後のL成分フレームは、フレーム間符号化管理部309に供給される。
量子化部312は、フレーム間符号化管理部309から出力フレームとして得られる係数情報を取得し、その取得した係数情報に対して、所定の量子化を行う。量子化後の係数情報は、エントロピー符号化部313に出力される。
エントロピー符号化部313は、量子化部312からの量子化後の係数情報と、ME部303からの動きベクトル情報とを入力として受け、その入力された各情報に対して各所定のエントロピー符号化を行い、係数情報ビット列、動きベクトル情報ビット列を生成した後、MUX部314に対して生成した係数情報ビット列及び動きベクトル情報ビット列を出力する。
MUX部314は、エントロピー符号化部313から出力された係数情報ビット列と動きベクトル情報ビット列を取得し、その取得した係数情報ビット列と動きベクトル情報ビット列とに、復号時に必要となる各種の制御情報を多重化(MUX)してビットストリーム107を生成し、符号化装置の出力信号として出力する。
図3は図2に示した符号化装置の一実施の形態の動作説明用フローチャートを示す。次に、この図3を用いて図2に示した符号化装置の一実施の形態の動作を説明する。まず、入力管理部302は、入力される動画像フレーム101から動画像フレームを取得し(ステップS201)、1GOPを満たす分の動画像フレームを蓄積する(ステップS202)。
続いて、入力管理部302は、MCTFの対象となるフレーム群であるN−1フレームとNフレームをセットし(ステップS203)、それらをME部303、MC部304、フレーム間符号化部305、重なり特定部307、逆MC部310及び画素補間部311にそれぞれ供給する。
ME部303は、入力管理部302から取得したN−1フレームとNフレームを用いてMEを行い、動きベクトルを求める(ステップS204)。ここで、N−1フレーム側は動き推定を行う際に動きベクトル探索される側のフレームであるものとし、Nフレーム側は動き推定を行う際の基準となるフレームであるものとする。ME部303によって求めた動きベクトル情報は、MC部304、重なり特定部307、逆MC部310及びエントロピー符号化部212にそれぞれ出力される。
ME部303によって動きベクトル情報が求まると、MC部304は、ME部303から取得した動きベクトル情報に基づいて、入力管理部302から取得したN−1フレームに対して必要に応じてパディング処理を行った後に、MCを行ってMCフレームを作成する(ステップS205)。MC部304は、作成したMCフレームをフレーム間符号化部305に出力する。
フレーム間符号化部305は、MC部304から供給されたMCフレームと、入力管理部302から取得したNフレームとを用いてフレーム間符号化を行い、L成分フレームとH成分フレームを生成する(ステップS206)。生成したH成分フレームは、誤差補正部308に供給され、生成したL成分フレームは、逆MC部310に供給される。
重なり特定部307は、入力管理部302からNフレーム、ME部303から動きベクトル情報を取得する。必要であれば、Nフレームを用いて基準領域の形状情報を求める。これらの情報から重なり特定部307は、多重参照領域を特定し(ステップS207)、多重参照領域情報、多重参照領域−基準領域関係情報及び誤差補正対象領域情報をそれぞれ生成する。その後、重なり特定部307は、生成した多重参照領域情報、多重参照領域−基準領域関係情報及び誤差補正対象領域情報を誤差補正部308に出力する。
次に、誤差補正部308は、重なり特定部307から取得した各情報に基づき、フレーム間符号化部305からのH成分フレームの多重参照領域内の画素に対して誤差成分の補正を行う(ステップS208)。誤差成分の補正を行う際に、必要であれば、制御部306から逆MCする際の各基準領域の重なり順序情報を取得し、各基準領域の重なり順序情報を用いて誤差成分の補正を行う。誤差補正部308は、誤差成分の補正を行ったH成分フレームをフレーム間符号化管理部309に出力する。
その後、フレーム間符号化部305によって生成された帯域分割後のL成分フレームに対して、逆MC部310は、ME部303から取得した動きベクトル情報を逆方向に適用して動き補償を行い(つまり、逆MCを行い)、逆MC後のL成分フレームを生成する(ステップS209)。ここで、逆MC部310は、逆MCによって画素が埋められていない領域に対しては、逆MC後のL成分フレームに−1の値を格納したものを画素補間領域情報として出力する。逆MCを行う際に、必要であれば、制御部306から逆MCする際の各基準領域の重なり順序情報を取得し、各基準領域の重なり順序情報に従って逆MCを行う。逆MC部310は、逆MC後のL成分フレーム及び画素補間領域情報を画素補間部311に出力する。
これにより、画素補間部311は、逆MC部310から取得した逆MC後のL成分フレームに対して、逆MCで埋めきれなかった画素の補間を行う(ステップS210)。すなわち、画素補間部311は、逆MC後のL成分フレームにおいて、−1の値が格納された位置に対して画素の補間を行う。画素補間部311は、画素補間後のL成分フレームをフレーム間符号化管理部309に供給する。
フレーム間符号化管理部309は、誤差補正部308からの誤差補正後のH成分フレームと、画素補間部311からの画素補間後のL成分フレームとを取得すると、制御部306から取得した帯域分割状態情報とフレーム格納位置情報のうち、帯域分割状態情報に基づいてL成分フレーム、H成分フレームの正しい位置への通知先を決定して格納し、フレーム格納位置情報に基づいて、GOP内のフレーム間に対して帯域分割を行うかどうか、すなわち、所定のオクターブ分割数であるかを判定する(ステップS211)。
フレーム間符号化管理部309は、所定のオクターブ分割数に達していない場合には、再度入力フレームとして入力管理部302に通知する。また、所定のオクターブ分割数に達しており帯域分割を行う必要がない場合には、係数情報を出力フレームとして量子化部312に通知する。
量子化部312は、フレーム間符号化管理部309から取得した出力フレームとして得られる係数情報に対して、所定の量子化を行う(ステップS212)。エントロピー符号化部313は、ME部303から入力された動きベクトル情報と、量子化部312から入力された量子化後の係数情報に対してそれぞれ所定のエントロピー符号化を行い(ステップS213)、動きベクトル情報ビット列と係数情報ビット列とを生成して、それら生成した動きベクトル情報ビット列と係数情報ビット列をMUX部314に供給する。
MUX部314は、動きベクトル情報ビット列と係数情報ビット列とを、復号時に必要となる各種の制御情報と共に、符号化出力を行うために多重化し、ビットストリーム107を構成する(ステップS214)。MUX部314は、生成したビットストリーム107を出力することで、一連の符号化処理が完了する。
以上のようなステップS201〜S214からなる符号化方法に基づいて動作する、図2のような構成を備えた符号化装置を提供することで、MCTFを行う際に画素間の多重参照によって生じる誤差成分を考慮して、時間方向に対するサブバンド分割による帯域分割を行う際に、この誤差成分を帯域分割法の係数に反映し、復号時に発生する誤差を相殺することで、復号化側で逆MCTFを行った場合でも可逆復号を可能とする構成を維持しつつ、復号時に係数間の依存関係を極力排除できるような符号化出力を得ることができる符号化装置を提供することが可能となる。
次に、図1の本発明になる逆MCTF処理を行う復号化装置の一実施の形態について説明する。図1において、DEMUX部102は、取得したビットストリームを多重化分離(以後、DEMUX)して、サブバンド係数情報ビット列、動きベクトル情報ビット列と、復号時に必要となる各種の制御情報を生成し、サブバンド係数情報ビット列、動きベクトル情報ビット列を後述するエントロピー復号化部103に通知する機能を有する。
エントロピー復号化部103は、DEMUX部102から通知されるサブバンド係数情報ビット列及び動きベクトル情報ビット列をそれぞれ取得し、取得したサブバンド係数情報ビット列及び動きベクトル情報ビット列に対してエントロピー復号化を行い、サブバンド係数情報及び動きベクトル情報をそれぞれ生成し、生成したサブバンド係数情報を後述する逆量子化部104に供給し、また、生成した動きベクトル情報を後述するMC部202と逆MC部205にそれぞれ供給する。
逆量子化部104は、エントロピー復号化部103からサブバンド係数情報を取得し、取得したサブバンド係数情報に対して所定の逆量子化を行い、逆量子化後のサブバンド係数情報を後述の入力管理部201に通知する。
入力管理部201は、逆量子化部104から逆量子化後のサブバンド係数情報を取得し、取得した逆量子化後のサブバンド係数情報を、サブバンド分割後のL成分情報を含むL成分フレームとH成分情報を含むH成分フレームとして管理する機能を有する。一般に、この入力管理部201は、GOPを再構成するために必要なフレーム数を構成できるだけのサブバンド係数情報を逆量子化部104から取得し、後述するMC部202、フレーム間復号化部203及び画素補間部109に対して処理対象となるフレームを通知する機能を有する。
MC部202は、入力管理部201から少なくとも復号後のN−1フレームに対応するサブバンド分割後のL成分情報を格納したL成分フレームを取得する機能を有する。ここで、N−1フレームは符号化側において、動き推定を行う際に動きベクトル探索される側のフレームであるものとする。また、Nフレームは符号化側において、動き推定を行う際の基準となるフレームであるものとする。MC部202は、通常N−1フレームに対応するL成分フレームに対して領域外参照を許容するためにフレームの外側の領域を拡張するための所定のパディング処理を行う機能を有する。
ここで、符号化側において領域外参照を禁止した場合には、MC部202において領域外参照を禁止するようにしてもよい。領域外参照を禁止した場合には、必ずしも所定のパディング処理を行わなくてもよい。また、MC部202は、エントロピー復号化部103から動きベクトル情報を取得し、パディング後のL成分フレーム、対応する領域の形状情報、動きベクトル情報に基づいて動き補償フレーム(以降、MCフレーム)を生成する機能を有する。
ここで、MCを行う際に利用する基準領域の形状情報は、符号化側の動き推定部(以降、ME部とする)において、Nフレームを所定の領域分割方法に基づいて各領域間が重複しないように複数の基準領域に分割するため、この基準領域の形状情報を取得する必要がある。ただし、ここでは以後の説明を簡単にするため、基準領域の形状は予め符号化装置及び復号化装置で決められた所定の4画素×4画素のブロック形状であるものとし、基準領域の形状情報の授受に関しては言及する必要がないものとする。更に、MC部202は、フレーム間復号化部203に対してL成分フレームを元に生成したMCフレームを通知する機能を有する。
フレーム間復号化部203は、入力管理部201から復号化時のNフレームに対応するH成分フレームを取得し、MC部202からL成分フレームに対してMCを行ったMCフレームを取得し、取得したMCフレームとH成分フレームに対して、所定のサブバンド合成によって帯域合成を行うと共に、帯域合成によって得られる時間方向に異なる2フレームのL成分フレームを対応するN−1フレーム、Nフレームに格納し、N−1フレームを後述する逆MC部205に通知すると共に、Nフレームを後述するフレーム間復号化管理部110に通知する。
重なり順序制御部204は、逆MC部205に対して、逆MCする際の各基準領域の重なり順序情報を通知する機能を有する。ただし、ここでは以後の説明を簡単にするため、各基準領域の重なり順序情報は、予め符号化装置及び復号化装置で決められた所定の順序であるものとし、各基準領域の重なり順序情報の授受に関しては言及する必要がないものとする。ここでの所定の順序は、画面の左上に配置された基準領域から右下に向かってラスタ順に処理を行うようにすることで、重なり順序制御部204は逆MC部205を制御するものとする。
逆MC部205は、エントロピー復号化部103から動きベクトル情報を取得し、フレーム間復号化部203からN−1フレームを取得し、取得した動きベクトル情報、基準領域の形状情報から、帯域合成後のN−1フレームに対して、所定の各基準領域の重なり順序に基づいて制御する重なり順序制御部204の制御に応じて、取得した動きベクトル情報を逆方向に適用して動き補償を行う機能、つまり逆MCを行い、逆MC後のN−1フレームを生成する機能と、生成した逆MC後のN−1フレームを画素補間部109に通知する機能とを有する。逆MCによって画素が埋められていない領域に対しては、画素補間部109に対して画素補間領域情報を通知する機能を有してもよい。ここでは、処理を簡単にするために、画素補間領域情報は、逆MC後のN−1フレームに−1の値を格納し、画素補間部109では、この情報を元にして画素補間領域情報を取得することとする。後述において、この画素補間領域情報の授受に関しては言及する必要がないものとする。
画素補間部109は、入力管理部201から復号前のN−1フレームに対応するL成分フレーム、逆MC部205から逆MC後のN−1フレームを取得し、取得した逆MC後のN−1フレームにおいて、逆MCによって画素が埋められていない領域に関する情報である画素補間領域情報に基づいて画素の補間を行う機能と、画素補間後のN−1フレームをフレーム間復号化管理部110に通知する機能とを有する。
画素が埋められていない領域の判定は、逆MC部205から画素補間領域情報を取得する機能を有してもよい。処理を簡単にするために、ここでは画素補間領域情報は、逆MC後のN−1フレームに−1の値が格納されるものとし、この情報を基にして画素補間領域情報を取得することとする。後述において、この画素補間領域情報の授受に関しては言及する必要がないものとする。
フレーム間復号化管理部110は、画素補間部109から画素補間を行ったN−1フレームを取得し、また、フレーム間復号化部203からNフレームを取得し、帯域合成を継続するかどうか判定し、GOP内のフレーム間に対して帯域合成を行う必要がある場合には、N−1フレーム、Nフレームを再度GOP内の入力フレームとして扱うために入力管理部201に通知し、帯域合成を行う必要がない場合には復号結果として動画像フレームを出力する機能を有する。
次に、図1に示す本発明の逆MCTF復号化装置の動作について、図4のフローチャートと共に説明する。まず、DEMUX部102は、入力されるビットストリームを取得し(ステップS301)、取得したビットストリームに対してDEMUXを行う(ステップS302)ことで、サブバンド係数情報ビット列、動きベクトル情報ビット列と、復号時に必要となる各種の制御情報を生成し、サブバンド係数情報ビット列、動きベクトル情報ビット列を後述するエントロピー復号化部103に通知する。
エントロピー復号化部103は、DEMUX部102から通知されるサブバンド係数情報ビット列、動きベクトル情報ビット列を取得し、各情報に対してエントロピー復号化を行い(ステップS303)、エントロピー復号化により生成したサブバンド係数情報は、逆量子化部104に通知し、生成した動きベクトル情報はMC部202と逆MC部205に通知する。逆量子化部104は、エントロピー復号化部103からサブバンド係数情報を取得し、逆量子化を行い(ステップS304)、逆量子化後のサブバンド係数情報を、入力管理部201に通知する。
入力管理部201は逆量子化部104から逆量子化後のサブバンド係数情報を取得し、サブバンド分割後のL成分情報を含むL成分フレームとH成分情報を含むH成分フレームとして管理する。また、入力管理部201は、GOPを再構成するために必要なフレーム数を構成できるだけのサブバンド係数情報を逆量子化部104から取得することで、1GOPを構成するための情報を蓄積する(ステップS305)。その後、入力管理部201は、MC部202、フレーム間復号化部203、逆MC部205、画素補間部109に対して逆MCTFの処理対象となるフレームを通知する(ステップS306)。
MC部202は、入力管理部201から少なくとも復号後のN−1フレームに対応するサブバンド分割後のL成分情報を格納したL成分フレームを取得し、取得したL成分フレーム対して領域外参照を許容するためにフレームの外側の領域を拡張するための所定のパディング処理を行う。ここで、符号化側において領域外参照を禁止した場合には、MC部202において領域外参照を禁止するようにしてもよい。領域外参照を禁止した場合には、必ずしも所定のパディング処理を行わなくてもよい。
また、MC部202は、エントロピー復号化部103から動きベクトル情報を取得する。MC部202は、パディング後のL成分フレーム、対応する領域の形状情報、動きベクトル情報に基づいてMCを行い(ステップS307)、動き補償フレーム(以降、MCフレーム)を生成し、フレーム間復号化部203に対してL成分フレームを基に生成したMCフレームを通知する。
フレーム間復号化部203は、入力管理部201から復号化時のNフレームに対応するH成分フレームを取得し、MC部202からL成分フレームに対してMCを行ったMCフレームを取得し、取得したMCフレームとH成分フレームに対して、所定のサブバンド合成によってフレーム間復号化を行い(ステップS308)、生成した時間方向に異なる2フレームのL成分フレームを対応するN−1フレーム、Nフレームに格納し、N−1フレームを逆MC部205に通知すると共に、Nフレームをフレーム間復号化管理部110に通知する。
逆MC部205は、エントロピー復号化部103から動きベクトル情報を取得し、フレーム間符号化部202からN−1フレームを取得し、取得した動きベクトル情報と基準領域の形状情報から、帯域合成後のN−1フレームに対して、所定の各基準領域の重なり順序に基づいて制御する重なり順序制御部204の制御に応じて、取得した動きベクトル情報を逆方向に適用して逆MCを行い(ステップS309)、逆MC後のN−1フレームを生成した後、生成した逆MC後のN−1フレームを画素補間部109に供給する。
逆MC部205は、逆MCによって画素が埋められていない領域に対しては、画素補間部109に対して画素補間領域情報を通知する機能を有してもよい。ここでは、処理を簡単にするために、画素補間領域情報は、逆MC後のN−1フレームに−1の値を格納し、画素補間部109では、この情報を基にして画素補間領域情報を取得することとする。後述において、この画素補間領域情報の授受に関しては言及する必要がないものとする。
画素補間部109は、入力管理部201から復号前のN−1フレームに対応するL成分フレームを取得し、逆MC部205から逆MC後のN−1フレームを取得し、取得した逆MC後のN−1フレームにおいて、逆MCによって画素が埋められていない領域に関する情報である画素補間領域情報に基づいて画素の補間を行う(ステップS310)。画素が埋められていない領域の判定は、逆MC部205から画素補間領域情報を取得する機能を有してもよい。処理を簡単にするために、ここで画素補間領域情報は、逆MC後のN−1フレームに−1の値が格納されるものとし、この情報を元にして画素補間領域情報を取得することとする。後述において、この画素補間領域情報の授受に関しては言及する必要がないものとする。画素補間後のN−1フレームは、フレーム間復号化管理部110に通知する。
フレーム間復号化管理部110は、画素補間部109から画素補間を行ったN−1フレームを取得すると共に、フレーム間復号化部203からNフレームを取得する。フレーム間復号化管理部110は、所定のオクターブ分割であるかを取得したフレームの位置から特定して帯域合成を継続するかどうか判定し(ステップS311)、GOP内のフレーム間に対して帯域合成を行う必要がある場合には、N−1フレーム、Nフレームを再度GOP内の入力フレームとして扱うために入力管理部201に通知し、ステップS306からステップS311までの処理を繰り返す。帯域合成を行う必要がない場合には復号結果として動画像フレームを出力することで一連の復号化処理が完了する。
以上のようなステップS301からステップS311までからなる方法に基づいて動作する、図1のような構成を備えた逆MCTF復号化装置を提供することで、復号時に係数間の依存関係を排除し、効率の良い復号化が可能となる。
次に、フレーム間に対して行われるサブバンド分割において、直交ウェーブレット(wavelet)変換のHaar基底を用いた場合の一般的なオクターブ分割の過程について、図5と共に説明する。まず、図5(A)から同図(C)までがオクターブ分割の1階分解を行う際の処理過程を示している。ここで、図5に示されているフレームは、0から7番目までの8フレームを1GOPとし、フレーム間のオクターブ分割はこの1GOPを単位として行うものとする。また、最初のオクターブ分割1階分解を行う際の対象となるフレーム区間は、1GOP全体であるものとする。
まず、ここではwaveletの直交基底にHaar基底を用いているため、図5(A)において、2フレームを単位として対応する空間位置同士の画素間で直交変換を行う。この直交変換により、L成分フレームとH成分フレームが、図5(B)に示すように生成される。ここで、「L1」はオクターブ分割1階分解のL成分フレームであり、「H1」はオクターブ分割1階分解のH成分フレームであることを表し、その後の「−番号」は、GOP内のフレーム位置を表す。
従って、例えば、「L1−0」は、L成分フレーム、オクターブ分割1階分解、GOP内の0番目のフレームであり、また、例えば、「H1−3」は、H成分フレーム、オクターブ分割1階分解、GOP内の3番目のフレームであることを表す。通常、Haar基底による直交変換では、2フレームを単位として変換を行い、図5(B)に示すように、偶数番目(フレーム位置が0を含む偶数番号)のフレームにL成分、奇数番目(フレーム位置が奇数番号)のフレームにH成分を格納する。
その後、必要であれば、フレームインターリーブを行う。フレームインターリーブは、図5(C)に示すように、偶数番目に格納されているL成分フレームを現在オクターブ分割の対象となっているフレーム区間の半分から前半に配置し、奇数番目に格納されているH成分フレームを現在オクターブ分割の対象となっているフレーム区間の後半に配置する。その後、次のオクターブ分割の対象となるフレーム区間を、図5(D)に示すようにL成分フレームが格納されている0から3フレーム目までとする。
次の、図5(D)から同図(F)までは、オクターブ2階分解の処理過程を示している。このオクターブ2階分解では、オクターブ1階分解の場合と同様に、図5(D)に示す4フレーム分のL成分フレームに対して、2フレームを単位として対応する空間位置同士の画素間で直交変換を行い、図5(E)に示すようにL2−0、H2−1、L2−2、H2−3を生成する。
その後、必要であれば、フレームインターリーブを行う。このフレームインターリーブは、図5(F)に示すように偶数番目に格納されているL成分フレームを現在オクターブ分割の対象となっているフレーム区間の半分から前半に配置し、奇数番目に格納されているH成分フレームを現在オクターブ分割の対象区間となっているフレーム区間の後半に配置する。
以下同様に、図5(G)、(H)に示すようにL成分フレームL2−0及びL2−1に対してオクターブ3階分解を行い、最終的に図5(I)に示すような1つのL成分フレームL3−0と7つのH成分フレームH3−1、H2−1、H2−3、H1−1、H1−3、H1−5及びH1−7からなる1GOP分の係数フレーム列を得ることで、1GOPのフレーム間符号化が完了する。
次に、本発明の逆MCTFに対応する、符号化側におけるMCTFの処理過程について図6と共に説明する。図6では、図5に示したような一般的なオクターブ分割の処理過程とは異なり、図6(A)に示すように2フレームを単位として、まず偶数フレームに対して奇数フレームを利用してME及びMCを行う。なお、ここでは、図5と同様に、0から7番目までの8フレームを1GOPとする。
図6(A)に示す1GOPを構成する8フレームに対してME及びMCを行い、そのうちMC後のフレームは、図6(B)に示すように、偶数番号0,2,4,6のフレーム位置に格納する。その後は、ME及びMCを行った後の8フレームに対して、図5で示した通常のオクターブ分割と同様に2フレームを単位として直交変換を行って図6(C)に示すように、4つのL成分フレームと4つのH成分フレームを得る。ここで、偶数番号0,2,4,6のフレーム位置のL成分フレームは、図6(B)に示したように偶数番号のフレーム位置に格納されたMC後のフレームである。
その後、図6(D)に示すようにフレームインターリーブを行う。このフレームインターリーブにより、偶数番号のフレーム位置に格納されているL成分フレームが、現在MCTFの対象となっているフレーム区間の半分から前半に配置され、奇数番号のフレーム位置に格納されているH成分フレームが、現在MCTFの対象となっているフレーム区間の半分から後半に配置される。
次に、図6(E)に示すように、フレームインターリーブ後のL成分フレーム列に対して2フレームを単位として逆MCを行う。続いて、この逆MC後のL成分フレーム列に対して、上記と同様にしてME及びMC、直交変換、フレームインターリーブ、逆MCの処理を繰り返すことで、最終的に図6(F)に示すような、1つのL成分フレームL3−0と7つのH成分フレームH3−1、H2−1、H2−3、H1−1、H1−3、H1−5及びH1−7からなる1GOP分の係数フレーム列を得ることで、1GOPのフレーム間符号化が完了する。
ここで、従来法との主な相違は、フレーム間の直交変換を行う前後にME/MC及び逆MCを行うところにある。オクターブ分割後のL成分フレーム列を利用して、時間方向のスケーラビリティを実現しようとした場合、従来法が生成するL成分フレームは、フレーム間の動きを考慮して直交変換が行われないため、フレーム間で動きが大きかった部分では輪郭がはっきりとしない、ぶれた画像となるため、フレームレートを落として表示する際のフレームとしては必ずしも有効なフレームとはいえなかった。
これに対し、本発明の逆MCTFに対応するMCTFでは、ME/MC及びフレーム間の直交変換を行うことでフレーム間の動きによる影響を最小限に止めると共に、直交変換後のL成分フレームに対してそれぞれのフレームが属していたフレーム位置、ここでは偶数番目のフレームの状態に戻すために逆MCを行う。このME/MC及び逆MCにより直交変換後のフレーム内の劣化を抑え、逆MC後のL成分フレームは、ぶれのない良好な画像を得ることができる。このようにして生成した逆MC後のL成分フレーム列は、従来法と比べてフレームレートを落として表示する際のフレームとして、より適したフレームとなる。
次に、本発明の復号化装置の逆MCTF処理過程について、図7と共に説明する。図7(A)から(E)までは、オクターブ分割3階分解から2階分解へのオクターブ合成の処理過程を示している。ここで、図7に示されているフレームは、0から7番目までの8フレームを1GOPとし、フレーム間のオクターブ合成はこの1GOPを単位として行うものとする。
本発明の復号化装置において、入力されるビットストリームに対してDEMUX、エントロピー復号化、逆量子化することで、図7(A)に示すように、図6(F)で示したようなフレーム列を得ることができる。ここで、図7(A)で示されるフレーム列のうちのL成分フレームL3−0のみに対して、MCを行う。MCを行った結果が、図7(B)に斜線で表したL3−0である。
続いて、逆直交変換を行う。ここではwaveletの直交基底にHaar基底を用いているため、図7(B)において、2フレームを単位として対応する空間位置同士のサブバンド係数情報間で逆直交変換を行う。図7(B)では、オクターブ合成の対象となるフレーム区間は0から1フレーム目までであることから、L3−0、H3−1に対して逆直交変換を行う。逆直交変換により、オクターブ分割2階分解のL成分フレームであるL2−0、L2−1が、図7(C)のように生成される。
続いて、図7(C)に示すL成分フレームL2−0に対して、動きベクトル情報をMCの時とは逆に利用して逆MCを行う。この逆MCによって動きのある2枚のL成分フレームL2−0、L2−1を再構成している。
その後、必要であれば、図7(E)に示すように、逆フレームインターリーブを行う。逆フレームインターリーブは、復号したL成分フレームを偶数番目(0を含む偶数番号のフレーム位置)0,2に配置すると共に、オクターブ分割2階分解後のH成分フレームH2−1、H2−3を奇数番目(奇数番号のフレーム位置)1,3に配置する。その後、次のオクターブ合成の対象となるフレーム区間を0から3フレーム目までとする。
同様に、得られる逆フレームインターリーブ後のL成分フレーム列及びH成分フレーム列に対して、MC、逆直交変換、逆MC、逆フレームインターリーブの処理を繰り返すことで、最終的に図7(F)に示すような1GOP分の動画像フレーム列を得ることで、1GOPのフレーム間復号化が完了する。
次に、より詳細なMCTFの処理過程を示すため、図8及び図9を用いて以下に説明する。図8は、MCTFの処理過程において、N−1フレームに対してMCを行い、MC後のフレームとNフレーム間において空間方向のフレーム間で対応するブロック内の対応する画素同士を直交変換するまでの過程を表す。
図8(A)において、元のN−1フレーム601の周囲に、フレームの領域外参照を可能にするために拡張したパディング領域602がある。このN−1フレーム601、パディング領域602は、MCフレームを作成する際に参照される側のフレームである。一方、図8(B)はNフレーム607を示しており、ブロック608、610などを含む。
図8(A)に示すN−1フレーム601には、MEにより特定したNフレーム607内のブロック608の参照領域603や、MEにより特定したNフレーム607内のブロック610の参照領域604がある。また、参照領域603と604には共に参照する多重参照領域605がある。また、N−1フレーム601には、Nフレーム607の各基準領域によって参照されることのない非参照領域606がある。この非参照領域606は、逆MC後に画素の補間が行われる領域である。
一方、図8(B)に示すNフレーム607は、MCを行う際の基準となるフレームである。Nフレーム607内のブロック608は参照領域603に対する基準領域、ブロック610は参照領域604に対する基準領域である。ここで説明を簡単にするために、基準領域の形状は4画素×4画素の矩形形状であるものとする。
N−1フレーム601に対してMCを行った後のフレームは、図8(C)に612で示される。このMC後のフレーム612内の領域613は、参照領域603がMCによって再配置された領域であり、領域615は、参照領域604がMCによって再配置された領域である。また、MC後のフレーム612内の領域614、616は、それぞれMCによって多重参照領域605が複製された領域である。
また、図8(B)に示すNフレーム607内の領域609は、上記の多重参照領域複製領域614に対応する領域であり、複製された多重参照領域と直交変換を行う基準領域である。同様に、Nフレーム607内の領域611は、上記の多重参照領域複製領域616に対応する領域であり、複製された多重参照領域と直交変換を行う基準領域である。
以上のような各領域に対し、まず、図8(A)に示すN−1フレーム601に対してMCを行うと、図8(C)に612で示すようなMCフレームを得る。MCでは、Nフレーム607の基準領域608に対応する参照領域603を、MEによって求めた動きベクトルにより特定し、基準領域608に対応する空間位置の領域613に再配置する。同様に、基準領域610に対応する参照領域604を、基準領域610に対応する空間位置の領域615に再配置する。Nフレーム607に含まれる各基準領域に対して同様にMCを行うことにより、MCフレーム612を得ることができる。
このようにして得られたMCフレーム612と、Nフレーム607に対して、対応するブロックの画素同士を直交変換する。直交変換後のL成分及びH成分の格納や、逆MCの処理過程については、図9を用いて説明する。
図9において、直交変換後のH成分の係数情報を格納したフレーム(H成分フレーム)は(B)に701で示され、図8のNフレーム607の位置に格納する。図9(B)の各領域702〜705の空間位置は、図8(B)の各領域608〜611に対応し、図9の領域702は領域608に、領域703は領域609に、領域704は領域610に、領域705は領域611にそれぞれ対応する。格納されている情報は、直交変換後のH成分の係数情報となっている。
また、直交変換後のL成分の係数情報を格納したフレーム(L成分フレーム)は、図9(C)に706で示され、図8(C)に示したMC後のフレーム612に格納しているものとする。L成分フレーム706の各領域707〜710の空間位置は、図8(C)に示したMC後のフレーム612の各領域613〜615に対応し、領域707は領域613に、領域708は領域614に、領域709は領域615に、領域710は領域616にそれぞれ対応する。L成分フレーム706の各領域707〜710に格納されている情報は、直交変換後のL成分の係数情報となっている。
また、L成分フレーム706を逆MCして生成したL成分フレームは、図9(A)に711で示され、そのL成分フレーム711内の領域712、713、714及び715のうち、領域712は、L成分フレーム706内の領域707が逆MCによって再配置された領域であり、領域713は、領域709が逆MCによって再配置された領域である。また、領域714は、MCを行う前のN−1フレームの多重参照領域605に対応する領域であり、逆MCを行う際に、この領域に対して領域708及び710の領域が重複する領域である。また、領域715は、逆MCによって領域が再配置されず、何らかの画素補間が必要な領域である。
図8(C)、(B)に示したMCフレーム612とNフレーム607との間で、対応するブロックの画素同士で直交変換を行い、直交変換によって生成したL成分は、図9(C)に示すL成分フレーム706に格納する。また、直交変換によって生成したH成分は、図9(B)に示すH成分フレーム701に格納する。その後、L成分フレーム706に対して逆MCを行うと、図9(A)に711で示すような逆MC後のL成分フレームが得られる。逆MCでは、MEによって求めた動きベクトルをMCの時とは逆方向に利用することでL成分フレーム706内の領域707を再配置先である領域712に格納する。同様に、L成分フレーム706内の領域709を再配置先である領域713に格納する。
ここで、逆MCによって領域707と領域709が重複する領域714は、重複している領域708と領域710に基づいて所定の方法により重複領域714に格納する係数情報を決定し、重複領域714に格納する。通常は、逆MCによって再配置する領域の所定の重ね合わせ順序に従って、重複領域714に対応する領域の画素は上書きすることで格納する係数情報を決定する。
本発明において、逆MCによって再配置する領域の所定の重ね合わせ順序は、画面では左上に配置される基準領域から右下に配置される基準領域へ向かってラスタ順に処理を行うものとする。よって、重複領域714は、所定の重ね合わせ順序がラスタ順であるため、領域708が格納された後、領域710によって上書きされることで格納する係数情報が確定する。その後、領域715のような領域に対して、所定の画素補間方法に基づいて画素補間を行う。ここでは、元のN−1フレーム601内に存在する、領域715と同じ空間方向の位置に対応する非参照領域606の画素を補間画素として利用する。以上のような処理を行うことで、フレーム間のMCTF符号化が完了する。
次に、より詳細な逆MCTFの処理過程を示すため、図10、図11を用いて以下に説明する。図10は、逆MCTFの処理過程において、L成分フレームに対してMCを行い、MC後のフレームとH成分フレーム間において空間方向のフレーム間で対応するブロック内の、対応するサブバンド係数情報同士を逆直交変換するまでの過程を表す。
図10(A)において、元のL成分フレーム801の周囲に、フレームの領域外参照を可能にするために拡張したパディング領域802がある。このL成分フレーム801及びパディング領域802は、MCフレームを作成する際に参照される側のフレームである。一方、図10(B)はH成分フレーム807を示しており、ブロック808、810などを含む。
また、図10(A)に示すL成分フレーム801には、MEにより特定した同図(B)に示すL成分フレーム807内のブロック808の参照領域803や、MEにより特定したL成分フレーム807内のブロック810の参照領域804がある。また、参照領域803と804には共に参照する多重参照領域805がある。また、L成分フレーム801には、H成分フレーム807の各基準領域によって参照されることのない非参照領域806がある。この非参照領域806は、逆MC後に画素の補間が行われる領域である。
一方、図10(B)に示すH成分フレーム807は、MCを行う際の基準となるフレームである。H成分フレーム807内のブロック808は参照領域803に対する基準領域、ブロック810は参照領域804に対する基準領域である。ここで説明を簡単にするために、基準領域の形状は4画素×4画素の矩形形状であるものとする。
また、図10(C)はL成分フレーム801に対してMCを行った後のフレーム812を示す。このMC後のフレーム812内の領域813は、参照領域803がMCによって再配置された領域であり、領域815は、参照領域804がMCによって再配置された領域である。また、MC後のフレーム812内の領域814、816は、それぞれMCによって多重参照領域805が複製された領域である。
また、図10(B)に示すH成分フレーム807内の領域809は、上記の多重参照領域複製領域814に対応する領域であり、複製された多重参照領域と逆直交変換を行う基準領域である。同様に、H成分フレーム807内の領域811は、上記の多重参照領域複製領域816に対応する領域であり、複製された多重参照領域と逆直交変換を行う基準領域である。
以上のような各領域に対し、まず、図10(A)に示すL成分フレーム801に対してMCを行うと、図10(C)に812で示すようなMCフレームを得る。MCでは、H成分フレーム807の基準領域808に対応する参照領域803を、MEによって求めた動きベクトルにより特定し、基準領域808に対応する空間位置の領域813に再配置する。同様に、基準領域810に対応する参照領域804を、基準領域810に対応する空間位置の領域815に再配置する。H成分フレーム807に含まれる各基準領域に対して同様にMCを行うことにより、MCフレーム812を得ることができる。
このようにして得られたMCフレーム812と、H成分フレーム807に対して、対応するブロックの画素同士を逆直交変換する。逆直交変換後の各サブバンド係数情報の格納や、逆MCの処理過程については、図11を用いて説明する。
図11において、逆直交変換後のNフレームは(B)に901で示され、その各領域902〜905の空間位置は、図10(B)の各領域808〜811に対応し、図11の領域902は領域808に、領域903は領域809に、領域904は領域810に、領域905は領域811にそれぞれ対応する。格納されている情報は、逆直交変換後のH成分のサブバンド係数情報となっている。
また、逆直交変換後のN−1フレームは、図11(C)に906で示され、図10(C)に示したMC後のフレーム812に格納しているものとする。N−1フレーム906の各領域907〜910の空間位置は、図10(C)に示したMC後のフレーム812の各領域813〜815に対応し、領域907は領域813に、領域908は領域814に、領域909は領域815に、領域910は領域816にそれぞれ対応する。N−1フレーム906の各領域907〜910に格納されている情報は、逆直交変換後のL成分のサブバンド係数情報となっている。
また、N−1フレーム906を逆MCして生成したN−1フレームは、図11(A)に911で示され、そのN−1フレーム911内の領域912、913、914及び915のうち、領域912は、N−1フレーム906内の領域907が逆MCによって再配置された領域であり、領域913は、領域909が逆MCによって再配置された領域である。また、領域914は、MCを行う前のL成分フレームの多重参照領域805に対応する領域であり、逆MCを行う際に、この領域に対して領域908及び910が重複する領域である。また、領域915は、逆MCによって領域が再配置されず、何らかの画素補間が必要な領域である。
図10(C)、(B)に示したMCフレーム812とH成分フレーム807との間で、対応するブロックの画素同士で逆直交変換を行い、逆直交変換による帯域合成によって得られる時間方向に異なる2フレームのL成分フレームを、対応する図11(C)に示すN−1フレーム906、図11(B)に示すNフレーム901に格納する。その後、逆直交変換後のN−1フレーム906に対して逆MCを行うと、図11(A)に911で示すような逆MC後のL成分フレームが得られる。
逆MCでは、MEによって求めた動きベクトルをMCの時とは逆方向に利用することでN−1フレーム906内の領域907を再配置先である領域912に格納する。同様に、N−1フレーム906内の領域909を再配置先である領域913に格納する。ここで、逆MCによって領域907と領域909が重複する領域914は、重複している領域908と領域910に基づいて所定の方法により重複領域914に格納するサブバンド係数情報を決定し、重複領域914に格納する。通常は、逆MCによって再配置する領域の所定の重ね合わせ順序に従って、重複領域914に対応する領域の画素は上書きすることで格納するサブバンド係数情報を決定する。
本発明において、逆MCによって再配置する領域の所定の重ね合わせ順序は、画面では左上に配置される基準領域から右下に配置される基準領域へ向かってラスタ順に処理を行うものとする。よって、重複領域914は、所定の重ね合わせ順序がラスタ順であるため、領域908が格納された後、領域910によって上書きされることで格納する係数情報が確定する。その後、領域915のような領域に対して、所定の画素補間方法に基づいて画素補間を行う。ここでは、元のL成分フレーム801内に存在する、領域915と同じ空間方向の位置に対応する非参照領域806の画素を補間画素として利用する。以上のような処理を行うことで、フレーム間の逆MCTF復号化が完了する。
次に、逆MCTFの多重参照領域に対する処理過程において従来法との違いを明確にするため、図12から図18を用いて以下に説明する。まず、従来法による多重参照領域の処理過程について、図12、図13及び図14を用いて以下に説明する。図12は、従来法におけるMCTF符号化の処理過程を表している。図12(A)は2つの基準領域1001と1002からなるN−1フレームを示しており、このN−1フレームに対してMCを行うと、図12(B)に示すようになる。
ここで、図12(A)に示すN−1フレームは、2つの基準領域1001及び1002から参照されているため、多重参照領域が存在する。この多重参照領域内のある1画素をここではdとする。この画素dは、多重参照領域内の画素であるため、MCにより図12(B)に示すように、daとdbに複製される。これらの画素d、da及びdbの間では次式の関係が成り立つ。
d=da=db (1)
一方、図12(C)に示すNフレームの画素のうち、図12(B)に示したMC後のN−1フレーム中の画素da及びdbに対応する画素を、それぞれa及びbとすると、それらの画素a及びbの間には、通常、次式(2)が成り立っているものとして話を進める。
a≠b (2)
ここで、図12(B)に示したMC後のN−1フレームと、図12(C)に示したNフレームとの間で直交変換を行うと、daとa、dbとbとの間で直交変換が行われる。それぞれのL成分及びH成分は、式(3)〜式(6)を適用してdaとaからはLaとHa、dbとbからはLbとHbがそれぞれ求まる。
ここで、直交変換の変換基底はHaar基底であるものとする。求めたL成分は図12(D)に示すように、La、Lbの位置に格納する。また、求めたH成分は図12(E)に示すように、Ha、Hbの位置に格納する。ここで、式(1)及び式(2)であることから、LaとLbの間には式(7)が成り立つ。また、HaとHbの間には、式(8)が成り立つ。
La≠Lb (7)
Ha≠Hb (8)
その後、図12(D)に示した直交変換後のL成分フレームに対して逆MCを行う。この逆MCを行う際に、LaとLbは格納先が重複するため、所定の方法により重複領域に格納する係数情報を決定する。図12(F)は、重複領域に格納する係数情報としてLaを採用した場合のL成分フレームである。また、図12(G)は、重複領域に格納する係数情報としてLbを採用した場合のL成分フレームである。以上のような符号化処理を行うことで、従来法におけるMCTF符号化が完了する。
図13は従来法のMCTF復号化において、重複領域の係数情報としてLaを採用した場合の処理過程を示す図である。図13(A)は、(N−1)フレーム側のL成分フレームを示しており、このL成分フレームに対してMCを行うと、図13(B)に示すようになる。ここで、図13(A)のL成分フレーム中の画素Laは、符号化時に複数の領域から格納される多重領域に格納された画素であるため、図13(B)に1102で示すようにMCによってLaが複製される。本来であれば、画素1101の右側の画素1102はLbであるが、符号化の逆MCによりLaとなっている。
一方、図13(C)は、Nフレーム側のH成分フレームを示しており、領域1103内の画素Haと領域1104内の画素Hbは、それぞれ図13(C)の画素1101、1102のLaに対応する。ここで、図13(B)及び(C)に示したフレーム間で逆直交変換を行うと、画素1101のLaと領域1103内の画素Haとの間で、画素1102のLaと領域1104内の画素Hbとの間でそれぞれ逆直交変換が行われる。
この場合、それぞれの逆直交変換後の各画素は、通常、次式(9)〜(12)を適用することで求まる。
しかし、本来の対応関係ではないLaとHbからは、正しい復号結果を得ることができない。そこで、まず、正しい対応関係である画素1101のLaと領域1103の対応する画素Haとから、式(10)を適用して図13(D)に示すように、d
aを復号化する。同様に、正しい対応関係である画素1101のLaと領域1103の対応する画素Haとから、式(9)を適用して図13(E)に示すように、aを復号化する。このようにして得られたd
aを次式(13)を適用することでbを復号化することができる。
ここで、式(10)及び式(9)は本来の逆直交変換の式であるが、式(13)はd
aからbを復号化するために、本来の逆直交変換の式(11)を変形したものになっているため、従来の逆直交変換をそのまま利用することが難しい。また、復号化する際に、復号する係数の順序に依存関係が存在するという問題がある。
上記の逆直交変換が完了すると、図13(D)に示したフレームに対して逆MCを行うことにより、図13(F)に示したようなフレームを得る。逆MCを行う際に、重複領域に対しては、復号化したdaを採用するような所定の方法により重複領域に格納する係数情報を決定する必要がある。以上のような処理を行うことで、従来法のMCTF復号化において、重複領域の係数情報としてLaを採用した場合の復号化が完了する。
次に、従来法のMCTF復号化において、重複領域の係数情報としてLbを採用した場合の処理過程について、図14と共に説明する。図14(A)は、(N−1)フレーム側のL成分フレームを示しており、このL成分フレームに対してMCを行うと、図14(B)に示すようになる。ここで、図14(A)のL成分フレーム中の画素Lbは、符号化時に複数の領域から格納される多重領域に格納された画素である。Lbは多重領域の画素であるため、図14(B)に示す画素1202としてMCによってLbが複製される。本来であれば、画素1202の左側の画素1201はLaであるが、符号化の逆MCによりLbとなっている。
一方、図14(C)は、Nフレーム側のH成分フレームを示しており、領域1203内の画素Haと領域1204内の画素Hbは、それぞれ図14(C)の画素1201、1202のLbに対応する。ここで、図14(B)及び(C)に示したフレーム間で逆直交変換を行うと、画素1201のLbと領域1203内の画素Haとの間で、画素1202のLbと領域1204内の画素Hbとの間でそれぞれ逆直交変換が行われる。
この場合、それぞれの逆直交変換後の各画素は、通常、前記式(9)〜(12)を適用することで求まる。しかし、本来の対応関係ではないLbとHaからは、正しい復号結果を得ることができない。そこで、まず、正しい対応関係である画素1202のLbと領域1204の対応する画素Hbとから、式(12)を適用して図14(D)に示すように、dbを復号化する。同様に、正しい対応関係である画素1202のLbと領域1204の対応する画素Hbとから、式(11)を適用して図14(E)に示すように、bを復号化する。
このようにして得られたdbを次式(14)を適用することでaを復号化することができる。
ここで、式(12)及び式(11)は本来の逆直交変換の式であるが、式(14)はd
bからaを復号化するために、本来の逆直交変換の式(9)を変形したものになっているため、従来の逆直交変換をそのまま利用することが難しい。また、復号化する際に、復号する係数の順序に依存関係が存在するという問題がある。
ここでは、逆直交変換を行う際に、復号順序がラスタ順で行われているとすると、aの復号を何らかの手段で一時的に処理をスキップしなければならないことを検知し、処理をスキップした上でdbとbを復号化し、aの復号を行うための情報が得られたことを確認する何らかの手段によって復号できるかどうかを判定した後に、復号化を行わなければならない。
逆直交変換が完了すると、図14(D)に示した逆直交変換されたフレームに対して逆MCを行って同図(F)に示す復号化されたフレームを得る。ここで、逆MCを行う際に、重複領域に対しては、復号化したdbを採用するような所定の方法により重複領域に格納する係数情報を決定する必要がある。以上のような処理を行うことで、従来法のMCTF復号化において、重複領域の係数情報としてLbを採用した場合の復号化が完了する。
上述した従来法の逆MCTF復号化における各種の問題を改善するため、本発明では、図1のような逆MCTF復号化装置の構成をとると共に、多重参照領域部分に対して符号化側では図15及び図16、復号化側では図17及び図18のような処理を行う。
図15(A)は2つの基準領域1301と1302からなるN−1フレームを示しており、このN−1フレームに対してMCを行うと、図15(B)に示すようになる。ここで、図15(A)に示すN−1フレームは、2つの基準領域1301及び1302から参照されているため、多重参照領域が存在する。この多重参照領域内のある1画素を、ここでは図15(A)に示すようにdとする。この画素dは、多重参照領域内の画素であるため、MCにより図15(B)に示すように、daとdbに複製される。これらの画素d、da及びdbの間では、前記式(1)の関係が成り立つ。
一方、図15(C)に示すNフレームの画素のうち、図15(B)に示したMC後のN−1フレーム中の画素da及びdbに対応する画素を、それぞれa及びbとすると、それらの画素a及びbの間には、通常、前記式(2)が成り立っているものとして話を進める。
ここで、図15(B)に示したMC後のN−1フレームと、図15(C)に示したNフレームとの間で直交変換を行うと、daとa、dbとbとの間で直交変換が行われる。それぞれのL成分及びH成分は、前記式(3)〜式(6)を適用してdaとaからはLaとHa、dbとbからはLbとHbがそれぞれ求まる。ここで、直交変換の変換基底はHaar基底であるものとする。求めたL成分は図15(D)に示すように、La、Lbの位置に格納し、求めたH成分は図15(E)に示すように、Ha、Hbの位置に格納する。ここで、図8の場合と同様に、式(1)及び式(2)であることから、LaとLbの間には前記式(7)が成り立ち、HaとHbの間には、前記式(8)が成り立つ。
その後、図15(D)に示した直交変換後のL成分フレームに対して逆MCを行う。この逆MCを行う際に、LaとLbは格納先が重複するため、所定の方法により重複領域に格納する係数情報を決定する。図15(F)は、重複領域に格納する係数情報としてLaを採用した場合のL成分フレームである。
本来であれば、復号化時にLbとHbに対して逆直交変換を行うことでdbとbを得ることができるが、Laを採用したことにより、次式(15)で表わされる誤差ebが生じる。
そこで、式(15)を用いて誤差e
bを求め、この誤差e
bをHbに対して次式(16)を用いて補正することでHb’を得る。
Hb’=Hb+eb (16)
その後、補正後のHb’を図15(G)に示すように、元のHbの位置に格納する。このような誤差補正処理を行うことで、復号化時に発生する誤差を相殺することができる。
図16は図15の逆MCを行う際の重複領域にLbを採用した場合の処理過程を示した図である。同図中、図15と同一部分には同一符号を付し、その説明を省略する。図16(F)は、重複領域に格納する係数情報としてLbを採用した場合のL成分フレームを示す。
本来であれば、復号化時にLaとHaに対して逆直交変換を行うことでdaとaを得ることができるが、Lbを採用したことにより、次式(17)で表わされる誤差eaが生じる。
そこで、式(17)を用いて誤差e
aを求め、この誤差e
aをHaに対して次式(18)を用いて補正することでHa’を得る。
Ha’=Ha+ea (18)
その後、補正後のHa’を図16(G)に示すように、元のHaの位置に格納する。このような誤差補正処理を行うことで、復号化時に発生する誤差を相殺することができる。以上のような符号化処理を行うことで、MCTF符号化が完了する。
次に、本発明の逆MCTF復号化側における、多重参照領域部分に対する処理について図17及び図18と共に説明する。図17は重複領域のサブバンド係数情報としてLaを採用した場合の処理過程を示し、図18は重複領域のサブバンド係数情報としてLbを採用した場合の処理過程を示す。
まず、図17について説明するに、図17(A)は、(N−1)フレーム側のL成分フレームを示しており、このL成分フレームに対してMCを行うと、図17(B)に示すようになる。ここで、図17(A)のL成分フレーム中の画素Laは、符号化時に複数の領域から格納される多重領域に格納された画素であるため、図17(B)に1402で示すようにMCによってLaが複製される。本来であれば、画素1401の右側の画素1402はLbであるが、符号化の逆MCによりLaとなっている。
一方、図17(C)は、Nフレーム側のH成分フレームを示しており、領域1403内の画素Haと領域1404内の画素Hb’は、それぞれ図17(B)の画素1401、1402のLaに対応する。ここで、本発明の復号化に対応する符号化によって、次式
La=Lb−eb (19)
を満たすような誤差ebを求め、この誤差ebを本来のH成分のサブバンド係数情報であるHbに対して、次式を用いて補正することでHb’を得る。
Hb’=Hb+eb (20)
このようにして求めたHb’が図17(C)に示すH成分フレームの領域1403内の画素Haの右側の領域1404内の画素(H成分)に格納されていることに注意する。
図17(B)及び(C)に示したフレーム間で逆直交変換を行うと、画素1401のLaと領域1403内の画素Haとの間で、画素1402のLaと領域1404内の画素Hb’との間でそれぞれ逆直交変換が行われる。
この場合、それぞれの逆直交変換後の各サブバンド係数情報は、通常、前記の式(9)〜(12)を適用することで求まる。この場合、本来の対応関係ではないLaと誤差が補正されていない通常のHbとからは、正しい復号結果を得ることができない。
しかし、本実施の形態では、画素1402のLaとの間で逆直交変換する領域1404内の画素は、前記式(20)で誤差ebで補正された画素Hb’であるため、式(19)及び式(20)を通常の逆直交変換のbを求める式である式(11)に適用することで、式(21)が得られ、これにより、結果として誤差ebが相殺されることから式(11)と同じ結果を得ることができる。
このことは、本発明において、可逆復号が可能であることを示している。また、正しい対応関係である画素1401のLaと領域1403の対応する画素Haとから、式(9)を適用してaが復号化されるため、上記の逆直交変換により図17(E)に示したように正しい復号結果が得られる。
また、上記の逆直交変換により図17(D)に示す、daは正しい対応関係である画素1401のLaと領域1403の対応する画素Haとから式(10)により復号化され、画素1402のLaと領域1404の対応する画素Hb’とから、数8に示す式(22)を適用してdbが復号化され、これらda、dbは単独に復号化することが可能である。
このように、本発明の復号化に対応する符号化において、誤差e
bによってHb’が補正されていることを考慮した復号化構成をとることでda、db、a、bそれぞれ単独の復号化が可能となり、従来法のようにbを求めるために、まず正しい対応関係であるLaとHaとから式(10)を用いることでdaを復号化し、得られたdaを式(13)に適用することで、bを復号化するといった処理の依存関係を排除することが可能となる。
また、本実施の形態では、da、db、a、bを単独に復号した後に、図17(D)に示したフレームに対して逆MCを行うことにより、同図(F)に示すフレームを復号化できる。ここで、逆MCを行う際の各基準領域の重なり順序情報は、予め符号化装置及び復号化装置で決められた所定の順序に従って行われる。ここでは所定の順序によって図17(F)のdにはdaが採用される。従って、予めdbの計算を行わないような構成をとるようにしてもよい。
次に、本発明の逆MCTF復号化において、重複領域のサブバンド係数情報としてLbを採用した場合の処理過程について、図18と共に説明する。図18(A)は、(N−1)フレーム側のL成分フレームを示しており、このL成分フレームに対してMCを行うと、図18(B)に示すようになる。ここで、図18(A)のL成分フレーム中の画素Lbは、符号化時に複数の領域から格納される多重領域に格納された画素である。Lbは多重領域の画素であるため、図18(B)に示す画素1412としてMCによってLbが複製される。本来であれば、画素1412の左側の画素1411はLaであるが、符号化の逆MCによりLbとなっている。
一方、図18(C)は、Nフレーム側のH成分フレームを示しており、領域1413内の画素Ha’と領域1414内の画素Hbは、それぞれ図18(B)の画素1411、1412のLbに対応する。ここで、本発明の復号化に対応する符号化によって、次式(23)
Lb=La−ea (23)
を満たすような誤差eaを求め、この誤差eaを本来のH成分のサブバンド係数情報であるHaに対して、次式(24)を用いて補正することでHa’を得る。
Ha’=Ha+ea (24)
このようにして求めたHa’が図18(C)に示すH成分フレームの領域1414内の画素Hbの左側の領域1413内の画素(H成分)に格納されていることに注意する。
図18(B)及び(C)に示したフレーム間で逆直交変換を行うと、画素1411のLbと領域1413内の画素Ha’との間で、画素1412のLbと領域1414内の画素Hbとの間でそれぞれ逆直交変換が行われる。
この場合、それぞれの逆直交変換後の各サブバンド係数情報は、通常、前記の式(9)〜(12)を適用することで求まる。この場合、本来の対応関係ではないLbと誤差が補正されていない通常のHaとからは、正しい復号結果を得ることができない。
しかし、本実施の形態では、画素1411のLbとの間で逆直交変換する領域1413内の画素は、前記式(24)で求められた誤差eaで補正された画素Ha’であるため、式(23)及び式(24)を通常の逆直交変換のaを求める式である式(9)に適用することで、式(25)が得られ、これにより、結果として誤差eaが相殺されることから式(9)と同じ結果を得ることができる。
このことは、本発明において可逆復号が可能であることを示している。また、正しい対応関係である画素1412のLbと領域1414の対応する画素Hbとから、式(11)を適用してbが復号化されるため、上記の逆直交変換により図18(E)に示したように正しい復号結果が得られる。
また、上記の逆直交変換により図18(D)に示す、dbは正しい対応関係である画素1412のLbと領域1414の対応する画素Hbとから式(12)により復号化され、画素1411のLbと領域1413の対応する画素Ha’とから、数10に示す式(26)を適用してdaが復号化され、これらda、dbは単独に復号化することが可能である。
このように、本発明の復号化に対応する符号化において、誤差e
aによってHa’が補正されていることを考慮した復号化構成をとることでda、db、a、bそれぞれ単独の復号化が可能となり、従来法のようにaを求めるために、まず正しい対応関係であるLbとHbとから式(12)を用いることでdbを復号化し、得られたdbを式(14)に適用することで、aを復号化するといった処理の依存関係を排除することが可能となる。
また、本実施の形態では、da、db、a、bを単独に復号した後に、図18(D)に示したフレームに対して逆MCを行うことにより、同図(F)に示すフレームを復号化できる。ここで、逆MCを行う際の各基準領域の重なり順序情報は、予め符号化装置及び復号化装置で決められた所定の順序に従って行われる。ここでは所定の順序によって図18(F)のdにはdbが採用される。従って、予めdaの計算を行わないような構成をとるようにしてもよい。以上のような復号化処理を行うことで、本発明における逆MCTF復号化が完了する。
図19は本発明になる復号化装置の他の実施の形態を備えた情報処理装置の一例のブロック図を示す。同図において、情報処理装置1500は、入力装置1501、出力装置1502、中央処理制御装置1503、外部記憶装置1504、一時記憶装置1505、通信装置1506から構成されており、コンピュータである中央処理制御装置1503により逆MCTF処理を行う復号化装置の機能をプログラムにより実現させるものである。
ここで、上記のプログラムは、記録媒体から読み取られて中央処理制御装置1503に取り込まれてもよいし、ネットワークを介して通信装置1506により受信されて中央処理制御装置1503に取り込まれてもよい。
中央処理制御装置1503は、上記のプログラムにより、図1のDEMUX部102に相当するDEMUX手段1601、エントロピー復号化部103に相当するエントロピー復号手段1602、逆量子化部104に相当する逆量子化手段1603、入力管理部201に相当する入力管理手段1604、MC部202に相当するMC手段1605、フレーム間復号化部203に相当するフレーム間復号化手段1606、重なり順序制御部204に相当する重なり順序制御手段1607、画素補間部109に相当する画素補間手段1609、フレーム間復号化管理手段110に相当するフレーム間復号手段1610をソフトウェア処理にて実現する。