(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した画像符号化方法に関し、以下の問題が生じることを見出した。
一般に、画像符号化装置は、動画像を符号化する時、動画像が有する空間方向および時間方向の冗長性を削減することにより、動画像の情報量を圧縮する。この時、画像符号化装置は、空間方向の冗長性を削減する方法として、イントラ予測(面内予測、または、ピクチャ内予測とも呼ばれる)を用いる。また、画像符号化装置は、時間方向の冗長性を削減する方法として、インター予測(面間予測、または、ピクチャ間予測とも呼ばれる)を用いる。
例えば、画像符号化装置は、符号化対象ピクチャをインター予測で符号化する時、表示順で符号化対象ピクチャの前方または後方の符号化済みピクチャを参照ピクチャとして用いる。そして、画像符号化装置は、動き検出により動きベクトルを導出する。そして、画像符号化装置は、動きベクトルを用いて動き補償を実行することにより、予測画像データを生成する。そして、画像符号化装置は、生成された予測画像データと、符号化対象ピクチャの画像データとの差分を符号化することにより、時間方向の冗長性を取り除く。
また、画像符号化装置は、動き検出の際、符号化対象ピクチャ内の符号化対象ブロックと、参照ピクチャ内のブロックとの差分を算出する。この時、画像符号化装置は、参照ピクチャ内の複数のブロックのうち、最も差分の小さいブロックを参照ブロックと決定する。そして、画像符号化装置は、符号化対象ブロックおよび参照ブロックを用いて、動きベクトルを検出する。
既に標準化された動画像符号化方式であるH.264(非特許文献1)に係る画像符号化装置は、情報量の圧縮のため、Iピクチャ、Pピクチャ、Bピクチャの3種類のピクチャタイプを用いる。
H.264に係る画像符号化装置は、Iピクチャをイントラ予測で符号化する。また、画像符号化装置は、Pピクチャをインター予測で符号化する。画像符号化装置は、Pピクチャの符号化の際、表示順で当該Pピクチャの前方または後方にある既に符号化済みの1つのピクチャを参照する。すなわち、画像符号化装置は、片方向予測を用いて、Pピクチャを符号化する。
また、画像符号化装置は、Bピクチャをインター予測で符号化する。画像符号化装置は、Bピクチャの符号化の際、表示順で当該Bピクチャの前方または後方にある既に符号化済みの2つのピクチャを参照する。すなわち、画像符号化装置は、双方向予測を用いて、Bピクチャを符号化する。
なお、双方向予測の表現は、前方および後方の両方から、それぞれ1つの参照ピクチャを参照して、画像データを予測することのみを意味する場合がある。また、双方向予測の表現は、前方および後方のいずれか一方から、2つの参照ピクチャを参照して、画像データを予測することも含む場合がある。後者の場合、双方向予測は、双予測と表現される場合もある。
画像符号化装置は、インター予測の際、参照ピクチャを特定するための参照ピクチャリストを生成する。画像符号化装置は、参照ピクチャリストにおいて、インター予測で参照される参照ピクチャに、参照ピクチャインデックスを割り当てる。なお、画像符号化装置は、Bピクチャの符号化の際、2つのピクチャを参照する。したがって、画像符号化装置は、2つの参照ピクチャリストL0、L1を保持する。
図30は、参照ピクチャリストの例を示す。図30に示された参照ピクチャリストL0、L1は、双方向予測における2つの参照ピクチャリストの例である。
画像符号化装置は、参照ピクチャリストL0において、表示順で2番目の参照ピクチャに、0の参照ピクチャインデックスを割り当てる。また、画像符号化装置は、表示順で1番目の参照ピクチャに、1の参照ピクチャインデックスを割り当てる。そして、画像符号化装置は、表示順で0番目の参照ピクチャに、2の参照ピクチャインデックスを割り当てる。つまり、画像符号化装置は、符号化対象ピクチャに表示順で近い順に、参照ピクチャインデックスを割り当てる。
一方、画像符号化装置は、参照ピクチャリストL1において、表示順で2番目の参照ピクチャに、0の参照ピクチャインデックスを割り当てる。また、画像符号化装置は、表示順で1番目の参照ピクチャに、2の参照ピクチャインデックスを割り当てる。そして、画像符号化装置は、表示順で0番目の参照ピクチャに、1の参照ピクチャインデックスを割り当てる。
このように、画像符号化装置は、同じ参照ピクチャに対して、参照ピクチャリスト毎に異なる参照ピクチャインデックスを割り当ててもよい。また、画像符号化装置は、同じ参照ピクチャに対して、同じ参照ピクチャインデックスを割り当ててもよい。
また、参照ピクチャリストL0が、第1予測方向に対応し、参照ピクチャリストL1が、第2予測方向に対応してもよい。ここで、第1予測方向および第2予測方向は、それぞれ、前方および後方のいずれか一方であって、互いに異なる。典型的には、参照ピクチャリストL0が、表示順で符号化対象ピクチャの前方にある参照ピクチャを特定するために用いられる。そして、参照ピクチャリストL1が、表示順で符号化対象ピクチャの後方にある参照ピクチャを特定するために用いられる。
また、インター予測には、符号化対象ブロックの画像データを予測するための複数の符号化モードがある。符号化モードは、インター予測またはイントラ予測を示すだけではなく、インター予測またはイントラ予測に含まれる詳細なモードを示す場合がある。画像符号化装置は、複数の符号化モードから、符号化対象ブロックの画像データの予測に適用するための符号化モードを選択する。
例えば、画像符号化装置は、表示順で符号化対象ピクチャの前方または後方にある2つのピクチャを参照して予測画像を生成する双方向予測を符号化モードとして選択する。また、例えば、画像符号化装置は、表示順で符号化対象ピクチャの前方または後方にある1つのピクチャを参照して予測画像を生成する片方向予測を符号化モードとして選択する。また、画像符号化装置は、時間ダイレクトモードと呼ばれる符号化モードを選択する。
図31は、時間ダイレクトモードを示す図である。図31は、時間ダイレクトモードで得られた動きベクトルを用いて、ピクチャB2の符号化対象ブロックを符号化する場合を示している。
この場合、画像符号化装置は、co−locatedブロックの符号化の際に用いられた動きベクトルvbを利用する。co−locatedブロックは、表示順でピクチャB2の後方の参照ピクチャであるピクチャP3内に含まれる。また、co−locatedブロックの位置は、符号化対象ブロックの位置に一致する。co−locatedブロックの動きベクトルvbは、ピクチャP1を指し示している。
画像符号化装置は、動きベクトルvbに対して平行な2つの動きベクトルva1、va2を用いて、前方の参照ピクチャであるピクチャP1と、後方の参照ピクチャであるピクチャP3との両方から、符号化対象ブロックに対応する2つの参照ブロックを特定する。そして、画像符号化装置は、双方向予測により、符号化対象ブロックを符号化する。
すなわち、画像符号化装置は、ピクチャP1については動きベクトルva1を用い、ピクチャP3については動きベクトルva2を用いる。そして、画像符号化装置は、2つの参照ブロックを特定し、双方向予測によって符号化対象ブロックを符号化する。
2つの動きベクトルva1、va2は、動きベクトルvbに対して平行である。画像符号化装置は、3つのピクチャP1、B2、P3間の時間的な距離の比率に応じて、動きベクトルvbを伸縮することにより、2つの動きベクトルva1、va2を取得する。
また、BピクチャまたはPピクチャにおける符号化対象ブロックの動きベクトルを符号化する時に予測動きベクトル指定モードを用いることが検討されている(非特許文献2)。予測動きベクトル指定モードを用いる画像符号化装置は、符号化対象ブロックに隣接する隣接ブロック等から、予測動きベクトルについての複数の候補を生成する。そして、画像符号化装置は、複数の候補から予測動きベクトルを選択する。
そして、画像符号化装置は、選択された予測動きベクトルを用いて、符号化対象ブロックの動きベクトルを符号化する。また、画像符号化装置は、選択された予測動きベクトルのインデックス(予測動きベクトルインデックスとも呼ばれる)をビットストリームに追加する。これにより、画像復号装置は、復号時に同一の予測動きベクトルを選択できる。
図32は、予測動きベクトル指定モードを説明するための図であって、符号化対象ブロックと隣接ブロックとの関係を示す図である。図32において、隣接ブロックAは、符号化対象ブロックの左に隣接する符号化済みブロックである。隣接ブロックBは、符号化対象ブロックの上に隣接する符号化済みブロックである。隣接ブロックCは、符号化対象ブロックの右上に隣接する符号化済みブロックである。隣接ブロックDは、符号化対象ブロックの左下に隣接する符号化済みブロックである。
隣接ブロックAは、動きベクトルmvAを有する。すなわち、隣接ブロックAは、動きベクトルmvAを用いて、符号化されている。また、隣接ブロックBは、動きベクトルmvBを有する。すなわち、隣接ブロックBは、動きベクトルmvBを用いて、符号化されている。また、隣接ブロックCは、イントラ予測で符号化されている。したがって、隣接ブロックCは、動きベクトルを有しない。また、隣接ブロックDは、動きベクトルmvDを有する。すなわち、隣接ブロックDは、動きベクトルmvDを用いて、符号化されている。
画像符号化装置は、複数の動きベクトルmvA、mvB、mvD等から、予測動きベクトルを選択する。また、画像符号化装置は、時間ダイレクトモードによる動きベクトルを予測動きベクトルとして選択する場合がある。時間ダイレクトモードによる動きベクトルは、符号化対象ブロックについてのco−locatedブロックから得られる。
画像符号化装置は、複数の候補の中から、符号化対象ブロックの動きベクトルを最も効率よく符号化できる予測動きベクトルを選択する。例えば、画像符号化装置は、符号化対象ブロックの動きベクトルに最も近い候補を予測動きベクトルとして選択する。そして、画像符号化装置は、選択された予測動きベクトルを表すインデックスをビットストリームに追加する。
より具体的には、例えば、画像符号化装置は、符号化対象ブロックの動きベクトルを符号化する際に、隣接ブロックAの動きベクトルmvAを予測動きベクトルとして選択する。そして、画像符号化装置は、複数のインデックス値のうち、動きベクトルmvAを用いたことを示すインデックス値をビットストリームに追加する。これにより、画像符号化装置は、符号化対象ブロックの動きベクトルの情報量を削減できる。
図33は、予測動きベクトルの候補で構成されるリストの例を示す。また、画像符号化装置は、利用できない候補(以下、利用不可候補と記載する)をリストから削除する。また、画像符号化装置は、他の候補と同じ値を有する候補(以下、重複候補)をリストから削除する。候補の数が減少することで、インデックスの符号量が減少する。
例えば、隣接ブロックがイントラ予測で符号化されたブロックである場合、当該隣接ブロックは動きベクトルを有していない。この場合、画像符号化装置は、当該隣接ブロックからは予測動きベクトルを得ることができない。そのため、この場合、画像符号化装置は、当該隣接ブロックについての候補をリストから削除する。
また、隣接ブロックが、スライスの外側、または、ピクチャの外側である場合、画像符号化装置は、当該隣接ブロックから予測動きベクトルを取得できない。また、隣接ブロックが、まだ符号化されていない場合、画像符号化装置は、当該隣接ブロックから予測動きベクトルを取得できない。このような場合、画像符号化装置は、当該隣接ブロックについての候補をリストから削除する。
図33の例では、隣接ブロックCがイントラ予測で符号化されているため、3のインデックス値で特定される候補は、利用不可候補である。したがって、画像符号化装置は、リストから当該候補を削除する。
また、隣接ブロックDの動きベクトルmvDは、隣接ブロックAの動きベクトルmvAに一致している。したがって、4のインデックス値で特定される候補は、リストから削除される。最終的に、候補の数は3となる。
図34は、画像符号化装置の動作を示すフローチャートである。まず、画像符号化装置は、複数の対応ブロックのそれぞれについて、対応ブロックの動きベクトルをリストに追加する(S81)。対応ブロックは、隣接ブロックまたはco−locatedブロック等である。
次に、画像符号化装置は、リストから、重複候補および利用不可候補を削除する(S82)。次に、画像符号化装置は、リストから予測動きベクトルを選択する(S83)。次に、画像符号化装置は、選択された予測動きベクトルに対応するインデックスを符号化する。また、画像符号化装置は、選択された予測動きベクトルと、動きベクトルとの差分を符号化する(S84)。
図35は、画像復号装置の動作を示すフローチャートである。画像復号装置は、複数の対応ブロックのそれぞれについて、対応ブロックの動きベクトルをリストに追加する(S91)。
次に、画像復号装置は、リストから重複候補および利用不可候補を削除する(S92)。次に、画像復号装置は、画像符号化装置によって符号化されたインデックスおよび差分を復号する。(S93)。画像復号装置は、復号されたインデックスによって予測動きベクトルを選択する(S94)。そして、画像復号装置は、予測動きベクトルと差分とを加算することにより、動きベクトルを復元する。そして、画像復号装置は、復元された動きベクトルを用いて、復号対象ブロックを復号する。
しかしながら、従来の予測動きベクトル指定モードでは、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化されることが考慮されていない。例えば、MVC(Multiview Video Coding:多視点映像符号化)に係る画像符号化装置は、ベースビューのピクチャを参照して、ノンベースビューのピクチャを符号化する場合がある。この時、参照関係を有する2つのピクチャ(ベースビューのピクチャ、および、ノンベースビューのピクチャ)は、時間的に一致する。
より具体的には、co−locatedブロックが参照ピクチャを用いて符号化され、かつ、co−locatedブロックと参照ピクチャとが、互いに異なるビューに属している場合がある。このような場合、co−locatedブロックは、co−locatedブロックに時間的に一致する参照ピクチャを用いて符号化される。
この場合、動きベクトルについて時間的な距離が0であるため、画像符号化装置は、時間的な距離に基づいて、動きベクトルを伸縮することができない。したがって、画像符号化装置は、時間ダイレクトモードによる動きベクトルを取得することができない。そのため、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化される可能性がある場合、画像符号化装置は、特殊なフラグ等により動作を切り替える必要がある。しかし、特殊なフラグ等による動作の切り替えは、符号化効率の観点からも、非効率である。
そこで、本発明は、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化される可能性がある場合も、予測動きベクトルをリストから適切に選択することができる画像符号化方法を提供することを目的とする。また、異なるビューに属するピクチャを参照することだけが許可されるようなピクチャを定義し、そのピクチャ内のすべての処理対象ブロックは、異なるビューに属するピクチャのみを用いて符号化、または復号化することによって、予測動きベクトルを適切に生成することができる画像符号化方法を提供することを目的とする。
このような問題を解決するために、本発明の一態様に係る画像符号化方法は、複数のピクチャをブロック毎に符号化する画像符号化方法であって、前記複数のピクチャから符号化対象ピクチャに含まれる符号化対象ブロックの符号化に用いる参照ピクチャを決定し、前記参照ピクチャの中から、前記符号化対象ブロックの動きベクトルを符号化するための予測動きベクトルを導出する際に用いる第1ピクチャを決定し、前記符号化対象ブロックに空間的に隣接する1以上の隣接ブロックの動きベクトル、または、前記第1ピクチャに含まれ前記符号化対象ブロックに空間的に近い位置に位置する1以上の第1ブロックの動きベクトルをリストに追加し、前記リストに追加された前記動きベクトルのうちの1つを前記予測動きベクトルとして選択し、前記符号化対象ブロックの動きベクトルを用いて前記符号化対象ブロックを符号化し、前記符号化対象ブロックの前記動きベクトルと、選択された前記予測動きベクトルとの差分を符号化し、前記符号化対象ブロックと前記差分とを符号化する際には、前記符号化対象ピクチャが特定のピクチャタイプである場合には、前記符号化対象ピクチャに含まれる全てのブロックの前記動きベクトルは、前記符号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャを参照して生成される。
これによれば、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化される可能性がある場合も、予測動きベクトルがリストから適切に選択される。また、異なるビューに属するピクチャを参照することだけが許可されるようなピクチャを定義し、そのピクチャ内のすべての処理対象ブロックは、異なるビューに属するピクチャのみを用いて符号化、または復号化することによって、予測動きベクトルを適切に生成することができる。
例えば、前記参照ピクチャを決定する際には、前記符号化対象ピクチャが前記特定のピクチャタイプである場合には、前記符号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成するとしてもよい。
例えば、前記参照ピクチャを決定する際には、前記符号化対象ピクチャが前記特定のピクチャタイプである場合には、前記符号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成し、前記符号化対象ピクチャが前記特定のピクチャタイプでない場合には、前記符号化対象ピクチャの属するビューと同一のビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成するとしてもよい。
例えば、前記第1ピクチャを決定する際には、前記符号化対象ピクチャが前記特定のピクチャタイプである場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一のピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定するとしてもよい。
例えば、前記第1ピクチャを決定する際には、前記符号化対象ピクチャが前記特定のピクチャタイプである場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一のピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定し、前記符号化対象ピクチャが前記特定のピクチャタイプでない場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一ではないピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定するとしてもよい。
例えば、前記特定のピクチャタイプとは、前記符号化対象ピクチャに含まれる全てのブロックが、前記符号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャを用いて符号化するようなピクチャを含むとしてもよい。
また、本発明の一態様に係る画像復号化方法は、複数のピクチャをブロック毎に復号化する画像復号化方法であって、前記複数のピクチャから復号化対象ピクチャに含まれる復号化対象ブロックの復号化に用いる参照ピクチャを決定し、前記参照ピクチャの中から、前記復号化対象ブロックの動きベクトルを復号化するための予測動きベクトルを導出する際に用いる第1ピクチャを決定し、前記復号化対象ブロックに空間的に隣接する1以上の隣接ブロックの動きベクトル、または、前記第1ピクチャに含まれ前記復号化対象ブロックに空間的に近い位置に位置する1以上の第1ブロックの動きベクトルをリストに追加し、前記リストに追加された前記動きベクトルのうちの1つを前記予測動きベクトルとして選択し、前記復号化対象ブロックの動きベクトルと、選択された前記予測動きベクトルとの差分を復号化し、復号化された前記差分と、選択された前記予測動きベクトルとを加算することにより前記復号化対象ブロックの前記動きベクトルを取得し、取得された前記動きベクトルを用いて前記復号化対象ブロックを復号化し、前記差分と前記復号化対象ブロックとを復号化する際には、前記復号化対象ピクチャが特定のピクチャタイプである場合には、前記復号化対象ピクチャに含まれる全てのブロックの前記動きベクトルは、前記復号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャを参照して生成される。
例えば、前記参照ピクチャを決定する際には、前記復号化対象ピクチャが前記特定のピクチャタイプである場合には、前記復号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成するとしてもよい。
例えば、前記参照ピクチャを決定する際には、前記復号化対象ピクチャが前記特定のピクチャタイプである場合には、前記復号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成し、前記復号化対象ピクチャが前記特定のピクチャタイプでない場合には、前記復号化対象ピクチャの属するビューと同一のビューに属する前記参照ピクチャのみを用いて前記参照ピクチャリストを生成するとしてもよい。
例えば、前記第1ピクチャを決定する際には、前記復号化対象ピクチャが前記特定のピクチャタイプである場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一のピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定するとしてもよい。
例えば、前記第1ピクチャを決定する際には、前記復号化対象ピクチャが前記特定のピクチャタイプである場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一のピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定し、前記復号化対象ピクチャが前記特定のピクチャタイプでない場合には、前記参照ピクチャのうち、前記特定のピクチャタイプと同一ではないピクチャタイプである前記参照ピクチャを前記第1ピクチャとして決定するとしてもよい。
例えば、前記特定のピクチャタイプとは、前記復号化対象ピクチャに含まれる全てのブロックが、前記復号化対象ピクチャの属するビューとは異なるビューに属する前記参照ピクチャを用いて復号化するようなピクチャを含むとしてもよい。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
図1は、本実施の形態に係る画像符号化装置を示す構成図である。図1に示された画像符号化装置は、符号化部101、インター予測制御部121およびピクチャタイプ決定部124を備える。また、符号化部101は、減算部102、直交変換部103、量子化部104、可変長符号化部105、逆量子化部106、逆直交変換部107、加算部108、ブロックメモリ109、イントラ予測部110、フレームメモリ111、インター予測部112およびスイッチ113を備える。
減算部102は、入力画像データから予測画像データを減算して、予測誤差データを出力する。直交変換部103は、予測誤差データに対し、画像領域から、周波数領域への変換を行う。量子化部104は、周波数領域に変換された予測誤差データに対し、量子化処理を行う。
逆量子化部106は、量子化部104により、量子化処理された予測誤差データに対し、逆量子化処理を行う。逆直交変換部107は、逆量子化処理された予測誤差データに対し、周波数領域から、画像領域への変換を行う。加算部108は、予測誤差データと予測画像データとを加算して、再構築画像データを出力する。ブロックメモリ109は、再構築画像データをブロック単位で保存するためのメモリである。フレームメモリ111は、再構築画像データをフレーム単位で保存するためのメモリである。
イントラ予測部110は、ブロックメモリ109に保存されているブロック単位の再構築画像データを用いて、イントラ予測を実行する。これにより、イントラ予測部110は、符号化対象ブロックについての予測画像データを生成する。インター予測部112は、フレームメモリ111に保存されているフレーム単位の再構築画像データと、動き検出により導出した動きベクトルとを用いて、インター予測を実行する。これにより、インター予測部112は、符号化対象ブロックについての予測画像データを生成する。スイッチ113は、イントラ予測またはインター予測に符号化モードを切り替える。
ピクチャタイプ決定部124は、Iピクチャ、Bピクチャ、Pピクチャのいずれのピクチャタイプで入力画像データを符号化するかを決定し、ピクチャタイプ情報を生成する。
インター予測制御部121は、1以上の候補から、予測動きベクトルを選択する。インター予測制御部121で実行される処理については、後で詳細に述べる。
可変長符号化部105は、量子化処理された予測誤差データ、予測動きベクトルを示すインデックス、予測動きベクトルと動きベクトルとの差分(差分動きベクトルまたは差分ベクトルとも呼ばれる)、および、ピクチャタイプ情報等に対して、可変長符号化処理を行う。これにより、可変長符号化部105は、ビットストリームを生成する。
なお、図1は、本実施の形態に係る画像符号化装置の一例を示す構成図である。具体的な構成の態様は、図1に示された構成に限られない。例えば、ピクチャタイプが予め定められている場合、ピクチャタイプ決定部124は無くてもよい。また、符号化部101は、複数の構成要素で構成される必要はない。また、符号化部101は、周波数変換、量子化、逆周波数変換、逆量子化およびイントラ予測等を実行せずに、画像を符号化してもよい。
図2は、図1に示された画像符号化装置の主要な構成要素を示す構成図である。図2に示された画像符号化装置は、符号化部101およびインター予測制御部121を備える。また、インター予測制御部121は、追加部131および選択部132を備える。
追加部131は、1以上の対応ブロック(第1ブロック)のそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する。すなわち、追加部131は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルをリストに追加するか否かを選択し、追加するとして選択された動きベクトルをリストに追加する。追加部131は、1以上の対応ブロックにおける1以上の動きベクトルの全てをリストに追加してもよいし、1以上の対応ブロックにおける1以上の動きベクトルの一部をリストに追加してもよい。
また、対応ブロックは、隣接ブロックまたはco−locatedブロック等である。具体的には、対応ブロックは、符号化対象ピクチャに含まれ、符号化対象ブロックに空間的に隣接するブロックでもよい。また、対応ブロックは、符号化対象ピクチャとは異なる1以上のピクチャに含まれ符号化対象ブロックに空間的に一致するブロックでもよい。
選択部132は、リストから、予測動きベクトルを選択する。具体的には、選択部132は、符号化対象ブロックの動きベクトルを符号化する時に用いられる動きベクトルを予測動きベクトルとして選択する。
符号化対象ブロックの動きベクトルは、予測動きベクトルと区別するために、カレント動きベクトル、または、現動きベクトルとも呼ばれる。また、対応ブロックの動きベクトル、隣接ブロックの動きベクトル、および、co−locatedブロックの動きベクトルは、それぞれ、対応動きベクトル、隣接動きベクトル、および、co−located動きベクトルとも呼ばれる。
符号化部101は、符号化対象ブロックの動きベクトルを用いて符号化対象ブロックを符号化する。また、符号化部101は、符号化対象ブロックの動きベクトルと選択部132で選択された予測動きベクトルとの差分を符号化する。
これにより、画像符号化装置は、予測動きベクトルをリストから選択し、予測動きベクトルを動きベクトルの符号化に用いることができる。
図3は、本実施の形態に係る隣接ブロックの動きベクトルを示す図である。図3には、複数のピクチャB0〜B4が表示順で示されている。
動きベクトルMvL0は、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Nは、隣接ブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Nは、隣接ブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
例えば、追加部131は、動きベクトルMvL0_Nをリストに追加する。そして、選択部132は、リストから動きベクトルMvL0_Nを選択する。そして、符号化部101は、選択された動きベクトルMvL0_Nと、符号化対象ブロックの動きベクトルMvL0との差分を符号化する。また、符号化部101は、選択された動きベクトルMvL0_Nを示すインデックスを符号化する。これにより、動きベクトルMvL0の符号化効率が向上する。
図4は、本実施の形態に係るco−locatedブロックの動きベクトルを示す図である。図4には、図3と同様に、複数のピクチャB0〜B4が表示順で示されている。
動きベクトルMvL0は、図3と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図3と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Colは、co−locatedブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Colは、co−locatedブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
動きベクトルsMvL0_Colは、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、co−locatedブロックからその参照ピクチャまでの時間的な距離との比率で伸縮された動きベクトルである。また、動きベクトルsMvL0_Colと動きベクトルMvL0_Colとは、平行である。例えば、sMvL0_Colは、式1によって導出される。
sMvL0_Col=MvL0_Col*(POC(RefL0)-curPOC)/(POC(RefL0_Col)-colPOC) ・・・(式1)
ここで、curPOCは、符号化対象ピクチャの表示順を示す。colPOCは、co−locatedブロックを含むピクチャの表示順を示す。POC(r)は、参照ピクチャインデックスrで特定される参照ピクチャの表示順である。これにより、動きベクトルsMvL0_Colが得られる。
例えば、追加部131は、動きベクトルMvL0_Colを伸縮させることにより、動きベクトルsMvL0_Colを取得する。そして、追加部131は、動きベクトルsMvL0_Colをリストに追加する。そして、選択部132は、リストから動きベクトルsMvL0_Colを選択する。
そして、符号化部101は、選択された動きベクトルsMvL0_Colと、符号化対象ブロックの動きベクトルMvL0との差分を符号化する。また、符号化部101は、選択された動きベクトルsMvL0_Colを示すインデックスを符号化する。これにより、動きベクトルMvL0の符号化効率が向上する。
図5は、本実施の形態に係る伸縮処理の第1例を示す図である。本実施の形態に係る画像符号化装置は、時間ダイレクトモードと同様に、隣接ブロックの動きベクトルを伸縮して、予測動きベクトルとして用いてもよい。図5は、隣接ブロックの動きベクトルの伸縮処理を示す。図5には、図3と同様に、複数のピクチャB0〜B4が表示順で示されている。
動きベクトルMvL0は、図3と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図3と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Nは、図3と同様に、隣接ブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Nは、図3と同様に、隣接ブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
動きベクトルsMvL0_Nは、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、隣接ブロックからその参照ピクチャまでの時間的な距離との比率で伸縮された動きベクトルである。また、動きベクトルsMvL0_Nと動きベクトルMvL0_Nとは、平行である。例えば、sMvL0_Nは、式2によって導出される。
sMvL0_N=MvL0_N*(POC(RefL0)-curPOC)/(POC(RefL0_N)-curPOC) ・・・(式2)
ここで、curPOCは、符号化対象ピクチャの表示順を示す。POC(r)は、参照ピクチャインデックスrで特定される参照ピクチャの表示順である。これにより、動きベクトルsMvL0_Nが得られる。
例えば、追加部131は、動きベクトルMvL0_Nを伸縮させることにより、動きベクトルsMvL0_Nを取得する。そして、追加部131は、動きベクトルsMvL0_Nをリストに追加する。そして、選択部132は、リストから動きベクトルsMvL0_Nを選択する。
そして、符号化部101は、選択された動きベクトルsMvL0_Nと、符号化対象ブロックの動きベクトルMvL0との差分を符号化する。また、符号化部101は、選択された動きベクトルsMvL0_Nを示すインデックスを符号化する。これにより、動きベクトルMvL0の符号化効率が向上する。
図6は、本実施の形態に係る伸縮処理の第2例を示す図である。図3、図4、図5では、参照ピクチャリストL0を用いる例が示されている。しかし、本実施の形態に係る画像符号化装置は、参照ピクチャリストL1を用いる場合でも、同様に、対応ブロックの動きベクトルを予測動きベクトルとして用いることができる。
さらに、本実施の形態に係る画像符号化装置は、参照ピクチャリストL1によるインター予測の動きベクトルを、参照ピクチャリストL0によるインター予測の予測動きベクトルとして用いてもよい。例えば、画像符号化装置は、後方向予測の動きベクトルを前方向予測の予測動きベクトルとして用いてもよい。図6は、このような場合の例を示す。図6には、図3と同様に、複数のピクチャB0〜B4が表示順で示されている。
動きベクトルMvL0は、図3と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図3と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL1_Nは、隣接ブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL1_Nは、隣接ブロックの符号化の際に、参照ピクチャリストL1で指定された参照ピクチャインデックスである。
動きベクトルsMvL0_Nは、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、隣接ブロックからその参照ピクチャまでの時間的な距離との比率で伸縮された動きベクトルである。また、動きベクトルsMvL0_Nと動きベクトルMvL1_Nとは、平行である。例えば、sMvL0_Nは、式3によって導出される。
sMvL0_N=MvL1_N*(POC(RefL0)-curPOC)/(POC(RefL1_N)-curPOC) ・・・(式3)
ここで、curPOCは、符号化対象ピクチャの表示順を示す。POC(r)は、参照ピクチャインデックスrで特定される参照ピクチャの表示順である。これにより、動きベクトルsMvL0_Nが得られる。
このように予測方向が反対である場合でも、画像符号化装置は、動きベクトルを伸縮し、伸縮された動きベクトルを予測動きベクトルとして用いることができる。
図7は、本実施の形態に係る参照関係の第1例を示す図である。図7には、ベースビューとノンベースビューとの2つのビューが示されている。2つのビューは、それぞれ、複数のピクチャで構成される。例えば、2つのビューは、視点の異なる2つの映像である。本実施の形態に係る画像符号化装置は、多視点映像を符号化するMVCの機能を有していてもよい。
MVCの機能を有する画像符号化装置は、ベースビューのピクチャを参照して、ノンベースビューのピクチャを符号化することができる。画像符号化装置がベースビューのピクチャを参照してノンベースビューのピクチャを符号化する場合、参照されるピクチャの表示順と、符号化されるピクチャの表示順とは、一致する。
図7には、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
動きベクトルMvL0は、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Nは、隣接ブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Nは、隣接ブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
図7の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、隣接ブロックからその参照ピクチャまでの時間的な距離とが異なる。したがって、式2に従って、動きベクトルMvL0_Nは、伸縮される必要がある。しかし、図7の例では、隣接ブロックからその参照ピクチャまでの時間的な距離が、0である。したがって、式2の分母が0になるため、追加部131は、動きベクトルMvL0_Nを伸縮することができない。
そこで、このような場合、追加部131は、当該隣接ブロックによる動きベクトルをリストに追加しない。これにより、追加部131は、当該隣接ブロックから、予測動きベクトルを算出しなくてよい。また、これにより、当該隣接ブロックによる動きベクトルは、選択部132によって選択されない。したがって、本実施の形態に係る画像符号化装置は、問題なく動作を継続できる。
図8は、本実施の形態に係る参照関係の第2例を示す図である。図8には、図7と同様に、ベースビューとノンベースビューとの2つのビューが示されている。また、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
動きベクトルMvL0は、図7と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図7と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Nは、図7と同様に、隣接ブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Nは、図7と同様に、隣接ブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
図8の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、隣接ブロックからその参照ピクチャまでの時間的な距離とが異なる。したがって、式2に従って、動きベクトルMvL0_Nは、伸縮される必要がある。しかし、図8の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離が、0である。したがって、式2の分子が0になるため、追加部131は、動きベクトルMvL0_Nを適切に伸縮することができない。
そこで、このような場合、追加部131は、当該隣接ブロックによる動きベクトルをリストに追加しない。これにより、追加部131は、当該隣接ブロックから、予測動きベクトルを算出しなくてよい。また、これにより、当該隣接ブロックによる動きベクトルは、選択部132によって選択されない。したがって、本実施の形態に係る画像符号化装置は、問題なく動作を継続できる。
図9は、本実施の形態に係る参照関係の第3例を示す図である。図9には、図7と同様に、ベースビューとノンベースビューとの2つのビューが示されている。また、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
動きベクトルMvL0は、図7と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図7と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Colは、co−locatedブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Colは、隣接ブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
図9の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、co−locatedブロックからその参照ピクチャまでの時間的な距離とが異なる。したがって、式1に従って、動きベクトルMvL0_Colは、伸縮される必要がある。しかし、図9の例では、co−locatedブロックからその参照ピクチャまでの時間的な距離が、0である。したがって、式1の分母が0になるため、追加部131は、動きベクトルMvL0_Colを伸縮することができない。
そこで、このような場合、追加部131は、当該co−locatedブロックによる動きベクトルをリストに追加しない。これにより、追加部131は、当該co−locatedブロックから、予測動きベクトルを算出しなくてよい。また、これにより、当該co−locatedブロックによる動きベクトルは、選択部132によって選択されない。したがって、本実施の形態に係る画像符号化装置は、問題なく動作を継続できる。
図10は、本実施の形態に係る参照関係の第4例を示す図である。図10には、図9と同様に、ベースビューとノンベースビューとの2つのビューが示されている。また、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
動きベクトルMvL0は、図9と同様に、符号化対象ブロックの符号化に用いられる動きベクトルである。参照ピクチャインデックスRefL0は、図9と同様に、符号化対象ブロックの符号化の際に、参照ピクチャリストL0で指定される参照ピクチャインデックスである。
動きベクトルMvL0_Colは、図9と同様に、co−locatedブロックの符号化に用いられた動きベクトルである。参照ピクチャインデックスRefL0_Colは、図9と同様に、co−locatedブロックの符号化の際に、参照ピクチャリストL0で指定された参照ピクチャインデックスである。
図10の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離と、co−locatedブロックからその参照ピクチャまでの時間的な距離とが異なる。したがって、式1に従って、動きベクトルMvL0_Colは、伸縮される必要がある。しかし、図10の例では、符号化対象ブロックからその参照ピクチャまでの時間的な距離が、0である。したがって、式1の分子が0になるため、追加部131は、動きベクトルMvL0_Colを適切に伸縮することができない。
そこで、このような場合、追加部131は、当該co−locatedブロックによる動きベクトルをリストに追加しない。これにより、追加部131は、当該co−locatedブロックから、予測動きベクトルを算出しなくてよい。また、これにより、当該co−locatedブロックによる動きベクトルは、選択部132によって選択されない。したがって、本実施の形態に係る画像符号化装置は、問題なく動作を継続できる。
なお、図7〜図10において、参照ピクチャリストL0が用いられる場合が示されている。しかし、参照ピクチャリストL1が用いられる場合も同様である。また、参照ピクチャリストL1によるインター予測の動きベクトルが、参照ピクチャリストL0によるインター予測の予測動きベクトルとして用いられる場合も同様である。また、図7〜図10の例では、複数のビューが示されているが、画像符号化装置は、MVCの場合に限られず、1つのビューにおいて同様の処理を適用してもよい。
図11は、図2に示された画像符号化装置の動作を示すフローチャートである。まず、追加部131は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する(S11)。1以上の対応ブロックのそれぞれは、符号化対象ピクチャに含まれ符号化対象ブロックに空間的に隣接するブロック、または、符号化対象ピクチャとは異なるピクチャに含まれ符号化対象ブロックに空間的に一致するブロックである。
(i)追加部131は、1以上の対応ブロックのそれぞれについて、対応ブロックが、対応ブロックの動きベクトルを用いて対応ブロックに時間的に一致するピクチャを参照して符号化された場合、対応ブロックの動きベクトルをリストに追加しない。(ii)追加部131は、1以上の対応ブロックのそれぞれについて、符号化対象ブロックが、符号化対象ブロックの動きベクトルを用いて符号化対象ブロックに時間的に一致するピクチャを参照して符号化される場合、対応ブロックの動きベクトルをリストに追加しない。追加部131は、(i)および(ii)の2つの制限のうち、一方のみを適用してもよい。
次に、選択部132は、リストから、符号化対象ブロックの動きベクトルを符号化する時に用いられる動きベクトルを予測動きベクトルとして選択する(S12)。次に、符号化部101は、符号化対象ブロックの動きベクトルを用いて符号化対象ブロックを符号化する。また、符号化部101は、符号化対象ブロックの動きベクトルと、選択された予測動きベクトルとの差分を符号化する(S13)。これにより、符号化対象ブロックおよび動きベクトルが符号化される。
図12は、図11に示された動作の詳細を示すフローチャートである。図12には、図11に示された追加処理(S11)が、具体的に、示されている。
まず、追加部131は、符号化対象ブロックとその参照ブロックとが、時間的に一致するか否かを判定する(S21)。そして、符号化対象ブロックとその参照ブロックとが時間的に一致する場合(S21でYes)、追加部131は、視差ベクトルをリストに追加する(S22)。視差ベクトルは、視差の大きさと方向を示す動きベクトルである。例えば、視差ベクトルは、ベースビューにおけるピクチャと、ノンベースビューにおけるピクチャとの画像のずれを示す。
追加部131は、過去に用いられた視差ベクトルをリストに追加してもよい。すなわち、追加部131は、過去にベースビューが参照された時に用いられた動きベクトルをリストに追加してもよい。また、追加部131は、過去に用いられた視差ベクトルの平均等の統計によって、リストに追加するための視差ベクトルを算出してもよい。
一方、符号化対象ブロックとその参照ブロックとが時間的に一致しない場合(S21でNo)、追加部131は、1以上の対応ブロックのそれぞれについて、対応ブロックとその参照ピクチャとが時間的に一致するか否かを判定する(S23)。そして、対応ブロックとその参照ピクチャとが時間的に一致しない場合(S23でNo)、追加部131は、対応ブロックの動きベクトルをリストに追加する(S24)。この時、追加部131は、対応ブロックの動きベクトルを伸縮し、伸縮された動きベクトルをリストに追加してもよい。
次に、追加部131は、リストから、重複候補および利用不可候補を削除する(S25)。これにより、適切なリストが生成される。
なお、符号化部101は、視差ベクトルをヘッダに付加してもよい。例えば、符号化部101は、符号化ストリームの全体のヘッダに、シーケンスパラメータセット(SPS:Sequence Parameter Set)として、視差ベクトルを付加してもよい。
また、符号化部101は、符号化ストリーム内のピクチャのヘッダに、ピクチャパラメータセット(PPS:Picture Parameter Set)として、視差ベクトルを付加してもよい。符号化部101は、符号化ストリーム内のスライスのヘッダに、スライスヘッダとして、視差ベクトルを付加してもよい。
また、追加部131は、視差ベクトルに限らず、所定のベクトルをリストに追加してもよい。そして、符号化部101は、符号化ストリームのヘッダに、シーケンスパラメータセット、ピクチャパラメータセットまたはスライスヘッダとして、所定のベクトルを付加してもよい。
図13は、図11に示された動作の変形例を示すフローチャートである。まず、追加部131は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する(S31)。
ここで、少なくとも1つの動きベクトルがリストに追加された場合(S31でYes)、選択部132は、予測動きベクトルをリストから選択するか否かを決定する(S32)。この時、選択部132は、予測動きベクトルを選択してもよいし、選択しなくてもよい。例えば、選択部132は、符号化対象ブロックの動きベクトルに近い動きベクトルがリストに存在しない場合、リストから予測動きベクトルを選択しなくてもよい。
予測動きベクトルが選択された場合(S32でYes)、符号化部101は、符号化対象ブロックの動きベクトルを用いて、符号化対象ブロックを符号化する。また、符号化部101は、符号化対象ブロックの動きベクトルと、選択された予測動きベクトルとの差分を符号化する(S33)。
動きベクトルがリストに全く追加されなかった場合(S31でNo)、または、予測動きベクトルが選択されなかった場合(S32でNo)、予測動きベクトルの大きさが0であるとみなされる。すなわち、符号化対象ブロックの動きベクトルと、予測動きベクトルとの差分は、符号化対象ブロックの動きベクトルに等しいとみなされる。
この場合、予測動きベクトルが選択された場合と同様に、符号化部101は、符号化対象ブロックの動きベクトルを用いて、符号化対象ブロックを符号化する。一方、符号化部101は、符号化対象ブロックの動きベクトルを差分として符号化する(S34)。これにより、動きベクトルがリストに全く追加されなかった場合(S31でNo)、または、予測動きベクトルが選択されなかった場合(S32でNo)でも、画像符号化装置は、問題なく動作を継続できる。
なお、動きベクトルがリストに全く追加されなかった場合(S31でNo)、または、予測動きベクトルが選択されなかった場合(S32でNo)、予測動きベクトルは、予め定められた動きベクトルであるとみなされてもよい。
以上のように、画像符号化装置は、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化される可能性がある場合でも、予測動きベクトルをリストから適切に選択することができる。上述では、画像符号化装置が示されているが、画像復号装置も、同様の手順で、予測動きベクトルをリストから適切に選択することができる。
図14は、本実施の形態に係る画像復号装置を示す構成図である。図14に示された画像復号装置は、復号部201およびインター予測制御部221を備える。復号部201は、可変長復号部205、逆量子化部206、逆直交変換部207、加算部208、ブロックメモリ209、イントラ予測部210、フレームメモリ211、インター予測部212およびスイッチ213を備える。
可変長復号部205は、入力されたビットストリームに対し、可変長復号処理を行い、ピクチャタイプ情報、予測動きベクトルインデックス、予測誤差データ等を復号する。逆量子化部206は、予測誤差データに対し、逆量子化処理を行う。逆直交変換部207は、逆量子化処理を行った予測誤差データを、周波数領域から、画像領域へ変換する。加算部208は、予測画像データと、予測誤差データとを加算することにより、復号画像データを生成する。
ブロックメモリ209は、復号画像データを、ブロック単位で保存するためのメモリである。フレームメモリ211は、復号画像データをフレーム単位で保存するためのメモリである。
イントラ予測部210は、ブロックメモリに保存されているブロック単位の復号画像データを用いて、イントラ予測を実行することにより、復号対象ブロックの予測画像データを生成する。インター予測部212は、フレームメモリに保存されているフレーム単位の復号画像データを用いて、インター予測を実行することにより、復号対象ブロックの予測画像データを生成する。スイッチ213は、イントラ予測またはインター予測に符号化モードを切り替える。
インター予測制御部221は、リストから予測動きベクトルを選択する。インター予測制御部221で実行される処理は、符号化側のインター予測制御部121で実行される処理と同様である。つまり、上述の符号化処理において、符号化の部分を復号に変更することにより、インター予測制御部221が実現される。なお、インター予測制御部221は、可変長復号部205によって復号されたインデックスを用いて、リストから予測動きベクトルを選択する。
図14には、本実施の形態に係る画像復号装置の構成の一例が示されているが、具体的な構成の態様は、図14に示された構成に限られない。例えば、復号部201は、複数の構成要素で構成される必要はない。また、復号部201は、逆周波数変換、逆量子化およびイントラ予測等を実行せずに、画像を復号してもよい。
図15は、図14に示された画像復号装置の主要な構成要素を示す構成図である。図15に示された画像復号装置は、復号部201およびインター予測制御部221を備える。また、インター予測制御部221は、追加部231および選択部232を備える。
追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する。すなわち、追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルをリストに追加するか否かを選択し、追加するとして選択された動きベクトルをリストに追加する。追加部231は、1以上の対応ブロックにおける1以上の動きベクトルの全てをリストに追加してもよいし、1以上の対応ブロックにおける1以上の動きベクトルの一部をリストに追加してもよい。
また、対応ブロックは、隣接ブロックまたはco−locatedブロック等である。具体的には、対応ブロックは、復号対象ピクチャに含まれ、復号対象ブロックに空間的に隣接するブロックでもよい。また、対応ブロックは、復号対象ピクチャとは異なる1以上のピクチャに含まれ復号対象ブロックに空間的に一致するブロックでもよい。
選択部232は、リストから、予測動きベクトルを選択する。具体的には、選択部232は、復号対象ブロックの動きベクトルを復号する時に用いられる動きベクトルを予測動きベクトルとして選択する。復号対象ブロックの動きベクトルは、予測動きベクトルと区別するために、カレント動きベクトル、または、現動きベクトルとも呼ばれる。
復号部201は、復号対象ブロックの動きベクトルと、選択部232で選択された予測動きベクトルとの差分を復号する。そして、復号部201は、復号された差分と、選択部で選択された動きベクトルとを加算することにより復号対象ブロックの動きベクトルを取得する。そして、復号部201は、復号対象ブロックの動きベクトルを用いて復号対象ブロックを復号する。
これにより、画像復号装置は、予測動きベクトルをリストから選択し、予測動きベクトルを動きベクトルの復号に用いることができる。
図16は、図15に示された画像復号装置の動作を示すフローチャートである。まず、追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する(S41)。1以上の対応ブロックのそれぞれは、復号対象ピクチャに含まれ復号対象ブロックに空間的に隣接するブロック、または、復号対象ピクチャとは異なるピクチャに含まれ復号対象ブロックに空間的に一致するブロックである。
(i)追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックが、対応ブロックの動きベクトルを用いて対応ブロックに時間的に一致するピクチャを参照して復号された場合、対応ブロックの動きベクトルをリストに追加しない。(ii)追加部231は、1以上の対応ブロックのそれぞれについて、復号対象ブロックが、復号対象ブロックの動きベクトルを用いて復号対象ブロックに時間的に一致するピクチャを参照して復号される場合、対応ブロックの動きベクトルをリストに追加しない。追加部231は、(i)および(ii)の2つの制限のうち、一方のみを適用してもよい。
次に、選択部232は、リストから、復号対象ブロックの動きベクトルを復号する時に用いられる動きベクトルを予測動きベクトルとして選択する(S42)。
次に、復号部201は、復号対象ブロックの動きベクトルと、選択部232で選択された予測動きベクトルとの差分を復号する。そして、復号部201は、復号された差分と、選択部232で選択された動きベクトルとを加算することにより復号対象ブロックの動きベクトルを取得する。そして、復号部201は、復号対象ブロックの動きベクトルを用いて復号対象ブロックを復号する(S43)。これにより、復号対象ブロックが復号される。
図17は、図16に示された動作の詳細を示すフローチャートである。図17には、図16に示された追加処理(S41)が、具体的に、示されている。
まず、追加部231は、復号対象ブロックとその参照ブロックとが、時間的に一致するか否かを判定する(S51)。そして、復号対象ブロックとその参照ブロックとが時間的に一致する場合(S51でYes)、追加部231は、視差ベクトルをリストに追加する(S52)。
追加部231は、過去に用いられた視差ベクトルをリストに追加してもよい。すなわち、追加部231は、過去にベースビューが参照された時に用いられた動きベクトルをリストに追加してもよい。また、追加部231は、過去に用いられた視差ベクトルの平均等の統計によって、リストに追加するための視差ベクトルを算出してもよい。
一方、復号対象ブロックとその参照ブロックとが時間的に一致しない場合(S51でNo)、追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックとその参照ピクチャとが時間的に一致するか否かを判定する(S53)。そして、対応ブロックとその参照ピクチャとが時間的に一致しない場合(S53でNo)、追加部231は、対応ブロックの動きベクトルをリストに追加する(S54)。この時、追加部231は、対応ブロックの動きベクトルを伸縮し、伸縮された動きベクトルをリストに追加してもよい。
次に、追加部231は、リストから、重複候補および利用不可候補を削除する(S55)。これにより、適切なリストが生成される。
なお、復号部201は、符号化ストリームに含まれるヘッダに付加された視差ベクトルを取得してもよい。例えば、復号部201は、符号化ストリームの全体のヘッダであるシーケンスパラメータセットから視差ベクトルを取得してもよい。また、復号部201は、符号化ストリームに含まれるピクチャのヘッダであるピクチャパラメータセットから、視差ベクトルを取得してもよい。復号部201は、符号化ストリームに含まれるスライスのヘッダであるスライスヘッダから、視差ベクトルを取得してもよい。
また、追加部231は、視差ベクトルに限らず、所定のベクトルをリストに追加してもよい。そして、復号部201は、符号化ストリームのヘッダ(シーケンスパラメータセット、ピクチャパラメータセットまたはスライスヘッダ等)から、所定のベクトルを取得してもよい。
図18は、図16に示された動作の変形例を示すフローチャートである。まず、追加部231は、1以上の対応ブロックのそれぞれについて、対応ブロックの動きベクトルを選択的にリストに追加する(S61)。
ここで、少なくとも1つの動きベクトルがリストに追加された場合(S61でYes)、選択部232は、予測動きベクトルをリストから選択するか否かを決定する(S62)。例えば、選択部232は、予測動きベクトルを示すインデックスが符号化されていない場合、すなわち、符号化ストリームにインデックスが存在しない場合、選択部232は、予測動きベクトルをリストから選択しない。
予測動きベクトルが選択された場合(S62でYes)、復号部201は、復号対象ブロックの動きベクトルと、選択部232で選択された予測動きベクトルとの差分を復号する。そして、復号部201は、復号された差分と、選択部232で選択された動きベクトルとを加算することにより復号対象ブロックの動きベクトルを取得する。そして、復号部201は、復号対象ブロックの動きベクトルを用いて、復号対象ブロックを復号する(S63)。
動きベクトルがリストに全く追加されなかった場合(S61でNo)、または、予測動きベクトルが選択されなかった場合(S62でNo)、予測動きベクトルの大きさが0であるとみなされる。すなわち、復号対象ブロックの動きベクトルと、予測動きベクトルとの差分は、復号対象ブロックの動きベクトルに等しいとみなされる。
この場合、復号部201は、復号対象ブロックの動きベクトルを差分として復号する。そして、復号部201は、復号された動きベクトルを用いて、復号対象ブロックを復号する(S64)。これにより、動きベクトルがリストに全く追加されなかった場合(S61でNo)、または、予測動きベクトルが選択されなかった場合(S62でNo)でも、画像復号装置は、問題なく動作を継続できる。
なお、動きベクトルがリストに全く追加されなかった場合(S61でNo)、または、予測動きベクトルが選択されなかった場合(S62でNo)、予測動きベクトルは、予め定められた動きベクトルであるとみなされてもよい。
以上のように、画像復号装置は、ブロックが当該ブロックに時間的に一致するピクチャを参照して復号される場合でも、予測動きベクトルをリストから適切に選択することができる。
なお、上述では、対応ブロックの動きベクトルがリストに追加されている。しかし、複数の対応ブロックにおける複数の動きベクトルの平均値および中央値等が、リストに追加されてもよい。この場合、画像符号化装置の追加部131および画像復号装置の追加部231は、平均値および中央値等を算出して、リストに追加する。また、2つの追加部131、231は、対応ブロックとその参照ピクチャとが時間的に一致するような対応ブロックを除く複数の対応ブロックから、複数の動きベクトルの平均値および中央値等を算出してもよい。
また、上述では、処理対象ブロック(符号化対象ブロックまたは復号対象ブロック)と処理対象ブロックの参照ピクチャとが時間的に一致する場合、対応ブロックの動きベクトルをリストへ追加することが制限されている。あるいは、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致する場合、対応ブロックの動きベクトルをリストへ追加することが制限されている。
しかし、処理対象ブロックと処理対象ブロックの参照ピクチャとが時間的に一致する場合、かつ、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致する場合、対応ブロックの動きベクトルを伸縮する必要がない。したがって、このような場合、画像符号化装置の追加部131および画像復号装置の追加部231は、対応ブロックの動きベクトルをそのままリストへ追加してもよい。以下、このような場合の例を具体的に示す。
図19は、本実施の形態に係る参照関係の第5例を示す図である。図19には、図7〜図10と同様に、ベースビューとノンベースビューとの2つのビューが示されている。また、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
図19の例では、処理対象ブロックの参照ピクチャインデックスRefL0と、隣接ブロックの参照ピクチャインデックスRefL0_Nとが一致している。この場合、処理対象ブロックからその参照ピクチャまでの時間的な距離と、隣接ブロックからその参照ピクチャまでの時間的な距離とが一致している。したがって、隣接ブロックの動きベクトルMvL0_Nを伸縮する必要がない。したがって、この場合、画像符号化装置の追加部131および画像復号装置の追加部231は、動きベクトルMvL0_Nをそのままリストへ追加してもよい。
図20は、本実施の形態に係る参照関係の第6例を示す図である。図20には、図7〜図10と同様に、ベースビューとノンベースビューとの2つのビューが示されている。また、ベースビューにおける複数のピクチャB00〜B04、および、ノンベースビューにおける複数のピクチャB10〜B14が、表示順で示されている。
図20の例では、処理対象ブロックからその参照ピクチャまでの時間的な距離と、co−locatedブロックからその参照ピクチャまでの時間的な距離とが一致している。したがって、co−locatedブロックの動きベクトルMvL0_Colを伸縮する必要がない。したがって、この場合、画像符号化装置の追加部131および画像復号装置の追加部231は、動きベクトルMvL0_Colをそのままリストに追加してもよい。
図19および図20の例では、処理対象ブロックと処理対象ブロックの参照ピクチャとが時間的に一致し、かつ、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致している。上述の通り、このような場合、画像符号化装置の追加部131および画像復号装置の追加部231は、対応ブロックの動きベクトルをそのままリストへ追加してもよい。
図21は、処理対象ブロックと処理対象ブロックの参照ピクチャとが時間的に一致し、かつ、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致している場合に、画像復号装置の追加部231が、対応ブロックの動きベクトルを追加する例を表すフローの一例である。なお、本実施の形態では、復号化時に画像復号装置の追加部231に適用する例を示すが、符号化時に画像符号化装置の追加部131にも適用可能である。なお、本実施の形態において、処理対象ブロックと処理対象ブロックの参照ピクチャとが時間的に一致しているかどうかの判定は、処理対象ブロックが含まれるピクチャの表示順であるPOC(Picture Order Count)と、処理対象ブロックの参照ピクチャの表示順であるPOCが一致しているかどうかで判定するようにしても構わない。
以下、図21について説明する。画像復号装置は、ステップS2101で、復号対象ブロックと復号対象ブロックの参照ピクチャとが時間的に一致するかどうかを判定する。ステップS2101の判定結果が偽(No)ならば、画像復号装置は、ステップS2102において、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致するかどうかを判定する。ステップS2102の判定結果が偽ならば、画像復号装置は、ステップS2103において、対応ブロックの動きベクトルをリストに追加する。一方、ステップS2102の判定結果が真(Yes)ならば、画像復号装置は、対応ブロックの動きベクトルをリストに追加しない。ステップS2101の判定結果が真ならば、ステップS2104において、画像復号装置は、対応ブロックと対応ブロックの参照ピクチャとか時間的に一致するかどうかを判定する。ステップS2104の判定結果が真ならば、画像復号装置は、ステップS2105において、対応ブロックの動きベクトルをリストに追加する。ステップS2104の判定結果が偽ならば、画像復号装置は、対応ブロックの動きベクトルをリストに追加しない。対応ブロックのすべてに対して処理を終えると、画像復号装置は、ステップS2106において重複候補および利用不可能候補をリストから削除する。このように、ステップS2101の判定結果が真、つまり、復号対象ブロックと復号対象ブロックの参照ピクチャとが時間的に一致し、かつ、ステップS2104の判定結果が真、つまり、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致する場合に、画像復号装置は、対応ブロックの動きベクトルをリストに追加するようにしても構わない。これにより、符号化効率を向上することができる。
なお、本実施の形態では、図21のステップS2105において、対応ブロックの動きベクトルをそのままリストに追加するとしたが、リストに追加する際に、復号対象ブロックの含まれるピクチャと、復号対象ブロックの参照ピクチャと、対応ブロックの含まれるピクチャと、対応ブロックの参照ピクチャと、各ビューに対するカメラパラメータ等の値とを用いて、対応ブロックの動きベクトルをスケーリング等の補正を行った後に、リストに追加するようにしても構わない。例えば、図22の例では、対応ブロックの動きベクトルを、ノンベースビュー2とノンベースビュー1との間隔から、ベースビューとノンベースビュー2との間隔に補正して(例えば、対応ブロックの動きベクトルを2倍にして)、リストに追加するようにしても構わない。このように、リストに追加する際に、動きベクトルを補正することにより符号化を向上することができる。
また、なお、本実施の形態では、図21のS2105において、リストに追加する際に、復号対象ブロックの含まれるピクチャと、復号対象ブロックの参照ピクチャと、対応ブロックの含まれるピクチャと、対応ブロックの参照ピクチャと、各ビューに対するカメラパラメータ等の値を用いて、対応ブロックの動きベクトルをスケーリング等の補正を行った後に、リストに追加する例を示したが、必ずしもこれに限らない。例えば、図23のようにしてもよい。つまり、ステップS2304において、対応ブロックと対応ブロックの参照ピクチャとが時間的に一致すると判定されたならば、ステップS2305において、復号対象ブロックを含むピクチャと対応ブロックを含むピクチャとが同一ビューに含まれる、かつ、復号対象ブロックの参照ピクチャと対応ブロックの参照ピクチャとが同一ビューに含まれるかどうかを判定する。ステップS2304の判定結果が真ならば、ステップS2306において、対応ブロックの動きベクトルをそのままリストに追加し、偽ならば、対応ブロックの動きベクトルを追加しないようにしても構わない。このように、復号対象ブロックを含むピクチャと対応ブロックを含むピクチャとが同一ビューに含まれる、かつ、復号対象ブロックの参照ピクチャと対応ブロックの参照ピクチャとが同一ビューに含まれる際、つまり、対応ブロックの動きベクトルにスケーリング等の補正が必要でない場合に、対応ブロックの動きベクトルをリストに追加するようにすることによって、処理量を抑えつつ、符号化効率を向上することができる。
なお、本実施の形態は、符号化対象ブロックの隣接ブロックから予測動きベクトル候補を生成し、符号化対象ブロックの動きベクトルの符号化を行う予測動きベクトル指定モードを用いた例を示したが、必ずしもこれに限らない。例えば、図33のように作成した予測動きベクトル候補および参照ピクチャインデックスから予測動きベクトルを選択し、選択した予測動きベクトルを動きベクトルとして直接予測画像を生成することで、動きベクトル差分をビットストリームに付加しないようにしても構わない(ダイレクトモード、スキップモード、又はマージモードなど)。
なお、本実施の形態における画像符号化装置および画像復号装置は、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化または復号化される可能性がある場合に、対応ブロックの動きベクトルを補正する際のスケーリング計算時に分母、または、分子が0となるような場合は、対応ブロックの動きベクトルをリストに追加しない等の処理によって、問題なく処理を継続できるようにしたが、必ずしもこの方法に限らない。例えば、図24に示すように、異なるビューに属するピクチャを参照(以下、インタービュー参照)することだけが許可されるようなピクチャ(以下、インタービューピクチャ)を定義し、インタービューピクチャ内のすべての処理対象ブロックは、インタービュー参照のみを用いて符号化、または復号化されるようにしても構わない。つまり、インタービューピクチャ内のすべての処理対象ブロックは、同一ビューに属するピクチャを参照(以下、インター参照)しないように制限される(インタービューピクチャでは、同一ビューのピクチャを参照ピクチャリストに含めないように制御してもよい。例えば、RPSで異なるビューに属する参照ピクチャのみを参照ピクチャリストに加えるように制御する)。また、インタービューピクチャを符号化、または復号化するために用いるco-locatedブロックの属するco-locatedピクチャ(第1ピクチャ)は、参照ピクチャのうち、インタービューピクチャの中から選択するように制限される。なお、インタービューピクチャかどうかは、新たなNAL unit typeを定義して区別するようにしても構わない(NAL unit typeに追加するようにしてもよい。)。また、インタービューピクチャの場合は、時間ダイレクトによる予測動きベクトル生成を常に行わないようにしても構わない。また、双方向予測画像生成時に、表示順の差に応じて重み加算平均を行うWeighted Predictionに関しても、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化または復号化される可能性がある場合に、スケーリング計算時の分母、または、分子が0となる場合があるため、インタービューピクチャの場合には、Weighted Predictionを用いないようにしても構わない。以上のようにすると、隣接ブロックの動きベクトルを候補に入れる際に、隣接ブロックの参照ピクチャの表示順と符号化対象ブロックの参照ピクチャの表示順が常に等しくなるので、スケーリング計算が発生せず、問題なく動作を継続できる。
一方、インタービューピクチャ以外のピクチャ(以下、インターピクチャ)は、図25に示すように、インター参照のみを用いて符号化、または復号化される。つまり、インターピクチャ内のすべての処理対象ブロックは、異なるビューに属するピクチャを参照しないように制限される。また、インターピクチャを符号化、または、復号化するために用いるco-locatedブロックの属するco-locatedピクチャは、参照ピクチャのうち、インターピクチャの中から選択するように制限される(インタービューピクチャでは、異なるビューのピクチャを参照ピクチャリストに含めないように制御してもよい。例えば、RPSで同一ビューに属する参照ピクチャのみを参照ピクチャリストに加えるように制御する。)。
図26は、本実施の形態における画像符号化装置において、符号化対象ピクチャがインタービューピクチャかどうかに基づいて、参照ピクチャリストの生成方法を切り替えるフローの一例である。画像符号化装置は、ステップS2601で、符号化対象ピクチャがインタービューピクチャであるかどうかを、NAL unit typeから判定する。ステップS2601の判定結果が偽ならば、画像符号化装置は、ステップS2602において、符号化対象ピクチャと同一ビューに属するピクチャを参照ピクチャリストに追加して、参照ピクチャリストを生成する。つまり、符号化対象ピクチャがインターピクチャの場合は、参照ピクチャリストに同一ビューの参照ピクチャのみ含まれるようになり、インタービュー参照の発生を防ぐことができる。ステップS2601の判定結果が真ならば、画像符号化装置は、ステップS2603において、符号化対象ピクチャと異なるビューに属するピクチャを参照ピクチャリストに追加して、参照ピクチャリストを生成する。つまり、符号化対象ピクチャがインタービューピクチャの場合は、参照ピクチャリストに異なるビューの参照ピクチャのみ含まれるようになり、インター参照の発生を防ぐことができる。画像符号化装置は、ステップS2604で、作成した参照ピクチャリストを用いて符号化対象ピクチャを符号化する。このように、参照ピクチャリストの生成方法を、符号化対象ピクチャがインタービューピクチャかどうかに基づいて切り替えることにより、符号化対象ピクチャがインタービューピクチャの場合はインター参照の発生を防ぎ、符号化対象ピクチャがインターピクチャの場合は、インタービュー参照の発生を防ぐようにしても構わない。
また、図27は、本実施の形態における画像符号化装置において、符号化対象ピクチャを符号化するためco-locatedピクチャを算出するフローの一例である。参照可能な参照ピクチャインデックスr(rは0からNumRefIdx-1までの値)に対し、ステップS2701とステップS2702との処理を繰り返すことによって、co-locatedピクチャの参照ピクチャインデックスを選択する。なお、ここで、NumRefIdxは、符号化対象ピクチャの参照可能な参照ピクチャ枚数を表す。ステップS2701では、符号化対象ピクチャがインタービューピクチャでかつ、参照ピクチャインデックスrで特定される参照ピクチャがインタービューピクチャかどうかを判定する。ステップS2701の判定結果が真ならば、ステップS2704において、参照ピクチャインデックスrで特定される参照ピクチャをco-locatedピクチャに指定する。ステップS2701の判定結果が偽ならば、画像符号化装置は、ステップS2702において、符号化対象ピクチャがインターピクチャでかつ、参照ピクチャインデックスrで特定される参照ピクチャがインターピクチャかどうかを判定する。ステップS2702の判定結果が真ならば、ステップS2704において、参照ピクチャインデックスrで特定される参照ピクチャをco-locatedピクチャに指定する。画像符号化装置は、ステップS2703で、符号化対象ピクチャのピクチャタイプに合うco-locatedピクチャが見つからなかったとして、時間ダイレクトによる予測動きベクトル生成を行わない。このように、co-locatedピクチャの選択方法を、符号化対象ピクチャがインタービューピクチャかどうかに基づいて切り替えることにより、符号化対象ピクチャがインタービュー参照の場合には、co-locatedピクチャも必ずインタービュー参照となるように制御し、符号化対象ピクチャがインター参照の場合には、co-locatedピクチャも必ずインター参照となるように制御するようにしても構わない。
図28は、本実施の形態における画像復号装置において、復号化対象ピクチャがインタービューピクチャかどうかに基づいて、参照ピクチャリストの生成方法を切り替えるフローの一例である。画像復号装置は、ステップS2801で、復号化対象ピクチャがインタービューピクチャであるかどうかを、NAL unit typeから判定する。ステップS2801の判定結果が偽ならば、画像復号装置は、ステップS2802において、復号化対象ピクチャと同一ビューに属するピクチャを参照ピクチャリストに追加して、参照ピクチャリストを生成する。つまり、復号化対象ピクチャがインターピクチャの場合は、参照ピクチャリストに同一ビューの参照ピクチャのみ含まれるようになり、インタービュー参照の発生を防ぐことができる。ステップS2801の判定結果が真ならば、画像復号装置は、ステップS2803において、復号化対象ピクチャと異なるビューに属するピクチャを参照ピクチャリストに追加して、参照ピクチャリストを生成する。つまり、復号化対象ピクチャがインタービューピクチャの場合は、参照ピクチャリストに異なるビューの参照ピクチャのみ含まれるようになり、インター参照の発生を防ぐことができる。画像復号装置は、ステップS2804で、作成した参照ピクチャリストを用いて復号化対象ピクチャを復号化する。このように、参照ピクチャリストの生成方法を、復号化対象ピクチャがインタービューピクチャかどうかに基づいて切り替えることにより、復号化対象ピクチャがインタービューピクチャの場合はインター参照の発生を防ぎ、復号化対象ピクチャがインターピクチャの場合は、インタービュー参照の発生を防ぐようにして生成したビットストリームを適切に復号することができる。
また、図29は、本実施の形態における画像復号装置において、復号化対象ピクチャを復号化するためco-locatedピクチャを算出するフローの一例である。画像復号装置は、ステップS2901で、SPS、PPS、またはスライスヘッダ等のヘッダから、co-locatedピクチャを指定するためのフラグ等を復号する。画像復号装置は、ステップS2902で、復号化対象ブロックがインタービューピクチャかどうかをNAL unit type等から判定する。ステップS2902の判定結果が真ならば、ステップS2903において、ステップS2901で指定されたco-locatedピクチャがインタービューピクチャかどうかを判定する。ステップS2903の判定結果が真ならば、画像復号装置は、ステップS2906において、ステップS2901で指定されたco-locateピクチャを用いて復号化対象ピクチャを復号する。ステップS2903の判定結果が偽ならば、ステップS2904において、ビットストリームがコンフォーマンス違反であることを検出して、通知を行う。なお、コンフォーマンス違反を通知する方法は、どのような方法であっても構わないし、必ずしも通知する必要はない。画像復号装置は、ステップS2905では、処理を継続させるために、co-locatedピクチャにインタービューピクチャである参照ピクチャを割り当て直す。例えば、表示順で復号化対象ピクチャに最も近いインタービューピクチャを、co-locatedピクチャに割り当て直すことが考えられる。または、時間ダイレクトによる予測動きベクトルを行わないように制御しても構わない。ステップS2902の判定結果が偽の場合、つまり、復号化対象ピクチャがインターピクチャの場合は、ステップS2907において、ステップS2901で指定されたco-locatedピクチャがインターピクチャかどうかを判定する。ステップS2907の判定結果が真ならば、ステップS2906において、ステップS2901で指定されたco-locateピクチャを用いて復号化対象ピクチャを復号する。ステップS2907の判定結果が偽ならば、ステップS2908において、ビットストリームがコンフォーマンス違反であることを検出して、通知を行う。なお、コンフォーマンス違反を通知する方法は、どのような方法であっても構わないし、必ずしも通知する必要はない。画像復号装置は、ステップS2909では、処理を継続させるために、co-locatedピクチャにインターピクチャである参照ピクチャを割り当て直す。例えば、表示順で復号化対象ピクチャに最も近いインターピクチャを、co-locatedピクチャに割り当て直すことが考えられる。または、時間ダイレクトによる予測動きベクトルを行わないように制御しても構わない。
以上説明したインタービューピクチャを用いれば、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化または復号化される可能性がある場合でも、図19や図20のように、スケーリングを用いずに予測動きベクトルを算出することができるようになるため、問題なく処理を継続できるようになり、予測動きベクトルを適切に生成することができる。
なお、本実施の形態では、符号化または復号化対象ピクチャが異なるビューのピクチャを参照する場合、例えば、ノンベースビューに含まれるピクチャを復号するような場合を例として説明したが、必ずしもこれには限らず、例えば、符号化または復号化対象ピクチャが異なるレイヤのピクチャを参照する場合に、本実施の例を適用するようにしても構わない。例えば、SVC(Scalable Video Coding)等に適用することが考えられる。SVCでも、異なるレイヤに属する参照ピクチャを参照して予測画像を生成する場合があり、MVCと同様に、スケーリングの分子または分母が0となり、処理が継続できない場合が発生する可能性がある。そこで、本実施の形態を適用することにより、問題なく処理を継続できるようにすることができる。例えば、インタービューピクチャと同様に、レイヤ間参照ピクチャを定義し、レイヤ間参照ピクチャは、異なるレイヤに属するピクチャを参照する(以下、レイヤ間参照)ことだけが許可されるようなピクチャとし、レイヤ間参照ピクチャ内のすべての処理対象ブロックは、レイヤ間参照のみを用いて符号化、または復号化される。つまり、レイヤ間参照ピクチャ内のすべての処理対象ブロックは、同一レイヤに属するピクチャを参照しない。また、レイヤ間参照ピクチャを符号化、または復号化するために用いるco-locatedブロックの属するco-locatedピクチャは、参照可能なレイヤ間参照ピクチャの中から選択するようにする。なお、レイヤ間参照ピクチャかどうかは、新たなNAL unit typeを定義して区別するようにしても構わない。また、レイヤ間参照ピクチャの場合は、時間ダイレクトによる予測動きベクトル生成を常に行わないようにしても構わない。また、双方向予測画像生成時に、表示順の差に応じて重み加算平均を行うWeighted Predictionに関しても、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化または復号化される可能性がある場合に、スケーリング計算時の分母、または、分子が0となる場合があるため、レイヤ間参照ピクチャの場合には、Weighted Predictionを用いないようにしても構わない。
一方、レイヤ間参照ピクチャ以外のピクチャ(以下、インターピクチャ)は、インター参照のみを用いて符号化、または復号化される。つまり、インターピクチャ内のすべての処理対象ブロックは、異なるレイヤに属するピクチャを参照しない。また、インターピクチャを符号化、または、復号化するために用いるco-locatedブロックの属するco-locatedピクチャは、参照可能なインターピクチャの中から選択するようにする。
以上説明したレイヤ間参照ピクチャを用いれば、ブロックが当該ブロックに時間的に一致するピクチャを参照して符号化または復号化される可能性がある場合でも、図19や図20のように、スケーリングを用いずに予測動きベクトルを算出することができるようになるため、問題なく処理を継続できるようになり、予測動きベクトルを適切に生成することができる。
以上、本発明に係る画像符号化装置および画像復号装置について、実施の形態に基づいて説明したが、本発明は実施の形態に限定されるものではない。実施の形態に対して当業者が思いつく変形を施して得られる形態、および、実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
また、本発明は、画像符号化装置および画像復号装置として実現できるだけでなく、画像符号化装置および画像復号装置を構成する処理手段をステップとする方法として実現できる。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体として実現できる。
また、画像符号化装置および画像復号装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像符号化装置および画像復号装置に含まれる構成要素の集積回路化を行ってもよい。
(実施の形態2)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図36は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図36のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局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の例に限らず、図37に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本開示の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本開示の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図38は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)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の構成を図39に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図40に光ディスクである記録メディア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の構成は例えば図38に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図41Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図41Bを用いて説明する。携帯電話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において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本開示の上記各実施の形態では、種々の変形または修正が可能である。
(実施の形態3)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図42は、多重化データの構成を示す図である。図42に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(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が、それぞれ割り当てられている。
図43は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図44は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図44における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図44の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図45は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには図45下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号は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時間の情報を持つ。
図46はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図47に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図47に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図48に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図49に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図50に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図51は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図50のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図50の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態3で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態3で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図53のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図52は、本実施の形態の方法を実施するステップを示している。まず、ステップ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を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態6)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図54Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本開示の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本開示の一態様は、逆量子化に特徴を有していることから、例えば、逆量子化については専用の復号処理部ex901を用い、それ以外のエントロピー復号、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図54Bのex1000に示す。この例では、本開示の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本開示の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本開示の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本開示の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。