(本発明の基礎となった知見)
本発明者は、従来の技術に関し、以下の問題が生じることを見出した。
インター予測符号化処理では、動画像符号化装置は、あるピクチャを符号化する際に、符号化対象ピクチャに対して表示順(表示時間順)で前方又は後方にある符号化済みのピクチャを、参照ピクチャとして用いる。そして、動画像符号化装置は、その参照ピクチャに対する符号化対象ピクチャの動き検出により動きベクトルを導出し、動きベクトルに基づいて動き補償を行って得られた予測画像データと符号化対象ピクチャの画像データとの差分を算出する。これにより、時間方向の冗長性が取り除かれる。ここで、動画像符号化装置は、動き検出において、符号化対象ピクチャ内の符号化対象ブロックと、参照ピクチャ内のブロックとの差分値を算出し、最も差分値の小さい参照ピクチャ内のブロックを参照ブロックとして選択する。そして、動画像符号化装置は、符号化対象ブロックと、参照ブロックとを用いて、動きベクトルを検出する。
既に標準化されている、H.264と呼ばれる動画像符号化方式では、情報量の圧縮のために、Iピクチャ、Pピクチャ、Bピクチャという3種類のピクチャタイプが用いられている。Iピクチャは、インター予測符号化処理が行われない、すなわち、ピクチャ内予測(以降、イントラ予測と呼ぶ)符号化処理のみが行われるピクチャである。Pピクチャは、表示順で、符号化対象ピクチャの前方又は後方にある既に符号化済みの1つのピクチャのみを参照してインター予測符号化が行われるピクチャである。Bピクチャは、表示順で、符号化対象ピクチャの前方又は後方にある既に符号化済みの2つのピクチャを参照してインター予測符号化が行われるピクチャである。
また、H.264と呼ばれる動画像符号化方式では、Bピクチャにおける各符号化対象ブロックのインター予測の符号化モードとして、予測画像データと符号化対象ブロックとの画像データの差分値、及び予測画像データの生成に用いた動きベクトルを符号化する動きベクトル検出モードが用いられる。動きベクトル検出モードでは、動画像符号化装置は、予測方向として、符号化対象ピクチャの前方又は後方にある既に符号化済みの2つのピクチャを参照して予測画像を生成する双方向予測と、前方又は後方にある既に符号化済みの1つのピクチャを参照して予測画像を生成する片方向予測とのいずれかを選択することができる。
また、H.264と呼ばれる動画像符号化方式では、動画像符号化装置は、Bピクチャの符号化において、動きベクトルを導出する際に、時間動きベクトル予測(時間予測動きベクトルモード、又は時間ダイレクトモード)と呼ぶ符号化モードを選択することができる。また、時間動きベクトル予測により生成された予測動きベクトル(予測動きベクトル候補)を時間予測動きベクトルと呼ぶ。
時間動きベクトル予測におけるインター予測符号化方法を、図1を用いて説明する。図1は、時間動きベクトル予測における動きベクトルを示す説明図であり、ピクチャB2のブロックaを時間動きベクトル予測で符号化する場合を示している。
この場合、ピクチャB2の後方にある参照ピクチャであるピクチャP3中の、ブロックaと同じ位置にあるブロックbの動きベクトルvbが利用される。動きベクトルvbは、ブロックbが符号化された際に用いられた動きベクトルであり、ピクチャP1を参照している。そして、動画像符号化装置は、動きベクトルvbと平行な動きベクトルを用いて、前方向参照ピクチャであるピクチャP1と、後方参照ピクチャであるピクチャP3とから参照ブロックを取得し、2方向予測を行うことでブロックaを符号化する。すなわち、ブロックaを符号化する際に用いられる動きベクトルは、ピクチャP1に対しては動きベクトルva1であり、ピクチャP3に対しては動きベクトルva2である。
しかしながら、このような時間動きベクトル予測では、時間予測動きベクトルの算出の際に利用する動きベクトル等の情報を持つ参照ピクチャの情報が、例えば、ストリーミング配信などにおけるパケットロス等で紛失された場合に、正しい時間予測動きベクトルを算出することができなくなることにより復号画像に劣化が発生する。さらに、その復号画像を参照するピクチャへとエラーが伝播するため、結果として、復号処理が停止する場合もある。例えば、図1の参照ピクチャP3の情報が紛失した場合は、ピクチャB2の時間予測動きベクトルを算出することができなくなる。その結果、ピクチャB2を正しく復号できずに、復号処理が停止する場合がある。
そこで、本実施の形態では、復号処理におけるエラーの伝播を有効に防止することのできる動画像符号化方法及び動画像復号方法について説明する。
また、このような動画像符号化方法及び動画像復号方法では、符号化効率を向上することが望まれている。
そこで、本実施の形態では、符号化効率を向上できる動画像符号化方法及び動画像復号方法について説明する。
本発明の一態様に係る動画像符号化方法は、符号化対象ピクチャに含まれる符号化対象ブロックを、動きベクトルを用いたインター予測符号化する動画像符号化方法であって、前記符号化対象ピクチャと異なる符号化済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否かを示す第1のフラグを符号化するフラグ符号化ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられることを示す場合、前記時間予測動きベクトルを算出するための第1のパラメータを符号化するパラメータ符号化ステップと、前記第1のパラメータを用いて、前記時間予測動きベクトルを含む複数の第1の予測動きベクトル候補を導出する第1の候補導出ステップと、前記複数の第1の予測動きベクトル候補のうち1つを用いて、前記符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する第1の動きベクトル符号化ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する第2の候補導出ステップと、前記複数の第2の予測動きベクトル候補のうち1つを用いて、前記符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する第2の動きベクトル符号化ステップとを含み、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記第1のパラメータを符号化しない。
これによれば、当該動画像符号化方法は、時間動きベクトル予測を用いない場合には、不必要である第1のパラメータを符号化しない。これにより、当該動画像符号化方法は、符号化効率を向上できる。
例えば、前記第1のパラメータは、前記符号化済みピクチャを特定するためのパラメータを含んでもよい。
例えば、前記第1パラメータは、前記符号化対象ピクチャを符号化するために用いられる参照ピクチャリストで示される複数のピクチャのうち前記符号化済みピクチャを特定するための参照ピクチャインデックスを含んでもよい。
例えば、前記第1パラメータは、前記符号化対象ピクチャを符号化するために用いられる複数の参照ピクチャリストのうち、前記符号化済みピクチャを特定するために、どの参照ピクチャリストを用いるかを示すフラグを含んでもよい。
例えば、前記第1又は第2の候補導出ステップでは、前記複数の第1の予測動きベクトル又は前記複数の第2の予測動きベクトルに、前記時間予測動きベクトルに代わる代替ベクトルを含めてもよい。
これによれば、当該動画像符号化方法は、符号化効率の低下を抑制できる。
例えば、前記動画像符号化方法は、多視点映像に含まれる基本ビュー及び依存ビューそれぞれに属するピクチャを符号化する方法であり、前記基本ビューと前記依存ビューとの間の視差に相当する視差ベクトルを生成する視差ベクトル生成ステップをさらに含み、前記第1の候補導出ステップでは、前記符号化対象ピクチャが、前記依存ビューに属し、且つGOP(Group Of Pictures)先頭のピクチャである場合、前記複数の第1の予測動きベクトルに、前記代替ベクトルとして前記視差ベクトルを含めてもよい。
これによれば、当該動画像符号化方法は、符号化効率の低下を抑制できる。
例えば、前記動画像符号化方法は、多視点映像に含まれる基本ビュー及び依存ビューそれぞれに属するピクチャを符号化する方法であり、前記基本ビューと前記依存ビューとの間の視差に相当する視差ベクトルを生成する視差ベクトル生成ステップをさらに含み、前記第2の候補導出ステップでは、前記複数の第2の予測動きベクトルに、前記代替ベクトルとして前記視差ベクトルを含めてもよい。
これによれば、当該動画像符号化方法は、符号化効率の低下を抑制できる。
また、本発明の一態様に係る動画像復号方法は、復号対象ピクチャに含まれる復号対象ブロックを、動きベクトルを用いたインター予測復号する動画像復号方法であって、前記復号対象ピクチャと異なる復号済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否かを示す第1のフラグを復号するフラグ復号ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられることを示す場合、前記時間予測動きベクトルを算出するための第1のパラメータを復号するパラメータ復号ステップと、前記第1のパラメータを用いて、前記時間予測動きベクトルを含む前記複数の第1の予測動きベクトル候補を導出する第1の候補導出ステップと、前記複数の第1の予測動きベクトル候補のうち1つを用いて、前記復号対象ブロックのインター予測復号に用いられる動きベクトルを復号する第1の動きベクトル復号ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する第2の候補導出ステップと、前記複数の第2の予測動きベクトル候補のうち1つを用いて、前記復号対象ブロックのインター予測復号に用いられる動きベクトルを復号する第2の動きベクトル復号ステップとを含み、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記第1のパラメータを復号しない。
これによれば、当該動画像復号方法は、時間動きベクトル予測を用いない場合には、不必要である第1のパラメータを復号しない。これにより、当該動画像復号方法は、符号化効率を向上できる。
例えば、前記第1のパラメータは、前記復号済みピクチャを特定するためのパラメータを含んでもよい。
例えば、前記第1のパラメータは、前記復号対象ピクチャを復号するために用いられる参照ピクチャリストで示される複数のピクチャのうち前記復号済みピクチャを特定するための参照ピクチャインデックスを含んでもよい。
例えば、前記第1パラメータは、前記復号対象ピクチャを復号するために用いられる複数の参照ピクチャリストのうち、前記符号化済みピクチャを特定するために、どの参照ピクチャリストを用いるかを示すフラグを含んでもよい。
例えば、前記第1又は第2の候補導出ステップでは、前記複数の第1の予測動きベクトル又は前記複数の第2の予測動きベクトルに、前記時間予測動きベクトルに代わる代替ベクトルを含めてもよい。
これによれば、当該動画像復号方法は、符号化効率の低下を抑制できる。
例えば、前記動画像復号方法は、多視点映像に含まれる基本ビュー及び依存ビューそれぞれに属するピクチャを復号する方法であり、前記基本ビューと前記依存ビューとの間の視差に相当する視差ベクトルを生成する視差ベクトル生成ステップをさらに含み、前記第1の候補導出ステップでは、前記復号対象ピクチャが、前記依存ビューに属し、且つGOP(Group Of Pictures)先頭のピクチャである場合、前記複数の第1の予測動きベクトルに、前記代替ベクトルとして前記視差ベクトルを含めてもよい。
これによれば、当該動画像復号方法は、符号化効率の低下を抑制できる。
例えば、前記動画像復号方法は、多視点映像に含まれる基本ビュー及び依存ビューそれぞれに属するピクチャを復号する方法であり、前記基本ビューと前記依存ビューとの間の視差に相当する視差ベクトルを生成する視差ベクトル生成ステップをさらに含み、前記第2の候補導出ステップでは、前記複数の第2の予測動きベクトルに、前記代替ベクトルとして前記視差ベクトルを含めてもよい。
これによれば、当該動画像復号方法は、符号化効率の低下を抑制できる。
また、本発明の一態様に係る動画像符号化装置は、制御回路と、前記制御回路に電気的に接続される記憶装置とを備え、符号化対象ピクチャに含まれる符号化対象ブロックを、動きベクトルを用いたインター予測符号化する動画像符号化装置であって、前記制御回路は、前記符号化対象ピクチャと異なる符号化済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否かを示す第1のフラグを符号化するフラグ符号化ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられることを示す場合、前記時間予測動きベクトルを算出するための第1のパラメータを符号化するパラメータ符号化ステップと、前記第1のパラメータを用いて、前記時間予測動きベクトルを含む複数の第1の予測動きベクトル候補を導出する第1の候補導出ステップと、前記複数の第1の予測動きベクトル候補のうち1つを用いて、前記符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する第1の動きベクトル符号化ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する第2の候補導出ステップと、前記複数の第2の予測動きベクトル候補のうち1つを用いて、前記符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する第2の動きベクトル符号化ステップとを実行し、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記第1のパラメータを符号化しない。
これによれば、当該動画像符号化装置は、時間動きベクトル予測を用いない場合には、不必要である第1のパラメータを復号しない。これにより、当該動画像符号化装置は、符号化効率を向上できる。
また、本発明の一態様に係る動画像復号装置は、制御回路と、前記制御回路に電気的に接続される記憶装置とを備え、復号対象ピクチャに含まれる復号対象ブロックを、動きベクトルを用いたインター予測復号する動画像復号装置であって、前記制御回路は、前記復号対象ピクチャと異なる復号済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否かを示す第1のフラグを復号するフラグ復号ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられることを示す場合、前記時間予測動きベクトルを算出するための第1のパラメータを復号するパラメータ復号ステップと、前記第1のパラメータを用いて、前記時間予測動きベクトルを含む前記複数の第1の予測動きベクトル候補を導出する第1の候補導出ステップと、前記複数の第1の予測動きベクトル候補のうち1つを用いて、前記復号対象ブロックのインター予測復号に用いられる動きベクトルを復号する第1の動きベクトル復号ステップと、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する第2の候補導出ステップと、前記複数の第2の予測動きベクトル候補のうち1つを用いて、前記復号対象ブロックのインター予測復号に用いられる動きベクトルを復号する第2の動きベクトル復号ステップとを実行し、前記第1のフラグが、前記時間動きベクトル予測が用いられないことを示す場合、前記第1のパラメータを復号しない。
これによれば、当該動画像復号装置は、時間動きベクトル予測を用いない場合には、不必要である第1のパラメータを復号しない。これにより、当該動画像復号装置は、符号化効率を向上できる。
また、本発明の一態様に係る動画像符号化復号装置は、前記動画像符号化装置と、前記動画像復号装置とを備える。
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の実施の形態について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図2は、実施の形態1に係る動画像符号化方法を用いた動画像符号化装置の構成を示すブロック図である。
動画像符号化装置100は、図2に示すように、減算部101と、直交変換部102と、量子化部103と、逆量子化部104と、逆直交変換部105と、加算部106と、ブロックメモリ107と、フレームメモリ108と、イントラ予測部109と、インター予測部110と、スイッチ111と、インター予測制御部112と、ピクチャタイプ決定部113と、時間予測動きベクトル算出部114と、colPicメモリ115と、全体ベクトル保存部116と、co-located情報決定部117と、可変長符号化部118とを備えている。
減算部101は、装置外部から符号化対象ブロックを含む入力画像列を取得し、スイッチ111から予測ブロックを取得し、符号化対象ブロックから予測ブロックを減算することにより残差ブロックを生成し、生成された残差ブロックを直交変換部102に出力する。
直交変換部102は、減算部101から取得した残差ブロックを画像領域から周波数領域に変換することにより変換係数を生成し、生成された変換係数を量子化部103に出力する。量子化部103は、量子化部103から取得した変換係数を量子化することにより量子化係数を生成し、生成された量子化係数を逆量子化部104及び可変長符号化部118に出力する。
逆量子化部104は、量子化部103から取得した量子化係数を逆量子化することにより変換係数を復元し、復元された変換係数を逆直交変換部105に出力する。逆直交変換部105は、逆量子化部104から取得した復元された変換係数を周波数領域から画像領域に変換することで残差ブロックを復元し、復元された残差ブロックを加算部106に出力する。
加算部106は、逆直交変換部105から取得した復元された残差ブロックと、スイッチ111から取得した予測ブロックとを加算することで符号化対象ブロックを復元し、復元された符号化対象ブロックをブロックメモリ107及びフレームメモリ108に出力する。ブロックメモリ107は、復元された入力画像列をブロック単位で保存する。フレームメモリ108は、復元された入力画像列をフレーム単位で保存する。
ピクチャタイプ決定部113は、Iピクチャ、Bピクチャ、及びPピクチャのいずれのピクチャタイプで入力画像列を符号化するかを決定し、決定したピクチャタイプを示すピクチャタイプ情報を生成する。そして、ピクチャタイプ決定部113は、生成したピクチャタイプ情報を、スイッチ111、インター予測制御部112、co-located情報決定部117、及び可変長符号化部118に出力する。
イントラ予測部109は、ブロックメモリ107に保存されているブロック単位の復元された入力画像列を用いて、符号化対象ブロックにイントラ予測を行うことで予測ブロックを生成し、生成された予測ブロックをスイッチ111に出力する。インター予測部110は、フレームメモリ108に保存されているフレーム単位の復元された入力画像列と、動き検出により導出した動きベクトルとを用いて、符号化対象ブロックにインター予測を行うことで予測ブロックを生成し、生成された予測ブロックをスイッチ111に出力する。
スイッチ111は、イントラ予測部109で生成された予測ブロック、又はインター予測部110で生成された予測ブロックを、減算部101及び加算部106に出力する。例えば、スイッチ111は、2つの予測ブロックのうち、符号化コストの小さい方の予測ブロックを出力する。
co-located情報決定部117は、co-locatedブロックの使用を禁止するか否か決定する。そして、co-located情報決定部117は、決定結果を示すco-located使用禁止フラグをピクチャ毎に生成し、生成されたco-located使用禁止フラグを時間予測動きベクトル算出部114及び可変長符号化部118に出力する。このco-located使用禁止フラグは、ビットストリーム(典型的には、ピクチャヘッダ又はスライスヘッダ)に含められる。なお、本実施の形態では、co-located使用禁止フラグを用いて、co-locatedブロックの使用を禁止することで、co-locatedブロックの情報を用いた時間予測動きベクトルの算出を禁止し、予測動きベクトル候補に追加しないようにしたが、必ずしもこれには限らない。例えば、直接、co-locatedブロックの情報を用いた時間予測動きベクトルを許可するか否かを示すフラグ(enable_temporal_mvp_flag)等を用意し、このフラグをビットストリーム(典型的には、ピクチャヘッダ又はスライスヘッダ)に含めるようにしても構わない。
また、co-located情報決定部117は、表示順で、符号化対象ピクチャより前方に位置するピクチャに含まれるブロック(以降、前方参照ブロックと呼ぶ)、又は、符号化対象ピクチャより後方に位置するピクチャに含まれるブロック(以降、後方参照ブロックと呼ぶ)のいずれかをco-locatedブロックに決定する。言い換えれば、前方参照ブロックは、参照ピクチャリストL0で特定される参照ピクチャに含まれるブロックである。また、後方参照ブロックは、参照ピクチャリストL1で特定される参照ピクチャに含まれるブロックである。なお、本実施の形態では、参照ピクチャリストL0に前方参照ブロックが含まれ、参照ピクチャリストL1に後方参照ブロックが含まれる例を示したが、必ずしもこれには限らない。例えば、参照ピクチャリストL0に前方参照ブロックが含まれ、参照ピクチャリストL1に前方参照ブロックが含まれる場合のように、両方の参照ピクチャリストに同一方向の参照ブロックが含まれるようにしても構わないし、2つの参照ピクチャリストに逆方向の参照ブロックが含まれるようにしても構わない。
そして、co-located情報決定部117は、決定結果を示すco-located参照方向フラグ(collocated_from_l0_flag)をピクチャ毎に生成し、生成されたco-located参照方向フラグを時間予測動きベクトル算出部114及び可変長符号化部118に出力する。このco-located参照方向フラグは、ビットストリーム(典型的には、ピクチャヘッダ又はスライスヘッダ)に含められる。例えば、collocated_from_l0_flagの値が1の場合は、参照ピクチャリストL0からco-locatedブロックが算出され、collocated_from_0_flagの値が0の場合は、参照ピクチャリストL1からco-locatedブロックが算出される。なお、co-located使用禁止フラグに「禁止」を示す値がセットされている場合は(例えば、enable_temporal_mvp_flagの値が0の場合は)、co-located参照方向フラグ(collocated_from_l0_flag)を省略してもよい。詳細な方法は後述する。
ここで、co-locatedブロックとは、符号化対象ブロックを含む符号化対象ピクチャとは異なるピクチャ内のブロックで、かつ、ピクチャ内における位置が、符号化対象ブロックと同じ位置になるブロックである。例えば、co-located参照方向フラグの値に応じて決定された参照ピクチャリストに含まれる複数のピクチャのうち、参照ピクチャインデックスの値がco-located参照ピクチャインデックス(collocated_ref_idx)の値であるピクチャがco-locatedピクチャとして用いられる。そして、co-locatedピクチャ内の、符号化対象ブロックと同じ位置のブロックがco-locatedブロックとして用いられる。
ここで、co-located参照ピクチャインデックス(collocated_ref_idx)は、co-located参照方向フラグの値に応じて決定される参照ピクチャリストに含まれる複数のピクチャから、co-locatedピクチャを指定するインデックス値である。collocated_ref_idxは、ビットストリーム(典型的には、ピクチャヘッダ又はスライスヘッダ)に含められる。
例えば、co-located情報決定部117は、参照ピクチャリストL1の参照ピクチャインデックス0に対応するピクチャをco-locatedピクチャとして指定する場合には、co-located参照方向フラグ(collocated_from_l0_flag)に値0を設定し、co-located参照ピクチャインデックスcollocated_ref_idxに値0を設定する。なお、co-located情報決定部117は、co-located使用禁止フラグに「禁止」を示す値がセットされている場合は(例えば、enable_temporal_mvp_flagの値が0の場合は)、co-located参照ピクチャインデックス(collocated_ref_idx)を省略してもよい。詳細な方法は後述する。また、なお、符号化対象ブロックとco-locatedブロックとの各ピクチャ内における位置は、厳密に一致していなくてもよい。例えば、co-located情報決定部117は、符号化対象ピクチャとは異なるピクチャ内の符号化対象ブロックの同一の位置のブロックの周辺の(隣接する)ブロックを、co-locatedブロックに設定してもよい。
時間予測動きベクトル算出部114は、co-located情報決定部117から取得したco-located使用禁止フラグの値に応じて、colPicメモリ115に格納されているco-locatedブロックの動きベクトル等のcolPic情報、又は、全体ベクトル保存部に格納されているcolPicピクチャの全体動きベクトルを用いて、予測動きベクトルの候補である予測動きベクトル候補を導出する。
具体的には、co-located禁止フラグがオン(禁止)の場合、時間予測動きベクトル算出部114は、全体ベクトル保存部116からリードした全体動きベクトル(代替ベクトル)を、予測動きベクトル候補に追加する。一方、co-located禁止フラグがオフ(許可)の場合、時間予測動きベクトル算出部114は、colPicメモリ115からリードしたcolPic情報を用いて算出される時間予測動きベクトルを、予測動きベクトル候補に追加する。
また、時間予測動きベクトル算出部114は、候補として追加した予測動きベクトルに予測動きベクトルインデックスの値を割り当てる。そして、時間予測動きベクトル算出部114は、候補として追加した予測動きベクトルと予測動きベクトルインデックスとを、インター予測制御部112に出力する。一方、co-locatedブロックが動きベクトルを有していない場合、時間予測動きベクトル算出部114は、時間動きベクトル予測による動きベクトルの導出を中止するか、又は、動き量が0のベクトルを予測動きベクトル候補として導出する。また、時間予測動きベクトル算出部114は、全体動きベクトルを可変長符号化部118に出力する。
インター予測制御部112は、複数の予測動きベクトル候補のうちから、動き検出により導出された動きベクトルとの誤差が最も小さい予測動きベクトルを用いて、動きベクトルの符号化を行うと決定する。ここで、誤差とは、例えば、予測動きベクトル候補と動き検出により導出された動きベクトルとの差分値を示す。
また、インター予測制御部112は、決定した予測動きベクトルに対応する予測動きベクトルインデックスをブロック毎に特定する。そして、インター予測制御部112は、予測動きベクトルインデックスと、動きベクトルと予測動きベクトルとの差分値とを、可変長符号化部118に出力する。また、インター予測制御部112は、符号化対象ブロックの動きベクトル等を含むcolPic情報をcolPicメモリ115に転送する。また、インター予測制御部112は、符号化ブロックの動きベクトル等を全体ベクトル保存部116へ転送する。
colPicメモリ115は、符号化対象ブロックの動きベクトル等を含むcolPic情報を、次のピクチャの符号化時の予測動きベクトル用に格納する。全体ベクトル保存部116は、ピクチャに含まれる複数の符号化対象ブロックの動きベクトルから、全体動きベクトルを算出し、次のピクチャの符号化時の予測動きベクトル用に格納する。
可変長符号化部118は、量子化部103から取得した量子化係数と、インター予測制御部112から取得した予測動きベクトルインデックス及び動きベクトルと予測動きベクトルとの差分値と、ピクチャタイプ決定部113から取得したピクチャタイプ情報と、co-located情報決定部117から取得したco-located使用禁止フラグ(又は、enable_temporal_mvp_flag)、co-located参照方向フラグ(collocated_from_l0_flag)、及びco-located参照ピクチャインデックス(collocated_ref_idx)と、時間予測動きベクトル算出部114から取得した全体動きベクトルとを、可変長符号化することでビットストリームを生成する。
図3は、実施の形態1に係る動画像符号化方法の処理フローの概要を示す図である。
co-located情報決定部117は、予測動きベクトル候補を時間動きベクトル予測で導出する際に、後述する方法で、co-located使用禁止フラグ、co-located参照方向フラグ、及び、co-located参照ピクチャインデックスなどを含むco-located情報を決定する(S11)。
次に、時間予測動きベクトル算出部114は、co-located使用禁止フラグがオン(禁止)(又は、enable_temporal_mvp_flagの値が0)か否かを判定する(S12)。そして、判定結果が真(S12でYes)ならば、時間予測動きベクトル算出部114は、全体ベクトル保存部116から全体動きベクトルをリードし、ピクチャヘッダ等のヘッダ情報にリードした全体動きベクトルを付随させる(S13)。
次に、時間予測動きベクトル算出部114は、全体動きベクトルを、時間予測動きベクトルの代替ベクトルとして、予測動きベクトル候補に追加する(S14)。また、時間予測動きベクトル算出部114は、候補に追加した予測動きベクトルに予測動きベクトルインデックスの値を割り振る。
一方、co-located使用禁止フラグがオフ(S12でNo)(又は、enable_temporal_mvp_flagの値が1)ならば、時間予測動きベクトル算出部114は、co-located情報に応じてcolPicメモリからco-locatedブロックの参照動きベクトル等を含むcolPic情報をリードし、co-locatedブロックの参照動きベクトルを用いて時間予測動きベクトルを算出し、算出された時間予測動きベクトルを予測動きベクトル候補に追加する(S17)。また、時間予測動きベクトル算出部114は、候補に追加した予測動きベクトルに予測動きベクトルインデックスの値を割り振る。
一般に、予測動きベクトルインデックスの値が小さい場合には、必要な情報量は少ない。一方、予測動きベクトルインデックスの値が大きい場合には、必要な情報量は大きい。従って、より精度の高い動きベクトルとなる可能性の高い予測動きベクトルに、小さい予測動きベクトルインデックスが割り当てられると、符号化効率が高くなる。
次に、インター予測部110は、動き検出により導出された動きベクトルを用いてインター予測を行うことにより、符号化対象ブロックの予測ブロックを生成する。そして、減算部101、直交変換部102、量子化部103、及び可変長符号化部118は、インター予測部110で生成された予測ブロックを用いて、符号化対象ブロックを符号化する。
また、インター予測制御部112は、複数の予測動きベクトル候補のうち、動きベクトルとの誤差の最も小さい予測動きベクトル候補である予測動きベクトルを用いて、動きベクトルを符号化する。インター予測制御部112は、例えば、複数の予測動きベクトル候補それぞれと、動き検出により導出された動きベクトルとの差分値を誤差として算出し、算出された誤差のうち最も誤差の小さい予測動きベクトル候補を、動きベクトルの符号化を行う際に用いる予測動きベクトルと決定する。
そして、インター予測制御部112は、選択した予測動きベクトルに対応する予測動きベクトルインデックスと、動きベクトルと予測動きベクトルとの誤差情報とを、可変長符号化部118に出力する。可変長符号化部118は、インター予測制御部112から取得した予測動きベクトルインデックス及び誤差情報を可変長符号化し、可変長符号化された予測動きベクトルインデックス及び誤差情報をビットストリームに含める(S15)。
次に、インター予測制御部112は、インター予測に用いた動きベクトル等を含むcolPic情報を、colPicメモリ115に保存する。colPicメモリ115には、符号化対象ブロックの時間予測動きベクトルを算出するために、参照ピクチャの動きベクトル、参照ピクチャインデックス値、及び予測方向などが格納されている。また、インター予測制御部112は、インター予測に用いた動きベクトル等を、全体ベクトル保存部116に保存する(S16)。
図4は、予測動きベクトル候補の例を示している。動きベクトルA(MV_A)は、符号化対象ブロックの左隣に位置する隣接ブロックAの動きベクトルである。動きベクトルB(MV_B)は、符号化対象ブロックの上隣に位置する隣接ブロックBの動きベクトルである。動きベクトルC(MV_C)は、符号化対象ブロックの右上隣に位置する隣接ブロックCの動きベクトルである。また、Median(MV_A、MV_B、MV_C)は、動きベクトルA、B、Cの中間値を示している。ここで、中間値は、例えば以下の式1~式3を用いて導出される。
予測動きベクトルインデックスの値は、Median(MV_A、MV_B、MV_C)に対応する値が0であり、動きベクトルAに対応する値が1であり、動きベクトルBに対応する値が2であり、動きベクトルCに対応する値が3であり、時間予測動きベクトル(又は代替ベクトル)に対応する値が4である。なお、予測動きベクトルインデックスの割り当て方は、この例に限らない。
図5は、予測動きベクトルインデックスを可変長符号化する際に用いる符号表の例を示している。図5の例では、予測動きベクトルインデックスの値の小さいほうから順に、符号長の短い符号が割り当てられている。このように、予測精度が良い可能性の高い予測動きベクトル候補に小さい予測動きベクトルインデックスが割り当てられることにより、符号化効率を向上させることができる。
図6は、インター予測制御部112における、予測動きベクトル候補の決定フローを示す図である。図6に示すフローにより、インター予測制御部112は、動き検出により導出した動きベクトルとの誤差が最も小さい予測動きベクトル候補を、動きベクトルを符号化する際に用いる予測動きベクトルと決定する。そして、動きベクトルと予測動きベクトルとの誤差情報と、決定した予測動きベクトルを示す予測動きベクトルインデックスとが可変長符号化されてビットストリームに含められる。
具体的には、まず、インター予測制御部112は、予測動きベクトル候補インデックスmvp_idx、及び最小動きベクトル誤差を初期化する(S21)。次に、インター予測制御部112は、予測動きベクトル候補インデックスmvp_idxと、予測動きベクトル候補数(図4に示されるテーブルのレコード数)とを比較する(S22)。
mvp_idx<予測動きベクトル候補数(S22でYes)であれば、インター予測制御部112は、複数の予測動きベクトル候補のうちの現在のmvp_idxの値で特定される予測動きベクトル候補の動きベクトル誤差(誤差情報)を算出する(S23)。例えば、インター予測制御部112は、符号化対象ブロックの符号化に用いた動きベクトルから、図4の予測動きベクトルインデックス=0の予測動きベクトル候補を減算することによって、動きベクトル誤差を算出する。
次に、インター予測制御部112は、ステップS23で算出した動きベクトル誤差と、最小動きベクトル誤差とを比較する(S24)。動きベクトル誤差<最小動きベクトル誤差(S24でYes)であれば、インター予測制御部112は、ステップS23で算出した動きベクトル誤差を最小動きベクトル誤差にセット(上書き)し、現在のmvp_idxを予測動きベクトルインデックスにセット(上書き)する(S25)。一方、動きベクトル誤差≧最小動きベクトル誤差(S24でNo)であれば、ステップS25はスキップされる。
そして、インター予測制御部112は、mvp_idxを1だけインクリメント(S26)し、上記の各処理(ステップS22~ステップS26)を予測動きベクトル候補の数だけ繰り返し実行する。そして、インター予測制御部112は、mvp_idx=予測動きベクトル候補数(S22でNo)となるタイミングで、最小動きベクトル誤差及び予測動きベクトルインデックスにセットされている値を、可変長符号化部118に出力し、図6の処理を終了する(S27)。
図7は、図2に示されたcolPicメモリ115、及び、全体ベクトル保存部116への読み書き処理を示す概念図である。図7において、co-locatedピクチャcolPicに含まれるco-locatedブロックが有する、予測方向1の動きベクトルmvCol1、及び予測方向2の動きベクトルmvCol2は、colPicメモリ115及び全体ベクトル保存部116に格納される。
ここで、符号化対象ブロックが符号化される時には、colPicメモリ115に格納された動きベクトル等を含むcolPic情報、又は、全体ベクトル保存部116の全体動きベクトルがco-located使用禁止フラグに応じて読み出されて予測動きベクトル候補に追加される。
予測動きベクトル候補は、符号化対象ブロックの動きベクトルの符号化に用いられる。なお、本実施の形態1では、予測方向1が前方参照であり、予測方向2が後方参照である例を用いて説明するが、予測方向1が後方参照であり、かつ予測方向2が前方参照であっても構わないし、予測方向1及び予測方向2の両方がともに前方参照、又は後方参照であっても構わない。なお、予測方向1が参照ピクチャリストL0、予測方向2が参照ピクチャリストL1を用いた予測である場合の例を示す。
全体ベクトル保存部116には、符号化対象ピクチャを構成する複数の符号化対象ブロックの動きベクトルから算出される全体動きベクトルが格納される。例えば、全体動きベクトルは、符号化対象ピクチャ全体のインター予測符号化時の動きベクトルの予測方向毎の平均値などである。なお、本実施の形態1では、全体ベクトルとして、符号化対象ピクチャを構成する複数の符号化対象ブロックの動きベクトルの平均値を用いる例を示したが、必ずしもこれに限らない。
例えば、全体動きベクトルは、符号化対象ピクチャを構成する複数の符号化対象ブロックのインター予測符号化時の動きベクトルの中間値、又は重み付き平均値であってもよい。または、全体動きベクトルは、符号化対象ピクチャを構成する複数の符号化対象ブロックのインター予測符号化時の動きベクトルのうち、出現頻度の最も高い動きベクトルであってもよい。または、全体動きベクトルは、符号化対象ピクチャを構成する複数の符号化対象ブロックのインター予測符号化時の動きベクトルのうち、表示順で最も近いピクチャを参照している動きベクトルであってもよい。
図8Aは、図3のステップS11の詳細な処理フローを示す図である。以下、図8Aについて説明する。
まず、co-located情報決定部117は、co-locatedブロックを用いた時間動きベクトル予測を、符号化対象ピクチャに対して行うか否かを判定する(S31)。そして、co-located情報決定部117は、co-locatedブロックの使用を許可(時間動きベクトル予測)したか否かを表すco-located使用禁止フラグ(又は、enable_temporal_mvp_flag)をピクチャ毎に生成し、生成されたco-located使用禁止フラグを可変長符号化部118に出力する。
例えば、ストリーミング配信等の際に、時間動きベクトル予測による復号エラーの伝播を抑制するために、ある一定間隔でco-located使用禁止フラグをオンにすることが考えられる。これを実現する例として、符号化済みの符号化対象ピクチャの枚数を数えるカウンタを用意し、符号化済み枚数がある閾値より小さければ、co-located使用禁止フラグをオフに設定しておき、符号化済み枚数が閾値以上になれば、co-located使用禁止フラグをオンに設定して、カウンタを0にリセットする方法などが考えられる。
また、例えば、参照の対象となりうるピクチャ(例えば、Pピクチャ、及び他のピクチャから参照されるBピクチャ)では、co-located使用禁止フラグをオンに設定し、参照の対象になりえない非参照ピクチャ(例えば、他のピクチャから参照されないBピクチャ)では、co-located使用禁止フラグをオフにすることで、復号エラー伝播を抑制する方法などが考えられる。このように、他のピクチャから参照されるピクチャに対してco-located使用禁止フラグをオンにすることにより、復号エラーの伝播を効果的に抑制することが可能となる。
次に、co-located情報決定部117は、前方参照ブロック、又は、後方参照ブロックのいずれをco-locatedブロックに決定する(S32)。例えば、co-located情報決定部117は、前方参照ピクチャに含まれるco-locatedブロック(前方参照ブロック)と、後方参照ピクチャに含まれるco-locatedブロック(後方参照ブロック)とのうち、符号化対象ピクチャと表示順において距離が近いピクチャに含まれる方を、co-locatedブロックとして選択する。そして、co-located情報決定部117は、co-locatedブロックが前方参照ブロックであるか後方参照ブロックであるかを示すco-located参照方向フラグ、及び、co-locatedピクチャを指定するためのco-located参照ピクチャインデックスをピクチャ(又は、スライス)毎に生成し、生成されたco-located参照方向フラグ、及びco-located参照ピクチャインデックスを可変長符号化部118に出力する。
図8Bは、他のピクチャから参照されるBピクチャの例を示している。図8Bの例では、複数のレイヤーを有する参照構造が定義されている。ストリームの先頭のピクチャはIピクチャに設定され、先頭のIピクチャ以外のピクチャは、Bピクチャに設定されている。また、複数のレイヤーのうちレベルの高いレイヤーに属するピクチャは、同一のレベルのレイヤーに属するピクチャ、又は、そのレイヤーより低いレベルのレイヤーに属するピクチャを参照する。
例えば、図8Bでは、レイヤー3に属するピクチャB1は、レイヤー0に属するピクチャI0、及びレイヤー2に属するピクチャBr2を参照している。また、レベルの最も低いレイヤー0に属するBf8は、同一レイヤーに属するピクチャI0を参照している。ここで、レベルの最も低いレイヤー0に属するピクチャは、表示順で前方のみのピクチャを参照する。このような参照構造において、他のピクチャから参照される可能性の高いレイヤー0に属するピクチャに対して、co-located使用禁止フラグをオンにすることが考えられる。
図9は、図3のステップS17の詳細な処理フローである。以下、図9について説明する。
まず、時間予測動きベクトル算出部114は、colPicメモリ115から、予測方向1の参照動きベクトル、及び予測方向2の参照動きベクトル等を含むcolPic情報をリードする(S41)。次に、時間予測動きベクトル算出部114は、colPic情報に含まれるco-locatedブロックが、2つ以上の動きベクトルを有しているかを判断する(S42)。すなわち、時間予測動きベクトル算出部114は、co-locatedブロックが前方参照動きベクトル(mvL0)と、後方参照動きベクトル(mvL1)とを有しているか否かを判断する。
co-locatedブロックが、2つ以上の動きベクトルを有していると判断された場合(S42でYes)に、時間予測動きベクトル算出部114は、co-locatedブロックが、後方参照ブロックであるか否かを判断する(S43)。すなわち、時間予測動きベクトル算出部114は、co-locatedブロックを含むピクチャが、符号化対象ピクチャより表示順で後方に位置するか否かを判断する。
次に、co-locatedブロックが後方参照ブロックであると判断された場合(S43でYes)に、時間予測動きベクトル算出部114は、co-locatedブロックの前方参照動きベクトル(参照ピクチャリストL0の参照ピクチャに対する動きベクトルmvL0)を用いて、時間動きベクトル予測により、時間予測動きベクトルを導出する(S44)。そして、時間予測動きベクトル算出部114は、ステップS44で算出した時間予測動きベクトルを、予測動きベクトル候補に追加する(S45)。
一方、co-locatedブロックが前方参照ブロックであると判断された場合(S43でNo)に、時間予測動きベクトル算出部114は、co-locatedブロックの後方参照動きベクトル(参照ピクチャリストL1の参照ピクチャに対する動きベクトルmvL1)を用いて、時間動きベクトル予測により、時間予測動きベクトルを導出(S46)し、導出された時間予測動きベクトルを予測動きベクトル候補に追加する(S45)。
一方、co-locatedブロックが、前方参照動きベクトル、及び後方参照動きベクトルのいずれか一方のみを有していると判断された場合(S42でNo)に、時間予測動きベクトル算出部114は、co-locatedブロックが前方参照動きベクトルを有しているか否かを判断する(S47)。co-locatedブロックが前方参照動きベクトルを有していると判断された場合(S47でYes)に、時間予測動きベクトル算出部114は、co-locatedブロックの前方参照動きベクトルを用いて、符号化対象ブロックの時間予測動きベクトルを導出(S48)し、導出された時間予測動きベクトルを予測動きベクトル候補に追加する(S45)。
一方、co-locatedブロックが、前方参照動きベクトルを有していないと判断された場合(S47でNo)に、時間予測動きベクトル算出部114は、co-locatedブロックが、後方参照動きベクトルを有しているか否かを判断する(S49)。co-locatedブロックが後方参照動きベクトルを有していると判断された場合(S49でYes)に、時間予測動きベクトル算出部114は、後方参照動きベクトルを用いて、符号化対象ブロックの時間予測動きベクトルを導出(S50)し、導出された時間予測動きベクトルを予測動きベクトル候補に追加する(S45)。
一方、co-locatedブロックが後方参照動きベクトルを有していないと判断された場合(S49でNo)に、時間予測動きベクトル算出部114は、時間予測動きベクトルを予測動きベクトル候補に追加せずに、図9の処理を終了する(S51)。または、時間予測動きベクトル算出部114は、ステップS51の処理に代えて、co-locatedブロックの時間予測動きベクトルとして動き量が0の動きベクトルを、予測動きベクトル候補に追加してもよい。
なお、図9の処理フローでは、時間予測動きベクトル算出部114は、ステップS47において、co-locatedブロックが前方参照動きベクトルを有しているか否かを判断し、ステップS49において、co-locatedブロックが後方参照動きベクトルを有しているか否かを判断しているがこのフローに限らない。例えば、時間予測動きベクトル算出部114は、co-locatedブロックが後方参照動きベクトルを有しているか否かを先に判断し、その後でco-locatedブロックが前方参照動きベクトルを有しているか否かを判断してもよい。
図10は、図3のステップS13及びステップS14の詳細な処理フローである。以下、図10について説明する。
まず、時間予測動きベクトル算出部114は、全体ベクトル保存部116から、予測方向1の全体動きベクトル、及び、予測方向2の全体動きベクトル等を含む全体動きベクトル情報の少なくとも一方をリードする(S61)。次に、時間予測動きベクトル算出部114は、全体動きベクトル情報が2つ以上の動きベクトルを有しているか否かを判断する(S62)。すなわち、時間予測動きベクトル算出部114は、前方参照動きベクトル(mvL0)と後方参照動きベクトル(mvL1)とが全体動きベクトル情報に含まれているか否かを判断する。
全体動きベクトル情報が、2つ以上の動きベクトルを有していると判断された場合(S62でYes)に、時間予測動きベクトル算出部114は、co-located参照方向が、後方参照ブロックであるか否かを判断する(S63)。co-located参照方向が、後方参照ブロックであると判断された場合(S63でYes)に、時間予測動きベクトル算出部114は、全体動きベクトル情報に含まれる前方参照動きベクトルを選択する(S64)。
そして、時間予測動きベクトル算出部114は、選択した全体動きベクトルを、ピクチャヘッダ等のヘッダ情報に付加(可変長符号化部118に出力)すると共に、符号化対象ブロックの予測動きベクトル候補に追加する(S65)。なお、時間予測動きベクトル算出部114は、選択した全体動きベクトルが参照する(より具体的には、全体動きベクトルの算出に用いる複数の動きベクトルが参照する)参照ピクチャを特定する情報を、ヘッダ情報に付加する。この情報は、図11A~図12Bを用いて後述するスケーリング処理で利用される。
一方、co-located参照方向が前方参照ブロックであると判断された場合(S63でNo)に、時間予測動きベクトル算出部114は、全体動きベクトル情報に含まれる後方参照動きベクトルを選択する(S66)。そして、時間予測動きベクトル算出部114は、選択した全体動きベクトルを、ピクチャヘッダ等のヘッダ情報に付加すると共に、符号化対象ブロックの予測動きベクトル候補に追加する(S65)。
また、全体動きベクトル情報が、前方参照動きベクトル、及び後方参照動きベクトルのいずれか一方のみを有すると判断された場合(S62でNo)に、時間予測動きベクトル算出部114は、全体動きベクトル情報が前方参照動きベクトルを有しているか否かを判断する(S67)。
全体動きベクトル情報が前方参照動きベクトルを有していると判断された場合(S67でYes)に、時間予測動きベクトル算出部114は、全体動きベクトル情報に含まれる前方参照動きベクトルを選択する(S68)。そして、時間予測動きベクトル算出部114は、選択した全体動きベクトルを、ピクチャヘッダ等のヘッダ情報に付加すると共に、符号化対象ブロックの予測動きベクトル候補に追加する(S65)。
一方、全体動きベクトル情報が前方参照動きベクトルを有していないと判断された場合(S67でNo)に、時間予測動きベクトル算出部114は、全体動きベクトル情報が後方参照動きベクトルを有しているか否かを判断する(S69)。全体動きベクトル情報が後方参照動きベクトルを有していると判断された場合(S69でYes)に、時間予測動きベクトル算出部114は、全体動きベクトル情報に含まれる後方参照動きベクトルを選択する(S70)。そして、時間予測動きベクトル算出部114は、選択した全体動きベクトルを、ピクチャヘッダ等のヘッダ情報に付加すると共に、符号化対象ブロックの予測動きベクトル候補に追加する(S65)。
一方、全体動きベクトル情報が後方参照動きベクトルを有していないと判断された場合(S69でNo)に、時間予測動きベクトル算出部114は、時間予測動きベクトルを予測動きベクトル候補に追加しない、又は、全体動きベクトルを0に設定する(S71)。そして、時間予測動きベクトル算出部114は、設定した全体動きベクトルを、ピクチャヘッダ等のヘッダ情報に付加すると共に、符号化対象ブロックの予測動きベクトル候補に追加する(S65)。
なお、図10の処理フローでは、時間予測動きベクトル算出部114は、ステップS67において、全体動きベクトルが前方参照動きベクトルを有しているか否かを判断し、ステップS69において、全体動きベクトルが後方参照動きベクトルを有しているか否かを判断しているがこのフローに限らない。例えば、時間予測動きベクトル算出部114は、全体動きベクトルが後方参照動きベクトルを有しているか否かを先に判断し、その後で全体動きベクトルが前方参照動きベクトルを有しているか否かを判断してもよい。
また、図10のステップS63~ステップS66では、時間予測動きベクトル算出部114が、co-located参照方向フラグによって、全体動きベクトルmvL0、及びmvL1のどちらを選択するかを決定する例を説明したが、これに限定されない。例えば、時間予測動きベクトル算出部114は、参照ピクチャリストL0の予測動きベクトル候補に全体動きベクトルmvL0を選択し、参照ピクチャリストL1の予測動きベクトルの候補には全体動きベクトルmvL1を選択してもよい。これにより、全体動きベクトルを用いる場合には、co-located参照方向フラグをヘッダに付加する必要がなくなるので、さらに符号化効率が向上する。
次に、時間予測動きベクトルを予測動きベクトル候補に追加する際のスケーリング方法について、詳細に説明する。なお、全体動きベクトルを予測動きベクトル候補に追加する際のスケーリング方法は、co-locatedブロックの動きベクトルの代わりに、全体動きベクトルを入力として用いる点を除いて共通するので、説明を省略する。
図11Aは、co-locatedブロックが後方参照ブロックであり、且つ前方参照動きベクトルと後方参照動きベクトルとを有する場合に、前方参照動きベクトルを用いて、時間動きベクトル予測により、予測動きベクトル候補(時間予測動きベクトル)を導出する方法を示している。具体的には、前方参照動きベクトルを用いて、以下の式4により、予測動きベクトル候補(TemporalMV)が導出される。
TemporalMV=mvL0×(B2-B0)/(B4-B0) ・・(式4)
ここで、(B2-B0)は、ピクチャB2とピクチャB0との表示時間の時間差情報を示す。同様に、(B4-B0)は、ピクチャB4とピクチャB0との表示時間の時間差情報を示す。
図11Bは、後方参照動きベクトルを用いて、時間動きベクトル予測により、予測動きベクトル候補(時間予測動きベクトル)を導出する方法を示している。具体的には、後方参照動きベクトルを用いて、以下の式5により、予測動きベクトル候補が導出される。
TemporalMV=mvL1×(B2-B0)/(B4-B8) ・・(式5)
図12Aは、co-locatedブロックが前方参照ブロックであり、且つ前方参照動きベクトルと後方参照動きベクトルとを有する場合に、後方参照動きベクトルを用いて、時間動きベクトル予測により、予測動きベクトル候補(時間予測動きベクトル)を導出する方法を示している。具体的には、後方参照動きベクトルを用いて、以下の式6により、予測動きベクトル候補が導出される。
TemporalMV=mvL1×(B6-B8)/(B4-B8) ・・(式6)
図12Bは、前方参照動きベクトルを用いて、時間動きベクトル予測により、予測動きベクトル候補(時間予測動きベクトル)を導出する方法を示している。後方参照動きベクトルを用いて、以下の式7により、予測動きベクトル候補が導出される。
TemporalMV=mvL0×(B6-B8)/(B4-B0) ・・(式7)
このように、本実施の形態1では、動画像符号化装置100は、ある一定間隔で、参照ピクチャの符号化処理単位毎の動きベクトルを用いた時間動きベクトル予測をオフに設定し、その代わりに参照ピクチャの全体の動きベクトルをヘッダ情報に付加し、スケーリングした全体ベクトルを用いて符号化対象ピクチャの動きベクトルの符号化を行う。これにより、符号化効率低下を抑制しながら、復号エラーの伝播を防止することが可能になる。
より具体的には、動画像符号化装置100は、co-located使用禁止フラグがオンの場合は、全体ベクトル保存部116からリードした全体ベクトルを、符号化対象ブロックの予測動きベクトル候補に追加するとともに、ピクチャヘッダ等のヘッダ情報に付随させる。これにより、復号時に参照ピクチャが紛失した場合でも、動画像復号装置は、復号エラーなくビットストリームを復号することができる。このように、エラー伝播が抑制される。
また、動画像符号化装置100は、co-located使用禁止フラグがオフの場合は、co-located参照方向フラグに応じて、符号化対象ブロックに最適な予測動きベクトルを選択できるため、圧縮効率を向上させることが可能になる。特に、動画像符号化装置100は、co-locatedブロックが前方参照ブロックである場合に、後方参照動きベクトルを用いることにより、予測誤差を小さくすることができる。後方参照動きベクトルは、co-locatedブロックを含むピクチャから、符号化対象ブロックを含むピクチャの方向の参照ピクチャを指す動きベクトルであり、最適な動きベクトルに近い確率が高い。よって、予測誤差が小さくなる。
一方、前方参照動きベクトルは、co-locatedブロックを含むピクチャから、符号化対象ブロックを含むピクチャが位置する方向とは逆方向の動きベクトルであり、最適な動きベクトルに近い確率が低い。よって、予測誤差が大きくなる。また、co-locatedブロックが後方参照ブロックである場合も同様に、前方参照動きベクトルは、最適な動きベクトルに近い確率が高い。よって、予測誤差が小さくなる。
なお、本実施の形態1では、動画像符号化装置100は、co-locatedブロックが2つ以上の動きベクトルを有している際に、co-locatedブロックが後方参照ブロックか前方参照ブロックかで、符号化対象ブロックの時間予測動きベクトルの算出に用いるco-locatedブロックの動きベクトルを切替えたが、これに限定されない。
例えば、動画像符号化装置100は、co-locatedブロックを含むピクチャに時間的に近い参照ピクチャを参照する動きベクトル(時間的な距離が短い動きベクトル)を用いて、時間予測動きベクトルを算出しても構わない。ここで、時間的な距離は、例えば、表示順で、co-locatedブロックを含むピクチャと、co-locatedブロックが参照する参照ピクチャとの間のピクチャ数に応じて決定される。
また、本実施の形態1では、動画像符号化装置100は、co-locatedブロックが2つ以上の動きベクトルを有している際に、co-locatedブロックが後方参照ブロックか、前方参照ブロックかで、符号化対象ブロックの時間予測動きベクトルの算出に用いるco-locatedブロックの動きベクトルを切替えたが、これに限定されない。例えば、動画像符号化装置100は、co-locatedブロックの2つの動きベクトルのうち、大きさが小さい動きベクトルを用いて時間予測動きベクトルを算出しても構わない。ここで、動きベクトルの大きさとは、動きベクトルの絶対値などを意味する。
また、本実施の形態1では、動画像符号化装置100は、co-located使用禁止フラグがオンの場合は、全体ベクトル保存部116からリードした全体ベクトルを、時間予測動きベクトルの代替ベクトルとして、予測動きベクトル候補に追加したが、これに限定されない。例えば、動画像符号化装置100は、常に全体動きベクトルとして値0の動きベクトルを、予測動きベクトル候補に追加(すなわち、動き量が0の動きベクトルを代替ベクトルとして予測動きベクトル候補に追加)しても構わない。この場合は、動画像符号化装置100は、全体動きベクトルをヘッダ情報等に付随させなくてもよい。また、動画像符号化装置100は、co-located使用禁止フラグがオンの場合は、時間予測動きベクトルを、予測動きベクトル候補に常に追加しないようにしても構わない。時間予測動きベクトルを予測動きベクトル候補に追加しないことにより、符号化効率を向上させることが可能となる。
また、本実施の形態1では、動画像符号化装置100は、co-located使用禁止フラグを全てのピクチャに対して付加しているが、特定のピクチャのみに付加してもよい。例えば、動画像符号化装置100は、他のピクチャから参照されるピクチャ(Pピクチャ、他のピクチャから参照されるBピクチャ、複数のレイヤーを有する参照構造において最もレベルの低いレイヤーに属するピクチャ)にのみco-located使用禁止フラグを付加し、他のピクチャから参照されないピクチャにはco-located使用禁止フラグを付加しない。このように、動画像符号化装置100は、特定のピクチャのみにco-located使用禁止フラグを付加することにより、符号化効率を向上させつつ、復号エラー伝播を抑制させることが可能となる。
また、本実施の形態1では、動画像符号化装置100は、ピクチャ毎に、co-located使用禁止フラグを付加したが、複数のブロックから構成されるスライス毎に、co-located使用禁止フラグを付加してもよい。スライス毎にco-located使用禁止フラグを付加することにより、全体ベクトルの予測精度を向上させることが可能となる。
また、本実施の形態1では、動画像符号化装置100は、co-located使用禁止フラグを全てのピクチャに対して付加しているが、co-located使用禁止フラグを付加せずに、ピクチャタイプに基づいて時間予測動きベクトルを、予測動きベクトル候補に追加しないと判断しても構わない。例えば、動画像符号化装置100は、他のピクチャから参照されるピクチャ(Pピクチャ、他のピクチャから参照されるBピクチャ、複数のレイヤーを有する参照構造において最もレベルの低いレイヤーに属するピクチャ)においては、時間予測動きベクトルを予測動きベクトル候補に追加せずに、全体ベクトルを予測動きベクトル候補に追加してもよい。このように、ピクチャタイプに基づいて、時間予測動きベクトルを予測動きベクトル候補に追加するか否かを判断することにより、co-located使用禁止フラグを省くことができるため、符号化効率を向上させることが可能となる。
また、動画像符号化装置100は、時間予測動きベクトルを予測動きベクトル候補に含めない場合に、不必要であるフラグをビットストリームに含めないことによって、符号化効率を向上することができる。具体的な例を、図13を用いて説明する。図13は、図3のS11の詳細なフローであり、co-located情報を決定するフローの変形例を示す図である。
まず、動画像符号化装置100は、co-located使用禁止フラグの値を、図8Aと同様の方法で決定し、決定された値を示すco-located使用禁止フラグを符号化する(S101)。なお、ここでは、co-located使用禁止フラグとして、co-locatedブロックの情報を用いた時間予測動きベクトルを許可するか否かを示すフラグ(enable_temporal_mvp_flag)を用いる例を説明する。
次に、動画像符号化装置100は、enable_teporal_mvp_flagが1か否かを判定する(S102)。enable_teporal_mvp_flagが1の場合(S102でYes)、動画像符号化装置100は、図8AのS32と同様の方法で、co-located参照方向フラグ及びco-located参照ピクチャインデックスの値を決定し、それぞれを符号化する(S103及びS104)。
一方、enable_teporal_mvp_flagが0の場合(S102でNo)、動画像符号化装置100は、co-located参照方向フラグ及びco-located参照ピクチャインデックスを符号化しない。このように、動画像符号化装置100は、時間予測動きベクトルを予測動きベクトル候補に含めない場合(enable_teporal_mvp_flagが0の場合)に、不必要であるco-located参照方向フラグ及びco-located参照ピクチャインデックスをビットストリームに付加しない。これにより、動画像符号化装置100は、符号化効率を向上することができる。
以上のように、本実施の形態に係る動画像符号化装置100は、図14に示す動画像符号化処理を行う。
動画像符号化装置100は、符号化対象ピクチャに含まれる符号化対象ブロックを、動きベクトルを用いたインター予測符号化する。
まず、動画像符号化装置100は、符号化対象ピクチャと異なる符号化済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否か(時間動きベクトル予測を許可するか、禁止するか)を示す第1のフラグ(co-located使用禁止フラグ)を生成し、生成された第1のフラグを符号化する(S111)。また、動画像符号化装置100は、符号化された第1フラグをビットストリームに付加する。
次に、動画像符号化装置100は、第1のフラグが時間動きベクトル予測が用いられる(許可される)ことを示すか否かを判定する(S112)。
第1のフラグが時間動きベクトル予測が用いられる(許可される)ことを示す場合(S112でYes)、動画像符号化装置100は、時間予測動きベクトルを算出するための第1のパラメータを生成し、生成された第1のパラメータを符号化する(S113)。そして、動画像符号化装置100は、符号化された第1のパラメータをビットストリームに付加する。
具体的には、この第1のパラメータは、動きベクトルの参照対象である符号化済みピクチャ(co-locatedピクチャ)を特定するためのパラメータを含む。より具体的には、第1パラメータは、符号化対象ピクチャを符号化するために用いられる参照ピクチャリストで示される複数のピクチャのうち上記符号化済みピクチャ(co-locatedピクチャ)を特定するための参照ピクチャインデックス(collocated_ref_idx)を含む。また、第1パラメータは、符号化対象ピクチャを符号化するために用いられる複数の参照ピクチャリストのうち、上記符号化済みピクチャ(co-locatedピクチャ)を特定するために、どの参照ピクチャリストを用いるかを示すフラグ(collocated_from_l0_flag)を含む。
ここで、各参照ピクチャリストは、複数の参照ピクチャ(符号化済みピクチャ)を示す。また、各参照ピクチャリストにおいて、複数の参照ピクチャは、参照ピクチャインデックスで示される。動画像符号化装置100は、複数の参照ピクチャリストから、上記フラグ(collocated_from_l0_flag)で示される参照ピクチャリストを選択し、選択した参照ピクチャリストに含まれる複数の参照ピクチャから、上記参照ピクチャインデックス(collocated_ref_idx)を有するピクチャを上記符号化済みピクチャ(co-locatedピクチャ)として特定する。
次に、動画像符号化装置100は、第1のパラメータを用いて時間予測動きベクトルを生成し、生成された時間予測動きベクトル含む複数の第1の予測動きベクトル候補を導出する(S114)。
次に、動画像符号化装置100は、複数の第1の予測動きベクトル候補のうち1つを用いて、符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する(S115)。具体的には、動画像符号化装置100は、複数の第1の予測動きベクトル候補のうち、符号化対象ブロックのインター予測符号化に用いられる動きベクトルとの差分が最も小さい第1の予測動きベクトル候補を選択し、選択された第1の予測動きベクトル候補を用いて、上記動きベクトルを符号化する。より具体的には、動画像符号化装置100は、選択された第1の予測動きベクトル候補と、上記動きベクトルとの差分を符号化する。
また、動画像符号化装置100は、上記動きベクトルを用いたインター符号化により符号化対象ブロックを符号化する。そして、動画像符号化装置100は、符号化された動きベクトル(差分)、及び符号化された符号化対象ブロックをビットストリームに付加する。
一方、第1のフラグが時間動きベクトル予測が用いられない(禁止される)ことを示す場合(S112でNo)、動画像符号化装置100は、上記第1のパラメータを符号化しない(S116)。つまり、動画像符号化装置100は、第1のフラグを生成しない。また、動画像符号化装置100は、第1のフラグをビットストリームに付加しない。
また、動画像符号化装置100は、時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する(S117)。
次に、動画像符号化装置100は、複数の第2の予測動きベクトル候補のうち1つを用いて、符号化対象ブロックのインター予測符号化に用いられる動きベクトルを符号化する(S118)。なお、この処理の具体例は、上記のステップS115において複数の第1の予測動きベクトル候補を、複数の第2の予測動きベクトル候補に置き換えた場合の処理と同様である。
なお、上記ステップS111は、動画像符号化装置100に含まれるフラグ符号化部により実行される。また、ステップS113及びS116は、動画像符号化装置100に含まれるパラメータ符号化部により実行される。ステップS114及びS117は、動画像符号化装置100に含まれる候補導出部により実行される。ステップS115及びS118は、動画像符号化装置100に含まれる動きベクトル符号化部により実行される。
ここでフラグ符号化部の機能は、例えば、図2に示すco-located情報決定部117及び可変長符号化部118等により実現される。また、パラメータ符号化部の機能は、図2に示すco-located情報決定部117及び可変長符号化部118等により実現される。候補導出部の機能は、図2に示すインター予測制御部112及び時間予測動きベクトル算出部114により実現される。動きベクトル符号化部の機能は、図2に示す減算部101、インター予測部110、インター予測制御部112、及び可変長符号化部118等により実現される。
また、第1のフラグ(co-located使用禁止フラグ)及び第1のパラメータ(collocated_from_l0_flag及びcollocated_ref_idx)は、ピクチャ又はスライスごとに生成及び符号化される。つまり、この第1のフラグ及び第1のパラメータはビッツストリームのピクチャヘッダ又はスライスヘッダに含まれる。なお、第1のフラグと第1のパラメータとは、異なる単位(ピクチャ又はスライス)毎に生成されてもよい。例えば、第1のフラグはピクチャ単位で生成され、第1のパラメータはスライス単位で生成されてもよい。
さらに、第1のフラグ及び第1のパラメータの少なくとも一方は、複数ピクチャ毎に生成及び符号化されてもよい。つまり、第1のフラグ及び第1のパラメータの少なくとも一方は、ビットストリームのPPS(ピクチャパラメータセット)又はSPS(シーケンスパラメータセット)に含まれてもよい。
さらに、第1のフラグは、スライス、ピクチャ、及び複数のピクチャ(シーケンス)の単位のうち複数の単位に階層的に含まれてもよい。例えば、動画像符号化装置100は、ピクチャ毎に、当該ピクチャに時間動きベクトル予測が用いられるか否かを示す第1のフラグを生成する。さらに、動画像符号化装置100は、第1のフラグが時間動きベクトル予測が用いられることを示す場合には、さらに、当該ピクチャに含まれるスライス毎に、当該スライスに時間動きベクトル予測が用いられるか否かを示す第2フラグを生成する。一方、第1のフラグが時間動きベクトル予測を用いられないことを示す場合には、動画像符号化装置100は、スライス毎の第2フラグを生成しない。なお、動画像符号化装置100は、第1のフラグが時間動きベクトル予測が用いられないことを示す場合にのみ、当該ピクチャに含まれるスライス毎に第2フラグを生成してもよい。また、動画像符号化装置100は、複数ピクチャ毎に上記第1のフラグを生成し、ピクチャ毎又はスライス毎に上記第2のフラグを生成してもよい。
(実施の形態2)
本実施の形態では、上記動画像符号化装置100により生成されたビットストリームを復号する動画像復号装置200について説明する。
図15は、実施の形態2に係る動画像復号方法を用いた動画像復号装置200の構成を示すブロック図である。
本実施の形態2では、表示順で、復号対象ピクチャより前方に位置するピクチャ(参照ピクチャリストL0で特定される参照ピクチャ)に含まれるブロックを、前方参照ブロックと呼ぶ。また、表示順で、復号対象ピクチャより後方に位置するピクチャ(参照ピクチャリストL1で特定される参照ピクチャ)に含まれるブロックを、後方参照ブロックと呼ぶ。
動画像復号装置200は、図15に示すように、可変長復号部201と、逆量子化部202と、逆直交変換部203と、加算部204と、ブロックメモリ205と、フレームメモリ206と、イントラ予測部207と、インター予測部208と、スイッチ209と、インター予測制御部210と、時間予測動きベクトル算出部211と、colPicメモリ212とを備えている。
可変長復号部201は、入力されたビットストリームを可変長復号することにより、ピクチャタイプ情報、予測動きベクトルインデックス、co-located使用禁止フラグ(又は、enable_temporal_mvp_flag)、co-located参照方向フラグ(collocated_from_l0_flag)、co-located参照ピクチャインデックス(collocated_ref_idx)、全体動きベクトル、及び、量子化係数を取得する。可変長復号部201は、ピクチャタイプ情報をスイッチ209及びインター予測制御部210に出力し、予測動きベクトルインデックスをインター予測制御部210に出力し、co-located使用禁止フラグ(又は、enable_temporal_mvp_flag)、co-located参照方向フラグ(collocated_from_l0_flag)、co-located参照ピクチャインデックス(collocated_ref_idx)、及び全体動きベクトルを時間予測動きベクトル算出部211に出力し、量子化係数を逆量子化部202に出力する。
逆量子化部202は、可変長復号部201から取得した量子化係数を逆量子化することで変換係数を復元し、復元された変換係数を逆直交変換部203に出力する。逆直交変換部203は、逆量子化部202から取得した復元された変換係数を周波数領域から画像領域に変換することで残差ブロックを復元し、復元された残差ブロックを加算部204に出力する。
加算部204は、逆直交変換部203から取得した復元された残差ブロックと、スイッチ209から取得した予測ブロックとを加算することで復号ブロックを復元する。そして、加算部204は、この復元された復号ブロックを含む復号画像列を装置外部に出力すると共に、ブロックメモリ205及びフレームメモリ206に保存する。
ブロックメモリ205は、加算部204から取得した復号画像列を、ブロック単位で保存する。フレームメモリ206は、加算部204から取得した復号画像列を、フレーム単位で保存する。
イントラ予測部207は、ブロックメモリ205に保存されているブロック単位の復号画像列を用いてイントラ予測を行うことにより、復号対象ブロックの予測ブロックを生成し、生成された予測ブロックをスイッチ209に出力する。インター予測部208は、フレームメモリ206に保存されているフレーム単位の復号画像列を用いてインター予測を行うことにより、復号対象ブロックの予測ブロックを生成し、生成された予測ブロックをスイッチ209に出力する。スイッチ209は、イントラ予測部207で生成された予測ブロック、又はインター予測部208で生成された予測ブロックを、加算部204に出力する。
時間予測動きベクトル算出部211は、可変長復号部201から取得したco-located使用禁止フラグがオフの場合、colPicメモリ212に格納されているco-locatedブロックの動きベクトル等のcolPic情報を用いて、時間動きベクトル予測の予測動きベクトル候補(時間予測動きベクトル)を導出する。一方、時間予測動きベクトル算出部211は、co-located使用禁止フラグがオンの場合、可変長復号部201から取得した全体動きベクトルを、予測動きベクトル候補に追加する。
また、時間予測動きベクトル算出部211は、候補に追加した予測動きベクトルに予測動きベクトルインデックスを割り当てる。そして、時間予測動きベクトル算出部211は、予測動きベクトルと予測動きベクトルインデックスとを、インター予測制御部210に出力する。
また、時間予測動きベクトル算出部211は、co-locatedブロックが動きベクトルを有していない場合、時間動きベクトル予測による動きベクトルの導出を中止するか、又は、動き量が0の動きベクトルを予測動きベクトル候補に追加してもよい。
インター予測制御部210は、複数の予測動きベクトル候補のうちから、可変長復号部201から取得した予測動きベクトルインデックスに対応する予測動きベクトルを特定する。そして、インター予測制御部210は、特定した予測動きベクトルに、動きベクトルと予測動きベクトルとの誤差情報を加算することにより、インター予測の際に用いる動きベクトルを算出する。また、インター予測制御部210は、復号対象ブロックの動きベクトル等を含むcolPic情報を、colPicメモリ212に保存する。
図16は、実施の形態2に係る動画像復号方法の処理フローの概要である。
まず、可変長復号部201は、ピクチャ単位で、co-located使用禁止フラグを復号する(S81)。次に、可変長復号部201は、co-located使用禁止フラグがオフか否かを判定する(S82)。co-located使用禁止フラグがオフ(S82でYes)ならば、可変長復号部201は、ピクチャ単位で、co-located参照方向フラグ及び、co-located参照ピクチャインデックス(collocated_ref_idx)を復号する(S83)。そして、可変長復号部201は、復号したco-located使用禁止フラグ、co-located参照方向フラグ及びco-located参照ピクチャインデックスを、時間予測動きベクトル算出部211に出力する。
次に、時間予測動きベクトル算出部211は、図9と同様の方法で、co-located情報に応じてcolPicメモリ212からco-locatedブロックの参照動きベクトル等を含むcolPic情報をリードし、co-locatedブロックの参照動きベクトルを用いて時間予測動きベクトを生成し、生成された時間予測動きベクトルを予測動きベクトル候補に追加する(S84)。
一方、co-located使用禁止フラグがオンの場合(S82でNo)、時間予測動きベクトル算出部211は、ピクチャヘッダ等のヘッダ情報に格納された全体動きベクトルを可変長復号部201から取得し、取得された全体動きベクトルを予測動きベクトル候補に追加する(S87)。
次に、インター予測制御部210は、複数の予測動きベクトル候補のうちから、復号した予測動きベクトルインデックスに対応する予測動きベクトルを選択する(S85)。また、インター予測制御部210は、選択された予測動きベクトルに予測誤差情報を加算することで動きベクトルを導出し、導出された動きベクトルをインター予測部208に出力する。そして、インター予測部208は、導出された動きベクトルを用いて、インター予測により復号対象ブロックの予測ブロックを生成する。
次に、インター予測制御部210は、インター予測に用いた動きベクトル等を含むcolPic情報を、colPicメモリ212に保存する(S86)。colPicメモリ212には、復号対象ブロックの時間予測動きベクトルを算出するために、参照ピクチャの動きベクトル、参照ピクチャインデックス値、及び予測方向などが格納されている。
なお、参照ブロックが2つ以上の参照動きベクトルを有している場合における、時間予測動きベクトルを算出するための参照動きベクトルの選択方法は、co-locatedブロック参照方向フラグに基づく方法に限られない。例えば、動画像復号装置200は、参照動きベクトルの時間的な距離を算出し、時間的な距離が短い参照動きベクトルを用いてもよい。ここで、時間的な距離は、表示時間において、参照ブロックを含む参照ピクチャと、参照ピクチャが参照するピクチャとの間のピクチャ数に基づいて算出される。また、例えば、動画像復号装置200は、参照動きベクトルの大きさを算出し、大きさが小さい参照動きベクトルを用いて導出した動きベクトルを時間予測動きベクトルとしてもよい。
図17は、実施の形態2に係る動画像復号方法におけるビットストリームのシンタックスの一例である。図17において、forbid_collocated_flagはco-located使用禁止フラグを、tmv_xは全体動きベクトルの水平成分を、tmv_yは全体動きベクトルの垂直成分を、collocated_from_l0_flagはco-located参照方向フラグを表す。
図17に示すように、co-located使用禁止フラグ(forbid_collocated_flag)が1の場合は、全体動きベクトル(tmv_x、tmv_y)がビットストリームに付随され、予測動きベクトル候補に追加される。
また、co-located使用禁止フラグ(forbid_collocated_flag)が0の場合は、co-located参照方向フラグ(collocated_from_l0_flag)がビットストリームに付随される。そして、co-located参照方向フラグに応じてco-locatedブロックが決定され、co-locatedブロックの参照動きベクトルを用いて時間予測動きベクトルが算出される。なお、ここでは、collocated_from_l0_flagが1であれば、co-locatedブロックが前方参照ブロックであることを表し、0であれば、co-locatedブロックが後方参照ブロックであることを表すが、必ずしもこれには限定しない。
なお、本実施の形態2では、動画像復号装置200は、co-located使用禁止フラグがオンの場合は、ヘッダ情報等から復号した全体動きベクトルを用いたが、符号化方法に合わせて、常に値0の全体動きベクトルを予測動きベクトル候補に追加しても構わない。この場合は、全体動きベクトルはヘッダ情報等に付随されないため、その復号処理は省略される。また、動画像復号装置200は、co-located使用禁止フラグがオンの場合は、時間予測動きベクトルを、予測動きベクトル候補に常に追加しないようにしても構わない。
このように、本実施の形態1及び2では、動画像符号化装置100は、ある一定間隔で、参照ピクチャの符号化処理単位毎の動きベクトルを用いた時間動きベクトル予測をオフに設定し、その代わりに参照ピクチャの全体の動きベクトルをヘッダ情報に付加する。そして、動画像符号化装置100は、それを用いて符号化対象ピクチャの動きベクトルの符号化を行うことによって、符号化効率低下を抑制しながら、復号エラーの伝播を防止したビットストリームを生成できる。また、動画像復号装置200は、このようにして生成されたビットストリームを適切に復号することが可能である。
より具体的には、co-located使用禁止フラグがオンの場合は、動画像符号化装置100は、全体ベクトル保存部116からリードした全体ベクトルを、符号化対象ブロックの予測動きベクトル候補に追加するとともに、ピクチャヘッダ等のヘッダ情報に付随させる。これにより、復号時に参照ピクチャが紛失した場合でも、動画像復号装置200は、復号エラーなくビットストリームを復号することができる。このように、動画像復号装置200は、エラー伝播を抑制したビットストリームを適切に復号することが可能である。
また、co-located使用禁止フラグがオフの場合は、動画像復号装置200は、co-located参照方向フラグに応じて、符号化対象ブロックに最適な予測動きベクトルが選択されたビットストリームを適切に復号することが可能になる。
なお、本実施の形態1及び2では、動画像符号化装置100は、co-located使用禁止フラグがオンの場合は、全体ベクトル保存部116からリードした全体ベクトルを用いたが、常に値0の全体動きベクトルを予測動きベクトル候補に追加しても構わない。また、動画像符号化装置100は、co-located使用禁止フラグがオンの場合は、時間予測動きベクトルを、予測動きベクトル候補に常に追加しないようにしても構わない。このような構成により、動画像復号装置200における復号処理を軽減することが可能となる。
また、本実施の形態2では、動画像復号装置200は、全てのピクチャのco-located使用禁止フラグを復号しているが、特定のピクチャのco-located使用禁止フラグのみを復号してもよい。例えば、動画像復号装置200は、他のピクチャから参照されるピクチャ(Pピクチャ、他のピクチャから参照されるBピクチャ、複数のレイヤーを有する参照構造において最もレベルの低いレイヤーに属するピクチャ)のco-located使用禁止フラグのみを復号し、他のピクチャから参照されないピクチャのco-located使用禁止フラグを復号しない。このように、特定のピクチャのco-located使用禁止フラグのみを復号することにより、復号処理を軽減させつつ、復号エラー伝播を抑制させることが可能となる。
また、本実施の形態2では、動画像復号装置200は、ピクチャ毎に、co-located使用禁止フラグを復号したが、複数のブロックから構成されるスライス毎に、co-located使用禁止フラグを復号してもよい。スライス毎にco-located使用禁止フラグを復号することにより、全体ベクトルの予測精度を向上させることが可能となる。
また、本実施の形態2では、動画像復号装置200は、全てのピクチャのco-located使用禁止フラグを復号しているが、ピクチャタイプに基づいて時間予測動きベクトルを、予測動きベクトル候補に追加しないとしても構わない。例えば、動画像復号装置200は、他のピクチャから参照されるピクチャ(Pピクチャ、他のピクチャから参照されるBピクチャ、複数のレイヤーを有する参照構造において最もレベルの低いレイヤーに属するピクチャ)においては、時間予測動きベクトルを予測動きベクトル候補に追加せずに、全体動きベクトルを予測動きベクトル候補に追加してもよい。このように、ピクチャタイプに基づいて、時間予測動きベクトル及び全体動きベクトルのどちらを、予測動きベクトル候補に追加するかを判断することにより、復号処理を軽減しつつ、符号化効率を向上させることが可能となる。
また、動画像符号化装置100は、時間予測動きベクトルを予測動きベクトル候補に含めない場合に、不必要であるフラグをビットストリームに含めないことによって、符号化効率を向上したビットストリームを生成できる。また、動画像復号装置200は、このビットストリームを適切に復号することができる。具体的な例を、図18を用いて説明する。図18は、co-located情報を復号するフローの変形例を示す図である。
まず、動画像復号装置200は、co-located使用禁止フラグを復号する(S201)。なお、ここでは、co-locatedブロックの情報を用いた時間予測動きベクトルを許可するか否かを示すフラグ(enable_temporal_mvp_flag)が復号される場合の例を説明する。
次に、動画像復号装置200は、enable_teporal_mvp_flagが1か否かを判定する(S202)。enable_teporal_mvp_flagが1の場合(S202でYes)、動画像復号装置200は、co-located参照方向フラグ及びco-located参照ピクチャインデックスをそれぞれ復号する(S203及びS204)。
一方、enable_teporal_mvp_flagが0の場合(S202でNo)、動画像復号装置200は、co-located参照方向フラグ及びco-located参照ピクチャインデックスを復号しない。このように、動画像符号化装置100は、時間予測動きベクトルを予測動きベクトル候補に含めない場合(enable_teporal_mvp_flagが0の場合)に、不必要であるco-located参照方向フラグ及びco-located参照ピクチャインデックスをビットストリームに付加しないことによって、符号化効率を向上したビットストリームを生成できる。また、動画像復号装置200は、このビットストリームを適切に復号することができる。
図19A及び図19Bは、co-locatedブロックの情報を用いた時間予測動きベクトルを許可するか否かを示すco-located使用禁止フラグ(enable_temporal_mvp_flag)がPPS(Picture Parameter Set)に付加され、co-located参照方向フラグ(collocated_from_l0_flag)及びco-located参照ピクチャインデックス(collocated_ref_idx)がスライスヘッダに付加される場合のシンタックス例を示す図である。
co-located使用禁止フラグの値が1の場合、co-located情報を用いて時間予測動きベクトルを算出することが許可される。co-located使用禁止フラグの値が0の場合、co-located情報を用いて時間予測動きベクトルを算出することが禁止される。
co-located参照方向フラグの値が1の場合、予測方向1の参照ピクチャリストからco-locatedピクチャが選択される。co-located参照方向フラグの値が0の場合、予測方向1の参照ピクチャリストからco-locatedピクチャが選択される。
collocated_from_l0_flagの値に応じて決定された参照ピクチャリストに含まれる複数のピクチャのうち、参照ピクチャインデックスがcollocated_ref_idxであるピクチャがco-locatedピクチャとして選択される。
また、図20は、co-locatedブロックの情報を用いた時間予測動きベクトルを許可するか否かを示すco-located使用禁止フラグ(enable_temporal_mvp_flag)、co-located参照方向フラグ(collocated_from_l0_flag)、及びco-located参照ピクチャインデックス(collocated_ref_idx)を全てスライスヘッダに付加した場合のシンタックス例を示す図である。
図19B及び図20に示すように、enable_temporal_mvp_flagの値が0の場合は、collocated_from_l0_flag及びcollocated_ref_idxはビットストリームに付加されない。
以上のように、本実施の形態に係る動画像復号装置200は、図21に示す動画像復号処理を行う。
動画像復号装置200は、復号対象ピクチャに含まれる復号対象ブロックを、動きベクトルを用いたインター予測復号する。
まず、動画像復号装置200は、復号対象ピクチャと異なる復号済みピクチャに含まれるブロックの動きベクトルである時間予測動きベクトルを用いる時間動きベクトル予測が用いられるか否か(時間動きベクトル予測を許可するか、禁止するか)を示す第1のフラグ(co-located使用禁止フラグ)を復号する(S211)。つまり、動画像復号装置200は、ビットストリームから符号化された第1フラグを取得し、符号化された第1フラグを復号することにより第1フラグを取得する。
次に、動画像復号装置200は、第1のフラグが時間動きベクトル予測が用いられる(許可される)ことを示すか否かを判定する(S212)。
第1のフラグが時間動きベクトル予測が用いられる(許可される)ことを示す場合(S212でYes)、動画像復号装置200は、時間予測動きベクトルを算出するための第1のパラメータを復号する(S213)。具体的には、動画像復号装置200は、ビットストリームから符号化された第1のパラメータを取得し、取得された符号化された第1のパラメータを復号することにより、第1のパラメータを取得する。この第1のパラメータは、動きベクトルの参照対象である復号済みピクチャ(co-locatedピクチャ)を特定するためのパラメータを含む。より具体的には、第1パラメータは、復号対象ピクチャを復号するために用いられる参照ピクチャリストで示される複数のピクチャのうち上記復号済みピクチャ(co-locatedピクチャ)を特定するための参照ピクチャインデックス(collocated_ref_idx)を含む。また、第1パラメータは、復号対象ピクチャを復号するために用いられる複数の参照ピクチャリストのうち、上記復号済みピクチャ(co-locatedピクチャ)を特定するために、どの参照ピクチャリストを用いるかを示すフラグ(collocated_from_l0_flag)を含む。
次に、動画像復号装置200は、第1のパラメータを用いて時間予測動きベクトルを決定し、決定された時間予測動きベクトル含む複数の第1の予測動きベクトル候補を導出する(S214)。
次に、動画像復号装置200は、複数の第1の予測動きベクトル候補のうち1つを用いて、復号対象ブロックのインター予測復号に用いられる動きベクトルを復号する(S215)。具体的には、動画像復号装置200は、ビットストリームから、符号化された動きベクトル(差分値)を取得する。そして、動画像復号装置200は、符号化された動きベクトル(差分値)を復号することにより動きベクトルの差分値を生成する。次に、複数の第1の予測動きベクトル候補のうち1つと動きベクトルの差分値とを用いて動きベクトルを生成する。
また、動画像復号装置200は、上記動きベクトルを用いたインター復号により復号対象ブロックを復号する。具体的には、動画像復号装置200は、ビットストリームから、符号化された対象ブロック(差分値)を取得する。そして、動画像復号装置200は、符号化された対象ブロック(差分値)を復号することにより対象ブロックの差分値を生成する。次に、動画像復号装置200は、この動きベクトルと対象ブロックの差分値とを用いて対象ブロックを復元する。
一方、第1のフラグが時間動きベクトル予測が用いられない(禁止される)ことを示す場合(S212でNo)、動画像復号装置200は、上記第1のパラメータを復号しない(S216)。つまり、動画像復号装置200は、ビットストリームから第1のパラメータを取得しない。
次に、動画像復号装置200は、時間予測動きベクトルを含まない複数の第2の予測動きベクトル候補を導出する(S217)。
次に、動画像復号装置200は、複数の第2の予測動きベクトル候補のうち1つを用いて、復号対象ピクチャに含まれる復号対象ブロックをインター復号する(S218)。なお、この処理の具体例は、上記のステップS215において複数の第1の予測動きベクトル候補を、複数の第2の予測動きベクトル候補に置き換えた場合の処理と同様である。
なお、上記ステップS211は、動画像復号装置200に含まれるフラグ復号部により実行される。また、ステップS213及びS216は、動画像復号装置200に含まれるパラメータ復号部により実行される。ステップS214及びS217は、動画像復号装置200に含まれる候補導出部により実行される。ステップS215及びS218は、動画像復号装置200に含まれる動きベクトル復号部により実行される。
ここでフラグ復号部の機能は、例えば、図15に示す可変長復号部201等により実現される。また、パラメータ復号部の機能は、図15に示す可変長復号部201等により実現される。候補導出部の機能は、図15に示すインター予測制御部210及び時間予測動きベクトル算出部211により実現される。動きベクトル復号部の機能は、図15に示す可変長復号部201、インター予測部208、及びインター予測制御部210等により実現される。
(変形例)
次に、図22を参照して、実施の形態1の変形例に係る動画像符号化装置300を説明する。図22は、実施の形態1の変形例に係る動画像符号化装置300のブロック図である。なお、実施の形態1との共通点の詳しい説明は省略し、相違点を中心に説明する。
動画像符号化装置300は、図22に示されるように、基本ビューを符号化することで基本ビットストリームを生成する第1の符号化部310と、依存ビューを符号化することで依存ビットストリームを生成する第2の符号化部320とを備える。なお、図22では、動画像符号化装置300が基本ビットストリームと依存ビットストリームとを独立したストリームとして出力する例を示しているが、これに限定されず、動画像符号化装置300は、基本ビットストリームと依存ビットストリームとを結合した1本のビットストリームを出力してもよい。
第1の符号化部310及び第2の符号化部320の基本的な構成は、図2に示される動画像符号化装置100と共通する。但し、第2の符号化部320は、動画像符号化装置100の機能に加えて、第1の符号化部310のフレームメモリ108等を参照する機能を有する。
次に、図23及び図24を参照して、実施の形態1の変形例に係る動画像符号化方法を説明する。図23は、実施の形態1の変形例に係る動画像符号化方法の動作を示すフローチャートである。図24は、基本ビュー及び依存ビューに属するピクチャの例を示す図である。
基本ビューは、図24に示されるように、複数のピクチャI11、P12、P13、P14、I15、P16、P17を含む。また、基本ビューに属するピクチャのうち、GOP(Group Of Pictures)先頭のピクチャI11、I15はIピクチャであり、それ以外のピクチャP12、P13、P14、P16、P17はPピクチャである。なお、基本ビューは、基本ビューに属するピクチャのみを参照(すなわち、イントラ予測符号化又はインター予測符号化)して符号化され、復号される。
また、依存ビューは、図24に示されるように、複数のピクチャP21、P22、P23、P24、P25、P26、P27で構成される。また、依存ビューに属する全てのピクチャP21、P22、P23、P24、P25、P26、P27は、Pピクチャである。なお、依存ビューは、依存ビューに属するピクチャの他に、基本ビューに属する、処理対象のピクチャに対応するピクチャを参照(すなわち、ビュー間予測符号化)して符号化され、復号される。
また、基本ビューと依存ビューとは、被写体を異なる視点から見た映像である。すなわち、基本ビュー及び依存ビューの互いに対応するピクチャ(同一のタイムスタンプが付加されたピクチャ)は、水平方向の視差を有する。そして、第2の符号化部320は、依存ビューに属する各ピクチャを、基本ビューに属する、処理対象のピクチャに対応する画像を参照ピクチャとして用いて符号化することができる。以下、図23を参照して、第2の符号化部320の時間予測動きベクトル算出部114の動作を説明する。
まず、時間予測動きベクトル算出部114は、符号化対象ブロックの符号化の際に時間予測動きベクトルを取得できるか否かを判断する(S91)。そして、時間予測動きベクトルを取得できない場合(S91でYes)、時間予測動きベクトル算出部114は、後述する視差ベクトルを予測動きベクトル候補に含める(S92)。一方、時間予測動きベクトルを取得できる場合(S91でNo)、時間予測動きベクトル算出部114は、時間予測動きベクトルを予測動きベクトル候補に含める(S93)。
ここで、時間予測動きベクトルが取得できない場合とは、例えば、符号化対象ブロックがGOP先頭のピクチャP21、P25である場合が挙げられる。GOP先頭のピクチャP21、P25は、表示順でこのピクチャより前のピクチャを参照することができない。すなわち、符号化順と表示順とが一致する場合、ピクチャP21、P25が参照できるのは、基本ビューの対応するピクチャI11、I15のみである。
しかしながら、ピクチャI11、I15はIピクチャであるので、動きベクトルの情報が存在しない。そこで、時間予測動きベクトル算出部114は、このような場合に、全体ベクトル保存部116に保存されている視差ベクトルを、時間予測動きベクトルの代替ベクトルとして予測動きベクトル候補に含めると共に、依存ビットストリームのヘッダ情報に視差ベクトルを含める。
ここで、視差ベクトルとは、基本ビューと依存ビューとの間の視差に相当するベクトルである。具体的には、第2の符号化部320のインター予測制御部112は、依存ビューの符号化対象ピクチャを構成する各ブロックをビュー間予測符号化した際の動きベクトル(すなわち、基本ビューの対応するピクチャを参照ピクチャとして用いて符号化した際の動きベクトル)を、全体ベクトル保存部116に出力する。そして、全体ベクトル保存部116は、インター予測制御部112から取得した動きベクトルのピクチャ単位の平均値、中央値、又は最頻値等を、視差ベクトルとして保存する。
なお、図23のステップS92において、時間予測動きベクトル算出部114は、依存ビューのピクチャP25の視差ベクトルとして、ピクチャP25が属するGOPの直前のGOP先頭のピクチャP21で算出された視差ベクトル(ピクチャI11を参照ピクチャとする視差ベクトル)を選択してもよいし、直前に符号化されたピクチャP24で算出された視差ベクトル(ピクチャP14を参照ピクチャとする視差ベクトル)を選択してもよい。
また、図23のステップS91において、時間予測動きベクトルを取得できない場合の具体例は上記の例に限定されず、符号化対象ピクチャのco-located使用禁止フラグがオンである場合であってもよい。co-located使用禁止フラグについては、実施の形態1の説明と共通するので、再度の説明は省略する。
このように、本発明は、多視点映像を構成する基本ビュー及び依存ビューを符号化する場合にも適用することができる。すなわち、依存ビューに属する符号化対象ピクチャを符号化する際の予測動きベクトル候補に、時間予測動きベクトルを含めるか、時間予測動きベクトルの代替ベクトルである視差ベクトルを含めるかを切り替えることにより、符号化効率の低下を抑制しながら、復号エラーの伝播を防止することが可能になる。
次に、図25を参照して、実施の形態2の変形例に係る動画像復号装置400を説明する。図25は、実施の形態2の変形例に係る動画像復号装置400のブロック図である。なお、実施の形態2との共通点の詳しい説明は省略し、相違点を中心に説明する。
動画像復号装置400は、図25に示されるように、基本ビットストリームを復号することにより基本ビューを生成する第1の復号部410と、依存ビットストリームを復号することにより依存ビューを生成する第2の復号部420とを備える。なお、図25では、動画像復号装置400に、独立した基本ビットストリームと依存ビットストリームとが別々に入力される例を示しているが、これに限定されず、基本ビットストリームと依存ビットストリームとを結合した1本のビットストリームが入力され、動画像復号装置400の内部で基本ビットストリームと依存ビットストリームとに分割されてもよい。
第1の復号部410及び第2の復号部420の基本的な構成は、図15に示される動画像復号装置200と共通する。但し、第2の復号部420は、動画像復号装置200の機能に加えて、第1の復号部410のフレームメモリ206等を参照する機能を有する。すなわち、動画像復号装置400は、動画像符号化装置300で符号化された基本ビットストリーム及び依存ビットストリームを復号する。
そして、動画像復号装置400の第2の復号部420は、復号対象ブロックの予測動きベクトル候補の1つに、colPicメモリ212に保存されている時間予測動きベクトルを含めるか、依存ビットストリームのヘッダ情報に含まれる視差ベクトルを含めるかを、切り替えることができる。なお、第2の復号部420に含まれる時間予測動きベクトル算出部211の動作は、図23の処理と同様である。
以上、実施の形態に係る動画像符号化装置に及び動画像復号装置ついて説明したが、本発明は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る動画像符号化装置及び動画像復号装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、動画像符号化装置及び動画像復号装置は、制御回路(control circuitry)と、当該制御回路に電気的に接続された(当該制御装置からアクセス可能な)記憶装置(storage)とを備える。制御回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、制御回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、上記の動画像符号化方法又は動画像復号方法に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、本発明の一つ又は複数の態様に係る動画像符号化装置及び動画像復号装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。
(実施の形態3)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図26は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図26のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図27に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図28は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図29に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図30に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図28に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図31Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図31Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG-2、MPEG4-AVC、VC-1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図32は、多重化データの構成を示す図である。図32に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図33は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図34は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図34における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図34の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
図35は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD-ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図35下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図36はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図37に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図37に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図38に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図39に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により候補から参照ピクチャや動きベクトルを選択して復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。これは例えば、属性情報がMPEG4-AVC規格に準拠するものであることを示している場合であれば、複数候補から選択するのではなく、空間的又は時間的に隣接する周辺ブロックの動きベクトルから算出される動きベクトルを用いて復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図40に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。このようなプログラマブル・ロジック・デバイスは、典型的には、ソフトウェア又はファームウェアを構成するプログラムを、ロードする又はメモリ等から読み込むことで、上記各実施の形態で示した動画像符号化方法、又は動画像復号化方法を実行することができる。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図41は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図40のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図40の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態4で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態4で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図43のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図42は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4-AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態7)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG-2、MPEG4-AVC、VC-1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図44Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4-AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4-AVC規格に対応する復号処理部ex902を共有し、MPEG4-AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、インター予測に特徴を有していることから、例えば、インター予測については専用の復号処理部ex901を用い、それ以外のエントロピー復号、逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4-AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図44Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。