(本発明の基礎となった知見)
デブロッキング処理に用いられる情報は、ブロック境界を挟んだ2つのブロックに対する次の情報である。(1)イントラ予測(画面内予測)が用いられたかインター予測(画面間予測)が用いられたかを示す情報。(2)非ゼロとなる変換係数が存在するか否かを示す情報。(3)動きベクトル、及び参照画像(参照フレーム)の情報。(4)量子化パラメータ。(5)隣接画素値。
これらの情報を用いて、デブロッキング処理を実行するか、しないかが判定される。図1は、HEVCで用いられているデブロッキング処理の実行判定処理のフローチャートである。
ブロック境界を挟んだ2つのブロックをブロックP及びブロックQとする。まず、ブロックP及びブロックQの少なくとも一方が、イントラ予測が行われたブロックであるかが判定される(SA01)。また、ブロックP及びブロックQの少なくとも一方が非ゼロである変換係数を含み、かつブロック境界が変換処理に用いられるブロックの境界と一致するかが判定される(SA02)。また、ブロックP及びブロックQの動きベクトルが参照する参照画像が異なるかが判定される(SA03)。また、ブロックP及びブロックQの動きベクトルの差の絶対値が1以上であるかが判定される(SA04)。
これらSA01〜SA04の判定条件の全てでNoの場合には、デブロッキング処理なしと判定される(SA07)。一方、SA01〜SA04の判定条件のいずれかでYesの場合には、さらにブロックP及びブロックQの画素値が平坦(画素値の変化が少ない)か否かが判定され(SA05)、ブロック間にエッジがあるか否かが判定される(SA06)。
平坦であり(SA05でYes)、かつ、エッジがない(SA06でNo)場合は、デブロッキング処理ありと判定される(SA08)。一方、平坦ではない(SA05でNo)または、エッジがある(SA06でYes)場合にはデブロッキング処理なしと判定される(SA07)。
しかしながら、図1に示す方法では、インター予測に関しては、動きベクトルのサイズと参照関係とのみを用いてデブロッキング処理の有無の判定をしている。つまり、この方法では、隣接ブロックで異なる動き予測モデルが用いられる場合は考慮されていない。これにより、隣接ブロックで異なる予測モデルが用いられる場合において、適切にブロック境界の画像の歪み(境界歪み)を低減することができないという課題がある。
そこで本実施の形態は、インター予測を用いて複数の動き予測モデルを用いた場合に、適切に境界歪みを低減することで、画質を向上できる画像符号化方法、画像符号化装置、画像復号方法、及び画像復号装置について説明する。
本発明の一態様に係る画像符号化方法は、画像を符号化する画像符号化方法であって、
前記画像に含まれるブロック毎に、平行移動モデルと、平行移動モデル以外の非平行移動モデルとを含む複数の動き予測モデルのうちいずれかを選択する選択ステップと、選択された動き予測モデルを用いて動き予測を行うことで各前記ブロックの予測画像を生成する予測ステップと、前記予測画像を用いて前記各ブロックの再構成画像を生成する再構成画像生成ステップと、前記ブロックの一つである第1ブロックと、前記ブロックの一つであり、前記第1ブロックに隣接する第2ブロックとの少なくとも一方に対して前記非平行移動モデルが選択された場合、フィルタ処理を行うと判定する判定ステップと、前記判定ステップにおいて、前記フィルタ処理を行うと判定された場合に、前記第1ブロックの前記再構成画像と前記第2ブロックの前記再構成画像との境界に、当該境界の画像の歪みを低減するためのフィルタ処理を行うフィルタステップとを含む。
これによれば、当該画像符号化方法は、平行移動モデル以外の動き予測モデルが用いられた場合には、フィルタ処理を行うと判定する。これにより、適切に境界歪みを低減できるので、画質を向上できる。
例えば、前記判定ステップでは、(i)前記第1ブロックの予測画像を生成するために参照される第1参照領域と、前記第2ブロックの予測画像を生成するために参照される第2参照領域とが同じ参照画像に含まれる、(ii)前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接している、の条件が共に満たされているか否かを判定し、前記第1ブロックと前記第2ブロックとの少なくとも一方に対して前記非平行移動モデルが選択されており、かつ、前記条件のいずれかかが満たされていない場合、前記フィルタ処理を行うと判定し、前記条件が共に満たされている場合、前記フィルタ処理を行わないと判定してもよい。
これによれば、適切にフィルタ処理の実行の有無が決定されるので、画質を向上できる。
例えば、前記判定ステップでは、前記第1ブロックと前記第2ブロックとが垂直方向に隣接する場合と、水平方向に隣接する場合とで、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していることを、異なる演算方法を用いて判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記判定ステップでは、前記第1ブロックに対して選択された動き予測モデルと、前記第2ブロックに対して選択された動き予測モデルとが異なる場合、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していないと判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記判定ステップでは、前記第1参照領域の一辺と前記第2参照領域の一辺との距離が1画素未満であるか否かを判定し、前記距離が1画素未満である場合、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していると判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記非平行移動モデルは、回転、拡大、縮小、スキュー、及び反転の少なくとも一つを含む動き予測モデルであってもよい。
本発明の一態様に係る画像復号方法は、画像が符号化されることにより得られた符号化画像を復号する画像復号方法であって、前記画像に含まれるブロック毎に、平行移動モデルと、平行移動モデル以外の非平行移動モデルとを含む複数の動き予測モデルのうちいずれかを選択する選択ステップと、選択された動き予測モデルを用いて動き予測を行うことで各前記ブロックの予測画像を生成する予測ステップと、前記予測画像を用いて前記各ブロックの再構成画像を生成する再構成画像生成ステップと、前記ブロックの一つである第1ブロックと、前記ブロックの一つであり、前記第1ブロックに隣接する第2ブロックとの少なくとも一方に対して前記非平行移動モデルが選択された場合、フィルタ処理を行うと判定する判定ステップと、前記判定ステップにおいて、前記フィルタ処理を行うと判定された場合に、前記第1ブロックの前記再構成画像と前記第2ブロックの前記再構成画像との境界に、当該境界の画像の歪みを低減するためのフィルタ処理を行うフィルタステップとを含む。
これによれば、当該画像復号方法は、平行移動モデル以外の動き予測モデルが用いられた場合には、フィルタ処理を行うと判定する。これにより、適切に境界歪みを低減できるので、画質を向上できる。
例えば、前記判定ステップでは、(i)前記第1ブロックの予測画像を生成するために参照される第1参照領域と、前記第2ブロックの予測画像を生成するために参照される第2参照領域とが同じ参照画像に含まれる、(ii)前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接している、の条件が共に満たされているか否かを判定し、前記第1ブロックと前記第2ブロックとの少なくとも一方に対して前記非平行移動モデルが選択されており、かつ、前記条件のいずれかかが満たされていない場合、前記フィルタ処理を行うと判定し、前記条件が共に満たされている場合、前記フィルタ処理を行わないと判定してもよい。
これによれば、適切にフィルタ処理の実行の有無が決定されるので、画質を向上できる。
例えば、前記判定ステップでは、前記第1ブロックと前記第2ブロックとが垂直方向に隣接する場合と、水平方向に隣接する場合とで、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していることを、異なる演算方法を用いて判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記判定ステップでは、前記第1ブロックに対して選択された動き予測モデルと、前記第2ブロックに対して選択された動き予測モデルとが異なる場合、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していないと判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記判定ステップでは、前記第1参照領域の一辺と前記第2参照領域の一辺との距離が1画素未満であるか否かを判定し、前記距離が1画素未満である場合、前記第1参照領域と前記第2参照領域とが、隣接境界が一致するように隣接していると判定してもよい。
これによれば、第1参照領域と第2参照領域とが、隣接境界が一致するように隣接していることを、適切に判定できる。
例えば、前記非平行移動モデルは、回転、拡大、縮小、スキュー、及び反転の少なくとも一つを含む動き予測モデルであってもよい。
また、本発明の一態様に係る画像符号化装置は、画像を符号化する画像符号化装置であって、処理回路と、前記処理回路からアクセス可能な記憶装置とを備え、前記処理回路は、前記記憶装置を用いて、前記画像符号化方法を実行する。
これによれば、当該画像符号化装置は、平行移動モデル以外の動き予測モデルが用いられた場合には、フィルタ処理を行うと判定する。これにより、適切に境界歪みを低減できるので、画質を向上できる。
また、本発明の一態様に係る画像復号装置は、画像が符号化されることにより得られた符号化信号を復号する画像復号装置であって、処理回路と、前記処理回路からアクセス可能な記憶装置とを備え、前記処理回路は、前記記憶装置を用いて、前記画像復号方法を実行する。
これによれば、当該画像符号化復号は、平行移動モデル以外の動き予測モデルが用いられた場合には、フィルタ処理を行うと判定する。これにより、適切に境界歪みを低減できるので、画質を向上できる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
本実施の形態に係るデブロッキング処理装置100は、平行移動モデル以外の動き予測モデルが用いられた場合には、デブロッキング処理を行うと判定する。これにより、適切に境界歪みを低減できるので、画質を向上できる。
図2は、本実施の形態に係るデブロッキング処理装置100の機能構成を示すブロック図である。
本実施の形態に係るデブロッキング処理装置100は、再構成画像111(局所復号画像)と、予測情報114とを用いて、予測画像113を生成する。このデブロッキング処理装置100は、デブロッキング処理部101と、フレームメモリ102と、イントラ予測部103と、インター予測部104と、選択部105とを備える。
デブロッキング処理部101は、再構成画像111にデブロッキング処理(デブロッキングフィルタ処理)を行うことで、復号画像112を生成する。ここで、デブロッキング処理とは、ブロック境界の画像の歪みを低減するためのフィルタ処理である。
また、デブロッキング処理部101は、予測情報114を用いて、ブロック単位で、デブロッキング処理を実行するか、実行しないかを判定する。フレームメモリ102は、復号画像112を格納する。また、上記ブロックは、予測単位(PU)とも呼ばれる。
インター予測部104は、フレームメモリ102に格納されている復号画像112を参照画像として用いてインター予測を行う。また、インター予測部104は、N(Nは2以上の整数)種類の動き予測モデルのいずれかを用いてインター予測を行う。このインター予測部104は、各動き予測モデルに対応するN個の動き補償部106を備える。各動き補償部106は、対応する動き予測モデルを用いて動き補償を行うことで予測画像113を生成する。ここで、N個の動き予測モデルは、平行移動モデルと、平行移動モデル以外の非平行移動モデルとを含む。つまり、インター予測部104は、図3に示すように、少なくとも、平行移動モデルを用いる動き補償部106Aと、非平行移動モデルを用いる動き補償部106Bとを備える。
イントラ予測部103は、再構成画像111から予測画像113を生成するイントラ予測を行う。
予測情報114は予測方法を示す。具体的には、予測情報114は、イントラ予測及びインター予測の一方を示し、さらに、インター予測の場合に使用される動き予測モデル(平行移動モデル又は非平行移動モデル)を示す。
イントラ予測部103及びインター予測部104は、予測情報114で示される予測方法で予測画像113を生成する。
選択部105は、予測情報114で示される予測方法で生成された予測画像113を出力する。
次に、本実施の形態に係るデブロッキング処理部101の動作を説明する。図4は、デブロッキング処理部101によるデブロッキング処理の実行判定処理のフローチャートである。なお、図4に示す処理は、ブロック境界毎に実行される。また、ブロックは、再構成画像111が分割されたものであり、動き補償の処理単位(PU)である。また、以下では、隣接する2つのブロックP及びブロックQに対する処理を説明する。
まず、デブロッキング処理部101は、予測情報114を用いて、ブロックPとブロックQの少なくとも一方がイントラ予測で符号化されたブロックか否かを判定する(S201)。
また、デブロッキング処理部101は、ブロックPとブロックQとの少なくとも一方が非ゼロ係数を含み、かつ、ブロックPとブロックQとの境界が変換処理に用いられるブロックの境界と一致するか否かを判定する(S202)。なお、ここでの非ゼロ係数とは、例えば、予測誤差(予測残差信号)を変換及び量子化した後の変換係数(量子化係数)であり、値が0では無い変換係数である。なお、この判定には、変換及び量子化が行われた後の変換係数を参照する必要はなく、予測誤差が0又は十分に小さい場合、ブロックが非ゼロ係数を含まないと判定してもよい。また、変換処理に用いられるブロックは、予測誤差の直交変換及び量子化における処理単位であり、変換単位(TU)とも呼ばれる。
また、デブロッキング処理部101は、ブロックPとブロックQとで、インター予測(動き予測)で参照される参照画像(フレームメモリ102に格納されている復号画像112)が異なるか否かを判定する(S203)。なお、ここで参照画像が異なる場合とは、動き予測及び動き補償を行う対象の画像である対象画像において、ブロックPとブロックQとが少なくとも1つの異なる時間の画像を参照する場合である。
また、デブロッキング処理部101は、ブロックPとブロックQとの少なくとも一方の予測に、平行移動モデル以外の非平行移動モデルが用いられるか否かを判定する(S204)。言い換えると、デブロッキング処理部101は、ブロックPとブロックQとの少なくとも一方の予測を、平行移動モデルで表現できないか否かを判定する。ここで平行移動モデルで表現できる場合とは、ブロックの予測画像の生成に際して、参照する領域である参照ブロック(参照領域)のサイズが対象ブロックのサイズと同じであり、かつ、参照ブロックの画像を回転及び変形させないで用いる場合である。
また、デブロッキング処理部101は、ブロックPとブロックQとの動きベクトルの差の絶対値が1以上であるか否かを判定する(S205)。なお、ここで動きベクトルは、前述の平行移動モデルを用いる場合における、対象ブロックと参照ブロックとの相対位置を示す。また、2つの動きベクトルの差の絶対値が1以上とは、2つの参照ブロックが参照画像内で1画素以上離れていることを意味する。
以上のステップS201〜S205の全ての条件でNoの場合、デブロッキング処理部101は、ブロック境界にデブロッキング処理をしないと判定する(S208)。一方、ステップS201〜S205の少なくとも1つの条件でYesの場合には、続いて、デブロッキング処理部101は、ステップS206の判定を行う。
なお、このステップS201〜S205の判定の順序はこの順序以外であってもよいし、一部の判定が同時(並列)に行われてもよい。ただし、ステップS204、ステップS205の順に判定する場合、平行移動モデルである場合のみ、又は同じモデルで予測されている場合のみS205を判定することができ、さらに処理量の低減ができるという効果がある。
なお、それぞれの条件の意味を以下に示す。
(ステップS201)
イントラ予測が用いられる場合には、周囲の隣接する再構成画像を演算することにより予測画像が生成される。そのため、原画像(圧縮前の画像)と予測画像との差が大きい可能性が高い。このようにイントラ予測が行われるブロックでは、そのブロックの予測画像と、その周囲との境界において、人工的な歪みが発生しやすい。このため、デブロッキング処理部101は、イントラ予測が用いられる場合には、デブロッキング処理を行うと判定する。
(ステップS202)
非ゼロ係数が存在する場合、つまり、予測誤差が送られる場合には、量子化がおこなわれるため、変換処理のブロック境界には量子化歪みが発生しやすい。このため、デブロッキング処理部101は、非ゼロ係数が存在し、かつ、ブロックPとブロックQの境界が、変換処理のブロック境界と一致する場合には、デブロッキング処理を行うと判定する。
なお、デブロッキング処理部101は、ステップS201〜S203、及びS205の一部又は全てを行わなくてもよいし、これらの判定処理の一部或いは全ての代わりに、又はこれらの判定処理に加えて別の判定処理を行ってもよい。
例えば、デブロッキング処理部101は、ステップS201の代わりに、処理対象の画像信号が人工的な画像信号(例えば、コンピュータグラフィックス等)であるか否かを判定してもよい。この場合、デブロッキング処理部101は、処理対象の画像信号が人工的な画像信号である場合には、デブロッキング処理を行わないと判定する。
また、デブロッキング処理部101は、ステップS202の代わりに、処理対象の信号が高周波領域の信号であるか否かを判定してもよい。高周波領域の信号では、量子化歪みが視覚的に問題にならない可能性が高い。よって、デブロッキング処理部101は、処理対象の信号が高周波領域の信号である場合には、デブロッキング処理を行わないと判定する。
また、デブロッキング処理部101は、ステップS205において、1画素以外の閾値を用いてもよい。また、デブロッキング処理部101は、動きベクトルの差そのもの以外の情報を用いて、動きベクトルの差が十分に小さいと予測されるか否かを判定してもよい。例えば、デブロッキング処理部101は、画像特性を用いて、動きベクトルの差を予測してもよい。この場合、デブロッキング処理部101は、動きベクトルの差が十分に小さいと予測された場合、デブロッキング処理を行わないと判定する。
次に、上記のいずれかの条件でYesの場合、つまりまだデブロッキング処理を行わないと判定できていない場合の処理について説明する。
ステップS206では、デブロッキング処理部101は、ブロックPとブロックQとの画素値が平坦(画素値の変化が少ない)か否かを判定する。デブロッキング処理部101は、画素値が平坦ではなく、画素値の変動が大きい場合(S206でNo)には、デブロッキング処理を行わないと判定する(S208)。
ここで、画素変化が大きいブロック間の境界では、映像のばらつきが大きい。よって、デブロッキング処理を行うことにより境界部分だけが平坦になり、主観的に変な映像が生成される。これを抑制するために、デブロッキング処理部101は、画素値の変動が大きい場合には、デブロッキング処理を行わないと判定する。
画素値が平坦であると判定された場合(S206でYes)、デブロッキング処理部101は、ブロックPとブロックQとの境界にエッジがあるかどうかの判定をする(S207)。デブロッキング処理部101は、ブロック境界に既にエッジがある場合(S207でYes)、デブロッキング処理を行わないと判定する(S208)。これは、既にエッジがある部分にフィルタ処理を行うことで、エッジをボケさせないためである。
一方、エッジが無いと判定された場合(S207でNo)、デブロッキング処理部101は、デブロッキング処理を行うと判定する(S209)。
なお、ステップS206の判定は、一例として下記(式1)を用いて判定される。
|P20−2×P10+P00|+|P23−2×P13+P03|
+|Q20−2×Q10+Q00|+|Q23−2×Q13+Q03|
<β ・・・(式1)
ここで、P20、P10、P00、P23、P13、P03は、ブロックPの画素値である。Q20、Q10、Q00、Q23、Q13、Q03は、ブロックPの画素値である。
また、βは、量子化パラメータによって変動する値である。量子化パラメータが大きい場合、すなわち量子化誤差が大きくなる場合にはβは大きくなる。それにより、(式1)が成立しやすく(平坦であると判定されやすく)なり、デブロッキング処理を行うと判定される確率が高くなる。
また、デブロッキング処理を行わないと判定された場合(S208)、デブロッキング処理部101は、ブロックPとブロックQの境界にデブロッキング処理を行わない。また、デブロッキング処理を行うと判定された場合(S209)、デブロッキング処理部101は、ブロックPとブロックQの境界にデブロッキング処理を行う。
以下、本実施の形態で用いられる、平行移動モデル以外の非平行移動モデルについて説明する。
非平行移動モデルは、例えば、アフィン変換である。アフィン変換を示す式を(式2)に示す。
a=1、b=0、c=0、d=1の場合には、(式2)は平行移動モデルの式と同じになる。またアフィン変換は、回転、拡大、縮小、スキュー、及び反転といった変形ができる。下記に、動き予測モデルとして、平行移動モデルと、特定の非平行移動モデルとが同時に用いられる場合の例を示す。
回転の場合は(式3)のようにa、b、c、dが表現できる。この場合θで回転角度が表現される。
拡大及び縮小の場合は(式4)のようにa=Sx、b=0、c=0、d=Syが用いられる。
x軸方向のスキューの場合は(式5)のようにa=1、b=tanθ、c=0、d=1が用いられる。
y軸方向のスキューの場合は(式6)のようにa=1、b=0、c=tanθ、d=1が用いられる。
また、射影変換を含む場合は、アフィン変換の式では不十分なため、(式7)に示す変換式が用いられる。この場合において、上記の動き予測モデルに簡素化できない場合は、デブロッキング処理部101は、デブロッキング処理を行うと判定してもよい。
このように、非平行移動とは、回転、拡大、縮小、スキュー、又は反転等である。なお、非平行移動モデルでは、これらの変換の複数が組み合わされた変換でもよいし、これらの変換のいずれか又は複数と平行移動とが組み合わされた変換でもよい。つまり、非平行移動モデルは、回転、拡大、縮小、スキュー、及び反転の少なくとも一つを含む動き予測モデルである。
なお、上記説明では、デブロッキング処理部101は、非平行移動モデルが用いられるか否かに応じて、デブロッキング処理の有無を判定したが、ブロックPとブロックQとが隣接参照であるか否かに応じて、デブロッキング処理の有無を判定してもよい。
図5は、この場合のデブロッキング処理部101の動作のフローチャートである。図5に示す処理では、図4に示す処理に対して、ステップS203〜S205がステップS210に置き換えられている点が異なる。
ステップS210では、デブロッキング処理部101は、ブロックPとブロックQとが隣接参照であるか否かを判定する。デブロッキング処理部101は、ブロックPとブロックQとが隣接参照である場合(S210でYes)、デブロッキング処理を行わないと判定する(S208)。一方、デブロッキング処理部101は、ブロックPとブロックQとが隣接参照でない場合(S210でNo)、デブロッキング処理を行うと判定し、ステップS206へ進む。
図6は、隣接参照である場合の参照ブロックの関係を示す図である。また、図7は、隣接参照でない場合の参照ブロックの関係を示す図である。
隣接参照である場合とは、図6に示すように、ブロックPの参照ブロックとブロックQの参照ブロックとが同じ参照画像に含まれ、かつ、ブロックPの参照ブロックとブロックQの参照ブロックとが隣接境界が一致するように隣接している場合である。ここで、隣接境界が一致するとは、ブロックPの参照ブロックの一辺とブロックQの参照ブロックの一辺とが一致することである。
このような隣接参照の場合には、参照ブロックが隣接しているので境界歪みは発生し難い。よって、デブロッキング処理部101は、隣接参照の場合には、デブロッキング処理を行わないと判定する。
なお、ブロックPの参照ブロックの一辺とブロックQの参照ブロックの一辺とが一致するとは、この二辺が略一致する(近接する)場合も含む。例えば、ブロックPの一辺とブロックQの一辺とが一致する場合とは、この二辺の距離(例えば、二辺の距離の最大値)が1画素未満の場合であってもよい。
また、図7に示すように、ブロックPに対して非平行移動モデル(この例では回転)が用いられた場合には、ブロックPとブロックQとは隣接参照ではない。
また、図8は、非平行移動モデルが用いられた場合における隣接参照の例を示す図である。図8に示すように、非平行移動モデルが用いられた場合であっても、隣接参照の場合がある。このような場合には、デブロッキング処理を行う必要はないので、デブロッキング処理部101は、デブロッキング処理を行わないと判定する。
以下、隣接参照の判定処理(S210)の詳細を説明する。図9は、隣接参照判定処理のフローチャートである。
まず、デブロッキング処理部101は、ブロックPとブロックQとの参照画像が異なるか否かを判定する(S301)。参照画像が異なる場合(S301でYes)、デブロッキング処理部101は、隣接参照でないと判定する(S307)。
一方、参照画像が同じ場合(S301でNo)、デブロッキング処理部101は、ブロックPとブロックQとの少なくとも一方の予測に非平行移動モデルが用いられたか否かを判定する(S302)。
ブロックP及びブロックQの両方に平行移動モデルが用いられた場合(S302でNo)、デブロッキング処理部101は、ブロックPとブロックQとの動きベクトルの差の絶対値が1以上であるか否かを判定する(S303)。
差の絶対値が1以上の場合(S303でYes)、デブロッキング処理部101は、隣接参照でないと判定する(S307)。一方、差の絶対値が1未満の場合(S303でNo)、デブロッキング処理部101は、隣接参照であると判定する(S306)。
一方、ブロックPとブロックQとの少なくとも一方の予測に非平行移動モデルが用いられた場合(S302でYes)、デブロッキング処理部101は、ブロックPとブロックQとに用いられた動き予測モデルが異なるか否かを判定する(S304)。
具体的には、デブロッキング処理部101は、ブロックPとブロックQとの一方に平行移動モデルが用いられ、他方に非平行移動モデルが用いられている場合に、動き予測モデルが異なると判定する。さらに、デブロッキング処理部101は、ブロックPとブロックQとの両方に非平行移動モデル(例えば、アフィン変換)が用いられている場合でも、変換の種類(回転、拡大等)が異なる場合には、動き予測モデルが異なると判定する。
なお、デブロッキング処理部101は、非平行移動モデルの変換の種類の判定は行わず、ブロックPとブロックQとの両方に非平行移動モデルが用いられている場合には、動き予測モデルが同じであると判定してもよい。
動き予測モデルが異なる場合(S304でYes)、デブロッキング処理部101は、隣接参照でないと判定する(S307)。このように、動き予測モデルが異なる場合には、2つの参照ブロックが非連続である可能性が高い。よって、デブロッキング処理部101は、このような場合にはデブロッキング処理を行う。
一方、動き予測モデルが同じ場合(S304でNo)、ブロックP及びブロックQの動きが隣接参照となる所定の条件を満たすか否かを判定する(S305)。所定の条件を満たす場合(S305でYes)、デブロッキング処理部101は、隣接参照であると判定する(S306)。一方、所定の条件を満たさない場合(S305でNo)、デブロッキング処理部101は、隣接参照でないと判定する(S307)。
図10は、ブロックP及びブロックQに非平行移動モデルが用いられる場合の隣接参照の判定処理を説明するための図であり、隣接参照と判定する場合の例を示す図である。
図10に示すように、ブロックPの予測が回転角度θと平行移動との組み合わせの場合であって、ブロックQが右側隣接の場合は、ブロックQの予測が、ブロックPと同じ回転角度θであり、かつ図10に示す平行移動である場合には、隣接参照と判定される。ブロックQが下側隣接の場合は、ブロックQの予測が、ブロックPと同じ回転角度θ及び平行移動の場合に、隣接参照である判定される。
また、ブロックPの予測が拡大縮小と平行移動との組み合わせの場合、ブロックQが右側隣接、及び下側隣接の場合それぞれにおいて図10に示した条件が満たされる場合に、隣接参照であると判定される。
同様にx軸方向のスキュー及びy軸方向のスキューの場合も、図10に示した条件が満たされる場合に、隣接参照であると判定される。なお、図10に示すθ’は任意の角度を示す。つまり、θ’を0度と設定してもよい。この場合、そのブロックに対してはスキューが用いられなくてもよいという意味である。
なお、ここで示した動き例はそれぞれ異なる動き予測モデルとして扱ってもよいし、組み合わせてアフィン変換として扱ってもよい。
また、平行移動のみが用いられる場合では、デブロッキング処理の条件はブロックPとブロックQとが上下方向(垂直方向)に隣接していても、左右方向(水平方向)に隣接していても同一の条件が用いられる。一方、図10に示すように、本実施の形態では、デブロッキング処理の有無の判定では、ブロックPとブロックQとが垂直方向に隣接する場合と、水平方向に隣接する場合とで、異なる条件(異なる演算方法)を用いて、隣接参照が判定される。
このようにすることで、平行移動ではない動き予測モデルを含むインター予測の場合であっても、適切にデブロッキング処理の実行の有無を判定できる。これにより、フィルタをかけすぎることによる主観画質の劣化を抑制することができ、また、ブロック歪みを低減することができる。
ここで、図11に示すように、平行移動モデルでは、対象ブロックの座標が(x0,y0)Tであり、変位ベクトル(動きベクトル)が(dx,dy)Tである場合には、参照ブロックの座標は(x0+dx,y0+dy)Tで表される。
また、図12に示すように、アフィン変換では、対象ブロックの座標が(x0,y0)Tであり、アフィン動きモデルのベクトル記述の成分(動きベクトル)が(dx,dy,a1,a2,a3,a4)Tである場合には、参照ブロックの座標は(x0+dx+a1・x0+a2・y0,y0+dy+a3・x0+a4・y0)Tで表される。
ここで、ブロックPの動きベクトルが(dx,P,dy,P,a1,P,a2,P,a3,P,a4,P)Tであり、ブロックQの動きベクトルが(dx,Q,dy,Q,a1,Q,a2,Q,a3,Q,a4,Q)Tである場合、図4に示すステップS204及びS205の判定処理を、図13に示すステップS204A及びS205Aの演算により実現できる。
つまり、ステップS204Aでは、デブロッキング処理部101は、a1,P、a1,Q、a2,P、a2,Q、a3,P、a3,Q、a4,P、及びa4,Qの全てが0である場合(S204AでYes)、ブロックP及びブロックQの動き予測モデルが共に平行移動モデルであると判定し、そうでない場合(S204AでNo)、ブロックP及びブロックQの動き予測モデルの少なくもと一方が非平行移動モデルであると判定する。
また、ステップS205Aでは、デブロッキング処理部101は、dx,Pとdx,Qとの差分の絶対値、及び、dy,Pとdy,Qとの差分の絶対値の少なくとも一方が、1以上である場合(S205AでYes)、ブロックPとブロックQの動きベクトルの差が1以上と判定し、そうでない場合(S205AでNo)、ブロックPとブロックQの動きベクトルの差が1未満と判定する。
なお、本実施の形態に係るデブロッキング処理装置100は、画像が圧縮符号化された符号化信号(符号化画像)を復号する画像復号装置200に備えられる。図14は、本実施の形態に係る画像復号装置200の構成の一例を示すブロック図である。
画像復号装置200は、画像が圧縮符号化されることで得られた符号化信号211を復号することで復号画像112を生成する。例えば、画像復号装置200には、符号化信号211がブロック毎に復号対象信号として入力される。画像復号装置200は、入力された復号対象信号に、可変長復号、逆量子化及び逆変換を行うことで、復号画像112を生成する。
図14に示すように、画像復号装置200は、エントロピー復号部201と、逆量子化逆変換部202と、加算器203と、デブロッキング処理部101と、フレームメモリ102と、イントラ予測部103と、インター予測部104と、選択部105とを備える。
ここで、デブロッキング処理部101と、フレームメモリ102と、イントラ予測部103と、インター予測部104と、選択部105とは、上述したデブロッキング処理装置100に含まれる各処理部と同一である。
エントロピー復号部201は、符号化信号211(符号化ビットストリーム)を可変長復号することで、量子化係数212を復元する。なお、これらの復号処理は、画像が分割されたブロック単位で行われ、このブロック単位のデータが順次エントロピー復号部201に入力される。また、エントロピー復号部201は、符号化信号211から予測情報114(動きデータ)を取得し、取得した予測情報114をインター予測部104に出力する。
逆量子化逆変換部202は、エントロピー復号部201によって復元された量子化係数212を逆量子化することで、変換係数を復元する。そして、逆量子化逆変換部202は、復元した変換係数を逆変換することで、予測誤差213(予測残差信号)を復元する。
加算器203は、復元された予測誤差314と予測画像113とを加算することで、再構成画像111を生成する。
デブロッキング処理部101は、再構成画像111にデブロッキング処理を行うことで、復号画像112を生成する。復号画像112は、復号信号として画像復号装置200の外部に出力される。なお、このデブロッキング処理に前述のデブロッキング処理を実行するかしないかの判定処理も含まれる。
フレームメモリ102は、動き補償に用いられる参照画像を格納するためのメモリである。具体的には、フレームメモリ102は、復号画像112を格納する。
イントラ予測部103は、イントラ予測を行うことで、予測画像(イントラ予測画像)を生成する。具体的には、イントラ予測部103は、再構成画像111における復号対象ブロック(入力信号)の周囲の画像を参照してイントラ予測を行うことで、イントラ予測画像を生成する。
インター予測部104は、エントロピー復号部201から出力された予測情報114に基づいて動き補償を行うことで、予測画像(インター予測画像)を生成する。
選択部105は、イントラ予測画像及びインター予測画像のいずれかを選択し、選択した画像を予測画像113として加算器203に出力する。
以上の構成により、本実施の形態に係る画像復号装置200は、圧縮符号化された符号化画像データを復号する。
また、デブロッキング処理装置100は、画像を符号化する画像符号化装置に備えられてもよい。図15は、本実施の形態に係る画像符号化装置300の構成を示すブロック図である。図15に示す画像符号化装置300は、入力画像311を符号化することで符号化信号211を生成する。この画像符号化装置300は、減算器301と、変換量子化部302と、エントロピー符号化部303と、逆量子化逆変換部304と、加算器305と、デブロッキング処理部101と、フレームメモリ102と、イントラ予測部103と、インター予測部104Aと、選択部105とを備える。
ここで、デブロッキング処理部101と、フレームメモリ102と、イントラ予測部103と、選択部105とは、上述したデブロッキング処理装置100に含まれる各処理部と同一である。また、インター予測部104Aは、インター予測部104の構成要素に加え、動き検出部306を備える。
減算器301は、入力画像311と予測画像113との差分である予測誤差312を算出する。
変換量子化部302は、空間領域の予測誤差312を変換することで、周波数領域の変換係数を生成する。例えば、変換量子化部302は、予測誤差にDCT(Discrete Cosine Transform)変換を行うことで、変換係数を生成する。さらに、変換量子化部302は、生成された変換係数を量子化することで量子化係数313を生成する。
エントロピー符号化部303は、量子化係数313を可変長符号化することで符号化信号211を生成する。また、エントロピー符号化部303は、動き検出部306によって検出された予測情報114(例えば、動きベクトル及び選択された動き予測モデルを示す情報)を符号化し、符号化された予測情報114を符号化信号211に含めて出力する。
逆量子化逆変換部304は、量子化係数313を逆量子化することで変換係数を復元する。さらに、逆量子化逆変換部304は、復元した変換係数を逆変換することで予測誤差314を復元する。なお、復元された予測誤差314は、量子化により情報が失われているので、減算器301が生成する予測誤差312とは一致しない。すなわち、復元された予測誤差314は、量子化誤差を含んでいる。
加算器305は、予測誤差314と予測画像113とを加算することで、再構成画像111(ローカル復号画像)を生成する。
デブロッキング処理部101は、生成された再構成画像111にデブロッキング処理を行うことで復号画像112を生成する。
フレームメモリ102は、動き補償に用いられる参照画像を格納するためのメモリである。具体的には、フレームメモリ102は、復号画像112を格納する。
イントラ予測部103は、イントラ予測を行うことで、予測画像(イントラ予測画像)を生成する。具体的には、イントラ予測部103は、加算器305によって生成された再構成画像111における、符号化対象ブロック(入力信号)の周囲の画像を参照してイントラ予測を行うことでイントラ予測画像を生成する。
動き検出部306は、入力画像311と、フレームメモリ102に格納されている参照画像との間の動きを示す予測情報114(例えば、動きベクトル及び選択された動き予測モデルを示す情報)を検出する。
動き補償部106は、検出された予測情報114に基づいて動き補償を行うことで予測画像(インター予測画像)を生成する。
選択部105は、イントラ予測画像及びインター予測画像のいずれかを選択し、選択した画像を予測画像113として減算器301及び加算器305に出力する。
以上の構成により、本実施の形態に係る画像符号化装置300は、画像データ(入力画像311)を圧縮符号化することで符号化信号211を生成する。
以上のように、本実施の形態に係る画像復号装置200及び画像符号化装置300は、図16に示す処理を行う。
まず、画像復号装置200の動作を説明する。
画像復号装置200は、画像に含まれるブロック毎に、平行移動モデルと、平行移動モデル以外の非平行移動モデルとを含む複数の動き予測モデルのうちいずれかを選択する。具体的には、画像復号装置200は、符号化信号211に含まれる予測情報114で示される動き予測モデルを選択する。そして、画像復号装置200は、選択された動き予測モデルを用いて動き予測を行うことで各ブロックの予測画像113を生成する(S401)。
次に、画像復号装置200は、予測画像113を用いて、符号化画像(符号化信号211)を復号することで各ブロックの再構成画像111を生成する(S402)。具体的には、画像復号装置200は、符号化画像をエントロピー復号(可変長復号)することで量子化係数212を生成する。次に、画像復号装置200は、量子化係数212を逆量子化及び逆変換することで予測誤差213を生成する。次に、画像復号装置200は、予測誤差213と予測画像113とを加算することで再構成画像111を生成する。
次に、画像復号装置200は、上記ブロックの一つである第1ブロックと、上記ブロックの一つであり、第1ブロックに隣接する第2ブロックとの少なくとも一方に対して非平行移動モデルが選択されているか否かを判定する(S403)。画像復号装置200は、第1ブロック及び第2ブロックの少なくとも一方に対して非平行移動モデルが選択されている場合(S403でYes)、フィルタ処理(デブロッキング処理)を行うと判定する。一方、画像復号装置200は、第1ブロック及び第2ブロックの少なくとも一方に対して非平行移動モデルが選択されていない場合、つまり、第1ブロック及び第2ブロックの両方に対して平行移動モデルが選択されている場合(S403でNo)、フィルタ処理(デブロッキング処理)を行わないと判定する。
フィルタ処理を行うと判定された場合(S403でYes)、画像復号装置200は、第1ブロックの再構成画像111と第2ブロックの再構成画像111との境界に、当該境界の画像の歪みを低減するためのフィルタ処理(デブロッキング処理)を行う(S404)。また、フィルタ処理を行わないと判定された場合(S403でNo)、画像復号装置200は、第1ブロックの再構成画像111と第2ブロックの再構成画像111との境界に、当該境界の画像の歪みを低減するためのフィルタ処理(デブロッキング処理)を行わない。
以下、画像符号化装置300の動作を説明する。
画像符号化装置300は、画像に含まれるブロック毎に、平行移動モデルと、平行移動モデル以外の非平行移動モデルとを含む複数の動き予測モデルのうちいずれかを選択する。具体的には、画像符号化装置300は、動き予検出を行うことで使用する動き予測モデルを決定する。例えば、画像符号化装置300は、符号化効率が最も高い(符号化コストが最も低い)動き予測モデルを選択する。そして、画像符号化装置300は、選択された動き予測モデルを用いて動き予測を行うことで各ブロックの予測画像113を生成する(S401)。
次に、画像符号化装置300は、予測画像113を用いて、入力画像311を符号化及び復号することで各ブロックの再構成画像111を生成する(S402)。具体的には、画像符号化装置300は、入力画像311と予測画像113との差分である予測誤差312を算出する。次に、画像符号化装置300は、予測誤差312を変換及び量子化することで量子化係数313を算出する。次に、画像符号化装置300は、量子化係数313を逆量子化及び逆変換することで予測誤差314を生成する。次に、画像符号化装置300は、予測誤差314と予測画像113とを加算することで再構成画像111を生成する。
次に、画像符号化装置300は、上記ブロックの一つである第1ブロックと、上記ブロックの一つであり、第1ブロックに隣接する第2ブロックとの少なくとも一方に対して非平行移動モデルが選択されているか否かを判定する(S403)。画像符号化装置300は、第1ブロック及び第2ブロックの少なくとも一方に対して非平行移動モデルが選択されている場合(S403でYes)、フィルタ処理(デブロッキング処理)を行うと判定する。一方、画像符号化装置300は、第1ブロック及び第2ブロックの少なくとも一方に対して非平行移動モデルが選択されていない場合、つまり、第1ブロック及び第2ブロックの両方に対して平行移動モデルが選択されている場合(S403でNo)、フィルタ処理(デブロッキング処理)を行わないと判定する。
フィルタ処理を行うと判定された場合(S403でYes)、画像符号化装置300は、第1ブロックの再構成画像111と第2ブロックの再構成画像111との境界に、当該境界の画像の歪みを低減するためのフィルタ処理(デブロッキング処理)を行う(S404)。また、フィルタ処理を行わないと判定された場合(S403でNo)、画像符号化装置300は、第1ブロックの再構成画像111と第2ブロックの再構成画像111との境界に、当該境界の画像の歪みを低減するためのフィルタ処理(デブロッキング処理)を行わない。
以上のように、本実施の形態に係る画像復号装置200及び画像復号方法、並びに画像符号化装置300及び画像符号化方法は、デブロッキング処理の実行の有無を適切に判定できる。
なお、上記の説明では動き補償(動き予測)の種類によってそれぞれの判定方法を説明したが、これに限らない。例えば回転変換θを段階的に定義し、それぞれに予測モード番号を割り当てることにより、これらが一致しないとデブロッキング処理を実行するように定義することにより、判定処理に必要な処理量を削減することができる。同様に、回転変換以外の拡大及び縮小に関しても拡大率(縮小率)をモードとして定義することが可能である。
また、本実施の形態では、様々な動き予測モードが用いられる場合について説明したがこれに限らず、上記動き予測モードの一部のみが用いられてもよい。
また、アフィン変換又は射影変換の式が定義されており、その式で用いられる動き予測パラメータに基づいて、平行移動モデルであるか否かが判定されてもよい。
また、平行移動モデルではない場合には、即座にデブロッキング処理を行うと判定してもよい。これらにより、フィルタ処理をかけすぎたり、必要なところにフィルタがかからないことを極力減らすことができる。また、判定に必要な処理を削減することができる。
なお、上記の変更を施しても、本実施の形態の特徴を維持することができる。
なお、複数の動き予測モデルに対して、どの条件が満たされる場合にデブロッキング処理を実行するかを示す情報が、符号化信号に含まれてもよい。例えば、この情報は、複数のブロックに対して共通に用いられる情報を格納するヘッダ(例えばスライスヘッダ、ピクチャヘッダ、シーケンスヘッダ、VUI、又はSEI)に格納されてもよい。これにより、例えば、処理量が限定されている環境では判定処理を軽くし、多くの処理量が使える場合には、画質を優先することができる。
なお、動き情報(予測情報114)を伝送する方法としては、隣接ブロックの動き情報の差分値を伝送する方法が知られている。本実施の形態のように、異なる動きモデルが用いられる場合には、例えば、以下の方法を用いて動き情報の差分値を算出できる。対象ブロックの動き予測モデルと、対象ブロックに隣接する隣接ブロックの動き予測モデルとが異なる場合、同じ要素の差分値と、異なる要素の情報とで構成される情報を伝送する。これにより、少ない情報量で動き情報を伝送できる。例えば、対象ブロックで、平行移動と回転と拡大との組合せが用いられ、隣接ブロックで、平行移動と回転とが用いられている場合には、平行移動のパラメータの差分と、回転のパラメータの差分と、拡大のパラメータそのものとが伝送される。
以上、実施の形態に係る画像復号装置及び画像符号化装置ついて説明したが、本発明は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る画像復号装置又は画像符号化装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、画像復号装置及び画像符号化装置は、処理回路(processing circuitry)と、当該処理回路に電気的に接続された(当該処理回路からアクセス可能な)記憶装置(storage)とを備える。処理回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、処理回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。処理回路は、記憶装置を用いて、上記実施の形態に係る画像復号方法又は画像符号化方法を実行する。
さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、上記の画像復号方法又は画像符号化方法に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、本発明の一つ又は複数の態様に係る画像復号装置及び画像符号化装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。
(実施の形態2)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図17は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図17のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局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の例に限らず、図18に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図19は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)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の構成を図20に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図21に光ディスクである記録メディア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の構成は例えば図19に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図22Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図22Bを用いて説明する。携帯電話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トランスポートストリーム形式のデジタルストリームである。
図23は、多重化データの構成を示す図である。図23に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(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が、それぞれ割り当てられている。
図24は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図25は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図25における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図25の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図26は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには図26下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号は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時間の情報を持つ。
図27はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図28に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図28に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図29に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図30に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図31に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などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図32は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図31のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図31の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態3で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態3で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図34のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図33は、本実施の形態の方法を実施するステップを示している。まず、ステップ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などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図35Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、デブロッキング・フィルタに特徴を有していることから、例えば、デブロッキング・フィルタについては専用の復号処理部ex901を用い、それ以外の逆量子化、エントロピー復号、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図35Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。