ところで、H.264の符号化方式では、プログレッシブ画像について、1枚のピクチャをフレームのままでフレーム符号化することに加えて、インターレース画像に対して使用される1枚のピクチャをトップフィールド、ボトムフィールドの2枚のフィールドに分けて符号化するフィールド符号化を使用することが許されている。
図20は、インターレース画像およびプログレッシブ画像におけるフィールドが有する表示順情報を示す模式図であり、同じフレーム番号を有する2本の縦線はそれぞれフィールドを示している。インターレース画像では、図20(a) に示すようにトップフィールドとボトムフィールドは等間隔になるように表示順情報が割り当てられる。一方、プログレッシブ画像では、図20(b) に示すように2枚のフィールドは同じ表示順情報を持たせることにより、正確な表示順関係を表現することが可能となる。以下では同じフレームに属する2枚のフィールドが同じ表示順情報をもつ画像をプログレッシブ画像、そうでない画像をインターレース画像と呼ぶが、これに限ったものでなく、どのような画像に対しても同じフレームに属する2枚のフィールドに同じ表示順情報を持たせることは可能である。
そこで、インターレース画像およびプログレッシブ画像でフィールド符号化を行った場合、時間的ダイレクトモードが選択されると、各フィールドが有する表示順情報を用いて背景技術で説明した方法を用いて動きベクトルをスケーリングすることになる。このとき、参照する2枚のピクチャが同じフレームに属するトップフィールドとボトムフィールドとなる場合が存在する。この場合について、インターレース画像およびプログレッシブ画像それぞれの場合に分けて、以下説明する。
図21は、インターレース画像での時間的ダイレクトモードにおける動きベクトルの予測生成方法を示す模式図であり、PはPピクチャ、BはBピクチャを示し、ピクチャタイプに付している数字は各ピクチャの表示順を示している。ここでは、図21に示すピクチャB2のブロックBL0を時間的ダイレクトモードでフィールド符号化する場合について説明する。
この場合、ピクチャB2の後方参照ピクチャであるピクチャP3中の、ブロックBL0と同じ位置にあるブロックBL1の動きベクトルMV1を利用する。この動きベクトルMV1は、ブロックBL1が符号化された際に用いられた動きベクトルであり、同じピクチャP3のトップフィールドを参照している。この場合にブロックBL0を符号化する際に用いる動きベクトルMV_F、動きベクトルMV_Bは上記式1a、式1bによって以下のように求めることができる。
MVf=(4−5)/(6−5)×MV=−MV
MVb=(4−6)/(6−5)×MV=−2MV
図22は、プログレッシブ画像での時間的ダイレクトモードにおける動きベクトルの予測生成方法を示す模式図であり、PはPピクチャ、BはBピクチャを示し、ピクチャタイプに付している数字は各ピクチャの表示順を示している。ここでは、図22に示すピクチャB2のブロックBL0を時間的ダイレクトモードでフィールド符号化する場合について説明する。
この場合、ピクチャB2の後方参照ピクチャであるピクチャP3中の、ブロックBL0と同じ位置にあるブロックBL1の動きベクトルMV1を利用する。この動きベクトルMV1は、ブロックBL1が符号化された際に用いられた動きベクトルであり、同じピクチャP3のトップフィールドを参照している。この場合にブロックBL0を符号化する際に用いる動きベクトルMV_F、動きベクトルMV_Bは上記式1a、式1bでは以下のように分母が0になってしまい、求めることができない。
MVf=(3−5)/(5−5)×MV 演算不可
MVb=(3−5)/(5−5)×MV 演算不可
このように、プログレッシブ画像でフィールド符号化を行った場合、時間的ダイレクトモードが選択され、参照する2枚のピクチャが同じフレームに属するトップフィールドとボトムフィールドであった場合には、スケーリング処理により動きベクトルを予測して生成することができない。
同様に、インターレース画像およびプログレッシブ画像でフィールド符号化を行った場合、空間的ダイレクトモードが選択されると、各フィールドが有する表示順情報を用いて上記のように符号化対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルを、符号化対象ブロックの動きベクトルの候補として決定することになる。このとき、動きベクトルが参照するピクチャが同じフレームに属するトップフィールドとボトムフィールドとなる場合が存在する。
図23は、プログレッシブ画像での空間的ダイレクトモードにおける動きベクトルの予測生成方法を示す模式図であり、PはPピクチャ、BはBピクチャを示し、ピクチャタイプに付している数字は各ピクチャの表示順を示し、最後に付しているTはトップフィールド、Bはボトムフィールドを示している。ここでは、図23に示すピクチャB3_TのブロックBL0を空間的ダイレクトモードでフィールド符号化する場合について説明する。
この場合、符号化対象であるブロックBL0の周辺の3画素A、B、Cを含む符号化済みのブロックのそれぞれの動きベクトルMVA1、MVB1、MVC1はそれぞれフィールドP2_T、P1_B、P2_Bを参照している。このうちフィールドP2_T、P2_Bは、同じフレームに属するトップフィールドとボトムフィールドであるので、同じ表示順情報を持っている。よって、フィールドP2_T、P2_Bのうちどちらが符号化対象ピクチャから表示時間的に最も近くにあるかを特定することができない。したがって、符号化対象ブロックの動きベクトルを予測して生成することができない。
そこで、本発明は上記の事情に鑑みてなされたものであり、動画像をフィールド符号化および復号化を行う場合に、ダイレクトモードが選択されても確実に動きベクトルを求めることができる動画像符号化方法および動画像復号化方法等を提供することを目的とする。
上記目的を達成するために、本発明に係る動画像符号化方法は、動画像を構成する各ピクチャをフレーム構造またはフィールド構造により符号化する方法であって、既に符号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの符号化モードを決定するモード決定ステップと、前記モード決定ステップで決定された符号化モードが、表示時間的に近傍にある符号化済みピクチャの有する動きベクトルを参照動きベクトルとして、参照ピクチャ間の表示時間的位置関係に基づいて前記参照動きベクトルのスケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成する符号化モードである場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定するスケーリング判定ステップと、前記スケーリング判定ステップの判定結果に基づいて、前記モード決定ステップで決定された符号化モードをそのままもしくは更新して使用することにより動き補償を行う動き補償ステップとを含むことを特徴とする。
これによって、表示時間的に近傍にある符号化済みピクチャの有する動きベクトルを参照動きベクトルとして、参照ピクチャ間の表示時間的位置関係に基づいて参照動きベクトルのスケーリング処理を行うことによって処理対象ブロックの動きベクトルを予測して生成する時間的ダイレクトモードにより符号化を行う場合に、スケーリング処理が可能でなくても、符号化モードを変更する等の処理を行って処理対象ブロックを符号化することができる。
また、本発明に係る動画像符号化方法は、動画像を構成する各ピクチャをフレーム構造またはフィールド構造により符号化する方法であって、既に符号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの空間的周辺に位置する既に符号化されたブロックの有する動きベクトルのうち、処理対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測生成して符号化する場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定する予測判定ステップと、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ピクチャから最も近いとするピクチャを表示順情報以外の情報を用いて決定する最近ピクチャ決定ステップとを含むことを特徴とする。
これによって、処理対象ブロックの空間的周辺に位置する既に符号化されたブロックの有する動きベクトルのうち、処理対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルに基づいて、処理対象ブロックの動きベクトルを予測生成する空間的ダイレクトモードにより符号化を行う場合に、ピクチャの有する表示順情報に基づいて動きベクトルを予測して生成することが可能でなくても、符号化対象ピクチャから最も近くにあるピクチャを決定する処理を行って、動きベクトルを予測して生成し、処理対象ブロックを符号化することができる。
また、本発明に係る動画像復号化方法は、動画像を構成する各ピクチャをフレーム構造またはフィールド構造により復号化する方法であって、既に復号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの復号化モードを抽出するモード抽出ステップと、前記モード抽出ステップで抽出された復号化モードが、表示時間的に近傍にある復号化済みピクチャの有する動きベクトルを参照動きベクトルとして、参照ピクチャ間の表示時間的位置関係に基づいて前記参照動きベクトルのスケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成する復号化モードである場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定するスケーリング判定ステップと、前記スケーリング判定ステップの判定結果に基づいて、前記モード抽出ステップで抽出された復号化モードをそのままもしくは更新して使用することにより動き補償を行う動き補償ステップとを含むことを特徴とする。
これによって、抽出した符号化時の符号化モードが時間的ダイレクトモードであるにもかかわらず、スケーリング処理が可能でない場合に、復号化モードを変更する等の処理を行って処理対象ブロックを復号化することができる。
また、本発明に係る動画像復号化方法は、動画像を構成する各ピクチャをフレーム構造またはフィールド構造により復号化する方法であって、既に復号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの空間的周辺に位置する既に復号化されたブロックの有する動きベクトルのうち、処理対象ピクチャから表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測生成して復号化する場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定する予測判定ステップと、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ピクチャから最も近いとするピクチャを表示順情報以外の情報を用いて決定する最近ピクチャ決定ステップとを含むことを特徴とする。
これによって、空間的ダイレクトモードにより復号化を行う場合に、ピクチャの有する表示順情報に基づいて動きベクトルを予測して生成することが可能でなくても、復号化対象ピクチャから最も近くにあるピクチャを決定する処理を行って、動きベクトルを予測して生成し、処理対象ブロックを復号化することができる。
さらに、本発明は、このような動画像符号化方法および動画像復号化方法として実現することができるだけでなく、このような動画像符号化方法および動画像復号化方法が含む特徴的なステップを手段として備える動画像符号化装置および動画像復号化装置として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
また、本発明の動画像符号化方法は、以下の(1)〜(11)の何れかの構成とすることができる。
(1)動画像を構成する各ピクチャをフレーム構造またはフィールド構造により符号化する方法であって、既に符号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの符号化モードを決定するモード決定ステップと、前記モード決定ステップで決定された符号化モードが、表示時間的に近傍にある符号化済みピクチャの有する動きベクトルを参照動きベクトルとして、参照ピクチャ間の表示時間的位置関係に基づいて前記参照動きベクトルのスケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成する符号化モードである場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定するスケーリング判定ステップと、前記スケーリング判定ステップの判定結果に基づいて、前記モード決定ステップで決定された符号化モードをそのままもしくは更新して使用することにより動き補償を行う動き補償ステップを有する。
(2)前記スケーリング判定ステップでは、前記スケーリング処理で参照する2つのピクチャが有する表示順情報が同じ場合に、前記スケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(3)前記スケーリング判定ステップでは、前記スケーリング処理で参照する2つのピクチャが、同一フレームに属するトップフィールドとボトムフィールドであり前記2つのフィールドが共に同じ表示順情報を有していた場合に、前記スケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(4)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記動きベクトル算出ステップで算出した当該処理対象ブロックの動きベクトルを用いて符号化する符号化モードに変更して動き補償を行う。
(5)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記スケーリング処理を行わずに、当該処理対象ブロックの前記予測して生成される動きベクトルをあらかじめ設定された所定の値のベクトルとして、前記モード決定ステップで決定された符号化モードを用いて動き補償を行う。
(6)前記所定のベクトルの少なくとも1つは0ベクトルであり、前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記スケーリング処理を行わずに、当該処理対象ブロックの前記予測して生成される動きベクトルの少なくとも1つを0ベクトルとして、前記モード決定ステップで決定された符号化モードを用いて動き補償を行う。
(7)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ブロックの空間的周辺に位置する既に符号化されたブロックの有する動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測して生成し符号化する符号化モードに変更して動き補償を行う。
(8)動画像を構成する各ピクチャをフレーム構造またはフィールド構造により符号化する方法であって、既に符号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの空間的周辺に位置する既に符号化されたブロックの有する動きベクトルのうち、処理対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測生成して符号化する場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定する予測判定ステップと、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ピクチャから最も近いとするピクチャを表示順情報以外の情報を用いて決定する最近ピクチャ決定ステップとを有する。
(9)前記予測判定ステップでは、前記既に符号化されたブロックのそれぞれの動きベクトルのうち、当該処理対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同一フレームに属するトップフィールドとボトムフィールドであり、かつ、前記2つのフィールドが共に同じ表示順情報を有していた場合に、当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(10)前記最近ピクチャ決定ステップでは、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記同一フレームに属し同じ表示順情報を有するトップフィールドとボトムフィールドのうち、当該処理対象フィールドと同じ属性であるフィールドを、当該処理対象フィールドから最も近くにあるフィールドと決定する。
(11)前記最近ピクチャ決定ステップでは、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記同一フレームに属し同じ表示順情報を有するトップフィールドとボトムフィールドのうち、後で符号化されたフィールドを、当該処理対象フィールドから最も近くにあるフィールドと決定する。
また、本発明の動画像復号化方法は、以下の(12)〜(22)の何れかの構成とすることができる。
(12)動画像を構成する各ピクチャをフレーム構造またはフィールド構造により復号化する方法であって、既に復号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの復号化モードを抽出するモード抽出ステップと、前記モード抽出ステップで抽出された復号化モードが、表示時間的に近傍にある復号化済みピクチャの有する動きベクトルを参照動きベクトルとして、参照ピクチャ間の表示時間的位置関係に基づいて前記参照動きベクトルのスケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成する復号化モードである場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定するスケーリング判定ステップと、前記スケーリング判定ステップの判定結果に基づいて、前記モード抽出ステップで抽出された復号化モードをそのままもしくは更新して使用することにより動き補償を行う動き補償ステップとを有する。
(13)前記スケーリング判定ステップでは、前記スケーリング処理で参照する2つのピクチャが有する表示順情報が同じ場合に、前記スケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(14)前記スケーリング判定ステップでは、前記スケーリング処理で参照する2つのピクチャが、同一フレームに属するトップフィールドとボトムフィールドであり前記2つのフィールドが共に同じ表示順情報を有していた場合に、前記スケーリング処理を行うことによって当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(15)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記動きベクトル算出ステップで算出した当該処理対象ブロックの動きベクトルを用いて復号化する復号化モードに変更して動き補償を行う。
(16)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記スケーリング処理を行わずに、当該処理対象ブロックの前記予測して生成される動きベクトルをあらかじめ設定された所定の値のベクトルとして、前記モード抽出ステップで抽出された復号化モードを用いて動き補償を行う。
(17)前記所定のベクトルの少なくとも1つは0ベクトルであり、前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記スケーリング処理を行わずに、当該処理対象ブロックの前記予測して生成される動きベクトルの少なくとも1つを0ベクトルとして、前記モード抽出ステップで抽出された復号化モードを用いて動き補償を行う。
(18)前記動き補償ステップでは、前記スケーリング判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ブロックの空間的周辺に位置する既に復号化されたブロックの有する動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測して生成し復号化する復号化モードに変更して動き補償を行う。
(19)動画像を構成する各ピクチャをフレーム構造またはフィールド構造により復号化する方法であって、既に復号化されたピクチャを参照して、ピクチャを構成するブロックごとに動きベクトルを算出する動きベクトル算出ステップと、処理対象ブロックの空間的周辺に位置する既に復号化されたブロックの有する動きベクトルのうち、処理対象ピクチャから表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルに基づいて、当該処理対象ブロックの動きベクトルを予測生成して復号化する場合、当該処理対象ブロックの動きベクトルを予測して生成することができるか否かを判定する予測判定ステップと、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、当該処理対象ピクチャから最も近いとするピクチャを表示順情報以外の情報を用いて決定する最近ピクチャ決定ステップとを有する。
(20)前記予測判定ステップでは、前記既に復号化されたブロックのそれぞれの動きベクトルのうち、当該処理対象ピクチャから表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同一フレームに属するトップフィールドとボトムフィールドであり、かつ、前記2つのフィールドが共に同じ表示順情報を有していた場合に、当該処理対象ブロックの動きベクトルを予測して生成することができないと判定する。
(21)前記最近ピクチャ決定ステップでは、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記同一フレームに属し、同じ表示順情報を有するトップフィールドとボトムフィールドのうち、当該処理対象フィールドと同じ属性であるフィールドを、当該処理対象フィールドから最も近くにあるフィールドと決定する。
(22)前記最近ピクチャ決定ステップでは、前記予測判定ステップで前記動きベクトルを生成することができないと判定された場合に、前記同一フレームに属し、同じ表示順情報を有するトップフィールドとボトムフィールドのうち、後で復号化されたフィールドを、当該処理対象フィールドから最も近くにあるフィールドと決定する。
以上の説明から明らかなように、本発明に係る動画像符号化方法によれば、時間的ダイレクトモードまたは空間的ダイレクトモードにより符号化を行う場合に、確実に動きベクトルを生成して処理対象ブロックを符号化することができる。
また、本発明に係る動画像復号化方法によれば、時間的ダイレクトモードまたは空間的ダイレクトモードにより復号化を行う場合に、確実に動きベクトルを生成して処理対象ブロックを復号化することができる。
本発明の実施の形態について、図面を参照して説明する。
(実施の形態1)
図1は、本発明に係る動画像符号化方法を用いた動画像符号化装置の一実施の形態の構成を示すブロック図である。
動画像符号化装置は、図1に示すようにピクチャメモリ101、予測残差符号化部102、符号列生成部103、予測残差復号化部104、ピクチャメモリ105、動きベクトル検出部106、動き補償符号化部107、動きベクトル記憶部108、ダイレクトモード可否判定部109、差分演算部110、加算演算部111、およびスイッチ112、113を備えている。
ピクチャメモリ101は、表示時間順にピクチャ単位で入力された動画像を格納する。動きベクトル検出部106は、符号化済みの再構築画像データを参照ピクチャとして用いて、そのピクチャ内の探索領域において最適と予測される位置を示す動きベクトルの検出を行う。動き補償符号化部107は、動きベクトル検出部106で検出された動きベクトルを用いてブロックの符号化モードを決定し、この符号化モードに基づいて予測画像データを生成する。この符号化モードとは、マクロブロックをどのような方法で符号化するかを示すものである。
動きベクトル記憶部108は、動きベクトル検出部106で検出された動きベクトルを記憶する。ダイレクトモード可否判定部109は、動き補償符号化部107により決定された符号化モードが時間的ダイレクトモードである場合に、スケーリング処理を行うことができるか否かの判定を行い、符号化モードの確定を行う。また、ダイレクトモード可否判定部109は、符号化モードが空間的ダイレクトモードである場合に、符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かの判定を行う。差分演算部110は、ピクチャメモリ101より読み出された画像データと、動き補償符号化部107より入力された予測画像データとの差分を演算し、予測残差画像データを生成する。
予測残差符号化部102は、入力された予測残差画像データに対して周波数変換や量子化等の符号化処理を行い、符号化データを生成する。符号列生成部103は、入力された符号化データに対して可変長符号化等を行い、さらに動き補償符号化部107から入力された動きベクトルの情報、および符号化モードの情報等を付加することにより符号列を生成する。
予測残差復号化部104は、入力された符号化データに対して逆量子化や逆周波数変換等の復号化処理を行い、復号化差分画像データを生成する。加算演算部111は、予測残差復号化部104より入力された復号化差分画像データと、動き補償符号化部107より入力された予測画像データとを加算し、再構築画像データを生成する。ピクチャメモリ105は、生成された再構築画像データを格納する。
次に、上記のように構成された動画像符号化装置の動作について説明する。
図2は、ピクチャメモリ101におけるピクチャの順序を示す説明図であり、(a) 入力された順序、(b) 並び替えられた順序を示す説明図である。ここで、縦線はピクチャを示し、各ピクチャの右下に示す記号は1文字目のアルファベットがピクチャタイプ(I、P、またはB)を、2文字目以降の数字が表示時間順のピクチャ番号を示している。また、Pピクチャは、表示時間順で前方にある近傍のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは、表示時間順で前方にある近傍のIピクチャまたはPピクチャと、表示時間順で後方にある近傍1枚のIピクチャまたはPピクチャとを参照ピクチャとして用いるものとしている。
入力画像は、例えば図2(a) に示すように表示時間順にピクチャ単位でピクチャメモリ101に入力される。ピクチャメモリ101に入力された各ピクチャは、符号化するピクチャタイプが決定されると、例えば図2(b) に示すように符号化が行われる順に並び替えられる。この符号化順への並び替えは、ピクチャ間予測符号化における参照関係に基づいて行われ、参照ピクチャとして用いられるピクチャが、参照ピクチャとして用いるピクチャよりも先に符号化されるように並び替えられる。
ピクチャメモリ101で並び替えが行われた各ピクチャは、例えば水平16×垂直16画素のグループに分割されたマクロブロック単位で読み出される。また、動き補償および動きベクトルの検出は、例えば水平8×垂直8画素のグループに分割されたブロック単位で行っている。
以降の動作については、符号化対象のピクチャがBピクチャである場合について説明する。
Bピクチャでは、2方向参照を用いたピクチャ間予測符号化を行っている。例えば、図2(a) に示す例でピクチャB11の符号化処理を行う場合、表示時間順で前方にある参照ピクチャはピクチャP10、P7、P4、表示時間順で後方にある参照ピクチャはピクチャP13となる。ここでは、Bピクチャが他のピクチャの符号化時に、参照ピクチャとして用いられない場合を考える。
ピクチャメモリ101より読み出されたピクチャB11のマクロブロックは、動きベクトル検出部106および差分演算部110に入力される。
動き補償符号化部107は、マクロブロック内の各ブロックをフレーム構造で符号化するか、またはフィールド構造で符号化するかを決定する。フレーム構造またはフィールド構造のいずれで符号化するかは、例えば、ブロック内の画素値の分散をフレーム構造とフィールド構造とで求め、分散の小さい方を選択する方法がある。なお、各ピクチャをピクチャ単位でフレーム構造またはフィールド構造のいずれかで符号化することもできる。
動きベクトル検出部106は、決定されたフレーム構造での符号化またはフィールド構造での符号化に応じて、ピクチャメモリ105に格納された参照ピクチャをフレーム単位またはフィールド単位として、マクロブロック内の各ブロックに対して、前方動きベクトルと後方動きベクトルとの検出を行う。ここでは、ピクチャメモリ105に格納されたピクチャP10、P7、P4の再構築画像データを前方参照ピクチャとして、ピクチャP13の再構築画像データを後方参照ピクチャとして用いることになる。動きベクトル検出部106は、検出した動きベクトルを動き補償符号化部107に対して出力する。
動き補償符号化部107は、動きベクトル検出部106で検出された動きベクトルを用いて、マクロブロックの符号化モードを決定する。ここで、Bピクチャの符号化モードは、例えばピクチャ内符号化、前方動きベクトルを用いたピクチャ間予測符号化、後方動きベクトルを用いたピクチャ間予測符号化、双方向動きベクトルを用いたピクチャ間予測符号化、ダイレクトモードの中から、いずれの方法で符号化するかを選択することができるものとする。また、ダイレクトモードについては、あらかじめ時間的ダイレクトモードまたは空間的ダイレクトモードが指定されているものとする。なお、符号化モードの決定においては、一般的には少ないビット量でより符号化誤差が小さくなる方法を選択する。
次に、ダイレクトモードで符号化することが選択された場合に行うダイレクトモード可否判定部109による符号化モードの確定の動作について説明する。この符号化モードの確定の動作は、以下に説明する方法1〜3のいずれかによって行うことができる。
(方法1)
図3は方法1による符号化モードの確定の動作を示すフロー図である。動き補償符号化部107は、ダイレクトモードで符号化することを選択すると、その旨をダイレクトモード可否判定部109に通知する。通知を受けたダイレクトモード可否判定部109は、まず、時間的ダイレクトモードが指定されているか否かを判定する(ステップS101)。この結果、時間的ダイレクトモードであると判定した場合、ダイレクトモード可否判定部109は、フィールド符号化が選択されているか否かを判定する(ステップS102)。この結果、フィールド符号化が選択されていないと判定した場合には、ダイレクトモード可否判定部109は、動き補償符号化部107に対して時間的ダイレクトモードでの符号化を指示する(ステップS103)。一方、フィールド符号化が選択されていると判定した場合には、ダイレクトモード可否判定部109は、スケーリング処理によって符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS104)。すなわち、参照する2枚のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドであるか否かを判定している。この結果、スケーリング処理が可能である場合(ステップS104の条件判定がNOの場合)、ダイレクトモード可否判定部109は、動き補償符号化部107に対して時間的ダイレクトモードでの符号化を指示する(ステップS103)。一方、スケーリング処理が可能でない場合(ステップS104の条件判定がYESの場合)、ダイレクトモード可否判定部109は、動き補償符号化部107に対してダイレクトモード以外での符号化を指示する(ステップS105)。
また、上記判定(ステップS101)の結果、時間的ダイレクトモードでない(すなわち、空間的ダイレクトモードである)と判定した場合も、ダイレクトモード可否判定部109は、フィールド符号化が選択されているか否かを判定する(ステップS106)。この結果、フィールド符号化が選択されていないと判定した場合には、ダイレクトモード可否判定部109は、動き補償符号化部107に対して空間的ダイレクトモードでの符号化を指示する(ステップS107)。
上記判定(ステップS106)の結果、フィールド符号化が選択されていると判定した場合には、ダイレクトモード可否判定部109は、空間的ダイレクトモードによりピクチャの有する表示順情報に基づいて、符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS108)。すなわち、符号化対象であるブロックの周辺の3画素を含む符号化済みの3ブロックのそれぞれの動きベクトルのうち、符号化対象ピクチャ(フィールド)から表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドであるか否かを判定している。このとき、上記条件を満たした場合に、動きベクトルを予測して生成することが可能でないと判定する。
上記判定(ステップS108)の結果、動きベクトルを予測して生成することが可能であると判定した場合(ステップS108の条件判定がNOの場合)、ダイレクトモード可否判定部109は、動き補償符号化部107に対して空間的ダイレクトモードでの符号化を指示する(ステップS107)。
一方、動きベクトルを予測して生成することが可能でないと判定した場合(ステップS108の条件判定がYESの場合)、ダイレクトモード可否判定部109は、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、符号化対象フィールドと同じ属性であるフィールドを、符号化対象フィールドから表示時間的に最も近くにあるフィールドとするように、動き補償符号化部107に対して指示する(ステップS109)。ここで、同じ属性であるフィールドとは、符号化対象フィールドがトップフィールドであればトップフィールド、符号化対象フィールドがボトムフィールドであればボトムフィールドである。その上で、ダイレクトモード可否判定部109は、動き補償符号化部107に対して空間的ダイレクトモードでの符号化を指示する(ステップS107)。
(方法2)
図4は方法2による符号化モードの確定の動作を示すフロー図である。なお、フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でないと判定された場合の処理以外(ステップS201〜S204、S206〜S209)は、方法1と同様であるので説明を省略する。
フィールド符号化が選択されていると判定し、さらにスケーリング処理が可能でないと判定した場合、ダイレクトモード可否判定部109は、動き補償符号化部107に対して動きベクトルを「0」とした時間的ダイレクトモードでの符号化を指示する(ステップS205)。
(方法3)
図5は方法3による符号化モードの確定の動作を示すフロー図である。なお、フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でないと判定された場合の処理以外(ステップS301〜S306、S308)は、方法1と同様であるので説明を省略する。
フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でない場合、ダイレクトモード可否判定部109は、空間的ダイレクトモードにより符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS307)。それ以降の動作に関しては方法1と同様である。
また、上記方法1〜3における、空間的ダイレクトモードで動きベクトルを予測して生成することが可能でないと判定された場合の上記処理(ステップS109、S209、S308)については、次のように処理を行って方法1’〜3’とすることもできる。図6は方法1’による符号化モードの確定の動作を示すフロー図である。なお、方法2’〜3’については、方法1’と同様であるので説明および図は省略する。
(方法1’)
ダイレクトモード可否判定部109は、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、後で符号化されたフィールド(すなわち、符号化対象フィールドから時間的に最も近くに符号化されたフィールド)を、符号化対象フィールドから表示時間的に最も近くにあるフィールドとするように、動き補償符号化部107に対して指示する(図6、ステップS110)。
次に、動き補償符号化部107は、上記のようにダイレクトモード可否判定部109が確定した符号化モードにより、予測画像データを生成する。以下、この確定した符号化モード毎にそれぞれ動作について説明する。
(通常の時間的ダイレクトモードでの符号化)
この場合、動き補償符号化部107は、背景技術において図18を用いて説明した時間的ダイレクトモードと全く同様の方法を用いて動き補償を行う。すなわち、符号化済みピクチャの中の、符号化対象のブロックと同じ位置にあるブロックの動きベクトルを参照動きベクトルとして利用し、動き補償符号化部107は、この参照動きベクトルを動きベクトル記憶部108より読み出し、この参照動きベクトルおよびピクチャ間の表示時間的位置関係に基づいてスケーリング処理を行って符号化対象ブロックで用いる動きベクトルを予測して生成する。そして、この動きベクトルを用いて、動き補償符号化部107は2枚の参照ピクチャから2方向予測を行って、予測画像データを生成する。
(動きベクトルを「0」とした時間的ダイレクトモードでの符号化)
動き補償符号化部107は、スケーリング処理による動きベクトルの予測生成を行わずに、直接動きベクトルとして「0」を用いて2枚の参照ピクチャから2方向予測を行って、予測画像データを生成する。
このとき使用する動きベクトルの値は「0」に限られたものではなく、スケーリングを必要としないで決定することのできる所定の値とすればよい。上記の例では、2枚の参照ピクチャに対する動きベクトルを2つとも「0」として説明しているが、これに限られるものではなく、2枚の参照ピクチャに対する動きベクトルの少なくとも1つを「0」としてもよい。
(ダイレクトモード以外での符号化)
動き補償符号化部107は、動きベクトル検出部106で検出された動きベクトルを用いて、2枚の参照ピクチャから2方向予測を行って、予測画像データを生成する。
(空間的ダイレクトモードでの符号化)
この場合、動き補償符号化部107は、背景技術において図19を用いて説明した空間的ダイレクトモードと全く同様の方法を用いて動き補償を行う。すなわち、符号化対象であるブロックの周辺の3画素を含む符号化済みの3ブロックのそれぞれの動きベクトルのうち、符号化対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルを使用して、符号化対象ブロックで用いる動きベクトルを予測して生成する。
このとき、上記3ブロックのそれぞれの動きベクトルのうち、符号化対象ピクチャ(フィールド)から表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドである場合、動き補償符号化部107は、ダイレクトモード可否判定部109からの指示に基づいて、同じ表示順情報を持つトップフィールドとボトムフィールドのうち1つを、符号化対象フィールドから表示時間的に最も近くにあるフィールドとする。
すなわち、ダイレクトモード可否判定部109からの指示が、上記方法1〜3に説明した指示である場合には、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、符号化対象フィールドと同じ属性であるフィールドを、符号化対象フィールドから表示時間的に最も近くにあるフィールドとする。例えば、図23に示す例では、同じ表示順情報を持っているフィールドP2_T、P2_Bのうち、符号化対象フィールドB3_Tと同じトップフィールドであるフィールドP2_Tを符号化対象フィールドから表示時間的に最も近くにあるフィールドとする。よって、フィールドP2_Tを参照している動きベクトルMVA1を、符号化対象ブロックの1つめの動きベクトルの候補として決定する。
また、ダイレクトモード可否判定部109からの指示が、上記方法1’〜3’に説明した指示である場合には、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、後で符号化されたフィールドを、符号化対象フィールドから表示時間的に最も近くにあるフィールドとする。例えば、図23に示す例でフィールドP2_T、P2_BのうちフィールドP2_Bが後で符号化されたとすると、同じ表示順情報を持っているフィールドP2_T、P2_Bのうち、後に符号化されたフィールドP2_Bを符号化対象フィールドから表示時間的に最も近くにあるフィールドとする。よって、フィールドP2_Bを参照している動きベクトルMVC1を、符号化対象ブロックの1つめの動きベクトルMV_Fの候補として決定する。2つめの動きベクトルであるMV_Bを求める場合も同様である。
このように決定した動きベクトルが3つである場合には、それらの中央値を符号化対象ブロックの動きベクトルとして選択する。また、2つである場合には、それらの平均値を求め、符号化対象ブロックの動きベクトルとする。また、1つだけである場合(図23に示す例)には、その動きベクトルを符号化対象ブロックの動きベクトルとする。このようにして求めた動きベクトルを用いて、動き補償符号化部107は、参照ピクチャから動き補償を行って、予測画像データを生成する。
次に、動き補償符号化部107は、上記のように生成した予測画像データを差分演算部110と加算演算部111とに出力する。なお、動き補償符号化部107がピクチャ内符号化を選択した場合には、予測画像データは出力しない。また、動き補償符号化部107は、ピクチャ内符号化を選択した場合には、スイッチ112をピクチャメモリ101より直接信号が入力される側に接続し、ピクチャ間予測符号化を選択した場合には、スイッチ112を差分演算部110より信号が入力される側に接続するように制御する。また、動き補償符号化部107は、決定した符号化モードを符号列生成部103に対して出力する。
動き補償符号化部107より予測画像データが入力された差分演算部110は、この予測画像データと、ピクチャメモリ101より読み出されたピクチャB11のマクロブロックの画像データとの差分を演算し、予測残差画像データを生成して予測残差符号化部102へ出力する。
予測残差画像データが入力された予測残差符号化部102は、この予測残差画像データに対して周波数変換や量子化等の符号化処理を行い、符号化データを生成して符号列生成部103へ出力する。符号化データが入力された符号列生成部103は、この符号化データに対して可変長符号化等を行い、さらに動き補償符号化部107から入力された動きベクトルの情報、符号化モードの情報等を付加することにより符号列を生成し、出力する。なお、ダイレクトモードで符号化されたマクロブロックについては、動きベクトルの情報は符号化列には付加しない。
以降同様の処理により、ピクチャB11の残りのマクロブロックについても符号化処理を行う。
以上のように、フィールド符号化が選択されており、時間的ダイレクトモードにより符号化を行う場合に、スケーリング処理が可能であるか否かの判定を行っている。そして、スケーリング処理が可能でないと判定された場合に、符号化モードを変更する等の処理を行っているので、スケーリング処理ができずに符号化を行うことができないということがない。
また、フィールド符号化が選択されており、空間的ダイレクトモードにより符号化を行う場合に、ピクチャの有する表示順情報に基づいて符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かの判定を行っている。そして、動きベクトルを予測して生成することが可能でないと判定された場合に、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、どちらのフィールドを符号化対象フィールドから表示時間的に最も近くにあるフィールドとするかを規定する処理を行っているので、動きベクトルを予測して生成することができずに符号化を行えないということがない。
図7は、本発明に係る動画像復号化方法を用いた動画像復号化装置の一実施の形態の構成を示すブロック図である。
動画像復号化装置は、符号列解析部201、予測残差復号化部202、ピクチャメモリ203、動き補償復号化部204、動きベクトル記憶部205、ダイレクトモード可否判定部206、加算演算部207、およびスイッチ208を備えている。
符号列解析部201は、入力された符号列より復号化モードの情報、および符号化時に用いられた動きベクトルの情報等の各種データの抽出を行う。予測残差復号化部202は、入力された予測残差符号化データの復号化を行い、予測残差画像データを生成する。動き補償復号化部204は、復号化モードの情報、および動きベクトルの情報等に基づいて、動き補償画像データを生成する。動きベクトル記憶部205は、符号列解析部201により抽出された動きベクトルを記憶する。
ダイレクトモード可否判定部206は、符号列解析部201で抽出された復号化モードが時間的ダイレクトモードである場合に、スケーリング処理を行うことができるか否かの判定を行い、復号化モードの確定を行う。また、ダイレクトモード可否判定部206は、復号化モードが空間的ダイレクトモードである場合に、復号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かの判定を行う。加算演算部207は、予測残差復号化部202より入力された予測残差画像データと、動き補償復号化部204より入力された動き補償画像データとを加算し、復号化画像データを生成する。ピクチャメモリ203は、生成された復号化画像データを格納する。
次に、上記のように構成された動画像復号化装置の動作について説明する。なお、ピクチャの順序については図2を用いて説明する。ここで、Pピクチャは、表示時間順で前方にある近傍のIピクチャまたはPピクチャを参照ピクチャとし、Bピクチャは、表示時間順で前方にある近傍のIピクチャまたはPピクチャと、表示時間順で後方にある近傍1枚のIピクチャまたはPピクチャとを参照ピクチャとして用いて符号化されているものとする。
符号列は、図2(b) に示すようなピクチャ順で符号列解析部201に入力される。符号列解析部201は、入力された符号列より復号化モードの情報、および動きベクトルの情報等の各種データの抽出を行う。符号列解析部201は、抽出した復号化モードの情報を動き補償復号化部204へ、動きベクトルの情報を動きベクトル記憶部205へ出力する。
また、符号列解析部201は、抽出した予測残差符号化データを予測残差復号化部202へ出力する。予測残差符号化データが入力された予測残差復号化部202は、この予測残差符号化データの復号化を行い、予測残差画像データを生成し、加算演算部207へ出力する。
以降の動作については、復号化対象のピクチャがBピクチャであり、符号列解析部201で抽出された復号化モードがダイレクトモードである場合について説明する。
符号列解析部201より復号化モードの情報が入力された動き補償復号化部204は、復号化対象のブロックをダイレクトモードで復号化するかどうかを判定し、ダイレクトモードである場合にダイレクトモード可否判定部206に通知する。
次に、復号化モードがダイレクトモードである場合に行うダイレクトモード可否判定部206による復号化モードの確定の動作について説明する。この復号化モードの確定の動作は、以下に説明する方法1〜3のいずれかによって行うことができる。
(方法1)
図8は方法1による復号化モードの確定の動作を示すフロー図である。ダイレクトモード可否判定部206は、まず、時間的ダイレクトモードが指定されているか否かを判定する(ステップS401)。この結果、時間的ダイレクトモードであると判定した場合、ダイレクトモード可否判定部206は、フィールド符号化が行われているか否かを判定する(ステップS402)。この結果、フィールド符号化が行われていないと判定した場合には、ダイレクトモード可否判定部206は、動き補償復号化部204に対して時間的ダイレクトモードでの復号化を指示する(ステップS403)。一方、フィールド符号化が選択されていると判定した場合には、ダイレクトモード可否判定部206は、スケーリング処理によって復号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS404)。すなわち、参照する2枚のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドであるか否かを判定している。この結果、スケーリング処理が可能である場合(ステップS404の条件判定がNOの場合)、ダイレクトモード可否判定部206は、動き補償復号化部204に対して時間的ダイレクトモードでの復号化を指示する(ステップS403)。一方、スケーリング処理が可能でない場合(ステップS404の条件判定がYESの場合)、ダイレクトモード可否判定部206は、動き補償復号化部204に対してダイレクトモード以外での復号化を指示する(ステップS405)。
また、上記判定(ステップS401)の結果、時間的ダイレクトモードでない(すなわち、空間的ダイレクトモードである)と判定した場合も、ダイレクトモード可否判定部206は、フィールド符号化が行われているか否かを判定する(ステップS406)。この結果、フィールド符号化が選択されていないと判定した場合には、ダイレクトモード可否判定部206は、動き補償復号化部204に対して空間的ダイレクトモードでの復号化を指示する(ステップS407)。
上記判定(ステップS406)の結果、フィールド符号化が選択されていると判定した場合には、ダイレクトモード可否判定部206は、空間的ダイレクトモードによりピクチャの有する表示順情報に基づいて、復号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS408)。すなわち、復号化対象であるブロックの周辺の3画素を含む復号化済みの3ブロックのそれぞれの動きベクトルのうち、復号化対象ピクチャ(フィールド)から表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドであるか否かを判定している。このとき、上記条件を満たした場合に、動きベクトルを予測して生成することが可能でないと判定する。
上記判定(ステップS408)の結果、動きベクトルを予測して生成することが可能であると判定した場合(ステップS408の条件判定がNOの場合)、ダイレクトモード可否判定部206は、動き補償復号化部204に対して空間的ダイレクトモードでの復号化を指示する(ステップS407)。
一方、動きベクトルを予測して生成することが可能でないと判定した場合(ステップS408の条件判定がYESの場合)、ダイレクトモード可否判定部206は、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、復号化対象フィールドと同じ属性であるフィールドを、復号化対象フィールドから表示時間的に最も近くにあるフィールドとするように、動き補償復号化部204に対して指示する(ステップS409)。ここで、同じ属性であるフィールドとは、復号化対象フィールドがトップフィールドであればトップフィールド、復号化対象フィールドがボトムフィールドであればボトムフィールドである。その上で、ダイレクトモード可否判定部206は、動き補償復号化部204に対して空間的ダイレクトモードでの復号化を指示する(ステップS407)。
(方法2)
図9は方法2による復号化モードの確定の動作を示すフロー図である。なお、フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でないと判定された場合の処理以外(ステップS501〜S504、S506〜S509)は、方法1と同様であるので説明を省略する。
フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でないと判定された場合、ダイレクトモード可否判定部206は、動き補償復号化部204に対して動きベクトルを「0」とした時間的ダイレクトモードでの復号化を指示する(ステップS505)。
(方法3)
図10は方法3による復号化モードの確定の動作を示すフロー図である。なお、フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でないと判定された場合の処理以外(ステップS601〜S606、S608)は、方法1と同様であるので説明を省略する。
フィールド符号化が選択されていると判定され、さらにスケーリング処理が可能でない場合、ダイレクトモード可否判定部206は、空間的ダイレクトモードにより復号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かを判定する(ステップS607)。それ以降の動作に関しては方法1と同様である。
また、上記方法1〜3における、空間的ダイレクトモードで動きベクトルを予測して生成することが可能でないと判定された場合の上記処理(ステップS409、S509、S608)については、次のように処理を行って方法1’〜3’とすることもできる。図11は方法1’による復号化モードの確定の動作を示すフロー図である。なお、方法2’〜3’については、方法1’と同様であるので説明および図は省略する。
(方法1’)
ダイレクトモード可否判定部206は、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、後で復号化されたフィールド(すなわち、復号化対象フィールドから時間的に最も近くに復号化されたフィールド)を、復号化対象フィールドから表示時間的に最も近くにあるフィールドとするように、動き補償復号化部204に対して指示する(図11、ステップS410)。
次に、動き補償復号化部204は、上記のようにダイレクトモード可否判定部206が確定した復号化モードにより、動き補償画像データを生成する。以下、この確定した復号化モード毎にそれぞれ動作について説明する。
(通常の時間的ダイレクトモードでの復号化)
この場合、動き補償復号化部204は、背景技術において図18を用いて説明した時間的ダイレクトモードと全く同様の方法を用いて動き補償を行う。すなわち、復号化済みピクチャの中の、復号化対象のブロックと同じ位置にあるブロックの動きベクトルを参照動きベクトルとして利用し、動き補償復号化部204は、この参照動きベクトルを動きベクトル記憶部205より読み出し、この参照動きベクトルおよびピクチャ間の表示時間的位置関係に基づいてスケーリング処理を行って復号化対象ブロックで用いる動きベクトルを予測して生成する。そして、この動きベクトルを用いて、動き補償復号化部204は2枚の参照ピクチャから2方向予測を行って、動き補償画像データを生成する。
(動きベクトルを「0」とした時間的ダイレクトモードでの復号化)
動き補償復号化部204は、スケーリング処理による動きベクトルの予測生成を行わずに、直接動きベクトルとして「0」を用いて2枚の参照ピクチャから2方向予測を行って、予測画像データを生成する。
このとき使用する動きベクトルの値は「0」に限られたものではなく、スケーリングを必要としないで決定することのできる所定の値とすればよい。上記の例では、2枚の参照ピクチャに対する動きベクトルを2つとも「0」として説明しているが、これに限られるものではなく、2枚の参照ピクチャに対する動きベクトルの少なくとも1つを「0」としてもよい。
(ダイレクトモード以外での復号化)
動き補償復号化部204は、動きベクトル記憶部205から符号化時に用いられた動きベクトルを読み出し、この動きベクトルを用いて2枚の参照ピクチャから2方向予測を行って、動き補償画像データを生成する。
(空間的ダイレクトモードでの復号化)
この場合、動き補償復号化部204は、背景技術において図19を用いて説明した空間的ダイレクトモードと全く同様の方法を用いて動き補償を行う。すなわち、復号化対象であるブロックの周辺の3画素を含む復号化済みの3ブロックのそれぞれの動きベクトルのうち、復号化対象ピクチャから表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルを使用して、符号化対象ブロックで用いる動きベクトルを予測して生成する。
このとき、上記3ブロックのそれぞれの動きベクトルのうち、復号化対象ピクチャ(フィールド)から表示時間的に最も近くにある既に復号化されたピクチャを参照した動きベクトルが複数存在し、かつ、その参照する複数のピクチャが同じフレームに属し、同じ表示順情報を持つトップフィールドとボトムフィールドである場合、動き補償復号化部204は、ダイレクトモード可否判定部206からの指示に基づいて、同じ表示順情報を持つトップフィールドとボトムフィールドのうち1つを、復号化対象フィールドから表示時間的に最も近くにあるフィールドとする。
すなわち、ダイレクトモード可否判定部206からの指示が、上記方法1〜3に説明した指示である場合、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、復号化対象フィールドと同じ属性であるフィールドを、復号化対象フィールドから表示時間的に最も近くにあるフィールドとする。例えば、図23に示す例では、同じ表示順情報を持っているフィールドP2_T、P2_Bのうち、復号化対象フィールドB3_Tと同じトップフィールドであるフィールドP2_Tを復号化対象フィールドから表示時間的に最も近くにあるフィールドとする。よって、フィールドP2_Tを参照している動きベクトルMVA1を、復号化対象ブロックの1つめの動きベクトルの候補として決定する。
また、ダイレクトモード可否判定部206からの指示が、上記方法1’〜3’に説明した指示である場合、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、後で復号化されたフィールドを、復号化対象フィールドから表示時間的に最も近くにあるフィールドとする。例えば、図23に示す例でフィールドP2_T、P2_BのうちフィールドP2_Bが後で復号化されたとすると、同じ表示順情報を持っているフィールドP2_T、P2_Bのうち、後に復号化されたフィールドP2_Bを復号化対象フィールドから表示時間的に最も近くにあるフィールドとする。よって、フィールドP2_Bを参照している動きベクトルMVC1を、復号化対象ブロックの1つめの動きベクトルMV_Fの候補として決定する。2つめの動きベクトルであるMV_Bを求める場合も同様である。
このように決定した動きベクトルが3つである場合には、それらの中央値を復号化対象ブロックの動きベクトルとして選択する。また、2つである場合には、それらの平均値を求め、復号化対象ブロックの動きベクトルとする。また、1つだけである場合(図23に示す例)には、その動きベクトルを復号化対象ブロックの動きベクトルとする。このようにして求めた動きベクトルを用いて、動き補償復号化部204は、参照ピクチャから動き補償を行って、動き補償画像データを生成する。
次に、動き補償復号化部204は、上記のように生成した動き補償画像データ(ブロック)を加算演算部207へ出力する。加算演算部207は、動き補償画像データと、予測残差復号化部202より入力された予測残差画像データとを加算し、復号化画像データを生成してピクチャメモリ203に格納する。
以降同様の処理により、ピクチャB11の残りのマクロブロックについても復号化処理を行う。そして、図2(b) に示す例では、ピクチャB11のすべてのマクロブロックについて処理が終了すると、次にピクチャB12の復号化処理を行う。以上のように復号化処理されたピクチャは、図2(a) に示すように順次出力画像としてピクチャメモリ203から出力される。
以上のように、フィールド符号化が選択されており、抽出した復号化モードが時間的ダイレクトモードである場合に、スケーリング処理が可能であるか否かの判定を行っている。そして、スケーリング処理が可能でないと判定された場合に、復号化モードを変更する等の処理を行っているので、スケーリング処理ができずに復号化を行うことができないということがない。
また、フィールド符号化が選択されており、抽出した復号化モードが空間的ダイレクトモードである場合に、ピクチャの有する表示順情報に基づいて符号化対象ブロックで用いる動きベクトルを予測して生成することができるか否かの判定を行っている。そして、動きベクトルを予測して生成することが可能でないと判定された場合に、同じ表示順情報を持つトップフィールドとボトムフィールドのうち、どちらのフィールドを復号化対象フィールドから表示時間的に最も近くにあるフィールドとするかを規定する処理を行っているので、動きベクトルを予測して生成することができずに復号化を行えないということがない。
なお、本実施の形態においては、空間的ダイレクトモードでの符号化時に、動き補償符号化部107は、符号化対象であるブロックの周辺の3画素を含む符号化済みの3ブロックのそれぞれの動きベクトルのうちから、符号化対象ブロックの動きベクトルの候補を決定する際に、符号化対象ピクチャから表示時間的に最も近くにある既に符号化されたピクチャを参照した動きベクトルを候補として決定しているが、これに限られるものではない。例えば、フィールド符号化時に、符号化対象フィールドと同じ属性であるフィールドのうちから、符号化対象フィールドから表示時間的に最も近くにあるフィールドを参照した動きベクトルを候補として決定しても構わない。この場合、本実施の形態がまず表示順情報に基づいて候補を決定しているのに対して、まず同じ属性であるフィールドであることを優先させて候補を決定していることになる。また、復号化時の動き補償復号化部204での動作についても、同様である。
また、本実施の形態においては、各ピクチャは、フレーム構造またはフィールド構造のいずれかを用いて適応的に符号化、復号化処理されるとして説明したが、これは例えばブロック単位でフレーム構造またはフィールド構造のいずれかを用いて適応的に符号化、復号化処理されるとしても、本発明と同様の処理により実施することが可能であり、同様の効果が得られる。
また、本実施の形態においては、Pピクチャは前方1方向のピクチャを参照して処理され、Bピクチャは前方および後方の2方向のピクチャを参照して処理されるピクチャとして説明したが、これらのPピクチャは後方1方向のピクチャを参照して処理され、Bピクチャは前方2方向または後方2方向のピクチャを参照して処理されるとしても、同様の効果が得られる。
なお、本発明の実施の形態における表示順情報は、表示の順番に限定されるものではなく、実際の表示時間や、表示時間の値が大きくなるのに伴って値が大きくなる所定のピクチャを基準とした各ピクチャの相対順序であっても良い。
(実施の形態2)
さらに、上記実施の形態1で示した画像符号化方法または画像復号化方法の構成を実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記実施の形態1で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
図12は、上記実施の形態1の画像符号化方法または画像復号化方法を格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
図12(b)は、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図12(a)は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクFD上に割り当てられた領域に、上記プログラムとしての画像符号化方法が記録されている。
また、図12(c)は、フレキシブルディスクFDに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしての画像符号化方法または画像復号化方法をフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記画像符号化方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
さらにここで、上記実施の形態で示した動画像符号化方法や動画像復号化方法の応用例とそれを用いたシステムを説明する。
図13は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107〜ex110が設置されている。
このコンテンツ供給システムex100は、例えば、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex107〜ex110を介して、コンピュータex111、PDA(personal digital assistant)ex112、カメラex113、携帯電話ex114、カメラ付きの携帯電話ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図13のような組合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex107〜ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、PDC(Personal Digital Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはGSM(Global System for Mobile Communications)方式の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
また、ストリーミングサーバex103は、カメラex113から基地局ex109、電話網ex104を通じて接続されており、カメラex113を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするサーバ等で行ってもよい。また、カメラex116で撮影した動画データはコンピュータex111を介してストリーミングサーバex103に送信されてもよい。カメラex116はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex116で行ってもコンピュータex111で行ってもどちらでもよい。また、符号化処理はコンピュータex111やカメラex116が有するLSIex117において処理することになる。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な記録媒体である何らかの蓄積メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込んでもよい。さらに、カメラ付きの携帯電話ex115で動画データを送信してもよい。このときの動画データは携帯電話ex115が有するLSIで符号化処理されたデータである。
このコンテンツ供給システムex100では、ユーザがカメラex113、カメラex116等で撮影しているコンテンツ(例えば、音楽ライブを撮影した映像等)を上記実施の形態同様に符号化処理してストリーミングサーバex103に送信する一方で、ストリーミングサーバex103は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114等がある。このようにすることでコンテンツ供給システムex100は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した動画像符号化装置あるいは動画像復号化装置を用いるようにすればよい。
その一例として携帯電話について説明する。
図14は、上記実施の形態で説明した動画像符号化方法と動画像復号化方法を用いた携帯電話ex115を示す図である。携帯電話ex115は、基地局ex110との間で電波を送受信するためのアンテナex201、CCDカメラ等の映像、静止画を撮ることが可能なカメラ部ex203、カメラ部ex203で撮影した映像、アンテナex201で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex202、操作キーex204群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex208、音声入力をするためのマイク等の音声入力部ex205、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex207、携帯電話ex115に記録メディアex207を装着可能とするためのスロット部ex206を有している。記録メディアex207はSDカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるEEPROM(Electrically Erasable and Programmable Read Only Memory)の一種であるフラッシュメモリ素子を格納したものである。
さらに、携帯電話ex115について図15を用いて説明する。携帯電話ex115は表示部ex202及び操作キーex204を備えた本体部の各部を統括的に制御するようになされた主制御部ex311に対して、電源回路部ex310、操作入力制御部ex304、画像符号化部ex312、カメラインターフェース部ex303、LCD(Liquid Crystal Display)制御部ex302、画像復号化部ex309、多重分離部ex308、記録再生部ex307、変復調回路部ex306及び音声処理部ex305が同期バスex313を介して互いに接続されている。
電源回路部ex310は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付ディジタル携帯電話ex115を動作可能な状態に起動する。
携帯電話ex115は、CPU、ROM及びRAM等でなる主制御部ex311の制御に基づいて、音声通話モード時に音声入力部ex205で集音した音声信号を音声処理部ex305によってディジタル音声データに変換し、これを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。また携帯電話機ex115は、音声通話モード時にアンテナex201で受信した受信データを増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部ex306でスペクトラム逆拡散処理し、音声処理部ex305によってアナログ音声データに変換した後、これを音声出力部ex208を介して出力する。
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex204の操作によって入力された電子メールのテキストデータは操作入力制御部ex304を介して主制御部ex311に送出される。主制御部ex311は、テキストデータを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して基地局ex110へ送信する。
データ通信モード時に画像データを送信する場合、カメラ部ex203で撮像された画像データをカメラインターフェース部ex303を介して画像符号化部ex312に供給する。また、画像データを送信しない場合には、カメラ部ex203で撮像した画像データをカメラインターフェース部ex303及びLCD制御部ex302を介して表示部ex202に直接表示することも可能である。
画像符号化部ex312は、本願発明で説明した動画像符号化装置を備えた構成であり、カメラ部ex203から供給された画像データを上記実施の形態で示した動画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex308に送出する。また、このとき同時に携帯電話機ex115は、カメラ部ex203で撮像中に音声入力部ex205で集音した音声を音声処理部ex305を介してディジタルの音声データとして多重分離部ex308に送出する。
多重分離部ex308は、画像符号化部ex312から供給された符号化画像データと音声処理部ex305から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex306でスペクトラム拡散処理し、送受信回路部ex301でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex201を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex201を介して基地局ex110から受信した受信データを変復調回路部ex306でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex308に送出する。
また、アンテナex201を介して受信された多重化データを復号化するには、多重分離部ex308は、多重化データを分離することにより画像データのビットストリームと音声データのビットストリームとに分け、同期バスex313を介して当該符号化画像データを画像復号化部ex309に供給すると共に当該音声データを音声処理部ex305に供給する。
次に、画像復号化部ex309は、本願発明で説明した動画像復号化装置を備えた構成であり、画像データのビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号化することにより再生動画像データを生成し、これをLCD制御部ex302を介して表示部ex202に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex305は、音声データをアナログ音声データに変換した後、これを音声出力部ex208に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
なお、上記システムの例に限られず、最近は衛星、地上波によるディジタル放送が話題となっており、図16に示すようにディジタル放送用システムにも上記実施の形態の少なくとも動画像符号化装置または動画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex409では映像情報のビットストリームが電波を介して通信または放送衛星ex410に伝送される。これを受けた放送衛星ex410は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex406で受信し、テレビ(受信機)ex401またはセットトップボックス(STB)ex407などの装置によりビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex402に記録したビットストリームを読み取り、復号化する再生装置ex403にも上記実施の形態で示した動画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex404に表示される。また、ケーブルテレビ用のケーブルex405または衛星/地上波放送のアンテナex406に接続されたセットトップボックスex407内に動画像復号化装置を実装し、これをテレビのモニタex408で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでも良い。また、アンテナex411を有する車ex412で衛星ex410からまたは基地局ex107等から信号を受信し、車ex412が有するカーナビゲーションex413等の表示装置に動画を再生することも可能である。
更に、画像信号を上記実施の形態で示した動画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex421に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダex420がある。更にSDカードex422に記録することもできる。レコーダex420が上記実施の形態で示した動画像復号化装置を備えていれば、DVDディスクex421やSDカードex422に記録した画像信号を再生し、モニタex408で表示することができる。
なお、カーナビゲーションex413の構成は例えば図15に示す構成のうち、カメラ部ex203とカメラインターフェース部ex303、画像符号化部ex312を除いた構成が考えられ、同様なことがコンピュータex111やテレビ(受信機)ex401等でも考えられる。
また、上記携帯電話ex114等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式が考えられる。
このように、上記実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。