(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、画像を符号化する画像符号化装置、または、画像を復号する画像復号装置に関して、課題を見出した。以下に具体的に説明する。
近年、デジタル映像機器の技術進歩が著しく、ビデオカメラまたはテレビチューナから入力された映像信号(時系列順に並んだ複数のピクチャ)を圧縮符号化しDVDまたはハードディスク等の記録メディアに記録する機会が増えている。
映像信号の符号化は、画像を予測するステップ、予測画像と符号化対象画像との差分を求めるステップ、差分画像を周波数係数に変換するステップ、周波数係数を量子化するステップ、および、量子化結果および予測情報等を可変長符号化するステップで構成される。
量子化には、量子化マトリックスが使用される場合がある。そして、視覚的に劣化が目立たない高域成分の係数が粗く量子化され、逆に視覚的に劣化が目立つ低域成分の係数が細かく量子化されることによって符号化効率が向上する。また、4x4および8x8などの周波数変換サイズと、画面内予測および画面間予測などの予測モードと、輝度および色差などの画素成分とに対応して数種類の量子化マトリックスが使われる。なお、量子化とは、予め定められた間隔でサンプリングした値を予め定められたレベルに対応づけてデジタル化することをいい、この技術分野では、丸め、ラウンディング、スケーリングといった表現が用いられる場合もある。
量子化マトリックスを使用する方法として、画像符号化装置によって直接設定された量子化マトリックスを使用する方法と、デフォルトの量子化マトリックス(デフォルトマトリックス)を使用する方法とがある。画像符号化装置は、量子化マトリックスを直接設定することにより、画像の特徴に応じた量子化マトリックスを設定することができる。しかし、この場合、画像符号化装置は、量子化マトリックスを符号化するため、その分の符号量が増加するというデメリットがある。
一方、量子化マトリックスを使用せず、高域成分の係数も低域成分の係数も同じように量子化する方法もある。なお、この方法は、係数が全て同じ値である量子化マトリックス(フラットなマトリックス)を用いる方法に等しい。
H.264/AVCまたはMPEG−4 AVCと呼ばれる動画像符号化規格(非特許文献1参照)では、量子化マトリックスは、SPS(シーケンスパラメータセット:Sequence Parameter Set)またはPPS(ピクチャパラメータセット:Picture Parameter Set)で指定される。SPSは、シーケンスに対して用いられるパラメータを含み、PPSは、ピクチャに対して用いられるパラメータを含む。SPSとPPSとは、単にパラメータセットと呼ばれる場合がある。
SPSおよびPPSのそれぞれにおけるMatrixPresentFlagとListPresentFlagとによって量子化マトリックスが設定される。SPSのMatrixPresentFlagが0の場合、量子化マトリックスは使われず、高域成分の係数も低域成分の係数も同じように量子化される。逆に、1の場合、ListPresentFlagを用いて対象シーケンスで使う量子化マトリックスが設定される。
周波数変換サイズ、予測モードおよび画素成分に応じて複数の量子化マトリックスが存在する。ListPresentFlagは、量子化マトリックス毎に存在し、それぞれ、デフォルトの量子化マトリックスを使うか否かを示す。デフォルトの量子化マトリックスが使われない場合、使用される量子化マトリックスが別のシンタックス(syntax)を用いて符号化される。
また、PPSのMatrixPresentFlagが0の場合、SPSで設定された量子化マトリックスの情報が用いられる。1の場合、対象ピクチャで使われる量子化マトリックスが、ListPresentFlagを用いて設定される。PPSのListPresentFlagも、SPSのListPresentFlagと同様に、それぞれ、デフォルトの量子化マトリックスを使うか否かを示す。
ここで、例えば、全てデフォルトの量子化マトリックスが用いられる場合、SPSおよびPPSのうち少なくとも一方のMatrixPresentFlagが1に設定される。そして、全ての量子化マトリックスに対応する全てのListPresentFlagが、0に設定され、符号化される。すなわち、デフォルトの量子化マトリックスを使うことによって量子化マトリックスの符号量が削減される場合でも、ある程度のフラグの符号量が生じる。したがって、符号化効率の向上が難しい。
そこで、本発明の一態様に係る画像符号化方法は、画像を符号化する画像符号化方法であって、(i)前記画像を構成する1以上のブロックに含まれる複数の係数を示す係数情報と、(ii)前記1以上のブロックに対して、前記複数の係数にそれぞれ対応する個別の係数を有する複数の量子化マトリックスを用いて量子化するか否かを示す第1フラグと、(iii)前記複数の量子化マトリックスがシーケンスパラメータセットに含まれるか否かを示す第2フラグと、(iv)前記複数の量子化マトリックスがピクチャパラメータセットに含まれるか否かを示す第3フラグとを符号化する符号化ステップと、前記複数の係数を量子化する量子化ステップとを含み、前記量子化ステップにおいて、前記1以上のブロックが前記複数の量子化マトリックスとして複数のデフォルトマトリックスを用いて量子化される場合、前記符号化ステップでは、(i)前記複数の量子化マトリックスを用いて量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとを符号化する。
これにより、複数のデフォルトマトリックスを用いるか否かが3つのフラグで制御される。したがって、符号化効率の向上が可能である。また、量子化マトリックスがシーケンスパラメータセットにもピクチャパラメータセットにも含まれないことが、デフォルトマトリックスの使用を示す。したがって、エラー耐性が向上する。
例えば、前記量子化ステップにおいて、一様な複数の係数を有する複数のフラットなマトリックスを前記複数の量子化マトリックスの代わりに用いて前記1以上のブロックが量子化される場合、前記符号化ステップでは、前記複数の量子化マトリックスを用いて量子化されないことを示す前記第1フラグを符号化してもよい。
これにより、一様な複数の係数を有するフラットなマトリックスを量子化処理に用いることが可能である。
また、例えば、前記符号化ステップでは、前記量子化ステップにおいて、前記複数の量子化マトリックスを用いて前記1以上のブロックが量子化される場合、(i)前記複数の量子化マトリックスを用いて量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれることを示す前記第2フラグ、または、前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれることを示す前記第3フラグとを符号化し、前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれることを示す前記第2フラグが符号化される場合、前記複数の量子化マトリックスを前記シーケンスパラメータセットに含め、前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれることを示す前記第3フラグが符号化される場合、前記複数の量子化マトリックスを前記ピクチャパラメータセットに含めてもよい。
これにより、デフォルトマトリックスが用いられない場合でも、画像符号化装置および画像復号装置が、同じ量子化マトリックスを用いることができる。
また、例えば、前記符号化ステップでは、前記シーケンスパラメータセットまたは前記ピクチャパラメータセットであるパラメータセットに含められる前記複数の量子化マトリックスが第1量子化マトリックスと第2量子化マトリックスとを含み、かつ、前記第1量子化マトリックスが前記第2量子化マトリックスに等しい場合、前記第1量子化マトリックスにコピーされるマトリックスを示すコピーマトリックス識別子として、前記第2量子化マトリックスを示す識別子を前記パラメータセットに含め、前記パラメータセットに含められる前記複数の量子化マトリックスが前記第1量子化マトリックスを含み、かつ、前記第1量子化マトリックスがデフォルトマトリックスに等しい場合、前記コピーマトリックス識別子として、前記デフォルトマトリックスを示す識別子を前記パラメータセットに含めてもよい。
これにより、パラメータセットに含まれる複数の量子化マトリックスが用いられる場合において、デフォルトマトリックスを適応的に用いることが可能である。また、符号化効率の向上が可能である。
また、例えば、前記画像符号化方法は、さらに、ピクチャを含むシーケンスに対して複数のシーケンス量子化マトリックスを設定し、前記ピクチャに対して複数のピクチャ量子化マトリックスを設定する設定ステップを含み、前記符号化ステップでは、前記ピクチャに対して設定された前記複数のピクチャ量子化マトリックスを前記複数の量子化マトリックスとして用いて前記ピクチャの前記1以上のブロックが量子化される場合、前記複数の量子化マトリックスを用いて量子化されることを示す前記第1フラグを符号化し、前記複数のデフォルトマトリックスが前記複数のシーケンス量子化マトリックスとして前記シーケンスに対して設定された場合、前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグを符号化し、前記シーケンスに対して設定された前記複数のシーケンス量子化マトリックスが前記複数のピクチャ量子化マトリックスとして前記ピクチャに対して設定された場合、前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグを符号化してもよい。
これにより、デフォルトマトリックスをシーケンス量子化マトリックスに流用することが可能であり、シーケンス量子化マトリックスをピクチャ量子化マトリックスに流用することが可能である。
また、例えば、前記符号化ステップでは、変換が行われないブロックが、一様な複数の係数を有するフラットなマトリックスを用いて量子化され、かつ、変換が行われるブロックが、デフォルトマトリックスを用いて量子化される場合、(i)前記複数の量子化マトリックスを用いて量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとを符号化してもよい。
これにより、複数のデフォルトマトリックスが用いられる場合でも、変換が行われないブロックに対して、デフォルトマトリックスに代えて、フラットなマトリックスが用いられる。したがって、適切に量子化処理が行われる。
また、本発明の一態様に係る画像復号方法は、符号化ビットストリームを復号して、画像を復号する画像復号方法であって、前記符号化ビットストリームから、(i)前記画像を構成する1以上のブロックに含まれる複数の係数を示す係数情報と、(ii)前記1以上のブロックが、前記複数の係数にそれぞれ対応する個別の係数を有する複数の量子化マトリックスを用いて逆量子化されるか否かを示す第1フラグと、(iii)前記複数の量子化マトリックスがシーケンスパラメータセットに含まれるか否かを示す第2フラグと、(iv)前記複数の量子化マトリックスがピクチャパラメータセットに含まれるか否かを示す第3フラグとを復号する復号ステップと、前記係数情報を逆量子化する逆量子化ステップとを含み、前記逆量子化ステップでは、(i)前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとが復号された場合、前記複数の量子化マトリックスとして複数のデフォルトマトリックスを用いて前記係数情報を逆量子化する画像復号方法でもよい。
これにより、複数のデフォルトマトリックスを用いるか否かが3つのフラグで制御される。したがって、符号化効率の向上が可能である。また、量子化マトリックスがシーケンスパラメータセットにもピクチャパラメータセットにも含まれないことが、デフォルトマトリックスの使用を示す。したがって、エラー耐性が向上する。
また、例えば、前記逆量子化ステップでは、前記複数の量子化マトリックスを用いて逆量子化されないことを示す前記第1フラグが復号された場合、一様な複数の係数を有する複数のフラットなマトリックスを前記複数の量子化マトリックスの代わりに用いて前記係数情報を逆量子化してもよい。
これにより、一様な複数の係数を有するフラットなマトリックスを逆量子化処理に用いることが可能である。
また、例えば、前記逆量子化ステップでは、前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグと、前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれることを示す前記第2フラグとが復号された場合、前記シーケンスパラメータセットに含まれる前記複数の量子化マトリックスを用いて前記係数情報を逆量子化し、前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグと、前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれることを示す前記第3フラグとが復号された場合、前記ピクチャパラメータセットに含まれる前記複数の量子化マトリックスを用いて前記係数情報を逆量子化してもよい。
これにより、デフォルトマトリックスが用いられない場合でも、画像符号化装置および画像復号装置が、同じ量子化マトリックスを用いることができる。
また、例えば、前記逆量子化ステップでは、前記シーケンスパラメータセットまたは前記ピクチャパラメータセットであるパラメータセットが、第1量子化マトリックスと第2量子化マトリックスとを含む前記複数の量子化マトリックスを含み、かつ、前記パラメータセットが、前記第1量子化マトリックスにコピーされるマトリックスを示すコピーマトリックス識別子として前記第2量子化マトリックスを示す識別子を含む場合、前記第2量子化マトリックスがコピーされる前記第1量子化マトリックスを含む前記複数の量子化マトリックスを用いて前記係数情報を逆量子化し、前記パラメータセットが、前記第1量子化マトリックスを含む前記複数の量子化マトリックスを含み、かつ、前記パラメータセットが、前記コピーマトリックス識別子としてデフォルトマトリックスを示す識別子を含む場合、前記デフォルトマトリックスがコピーされる前記第1量子化マトリックスを含む前記複数の量子化マトリックスを用いて前記係数情報を逆量子化してもよい。
これにより、パラメータセットに含まれる複数の量子化マトリックスが用いられる場合において、デフォルトマトリックスを適応的に用いることが可能である。また、符号化効率の向上が可能である。
また、例えば、前記画像復号方法では、ピクチャを含むシーケンスに対して複数のシーケンス量子化マトリックスを設定し、前記ピクチャに対して複数のピクチャ量子化マトリックスを設定する設定ステップを含み、前記逆量子化ステップでは、前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグが復号された場合、前記ピクチャに対して設定された前記複数のピクチャ量子化マトリックスを前記複数の量子化マトリックスとして用いて、前記ピクチャの前記係数情報を逆量子化し、前記設定ステップでは、前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグが復号された場合、前記複数のデフォルトマトリックスを前記複数のシーケンス量子化マトリックスとして前記シーケンスに対して設定し、前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグが復号された場合、前記シーケンスに対して設定された前記複数のシーケンス量子化マトリックスを前記複数のピクチャ量子化マトリックスとして前記ピクチャに対して設定してもよい。
これにより、デフォルトマトリックスをシーケンス量子化マトリックスに流用することが可能であり、シーケンス量子化マトリックスをピクチャ量子化マトリックスに流用することが可能である。
また、例えば、前記逆量子化ステップでは、(i)前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとが復号された場合、変換が行われないブロックの前記係数情報を、一様な複数の係数を有するフラットなマトリックスを用いて逆量子化し、変換が行われるブロックの前記係数情報を、デフォルトマトリックスを用いて逆量子化してもよい。
これにより、複数のデフォルトマトリックスが用いられる場合でも、変換が行われないブロックに対して、デフォルトマトリックスに代えて、フラットなマトリックスが用いられる。したがって、適切に逆量子化処理が行われる。
さらに、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラム、または、コンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、下記ではcodingはencodingの意味で使用する場合もある。
(実施の形態1)
<全体構成>
図1は、本実施の形態における画像符号化装置の構成を示す。本実施の形態における画像符号化装置は、図1の通り、量子化マトリックス設定部101、量子化マトリックス符号化部102、ブロック分割部103、減算部104、変換部105、量子化部106、係数符号化部107、加算部108、逆変換部109、逆量子化部110、予測部111、および、フレームメモリ112を備える。
<動作(全体)>
次に、図2を参照しつつ、符号化全体のフローについて説明する。まず、量子化マトリックス設定部101は、処理対象のシーケンスで使用される量子化マトリックスであるSPS量子化マトリックス(シーケンス量子化マトリックス)を設定する(S101)。
SPS量子化マトリックスは、外部からの入力、画像の特徴、または、変換スキップ可能フラグ(TransformSkipEnableFlag)等に応じて設定される。変換スキップ可能フラグは、画素データを周波数係数に変換する処理をスキップすることを許可するか否かを示すフラグである。変換処理がスキップされることによって符号化効率が向上する場合がある。変換スキップ可能フラグは、0の場合、変換処理のスキップを禁止することを示し、1の場合、変換処理のスキップを許可することを示す。
次に、量子化マトリックス符号化部102は、SPS量子化マトリックスを符号化する(S102)。詳細は後述する。なお、ピクチャに対する以降の処理(S103〜S115)は、シーケンス内の全ピクチャに対して実施される。したがって、シーケンス内のピクチャ数分、以降の処理が繰り返される。
次に、量子化マトリックス設定部101は、処理対象のピクチャで使用される量子化マトリックスであるPPS量子化マトリックスを設定する(S103)。PPS量子化マトリックスは、外部からの入力、画像の特徴、または、変換スキップ可能フラグ等に応じて設定される。次に、量子化マトリックス符号化部102は、PPS量子化マトリックスを符号化する(S104)。詳細は後述する。
次に、ブロック分割部103は、入力画像をブロック(Coding Unit)に分割し、ブロックを順次、減算部104と予測部111とに出力する(S105)。ブロックは可変サイズを有する。ブロック分割部103は、画像の特徴を用いて画像を分割する。ブロックの最小サイズは横8画素×縦8画素であり、最大サイズは横64画素×縦64画素である。
なお、ブロックに対する以降の処理(S106〜S114)は1枚のピクチャ内の全ブロックに対し実施される。したがって、ピクチャ内のブロックの個数分、以降の処理が繰り返される。
次に、予測部111は、ブロックと、フレームメモリ112に格納されている復号画像とから、予測ブロックを生成する(S106)。減算部104は、入力画像と予測ブロックとから差分ブロックを生成する(S107)。
次に、変換部105は、差分ブロックを周波数係数に変換する(S108)。この時、変換スキップ可能フラグが入力される。変換スキップ可能フラグが1(スキップを許可)の場合、変換部105は、差分ブロックの特徴(サイズ等)に応じて変換処理を実施する/しないを切り替える。そして、変換部105は、変換処理を実施しない場合、差分ブロックをそのまま量子化部106へ出力する。変換部105は、変換処理を実施する場合、周波数変換処理を行い、周波数係数を量子化部106へ出力する。
一方、変換スキップ可能フラグが0(スキップを禁止)の場合、変換部105は、差分ブロックの特徴によらず、周波数変換処理を行い、周波数係数を量子化部106へ出力する。
なお、変換処理のスキップは、変換サイズが4x4の場合にのみ実施される。そして、4x4以外の場合、変換スキップ可能フラグによらず、変換処理が行われる。変換サイズは、4x4以上の可変サイズであり、ブロック(Coding Unit)のサイズよりも小さくてもよい。
次に、量子化部106は、変換部105からの出力データを量子化する(S109)。この時、ステップS103で設定されたPPS量子化マトリックスを用いて出力データが量子化される。変換部105からの出力データは、変換スキップ可能フラグと、差分ブロックの特徴とに応じて、差分ブロックそのものである場合と、周波数係数である場合とがある。次に、係数符号化部107は、量子化結果を符号化する(S110)。符号化には、算術符号化等の可変長符号化が用いられる。
次に、逆量子化部110は、量子化結果を逆量子化し、周波数係数または差分ブロックを復元する(S111)。この時、逆量子化部110は、ステップS103で設定されたPPS量子化マトリックスを用いて量子化結果を逆量子化する。逆量子化とは、量子化された信号を元に戻すことを示すが、より正確には、量子化処理により粗い精度になったデータを、量子化マトリックスを用いて細かい精度に戻す処理となる。そのため、量子化処理と同様にスケーリングと表現される場合がある。
次に、逆変換部109は、周波数係数を画素データに変換し、差分ブロックを復元する(S112)。この時、変換部105から、対象ブロックの周波数変換がスキップされたか否かの情報が逆変換部109へ入力される。そして、周波数変換がスキップされた場合、逆周波数変換もスキップされる。
なお、この技術分野では、一般に、乗算処理を減らすため、逆量子化と逆変換の処理は同時に行われる。
次に、加算部108は、復元された差分ブロックと、予測ブロックとを加算して復号ブロックを生成し、フレームメモリ112に格納する(S113)。以降、量子化マトリックス符号化部102について詳細を説明する。量子化マトリックス符号化部102は、SPS量子化マトリックスとPPS量子化マトリックスとを符号化する。
<量子化マトリックス符号化部の構成>
図3は、図1に示された量子化マトリックス符号化部102の内部構成を示す。量子化マトリックス符号化部102は、図3の通り、QMatrixFlag設定部201、QMatrixFlag符号化部202、SPS_QMatrix_PresentFlag設定部203、SPS_QMatrix_PresentFlag符号化部204、PPS_QMatrix_PresentFlag設定部205、PPS_QMatrix_PresentFlag符号化部206、および、マトリックスデータ符号化部220を備える。
マトリックスデータ符号化部220は、CopyMatrixFlag設定部207、CopyMatrixFlag符号化部208、CopyMatrixID設定部209、CopyMatrixID符号化部210、および、マトリックス係数符号化部211を備える。
<動作(SPS量子化マトリックスの符号化)>
次に、図4Aおよび図4Bを参照しつつ、SPS量子化マトリックスの符号化フローについて説明する。まず、量子化マトリックスが使われる場合(S201でYes)、QMatrixFlag設定部201は、QMatrixFlagを1に設定する(S203)。量子化マトリックスが使われない場合(S201でNo)、QMatrixFlag設定部201は、QMatrixFlagを0に設定する(S202)。
QMatrixFlag(量子化マトリックスフラグ)は、量子化マトリックスを使うか否かを示すフラグである。より具体的には、QMatrixFlagは、量子化処理または逆量子化処理に、周波数毎に個別の係数を有する複数の量子化マトリックスを使うか否かを示すフラグである。QMatrixFlagは、1の場合、量子化マトリックスを使うことを示し、0の場合、量子化マトリックスを使わないことを示す。
次に、量子化マトリックスが使われる場合(S201でYes)、SPS_QMatrix_PresentFlag設定部203は、変換スキップ可能フラグとSPS量子化マトリックスとに応じて、SPS_QMatrix_PresentFlagを設定する(S204〜S210)。
SPS_QMatrix_PresentFlag(SPS量子化マトリックス存在フラグ)は、SPS量子化マトリックスを符号化するか否かを示すフラグである。言い換えれば、SPS_QMatrix_PresentFlagは、量子化処理または逆量子化処理に用いられる複数の量子化マトリックスがSPSに含まれるか否かを示す。SPS_QMatrix_PresentFlagは、1の場合、SPS量子化マトリックスを符号化することを示し、0の場合、SPS量子化マトリックスを符号化しないことを示す。
図4Aの符号化フローにおいて、変換スキップ可能フラグが0(スキップを禁止)の場合(S204でNo)、SPS量子化マトリックスがデフォルトマトリックスと全て同じであるか否かが判定される(S205)。
なお、4x4および8x8などの周波数変換サイズ(マトリックスサイズ)と、画面内予測および画面間予測などの予測モードと、輝度および色差などの画素成分とに対応して、数種類のSPS量子化マトリックスがある。また、SPS量子化マトリックスと同様に、数種類のデフォルトマトリックスがある。デフォルトマトリックスは、予め定められた量子化マトリックスであり、基本的に、SPSにもPPSにも含まれない。
SPS量子化マトリックスがデフォルトマトリックスと全て同じである場合(S205でYes)、SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)に設定される(S206)。ひとつでも異なる場合(S205でNo)、SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)に設定される(S207)。
また、変換スキップ可能フラグが1(スキップを許可)の場合、4x4のSPS量子化マトリックスの全係数が16であり、かつ、4x4以外のSPS量子化マトリックスは全てデフォルトマトリックスと同じであるか否かが判定される(S208)。
上記の判定結果が真の場合(S208でYes)、SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)に設定される(S209)。判定結果が偽の場合(S208でNo)、SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)に設定される(S210)。
次に、QMatrixFlag符号化部202、SPS_QMatrix_PresentFlag符号化部204、および、マトリックスデータ符号化部220は、QMatrixFlag、SPS_QMatrix_PresentFlag、および、SPS量子化マトリックスのマトリックスデータを符号化し、符号列を出力する(S211〜S215)。
より詳細には、QMatrixFlag符号化部202は、QMatrixFlagを符号化する(S211)。そして、QMatrixFlagが1の場合(S212でYes)、SPS_QMatrix_PresentFlag符号化部204は、QMatrix_PresentFlagを符号化する(S213)。さらに、QMatrix_PresentFlagが1の場合(S214でYes)、マトリックスデータ符号化部220は、SPS量子化マトリックスのマトリックスデータを符号化する(S215)。
すなわち、SPS_QMatrix_PresentFlagは、QMatrixFlagが1(量子化マトリックスを使う)の場合にのみ、符号化される。SPS量子化マトリックスのマトリックスデータは、QMatrixFlagが1(量子化マトリックスを使う)、かつ、SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)の場合にのみ、符号化される。マトリックスデータの符号化についての詳細は後述する。符号化によって出力された上記の符号列は、SPSに含められる。
<動作(PPS量子化マトリックスの符号化)>
次に、図5Aおよび図5Bを参照しつつ、PPS量子化マトリックスの符号化フローについて説明する。まず、PPS_QMatrix_PresentFlag設定部205は、QMatrixFlag、SPS_QMatrix_PresentFlag、変換スキップ可能フラグ、および、PPS量子化マトリックスに応じて、PPS_QMatrix_PresentFlagを設定する(S301〜S312)。
PPS_QMatrix_PresentFlag(PPS量子化マトリックス存在フラグ)は、PPS量子化マトリックスを符号化するか否かを示すフラグである。言い換えれば、PPS_QMatrix_PresentFlagは、量子化処理または逆量子化処理に用いられる複数の量子化マトリックスがPPSに含まれるか否かを示す。PPS_QMatrix_PresentFlagは、1の場合、PPS量子化マトリックスを符号化することを示し、0の場合、PPS量子化マトリックスを符号化しないことを示す。
図5Aおよび図5Bの符号化フローにおいて、QMatrixFlagが0(量子化マトリックスを使わない)の場合(S301でNo)、PPS_QMatrix_PresentFlagが0に設定される(S312)。QMatrixFlagが1(量子化マトリックスを使う)の場合(S301でYes)、SPS_QMatrix_PresentFlagに応じて処理が分岐する(S302)。
SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)の場合(S302でYes)、PPS量子化マトリックスがSPS量子化マトリックスと全て同じであるか否かが判定される(S310)。なお、SPS量子化マトリックスと同様に、4x4および8x8などの周波数変換サイズ(マトリックスサイズ)と、画面内予測および画面間予測などの予測モードと、輝度および色差などの画素成分とに対応して、数種類のPPS量子化マトリックスがある。
全て同じ場合(S310でYes)、PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)に設定される(S312)。いずれか1つでも異なる場合(S310でNo)、PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)に設定される(S311)。
また、SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)の場合(S302でNo)、変換スキップ可能フラグが1(スキップを許可)であるか否かが判定される(S303)。
変換スキップ可能フラグが0(スキップを禁止)の場合(S303でNo)、PPS量子化マトリックスがデフォルトマトリックスと全て同じであるか否かが判定される(S304)。全て同じ場合(S304でYes)、PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)に設定される(S305)。ひとつでも異なる場合(S304でNo)、PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)に設定される(S306)。
また、変換スキップ可能フラグが1(スキップを許可)の場合(S303でYes)、4x4のPPS量子化マトリックスの全係数が16であり、かつ、4x4以外のPPS量子化マトリックスがデフォルトマトリックスと全て同じであるか否かが判定される(S307)。
判定結果が真の場合(S307でYes)、PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)に設定される(S308)。判定結果が偽の場合(S307でNo)、PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)に設定される(S309)。
次に、PPS_QMatrix_PresentFlag符号化部206、および、マトリックスデータ符号化部220は、PPS_QMatrix_PresentFlag、および、PPS量子化マトリックスのマトリックスデータを符号化し、符号列を出力する(S313〜S315)。
より詳細には、PPS_QMatrix_PresentFlag符号化部206は、PPS_QMatrix_PresentFlagを符号化する(S313)。PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)の場合(S314でYes)、マトリックスデータ符号化部220は、PPS量子化マトリックスのマトリックスデータを符号化する(S315)。
すなわち、PPS量子化マトリックスのマトリックスデータは、PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)の場合にのみ、符号化される。マトリックスデータの符号化についての詳細は後述する。符号化によって出力された上記の符号列は、PPSに含められる。
<動作(マトリックスデータの符号化)>
次に、図6Aおよび図6Bを参照しつつ、マトリックスデータの符号化フローについて説明する。なお、マトリックスデータに対する処理(S402〜S416)は、全ての量子化マトリックスに対して実施されるため、量子化マトリックスの個数分、これらの処理が繰り返される。
前述した通り、4x4および8x8などの周波数変換サイズ(マトリックスサイズ)と、画面内予測および画面間予測などの予測モードと、輝度および色差などの画素成分とに対応して数種類の量子化マトリックスがある。図6AのステップS401および図6BのステップS415は各量子化マトリックスにIDを割り当てるための処理である。ステップS401でIDが1に初期化され、ステップS415でIDが1ずつインクリメントされる。そして、各量子化マトリックスにIDが割り当てられる。
マトリックスデータの符号化では、まず、CopyMatrixFlag設定部207が、対象マトリックスと変換スキップ可能フラグとに応じて、CopyMatrixFlagを設定する。また、CopyMatrixID設定部209が、対象マトリックスと変換スキップ可能フラグとに応じて、CopyMatrixIDを設定する(S402〜S410)。
より詳細には、対象マトリックスが4x4であり、かつ、変換スキップ可能フラグが1(スキップを許可)である場合(S402でYes)、対象マトリックスの全係数と16とが比較される(S404)。対象マトリックスが4x4でない、または、変換スキップ可能フラグが0(スキップを禁止)である場合(S402でNo)、対象マトリックスとデフォルトマトリックスとが比較される(S403)。
比較の結果、同じ場合(S404でYesまたはS403でYes)、CopyMatrixFlagが1(マトリックスをコピーする)に設定され(S409)、CopyMatrixIDが0(デフォルトマトリックスのID)に設定される(S410)。比較の結果、異なる場合(S404でNoまたはS403でNo)、対象マトリックスと既に符号化済みのマトリックス(対象マトリックスよりもIDが小さいマトリックス)とがさらに比較される(S405)。
同じマトリックスが存在する場合(S405でYes)、CopyMatrixFlagが1(マトリックスをコピーする)に設定される(S407)。そして、存在する同じマトリックスのIDにCopyMatrixIDが設定される(S408)。同じマトリックスが存在しない場合(S405でNo)、CopyMatrixFlagに0(マトリックスをコピーしない)が設定される(S406)。
次に、CopyMatrixFlag符号化部208、CopyMatrixID符号化部210、および、マトリックス係数符号化部211は、CopyMatrixFlag、CopyMatrixID、および、マトリックス係数を符号化する(S411〜S414)。
より詳細には、CopyMatrixFlag符号化部208は、CopyMatrixFlagを符号化する(S411)。CopyMatrixFlagが1(マトリックスをコピーする)の場合(S412でYes)、CopyMatrixID符号化部210は、CopyMatrixIDを符号化する(S414)。CopyMatrixFlagが0(マトリックスをコピーしない)の場合(S412でNo)、マトリックス係数符号化部211はマトリックス係数を符号化する(S413)。
すなわち、CopyMatrixID(コピーされるマトリックスのID)は、CopyMatrixFlagが1(マトリックスをコピーする)の場合にのみ、符号化される。マトリックス係数は、CopyMatrixFlagが0(マトリックスをコピーしない)の場合にのみ、符号化される。なお、4x4のマトリックスでは16個のマトリックス係数が存在し、8x8のマトリックスでは64個のマトリックス係数が存在する。
<効果>
以上、本実施の形態における画像符号化装置は、少ない符号量でデフォルトマトリックスを使うことができ、符号化効率を向上させることができる。
より具体的には、全ての量子化マトリックスでデフォルトマトリックスが使われる場合、QMatrixFlagが1(量子化マトリックスを使用する)、SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)、PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)に設定される。これにより、全ての量子化マトリックスでデフォルトマトリックスを使うことが3つのフラグで表現される。
また、変換スキップ可能フラグに応じてSPS/PPS_QMatrix_PresentFlag、および、CopyMatrixFlagの設定を変更することによって、量子化マトリックスを符号化しない条件が適応的に切り替えられる。
変換スキップ可能フラグが1(スキップを許可)の場合、量子化マトリックスを使わない方が高画質になる可能性が高い。例えば、変換処理がスキップされた場合、周波数変換が行われないため、周波数係数ではなく差分ブロックに対して量子化が行われる。この場合、画像符号化装置は、量子化マトリックスを用いず、ブロック全体で同じ係数を用いることにより、ブロックをより自然に量子化できる。
したがって、変換処理のスキップが許可される場合、量子化マトリックス設定部101は、マトリックス係数を全て同じ値に設定してもよい。したがって、画像符号化装置は、変換スキップ可能フラグに基づいて符号化条件を切り替えることによって量子化マトリックスの符号化を抑制できる。そして、画像復号装置も、変換スキップ可能フラグを用いて同じルールでマトリックス係数を復元することができる。したがって、符号量が削減される。
なお、上記の例では、変換スキップ可能フラグに応じてSPS/PPS_QMatrix_PresentFlag、および、CopyMatrixFlagの設定が切り替えられる。しかし、変換スキップ可能フラグを用いて切り替えが行われなくてもよい。SPS/PPSの量子化マトリックスの値のみでSPS/PPS_QMatrix_PresentFlag、および、CopyMatrixFlagが設定されてもよい。
例えば、SPS量子化マトリックスの符号化フロー(図4Aおよび図4B)において、変換スキップ可能フラグによって、ステップS205〜S207と、ステップS208〜S210とが切り替えられる。しかし、変換スキップ可能フラグによらず、ステップS205〜S207のみで、SPS_QMatrix_PresentFlagが設定されてもよい。
また、上記の例では、PPS_QMatrix_PresentFlagが、ピクチャ毎に常に符号化される。しかし、量子化マトリックスが使われない場合(QMatrixFlagが0の場合)、PPS_QMatrix_PresentFlagが符号化されなくてもよい。
また、上記の例では、QMatrixFlag(量子化マトリックスを使うか否かのフラグ)は、SPS量子化マトリックスの符号化処理内で符号化される。しかし、QMatrixFlagは、PPS量子化マトリックスの符号化処理内で符号化されてもよい。この場合、SPS_QMatrix_PresentFlagは、QMatrixFlagの値によらず、符号化される。
また、上記の例では、量子化マトリックスは、外部から入力される。しかし、入力画像の特徴に応じて量子化マトリックスが決定されてもよい。また、量子化マトリックスは、複数種類の中から選択されてもよい。また、固定の量子化マトリックスが用いられてもよい。
また、上記の例では、変換スキップ可能フラグは、外部から入力される。しかし、入力画像の特徴に応じて、変換スキップ可能フラグが決定されてもよい。また、変換スキップ可能フラグは、固定値でもよい。
また、上記の例では、マトリックスデータ符号化部220において、CopyMatrixFlagおよびCopyMatrixIDを用いて既に符号化済みのマトリックスをコピーする仕組みが実現される。しかし、この例に限らず、マトリックスがコピーされることなく、常にマトリックス係数符号化部211がマトリックスデータを符号化してもよい。
また、上記の例では、変換処理のスキップは、変換サイズが4x4の場合のみにおいて実施される。そして、4x4以外の場合では、スキップが行われることなく、変換処理が行われる。しかし、上記の例に限らず、8x8以下の場合に、変換処理のスキップが実施されてもよいし、変換処理のスキップが全てのサイズで実施されてもよい。
この場合、SPS/PPS_QMatrix_PresentFlag、および、CopyMatrixFlagの設定において、4x4の量子化マトリックス係数が16と比較されるだけでなく、8x8およびその他の量子化マトリックス係数も16と比較される。
また、上記の例では、変換スキップ可能フラグが1(スキップを許可)の場合、4x4の量子化マトリックス係数が全て16であるか否かが判定される。しかし、16以外の数値を用いて量子化マトリックス係数が全て同じ数値であるか否かが判定されてもよい。
また、上記の例では、ブロックのサイズは、最大64x64、および、最小8x8と定められている。しかし、ブロックのサイズは、それ以上でもそれ以下でもよい。また、ブロックは固定サイズでもよい。また、変換サイズも上記の例に限られない。
図7は、上記の例に係る画像符号化装置の特徴的な動作を示す。上記の例は、以下のように、まとめられる。
量子化マトリックス符号化部102は、第1フラグ、第2フラグおよび第3フラグを符号化する(S911)。第1フラグは、周波数毎に個別の係数を有する複数の量子化マトリックスが(選択的に)量子化処理に用いられるか否かを示す。第2フラグは、複数の量子化マトリックスがSPSに含まれるか否かを示す。第3フラグは、複数の量子化マトリックスがPPSに含まれるか否かを示す。そして、量子化部106は、量子化処理を行う(S912)。
複数の量子化マトリックスとして複数のデフォルトマトリックスが量子化処理に用いられる場合、量子化マトリックス符号化部102は、複数の量子化マトリックスが量子化処理に用いられることを示す第1フラグを符号化する。また、この場合、量子化マトリックス符号化部102は、複数の量子化マトリックスがSPSに含まれないことを示す第2フラグと、複数の量子化マトリックスがPPSに含まれないことを示す第3フラグとを符号化する。
これにより、複数のデフォルトマトリックスを用いるか否かが3つのフラグで制御される。したがって、符号化効率の向上が可能である。また、量子化マトリックスがSPSにもPPSにも含まれないことが、デフォルトマトリックスの使用を示す。したがって、エラー耐性が向上する。
なお、複数の量子化マトリックスが量子化処理に用いられることを示す第1フラグを符号化することは、より具体的には、複数の量子化マトリックスが量子化処理に用いられることを示す値を第1フラグの値として符号化することを意味する。この関係は、その他のフラグの符号化についても、同様である。
また、その他の処理は、他の装置によって実行されてもよい。画像符号化装置は、その他の処理に係る構成要素を備えていなくてもよい。あるいは、画像符号化装置は、上記の例に対応する以下の動作を任意に行ってもよい。
例えば、画像符号化装置は、一様な係数を有するフラットなマトリックスを量子化マトリックスの代わりに量子化処理に用いる場合、量子化マトリックスが量子化処理に用いられないことを示す第1フラグを符号化する。
また、例えば、画像符号化装置は、量子化マトリックスを量子化処理に用いる場合、量子化マトリックスが量子化処理に用いられることを示す第1フラグを符号化する。そして、この場合、画像符号化装置は、量子化マトリックスがSPSに含まれることを示す第2フラグ、または、量子化マトリックスがPPSに含まれることを示す第3フラグを符号化する。
そして、画像符号化装置は、量子化マトリックスがSPSに含まれることを示す第2フラグを符号化する場合、量子化マトリックスをSPSに含める。そして、画像符号化装置は、量子化マトリックスがPPSに含まれることを示す第3フラグを符号化する場合、量子化マトリックスをPPSに含める。
また、例えば、第1量子化マトリックスが第2量子化マトリックスに等しい場合、画像符号化装置は、第1量子化マトリックスにコピーされるマトリックスを示すコピー識別子として、第2量子化マトリックスを示す識別子をパラメータセットに含める。そして、第1量子化マトリックスがデフォルトマトリックスに等しい場合、画像符号化装置は、コピー識別子として、デフォルトマトリックスを示す識別子をパラメータセットに含める。
また、例えば、画像符号化装置は、シーケンスに対してシーケンス量子化マトリックスを設定し、ピクチャに対してピクチャ量子化マトリックスを設定する。そして、画像符号化装置は、ピクチャ量子化マトリックスをピクチャに対する量子化処理に用いる場合、量子化マトリックスが量子化処理に用いられることを示す第1フラグを符号化する。
そして、デフォルトマトリックスがシーケンス量子化マトリックスとして設定された場合、画像符号化装置は、量子化マトリックスがSPSに含まれないことを示す第2フラグを符号化する。そして、シーケンス量子化マトリックスがピクチャ量子化マトリックスとして設定された場合、画像符号化装置は、量子化マトリックスがPPSに含まれないことを示す第3フラグを符号化する。
また、例えば、画像符号化装置は、量子化処理を行うことによって量子化データを生成し、生成された量子化データを符号化する。
また、例えば、画像符号化装置は、周波数変換が行われないブロックに対する量子化処理に、一様な係数を有するフラットなマトリックスを用い、周波数変換が行われるブロックに対する量子化処理に、デフォルトマトリックスを用いる。
この場合、画像符号化装置は、量子化マトリックスが量子化処理に用いられることを示す第1フラグを符号化する。そして、画像符号化装置は、量子化マトリックスがSPSに含まれないことを示す第2フラグを符号化する。そして、画像符号化装置は、量子化マトリックスがPPSに含まれないことを示す第3フラグを符号化する。
以上の動作が任意に組み合わされてもよい。また、本実施の形態における上記の例に基づいて、種々の変形が加えられてもよい。
さらに、本実施の形態における処理は、ソフトウェアで実現されてもよい。そして、このソフトウェアがダウンロード等により配布されてもよい。また、このソフトウェアがCD−ROMなどの記録媒体に記録されて流布されてもよい。なお、これらは、他の実施の形態においても実現可能である。
(実施の形態2)
本実施の形態では、実施の形態1に示された画像符号化装置に対応する画像復号装置が示される。本実施の形態における画像復号装置は、実施の形態1に示された画像符号化装置に対応する動作を行う。これにより、本実施の形態の画像復号装置は、実施の形態1の画像符号化装置によって符号化された画像を復号することができる。なお、実施の形態1と同じ用語等を用いることにより、実施の形態1に示された説明が本実施の形態では省略される場合がある。
<全体構成>
図8は、本実施の形態における画像復号装置の構成を示す。本実施の形態における画像復号装置は、図8の通り、係数復号部301、量子化マトリックス復号部302、逆量子化部303、逆変換部304、加算部305、および、フレームメモリ306を備える。
<動作(全体)>
次に、図9を参照しつつ、復号全体のフローについて説明する。まず、量子化マトリックス復号部302は、処理対象のシーケンスで使用される量子化マトリックスであるSPS量子化マトリックスを復号する(S501)。詳細は後述する。なお、ピクチャに対する以降の処理(S502〜S508)は、シーケンス内の全ピクチャに対して実施されるため、シーケンス内のピクチャ数分、処理が繰り返される。
次に、量子化マトリックス復号部302は、処理対象のピクチャで使用される量子化マトリックスであるPPS量子化マトリックスを復号する(S502)。詳細は後述する。なお、ブロックに対する以降の処理(S503〜S507)は1枚のピクチャ内の全ブロックに対し実施されるため、ピクチャ内のブロックの個数分、処理が繰り返される。
次に、係数復号部301は、符号列から量子化結果を復号する(S503)。逆量子化部303は、量子化結果を逆量子化し、周波数係数または差分ブロックを復元する(S504)。この時、ステップS502で復号されたPPS量子化マトリックスを用いて逆量子化が行われる。
次に、逆変換部304は、周波数係数を画素データに変換し、差分ブロックを復元する(S505)。この時、符号列から対象ブロックの周波数変換をスキップしたか否かのフラグが取得される。そして、周波数変換がスキップされる場合、逆周波数変換もスキップされる。なお、変換処理のスキップは変換サイズが4x4の場合にのみ実施され、4x4以外の場合、フラグによらず変換処理が行われる。
次に、加算部305は、フレームメモリ306に格納されている復号画像(予測画像)と差分ブロックとを加算して復号ブロックを生成し、復号ブロックを新たにフレームメモリ306に格納する(S506)。ブロック(Coding Unit)のサイズは可変サイズである。例えば、最小サイズは横8画素×縦8画素であり、最大サイズは横64画素×縦64画素である。
以降、量子化マトリックス復号部302について詳細を説明する。量子化マトリックス復号部302はSPS量子化マトリックスとPPS量子化マトリックスとを復号する。
<量子化マトリックス復号部の構成>
図10は、量子化マトリックス復号部302の内部構成を示す。量子化マトリックス復号部302は、図10の通り、QMatrixFlag復号部401、SPS_QMatrix_PresentFlag復号部402、PPS_QMatrix_PresentFlag復号部403、量子化マトリックス設定部404、および、マトリックスデータ復号部420を備える。
マトリックスデータ復号部420は、CopyMatrixFlag復号部405、CopyMatrixID復号部406、および、マトリックス係数復号部407を備える。
<動作(SPS量子化マトリックスの復号)>
次に、図11を参照しつつ、SPS量子化マトリックスの復号フローについて説明する。
まず、QMatrixFlag復号部401は、符号列からQMatrixFlagを復号する(S601)。そして、QMatrixFlagが0(量子化マトリックスを使用しない)の場合(S602でNo)、量子化マトリックス設定部404は、SPS量子化マトリックスの全係数を16に設定する(S603)。QMatrixFlagが1(量子化マトリックスを使用する)の場合(S602でYes)、以降のステップS604〜S610の処理が行われる。
具体的には、SPS_QMatrix_PresentFlag復号部402は、符号列からSPS_QMatrix_PresentFlagを復号する(S604)。SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)の場合(S605でYes)、マトリックスデータ復号部420は、SPS量子化マトリックスのマトリックスデータを復号する(S606)。マトリックスデータの復号についての詳細は後述する。
SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)の場合(S605でNo)、量子化マトリックス設定部404は、符号列内の変換スキップ可能フラグに応じてSPS量子化マトリックスを設定する(S607〜S610)。
より詳細には、変換スキップ可能フラグが0(スキップを禁止)の場合(S607でNo)、SPS量子化マトリックスがデフォルトマトリックスで設定される(S610)。つまり、デフォルトマトリックスの係数がSPS量子化マトリックスにコピーされる。
変換スキップ可能フラグが1(スキップを許可)の場合(S607でYes)、4x4のSPS量子化マトリックスの全係数が16に設定され(S608)、4x4以外のSPS量子化マトリックスがデフォルトマトリックスで設定される(S609)。
<動作(PPS量子化マトリックスの復号)>
次に、図12を参照しつつ、PPS量子化マトリックスの復号フローについて説明する。まず、PPS_QMatrix_PresentFlag復号部403は、符号列からPPS_QMatrix_PresentFlagを復号する(S701)。
次に、QMatrixFlag復号部401で復号されたQMatrixFlagが0(量子化マトリックスを使用しない)の場合(S702でNo)、量子化マトリックス設定部404は、PPS量子化マトリックスの全係数を16に設定する(S703)。QMatrixFlagが1(量子化マトリックスを使用する)の場合(S702でYes)、以降のステップS704〜S711の処理が行われる。
具体的には、PPS_QMatrix_PresentFlagが1(PPSに量子化マトリックスを含む)の場合(S704でYes)、マトリックスデータ復号部420はPPS量子化マトリックスのマトリックスデータを復号する(S705)。マトリックスデータの復号についての詳細は後述する。PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)の場合、以降のステップS706〜S711の処理が行われる。
具体的には、SPS_QMatrix_PresentFlagが1(SPSに量子化マトリックスを含む)の場合(S706でYes)、量子化マトリックス設定部404は、PPS量子化マトリックスをSPS量子化マトリックスで設定する(S707)。つまり、SPS量子化マトリックスの係数がPPS量子化マトリックスにコピーされる。
SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)の場合(S706でNo)、量子化マトリックス設定部404は、符号列内の変換スキップ可能フラグに応じてPPS量子化マトリックスを設定する(S708〜S711)。
より詳細には、変換スキップ可能フラグが0(スキップを禁止)の場合(S708でNo)、PPS量子化マトリックスがデフォルトマトリックスで設定される(S711)。つまり、デフォルトマトリックスの係数がPPS量子化マトリックスにコピーされる。変換スキップ可能フラグが1(スキップを許可)の場合(S708でYes)、4x4のPPS量子化マトリックスの全係数が16に設定され(S709)、4x4以外のPPS量子化マトリックスがデフォルトマトリックスで設定される(S710)。
<動作(マトリックスデータの復号)>
次に、図13を参照しつつ、マトリックスデータの復号フローについて説明する。なお、マトリックスデータに対する処理(S802〜S812)は、全ての量子化マトリックスに対して実施される。したがって、量子化マトリックスの個数分、処理が繰り返される。前述した通り、4x4および8x8などの周波数変換サイズ(マトリックスサイズ)と、画面内予測および画面間予測などの予測モードと、輝度および色差などの画素成分に対応して数種類の量子化マトリックスがある。
ステップS801およびS811は、各量子化マトリックスにIDを割り当てるための処理である。ステップS801でIDが1に初期化され、ステップS811でIDが1ずつインクリメントされる。そして、各量子化マトリックスにIDが割り当てられる。
マトリックスデータの復号において、まず、CopyMatrixFlag復号部405は、CopyMatrixFlagを復号する(S802)。CopyMatrixFlagが0(マトリックスをコピーしない)の場合(S803でNo)、マトリックス係数復号部407はマトリックス係数の復号を行う(S804)。なお、4x4のマトリックスの場合、16個のマトリックス係数が存在し、8x8のマトリックスの場合、64個のマトリックス係数が存在する。
CopyMatrixFlagが1(マトリックスをコピーする)の場合(S803でYes)、以降のステップS805〜S810の処理が行われる。
具体的には、CopyMatrixID復号部406は、CopyMatrixIDを復号する(S805)。CopyMatrixIDが0以外(既に復号済みのマトリックスのID)の場合(S806でNo)、量子化マトリックス設定部404はCopyMatrixIDが示すマトリックスの係数を対象マトリックスにコピーする(S810)。
CopyMatrixIDが0(デフォルトマトリックスのID)の場合(S806でYes)、量子化マトリックス設定部404は符号列内の変換スキップ可能フラグと対象マトリックスのサイズに応じてマトリックスの値を設定する(S807〜S809)。
より詳細には、変換スキップ可能フラグが1(スキップを許可)であり、かつ、対象マトリックスのサイズが4x4である場合(S807でYes)、対象マトリックスの全係数が16に設定される(S808)。変換スキップ可能フラグが0(スキップを禁止)である、あるいは、対象マトリックスのサイズが4x4以外である場合(S807でNo)、対象マトリックスがデフォルトマトリックスで設定される(S809)。つまり、デフォルトマトリックスの係数が対象マトリックスにコピーされる。
<効果>
以上、本実施の形態における画像復号装置は、少ない符号量でデフォルトマトリックスを使うことができ、符号化効率が高められた符号列を復号することができる。
より具体的には、QMatrixFlagが1(量子化マトリックスを使用する)、SPS_QMatrix_PresentFlagが0(SPSに量子化マトリックスを含まない)、PPS_QMatrix_PresentFlagが0(PPSに量子化マトリックスを含まない)の場合、全ての量子化マトリックスでデフォルトマトリックスが使われる。画像復号装置は、3つのフラグに従って、全ての量子化マトリックスでデフォルトマトリックスを用いることができる。
また、変換スキップ可能フラグに応じて、デフォルトマトリックスではなく、全係数が同じ値に設定される。これにより、高画質化が実現される。
変換スキップ可能フラグが1(スキップを許可)の場合、量子化マトリックスを使わない方が高画質になる可能性が高い。例えば、変換処理がスキップされた場合、周波数変換(逆周波数変換)が行われないため、周波数係数ではなく差分ブロックに対して量子化(逆量子化)が行われる。この場合、量子化マトリックスを用いず、ブロック全体を同じ係数で量子化(逆量子化)した方が、ブロックがより自然に量子化(逆量子化)される。
そのため、変換スキップ可能フラグが1(スキップを許可)の場合、量子化マトリックスが使われないことがある。したがって、変換スキップ可能フラグが1であり、SPS/PPSに量子化マトリックスが含まれない場合、デフォルトマトリックスではなく、マトリックスの全係数を同じ値に設定することにより、符号量の削減と画質の向上とが可能である。
なお、上記の例では、変換スキップ可能フラグに応じて量子化マトリックスへの設定値が切り替えられる。しかし、設定値は、変換スキップ可能フラグによって切り替えられなくてもよい。QMatrixFlagが1(量子化マトリックスを使用する)、かつ、SPS/PPS_QMatrix_PresentFlagが0(SPS/PPSに量子化マトリックスを含まない)の場合、変換スキップ可能フラグによらず、デフォルトマトリックスが使われてもよい。
例えば、SPS量子化マトリックスの復号フロー(図12)において、変換スキップ可能フラグによってステップS709〜S710と、ステップS711とが切り替えられる。しかし、これらが切り替えられずに、ステップS711のみを用いてPPS量子化マトリックスが設定されてもよい。
また、上記の例では、PPS_QMatrix_PresentFlagが、ピクチャ毎に常に復号される。しかし、量子化マトリックスが使われない場合(QMatrixFlagが0の場合)、PPS_QMatrix_PresentFlagが復号されなくてもよい。
また、上記の例では、QMatrixFlag(量子化マトリックスを使うか否かのフラグ)は、SPS量子化マトリックスの復号処理内で復号される。しかし、QMatrixFlagは、PPS量子化マトリックスの復号処理内で復号されてもよい。この場合、SPS_QMatrix_PresentFlagは、QMatrixFlagの値によらず、復号される。
また、上記の例では、マトリックスデータ復号部420において、CopyMatrixFlagおよびCopyMatrixIDを用いて既に復号済みのマトリックスをコピーする仕組みが実現される。しかし、この例に限らず、マトリックスがコピーされることなく、常にマトリックス係数復号部407がマトリックスデータを復号してもよい。
また、上記の例では、変換処理のスキップは、変換サイズが4x4の場合にのみ、実施される。そして、4x4以外の場合では、スキップが行われることなく、変換処理が行われる。しかし、上記の例に限らず、8x8以下の場合に、変換処理のスキップが実施されてもよいし、変換処理のスキップが全てのサイズで実施されてもよい。
この場合、量子化マトリックスの設定において4x4の量子化マトリックス係数のみが16に設定されるだけでなく、8x8およびその他の量子化マトリックスも同じ条件で16に設定される。
また、上記の例では、変換スキップ可能フラグが1の場合、4x4の量子化マトリックスの全係数が16に設定される。しかし、量子化マトリックスの全係数が、16以外の同じ数値に設定されてもよい。
また、上記の例では、ブロックのサイズは、最大64x64、および、最小8x8と定められている。しかし、ブロックのサイズは、それ以上でもそれ以下でもよい。また、ブロックは固定サイズでもよい。また、変換サイズも上記の例に限られない。
図14は、上記の例に係る画像復号装置の特徴的な動作を示す。上記の例は、以下のように、まとめられる。
量子化マトリックス復号部302は、第1フラグ、第2フラグおよび第3フラグを復号する(S921)。第1フラグは、周波数毎に個別の係数を有する複数の量子化マトリックスが(選択的に)逆量子化処理に用いられるか否かを示す。第2フラグは、複数の量子化マトリックスがSPSに含まれるか否かを示す。第3フラグは、複数の量子化マトリックスがPPSに含まれるか否かを示す。
そして、逆量子化部303は、逆量子化処理を行う(S922)。ここで、逆量子化部303は、(i)複数の量子化マトリックスが逆量子化処理に用いられることを示す第1フラグと、(ii)複数の量子化マトリックスがSPSに含まれないことを示す第2フラグと、(iii)複数の量子化マトリックスがPPSに含まれないことを示す第3フラグとが復号された場合、複数の量子化マトリックスとして複数のデフォルトマトリックスを用いて逆量子化処理を行う。
これにより、複数のデフォルトマトリックスを用いるか否かが3つのフラグで制御される。したがって、符号化効率の向上が可能である。また、量子化マトリックスがSPSにもPPSにも含まれないことが、デフォルトマトリックスの使用を示す。したがって、エラー耐性が向上する。
なお、複数の量子化マトリックスが逆量子化処理に用いられることを示す第1フラグを復号することは、より具体的には、複数の量子化マトリックスが逆量子化処理に用いられることを示す値を第1フラグの値として復号することを意味する。この関係は、その他のフラグの復号についても、同様である。
また、その他の処理は、他の装置によって実行されてもよい。画像復号装置は、その他の処理に係る構成要素を備えていなくてもよい。あるいは、画像復号装置は、上記の例に対応する以下の動作を任意に行ってもよい。
例えば、画像復号装置は、量子化マトリックスが逆量子化処理に用いられないことを示す第1フラグが復号された場合、一様な係数を有するフラットなマトリックスを量子化マトリックスの代わりに用いて逆量子化処理を行う。
また、例えば、画像復号装置は、量子化マトリックスが逆量子化処理に用いられることを示す第1フラグと、量子化マトリックスがSPSに含まれることを示す第2フラグとを復号する。そして、この場合、画像復号装置は、SPSに含まれる量子化マトリックスを用いて逆量子化処理を行う。
また、例えば、画像復号装置は、量子化マトリックスが逆量子化処理に用いられることを示す第1フラグと、量子化マトリックスがPPSに含まれることを示す第3フラグとを復号する。そして、この場合、画像復号装置は、PPSに含まれる量子化マトリックスを用いて逆量子化処理を行う。
また、例えば、パラメータセットがコピー識別子として第2量子化マトリックスを示す識別子を含む場合、画像復号装置は、第2量子化マトリックスがコピーされる第1量子化マトリックスを含む複数の量子化マトリックスを用いて逆量子化処理を行う。
また、例えば、パラメータセットがコピー識別子としてデフォルトマトリックスを示す識別子を含む場合、画像復号装置は、デフォルトマトリックスがコピーされる第1量子化マトリックスを含む複数の量子化マトリックスを用いて逆量子化処理を行う。
また、例えば、画像復号装置は、シーケンスに対してシーケンス量子化マトリックスを設定し、ピクチャに対してピクチャ量子化マトリックスを設定する。そして、画像復号装置は、量子化マトリックスが逆量子化処理に用いられることを示す第1フラグを復号した場合、ピクチャ量子化マトリックスを用いてピクチャに対して逆量子化処理を行う。
そして、シーケンス量子化マトリックスの設定では、量子化マトリックスがSPSに含まれないことを示す第2フラグが復号された場合、画像復号装置は、デフォルトマトリックスをシーケンス量子化マトリックスとして設定する。また、ピクチャ量子化マトリックスの設定では、量子化マトリックスがPPSに含まれないことを示す第3フラグが復号された場合、画像復号装置は、シーケンス量子化マトリックスをピクチャ量子化マトリックスとして設定する。
また、例えば、画像復号装置は、量子化データを復号し、復号された量子化データに対して逆量子化処理を行う。
また、例えば、(i)量子化マトリックスが逆量子化処理に用いられることを示す第1フラグと、(ii)量子化マトリックスがSPSに含まれないことを示す第2フラグと、(iii)量子化マトリックスがPPSに含まれないことを示す第3フラグとが復号された場合、画像復号装置は、次の動作を行う。
すなわち、画像復号装置は、逆周波数変換が行われないブロックに対して、一様な係数を有するフラットなマトリックスを用いて逆量子化処理を行う。そして、画像復号装置は、逆周波数変換が行われるブロックに対して、デフォルトマトリックスを用いて逆量子化処理を行う。
以上の動作が任意に組み合わされてもよい。また、本実施の形態における上記の例に基づいて、種々の変形が加えられてもよい。
以上の各実施の形態において、機能ブロックの各々は、MPUおよびメモリ等によって実現されてもよい。また、機能ブロックの各々による処理は、ソフトウェア(プログラム)によって実現されてもよく、当該ソフトウェアはROM等の記録媒体に記録されていてもよい。そして、このようなソフトウェアは、ダウンロード等によって配布されてもよいし、CD−ROMなどの記録媒体に記録されて配布されてもよい。なお、各機能ブロックは、ハードウェア(専用回路)によって実現されてもよい。
つまり、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、画像符号化装置および画像復号装置は、処理回路(Processing Circuitry)と、当該処理回路に電気的に接続された(当該処理回路からアクセス可能な)記憶装置(Storage)とを備える。処理回路は、専用のハードウェアおよびプログラム実行部の少なくとも一方を含み、記憶装置を用いて処理を実行する。また、記憶装置は、処理回路がプロラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
ここで、上記各実施の形態の画像符号化装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、画像を符号化する画像符号化方法であって、(i)前記画像を構成する1以上のブロックに含まれる複数の係数を示す係数情報と、(ii)前記1以上のブロックに対して、周波数毎に個別の係数を有する複数の量子化マトリックスを用いて量子化するか否かを示す第1フラグと、(iii)前記複数の量子化マトリックスがシーケンスパラメータセットに含まれるか否かを示す第2フラグと、(iv)前記複数の量子化マトリックスがピクチャパラメータセットに含まれるか否かを示す第3フラグとを符号化する符号化ステップと、前記複数の係数を量子化する量子化ステップとを含み、前記量子化ステップにおいて、前記1以上のブロックが前記複数の量子化マトリックスとして複数のデフォルトマトリックスを用いて量子化される場合、前記符号化ステップでは、(i)前記複数の量子化マトリックスを用いて量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとを符号化する画像符号化方法を実行させる。
また、このプログラムは、コンピュータに、符号化ビットストリームを復号して、画像を復号する画像復号方法であって、前記符号化ビットストリームから、(i)前記画像を構成する1以上のブロックに含まれる複数の係数を示す係数情報と、(ii)前記1以上のブロックが、周波数毎に個別の係数を有する複数の量子化マトリックスを用いて逆量子化されるか否かを示す第1フラグと、(iii)前記複数の量子化マトリックスがシーケンスパラメータセットに含まれるか否かを示す第2フラグと、(iv)前記複数の量子化マトリックスがピクチャパラメータセットに含まれるか否かを示す第3フラグとを復号する復号ステップと、前記係数情報を逆量子化する逆量子化ステップとを含み、前記逆量子化ステップでは、(i)前記複数の量子化マトリックスを用いて逆量子化されることを示す前記第1フラグと、(ii)前記複数の量子化マトリックスが前記シーケンスパラメータセットに含まれないことを示す前記第2フラグと、(iii)前記複数の量子化マトリックスが前記ピクチャパラメータセットに含まれないことを示す前記第3フラグとが復号された場合、前記複数の量子化マトリックスとして複数のデフォルトマトリックスを用いて前記係数情報を逆量子化する画像復号方法を実行させてもよい。
また、各構成要素は、回路であってもよい。これらの回路は、全体として1つの回路を構成してもよいし、それぞれ別々の回路であってもよい。また、各構成要素は、汎用的なプロセッサで実現されてもよいし、専用のプロセッサで実現されてもよい。
また、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。また、画像符号化復号装置が、画像符号化装置および画像復号装置を備えていてもよい。
また、各実施の形態において説明された処理は、単一の装置(システム)を用いる集中処理で実現されてもよく、あるいは、複数の装置を用いる分散処理で実現されてもよい。また、上記プログラムを実行するコンピュータは、単数であっても、複数であってもよい。すなわち、上記プログラムを実行するコンピュータは、集中処理を行ってもよいし、分散処理を行ってもよい。
以上、一つまたは複数の態様に係る画像符号化装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
(実施の形態3)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図15は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図15のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局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の例に限らず、図16に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図17は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)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の構成を図18に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図19に光ディスクである記録メディア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の構成は例えば図17に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図20Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図20Bを用いて説明する。携帯電話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トランスポートストリーム形式のデジタルストリームである。
図21は、多重化データの構成を示す図である。図21に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(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が、それぞれ割り当てられている。
図22は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図23は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図23における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図23の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図24は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには図24下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号は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時間の情報を持つ。
図25はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図26に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図26に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図27に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図28に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図29に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などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図30は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図29のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図29の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態4で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態4で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図32のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図31は、本実施の形態の方法を実施するステップを示している。まず、ステップ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などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図33Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、エントロピー復号および逆量子化に特徴を有していることから、例えば、エントロピー復号および逆量子化については専用の復号処理部ex901を用い、それ以外のデブロッキング・フィルタ、動き補償および逆周波数変換のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図33Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。