【文献】
Wei-Jung Chien et al.,Memory and Parsing Friendly CABAC Context,Joint Collaborative Team on Video Coding (JCT-VC),2011年 7月20日,[JCTVC-F606] (version 3) <JCTVC-F606_r2.doc>
【文献】
Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan,WD3: Working Draft 3 of High-Efficiency Video Coding, Joint Collaborative Team on Video Coding (JCT-VC),2011年 5月 1日,[JCTVC-E603] (version 3), <JCTVC-E603_d3.doc>
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
(本発明の基礎となった知見)
本発明者は、以下の問題が生じることを見出した。
【0014】
ここで、次世代符号化方式であるHigh-Efficiency Video Coding(HEVC)においても、各種制御パラメータの符号化及び復号におけるコンテキストモデルについての検討が進んでいる(非特許文献2)。制御パラメータとは、符号化ビットストリームに含まれ、符号化処理又は復号処理で用いられるパラメータ(フラグ等)を意味し、具体的には、syntax elementである。
【0015】
コンテキストモデルとは、(1)どのような単位(多値、バイナリ値、又はバイナリ配列(bin string)の個々の要素)の信号に、(2)どのような条件(Condition)を考慮するかを示す情報である。ここで、どのような条件とは、どのような条件の要素数の条件を適用するか、又は、条件として考慮する制御パラメータの信号種別は何がよいかである。この条件を詳細に区分すればするほど、つまり、条件数τ(the number of conditions)を増やせば増やすほど、1つの条件に該当する回数が減る。その結果、条件ごとの学習回数が減ることで、確率の予測の精度が低下する(例えば、非特許文献1の"dilution effect"を参照)。
【0016】
また、条件数を少なくすればするほど、コンテキスト(周囲の条件)が考慮されていないことになり、統計の変動に追従(adaptive)していないことになる。
【0017】
コンテキストのモデル設計には、モデルの設計指針を決定したうえで、画像内容の統計的偏りの検証、又は画像の符号化及び復号を制御する制御パラメータの統計的偏りの検証等の画像に特化した検証を行うことで、その妥当性を考慮する必要がある。
【0018】
H.264では、限定された数の事前事象をシンボルの符号化に用いることをルールの規範としつつ、コンテキストモデルを4つの基本的なタイプ(basic design types)に類型化している。
【0019】
第1及び第2の類型は制御パラメータの符号化及び復号に関する。
【0020】
第1の類型のコンテキストモデルは、2つを上限とする(up to two)の隣接する符号化済の値を利用する(非特許文献1参照)。隣接する2つの符号化済みの値の定義は制御パラメータの信号種別の個々に依存するが、通常左及び上に隣接するブロックに含まれる対応する制御パラメータの値を使う。
【0021】
第2のコンテキストモデルの類型は、発生確率としてバイナリツリーに基づいて、コンテキストを決めるタイプである。具体的には、制御パラメータmb_type及びsub_mb_typeに適用される。
【0022】
第3及び第4の類型は、画像データ等の残差値(residual data)の符号化及び復号に関する。第3の類型では周波数係数(又は量子化係数)のスキャンの順番に応じて、過去に符号化又は復号された値のみを利用する。第4の類型では、復号され累積された値(レベル値)に応じて、コンテキストを決定する。
【0023】
上記第1の類型等の、H.264における確率遷移モデルの設計方針及び実装方法は長く効果が検証されており、現在検討中のHEVCにも適用されるよう検討が進んでいる(非特許文献2を参照)。例えば第1の類型(コンテキストモデル using neighbouring syntax elements)は、制御パラメータalf_cu_flag、 split_coding_unit_flag、skip_flag、merge_flag、intra_chroma_pred_mode、inter_pred_flag、ref_idx_lc、ref_idx_l0、ref_idx_l1、mvd_l0、mvd_l1、mvd_lc、no_residual_data_flag、cbf_luma、cbf_cb及びcbf_crに利用されることが検討されている(非特許文献2の9.3.3.1.1節を参照)。
【0024】
しかしながら、この第1の類型「隣接2ブロックを利用するコンテキストモデル」を利用する符号化については、そのメモリ使用量について、以下の課題があることを本発明者は見出した。
【0025】
図17は、隣接2ブロックの対応する制御パラメータの値を利用するコンテキストモデルを説明するための図である。また、
図17は、H.264における隣接ブロックを利用するコンテキストモデルを示す。
【0026】
図中のブロックCは、現在(Current)の符号化又は復号対象である制御パラメータSEの値を含む。このSEの値を符号化する場合、既に符号化済である上ブロックA及び左ブロックBに含まれる同種の制御パラメータSEの値を利用する。具体的には、ブロックCの制御パラメータSE(又は制御パラメータSEのbin stringの1バイナリ目)の値xが「1」であるか「0」であるかの確率p(x)を、上ブロックAの制御パラメータSEの値と左ブロックBの制御パラメータSEの値とを条件とした条件付確率p(x|(condition A (上ブロックの値)かつ condition B(左ブロックの値)))を用いて予測する。
【0027】
図18は、上ブロックを利用する場合のメモリ使用量の増加を説明するための図である。
【0028】
図中の(xP、yP)は、ブロックCが含まれるPredictionUnit(PU:動き予測単位)の左上画素位置を示す。ここでブロックCは、現在の符号化対象の制御パラメータ(例えば、skip_flag)を含むブロックである。また、図中の(xP、yA)は、condition A(上ブロックの制御パラメータskip_flagの値)として用いられる、ブロックBに含まれる画素位置を示す。図中(xL、yP)は、condition B (左ブロックの制御パラメータskip_flagの値)として用いられる、ブロックAに含まれる画素位置を示す。
【0029】
この場合、ブロックCの制御パラメータskip_flagの値を符号化又は復号するために、符号化又は復号装置は、上ブロックBに含まれる(xP、yA)の位置に対応する、PUのskip_flagの値(又は条件の判定結果)と、左ブロックAに含まれる(xL、yP)の位置に対応する、PUのskip_flagの値(又は、条件の判定結果)とを保持する必要がある。ここで、このピクチャの横幅が4096ピクセルであるとすると、1つの制御パラメータskip_flagの符号化のために、上ブロック行(
図18に示すLine L)に含まれる全ての判定値を保持する必要がある。つまり、1つの制御パラメータのために、4096ピクセル÷ブロックサイズのメモリ容量が必要となる。
【0030】
ここで、符号化対象のブロックCのブロックサイズは可変であり、例えば、64×64、16×16、又は4×4等である。また、(xP, yA)を含む上の行(Line L)に含まれるブロックの符号化又は復号時には、後で符号化又は復号されるブロックCのブロックサイズは予測できない。これは、符号化又は復号装置は、上の行(ブロックAが含まれる行)の符号化又は復号の時点では、その下の行(ブロックCが含まれる行)の各ブロックのサイズを知りえないためである。したがって、符号化又は復号装置は、下の行のブロックサイズとして、その制御パラメータが適用されるブロックサイズのうち最小のブロックサイズが用いられる場合を想定し、その最小のブロックサイズ毎に制御パラメータの値(又は判定値)を保持しておかなければならない。なお、
図18の黒丸の位置は、実際には下の行(ブロックCが含まれる行)の符号化又は復号においてはその条件値が必要ないにもかかわらず保持しておかなければならない条件を示す。
【0031】
さらに、
図18に示す隣接2ブロック(左ブロックAと上ブロックB)は、H.264時点の隣接ブロックの概念を示し、新しい階層ブロック分割の観点は導入されていない。後述するとおり、HEVCで導入が予定されている再帰4分ブロック分割ツリー構造(quad tree partitioning)に適応した制御パラメータに対しては、再帰の実行順、階層深さ、又はブロックの位置に応じて、
図18で示した参照する条件値が意味を成さない場合がある。
【0032】
このように、本発明者は、制御パラメータの算術符号化又は復号において上ブロックの条件値を利用することでメモリ使用量が増加することを見出した。さらに、本発明者は、HEVCではこのメモリ使用量がさらに増加することを見出した。
【0033】
これに対して、本発明の一形態に係る画像復号方法は、算術復号を用いる画像復号方法であって、複数のコンテキストのうち、処理対象ブロックに使用するコンテキストを決定するコンテキスト制御ステップと、制御パラメータが算術符号化されることで得られた、前記処理対象ブロックに対応するビット列を、決定された前記コンテキストを用いて算術復号することで二値配列を復元する算術復号ステップと、前記二値配列を多値化することで前記制御パラメータを復元する多値化ステップとを含み、前記コンテキスト制御ステップでは、前記処理対象ブロックの制御パラメータの信号種別を判定し、前記信号種別が第1種別である場合に、前記処理対象ブロックに隣接する左ブロック及び上ブロックの復号済の制御パラメータを共に利用する第1条件を用いて前記コンテキストを決定し、前記信号種別が、前記第1種別と異なる第2種別である場合に、前記上ブロックの復号済みの制御パラメータを利用しない第2条件を用いて前記コンテキストを決定し、前記第1種別は、"split_coding_unit_flag"、または、"skip_flag"であり、前記第2種別は、"inter_pred_flag"である。
【0034】
これによれば、当該画像復号方法は、メモリ使用量を削減できる。具体的には、当該画像復号方法は、第2種別の制御パラメータに対しては上ブロックの制御パラメータを使用しないので、上ブロックの第2種別の制御パラメータを保持する必要がない。これにより、当該画像復号方法は、画一的に「隣接ブロックの制御パラメータの値に基づいたコンテキストモデルを利用する」として左ブロックと上ブロックとを利用する場合に比してメモリ使用量を削減することができる。さらに、当該画像復号方法は、画像のBD-rate値評価等を損なわずに、適切に第2種別の制御パラメータのメモリ使用量を削減することができる。
【0035】
また、当該画像復号方法は、従来のH.264では考慮されていない、新規なHEVC特有のデータ構造の階層ツリー構造に適したコンテキストの利用、又は、メモリ参照を行うことができる。
【0036】
また、前記第2条件は、前記上ブロック及び前記左ブロックの復号済みの制御パラメータを共に利用しない条件であってもよい。
【0037】
これによれば、当該画像復号方法は、上ブロックに加え、左ブロックの制御パラメータも使用しないことにより、さらにメモリ使用量を削減できる。
【0038】
また、前記コンテキスト制御ステップでは、前記信号種別が前記第2種別である場合に、前記第2条件として、予め定められたコンテキストを前記対象ブロックの算術復号に使用するコンテキストに決定してもよい。
【0039】
これによれば、当該画像復号方法は、処理量を低減できる。
【0040】
また、前記信号種別が前記第2種別である場合に、前記第2条件として、前記処理対象ブロックの制御パラメータの属するデータ単位の階層の深さに応じて前記コンテキストを決定してもよい。
【0041】
これによれば、当該画像復号方法は、メモリ使用量を削減しつつ、適切なコンテキストを選択できる。
【0042】
また、前記コンテキスト制御ステップでは、さらに、前記処理対象ブロックの位置に基づき、前記上ブロックの制御パラメータを復号時に利用できるか否かを判定し、前記上ブロックの制御パラメータを利用できない場合に、前記第2条件を用いて前記コンテキストを決定してもよい。
【0043】
これによれば、当該画像復号方法は、処理量を低減できる。
【0044】
また、前記コンテキスト制御ステップでは、前記処理対象ブロックがスライス境界に属する場合に、前記上ブロックの制御パラメータを復号時に利用できないと判定してもよい。
【0045】
また、前記コンテキスト制御ステップでは、前記処理対象ブロックの制御パラメータの属するデータ単位の階層の深さに応じて前記上ブロックの制御パラメータを復号時に利用できるか否かを判定してもよい。
【0046】
また、前記第2種別は、予め定められたデータ構造を有する制御パラメータであってもよい。
【0047】
また、前記コンテキスト制御ステップでは、さらに、第1単位の制御パラメータの値に基づいて、前記第1単位より小さい第2単位の制御パラメータに対して、前記第1条件を用いて前記コンテキストを決定するか、前記第2条件を用いてコンテキストを決定するかを切り替えてもよい。
【0048】
また、前記"split_coding_unit_flag"は、前記処理対象ブロックが、複数のブロックに分割されているか否かを示し、前記"skip_flag"は、前記処理対象ブロックをスキップするか否かを示し、前記"inter_pred_flag"は、前記処理対象ブロックに、uni-prediction及びbi-predictionのいずれが使用されるかを示してもよい。
【0049】
また、前記画像復号方法は、符号化信号に含まれる、第1規格又は第2規格を示す識別子に応じて、前記第1規格に準拠した復号処理と、前記第2規格に準拠した復号処理とを切り替え、前記IDが第1規格を示す場合に、前記第1規格に準拠した復号処理として、前記コンテキスト制御ステップと、前記算術復号ステップと、前記多値化ステップとを行ってもよい。
【0050】
また、本発明の一形態に係る画像符号化方法は、算術符号化を用いる画像符号化方法であって、処理対象ブロックの制御パラメータを二値化することで二値配列を生成する二値化ステップと、複数のコンテキストのうち、前記処理対象ブロックに使用するコンテキストを決定するコンテキスト制御ステップと、決定された前記コンテキストを用いて前記二値配列を算術符号化することでビット列を生成する算術符号化ステップとを含み、前記コンテキスト制御ステップでは、前記処理対象ブロックの制御パラメータの信号種別を判定し、前記信号種別が第1種別である場合に、前記処理対象ブロックに隣接する左ブロック及び上ブロックの制御パラメータを共に利用する第1条件を用いて前記コンテキストを決定し、前記信号種別が、前記第1種別と異なる第2種別である場合に、前記上ブロックの制御パラメータを利用しない第2条件を用いて前記コンテキストを決定し、前記第1種別は、"split_coding_unit_flag"、または、"skip_flag"であり、前記第2種別は、"inter_pred_flag"である。
【0051】
これによれば、当該画像符号化方法は、メモリ使用量を削減できる。具体的には、当該画像符号化方法は、第2種別の制御パラメータに対しては上ブロックの制御パラメータを使用しないので、上ブロックの第2種別の制御パラメータを保持する必要がない。これにより、当該画像符号化方法は、画一的に「隣接ブロックの制御パラメータの値に基づいたコンテキストモデルを利用する」として左ブロックと上ブロックとを利用する場合に比してメモリ使用量を削減することができる。さらに、当該画像符号化方法は、画像のBD-rate値評価等を損なわずに、適切に第2種別の制御パラメータのメモリ使用量を削減することができる。
【0052】
また、当該画像符号化方法は、従来のH.264では考慮されていない、新規なHEVC特有のデータ構造の階層ツリー構造に適したコンテキストの利用、又は、メモリ参照を行うことができる。
【0053】
また、本発明の一形態に係る画像復号装置は、算術復号を用いる画像復号装置であって、複数のコンテキストのうち、処理対象ブロックの算術復号に使用するコンテキストを決定するコンテキスト制御部と、制御パラメータが算術符号化されることで得られた、前記処理対象ブロックに対応するビット列を、決定された前記コンテキストを用いて算術復号することで二値配列を復元する算術復号部と、前記二値配列を多値化することで前記制御パラメータを復元する多値化部とを含み、前記コンテキスト制御部は、前記処理対象ブロックの制御パラメータの信号種別を判定し、前記信号種別が第1種別である場合に、前記処理対象ブロックに隣接する左ブロック及び上ブロックの復号済の制御パラメータを共に利用する第1条件を用いて前記コンテキストを決定し、前記信号種別が、前記第1種別と異なる第2種別である場合に、前記上ブロックの復号済みの制御パラメータを利用しない第2条件を用いて前記コンテキストを決定し、前記第1種別は、"split_coding_unit_flag"、または、"skip_flag"であり、前記第2種別は、"inter_pred_flag"である。
【0054】
これによれば、当該画像復号装置は、メモリ使用量を削減できる。
【0055】
また、本発明の一形態に係る画像符号化装置は、算術符号化を用いる画像符号化装置であって、処理対象ブロックの制御パラメータを二値化することで二値配列を生成する二値化部と、複数のコンテキストのうち、前記処理対象ブロックに使用するコンテキストを決定するコンテキスト制御部と、決定された前記コンテキストを用いて前記二値配列を算術符号化することでビット列を生成する算術符号化部とを含み、前記コンテキスト制御部は、前記処理対象ブロックの制御パラメータの信号種別を判定し、前記信号種別が第1種別である場合に、前記処理対象ブロックに隣接する左ブロック及び上ブロックの制御パラメータを共に利用する第1条件を用いて前記コンテキストを決定し、前記信号種別が、前記第1種別と異なる第2種別である場合に、前記上ブロックの制御パラメータを利用しない第2条件を用いて前記コンテキストを決定し、前記第1種別は、"split_coding_unit_flag"、または、"skip_flag"であり、前記第2種別は、"inter_pred_flag"である。
【0056】
これによれば、当該画像符号化装置は、メモリ使用量を削減できる。
【0057】
また、本発明の一形態に係る画像符号化復号装置は、前記画像復号装置と、前記画像符号化装置とを含む。
【0058】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【0059】
以下、本発明の一態様に係る画像復号装置および画像符号化装置について、図面を参照しながら具体的に説明する。
【0060】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0061】
(実施の形態1)
以下、本発明の実施の形態1に係る画像符号化装置について説明する。本発明の実施の形態1に係る画像符号化装置は、算術符号化において、制御パラメータの信号種別に応じて、(1)上ブロックを利用してコンテキストを決定するか、(2)上ブロックを利用せずにコンテキストを決定するか、を切り替える。これにより、画質の劣化を抑制しつつ、メモリ使用量を削減できる。
【0062】
まず、本発明の実施の形態1に係る画像符号化装置の構成を説明する。
【0063】
図1は、本実施の形態に係る画像符号化装置100のブロック図である。
【0064】
図1に示す画像符号化装置100は、算術符号化を用いる画像符号化装置であり、入力画像信号121を符号化することによりビットストリーム124を生成する。この画像符号化装置100は、制御部101と、差分部102と、変換及び量子化部103と、可変長符号化部104と、逆量子化及び逆変換部105と、加算部106と、画面内予測部107と、画面間予測部108と、スイッチ109とを含む。
【0065】
制御部101は、符号化対象の入力画像信号121に基づいて制御パラメータ130を算出する。例えば、制御パラメータ130は、符号化対象の入力画像信号121のピクチャタイプを示す情報、符号化対象ブロックの動き予測単位(Prediction Unit PU)のサイズ、及び、動き予測単位の制御情報等を含む。ここで制御パラメータ130(Control data)はそれ自身が符号化対象となる。よって、制御部101は、この制御パラメータ130を、可変長符号化部104に出力する。
【0066】
差分部102は、ブロック単位の入力画像信号121と予測画像信号129との差分値(残差値)である残差信号122を算出する。
【0067】
変換及び量子化部103は、残差信号122を周波数係数値に変換し、得られた周波数係数値を量子化することで量子化変換係数123(residual data)を生成する。
【0068】
逆量子化及び逆変換部105は、量子化変換係数123を周波数係数値に逆量子化し、得られた周波数係数値を逆変換することで、復元された残差信号125を生成する。
【0069】
加算部106は、残差信号125と予測画像信号129とを加算することで復元画像信号126を出力する。
【0070】
画面内予測部107は、復元画像信号126を用いて画面内予測処理を行うことで予測画像信号127を生成する。画面間予測部108は、復元画像信号126を用いて画面間予測処理を行うことで予測画像信号128を生成する。
【0071】
スイッチ109は、予測画像信号127及び予測画像信号128の一方を選択し、選択した信号を予測画像信号129として出力する。
【0072】
可変長符号化部104は、入力されたブロック毎の量子化変換係数123及び制御パラメータ130を、前述のCABACを用いて符号化することでビットストリーム124を生成する。
【0073】
次に、可変長符号化部104の構成を説明する。
【0074】
図2は、可変長符号化部104の機能ブロック図である。可変長符号化部104は、二値化部141と、コンテキスト制御部142と、二値算術符号化部143とを含む。以下、制御パラメータ130の可変長符号化処理について説明する。なお、量子化変換係数123の可変長符号化処理については説明を省略するが、例えば、既知の技術を用いて実現できる。
【0075】
二値化部141は、制御パラメータ130を二値化することで二値配列151を生成する。具体的には、二値化部141は、非特許文献1におけるII. 1) binarizaion処理を実行する処理部である。この二値化部141は、制御パラメータ130を信号種別毎に事前に定められた二値化処理方法によりbin stringと呼ばれる二値配列151に変換する。なお、信号種別と二値化処理方法の対応については後述する。また、二値化部141は、入力された制御パラメータ130がflag等の1バイナリ値である場合は、当該制御パラメータ130をそのまま二値配列151として出力する。
【0076】
コンテキスト制御部142は、複数のコンテキスト(確率状態テーブル)のうち、処理対象のブロックに含まれる制御パラメータ130の算術符号化に使用するコンテキストを決定する。また、コンテキスト制御部142は、決定したコンテキストを指定するコンテキストインデクス152を二値算術符号化部143へ出力する。
【0077】
具体的には、コンテキスト制御部142は、非特許文献1における2)context modeling処理を実行する処理部である。このコンテキスト制御部142には、二値算術符号化部143が出力した二値配列151に含まれる複数の要素が順次入力される。コンテキスト制御部142は、制御パラメータ130の信号種別とこのバイナリの二値配列151中の要素位置とに応じて、複数のコンテキストのうち、このバイナリに使用するコンテキストを選択し、選択したコンテキストを示すインデクスであるコンテキストインデクス152を二値算術符号化部143に出力する。
【0078】
また、コンテキスト制御部142は、コンテキストの状態として、制御パラメータ130の二値配列の個々の要素をさらに条件付確率の条件に詳細区分化した数(いわゆるコンテキストインデクス数)の確率状態テーブルを保持しており、この確率状態テーブルを初期化及び更新する。
【0079】
また、コンテキスト制御部142は、信号種別毎(二値配列の要素数が2以上である場合は、制御パラメータ130の二値配列の要素番号毎のことである。以下同じ)に更なる詳細区分として発生条件τ毎(コンテキスト毎)の状態(probability state index)を保持する。この状態は、「0」または「1」の二値のうち、確率が低い方の発生確率P(内分比率:典型的には6bitの値)と、確率の高い方がどちらかを示す値(1bit)との合計7bit値である。また、状態を保持するとは初期化及び更新することである。例えば、更新処理とは、H264と同じく64個の有限の状態間の遷移であり、今どの確率状態probability state(すなわちどの確率)にあるかのindexingを変更することである。
【0080】
具体的には、コンテキスト制御部142は、二値のうち確率の高いmost probable側の事象Xが発生した場合は、most probable側である確率の割合を少し増加させる。例えば、コンテキスト制御部142は、64個のテーブルに対応する確率インデクス(probability state index)の値を1増減させることで、most probable側である確率の割合を少し増加させることができる。他方、(予測された確率に反して)確率の低い方の事象not Xが発生した場合には、コンテキスト制御部142は、保持しているmost probableの確率の割合を大きく、所定のスケール係数α(例えば≒0.95)に基づいて減少させる(非特許文献1, Fig 6を参照)。本実施の形態のコンテキスト制御部142は、H.264と同様に、このαを考慮した変更に対応するように、対応付けられたテーブルインデクス変更値に基づいて状態を遷移させて保持している。
【0081】
二値算術符号化部143は、コンテキスト制御部142で決定されたコンテキストを用いて二値配列151を算術符号化することでビットストリーム124(ビット列)を生成する。
【0082】
具体的には、二値算術符号化部143は、非特許文献1における3)binary arithmetic coding処理を実行する処理部である。この二値算術符号化部143は、コンテキストインデクス152で指定されるコンテキストを用いて、二値配列151を算術符号化することでビットストリーム124を生成する。ここで算術符号化とは、種々の信号種別の制御パラメータ130について発生した事象を確率の累積として扱い、どのような事象がおこったのかを1つの数直線上の所定範囲に範囲を狭めながら対応付けることといえる。
【0083】
まず、二値算術符号化部143は、1つの数直線を、コンテキスト制御部142から与えられた、バイナリがとりうる2つの値の発生確率に応じて2つの半区間に内分する。実際に発生したバイナリの値(例えば「0」)が、高い確率(0.5を超える確率(例えば0.75))側の値であった場合には、二値算術符号化部143は、数直線中の範囲の下値限値lowを変更せず維持し、今回の確率0.75に、スケール係数0.95を1回乗算した結果に対応する値を新たな幅Rangeに設定する。一方、実際に発生したバイナリの値が、予測された低い確率側の値であった場合には、二値算術符号化部143は、範囲の下限値lowを、高い方の確率分移動させ、幅Rangeを低い方の確率に応じて変更させる。このように、確率幅Rangeの乗算結果の累積によって区間を保持するが、確率の低い方の値が連続して発生した場合には幅Rangeの長さが演算で確保できる精度以下になる。この場合、二値算術符号化部143は、精度を維持するために幅Rangeを拡大する処理(renorm)を行うとともに現時点の範囲を示すためのビット列を出力する。逆に、確率の高い方(0.95等)の値が連続して発生した場合には、この確率値を乗算したとしても幅Rangeの長さが所定の長さより短くなるまでに何回もの演算(表による実装の場合は状態遷移)を行うことができる。従ってこの場合はビットを出力するまでに累積できるシンボル数が多いことになる。
【0084】
図3は、隣接ブロックの制御パラメータ130の値に基づくコンテキストモデルを利用する制御パラメータ130を整理した表である。
【0086】
(c2)信号種別(syntax element)は、制御パラメータ130の信号種別の具体名称を示す。なお、各信号種別の意味は後述する。
【0087】
(c3)二値化方式(binarization scheme)は、直左の列で指定される制御パラメータ130(SE)に適用される二値化方式を示す。なお、二値化処理は、上記二値化部141で実行される。また、欄中「固定長」とは、二値化部141が、直左の制御パラメータ130の値を固定長(Fixed Length)の二値配列(bin string)で出力することを意味する。HEVCにおいて信号種別名が"flag"で終わる信号種別の制御パラメータ130は、「0」または「1」のいずれかの値をとる1バイナリ値である。従って、二値化部141の出力する二値配列151の要素は、第1番目の要素(binIdx = 0)のみであり、第2番目以降の要素(binIdx >= 1の要素は出力しない。つまり、二値化部141は、制御パラメータ130の値をそのまま二値配列151として出力する。
【0088】
また、欄中「可変長」とは、二値化部141が、制御パラメータ130の値を、その値の発生頻度順に短いバイナリ長になるように対応付けられた可変長のバイナリ列(bin string、又は、二値配列であって要素数≧1)を用いて、二値配列化して出力することを示す。例えば、二値化部141は、(Truncated)Unary型、又はUnary型と他の指数のGolomb方式等の複数の方式の組み合わせ等の、信号種別に対応した方式を利用して出力する(非特許文献1、A.Binarizationを参照)。なお、可変長の場合、二値配列151の配列要素は1個である場合もあるが、2個以上になることもある。また、後述する画像復号装置の多値化部では、この二値化方式の逆の変換を行うことにより、入力された二値配列を多値又はフラグ値に復元する。
【0089】
(c4) 第1番目要素(binIdx=0)コンテキストインデクスは、コンテキスト制御部142が、c3の欄で指定された二値化方式によって生成されたバイナリ配列に含まれる1番目の要素に対して適用するコンテキストインデクス(増分値)の選択肢を示す。欄中に「0、1、2」と記載されている場合、コンテキスト制御部142は、3つの確率状態テーブル(コンテキスト)から一つの確率状態テーブルを選択して適用することを意味する。例えば、信号種別"skip_flag"については、この1つの信号種別について、条件で細分化なコンテキストインデクスを3つ用意して、つまり、コンテキストを3つ用意して算術符号化を行うことを意味している。
【0090】
同様に、c4欄中に「0、1、2、3」と記載されている場合、c2欄で指定される信号種別の制御パラメータ130の値を、c3欄の二値化方式により二値配列化された二値配列151に含まれる第1要素(binIdx = 0)に適用されるコンテキストが0、1、2、または、3の4つの択一であることを意味する。なお、欄中の条件式については後述する。
【0091】
(c5) 左ブロック条件L(condL)は、コンテキスト制御部142が、カラムc4において0、1、2の値のいずれかの値を選択するための左ブロックの条件(condition)を示す。この条件は、符号化対象(または復号対象)の制御パラメータに対応する、左ブロックの制御パラメータの値に応じて決定されるtrueまたはfalseの値をとる。
【0092】
例えば、制御パラメータ(SE)がskip_flagである場合には、skip_flag[xL][yL]の値がtrue(例えば「1」)であればtrueが、false(例えば「0」)であればfalseが出力される。
【0093】
(c6) 上ブロック条件A(condA)は、コンテキスト制御部142が、カラムc4に指定された配列要素の符号化及び復号において0、1、2の値のいずれかの値を選択するための上ブロックの条件(condition)を示す。この条件は、符号化対象(または復号対象)の制御パラメータに対応する、上ブロックの制御パラメータの値に応じて決定されるtrueまたはfalseの値をとる。例えば、制御パラメータ(SE)がskip_flagである場合には、skip_flag[xA][yA]の値がtrue(例えば「1」)であればtrueが、false(例えば「0」)であればfalseが出力される。
【0094】
なお、図示していないが、2ビット以上の信号種別には(c7)「binIdx >= 1に適用するコンテキスト増分値」が対応付けられていている。この(c7)は、コンテキスト制御部142が、二値配列の2要素目以降のバイナリ(binIdx >= 1のインデクス値を有するバイナリ配列要素のバイナリ値)に適用するコンテキストモデルを示す。
【0095】
本実施の形態に係る画像符号化方法は、上記左ブロック条件L及び上ブロック条件Aについて制御パラメータ130の信号種別に応じて以下の動作を切り替える(異なるパターンを利用して動作する)。
【0096】
(パターン1)2個の隣接ブロック(左ブロック条件Lの判定値と上ブロック条件Aの判定値)を使う。
【0097】
(パターン2)1個の隣接ブロック(左ブロック条件Lの判定値のみ)を使う。
【0098】
(パターン3)0個の隣接ブロックを使う(左ブロック条件Lも上ブロック条件Aも使わない)。
【0099】
図4は、
図2に示す可変長符号化部104が実行する本実施の形態に係る画像符号化方法を示すフロー図である。
【0100】
まず、二値化部141は制御パラメータ130の値を、この制御パラメータ130の信号種別に対応する方式で二値配列化する(S101)。
【0101】
次に、コンテキスト制御部142は、この制御パラメータ130の算術符号化に用いるコンテキストの基本値を取得する(S102)。例えば、コンテキスト制御部142は、ピクチャタイプ(I、P、B)に応じてこの基本値を決定する。
【0102】
次に、コンテキスト制御部142は、制御パラメータ130の信号種別に応じて、上記パターン1〜パターン3のいずれかを用いてコンテキスト値を決定する(S103)。ここで、コンテキスト値を決定するとは、コンテキストの基本値に対する調整値(インクリメント値CtxIdxInc)を決定することと等価である。
【0103】
まず、コンテキスト制御部142は、制御パラメータ130の信号種別を判別する(S103)。制御パラメータ130の信号種別がパターン1に対応する第1種別である場合(S104で第1種別)、コンテキスト制御部142は、隣接する2つのブロック(ブロックAとブロックB)の各々の制御パラメータの値から導出された判定値を用いコンテキスト値を決定する(S105)。言い換えると、コンテキスト制御部142は、左ブロック及び上ブロックの2つの隣接ブロックの制御パラメータを利用する条件を用いてコンテキストを決定する。この場合、コンテキスト制御部142は、
図3に示す(c5)CondLの判定結果と(c6)condAの判定結果との両方の値を利用する。従って、第1種別の制御パラメータに対してはピクチャの横一列分のデータを保持することになる。
【0104】
一方で、制御パラメータ130の信号種別がパターン2に対応する第2種別である場合(S104で第2種別)、コンテキスト制御部142は、1個の隣接ブロック(符号化順で直近の隣接ブロック)の制御パラメータの値を用いてコンテキスト値を決定する(S106)。言い換えると、コンテキスト制御部142は、上ブロックの制御パラメータを利用しない条件を用いてコンテキストを決定する。
【0105】
一方で、制御パラメータ130の信号種別がパターン3に対応する第3種別である場合(S104で第3種別)、コンテキスト制御部142は、上ブロック及び左ブロックの制御パラメータを共に利用せずに、固定的にコンテキスト値を決定する(S107)。
【0106】
次に、コンテキスト制御部142は、ステップS102で決定されたコンテキストの基本値に、ステップS103で決定された増分値を加算することでコンテキストインデクス値を導出する(S108)。
【0107】
最後に、二値算術符号化部143は、第1要素のバイナリ値を、ステップS108で決定されたコンテキストインデクス値で指定されるコンテキスト値を用いて算術符号化することで、ビット列(ビットストリーム124)を生成する(S109)。
【0108】
次に、二値配列に含まれる全ての要素に対してステップS102〜S109の処理の実行が完了していない場合(S110でNO)、可変長符号化部104は、二値配列に含まれる次の要素に対して、ステップS102〜S109の処理を実行する。一方、二値配列に含まれる全ての要素に対してステップS102〜S109の処理の実行が完了した場合(S110でYES)、可変長符号化部104は、処理対象ブロックの制御パラメータに対する符号化処理を終了する。
【0109】
以上のように、本実施の形態に係る画像符号化装置100は、算術符号化において、第1種別の制御パラメータに対しては、上ブロックを利用してコンテキストを決定し、第2種別及び第3種別の制御パラメータに対しては、上ブロックを利用せずにコンテキストを決定する。
【0110】
この構成により、当該画像符号化装置100は、画一的に「隣接ブロックの制御パラメータの値に基づいたコンテキストモデルを利用する」として左ブロックと上ブロックとを利用する場合に比してメモリ使用量を削減することができる。これにより、当該画像符号化装置100は、画質の劣化を抑制しつつ、メモリ使用量を削減できる。
【0111】
(実施の形態2)
本実施の形態では、上記画像符号化装置100により生成されたビットストリーム124を復号する画像復号装置について説明する。
【0112】
図5は、本実施の形態に係る画像復号装置200のブロック図である。この画像復号装置200は、算術復号を用いる画像復号装置であり、ビットストリーム124を復号することで画像信号229を生成する。ここでビットストリーム124は、例えば、上述した画像符号化装置100により生成されたビットストリーム124である。
【0113】
画像復号装置200は、制御部201と、可変長復号部202と、逆量子化部204と、逆変換部205と、加算部206と、画面内予測部207と、画面間予測部208とを含む。
【0114】
画像復号装置200は、所定の処理単位の符号列ごとに復号処理を行う。ここで処理単位は、例えば、スライス単位、又はブロック単位である。
【0115】
可変長復号部202は、ビットストリーム124に算術復号を行うことで、制御パラメータ230(control data syntax element)と、量子化変換係数223(Residual data syntax element値)とを生成する。生成された制御パラメータ230は制御部201に出力される。
【0116】
制御部201は、制御パラメータ230に応じて画像復号装置200に含まれる処理部を制御する。
【0117】
逆量子化部204は、量子化変換係数223を逆量子化することで直交変換係数224を生成する。
【0118】
逆変換部205は、直交変換係数224を逆変換することで残差信号225を復元する。加算部206は残差信号225と予測画像信号(画像信号229)とを加算することで復号画像信号226を生成する。
【0119】
画面内予測部207は、復号画像信号226を用いて画面内予測処理を行うことで予測画像信号227を生成する。画面間予測部208は、復号画像信号226を用いて画面間予測処理を行うことで予測画像信号228を生成する。
【0120】
スイッチ209は、予測画像信号227及び予測画像信号228の一方を選択し、選択した信号を画像信号229(予測画像信号)として出力する。
【0121】
次に、可変長復号部202の構成を説明する。
【0122】
図6は、可変長復号部202の構成を示す機能ブロック図である。可変長復号部202は、二値算術復号部243と、コンテキスト制御部242と、多値化部241とを含む。以下、制御パラメータ230の可変長復号処理について説明する。なお、量子化変換係数223の可変長復号処理については説明を省略するが、例えば、既知の技術を用いて実現できる。
【0123】
コンテキスト制御部242は、複数のコンテキストのうち、処理対象のブロックの制御パラメータ230の算術復号に使用するコンテキストを決定する。また、コンテキスト制御部242は、決定したコンテキストを指定するコンテキストインデクス252を二値算術復号部243へ出力する。
【0124】
具体的には、コンテキスト制御部242は、保持する確率遷移モデルとして、
図2に示すコンテキスト制御部142と同じコンテキストモデルを用いる。二値算術符号化部143が64個の確率状態を用いる場合は、二値算術復号部243も64個の確率状態を持つ。これは、符号化される数直線上のレンジを、符号化側及び復号側の両方でまったく同じように解釈する必要があるためである。よって、符号化側が、上述したパターン1〜3の3つのパターンから選択したパターンと、同じパターンを復号装置側でも用いる。
【0125】
二値算術復号部243は、コンテキスト制御部242で決定されたコンテキストを用いてビット列(ビットストリーム124)を算術復号することで二値配列251を復元する。具体的には、二値算術復号部243は、コンテキスト制御部242から与えられたコンテキストインデクスにより指定されるコンテキスト(確率状態テーブル)を用いて、入力されたビット列を二値配列251に復元する。
【0126】
多値化部241は、二値配列251を必要であれば多値化することで制御パラメータ230に復元する。このように、画像符号化装置100が備えるコンテキスト制御部142と、画像復号装置200が備えるコンテキスト制御部242とは、ある信号種別の制御パラメータの算術符号化及び算術復号時に双方で同じコンテキストモデルを利用する。
【0127】
図7は、可変長復号部202が実行する本実施の形態に係る画像復号方法を示すフロー図である。
【0128】
まず、可変長復号部202はビットストリーム124を取得する(S201)。
【0129】
次に、コンテキスト制御部242は、ビットストリーム124のデータ構造に応じて復号対象の制御パラメータの信号種別を決定する(S202)。
【0130】
次に、コンテキスト制御部242は、復号対象の制御パラメータの算術復号に用いるコンテキストの基本値を決定する(S203)。例えば、コンテキスト制御部242は、ピクチャタイプ(I、P、B)に応じてこの基本値を決定する。
【0131】
次に、コンテキスト制御部242は、制御パラメータの信号種別に応じて、上記パターン1〜パターン3のいずれかを用いてコンテキスト値を決定する(S204)。ここで、コンテキスト値を決定することとは、コンテキストの基本値に対する調整値(インクリメント値CtxIdxInc)を決定することと等価である。例えば、コンテキスト制御部242は、制御パラメータの信号種別に応じてパターン1〜パターン3のいずれを用いるかの判断を、静的に事前に決定された表に従い行なう。
【0132】
コンテキスト制御部242は、二値配列251に含まれる第1要素のバイナリの値を算術復号により得るために用いるコンテキストの決定に用いる隣接ブロックを、制御パラメータの信号種別に応じて切り替える。
【0133】
まず、コンテキスト制御部242は、制御パラメータ230の信号種別を判定する(S205)。信号種別がパターン1に対応する第1種別である場合(S205で第1種別)、コンテキスト制御部242は、隣接する2つのブロックの各々の制御パラメータを用いてコンテキスト値を決定する(S206)。言い換えると、コンテキスト制御部242は、左ブロック及び上ブロックの2つの隣接ブロックの復号済の制御パラメータを利用する条件を用いてコンテキストを決定する。
【0134】
一方、信号種別がパターン2に対応する第2種別である場合(S205で第2種別)、コンテキスト制御部242は、1個の隣接ブロック(符号化順で直近の隣接ブロック)の制御パラメータの値を用いてコンテキスト値を決定する(S207)。言い換えると、コンテキスト制御部242は、上ブロックの復号済みの制御パラメータを利用しない条件を用いてコンテキストを決定する。
【0135】
一方、信号種別がパターン3に対応する第3種別である場合(S205で第3種別)、コンテキスト制御部242は、固定的にコンテキスト値を決定する(S208)。言い換えると、コンテキスト制御部242は、上ブロック及び左ブロックの復号済みの制御パラメータを共に利用しない条件を用いてコンテキストを決定する。
【0136】
次に、コンテキスト制御部242は、ステップS203で決定されたコンテキストインデクスの基本値と、ステップS204で決定された増分値とを加算することでコンテキストインデクス値を決定する(S209)。
【0137】
次に、二値算術復号部243は、コンテキスト制御部242から与えられたコンテキストインデクス値で示されるコンテキスト値を用いて、二値配列の要素の1つを復号により得る(S210)。
【0138】
次に、二値配列に含まれる全ての要素に対してステップS203〜S210の処理の実行が完了していない場合(S211でNO)、可変長復号部202は、二値配列に含まれる次の要素に対して、ステップS203〜S210の処理を実行する。
【0139】
一方、二値配列に含まれる全ての要素に対してステップS203〜S210の処理の実行が完了した場合(S211でYES)、多値化部241は、上記のステップS203〜S210の処理を1回以上繰り返すことで得られた二値配列251の1個以上の要素を多値化することで制御パラメータ230を生成する(S212)。
【0140】
以上より、本実施の形態に係る画像復号装置200は、算術復号において、第1種別の制御パラメータに対しては、上ブロックを利用してコンテキストを決定し、第2種別及び第3種別の制御パラメータに対しては、上ブロックを利用せずにコンテキストを決定する。
【0141】
この構成により、当該画像復号装置200は、画一的に「隣接ブロックの制御パラメータの値に基づいたコンテキストモデルを利用する」として左ブロックと上ブロックとを利用する場合に比してメモリ使用を削減することができる。これにより、当該画像復号装置200は、画質の劣化を抑制しつつ、メモリ使用量を削減できる。
【0142】
なお、多値化部241は、二値配列251がflag等であり、要素数が1つの場合、つまり、1binaryである場合には、当該二値配列251をそのまま出力してもよい。
【0143】
また、上述説明に加え、制御部101又は201は図示しない信号線を介して各処理部を制御する処理、又はメモリの値を参照する処理等を行ってもよい。
【0144】
また、上記説明では、コンテキスト制御部142又は242は、パターン1〜パターン3の3つのパターンを制御パラメータの信号種別に応じて切り替えているが、パターン1〜パターン3のうち2つのパターンを信号種別に応じて切り替えてもよい。言い換えると、コンテキスト制御部142又は242は、制御パラメータの信号種別に応じて、上ブロック条件を利用する/しないを切り替えればよい。
【0145】
また、コンテキスト制御部142又は242は、このような選択されるコンテキストモデルの切り替え方法(コンテキストモデル増分値を変更する場合も含む、以下同じ)を所定の画像情報に応じて変更してもよい。例えば、コンテキスト制御部142又は242は、メモリ保持量及び各コンテキストの学習回数に影響する画像の横幅のサイズ又はサンプリングフォーマット等に応じて、この切り替え方針自体をさらに切り替えるとしてもよい。
【0146】
また、上記説明では、説明の簡略化のために、コンテキスト制御部142又は242が、上ブロック条件を利用する/しないを切り替えるとしたが、コンテキスト制御部142又は242は、上ブロックがそもそも利用できない場合をこれと組み合わせて適用してもよい。例えば、コンテキスト制御部142又は242は、処理対象のスライスがエントロピースライスであるか否か(entropy_slice_flag が1であるか0であるか)に応じて、この切り替え方針自体を変更してもよい。同様に、そもそも上隣接ブロックの利用可能性が担保できない場合には、コンテキスト制御部142又は242は、切り替え方針を、上ブロックを利用しないに変更してもよい。
【0147】
例えば、
図8に示すように、コンテキスト制御部142又は242は、所定の単位のパラメータの値に応じて(S301)、コンテキストモデルの決定方針を第1の決定規範(S302)と、第2の決定規範(S303)とで切り替えてもよい。ここで、所定の単位のパラメータの値に応じてとは、上述したように、スライスがentropy slice であるか否か等に応じてである。また、第1の決定規範とは、
図7に示す処理を行う規範である。第2の決定規範とは、
図7に示すステップS204を含まない決定規範であり、例えば従来の決定規範である。これはコンテキストインデクスの増分値を、局所的な所定の単位のパラメータとその単位より大きな単位のパラメータの値とで決定することと等価である。
【0148】
すなわち、コンテキスト制御部142又は242は、第1の単位の制御パラメータの値に基づいて、第1の単位より小さい単位に適用される決定規範を他の決定規範に切り替えてもよい。
【0149】
また、コンテキスト制御部142又は242は、画像系列の特徴に応じて、使用する決定規範)を変更してもよい。例えば、コンテキスト制御部142又は242は、Iピクチャの間隔(IntraPeriod の設定値)に応じて、使用する決定規範を変更してもよい。
【0150】
なお、ここでは、コンテキスト制御部142又は242は、上記の条件に応じて、決定規範を切り替えるとしたが、上ブロックを利用するか否かを切り替えてもよい。
【0151】
また、コンテキスト制御部142又は242は、位置的に上ブロックの制御パラメータが符号化又は復号時に利用できるか否かに基づいて、上ブロックの制御パラメータを利用するか否かを決定してもよい。つまり、コンテキスト制御部142又は242は、処理対象のブロック位置に基づき、上ブロックの制御パラメータを復号時に利用できるか否かを判定し、上ブロックの制御パラメータを利用できない場合に、パターン2又はパターン3を用いてコンテキストを決定してもよい。さらに、コンテキスト制御部142又は242は、この上ブロックの参照値を利用できるか否かを、TU、CU、又はPUブロック分割のツリー構造に基づいて決定してもよい。つまり、コンテキスト制御部142又は242は、処理対象の制御パラメータの属するデータ単位の階層の深さに応じて上ブロックの制御パラメータを復号時に利用できるか否かを判定してもよい。
【0152】
図9は、HEVC規格におけるピクチャとスライスとブロックとの関係を示す図である。1つのピクチャは1以上のスライスに分割されている。
図9に示す例ではピクチャは、2つのスライス(SLICE1及びSLICE2)に分割されている。1つのスライスは、複数のブロック301(例えば、treeblocks)で構成される。ここで、ブロック301は、スライスを所定のサイズに分割した場合に、何かの制御単位として最大の単位であり、その単位を階層分割のrootとした場合のそのrootのサイズである。
【0153】
図9に示す例では、SLICE2は、ブロック301A(startTb)からはじまり、ハッチングされたブロック301を経由して右下隅のブロックまでの複数のブロックを含む1シーケンスで構成される。なお、図中ハッチングされたブロックは現在の処理対象となる1つのブロック(Treeblock)である。
【0154】
さて、各々のブロック301はN×M画素で構成される。また、1つのブロック301は内部で再帰的に分割(典型的には4分割)される。つまり、1つのTreeblockは概念的に1つの4分木を構成する(QuadTree)。
図9に示すブロック301Bでは、4分割された右上のブロックが2階層にわたり再帰的に4分割されている。つまり、ブロック301Bは、左上の0番から右下の9番まで、所定の観点で分割された10個の論理的なユニットを含む。
【0155】
ここで、観点とは、符号化単位(CU)についてのtree、又はresidual_dataについてのTree等、あるrootを基点に互いに深さの異なりうる複数の木が観念される。ここで各種の制御パラメータの値はいずれかの葉ノードに属することになる。
【0156】
さて、ここで、実際に上ブロックに含まれるある信号種別の制御パラメータの値が「利用できるか(available)否かは」、当該制御パラメータが属する木の種別に依存する。よって、コンテキスト制御部142又は242は、制御パラメータの属する木の種別に従って決定規範を変更してもよい。これは、シンタクス単位に変更することと等価である。例えば、コンテキスト制御部142又は242は、適応フィルタについてのalf_param等のデータ構造のデータに対しては、上ブロックを利用しないパターン2またはパターン3を利用し、他のシンタクスについては従来どおりのコンテキストモデル方針(パターン1)を利用してもよい。つまり、上記第2種別又は第3種別は、予め定められたデータ構造を有する制御パラメータであってもよい。また、これは、隣接の定義のツリーの種別によって変わることを意味する。
【0157】
さらに、実際にその制御パラメータの値が利用できるかどうか、又は、メモリ使用量の削減に効果を生じるかは、ブロックの階層関係上の位置に応じて異なる。つまり、コンテキスト制御部142又は242は、ブロックの階層及び階層内の位置に応じて上ブロックを利用するか否かを切り替えてもよい。
【0158】
例えば、
図9に示すブロック301Bにおける各番号0〜9は、復号順であるとする。この場合、番号4のブロックを符号化又は復号する場合に、番号1のブロック及び番号2のブロックの制御パラメータを利用できる。
【0159】
さらに、メモリ使用量の削減の観点から、コンテキスト制御部142又は242は、Depth0でないブロックであり、かつ、自己の位置が縦方向分割における2個目以上の要素であれば、上ブロックを利用するパターン1を選択してもよい。ここでdepthとは、rootからの階層数を示す。すなわち、あるブロックをblock[xn],[y0][depth]と規定した場合、処理対象のブロックがblock[xn][(y0) + 1][depth])が成立するブロックであるか否かに応じて、決定規範を変更してもよい。つまり、
図9に示す番号4〜9のブロックに対して上ブロックが利用される。これは、このツリーの符号化又は復号が、図示された番号順(0から始まり9で終わる順番)であれば、番号4〜9のブロックでは、上ブロックに含まれる制御パラメータが利用できることも明らかであるためである。さらに、これらのブロックでは、データの保持は一時的でよいという利点もある。また、このことは、x、y座標に加え階層を含む三次元の位置に応じてコンテキスト値を決定することもいえる。また、上階層のブロックの条件値を下階層のブロックの条件値として利用(踏襲)することが可能である。
【0160】
さらに、コンテキスト制御部142又は242は、処理対象のブロックと、他のスライスとの位置関係を考慮して、これらの規範を変更してもよい。以下、
図9に示す3つのハッチングしたブロック301A、301B及び301Cの例を説明する。
【0161】
ここで、ブロック301Aは、スタートブロックであり、左ブロック及び上ブロックが共に他のスライスに含まれる。ブロック301Bは、上ブロックが別スライスに含まれる。ブロック301Cは、上ブロック及び左ブロックが共に、自己のブロックが含まれるスライスと同じスライスに含まれる。コンテキスト制御部142又は242は、このような条件に応じて、規範を切り替えても良い。つまり、コンテキスト制御部142又は242は、(1)上ブロックが他のスライスに含まれるか否かに応じて規範を切り替えてもよいし、(2)左ブロックが他のスライスに含まれるか否かに応じて規範を切り替えてもよいし、(3)これらの両方に応じて規範を切り替えてもよい。言い換えると、コンテキスト制御部142又は242は、処理対象のブロックがスライス境界に属する場合に、上ブロックの制御パラメータを復号時に利用できないと判定してもよい。これにより、例えば、上のスライス1の復号処理が終了していない場合に、スライス2の内部で自己的に情報が得られるか否かを考慮した復号処理が実現できる。
【0162】
以下、階層化された処理単位(多階層ブロック構造)について説明する。
図10は、階層化された処理単位(多階層ブロック構造)を説明するための説明図である。
【0163】
上記画像符号化装置100は、動画像を処理単位ごとに符号化し、画像復号装置200は、符号化ストリームを処理単位ごとに復号する。この処理単位は、複数の小さな処理単位に分割され、その小さな処理単位がさらに複数のより小さな処理単位に分割されるように、階層化されている。なお、処理単位が小さいほど、その処理単位がある階層は深く、下位にあり、その階層を示す値は大きい。逆に、処理単位が大きいほど、その処理単位がある階層は浅く、上位にあり、その階層を示す値は小さい。
【0164】
処理単位には、符号化単位(CU)と予測単位(PU)と変換単位(TU)とがある。CUは、最大128×128画素からなるブロックであり、従来のマクロブロックに相当する単位である。PUは、画面間予測の基本単位である。TUは、直交変換の基本単位であり、そのTUのサイズはPUと同じか、PUよりも一階層小さいサイズである。CUは、例えば4つのサブCUに分割され、そのうちの1つのサブCUは、そのサブCUと同じサイズのPUおよびTUを含む(この場合、PUとTUは互いに重なった状態にある)。例えば、そのPUはさらに4つのサブPUに分割され、TUもさらに4つのサブTUに分割される。なお、処理単位が複数の小さい処理単位に分割される場合、その小さい処理単位をサブ処理単位という。例えば、処理単位がCUの場合では、サブ処理単位はサブCUであり、処理単位がPUの場合では、サブ処理単位はサブPUであり、処理単位がTUの場合では、サブ処理単位はサブTUである。
【0166】
ピクチャはスライスに分割される。スライスは最大符号化単位のシーケンスである。最大符号化単位の位置は、最大符号化単位アドレスlcuAddrによって示される。
【0167】
最大符号化単位を含むそれぞれの符号化単位は、4つの符号化単位に分割される。その結果、符号化単位の大きさの四分木分割が構成される。符号化単位の位置は、最大符号化単位の左上端のサンプル(画素または係数)を起点とした符号化単位インデクスcuIdxによって示される。
【0168】
符号化単位の分割が許可されていない場合、その符号化単位は予測単位として扱われる。符号化単位と同様に、予測単位の位置は、最大符号化単位の左上端のサンプルを起点とした予測単位インデクスpuIdxによって示される。
【0169】
予測単位は複数のパーティション(予測単位パーティションまたはサブPU)を含んでいてもよい。予測単位パーティションは、予測単位の左上端のサンプルを起点とした予測単位パーティションインデクスpuPartIdxによって示される。
【0170】
予測単位は複数の変換単位を含んでいてもよい。符号化単位と同様に、変換単位は4つの小さいサイズの変換単位(サブ変換単位)に分割されてもよい。このことは、残差信号の四分木分割を許可する。変換単位の位置は、予測単位の左上端のサンプルを起点とした変換単位インデクスtuIdxによって示される。
【0171】
ここで、各処理単位の定義は以下のとおりである。
【0172】
CTB(coding tree block):正方形領域の四分木分割を特定するための基本単位。CTBは正方形の多様なサイズを有する。
【0173】
LCTB(largest coding tree block):スライスにおいて許可される最も大きいサイズのCTB。スライスは重複しない複数のLCTBからなる。
【0174】
SCTB(smallest coding tree block):スライスにおいて許可される最も小さいサイズのCTB。SCTBをより小さいCTBに分割することは許可されていない。
【0175】
PU(prediction unit):予測処理を特定するための基本単位。PUのサイズは、分割が許可されていないCUのサイズと同じである。CUでは、CUを4つの正方形領域に分割することが許可されているのに対して、PUでは、PUを任意の形状の複数のパーティションに分割することができる。
【0176】
TU(transform unit):変換および量子化を特定するための基本単位。
【0177】
CU(coding unit):CTBと同一。
【0178】
LCU(largest coding unit):最も大きいCTBと同一。
【0179】
SCU(smallest coding unit):最も小さいCTBと同一。
【0180】
また、量子化パラメータは、デルタ量子化スケールパラメータ(delta QPまたはQP delta)、量子化オフセットパラメータ、インデクス(Qmatrix select idc)および量子化デッドゾーンオフセットパラメータのうちの少なくとも1つを含む。なお、インデクスは、複数の量子化スケールマトリクスから1つを選択するためのものである。
【0181】
デルタ量子化スケールパラメータ(delta QP or QP delta)は、変換係数に適用されるべき量子化スケールパラメータと、シーケンスヘッダまたはスライスヘッダで指定される量子化スケールパラメータ(または、Z走査順で直前の量子化スケールパラメータ)との差分である。
【0182】
量子化オフセットパラメータは、量子化オフセットとも呼ばれ、量子化を行う際の信号の丸め方の調整値(オフセット値)である。したがって、画像符号化装置100は、量子化を行うときには、その量子化オフセットを符号化し、画像復号装置200は、その符号化された量子化オフセットを復号する。そして、画像復号装置200は、変換係数を逆量子化する際には、その量子化オフセットを用いた補正を行う。
【0183】
インデクス(Qmatrix select idc)は、適応量子化マトリクスとも呼ばれ、複数の量子化スケーリングマトリクスから何れの量子化スケーリングマトリクスを用いるかを示すインデクスである。また、Qmatrix select idcは、1つの量子化スケーリングマトリクスしかない場合には、その量子化スケーリングマトリクスを使うか否かを示す。なお、適応用量子化マトリクスはブロック単位(処理単位)で制御可能である。
【0184】
量子化デッドゾーンオフセットパラメータは、適応デッドゾーンとも呼ばれ、デッドゾーンをブロック毎に適応的に変更するための制御情報である。デッドゾーンは、周波数係数が量子化によって0となる幅(量子化後に+1または−1となる直前の幅)である。
【0185】
なお、上記説明では、パターン3として予め定められた固定値をコンテキスト値として用いる例を述べたが、上ブロック及び左ブロックの制御パラメータを共に利用しない条件であればよく、パターン3として上ブロック及び左ブロックの制御パラメータの条件を含まない条件を用いてもよい。例えば、パターン3として、コンテキスト制御部142又は242は、制御パラメータの属するデータ単位の階層の深さに応じてコンテキストを決定してもよい。
【0186】
(実施の形態3)
本実施の形態では、上記第1種別及び第2種別(又は第3種別)としてどのような信号種別を利用すべきかについて説明する。
【0187】
具体的には、本発明者は、
図3(非特許文献2、9.3.3.1.1.1節)に示された信号種別のうち以下の信号種別の個々について検証を行った。個々の信号種別について検証を行ったのは、パラメータが多岐にわたり、1つの信号種別についての検証結果(パターン1〜パターン3のいずれがよいか)から、他の信号種別の各パターンが妥当性を満たすかあるかの予見が困難であるためである。
【0188】
検証は JCTVC-E700, "Common test conditions and software reference configurations"(非特許文献3参照)に記載された構成(設定パラメータ、及びソフトウェアバージョンHM3.0)に準拠する。また、テスト画像の長さは全て49フレームに制限した結果である。
【0189】
本実施の形態に係る画像符号化方法及び画像復号方法はCABACに関するものである。よって、Entropy Codingモードとして、SymbolModeの値が1(# 0:LCEC, 1:CABAC )である設定値のセットである以下の4つのテストパターンを用いて検証を行った。
【0190】
4.1 Intra, high-efficiency setting
4.3 Random access, high-efficiency setting
4.5 Low delay, high-efficiency setting
4.7 Low delay, high-efficiency setting (P slices only)
【0191】
また、評価は、HEVCでの実装評価に統一的な評価尺度として利用されている"BD-RATE"値とよばれる評価値を用いる。Y BD-rate、U BD-rate、及びV BD-rateは、色空間Y, U, VについてのBD-rateであり、評価尺度値である。ここでBD-rateとは、VCEG-AI11(非特許文献4)に記載されている、2組の符号量とPSNRの結果とを積分し、その面積の比によって符号化効率を表した評価値ある。また、BD-rateがマイナスの値を示す場合に符号化効率が良くなったことを示している。比較の基準はパターン1を実装する参照プログラムの出力結果であり、今回の結果は、パターン2及びパターン3の各々のパターン1に対する値を示している。
【0192】
以下、各信号種別の検証結果を説明する。
【0193】
(第1の検証)"split_coding_unit_flag"
(第2の検証)"skip_flag"
(第3の検証)"inter_pred_flag"
【0194】
(第1の検証)"split_coding_unit_flag"
図11はsplit_coding_unit_flagの算術復号方法について説明するための表である。
【0195】
検証においては、検証対象の信号種別のみ、コンテキストモデルをパターン1からパターン2またはパターン3に変更し、他の信号種別、及び非特許文献3で指定する検証用パラメータについては変更をせず検証を行っている。また、
図11の欄中の値で「固定」とは、コンテキスト値(又は増分値)の導出において、「固定」が記載された列の条件(左ブロック条件又は上ブロック条件を用いないことである。つまり、左ブロック条件及び右ブロック条件の一方の条件のみが「固定」の場合は、他方の条件のみが用いられる。また、左ブロック条件及び右ブロック条件の両方が「固定」の場合には、コンテキスト値(又は増分値)として予め定められた値(例えば「0」)が用いられる。
【0196】
信号種別"split_coding_unit_flag"の意味は、以下で定義される。
【0197】
split_coding_unit_flag[x0][y0]は、対象のCUが水平及び垂直のサイズが半分の複数のCUに分割されるか否かを示す。x0及びy0は、画像の左上隅に位置する輝度サンプルを基準とした、対象のCUの左上隅に位置する輝度サンプルの座標を示す。つまり、split_coding_unit_flagは、対象のCUが4分割されているか否かを示す。具体的には、split_coding_unit_flagの値が「1」の場合、対象のCUは分割されており、当該値が「0」の場合、対象のCUは分割されていない。
【0198】
このsplit_coding_unit_flagは、syntaxとしてCoding tree syntaxにデータ構造化される。画像復号装置は、このデータ構造のシンタクスに準じてビット列を解釈する。
【0199】
図12A及び
図12Bはsplit_coding_unit_flagについての検証結果を示す表である。
【0200】
図12Aは、(パターン2)1個の隣接ブロック(左ブロック条件Lの判定値のみ)が用いられる場合の検証結果を示す。
図12Bは、(パターン3)0個の隣接ブロックが用いられる(上ブロック条件Lも左も用いられない)場合の検証結果を示す。
【0201】
また、
図12A及び
図12Bに示す検証結果は、上述した4つのテストパターンのBD-Rate値の増減を示す。
【0202】
また、評価値は、左ブロック及び上ブロックの両方を用いるパターン1の場合の評価値との相対的な値を示す評価尺度である。具体的には、評価値が正の値であればその結果はパターン1の場合の評価値(BD-rate)よりも悪い。また、評価値が負の値であればその結果はパターン1の場合の評価値よりも改善されている。
【0203】
この結果によれば、split_coding_unit_flagに関しては、コンテキストモデルのパターンとしてパターン1が優れていることがわかる。言い換えると、パターン2及びパターン3はパターン1より評価値が悪い。
【0204】
従って、コンテキスト制御部142及び242は、制御パラメータの信号種別が "split_coding_unit_flag" である場合は、BD-rateの観点より、従来通りのコンテキストモデルのパターンであるパターン1を利用してコンテキスト値を決定する。
【0205】
(第2の検証)“skip_flag”
図13はskip_flagの算術復号方法について説明するための表である。なお、検証方法は、上述した第1の検証と同様である。
【0206】
信号種別"skip_flag"の意味は以下で定義される。
【0207】
P又はBスライスを復号する場合において、skip_flag[x0][y0]の値が「1」の場合、当該skip_flag[x0][y0]の後に、予測動きベクトルインデクス以外に、現在のCU用のシンタックスエレメントが存在しないことを意味する。また、skip_flag[x0][y0]の値が「1」の場合、現在のCUがスキップされないことを意味する。x0及びy0は、画像の左上隅に位置する輝度サンプルを基準とした、対象のCUの左上隅に位置する輝度サンプルの座標を示す。つまり、skip_flagは、対象のCUをスキップするか(スキップドブロックとして扱うか)否かを示す。
【0208】
このskip_flagは、syntaxとしてCoding unit syntaxにデータ構造化される。つまり、skip_flagはCUごとに設定される。画像復号装置では、このデータ構造のシンタクスに準じて、ビット列を解釈する。
【0209】
図14A及び
図14Bはskip_flagについての検証結果を示す表である。
【0210】
図14Aは、(パターン2)1個の隣接ブロック(左ブロック条件Lの判定値のみ)が用いられる場合の検証結果を示す。
図14Bは、(パターン3)0個の隣接ブロックが用いられる(上ブロック条件Lも左も用いられない)場合の検証結果を示す。
【0211】
なお、
図14A及び
図14Bに示す検証結果は、第1の検証と同様に、上述した4つのテストパターンのBD-Rate値の増減を示す。また、評価値の意味は第1の検証と同様である。
【0212】
この結果によれば、"skip_flag"に関しては、コンテキストモデルのパターンとしてパターン1が優れていることがわかる。言い換えると、パターン2及びパターン3はパターン1より評価値が悪い。
【0213】
従って、コンテキスト制御部142及び242は、制御パラメータの信号種別が "skip_flag"である場合は、BD-rateの観点より、従来通りのコンテキストモデルのパターンであるパターン1を利用してコンテキスト値を決定する。
【0214】
(第3の検証)"inter_pred_flag"
図15はinter_pred_flagの算術復号化方法について説明するための表である。
【0215】
信号種別"inter_pred_flag"の意味は以下で定義される。
【0216】
inter_pred_flag[x0][y0]は、テーブル7 11に従い、現在のPUに、uni-prediction及びbi-predictionのいずれが使用されるかを示す。x0及びy0は、画像の左上隅に位置する輝度サンプルを基準とした、対象の予測ブロックの左上隅に位置する輝度サンプルの座標を示す。ここで、uni-predictionは、lc(合成リスト)を使用する予測であり、bi-predictionはリスト0及びリスト1を使用する予測である。また、合成リストはリスト0及びリスト1が合成(マージ)されたものである。また、inter_pred_flagは、対象スライスがBスライスの場合にのみ用いられる。
【0217】
このinter_pred_flagは、syntaxとして"Prediction Unit"にデータ構造化される。画像復号化装置では、このデータ構造のシンタクスに準じて、ビット列を解釈する。
【0218】
図16A及び
図16Bはinter_pred_flagについての検証結果を示す表である。
【0219】
図16Aは、(パターン2)1個の隣接ブロック(左ブロック条件Lの判定値のみ)が用いられる場合の検証結果を示す。
図16Bは、(パターン3)0個の隣接ブロックが用いられる(上ブロック条件Lも左も用いられない)場合の検証結果を示す。
【0220】
なお、
図16A及び
図16Bに示す検証結果は、第1の検証と同様に、上述した4つのテストパターンのBD-Rate値の増減を示す。また、評価値の意味は第1の検証と同様である。
【0221】
この結果によれば、前述の第1の検証のsplit_coding_unit_flag、及び、第2の検証のskip_flagとは結果が異なり、このinter_pred_flagに関しては、コンテキストモデルのパターンとしてパターン1と、パターン2またはパターン3との間にBD-rateの大きな差が発生していない。
【0222】
従って、コンテキスト制御部142及び242は、複数の信号種別の制御パラメータが混在する環境において、特に、信号種別がinter_pred_flagである場合は、隣接ブロックとして上ブロックを利用しないでコンテキスト値を決定する。つまり、コンテキスト制御部142及び242は、制御パラメータの信号種別がinter_pred_flagである場合は、パターン2又はパターン3を用いてコンテキスト値を決定する。言い換えると、上記第1種別は、"split_coding_unit_flag"、または、"skip_flag"を含み、上記第2種別又は第3種別は、"inter_pred_flag"を含む。これにより、本実施の形態に係る画像符号化装置及び画像復号装置は、BD-rate値の低下を抑えつつ、メモリ使用量を削減することができる。
【0223】
なお、inter_pred_flagに対するパターン2とパターン3とを比較した場合、これらのBD-rateには大きな差が発生していない。よって、inter_pred_flagに対してパターン3を用いることがより好ましい。これにより、さらなるメモリ使用量の削減、及び処理量の削減を実現できる。
【0224】
ここで、スキップモード及びマージモードではない通常のインター予測モードの場合にinter_pred_flagが用いられる。スキップモード及びマージモードでは、処理対象ブロックの動きベクトルとして上ブロック及び左ブロックと同じ動きベクトルが利用されるが、それ以外の通常のインター予測モードでは、処理対象ブロックの動きベクトルとして上ブロック及び左ブロックと異なる動きベクトルが利用される。これにより、inter_pred_flagに対して、パターン1のように上及び左ブロックを利用すると符号化効率が低下すると考えられる。つまり、inter_pred_flagに対してパターン2又はパターン3を用いることで符号化効率を向上させることが可能になる。
【0225】
さらに、上述したように、inter_pred_flagに対して、処理対象ブロックの階層に応じてコンテキスト値を決定することで符号化効率をさらに向上できる。
【0226】
以上、本発明の実施の形態に係る画像符号化装置及び画像復号装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【0227】
例えば、上記実施の形態1〜3に係る、画像符号化装置、画像復号装置及びそれらの変形例の機能のうち少なくとも一部を組み合わせてもよい。
【0228】
また、上記で用いた数字及び論理値は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
【0229】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0230】
また、上記の画像符号化装置による画像符号化方法、及び画像復号装置による画像復号方法における、各ステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0231】
(実施の形態4)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
【0232】
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
【0233】
図19は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
【0234】
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
【0235】
しかし、コンテンツ供給システムex100は
図19のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【0236】
カメラ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)等であり、いずれでも構わない。
【0237】
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0238】
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
【0239】
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
【0240】
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【0241】
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【0242】
なお、コンテンツ供給システムex100の例に限らず、
図20に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0243】
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
【0244】
図21は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
【0245】
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
【0246】
まず、テレビ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の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【0247】
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
【0248】
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
【0249】
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を
図22に示す。情報再生/記録部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は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【0250】
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【0251】
図23に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
【0252】
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
【0253】
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば
図21に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
【0254】
図24Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
【0255】
さらに、携帯電話ex114の構成例について、
図24Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
【0256】
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
【0257】
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
【0258】
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
【0259】
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
【0260】
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
【0261】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
【0262】
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
【0263】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【0264】
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【0265】
(実施の形態5)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
【0266】
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
【0267】
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
【0268】
図25は、多重化データの構成を示す図である。
図25に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
【0269】
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
【0270】
図26は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
【0271】
図27は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。
図27における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。
図27の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
【0272】
図28は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには
図28下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
【0273】
また、多重化データに含まれる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時間の情報を持つ。
【0274】
図29はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
【0275】
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
【0276】
多重化データ情報ファイルは、
図30に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
【0277】
多重化データ情報は
図30に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
【0278】
ストリーム属性情報は
図31に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
【0279】
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
【0280】
また、本実施の形態における動画像復号化方法のステップを
図32に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
【0281】
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
【0282】
(実施の形態6)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、
図33に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【0283】
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
【0284】
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
【0285】
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
【0286】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0287】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0288】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【0289】
(実施の形態7)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
【0290】
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。
図34は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
【0291】
より具体的には、駆動周波数切替え部ex803は、
図33のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、
図33の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態5で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態5で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、
図36のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
【0292】
図35は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
【0293】
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
【0294】
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
【0295】
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、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などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
【0296】
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
【0297】
(実施の形態8)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
【0298】
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を
図37Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、算出復号に特徴を有していることから、例えば、算術復号については専用の復号処理部ex901を用い、それ以外の逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
【0299】
また、処理を一部共有化する他の例を
図37Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
【0300】
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。