(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、画像符号化方法及び画像復号方法に関し、以下の問題が生じることを見出した。
まず、HEVCにおける画像符号化装置及び画像復号装置について説明する。
画像符号化装置へ入力される映像信号は、各々がフレーム(ピクチャ)と呼ばれる複数の画像を含む。各フレームは二次元行列状に配置された複数の画素を含む。ハイブリッド映像符号化に基づく上述の全ての標準規格では、個々の映像フレームは、各々が複数の画素を含む複数のブロックに分割される。このブロックのサイズは、例えば、画像の内容によって変更される。また、ブロックごとに異なる符号化方法を用いることができる。例えば、HEVCにおいて、このブロックの最大サイズは64×64画素である。この最大サイズは、最大符号化単位(LCU)と称される。LCUは、帰納的に、4つの符号化単位(CU)に分割することができる。
H.264/MPEG−4 AVCにおいては、マクロブロック(通常16×16画素のブロック)単位で符号化が行われる。このマクロブロックはサブブロックに分割される場合もある。
典型的には、ハイブリッド映像符号化における符号化ステップには、空間及び/又は時間予測が含まれる。つまり、空間的に隣接したブロック又は時間的に隣接したブロックを用いて、即ち、符号化済み映像フレームを用いて、各符号化対象ブロックが予測される。次に、符号化対象ブロックと、予測結果との差分である残差ブロックが算出される。次に、残差ブロックは、空間(画素)ドメインから周波数ドメインへ変換される。この変換の目的は、入力ブロックの相関性を低下させることである。
次に、変換により得られた変換係数が量子化される。この量子化は不可逆圧縮である。また、得られた量子化係数は、エントロピー符号化によって可逆圧縮される。また、符号化映像信号を再構築するために必要な補助情報が符号化され、符号化映像信号とともに出力される。この情報は、例えば、空間予測、時間予測、又は/及び量子化に関する情報である。
図1は、H.264/MPEG−4 AVC及び/又はHEVCに準拠した画像符号化装置100の一例を示す図である。
減算器105は、入力画像信号101の符号化対象ブロックと、対応する予測信号181(予測ブロック)との差分である残差信号106(残差ブロック)を算出する。この予測信号181は、予測部180による時間予測又は空間予測により生成される。予測に用いられる予測タイプは、フレーム毎又はブロック毎に変更される可能性がある。時間予測を用いて予測されたブロック及び/又はフレームはインター符号化されたと称され、空間予測を用いて予測されたブロック及び/又はフレームは、イントラ符号化されたと称される。
時間予測を用いる予測信号は、メモリに格納されている符号化及び復号済みの画像を用いて導出される。空間予測を用いる予測信号は、メモリに格納されている符号化及び復号済みの隣接ブロックの境界画素値を用いて導出される。また、イントラ予測方向の数は、符号化単位のサイズに応じて決定される。
残差信号106は、予測誤差又は予測残差とも呼ばれる。変換部110は、この残差信号106を変換することで変換係数111を生成する。量子化部120は、変換係数111を量子化することで量子化係数121を生成する。エントロピー符号化部190は、格納するデータ量さらに削減し、かつ可逆的に送信するために、量子化係数121をエントロピー符号化する。例えば、エントロピー符号化は、可変長符号化である。また、符号語の長さは発生確率に基づいて決定される。
以上の処理により符号化信号191(符号化ビットストリーム)が生成される。
また、画像符号化装置100は、復号画像信号(再構築画像信号)を得るための復号部を有する。具体的には、逆変換部130は、量子化係数121を逆量子化及び逆変換することで残差信号131を生成する。この残差信号131は、量子化ノイズとも称される量子化誤差の影響により、元の残差信号106とは厳密には異なる。
次に、加算器140は、残差信号131と予測信号181とを加算することで復号画像信号141を生成する。このように、画像符号化装置と画像復号装置との互換性を保つため、画像符号化装置と画像復号装置との両方において、符号化され復号された画像信号を用いて予測信号181が生成される。
また、量子化により、復号画像信号141には量子化ノイズが重畳される。ブロック単位での符号化が行われるため、重畳されたノイズはブロックごとに異なることが多い。これにより、特に強い量子化が行われた場合は、復号画像信号のブロック境界が目立つことになる。このようなブロッキングノイズは、人間の視覚認識において画質が劣化しているように見える。このブロッキングノイズを削減するため、デブロッキングフィルタ150は、復号画像信号141にデブロッキングフィルタ処理を行う。
例えば、H.264/MPEG−4 AVCにおけるデブロッキングフィルタ処理では、領域ごとに、当該領域に適したフィルタ処理が選択される。例えば、ブロッキングノイズが大きい場合は、強い(狭帯域)ローパスフィルタが用いられ、ブロッキングノイズが小さい場合は、弱い(広帯域)ローパスフィルタが用いられる。このローパスフィルタの強度は、予測信号181及び残差信号131に応じて決定される。このデブロッキングフィルタ処理により、ブロックのエッジが平滑化される。これにより、復号画像信号の主観的画質が改善する。また、フィルタ処理済みの画像が次の画像の動き補償予測に用いられる。よって、このフィルタ処理により予測誤差も削減されるので、符号化効率を改善することができる。
適応的ループフィルタ160は、デブロッキングフィルタ処理の後の復号画像信号151に、サンプル適応オフセット処理、及び/又は適応的ループフィルタ処理を行うことで復号画像信号161を生成する。上述したように、デブロッキングフィルタ処理は主観的画質を改善する。一方で、サンプル適応オフセット(Sample Adaptive Offset:SAO)処理及び適応的ループフィルタ(Adaptive loop filter:ALF)処理は、画素単位の信頼性(客観的品質)の改善を目的とする。
SAOは、近接画素に応じて画素にオフセット値を加える処理である。ALFは、圧縮によって生じる画像の歪みを補償するために用いられる。例えば、ALFは、復号画像信号151と入力画像信号101との平均二乗誤差(MSE)が最小化されるように決定されたフィルタ係数を有するウィーナフィルタである。例えば、ALFの係数は、フレーム単位で算出及び送信される。また、ALFはフレーム全体(画像)又は局所領域(ブロック)に適用されてもよい。また、フィルタ処理を行う領域を示す補助情報が、ブロック単位、フレーム単位、又は四分木単位で送信されてもよい。
インター符号化ブロックを復号するには、符号化され復号された画像の一部を参照フレームバッファ170に格納しておく必要がある。参照フレームバッファ170は、復号画像信号161を復号画像信号171として保持する。予測部180は、動き補償予測を用いてインター予測を行う。具体的には、まず、動き推定器が、符号化及び復号済みの映像フレームに含まれるブロックのうち対象ブロックに最も類似するブロックを探索する。この類似ブロックが予測信号181として用いられる。対象ブロックと類似ブロックとの間の相対的なずれ(動き)が動きデータとして画像復号装置へ送られる。この動きデータは、例えば、符号化映像データとともに提供される補助情報に含まれる三次元の動きベクトルである。ここで三次元とは、空間二次元と時間一次元とを含む。
なお、予測精度を最適化するため、1/2画素解像度又は1/4画素解像度などの空間サブピクセル解像度の動きベクトルが用いられてもよい。空間サブピクセル解像度の動きベクトルは、実存する画素値が存在しない、復号フレーム内の空間的位置、つまりサブピクセルの位置を示す。よって、動き補償予測を行うためには、画素値の空間補間が必要である。この補間処理は、例えば、補間フィルタ(図1に示す予測部180に含まれる)により達成される。
イントラ符号化モード及びインター符号化モードの両方において、入力画像信号101と予測信号181との差分である残差信号106が変換及び量子化されることで量子化係数121が生成される。一般的に、変換部110は、この変換に、二次元離散コサイン変換(DCT)又はその整数版などの直交変換を使用する。これにより自然映像の相関を効率的に削減できる。また、一般に高周波成分よりも低周波成分が画質にとってより重要なので、高周波成分よりも低周波成分により多くのビットが使用される。
エントロピー符号化部190は、二次元配列の量子化係数121を一次元配列に変換する。典型的には、いわゆるジグザグスキャンが用いられる。ジグザグスキャンでは、二次元配列の左上隅にあるDC係数から右下隅にあるAC係数まで、所定の順序で二次元配列が走査される。通常、エネルギーは低周波に相当する二次元行列の係数の左上部分に集中するため、ジグザク走査を行うと、後半の値がゼロになる傾向がある。これにより、エントロピー符号化の一部として、又はその前処理として、ランレングス符号を用いることで、効率的な符号化を実現できる。
H.264/MPEG−4 AVC及びHEVCでは、複数種類のエントロピー符号化が用いられる。シンタックス要素の中には固定長で符号化されるものもあるが、ほとんどのシンタックス要素が可変長符号化される。特に、予測残差の符号化にはコンテキスト適応可変長符号が用いられ、他のシンタックス要素の符号化には別の様々な整数符号が用いられる。また、コンテキスト適応算術符号化(CABAC)が用いられる場合もある。
可変長符号により、符号化済みビットストリームを可逆圧縮できる。しかしながら、符号語は可変長であるため、符号語を連続して復号しなければならない。つまり、エントロピー符号化をリスタート(初期化)することなく、又は、復号の際の最初の符号語(開始点)の位置を個別に示すことなく、先行の符号語を符号化又は復号する前に、後の符号語を符号化又は復号することはできない。
所定の確率モデルに基づく算術符号化によりビット列が1つの符号語に符号化される。所定の確率モデルは、CABACの場合の映像シーケンスの内容に応じて決定される。よって、符号化対象のビットストリームの長さが長いほど、算術符号化及びCABACはより効率的に行われる。つまり、ビット列に適用されるCABACは、より大きなブロックにおいてより効率的であるといえる。各シーケンスの先頭でCABACがリスタートされる。つまり、各映像シーケンスの先頭で確率モデルが既定値又は所定値で初期化される。
H.264/MPEG−4、H.264/MPEG−4 AVC、及び、HEVCは、ビデオ符号化層(VCL)及びネットワーク抽象化層(NAL)の2つの機能層を有する。ビデオ符号化層により符号化機能が提供される。NALは、チャネルを越える送信及び記憶装置への格納などの用途に応じて、NALユニットと称される標準単位に情報要素をカプセル化する。この情報要素は、例えば、符号化予測誤差信号、及び、映像信号の復号に必要な情報である。映像信号の復号に必要な情報とは、予測タイプ、量子化パラメータ及び動きベクトルなどである。
NALユニットには、圧縮映像データと関連情報とを含むVCL NALユニットと、映像シーケンス全体に関連するパラメータセットなどの追加データをカプセル化するnon−VCLユニットと、復号精度の改善に用いることが可能な追加情報を提供するための付加拡張情報(SEI)とがある。
例えば、non−VCLユニットにはパラメータセットが含まれる。パラメータセットとは、一定の映像シーケンスの符号化及び復号に関する複数のパラメータのセットのことである。例えば、パラメータセットには、映像シーケンス(ピクチャシーケンス)全体の符号化及び復号に関連するパラメータを含むシーケンスパラメータセット(SPS)がある。
シーケンスパラメータセットは、シンタックス要素を含むシンタックス構造を有する。各スライスヘッダに含まれるシンタックス要素であるpic_parameter_set_idにより、参照先のピクチャパラメータセット(PPS)が指定される。また、PPSに含まれるシンタックス要素であるseq_parameter_set_idにより、参照先のSPSが指定される。このように、SPSに含まれるシンタックス要素は、符号化映像シーケンス全体に適用される。
PPSは、映像シーケンスに含まれる1枚のピクチャの符号化及び復号に適用されるパラメータを定義したパラメータセットである。PPSは、シンタックス要素を含むシンタックス構造を有する。各スライスヘッダに含まれるシンタックス要素であるpic_parameter_set_idにより、参照先のピクチャパラメータセット(PPS)が指定される。このように、SPSに含まれるシンタックス要素は、符号化ピクチャ全体に適用される。
よって、PPSよりもSPSの追跡を続ける方が容易である。なぜなら、PPSが各ピクチャに対して変化するのに対して、SPSは、数分又は数時間にも及ぶ可能性のある映像シーケンス全体に対して一定であるからである。
VPSは、最上位階層のパラメータであり、複数の映像シーケンスに関する情報を含む。VPSに含まれる情報は、ビットレート及び映像シーケンスのtemporal_layering構造などである。また、VPSは、層間の依存性(異なる映像シーケンス間の依存性)に関する情報を含む。よって、VPSは、複数の映像シーケンスに関する情報としてみなすことができ、VPSにより、各映像シーケンスの概要が分かる。
図2は、H.264/MPEG−4 AVC又はHEVC映像符号化規格に準拠した画像復号装置200の一例を示すブロック図である。
画像復号装置200に入力された符号化信号201(ビットストリーム)は、エントロピー復号部290に送られる。エントロピー復号部290は、符号化信号201を復号することで、量子化係数と、動きデータ及び予測モードなどの復号に必要な情報要素とを取得する。また、エントロピー復号部290は、得られた量子化係数を、二次元行列を得る目的で逆走査することで量子化係数291を生成し、量子化係数291を逆変換部230に出力する。
逆変換部230は、量子化係数291を逆量子化及び逆変換することで残差信号231を生成する。残差信号231は、量子化ノイズがなく、誤差が生じていない画像符号化装置に入力された入力画像信号から予測信号を減算することで得られる差分に相当する。
予測部280は、時間予測又は空間予測を用いて予測信号281を生成する。通常、復号済み情報要素はさらに、イントラ予測の場合には予測タイプなどの、また、動き補償予測の場合には動きデータなどの予測に必要な情報を含む。
加算器240は、空間ドメインにおける残差信号231と、予測部280で生成された予測信号281とを加算することで、復号画像信号241を生成する。デブロッキングフィルタ250は、復号画像信号241にデブロッキングフィルタ処理を行うことで復号画像信号251を生成する。適応的ループフィルタ260は、復号画像信号251にサンプル適応オフセット処理、及び適応的ループフィルタ処理を行うことで復号画像信号261を生成する。この復号画像信号261は、表示画像として出力されるとともに、復号画像信号271として参照フレームバッファ270に格納される。復号画像信号271は、後続のブロック又は画像の時間又は空間予測に使用される。
H.264/MPEG−4 AVCと比較すると、HEVCは、符号化及び復号の高度な並列処理を補助する機能を有する。H.264/MPEG−4 AVCと同様に、HEVCでは、フレームを複数のスライスに分割することができる。ここで、各スライスは、走査順で連続する複数のLCUを含む。H.264/MPEG−4 AVCにおいて、スライスはそれぞれ、個々に復号可能であり、スライスを跨いだ空間予測は行われない。よって、スライス単位で、並列処理が可能である。
しかしながら、スライスはかなり大きなヘッダを有しており、また、スライス間で依存性がないため、圧縮の効率が低下する。また、CABAC符号化は、小さなデータブロックに行われる場合に効率性が損なわれる。
これに対して、より効率的な並列処理を可能にするため、波面並列処理(WPP)が提案されている。WPPでは、ピクチャの各LCU行(以下、単に「行」とも呼ぶ)の1番目のLCU(先頭のLCU)のリセットに用いるCABAC確率モデルとして、前行の2番目のLCUの処理後の確率モデルが用いられる。これにより、ブロック間の依存性が維持される。よって、複数のLCU行の並列復号が可能になる。また、各行の処理は、前行に対して、LCU2つ分遅延する。
また、LCU行の復号を開始する位置である開始点を示す情報がスライスヘッダに含まれて信号伝達される。なお、WPPの詳細については、非特許文献1に記載されている。
並列化改善のための別の手法としてタイルを用いる方法がある。フレーム(ピクチャ)は、複数のタイルに分割される。各タイルは、長方形であり、複数のLCUを含む。タイル間の境界は、行列状にピクチャを分割するように設定される。また、複数のタイルは、ラスタスキャン順に処理される。
また、各タイルの境界において全ての依存性が失われる。CABACなどのエントロピー符号化も、各タイルの先頭でリセットされる。なお、デブロッキングフィルタ処理とサンプル適応オフセット処理のみが、タイル間の境界を跨いで適用される。よって、複数のタイルを並列に符号化又は復号できる。なお、タイルの詳細については、非特許文献2及び非特許文献3に記載されている。
また、スライスの概念を、H.264/MPEG−4 AVCにおけるスライスの本来の目的であった誤り耐性よりも、並列化に適した概念にするため、依存スライス及びエントロピースライスの概念が提案されている。つまり、HEVCでは、通常スライス、依存スライス、及び、エントロピースライスの3つのスライスが用いられる。
通常スライスは、H.264/MPEG−4 AVCにより既に知られているスライスのことである。通常スライス間では空間予測はできない。つまり、スライス間の境界を跨いだ予測はできない。言い換えると、別のスライスを参照することなく、通常スライスは符号化される。このようなスライスの復号を別々に行えるように、CABACは各スライスの先頭でリスタートされる。
また、フレームの先頭には、通常スライスが用いられる。つまり、各フレームは通常スライスから開始しなければならない。通常スライスは、スライスデータの復号に必要なパラメータを含むヘッダを有する。
エントロピースライスは、親スライスとエントロピースライスとの間で空間予測が可能なスライスのことである。ここで、親スライスとは、例えば、エントロピースライスの直前の通常スライスである。親スライス及びエントロピースライスの解析は、独立して行われる。
また、スライスデータの解析は、スラスヘッダのシンタックス要素を除いては、親スライスとエントロピースライスとで独立して行われる。つまり、エントロピースライスのCABAC復号処理には、親スライスのスライスヘッダに含まれるシンタックス要素が必要である。例えば、このシンタックス要素は、スライスデータがフィルタリングパラメータを含むかどうかを示す切り替え情報を含む。スライスデータにフィルタリングパラメータが存在する場合、CABAC復号部はその情報を抽出する。存在しない場合、CABAC復号部は、フィルタリングデータを想定しない。つまり、通常スライスのスライスヘッダを解析後、CABAC復号部は、親スライスとエントロピースライスとを並列して処理することができる。
しかしながら、親スライスは、例えば通常スライスでもよく、エントロピースライスの画素値の再構築に必要とされる。また、エントロピースライスが独立解析できるよう、スライスの先頭でCABACもリスタートされる。
エントロピースライスに、通常スライスのスライスヘッダより短いスライスヘッダを用いることができる。スライスヘッダには、通常スライスのヘッダ内で送信される情報に関する符号化パラメータサブセットが含まれる。エントロピースライスのヘッダに含まれない情報は、親スライスのヘッダからコピーされる。
依存スライスは、CABACがリスタートされないエントロピースライスと類似している。CABACのリスタートとは、コンテキストテーブル(確率テーブル)をデフォルト値に初期化する処理と、算術符号化処理又は算術復号処理における終端処理(ターミネート処理)とを含む。
親スライスのヘッダは、依存スライスの解析及び/又は復号に用いられる。よって、親スライスなしに依存スライスを解析することはできないため、親スライスを取得していない場合、依存スライスを復号できない。親スライスは通常、符号化順において依存スライスの先行スライスであり、完全なスライスヘッダを含むスライスである。このことは、エントロピースライスの親スライスでも同じである。
一般的に、エントロピースライスは、他のスライスのヘッダパラメータに依存しているとみなすことができるため、依存スライス及びエントロピースライスの両方に本発明を適用することが可能である。
以上のように、依存スライス及びエントロピースライスは、スライスの符号化順における直前のスライスのスライスヘッダ(依存スライスのヘッダに含まれていない情報)を用いる。このルールは帰納的に適用される。対象依存スライスが依存する親スライスが参照可能であると認識される。参照には、スライス間の空間予測及び共通CABAC状態などの利用が含まれる。依存スライスは、直前のスライスの終端で生成されるCABACコンテキストテーブルを用いる。このように、依存スライスは、CABACテーブルをデフォルト値に初期化せず、作成済みのテーブルを継続して利用する。また、エントロピースライス及び依存スライスに関しては、非特許文献3に記載されている(例えば、第73頁の「dependent_slice_flag」等を参照)。
WPPが用いられる場合、依存スライスがLCU行の先頭で始まり、かつ、当該先頭のLCUの右上のLCUを含むスライスが参照可能と示されていれば、依存スライスは、右上のLCUのCABACコンテキストテーブルを用いる。
HEVCは、いくつかのプロファイルを提示する。プロファイルは、特定のアプリケーションに適する画像符号化装置及び画像復号装置の設定を含む。例えば、「主要プロファイル」は、通常スライス及び依存スライスのみを含み、エントロピースライスを含まない。
上述したように、符号化スライスは、NALユニットにカプセル化され、さらに、例えばリアルタイムプロトコル(RTP)にカプセル化され、最終的にインターネットプロトコル(IP)パケットにカプセル化される。このプロトコルスタック又は別のプロトコルスタックにより、インターネット又は固有ネットワークなどのパケット指向型ネットワークにおいて、符号化映像の送信が可能になる。
典型的に、ネットワークは少なくとも1つ以上のルータを含み、ルータは超高速で動作する専用ハードウェアで構成される。ルータは、IPパケットを受信してIPパケットのヘッダを解析し、適宜IPパケットをそれぞれの宛先に転送する機能を有する。ルータは、多くのソースからの通信を処理する必要があるので、ロジックを制御するパケットはなるべくシンプルでなければならない。ルータは、少なくとも、IPパケットを転送する経路を決定するため、IPヘッダに含まれる宛先アドレスフィールドを確認する必要がある。サービス品質(QoS)に対するサポートをさらに提供するため、スマート(メディア・アウェア)ルータは、IPヘッダ、RTPヘッダ、及びNALUヘッダなどのネットワーク・プロトコルヘッダにおける専用フィールドを追加的に確認する。
映像符号化に関する上記の記載から分かるように、依存スライス及びエントロピースライスなど、並列処理のために定義された異なるタイプのスライスは、データが欠落した場合の画質の低下に対する重要性が異なる。親スライスなしに、依存スライスを解析及び復号することはできない。なぜなら、依存スライスの先頭で、エントロピー符号化部又はエントロピー復号部をリスタートすることができないからである。よって、画像又は映像を再構築するうえで、親スライスはより重要であるといえる。
HEVCにおいて、依存スライス及びエントロピースライスは、依存性の補足的な側面として、スライス間の依存性(フレーム内の依存性)を取り入れている。この依存性は、フレーム内の唯一の依存性ではない。
また、タイルごとにスライスの並列処理を行うため、算術符号化部及び算術復号部のコンテキストは、デフォルトの設定により、又は、符号化済み或いは復号済みスライスに基づいて、決定される。しかしながら、ヘッダの依存性と、算術符号初期化の依存性とは異なるので、並列処理及び依存スライスのメカニズムの目的に反して、遅延が生じたり複雑さが増す可能性がある。
依存スライスは、WPP又はタイルなどの並列処理ツールとともに用いることができる。また、依存スライスを用いることで、符号化損失を引き起こすことなく伝送遅延を削減することが可能なウェイブフロント(サブストリーム)を生成することができる。
また、依存スライスではCABACがリスタートされないため、依存スライスをCABACサブストリームの開始点として用いることができる。また、独立した解析の開始点を示すため、当該開始点を示す情報をビットストリームに含めて伝達してもよい。特に、2つ以上のCABACサブストリームを通常スライス又は依存スライスにカプセル化する場合、サブストリーム毎のバイト数を用いて明示的に開始点を信号伝達する。ここで、サブストリームは、開始点により別々に解析可能なストリームの一部分を示す。さらに、各依存スライスはNALユニットのヘッダを必要とするため、開始点の「マーカー」として依存スライスを用いることができる。つまり、そのようなマーカーに対する開始点を信号伝達できる。
信号により明示的に開始点を通知する方法と、依存スライスを介して開始点をマーキングする方法とは同時に用いることができる。ここで、各NALユニットの開始点(各NALヘッダの先頭)が特定できる必要がある。なお、特定方法に関しては、任意の方法を用いることができる。例えば、以下の2つの方法を用いることができる。
一つ目の方法は、各NALヘッダの先頭に、例えば、3バイトのスタートコードを挿入する方法である。二つ目の方法は、各NALユニットを別々のパケットにパケット化する方法である。また、スライスの依存性のため、スライスヘッダのサイズを縮小してもよい。
これらの方法により、エントロピースライスに対して並列CABAC解析が可能になる。これは、エントロピースライスの先頭でCABACが必ずリスタートされるからである。CABACの並列処理では、連続する画素構築処理の後の並列CABAC解析により障害を克服できる。具体的には、WPP並列化ツールにより、各LCU行の復号処理を1つの処理コアにより実現できる。なお、各コアへのLCU行の割り当ては異なってよい。例えば、1つのコアに2行が割り当てられてもよいし、2つのコアに1行が割り当てられてもよい。
図3Aは、複数の行に分割されたピクチャ300を示す図である。各行は、複数の最大符号化単位(LCU)を含む。行301(Wavefront1)及び行302(Wavefront2)は、並列に処理される対象である。図3AのCABAC状態(CABAC states)の矢印で示されるように、行301において最初の2つのLCUが復号された後、行302の処理が始まる。また、行301の最初の2つのLCUを符号化又は復号した後のCABAC状態が、行302のCABAC初期化の際に用いられる。よって、行302の処理は、行301の最初の2つのLCUの処理が終了した後に開始可能である。つまり、2つの処理コアの間でLCU2つ分の遅延が存在する。
図3Bは、WPPを用いた依存スライスの使用例を示す図である。図3Bに示すピクチャ310は、行311〜314を含む。ここで、行311(Wavefront1)、行312(Wavefront2)、及び行313(Wavefront3)は、別々のコアで処理される。
依存スライスは、遅延を改善できるWPPを形成する。依存スライスには完全なスライスヘッダがない。また、開始点(又は、上述したようなルールで知られる、依存スライスの開始点)が分かっていれば、他のスライスとは独立して依存スライスを復号できる。また、依存スライスは、符号化損失を生ずることなく、低遅延アプリケーションにも適したWPPを形成できる。
サブストリーム(LCU行)をスライスにカプセル化する通常のケースでは、確実に、エントロピー符号化及び復号を並列に行うためには明確な開始点をスライスヘッダに挿入する必要がある。そのため、スライスの最後のサブストリームが完全に符号化されてはじめて、スライスの伝送の準備ができる。また、スライス中の全てのサブストリームの符号化が完了してはじめてスライスヘッダは完成する。つまり、スライス全体の処理が終わるまで、RTP/IP層のパケットフラグメンテーションを介してスライスの先頭の伝送を開始できない。
しかしながら、依存スライスが用いられる場合には、依存スライスを開始点マーカーとして利用できるため、開始点の明示的な信号による通知は必要ない。したがって、符号化損失なく通常スライスを多くの依存スライスに分割することができる。また、カプセル化されたサブストリームの符号化が完了するとすぐに(又は、パケットフラグメンテーションの場合は、それよりも早く)、依存スライスを伝送することができる。
また、依存スライスは、空間予測の依存性を弱めない。さらに、依存スライスは解析依存性も弱めない。なぜなら、対象依存スライスの解析には通常、先行スライスのCABAC状態を必要とするからである。
依存スライスが許可されない場合、各LCU行をスライスとすることができる。そのような構成は伝送遅延を改善するが、同時に、上述したように大きな符号化損失が生ずることになる。
フレーム(ピクチャ)全体を1つのスライスにカプセル化する場合を想定する。この場合、並列解析を可能にするため、スライスヘッダにサブストリーム(LCU行)の開始点を信号により伝達する必要がある。これによりフレームレベルで伝送遅延が発生する。つまり、フレーム全体を符号化した後、ヘッダを修正する必要がある。ピクチャ全体を1つのスライスにカプセル化すること自体は、伝送遅延を悪化させない。例えば、符号化が完全に終わる前に、スライスの一部の伝送を開始してもよい。しかしながら、WPPを用いる場合、開始点を記すためにスライスヘッダを後で修正する必要がある。したがって、スライス全体の伝送を遅延させる必要がある。
このように、依存スライスの使用により、遅延を削減することができる。図3Bに示されるように、ピクチャ310は、通常スライスである行311、依存スライスである行312、313及び314に分割される。各行が1つの依存スライスである場合、符号化損失なく、1つの行の伝送を遅延させることができる。これは、依存スライスが、空間依存を弱めず、かつCABACエンジンをリスタートしないからである。
図4A及び図4Bは、CABAC初期化の別の例を示す図である。図4Aは、WPPを用いない場合のCABACの初期化が示されている。また、WPP及びタイルの両方が用いられていない。また、通常スライス及び依存スライスを一緒に用いることは認められる。
依存スライス(3)は、通常スライス(2)からヘッダをコピーする。つまり、通常スライス(2)は、依存スライス(3)の親スライスである。依存スライス(3)は、通常スライス(2)の終端で生成されたコンテキストテーブルを用いる。依存スライス(3)は、通常スライス(1)ではなく、通常スライス(2)に依存する。つまり、通常スライス(1)と依存スライス(3)との間には、空間予測は存在しない。
図4Bは、WPPを用いる場合のCABACの初期化を示す図である。通常スライス、依存スライス、及び、WPPを一緒に用いることは認められている。
依存スライス(3)は、通常スライス(2)のヘッダをコピーする。依存スライス(3)は、通常スライス(1)の2番目のLCUの終端で生成されたコンテキストテーブルを用いることが予想される。しかしながら、スライス(2)が通常スライスであるため、スライス(1)の2番目のLCUは参照できないことが示される。つまり、スライス(1)は、符号化順において依存スライスの直前の先行スライスではないため、参照されない。
しかし、スライス(2)は、スライス(3)及び(4)の参照スライスとして用いられる。つまり、スライス(3)の復号を開始する際、CABAC状態はデフォルト値に初期化される必要がある(図4Bに、点線の矢印で示されている)。依存スライス(4)は、上述したようなWPPの条件に従う右上の第2のLCUの後のCABAC状態(実線の矢印)を用いる。
図5は、現在のHEVC参照モデル(HM8.0)に準拠するスライスヘッダのシンタックス例を示す図である。スライスヘッダ320は、対象スライスが依存スライスであるか、通常スライスであるかを示すシンタックス要素dependent_slice_flagを含む。
図5の行321から分かるように、dependent_slice_flagが0と同等である場合、ヘッダはスライスヘッダ情報を含む。つまり、スライスが完全なヘッダを有する。そうでない場合、ヘッダはスライスヘッダ情報を含まない。つまり、上述したように、依存スライス及びエントロピースライスは、完全なスライスヘッダを持たず、先行の通常スライスのヘッダを参照する。
並列処理をサポートするため、開始点が後に信号で伝えられる。エントロピー符号化部又はエントロピー復号部がリスタートされない場合でも、この開始点を用いて、開始点間の映像ストリーム(サブストリーム)の一部に対し、並列復号を独立して行うことができる。上述したように、依存スライス、通常スライス、及び、エントロピースライスに対しても、開始点がマークされる。
HEVCにおいて、いくつかの並列処理ツールがある。上述したように、このツールは、WPP、依存スライス、エントロピースライス、及びタイルである。しかしながら、これらのツールは互換性がないこともあるので、これらを組み合わせた利用には制限がある。一般的に、タイルとスライスとを一緒に用いることは認められている。
ただし、主要プロファイルにおいて、1つのスライスを1以上の整数個のタイルに分割しなければならず、また、1つのタイルを1以上の整数個のスライスに分割しなければならないという制限がある。典型的には、この制限は特定のプロファイル(又は、プロファイルの特定のレベル)に適用される。この制限の目的は、ハードウェア実行の複雑さを低減することである。
PPSのentropy_coding_sync_enabled_flagが1と同等であり(つまり、WPPが使用され)、スライスに含まれる1番目の符号化ブロックが、タイルの符号化ツリーブロックで構成される行の1番目の符号化ツリーブロックの1番目の符号化ブロックでない場合、ビットストリームが規格に適合する条件は、スライスの最後の符号化ブロックが、スライスの1番目の符号化ブロックと同じ符号化ツリーブロック行に属することである。符号化ツリーは、LCUの構造、及び、LCUをそれぞれさらに4ブロックへ帰納的に分割することを示す。つまり、WPPが可能である場合、そして、対象LCU行の先頭からスライスが開始されない場合、スライスは、対象LCU行の終端又はそれより前で終了しなければならない。また、並列処理手段だけでなくHEVCシンタックスに関する詳細も、非特許文献3に記載されている。
この制限を、図6を用いて説明する。図6に示すピクチャ330は、通常スライスであるスライス331、332及び333を含む。スライス331及び332は、1つのLCU行に含まれる。スライス333は、複数のLCU行(この例では3行)にまたがっているため、許可されないスライスである。上記の制限に従い、スライス333は、第1LCU行の終端で終わらなければならない。
図7は、WPPを用いる場合の、許可されるスライス構造を有するピクチャ340を示す図である。ピクチャ340は、通常スライスであるスライス341、342及び343と、依存スライスであるスライス344とを含む。これらのスライス341、342及び343は、1行目のLCU行に含まれる。スライス344は、次の2行を含む。
スライス344は依存スライスであるため、スライス344に対するCABAC初期化は、他のスライス341、342及び/又は343に依存する。スライス342及び343の何れかが図7に示されるように通常スライスである場合、スライス344はデフォルトのCABAC状態に初期化される。そうでない場合は、WPPテーブルが用いられる。つまり、対象行の上のLCU行の2番目のLCUの処理後のCABAC状態が初期化に用いられる。
この例では、図4B及び上述したCABAC初期化の関連記載において述べたように、依存スライス344に対するCABACは、予め定められたデフォルトのCABAC状態を用いて初期化される。
このように、CABAC初期化は、複数の先行スライスに基づく。よって、対象スライスの処理、特に解析については、複数の他のスライスに依存する。具体的には、対象スライスの先行スライスの種類に応じて、CABACコンテキストがデフォルト値及びWPP値のどちらで初期化されるか決定される。このように、先行スライスを利用可能かどうかが確認され、対象スライスに適用する初期化方法が決定される。つまり、かなり複雑な順序の処理が必要である。以下、これについて詳細に説明する。
第1のスライス341が少なくとも2つのLCUを有するので、最初の2つのLCUを符号化又は復号した後のCABAC状態を参照することは可能である。
また、スライス342又はスライス343が失われた場合、スライス344を正確に復号することはできない。なぜなら、スライス342又はスライス343の種類が分からないため、CABAC初期化できないからである。つまり、2つの先行スライスに関する情報のみが欠落し、スライス344を正しく取得できた場合であっても、スライス344に対するCABACの初期化ができないため、正しく取得できたスライス344のデータを捨てることになる。よって、スライス344に対し、誤り隠蔽が必要になる。これにより、不完全な誤り隠蔽による歪みが原因となり画質が低下する可能性がある。
ここで、スライスヘッダにおいて、シンタックス要素のほとんど(これらは主に、特定のフィルタリング操作等の制御の切り替えである)は、フレームに含まれる全てのスライスに対し決定される必要がある。また、中にはスライスごとに変更可能なシンタックス要素もあるが、画像符号化装置によるほとんどの処理では、フレーム全体に対し決められた制御パラメータが全て維持される。よって、誤り隠蔽する方法として以下の方法を用いることができる。この方法では、失われたスライスが依存スライスであったのか、通常スライスであったのかという情報のみが必要とされる。
また、順番が乱れてパケットが到着する場合、復号遅延は悪化する。つまり、パケットの並び替えが予想される場合には、復号遅延が悪化する可能性がある。これは、WPPの基本的な目的である、依存スライスにより超低遅延を提供することと矛盾する。
図8は、CABAC初期化処理の別の例を示す図である。図8では、図7に示されるスライスの構造を想定している。図8に示すピクチャ350は、スライス351とスライス354とを含む。スライス351は、通常スライスであり、フレーム中の1番目のスライスであり、4つのLCUを含む。フレームの先頭において、つまり、スライス351の先頭において、CABACはデフォルト状態値(ゼロ状態)に初期化される。なお、複数のデフォルト状態が存在してもよく、この場合、複数のデフォルト状態から、一つのデフォルト状態が選択される。なお、デフォルト状態とは、算術符号の確率モデルの所定値のことである。
依存スライス354に属するデータを取得しても、欠落又はエラーによりスライス342及びスライス343(図7参照)のデータがない場合は、スライス354を復号することは不可能である。なぜなら、上述したように、スライス342及び343の情報なしに、CABACエンジンを初期化することはできないからである。
図9は、依存スライス354が取得された際に行われる、初期化方法の決定処理のフローチャートである。言い換えると、このフローチャートは、CABAC初期化の、2つ以上のスライスへの依存の仕方を示す。
スライス(4)(依存スライス354)に対して以下の条件が設定されることが想定される。WPPが可能である。SPSのdependent_slice_enabled_flagが1に設定されている。スライス(4)の位置が(式1)を満たす。
slice_address % numLCUinRow = 0 ・・・(式1)
ここで、「%」は、モジュロ演算(整数割り算の余り)である。パラメータnumLCUinRowは、ピクチャ350の1行あたりのLCUの数を示す。よって、(式1)の条件は、行の先頭で満たされる。パラメータnumLCUinRowは、SPSの設定から導出できる。
まず、スライス(4)が依存スライスであるか否かが判定される(S101)。スライス(4)が依存スライスでない場合(S101でNo)、デフォルトの初期化が行われる。
図8に示すように、スライス(4)が依存スライスである場合(S101でYes)、iが3に設定される(S102)。つまり、スライス(4)の直前のスライス(3)がスライスiに設定される。
次に、スライスiが、スライス(4)の1行上から開始しているか否かが判定される(S103)。ここでは、iが3に設定されているため、スライスiは、処理対象の依存スライス(スライス(4))の直前のスライス(3)である。
スライスiが、スライス(4)の1行上から開始していない場合(S103でNo)、WPPの初期化(WPPテーブルを用いた初期化)が行われる(S107)。
一方、スライスiが、スライス(4)の1行上から開始している場合(S103でYes)、つまり図8に示すケースの場合、スライスiが依存スライスであるか否かが判定される(S104)。
スライスiが依存スライスでない場合(S104No)、次に、スライスiの開始位置が分析される。具体的には、slice_address % numLCUinRowが2より小さいか否かが判定される(S106)。つまり、スライスiの開始位置が、行先頭又は2番のLCUであるかが判定される。
slice_address % numLCUinRowが2より小さい場合(S106でYes)、WPPの初期化が行われる(S107)。一方、slice_address % numLCUinRowが2以上の場合(S106でNo)、デフォルトの初期化が行われる(S108)。
また、スライスiが依存スライスである場合(S104でYes)、スライスiの開始位置が分析される。具体的には、slice_address % numLCUinRowが3より小さいか否かが判定される(S105)。つまり、スライスiの開始位置が、行先頭、2番、又は3番目のLCUであるかが判定される。
slice_address % numLCUinRowが3より小さい場合(S105でYes)、WPPの初期化が行われる(S107)。一方、slice_address % numLCUinRowが3以上の場合(S105でNo)、初期化は行われず、インデックスiが1減少する(S109)。つまり、この例では、対象スライス(スライス(4))の2つ前のスライス(2)がスライスiに設定される。そして、スライス(2)に対してステップS103以降の処理が行われる。また、スライス(2)に対しても同様の判定が行われた場合には、次に、スライス(1)がスライスiに設定される。
図10は、ピクチャ360を示す図である。ピクチャ360は5つのスライス361〜365を含む。スライス361は通常スライスであり、1行目全体を含む。スライス362は、依存スライスであり、2行目全体を含む。3行目は、依存スライス363及びスライス364を含む。スライス365は依存スライスであり、4行目全体を含む。
以下では、スライス364が失われた場合、又はスライス364が遅延した場合において、スライス364が依存スライスである場合、及びスライス364が通常スライスである場合の各ケースについて検討する。また、ここでは、スライス363が少なくとも2つのLCUを有する。
スライス364が失われた場合、画像復号装置は、スライス364の種別を判別できない。失われたスライス364が依存スライスの場合、再構築処理において、少しの誤差で、スライス365及びそれ以降のスライスの復号を継続することは可能である。なぜなら、図8及び9を用いて説明したように、スライス365は、スライス363の2番目のLCUのCABAC状態を用いるからである。よって、CABAC初期化処理ではエラーが生じない。しかしながら、スライス365がスライス364からの空間予測を用いるため、画素再構築処理ではエラーが発生する可能性がある。
一方で、失われたスライス364が通常スライスである場合、スライス365を復号できない。なぜなら、シンタックス要素の中には、失われたスライス364のスライスヘッダの情報を用いるものがあるかもしれないからである。つまり、通常スライス364が依存スライス365の親スライスであり、依存スライス365の解析及び復号に親スライスの情報が必要であるからである。
失われたスライス364におけるスライスの種別が分からない場合、失われたスライス364が通常スライスである場合に起こりうる間違った復号を避けるため、画像復号装置は復号可能なスライス365を捨てることになる。これは、正しくスライス365のデータを取得できた場合でもスライス365を捨てることになるので非効率的である。さらに、スライス365に続く依存スライスも全て捨てる必要がある。
スライス364が通常スライスである場合、スライス365の復号のため、CABACエンジンがデフォルトのCABAC値に初期化される(図9のS101でNoの場合を参照)。よって、スライス365はスライス363に依存しない。また、スライス363とスライス365との間の空間予測も行われない。このように、スライス365の開始位置においてCABACがデフォルト値に初期化されるため、依存スライス365は通常スライスと類似する。
しかしながら、通常スライスは完全なスライスヘッダを有している。一方で、スライス365は、短いスライスヘッダのみを有し、先行の通常スライスのスライスヘッダにより設定されるパラメータに依存する。つまり、スライス365が依存スライスである場合、ヘッダのサイズを小さくできるという利点があるものの、この利点はそれほど大きくない。一方で、スライス365が通常スライスである場合には、スライス365を復号することができる。このように、上記ケースでは、スライス365を依存スライスに設定するよりも、通常スライスに設定するほうが利点が大きかったと考えられる。
しかしながら、WPPにおいて、依存スライスは、損失に対するロバスト性を確実にすることが目的ではなく、超低遅延でのWPP操作を可能にすることを目的としている。一方で、リアルタイムのアプリケーションなどネットワークを越えた超低遅延アプリケーションの場合には、パケット損失及びパケットの並び替えが予想される。このような場合には、最終的にスライス364が取得できれば、スライス365を復号することはできる。しかしながら、少なくとも遅延の悪化及びパケットの損失を引き起こすことになる。よって、損失の多い環境においては、WPPは最適ではない状態で行われることになる。
図11は、WPPを用いる場合のCABAC初期化に関連する別の課題を示すための図であり、ピクチャ370を示す図である。ピクチャ370は、4つのスライス371〜374を含む。
スライス371は通常スライスであり、スライス372は依存スライスである。ここで、スライス371は少なくとも2つのLCUを有する。ピクチャ370の1行目は、スライス371及び372を含む。ピクチャ370の2行目は、依存スライスであるスライス373及び374を含む。
この場合、画像符号化装置は、少なくとも2つのプロセッサコアを利用することが想定される。つまり、WPPを使用する場合、画像符号化装置は、2つのLCU行を並列に符号化及び解析する。よって、スライス372が利用可能になる随分前に、スライス373が利用可能になる。
しかしながら、スライス373に対するCABAC初期化はスライス372に依存しているため、スライス373の復号を開始できない。よって、行間における符号化又は復号の開始遅延を、1つのLCU行全体より小さくすることはできない。これは、2つのLCUまで遅延を小さくするというWPPの目的に矛盾する。
図11に示されるようなスライスの符号化及び伝送の並列処理について、以下で説明する。プロセッサコア又はプロセッサなどの2つの処理部は、各行の1番目のスライス(スライス371及びスライス373)を同時に符号化する。符号化が終了すると、符号化済みスライス371及び373は、パケット番号(packet_id)がそれぞれ0と4のパケットにカプセル化される。ここでは、スライス372及び可能であれば別のNALUのために、小さな番号を確保するため、パケット番号4が選択される。
スライス372の符号化が完了すると、スライス372は、パケット番号1のパケットにカプセル化され伝送される。また、欠落パケット番号2及び3がパケットの欠落と判定されないよう、対応するパケット番号2と3、及び、ダミー(フィラー)データを有する2つのNALユニットが生成される。
HEVCにおいて、これは、filler_data SEIメッセージ、又は、フィラーデータ用に確保した所定のNALユニットタイプを用いることにより達成される。このように、パケットIDがNALユニット毎に1つずつ増加する必要がある場合、フィラータイプNALUがその差を埋めるために用いられる。
対象行の初期化は、その上の行の2番目のLCUに依存する。また、2番目のLCUの後ろにスライスを挿入した場合、CABAC初期化の決定に影響を与えるので問題となる。この分析及び問題に基づき、本発明は、WPP及び依存スライスの利用のより効率的な関係を導くための手法を提供する。WPPの効率性を維持するため1行に対するCABAC初期化が別の行に依存するという状況は避けるべきである。
本発明の一態様に係る画像復号方法は、画像が、各々が複数の符号化単位を含む複数のスライスに分割されて符号化された符号化信号を含むビットストリームを復号する画像復号方法であって、前記符号化信号を復号する復号ステップを含み、前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、前記画像は、各々が複数の符号化単位を含む複数の行を含み、通常スライスが第1行の先頭以外から始まる場合、当該第1行の次の第2行は依存スライスから始まらない。
これによれば、第2行の先頭のスライスが、第1行の先頭以外のスライスを参照するケースの発生を除外できるので、並列処理及び依存スライスを共に利用する際の効率性を改善できる。
例えば、前記復号ステップでは、前記第1行及び前記第2行を並列復号し、前記第2行の復号を開始する際に、前記第1行におけるスライス構造を示す分割情報を参照せずに、前記第2行を復号してもよい。
例えば、前記復号ステップでは、前記第2行の算術復号は、前記第1行の2番目の符号化単位が算術復号された後のコンテキストを用いて初期化されてもよい。
例えば、前記画像復号方法は、さらに、スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダから取得するステップを含んでもよい。
例えば、前記画像の先頭スライスは通常スライスであり、他の全てのスライスは依存スライスであってもよい。
例えば、各スライスは、1以上の行の全てを含んでもよい。
例えば、前記依存スライスの算術復号は、当該依存スライスにスライスヘッダが用いられる親スライスのコンテキストを用いて初期化されてもよい。
例えば、前記画像復号方法は、さらに、前記依存スライスが有効である場合に、ピクチャの分割が制限されていることを示す制限インジケータを前記ビットストリームから取得するステップを含んでもよい。
また、本発明の一態様に係る画像符号化方法は、画像を、各々が複数の符号化単位を含む複数のスライスに分割して符号化することでビットストリームを生成する画像符号化方法であって、前記画像を複数のスライスに分割する分割ステップと、分割された複数のスライスを符号化する符号化ステップとを含み、前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、前記画像は、各々が複数の符号化単位を含む複数の行を含み、前記分割ステップでは、通常スライスが第1行の先頭以外から始まる場合、当該第1行の次の第2行が依存スライスから始まらないように、前記画像を複数のスライスに分割する。
これによれば、第2行の先頭のスライスが、第1行の先頭以外のスライスを参照するケースの発生を除外できるので、並列処理及び依存スライスを共に利用する際の効率性を改善できる。
例えば、前記分割ステップでは、画像復号装置において前記第1行及び前記第2行を並列復号する場合において、当該画像復号装置が前記第2行の復号を開始する際に、前記第1行におけるスライス構造を示す分割情報を参照せずに、前記第2行を復号できるように前記画像を前記複数のスライスに分割してもよい。
例えば、前記符号化ステップでは、前記第2行の算術符号化は、前記第1行の2番目の符号化単位が算術符号化された後のコンテキストを用いて初期化されてもよい。
例えば、前記画像符号化方法は、さらに、スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダに埋め込むステップを含んでもよい。
例えば、前記画像の先頭スライスは通常スライスであり、他の全てのスライスは依存スライスであってもよい。
例えば、各スライスは、1以上の行の全てを含んでもよい。
例えば、前記依存スライスの算術符号化は、当該依存スライスにスライスヘッダが用いられる親スライスのコンテキストを用いて初期化されてもよい。
例えば、前記画像符号化方法は、さらに、前記依存スライスが有効である場合に、ピクチャの分割が制限されていることを示す制限インジケータを前記ビットストリームに埋め込むステップを含んでもよい。
また、本発明の一態様に係る画像復号装置は、画像が、各々が複数の符号化単位を含む複数のスライスに分割されて符号化された符号化信号を含むビットストリームを復号する画像復号装置であって、前記符号化信号を復号する復号部を備え、前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、前記画像は、各々が複数の符号化単位を含む複数の行を含み、通常スライスが第1行の先頭以外から始まる場合、当該第1行の次の第2行は依存スライスから始まらない。
これによれば、第2行の先頭のスライスが、第1行の先頭以外のスライスを参照するケースの発生を除外できるので、並列処理及び依存スライスを共に利用する際の効率性を改善できる。
また、本発明の一態様に係る画像符号化装置は、画像を、各々が複数の符号化単位を含む複数のスライスに分割して符号化することでビットストリームを生成する画像符号化装置であって、前記画像を複数のスライスに分割する分割部と、分割された複数のスライスを符号化する符号化部とを備え、前記複数のスライスの各々は、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる通常スライスと、復号に別のスライスのスライスヘッダに含まれる情報が用いられる依存スライスとのいずれかであり、前記画像は、各々が複数の符号化単位を含む複数の行を含み、前記分割部は、通常スライスが第1行の先頭以外から始まる場合、当該第1行の次に符号化された第2行が依存スライスから始まらないように、前記画像を複数のスライスに分割する。
これによれば、第2行の先頭のスライスが、第1行の先頭以外のスライスを参照するケースの発生を除外できるので、並列処理及び依存スライスを共に利用する際の効率性を改善できる。
また、本発明の一態様に係る画像符号化復号装置は、前記画像符号化装置と、前記画像復号装置とを備える。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
本実施の形態1に係る画像符号化方法及び画像復号方法では、CABAC初期化を明示するインジケータを追加する。
図12は、実施の形態1に係るスライスヘッダのシンタックスを示す図である。スライスヘッダ380は、新たなシンタックス要素「entropy_default_initialization_flag」を有する新たな行381を含む。
このentropy_default_initialization_flagは、所定値に設定された場合に、スライスのCABACがCABACデフォルト(所定)値で初期化されることを示すインジケータである。このフラグは、スライスがデフォルトCABAC値で初期化されることを示す「1」などの第1の値、及び、初期化が別の方法で行われることを示す「0」などの第2の値を有する、1ビットのインジケータである。なお、「1」及び「0」の値の割り当ては入れ替えてもよい。
初期化決定の「別の方法」は、先行スライスの値に基づく初期化など所定の方法であってもよい。しかしながら、「別の方法」は、図9に示されるフローと類似する別の決定フローを含んでもよく、これにより、デフォルトCABAC値による初期化方法も導く可能性がある。
本実施の形態に係る画像復号装置は、少なくとも部分的に算術符号で符号化される画像スライスを含む符号化映像シーケンスのビットストリームを復号する。当該画像復号装置は、スライスの算術復号の確率モデルが所定値で初期化されるか否かを示す初期化インジケータを、前記スライスのビットストリームデータから抽出する解析部と、前記初期化インジケータに従い、前記所定値で算術復号用の前記確率モデルを初期化するか否かを制御する制御部と、算術復号を行うことにより、前記スライスを復号する算術復号部とを備える。
例えば、算術符号は、HEVCで定義されるようなコンテキスト適応算術符号であってもよい。しかしながら、本発明はこれに限定されない。
所定値とは、画像符号化装置及び画像復号装置に知らされたデフォルト値のことであり、符号化されたコンテンツにより変化することはない。
この初期化インジケータは、好ましくは、1ビットフラグのことを指し、1ビットフラグでは、「1」は算術復号の確率モデルが所定値で初期化されることを示し、「0」は算術復号の確率モデルが別の方法で初期化されることを示す。
対象スライスが依存スライスの場合のみ、このインジケータの存在は必要である。なぜなら、通常スライスの場合、CABACデフォルト値が初期化に用いられる(図9のS101でNoの場合を参照)。よって、条件dependent_slice_flag == 1を確認することにより、対象スライスが依存スライスであるか否かががまず分析される。
また、スライスと他のスライスとの並列処理を行う場合に、初期化インジケータ(フラグ)は有利である。例えば、並列処理はWPPであってもよい。よって、条件のentropy_coding_sync_enabled_flag == 1が真である場合のみ、図12に示すスライスヘッダのシンタックスは、初期化インジケータentropy_default_initialization_flagを含む。
また、スライスがLCU行の先頭で始まる場合のみ、初期化インジケータは適切である。なぜなら、そのときのみ、並列処理を可能にするため、CABACの即時の初期化が必要であるからである。これは、図12に示すシンタックスにおいて、条件slice_address % PicWidthInCtbsY == 0により示される。
上述したように、シンタックス要素「slice_address」は、ビットストリームに含まれるオフセットにより、スライスの開始を示す。「PicWidthInCtbsY」は、符号化ツリーブロックの単位(LCU)の数でフレームの幅を示す。
行381に示すように、上述した3つの条件の論理積が判定に用いられる。つまり、以下の(式2)が真である場合のみ、初期化方法を明確に信号で伝えるために、entropy_default_initialization_flagが伝達される。
dependent_slice_flag == 1 && entropy_coding_sync_enabled_flag == 1 && slice_address % PicWidthInCtbsY == 0 ・・・(式2)
(式2)が真でない場合、通常の方法に基づいて、つまり、WPPルールに基づいて初期化が行われる。
つまり、本実施の形態に係る画像符号化方法及び画像復号方法は、画像の画素ブロックに対応する符号化単位に画像のスライスを分割し、解析部は、スライスが依存スライスの場合のみ、ヘッダデータに含まれる初期化インジケータを抽出する。依存スライスの算術復号部は、各依存スライスに対応する親スライスの算術復号部のコンテキストに基づき初期化される。
また、符号化単位で構成される行の並列復号が可能な場合のみ、解析部は、ヘッダデータの初期化インジケータを抽出してもよい。
つまり、本実施の形態に従い、画像の画素ブロックに対応する符号化単位に画像のスライスが分割され、解析部は、画像の符号化単位ブロックで構成される行の先頭からスライスが始まる場合のみ、ヘッダデータの初期化インジケータを抽出する。
図13は、本実施の形態に係る、スライスのCABAC初期化の決定方法のフローチャートである。図13は、図8に示すピクチャ350の場合を想定している。スライス(4)(スライス354)がスライス(1)(スライス351)と並列に解析されると想定すると、以下の決定がなされる。
まず、スライス(4)が依存スライスであるか否かが判定される(S111)。スライス(4)が依存スライスであり、かつ、他の条件(行の並列処理が行われ、かつ、LCU行の先頭においてスライスが開始している)が満たされる場合(S111でYes)、初期化の実行方法を決定するため、初期化インジケータ「entropy_default_initialization_flag」が確認される(S112)。
entropy_default_initialization_flagにより、デフォルトの初期化が適用されることが示される場合(S112でNo)、デフォルトの初期化が適用される(S114)。一方、entropy_default_initialization_flagにより、デフォルトの初期化が適用されることが示されない場合(S112でYes)、先行スライスを参照するWPPの初期化が適用される(S113)。
なお、本実施の形態は、スライスヘッダ内で初期化インジケータを信号伝達することに限定されない。別のデータ構造、例えば、付加拡張情報メッセージに、同一のインジケータを埋め込んでもよい。
(実施の形態2)
実施の形態1により、WPP及び依存スライスなどの並列LCU行処理の効率的な処理が実現できる。一方で、新たなシンタックス要素が、スライスヘッダに組み込まれる。これに対して、新たなシンタックス要素の追加を避けるため、初期化ルールを修正することにより、並列処理中のスライスに対するCABAC初期化の独立性も達成してよい。
本実施の形態では、依存スライスの定義、及び、依存スライスに対する画像符号化装置及び画像復号装置の動作を修正する。これは、ビットストリームの規格に制限を加えることにより実現できる。
つまり、本実施の形態に係る画像復号装置は、複数の符号化単位に分割され、少なくとも部分的に算術符号で符号化される複数の画像スライスを含む符号化映像シーケンスのビットストリームを復号する。当該画像復号装置は、符号化単位で構成される1行目及び2行目をビットストリームから抽出する解析部を備え、2行目の第2スライスに対する算術復号部を初期化する際、1行目の第1スライスの分割情報を参照しなくてもよいように、1行目及び2行目の符号化単位がスライスに割り当てられる。1行目の第1スライスの開始位置は、2行目の第2スライスより所定の符号化単位数分後ろである。当該画像復号装置は、前記第1スライス及び前記第2スライスを少なくとも部分的に並列に算術復号することにより、前記各スライスを復号する算術復号部をさらに備える。
図14は、本実施の形態の機能を示すための図であり、複数のスライスに分割されたピクチャ390を示す。ピクチャ390は、4つのスライスである、通常スライス391と、通常スライス392と、依存スライス393と、通常スライス394とを含む。
3つのスライス391、392及び393は、符号化単位(LCU)で構成される1行目に含まれる。スライス394は、2行目及び3行目全体を含む。
スライス化、及び、行単位の並列処理の使用に適用される制限の第1例は、「entropy_code_sync_enabled_flagが1と同等であり、dependent_slice_enabled_flagが1と同等である場合、符号化ツリーブロック行の先頭でのみ通常スライスは始まってもよい」である。また、entropy_code_sync_enabled_flag及びdependent_slice_enabled_flagの両方のフラグは、ピクチャパラメータセットに含まれる。なお、符号化ツリーブロック(CTB)、及び、最大符号化単位(LCU)は、同一の単位のことである。標準テキスト(非特許文献3を参照)では、CTBが用いられている。また、標準テキストの前バージョンではLCUが使用されていたが、現在はCTBが使用されている。
符号化単位行(LCU行)の先頭においてのみ通常スライスが始まる場合、他の行の当該通常スライスに続く依存スライスは、常に通常スライスのCABAC状態を参照してもよい。ここでCABAC状態とは、WPPにより実行されるような最初のLCU又は最初の2つのLCUの処理後のCABAC状態である。また、依存スライスのヘッダがそれらに先行する通常スライスのヘッダに依存するため、通常スライス394が失われた場合、依存スライスを捨てる必要がある。
このように第1例の制限では、通常スライスは常に、LCU行の先頭で始まる。言い換えると、LCU行の先頭スライスは通常スライスであり、他のスライスは依存スライスである。つまり、通常スライスはLCUの先頭スライスとしてのみ認められる。また、LCU行の先頭以外のスライスは、常に依存スライスである。
上記第1例の制限は、厳密である必要はない。WPPの初期化の適用を可能にするため、前行の通常スライスの少なくとも1つ又は2つのLCUを、依存スライスが利用できるようにすればよい。
または、別の制限(ルール)として第2例を適用してもよい。第2例では、符号化ツリーブロック行における2番目の符号化ツリーブロックの後で、通常スライスを開始しない。通常スライスはLCU行の先頭で始まらなければならないため、例えば、図14に示すように、2番目のスライス392を通常スライスに設定することは認められない。
なお、上述した第1スライスとは、開始位置が1行目の2つ目の符号化単位までであればよい。また、第1スライスは通常スライスであり、第2スライスは、通常スライスのスライスヘッダを用いる依存スライスであってもよい。また、第1スライスの開始位置は、1行目の先頭であってもよい。
図15は、上述したルールを設けた場合の、CABAC初期化方法の決定処理のフローチャートである。ここで、図8に示す例を用いて説明する。
まず、スライス(4)が依存スライスであるか否かが判定される(S111)。スライス(4)が依存スライスである場合(S111でYes)、WPPの初期化が行われる(S113)。一方、スライス(4)が依存スライスでない場合(S111でNo)、デフォルトの初期化が行われる(S114)。
このように、本実施の形態に係る画像符号化方法は、コンテキスト適応エントロピー符号化部を用いる。当該画像符号化方法は、少なくとも2つの部分に分割されるピクチャフレームに適用される。少なくとも2つの部分とは、別々に、少なくとも部分的に並列に符号化及び復号可能な第1部分及び第2部分のことである。
本実施の形態によると、サブストリームの第1部分をスライスへ分割する際、ストリームの第2部分のコンテキストテーブルの初期化が第1部分の分割に依存しない方法で決定される。例えば、WPPは行毎(LCU行毎)に行われるため、ストリームの一部分がLCU行に対応してもよい。
なお、本発明は、上で例示した制限に限定されない。または、上記の制限を異なる方法で公式化してもよい。以下、制限の別の例を説明する。
通常スライスが以下の(式3)の条件を満たす場合、後続LCU行の先頭で始まるスライスは、依存スライスではない。
slice_adress % PicWidthInCtbsY > 1 ・・・(式3)
簡略化するため、上記の条件を以下の(式4)で表してもよい。
slice_adress % PicWidthInCtbsY != 0 ・・・(式4)
ここで、「!=」は、同等ではないことを示す。entropy_coding_sync_enabled_flagが1と同等である場合、つまり、LCU行の並列処理が可能な場合、これらの制限は適用可能である。また、「slice_adress」は、ビットストリーム内で始まるスライスの位置を示し、パラメータ「PicWidthInCtbsY」は、LCU(符号化ツリーブロック)におけるピクチャ(フレーム)の幅を示す。
つまり、通常スライスが行の先頭で始まらない場合、その直後の行で始まるスライスは依存スライスではない(第3例)。この条件により、2行目のスライスの復号を、1行目のある位置の通常スライスを解析(復号)するまで待つ必要がなくなる。
つまり、通常スライスが第1行の先頭以外から始まる場合、当該第1行の次の第2行は依存スライスから始まらない。言い換えると、第1行の2番目又はそれ以降のスライスのうち少なくとも一つが通常スライスである場合、第2行の先頭スライスは通常スライスである。
上記の第3例の制限による影響を、図16を用いて説明する。図16に示すピクチャ400は、1行目に含まれる3つのスライス401〜403を含む。これら3つのスライスのうち最初の2つのスライス401及び402は通常スライスであり、3つ目のスライス403は依存スライスである。
上記の条件によると、4番目のスライス404を依存スライスに設定することはできない。図16において、スライス404にバツ印をつけることで、これを示している。
よって、ビットストリームは、通常スライス及び依存スライスを含んでもよく、これらの復号は通常スライスのスライスヘッダにおいて信号伝達されるパラメータに基づく。LCU行の先頭より後ろの位置で通常スライスが始まる場合、次のLCU行は依存スライスで始まらない。
また、具体例を、図17A〜図17Dを用いて説明する。例えば、図17Aに示すように、第1行に通常スライス(3)が存在する場合、第2行の先頭スライス(4)を依存スライスに設定することはできない。また、スライス(2)及びスライス(3)の少なくとも一方が通常スライスである場合には、スライス(4)を依存スライスに設定することはできない。よって、図17Bに示すように、スライス(4)を通常スライスに設定する必要がある。また、第3例では、図17C及び図17Dに示すようなピクチャも認められる。
なお、上述した第1例では、図17A、図17B及び図17Dに示すピクチャは認められないが、図17Cに示すピクチャは認められる。また、第2例では、図17A及び図17Bに示すピクチャは認められないが、図17C及び図17Dに示すピクチャは認められる。
図18を用いて、第4例の制限を説明する。entropy_coding_sync_enabled_flagが1と同等であり、かつ、dependent_slice_enabled_flagが1と同等である場合、フレーム中の最初のスライス以外、通常スライスは認められない(第4例)。
つまり、並列処理が可能であり、かつ、依存スライスが有効な場合、通常スライスは、フレーム中の最初のスライスとしてのみ認められる。つまり、最初のスライスを除き、フレーム中の全てのスライスが依存スライスである。言い換えると、画像の先頭スライスは通常スライスであり、他の全てのスライスは依存スライスである。
図18に示すピクチャ410は、5つのスライス411〜415を含む。スライス411、412、及び415は通常スライスであり、スライス413及び414は依存スライスである。上記の第4例の制限に従い、1番目の通常スライス411を除く、通常スライス412及び415は認められない。つまり、スライス412及び415は、依存スライスでなければならない。また、第4例では、図17A〜図17Dに示すピクチャのうち図17Dに示すピクチャのみが認められる。
なお、この第4例の制限を用いた場合、パケット損失に対するロバスト性に関してデメリットを有する。依存性を低減するため、また、損失の多い環境におけるエラー伝播を低減するため、一般的には通常スライスが用いられる。また、1番目のスライスのみが通常スライスのフレームでは、1番目のスライスを復号できない場合、全てのスライスが復号できないというリスクを負うことになる。
また、別の制限として以下の制限を用いてもよい。スライス(通常又は依存スライス)がLCU行の真ん中で(つまり、行の開始位置とは別の位置で)始まる場合、次の符号化単位行は依存スライスで始まらない(第5例)。
なお、当該技術分野の当業者には明らかなように、ここで記載された複数の制限を任意に組み合わせることが可能である。つまり、上記第1例〜第5例を組み合わせて適用してもよい。
さらに、制限の別の例を以下に挙げる。entropy_coding_sync_enabled_flagが1と同等な場合、1つのLCU行をスライスに分割することはできない(第6例)。この制限を適用した場合、図18に示すスライス構造では、スライス412及び413は認められない。つまり、符号化単位行の並列処理が可能である場合、スライスは、1つの符号化単位行全体、又は、複数の符号化単位行全体を含むことのみ認められる。
このように、ビットストリームは、通常スライス及び依存スライスを含む。通常スライス及び依存スライスの復号は、通常スライスのスライスヘッダで信号伝達されるパラメータに基づく。画像中の1番目のスライスのみを通常スライスとし、残りのスライスを依存スライスとしたうえで、画像をスライスに分割する。
また、各スライスは、m行の符号化単位行の全てを含む。ここで、mは1以上の整数である。つまり、各スライスは、1以上の行の全てを含む。
また、上記制限の適用に加えて、又は、その代わりに、依存スライスが有効で、WPP及びタイルの何れかが有効な場合、上記制限を示すインジケータをビットストリームに埋め込んでもよい。例えば、このインジケータはSPS又はPPSに埋め込まれる。なお、このインジケータは、SEIメッセージなどの別のメッセージ又は任意のビデオ・ユーザビリティ情報(VUI)メッセージに埋め込まれてもよい。
このインジケータに基づいて、画像復号装置は、適用される制限を把握する。例えば、この制限は、LCU行(WPP)の先頭、又は、タイルの先頭でのみに、通常スライスが認められるという制限である。なお、これは、制限の一例にすぎず、上記の制限の何れか、又は、これらの制限の組み合わせ、又は、明示的に記載されていない追加の制限を適用してもよい。
例えば、このインジケータは、所定の制限に対し、当該制限を適用するか否かを示す、1ビットのフラグであってもよい。また、選択可能な複数の制限があってもよく、選択された制限を示す情報がビットストリームに含まれて画像復号装置に信号伝達される。つまり、上述した例のように明示的に使用を制限するのではなく、画像符号化装置がそのような制限を用いることを画像復号装置に知らせてもよい。したがって、制限に関連する上記例のいずれを適用してもよい。
このように、本発明の一態様に係る画像復号方法は、依存スライスが有効である場合、ピクチャの分割が制限されていることを示す制限インジケータをビットストリームから取得するステップを含む。また、本発明の一態様に係る画像符号化方法は、依存スライスが有効である場合、ピクチャの分割が制限されていることを示す制限インジケータをビットストリームに埋め込むステップを含む。
なお、インジケータを追加するか否かを、WPP、タイル、又は依存スライスが有効化どうかによって決定しなくてもよい。
また、本発明の一態様に係る画像復号方法は、画像が、各々が複数の符号化単位(LCU)を含む複数のスライスに分割されて符号化された符号化信号を含むビットストリームを復号する画像復号方法であって、前記符号化信号を復号する復号ステップを含む。また、本発明の一態様に係る画像符号化方法は、画像を、各々が複数の符号化単位(LCU)を含む複数のスライスに分割して符号化することでビットストリームを生成する画像符号化方法であって、画像を複数のスライスに分割する分割ステップと、分割された複数のスライスを符号化する符号化ステップとを含む。
また、複数のスライスの各々は、通常スライスと、依存スライスとのいずれかである。通常スライスは、当該スライスのスライスヘッダに含まれる情報が別のスライスに用いられる可能性があるスライスである。依存スライスは、復号に別のスライスのスライスヘッダに含まれる情報を用いるスライスである。ここで、別のスライスとは、例えば、依存スライスの前に位置し、かつ最も近い通常スライスである。
また、復号ステップでは、依存スライスの算術復号は、当該依存スライスにスライスヘッダが用いられる親スライスのコンテキストを用いて初期化される。また、符号化ステップでは、依存スライスの算術符号化は、当該依存スライスにスライスヘッダが用いられる親スライスのコンテキストを用いて初期化される。
また、画像は、各々が複数の符号化単位を含む複数の行を含む。
また、分割ステップでは、上述した制限の1つ又は複数が満たされるように、画像を複数のタイルに分割するとともに複数のスライスに分割する。
また、復号ステップでは、第1行及び第2行を並列復号し、第2行の復号を開始する際に、第1行におけるスライス構造を示す分割情報を参照せずに、第2行を復号してもよい。また、分割ステップでは、画像復号装置において第1行及び第2行を並列復号する場合において、当該画像復号装置が第2行の復号を開始する際に、第1行におけるスライス構造を示す分割情報を参照せずに、第2行を復号できるように画像を複数のスライスに分割してもよい。
ここで分割情報とは、例えば、スライス位置(先頭位置)又はスライスヘッダの位置を示す情報である。画像復号装置は、この分割情報を参照することで、上述したCABAC初期化方法を決定する処理を行う。
また、並列復号とは、例えば、上述したWPPである。つまり、復号ステップでは、第2行の算術復号は、第1行の2番目の符号化単位が算術復号された後のコンテキストを用いて初期化される。また、符号化ステップでは、第2行の算術符号化は、第1行の2番目の符号化単位が算術符号化された後のコンテキストを用いて初期化される。
また、上述したようにスライスヘッダに、当該スライスが通常スライスであるか依存スライスであるかを示す情報(dependent_slice_flag)が含まれる。つまり、画像復号方法は、スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダから取得するステップを含む。また、画像符号化方法は、スライスが通常スライスであるか依存スライスであるかを示す情報をスライスヘッダに埋め込むステップを含む。
以上のように、本実施の形態は、並列処理において、先行スライスを考慮したCABAC初期化により、依存スライス処理が、2以上又は3以上の符号化単位分遅延することを防止できる。これにより、行の符号化、復号、及び解析を効率的に並列処理できる。
なお、本発明は、スライス化の方法を制限する実施の形態に限定されない。また、上記制限は、CABACコンテキストが得られるスライスに関連してもよい。
(実施の形態3)
本実施の形態では、WPP処理の際の依存スライスに対するCABAC初期化方法を変更する。具体的には、依存スライスに対する親スライスの割り当てルールを変更する。
例えば、スライスへのLCU行の分割(及び/又は、後続スライスの種別)に関わらず、依存スライスが常に、同一スライスからスライスヘッダ及びCABACコンテキストを取得するようなルールを定める。
図19に示すピクチャ420は、スライス421〜424を含む。現在のHEVCでは、依存スライス424の親スライスはスライス422である。つまり、依存スライス424のスライスヘッダは、先行する最も近くの通常スライスであるスライス422から取得する。
図9を用いて説明したように、依存スライスは、先行のLCU行の先頭にある通常スライスを用いてCABAC初期化を行う場合もある。しかしながら、スライス422が失われた場合、スライス424のCABACの初期化を行うことはできるが、スライスヘッダ情報が欠落するため、スライス424を復号できない。
これに対して、本実施の形態では、依存スライスは、依存スライスが含まれる行と同じ又は前の行から開始される最も近くの通常スライスを親スライスとして有する。このルールに従い、本実施の形態では、図19に示すように、スライス424の親スライスはスライス421に設定される。そして、依存スライス424は、スライス421のスライスヘッダを用いるとともに、スライス421のCABAC状態を用いてCABAC初期化を行う。
また、各依存スライスの算術復号部は、親スライスの算術復号部のコンテキストに基づき初期化されるように、スライスの依存性が設定される。
なお、スライスの初期化に用いられるCABACコンテキストテーブルを示す情報が、SEIメッセージ内で、明示的に信号伝達されてもよい。つまり、CABACエンジンの初期化に用いられると思われる全ての初期値を、明示的にSEIメッセージ内で信号伝達してもよい。
なお、上記説明で用いた「スライス(通常スライス又は依存スライス)」は、「スライスセグメント(通常スライスセグメント又は依存スライスセグメント)」と呼ばれる場合もある。この場合、1以上の連続するスライスセグメントを含む単位を「スライス」と呼ぶ。具体的には、一つのスライスは、一つの通常スライスセグメントと、当該通常スライスセグメントの後に連続する1以上の依存スライスセグメントとを含む。つまり、ある通常スライスセグメントの直後が通常スライスセグメントである場合、スライスは当該通常スライスセグメントのみを含む。また、ある通常スライスセグメントの直後に1以上の依存スライスセグメントが連続する場合、スライスは、当該通常スライスセグメントと、当該1以上の依存スライスセグメントとを含む。つまり、通常スライスセグメントから、次の通常スライスセグメントの直前の依存スライスセグメントまでが、一つのスライスに含まれる。
また、このような定義を用いた場合、上述したLCU行とスライスとの制限の第3例は、以下の定義に対応するといえる。
entropy_coding_sync_enabled_flagが1と等しく、かつ、スライスに含まれる最初の符号化ツリーブロック(LCU)が、符号化ツリーブロック行の最初の符号化ツリーブロックでない場合、上記スライスに含まれる最後の符号化ツリーブロックが、当該スライスに含まれる最初の符号化ツリーブロックと同じ符号化ツリーブロック行に属することが、ビットストリームの規格適合に要求される。
ここで、スライスに含まれる最初の符号化ツリーブロックが、符号化ツリーブロック行の最初の符号化ツリーブロックでない場合とは、通常スライスセグメントが符号化ツリーブロック行の先頭以外から始まる場合である。また、上記スライスに含まれる最後の符号化ツリーブロックが、当該スライスに含まれる最初の符号化ツリーブロックと同じ符号化ツリーブロック行に属するとは、次の行は依存スライスから始まらないことに対応する。
例えば、図17Bに示す例では、スライスセグメント(1)及び(2)(図17Bではスライス(1)及びスライス(2)と記載されている。以下同様の記載を用いる。)により一つのスライスが構成され、スライスセグメント(3)により一つのスライスが構成され、スライスセグメント(4)及び(5)により一つのスライスが構成される。このうち、スライスの最初の符号化ツリーブロックが符号化ツリーブロック行の最初の符号化ツリーブロックでないスライスは、スライスセグメント(3)で構成されるスライスのみである。このスライスの最後の符号化ツリーブロックは、当該スライスの最初の符号化ツリーブロックと同じ符号化ツリーブロック行(1行目)に属している。よって、図17Bに示す構成は認められる。
一方で、図17Aに示す例では、スライスセグメント(3)〜(5)により一つのスライスが構成される。このスライスの最初の符号化ツリーブロック(スライスセグメント(3)の最初の符号化ツリーブロック)と、当該スライスの最後の符号化ツリーブロック(スライスセグメント(5)の最後の符号化ツリーブロック)とは、異なる符号化ツリーブロック行に属している。よって、図17Aに示す構成は認められない。
また、図17Cでは、スライスセグメント(1)〜(3)により一つのスライスが構成され、スライスセグメント(4)〜(5)により一つのスライスが構成される。また、図17Dでは、スライスセグメント(1)〜(5)により一つのスライスが構成される。つまり、図17C及び図17Dでは、スライスの最初の符号化ツリーブロックが符号化ツリーブロック行の最初の符号化ツリーブロックでないスライス、つまり、行の途中から開始されるスライスは、存在しない。よって、図17C及び図17Dに示す構成は認められる。
また、entropy_coding_sync_enabled_flagが1と等しく、かつ、スライスセグメントに含まれる最初の符号化ツリーブロック(LCU)が、符号化ツリーブロック行の最初の符号化ツリーブロックでない場合、上記スライスセグメントに含まれる最後の符号化ツリーブロックが、当該スライスセグメントに含まれる最初の符号化ツリーブロックと同じ符号化ツリーブロック行に属することが、ビットストリームの規格適合に要求される。
以上、実施の形態に係る画像符号化方法に及び画像復号方法ついて説明したが、本発明は、この実施の形態に限定されるものではない。
上記画像符号化方法及び画像復号方法は、画像符号化装置及び画像復号装置により実現される。また、画像符号化装置及び画像復号装置の構成は、例えば、図1及び図2に示す構成と同様であり、上記画像符号化方法及び画像復号方法に含まれる特徴的なステップは、図1及び図2に図示するいずれかの処理部、又は、図示しない処理部により実行される。
また、上記実施の形態に係る画像符号化装置及び画像復号装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、画像符号化装置及び画像復号装置は、制御回路(control circuitry)と、当該制御回路に電気的に接続された(当該制御回路からアクセス可能な)記憶装置(storage)とを備える。制御回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、制御回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、上記の画像符号化方法又は画像復号方法に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、本発明の一つ又は複数の態様に係る画像符号化装置及び画像復号装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図20は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図20のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-CodeDivision Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(PersonalHandyphone 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の例に限らず、図21に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図22は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)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の構成を図23に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図24に光ディスクである記録メディア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の構成は例えば図22に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図25Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図25Bを用いて説明する。携帯電話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において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図26は、多重化データの構成を示す図である。図26に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(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が、それぞれ割り当てられている。
図27は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図28は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図28における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図28の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図29は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには図29下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号は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時間の情報を持つ。
図30はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図31に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図31に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図32に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図33に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図34に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図35は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図34のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図34の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態5で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態5で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図37のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図36は、本実施の形態の方法を実施するステップを示している。まず、ステップ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を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態8)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図38Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、ピクチャの分割処理に特徴を有していることから、例えば、ピクチャの分割処理については専用の復号処理部ex901を用い、それ以外の逆量子化、エントロピー復号、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図38Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。