【文献】
Nguyen Nguyen 295 Phillip St. Waterloo, ON, Canada N2L 3W8,Adaptive Thresholds for Greater-Than-1 and Greater-Than-2 Flags[online], JCTVC-I JCTVC-I0281,インターネット<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0281-v4.zip>
【文献】
Nguyen Nguyen 185 Columbia St. W. Waterloo, ON, Canada N2L 5Z5,Context Set Selection for Coefficient Level Coding[online], JCTVC-H JCTVC-H0404,インターネット<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H0404-v3.zip>
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
(本発明の基礎となった知見)
本発明者は、従来の画像符号化方法に関し、以下の問題が生じることを見出した。
【0011】
現在のHEVC規格(例えば、非特許文献1を参照)における画像符号化方法は、符号化画像を予測するステップと、予測画像と符号化対象画像との差分を求めるステップと、差分画像を周波数係数に変換するステップと、周波数係数を算術符号化するステップとを含む。算術符号化では、符号化対象の係数ブロックに含まれる複数の係数は、高周波成分から低周波成分の順に符号化される。このとき符号化済み係数に応じてコンテキストが選択され、選択されたコンテキストに対応して決められるシンボル発生確率を用いて符号化対象係数が算術符号化される。
【0012】
一般的な画像では低周波成分に近い係数ほど大きい値になる場合が多いため、符号化済みの係数(符号化対象係数より高周波の係数)を参照してコンテキストを決めることによってシンボル発生確率に偏りを持たせることができる。例えば符号化済みの係数(符号化対象係数より高周波の係数)で値が大きければ符号化対象係数も大きい値となる確率が大きい。よって、画像符号化装置は、大きい値用のコンテキストを使用することによって発生符号量を抑えることができる。現在のHEVC規格では、符号化済みの係数において係数の絶対値が2以上の係数の個数をカウントし、その個数に応じて符号化対象係数のコンテキストを決定する。
【0013】
しかしながら、上記画像符号化方法では符号化済みの係数において絶対値が2以上の係数の個数をカウントする必要があり、カウントする処理及びカウント値を格納するためのレジスタが必要であるという課題があることを本発明者は見出した。
【0014】
上記目的を達成するために、本発明の一態様に係る画像符号化方法は、算術符号化を用いる画像符号化方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを含み、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える。
【0015】
これによれば、当該画像符号化方法は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像符号化方法は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像符号化方法は、符号化効率の低下を抑制しつつ、処理量を低減できる。
【0016】
例えば、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記直前の係数ブロックの算術符号化の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定してもよい。
【0017】
これによれば、当該画像符号化方法は、他の処理で用いられた変数を、コンテキストの切り替え処理に流用することで、処理量を低減できる。
【0018】
例えば、前記画像符号化方法は、さらに、前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い二値化し、前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、前記変数は、前記二値化パラメータであってもよい。
【0019】
例えば、前記閾値は1であってもよい。
【0020】
また、本発明の一態様に係る画像復号方法は、算術復号を用いる画像復号方法であって、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを含み、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える。
【0021】
これによれば、当該画像復号方法は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像復号方法は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像復号方法は、符号化効率の低下を抑制しつつ、処理量を低減できる。
【0022】
例えば、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記直前の係数ブロックの算術復号の際に生成された変数を用いて、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定してもよい。
【0023】
これによれば、当該画像復号方法は、他の処理で用いられた変数を、コンテキストの切り替え処理に流用することで、処理量を低減できる。
【0024】
例えば、前記画像復号方法は、さらに、前記処理対象の係数の絶対値が2より大きい場合に、前記処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い多値化し、前記二値化パラメータは、前記直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定され、前記変数は、前記二値化パラメータであってもよい。
【0025】
例えば、前記閾値は1であってもよい。
【0026】
また、本発明の一態様に係る画像符号化装置は、算術符号化を用いる画像符号化装置であって、制御回路と、前記制御回路からアクセス可能な記憶装置とを備え、前記制御回路は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術符号化する第1フラグ符号化ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術符号化する第2フラグ符号化ステップとを実行し、前記第1フラグ符号化ステップ及び前記第2フラグ符号化ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術符号化に使用するコンテキストを切り替える。
【0027】
これによれば、当該画像符号化装置は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像符号化装置は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像符号化装置は、符号化効率の低下を抑制しつつ、処理量を低減できる。
【0028】
また、本発明の一態様に係る画像復号装置は、算術復号を用いる画像復号装置であって、制御回路と、前記制御回路からアクセス可能な記憶装置とを備え、前記制御回路は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグを算術復号する第1フラグ復号ステップと、前記処理対象の係数の絶対値が2より大きいか否かを示す第2フラグを算術復号する第2フラグ復号ステップとを実行し、前記第1フラグ復号ステップ及び前記第2フラグ復号ステップでは、前記処理対象の係数ブロックの直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し、判定結果に応じて、前記第1フラグ及び前記第2フラグの算術復号に使用するコンテキストを切り替える。
【0029】
これによれば、当該画像復号装置は、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じてコンテキストを切り替える。よって、当該画像復号装置は、係数の個数に応じてコンテキストを切り替える場合に比べて処理量を低減できる。また、当該画像復号装置は、符号化効率の低下を抑制しつつ、処理量を低減できる。
【0030】
また、本発明の一態様に係る画像符号化復号装置は、前記画像符号化装置と、前記画像復号装置とを備える。
【0031】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【0032】
以下、画像符号化装置及び画像復号装置の実施の形態について図面を参照して説明する。
【0033】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0034】
(実施の形態1)
本実施の形態では、画像符号化装置の実施の形態について説明する。
【0035】
<全体構成>
図1は、本実施の形態に係る画像符号化装置の構成を示すブロック図である。
【0036】
図1に示す画像符号化装置100は、入力画像121を符号化することで符号列125(符号化ビットストリーム)を生成する。この画像符号化装置100は、符号ブロック分割部101と、減算部102と、変換部103と、可変長符号化部104と、逆変換部105と、加算部106と、フレームメモリ107と、予測部108とを備える。
【0037】
<動作(全体)>
次に、
図2を参照しつつ、符号化処理全体の流れについて説明する。
【0038】
(ステップS101)
符号ブロック分割部101は、入力画像121を符号ブロック122に分割し、符号ブロック122を順次、減算部102及び予測部108に出力する。この時、符号ブロック122のサイズは可変であり、符号ブロック分割部101は、入力画像121の特徴を用いて入力画像121を符号ブロック122に分割する。例えば、符号ブロック122の最小サイズは横4画素×縦4画素であり、最大サイズは横32画素×縦32画素である。
【0039】
(ステップS102)
予測部108は、符号ブロック122と、フレームメモリ107に格納されている復号画像128とを用いて予測ブロック129を生成する。
【0040】
(ステップS103)
減算部102は、符号ブロック122と予測ブロック129との差分である差分ブロック123を生成する。
【0041】
(ステップS104)
変換部103は、差分ブロック123を周波数係数124に変換する。
【0042】
(ステップS105)
可変長符号化部104は、周波数係数124を可変長符号化することで符号列125を生成する。
【0043】
(ステップS106)
逆変換部105は、周波数係数124を画素データに変換することで差分ブロック126を復元する。
【0044】
(ステップS107)
加算部106は、復元された差分ブロック126と予測ブロック129とを加算することで復号ブロック127を生成し、生成された復号ブロック127を復号画像128としてフレームメモリ107に格納する。
【0045】
(ステップS108)
符号化対象画像内の全符号ブロックの符号化が完了するまでステップS102からステップS107が繰り返えされる。
【0046】
以降、可変長符号化部104について詳細に説明する。
【0047】
<可変長符号化部104の構成>
図3は、可変長符号化部104の構成を示すブロック図である。
【0048】
本実施の形態では可変長符号化部104は、周波数係数124(以下、単に「係数」とも呼ぶ)をsignificant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagの5つのパラメータを用いて符号化する。
【0049】
significant_flagは係数が0かどうかを示すフラグであり、値が0の場合は係数が0であることを示し、値が1の場合は係数が0以外であることを示す。
【0050】
greater1_flagはsignificant_flagが1である係数(0ではない係数)に対してのみ存在する。greater1_flagは、係数の絶対値が2以上(1より大きい)かどうかを示すフラグである。greater1_flagの値が0の場合は係数の絶対値が1であることを示し、値が1の場合は係数の絶対値が2以上であることを示す。
【0051】
greater2_flagはgreater1_flagが1である係数(絶対値が2以上の係数)に対してのみ存在する。greater2_flagは係数の絶対値が3以上(2より大きい)かどうかを示すフラグである。greater2_flagの値が0の場合は係数の絶対値が2であることを示し、値が1の場合は係数の絶対値が3以上であることを示す。
【0052】
remainingはgreater2_flagが1である係数(絶対値が3以上の係数)に対してのみ存在する。remainingは係数の絶対値から3を減算した値を示す。
【0053】
sign_flagはsignificant_flagが1である係数(0ではない係数)に対してのみ存在する。sign_flagは係数が負の値かどうか(負であるか正であるか)を示すフラグである。sign_flagの値が0の場合は係数が正の値であることを示し、値が1の場合は係数が負の値であることを示す。
【0054】
図3に示すように、可変長符号化部104は、係数ブロック分割部131と、significant_flag符号化部132と、level符号化部133と、sign_flag符号化部134とを備える。
【0055】
significant_flag符号化部132は、significant_flagを符号化する。level符号化部133は、greater1_flag、greater2_flag、及びremainingを符号化する。sign_flag符号化部134は、sign_flagを符号化する。
【0056】
<動作(可変長符号化)>
次に、
図4を参照しつつ、可変長符号化処理の流れを説明する。
【0057】
(ステップS121)
係数ブロック分割部131は、符号ブロック(周波数係数124)を4×4の係数ブロックに分割する。具体的には、係数ブロック分割部131は、符号ブロックが32×32の場合、横に8分割し、縦に8分割する。また、係数ブロック分割部131は、符号ブロックが4×4の場合は分割を行わない。なお、以降のステップS122〜ステップS124は係数ブロック毎に実行される。また、複数の係数ブロックは、高域成分の係数ブロックから低域成分の係数ブロックの順に処理される。
【0058】
(ステップS122)
significant_flag符号化部132は、係数ブロックに含まれる各係数のsignificant_flagを符号化する。
【0059】
(ステップS123)
level符号化部133は、係数ブロックに含まれる各係数のgreater1_flag、greater2_flag、及びremainingを符号化する。
【0060】
(ステップS124)
sign_flag符号化部134は、係数ブロックに含まれる各係数のsign_flagを符号化する。
【0061】
(ステップS125)
符号ブロックに含まれる全ての係数ブロックの処理が完了するまでステップS122〜S124が繰り返される。
【0062】
以降、level符号化部133を詳細に説明する。
【0063】
<level符号化部133の構成>
図5は、level符号化部133の構成を示すブロック図である。
図5に示すようにlevel符号化部133は、greater1_flag設定部141と、greater2_flag設定部142と、remaining設定部143と、二値化パラメータ更新部144と、コンテキストセット選択部145と、greater1_flagメモリ146と、greater1_flagコンテキスト選択部147と、greater1_flagコンテキストメモリ148と、greater2_flagコンテキスト選択部149と、greater2_flagコンテキストメモリ150と、算術符号化部151と、remaining二値化部152とを備える。remaining二値化部152は、Prefix Suffix決定部153と、Suffix bin出力部154と、Prefix bin出力部155とを備える。
【0064】
level符号化部133は、まず、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセットを選択する。次に、level符号化部133は、greater1_flag、greater2_flag、及びremainingをこの順に符号化する。level符号化部133は、remainingを算術符号化の前に多値信号から二値信号(bin)に変換する。その際、level符号化部133は、二値化パラメータ(cParam)を用いて二値信号(bin)の長さを適応的に変更する。また、level符号化部133は、コンテキストセットの選択の際にもこの二値化パラメータを用い、コンテキストセットを適応的に選択する。
【0065】
<動作(level符号化)>
次に、
図6〜
図9を参照しつつ、level符号化部133による符号化処理の流れを詳細に説明する。
図6は、level符号化部133による符号化処理の流れを示す図である。
【0066】
(ステップS141)
コンテキストセット選択部145は、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセット番号を設定する。詳細は後述する。
【0067】
(ステップS142)
二値化パラメータ更新部144は、二値化パラメータ(cParam)を0に初期化する。本処理によって4×4の係数ブロックの先頭でcParamが0に設定される。なお、ステップS141及びステップS142は係数ブロックに対して1回行われる。ステップS143以降は係数毎に行われる。
【0068】
(ステップS143)
level符号化部133は、係数ブロックに含まれる各係数のgreater1_flagを符号化する。
図7は、この処理の詳細を示すフローチャートである。
【0069】
(ステップS151)
greater1_flag設定部141は、対象係数(処理対象の係数)の絶対値が1以上か判定する。対象係数の絶対値が1以上であればステップS152〜S154でgreater1_flagは符号化され、対象係数の絶対値が0であればgreater1_flagは符号化されない。
【0070】
(ステップS152)
greater1_flag設定部141は、対象係数の絶対値が2以上の場合にはgreater1_flagを1に設定し、対象係数の絶対値が1であればgreater1_flagを0に設定する。
【0071】
(ステップS153)
greater1_flagコンテキスト選択部147は、ステップS141で選択されたコンテキストセット番号を用いてコンテキスト番号を設定する。詳細は後述する。
【0072】
(ステップS154)
算術符号化部151は、ステップS153で選択されたコンテキスト番号に従ってgreater1_flagコンテキストメモリ148から使用するコンテキストをロードし、そのコンテキストを用いてgreater1_flagの算術符号化を行う。また、算術符号化部151は、この算術符号化で更新されたコンテキストを、greater1_flagコンテキストメモリ148の、元のコンテキストと同じ場所にストアする。
【0073】
(ステップS155)
4×4の係数ブロック内の全係数の処理が完了するまでステップS151〜ステップS155が繰り返えされる。
【0074】
以上により、係数ブロックに含まれる各係数のgreater1_flagが符号化される。
【0075】
(ステップS144)
level符号化部133は、係数ブロックに含まれる各係数のgreater2_flagを符号化する。
図8は、この処理の詳細を示すフローチャートである。
【0076】
(ステップS161)
greater2_flag設定部142は、対象係数の絶対値が2以上か判定する。対象係数の絶対値が2以上であればステップS162〜S165でgreater2_flagは符号化され、対象係数の絶対値が1以下であればgreater2_flagは符号化されない。
【0077】
(ステップS162)
greater2_flag設定部142は、対象係数の絶対値が3以上の場合にはgreater2_flagを1に設定し、対象係数の絶対値が2であればgreater2_flagを0に設定する。
【0078】
(ステップS163)
greater2_flagコンテキスト選択部149は、ステップS141で選択されたコンテキストセット番号をコンテキスト番号に設定する。greater2_flagのコンテキストはgreater1_flagと異なり、コンテキストセット番号そのものがコンテキスト番号に設定される。つまり、greater2_flagの1つのコンテキストセットは1つのコンテキストしか含まない。
【0079】
(ステップS164)
算術符号化部151は、ステップS150で選択されたコンテキスト番号に従ってgreater2_flagコンテキストメモリ150から使用するコンテキストをロードし、そのコンテキストを用いてgreater2_flagの算術符号化を行う。また、算術符号化部151は、この算術符号化で更新されたコンテキストを、greater2_flagコンテキストメモリ150の、元のコンテキストと同じ場所にストアする。
【0080】
(ステップS165)
4×4の係数ブロック内の全係数の処理が完了するまでステップS161〜ステップS164が繰り返される。
【0081】
以上により、係数ブロックに含まれる各係数のgreater2_flagが符号化される。
【0082】
(ステップS145)
level符号化部133は、係数ブロックに含まれる各係数のremainingを符号化する。
図9は、この処理の詳細を示すフローチャートである。
【0083】
(ステップS171)
remaining設定部143は、対象係数の絶対値が3以上か判定する。対象係数の絶対値が3以上であればステップS172〜S175でremainingは符号化され、対象係数の絶対値が2以下であればremainingは符号化されない。
【0084】
(ステップS172)
remaining設定部143は、対象係数の絶対値から3を減算した数値をremaining(多値信号)に設定する。
【0085】
(ステップS173)
remaining二値化部152は、remainingの多値信号を二値信号に変換する。詳細は後述する。
【0086】
(ステップS174)
算術符号化部151は、remainingの算術符号化を行う。remainingは、greater1_flag及びgreater2_flagと異なり、コンテキストを用いないBypass算術符号化により符号化される。
【0087】
(ステップS175)
二値化パラメータ更新部144は、二値化パラメータ(cParam)を更新する。詳細は後述する。
【0088】
(ステップS176)
係数ブロック内の全係数の処理が完了するまでステップS171〜ステップS175が繰り返される。
【0089】
<動作(コンテキストセット選択)>
次に、
図10を参照しつつ、コンテキストセット選択処理(
図6のS141)を詳細に説明する。
【0090】
(ステップS181〜S183)
コンテキストセット選択部145は、処理対象の係数ブロックが符号ブロック内で最も低周波の係数ブロックであるかどうかを判定し、処理対象の係数ブロックが最も低周波の係数ブロックである場合はコンテキストセット番号に0を設定し、そうでない場合はコンテキストセット番号に2を設定する。つまり、コンテキストセット選択部145は、処理対象の係数ブロックが符号ブロック内の左上の係数ブロックの場合はコンテキストセット番号に0を設定し、そうでない場合はコンテキストセット番号に2を設定する。
【0091】
(ステップS184〜S185)
コンテキストセット選択部145は、直前に処理された係数ブロック(直前の係数ブロック)の更新後の二値化パラメータ(cParam)が0より大きい場合はコンテキストセット番号に1を加算する。こうすることにより直前の係数ブロックでcParamが一回でも更新された場合はコンテキストセットが切り替えられる。
【0092】
このように、ステップS181〜S185によってコンテキストセット番号は0〜3のいずれかの値に設定される。つまり、コンテキストセットは4種類あり、コンテキストセット選択部145は、4種類の中から1種類を選択する。
【0093】
<動作(greater1_flagコンテキスト選択)>
次に、
図11を参照しつつ、greater1_flagコンテキスト選択処理(
図7のS153)を詳細に説明する。
【0094】
(ステップS191)
greater1_flagコンテキスト選択部147は、処理対象の係数ブロック内の処理済み係数において、値1のgreater1_flagの個数(G1NUM)を算出する。つまり、greater1_flagコンテキスト選択部147は、係数の絶対値が2以上の係数の個数を算出する。なお、処理済み係数のgreater1_flagはgreater1_flagメモリ146に格納されており、greater1_flagコンテキスト選択部147は、greater1_flagメモリ146から処理済み係数のgreater1_flagを取得する。
【0095】
(ステップS192〜S193)
ステップS191で算出されたG1NUMが1以上の場合、greater1_flagコンテキスト選択部147は、コンテキストオフセットを3に設定し、G1NUMが0の場合はステップS194へ進む。つまり、係数ブロック内の処理済み係数のうち1個でも絶対値が2以上の係数がある場合は、コンテキストオフセットが3に設定される。
【0096】
(ステップS194)
greater1_flagコンテキスト選択部147は、処理対象の係数ブロック内の処理済み係数のうち、greater1_flagを持つ係数の個数(G1NUM2)を算出する。つまり、greater1_flagコンテキスト選択部147は、係数の絶対値が1以上の係数の個数を算出する。なお、greater1_flagコンテキスト選択部147は、処理済み係数のgreater1_flagをgreater1_flagメモリ146から取得する。
【0097】
(ステップS195〜S197)
greater1_flagコンテキスト選択部147は、ステップS194で算出されたG1NUM2が2より大きい場合はコンテキストオフセットに2を設定し、それ以外の場合はコンテキストオフセットにG1NUM2の値を設定する。
【0098】
このように、ステップS191〜S197によってコンテキストオフセットは0〜3のいずれかの値が設定される。
【0099】
(ステップS198)
greater1_flagコンテキスト選択部147は、コンテキスト番号に「(コンテキストセット番号×4)+コンテキストオフセット」を設定し、設定されたコンテキスト番号をgreater1_flagコンテキストメモリ148に出力する。
図12に示すように、コンテキストセット番号は0〜3であり、コンテキストオフセットは0〜3であるため、コンテキスト番号は0〜15のいずれかの値である。つまり、コンテキストセットは4種類あり、greater1_flagではコンテキストセット内に4つのコンテキストが存在する。コンテキストセット選択部145により4種類の中から1種類のコンテキストセットが選択され、選択されたコンテキストセットの中の4つのコンテキストの中から、greater1_flagコンテキスト選択部147により、1つのコンテキストが選択される。
【0100】
<動作(remaining二値化)>
次に、
図13〜
図16を参照しつつ、remaining二値化処理(
図9のS173)を詳細に説明する。概要を説明すると、二値信号(bin)はPrefixとSuffixとを含む。二値化パラメータ(cParam)に応じて、Prefix、及びSuffixの決定方法が切り替えられる。
【0101】
(ステップS201)
Prefix Suffix決定部153は、Prefix及びSuffixを決定する。
図14は、この処理の詳細を示すフローチャートである。
【0102】
(ステップS211〜S222)
Prefix Suffix決定部153は、Prefix及びSuffixの決定にcParamを用いる。処理は大きく2つに分けられ、remainingが小さい場合はステップS213〜S214によってPrefix及びSuffixが決定され、remainingが大きい場合はステップS215〜S222によってPrefix及びSuffixが決定される。remainingが小さいか大きいかを分ける閾値にcParamが用いられ、cParamが大きいほど閾値は大きくなる。また、cParamはPrefix及びSuffixのbin長にも関連する。
【0103】
図15A〜
図15Cは、cParam及びremainingに応じたPrefix及びSuffixのbinを示す図である。
図15A〜
図15Cに示すように、remainingが小さい場合はcParamが小さいほどbin長は短くなり、remainingが大きい場合はcParamが大きいほどbin長は短くなる。つまり、remainingが小さい確率が高い場合はcParamを小さくした方が符号化効率は良くなる可能性が高い。逆にremainingが大きい確率が高い場合はcParamを大きくした方が符号化効率は良くなる可能性が高い。
【0104】
(ステップS202)
Prefix bin出力部155は、Prefixに関するbinを算術符号化部151へ出力する。
図16は、この処理の詳細を示すフローチャートである。
【0105】
(ステップS231〜S235)
Prefix bin出力部155は、まずPrefixの値の数だけ「1」を出力し、最後に「0」を出力する。
【0106】
(ステップS203)
Suffix bin出力部154は、Suffixに関するbinを算術符号化部151へ出力する。
図17は、この処理の詳細を示すフローチャートである。
【0107】
(ステップS241〜S245)
Suffix bin出力部154は、Suffixの値を2進数に変換し、変換した2進数を上位bitから順に出力する。Suffix bin出力部154は、tmpLenの数だけbinを出力するが、Suffix値のbit数がtmpLenより小さい場合は上位bitを0として出力する。
【0108】
<動作(二値化パラメータ更新)>
次に、
図18を参照しつつ、二値化パラメータ更新処理(
図9のS175)を詳細に説明する。
【0109】
(ステップS251)
二値化パラメータ更新部144は、二値化パラメータ(cParam)が4より小さい場合はステップS252〜S254により更新処理を行い、4以上の場合は更新処理を行わず、処理を終了する。
【0110】
(ステップS252〜S254)
二値化パラメータ更新部144は、対象係数の絶対値が閾値より大きい場合はcParamに1を加算する。閾値は「3×(1<<cParam)」の算式で設定される。また、「<<」は左シフトを示す。cParamが大きい値であるほど閾値は大きい値となる。cParamは前述した通り係数ブロックの処理の先頭で0に初期化され、二値化パラメータ更新部144によって閾値を超える係数が現れる度に最大値の4になるまで1ずつ増加していく。
【0111】
<効果>
以上、本実施の形態に係る画像符号化装置100は、処理済み係数ブロック内で絶対値が閾値を超える係数が存在した場合にgreater1_flag、及びgreater2_flagのコンテキストを切り替えることで、少ない処理量で符号化効率を向上できる。
【0112】
より具体的には、二値化パラメータ(cParam)は係数の絶対値が閾値を超える度に1増加する。係数ブロック処理の先頭で直前の係数ブロック処理で更新されたcParamの値が0より大きい場合、つまり、直前の係数ブロックに閾値を超える係数が1つでも存在した場合にコンテキストセット番号が切り替えられる。つまり、画像符号化装置100は、直前の係数ブロック(処理対象の係数ブロックよりも高周波の係数ブロック)で値が大きい係数が存在した場合には、処理対象の係数ブロックにも値の大きい係数が存在する可能性が高いと判断し、値の大きい係数に適したコンテキストを選択する。
【0113】
ここで、現在のHEVC規格(非特許文献1参照)では処理済みの係数のうち絶対値が2以上の係数の個数がカウントされ、その個数に応じて符号化対象係数のコンテキストが決定されていた。また、ここでの処理済み係数は、直前の係数ブロックに含まれる係数に限らず、処理対象の係数ブロックより高周波側に位置する複数の係数ブロックに含まれる複数の係数を含む。
【0114】
一方、本実施の形態の手法では、直前の係数ブロックに閾値を超える係数が存在するか/しないかの判定しか行わない。よって、本実施の形態に係る画像符号化装置100では、閾値を超える係数の個数をカウントする必要がなく、カウント値を格納するためのレジスタも必要ない。
【0115】
また、現在のHEVC規格のテスト用ソフトウェアに対し、本実施の形態に係る画像符号化方法を実装し、実験した。
図19は実装前と比較した実験結果を示す図である。実験条件はHEVC規格化団体の共通実験条件に従っている。数値が大きいほど符号化効率が低下していることを示し、負の値であれば符号化効率が向上していることを示す。
図19に示すように、全ての値が−0.01〜0.03%であり、係数の個数をカウントする処理を削除しても符号化効率はほとんど変わらないことが分かる。
【0116】
また、コンテキストの切り替えに用いる情報と、remainingの符号化に用いる情報とを統一することにより、回路規模を削減できる。具体的には係数の絶対値が閾値を超える度に大きくなるcParamをremainingの二値化パラメータと、greater1_flag及びgreater2_flagのコンテキスト切り替えとに使用することにより、1つの機構で複数の機能を実現している。このように、本実施の形態に係る画像符号化方法は、現在のHEVC規格と比較し、新たな機構を追加することなく、符号化効率の低下を抑制しつつ係数の個数のカウント処理の削除を実現している。
【0117】
なお、上記説明では、画像符号化装置100は、直前の係数ブロックで更新された二値化パラメータ(cParam)を用いてコンテキストセットを切り替えているが、直前以外の係数ブロックで更新された二値化パラメータを用いてもよい。例えば、画像符号化装置100は、処理済みの係数ブロックのいずれかでcParamが0より大きくなった場合にはコンテキストセットを切り替えてもよい。係数ブロックは高周波のブロックから処理される。よって、いずれかの係数ブロックでcParamが0より大きくなった場合、つまり絶対値が閾値以上の係数が出現した場合には以降全ての係数ブロックでは係数値が大きい可能性が高い。よって、このような場合には、係数値が大きい可能性が高い場合に使うコンテキストセットを選択することで符号化効率を向上できる。
【0118】
また、画像符号化装置100は、二値化パラメータ(cParam)を係数ブロックの処理の先頭で0に初期化しているが、0に初期化せず、直前の係数ブロックで更新されたcParamを継続して使用してもよい。こうする方が高周波の係数ブロックの状態を継続して使用することが可能となり、入力画像によっては符号化効率が向上する場合がある。
【0119】
また、上記説明では、画像符号化装置100は、cParamが0より大きい場合にコンテキストセットを切り替えているが、その限りではなく、例えばcParamが1より大きい場合、又は2より大きい場合にコンテキストセットを切り替えてもよい。入力画像によってはcParamが1より大きい場合にコンテキストセットを切り替えた方が符号化効率が良くなる場合がある。
【0120】
また、上記説明では、4種類のコンテキストセットを用いる例を述べたが、その限りではなく、コンテキストセットは、4種類より多くても少なくてもよい。例えば、上記説明では、画像符号化装置100は、コンテキストセット番号が0の場合でも2の場合でもcParamが0より大きい場合にはコンテキストセット番号を1増加させているが、コンテキストセット番号が2の場合のみ1増加させてもよい。
【0121】
また、上記説明では、画像符号化装置100は、最も低周波な係数ブロックの場合は別コンテキストセットを使うようにしているが、その切り替えを無くしてもよい。また、画像符号化装置100は、cParamが0より大きい場合にはコンテキストセット番号を1増加させ、cParamが1より大きい場合にはさらに1増加させてもよい。入力画像によってはコンテキストセットの種類を多くした方が符号化効率が良くなる場合もあるし、コンテキストセットを少なくした方が、コンテキストの種類が減り、選択処理の回路規模を削減できたり、コンテキスト格納用のメモリを削減できたりする。
【0122】
また、上記説明では、画像符号化装置100は、greater1_flagのコンテキストを、
図11に示すように、G1NUM及びG1NUM2を用いて設定しているが、その限りではない。例えば、画像符号化装置100は、対象係数の係数ブロック内の位置に応じてコンテキストを設定してもよいし、G1NUM及びG1NUM2の一方のみを用いてコンテキストを設定してもよい。
【0123】
また、上記説明では、画像符号化装置100は、greater2_flagのコンテキスト選択において、コンテキストセット番号そのものをコンテキスト番号に設定しているが、その限りではない。画像符号化装置100は、greater1_flagと同様の手法でgreater2_flagのコンテキストを選択してもよい。
【0124】
また、上記説明では、greater1_flag及びgreater2_flagは対象係数の絶対値が1以上、又は2以上の場合に存在するが、現在のHEVC規格(非特許文献1)と同様に係数ブロック内で最大数を制限してもよく、greater1_flagは最大8個まで、greater2_flagは最大1個までとしてもよい。
【0125】
また、上記説明では、画像符号化装置100は、remainingの二値化において、Prefix及びSuffixでbinを構成しているが、remainingの二値化信号は、cParamによってbin長を変更できるような仕組みであればそれでよい。例えば、remainingの二値化信号は、Prefixのみで構成されてもよいし、H.264動画符号化規格の指数ゴロム手法で表現されてもよい。
【0126】
また、上記説明では、Prefixのbinの最後は0に設定されているが、Prefixが最大の場合は最後の0が削除されてもよい。最大Prefixではない場合は「0」を挿入することによってPrefixとSuffixとの境界のbinを明示する必要があるが、画像復号装置が係数の最大値を把握している場合は、Prefixの最大も把握できる。よって、画像復号装置は、最大Prefixの場合には「0」がなくともPrefixとSuffixとの境界を判断できる。最大Prefixの場合に「0」を挿入しないことによって、最大Prefixの係数が多く発生するケース(符号ビットレートが高いケース)でbin長を多く削減することが可能となる。これにより、符号化効率を向上させることができる。
【0127】
また、上記説明では、二値化パラメータ(cParam)の更新用の閾値は「3*(1<<cParam)」の数式により設定されるが、その限りではない。例えば、画像符号化装置は、係数「3」の代わりに「4」等の他の数値を用いてもよいし、他の算式を用いてもよい。
【0128】
また、上記説明では、画像符号化装置は、全ての係数のgreater1_flag、及びgreater2_flagを、コンテキストを使って算術符号化しているが、一部の係数のgreater1_flag、又はgreater2_flagにremainingと同様にコンテキストを使わないBypass算術符号化を用いてもよい。例えば、画像符号化装置は、直前に処理された係数のgreater1_flagが1の場合には対象係数のgreater1_flagをBypass算術符号化してもよい。また、画像符号化装置は、係数ブロックの先頭のgreater1_flagをBypass算術符号化してもよい。Bypass算術符号化を用いることで、コンテキストのロード及び更新が必要なくなる。また、同じコンテキストを使う他のsyntaxとの依存関係も削除できる。これらにより、処理を高速化することが可能となる。
【0129】
また、上記説明では、符号ブロックは最大32×32、かつ最小4×4であるが、符号化ブロックのサイズはこれに限定されない。また、符号ブロックは固定サイズでもよい。
【0130】
また、上記説明では、符号ブロックを4×4の係数ブロックに分割したが、係数ブロックは4×4でなくてもよい。例えば、係数ブロックは、8×8でもよい。また、係数ブロックは、8×4等の長方形であってもよい。
【0131】
更に、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。
【0132】
(実施の形態2)
本実施の形態では、実施の形態1に係る画像符号化装置により生成された符号化ビットストリームを復号する画像復号装置について説明する。
【0133】
<全体構成>
図20は、本実施の形態に係る画像復号装置200の構成を示すブロック図である。
【0134】
図20に示す画像復号装置200は、符号列221を復号することで復号画像225を生成する。ここで符号列221は、例えば、上述した画像符号化装置100により生成された符号列125に対応する。この画像復号装置200は、可変長復号部201と、逆変換部202と、加算部203と、復号ブロック結合部204と、フレームメモリ205とを備える。
【0135】
<動作(全体)>
次に、
図21を参照しつつ、復号処理の全体の流れを説明する。
【0136】
(ステップS301)
可変長復号部201は、符号列221を可変長復号することで周波数係数222を生成し、周波数係数222を逆変換部202へ出力する。
【0137】
(ステップS302)
逆変換部202は、周波数係数222を画素データに変換することで差分ブロック223を生成する。
【0138】
(ステップS303)
加算部203は、フレームメモリ205に格納してある復号画像226と差分ブロック223とを加算することで復号ブロック224を生成する。
【0139】
(ステップS304)
復号対象画像内の全復号ブロックの復号が完了するまでステップS301〜ステップS303が繰り返される。
【0140】
(ステップS305)
復号ブロック結合部204は、複数の復号ブロック224を結合することによって復号画像225を生成すると共に、フレームメモリ205に復号画像225を復号画像226として格納する。
【0141】
以降、可変長復号部201について詳細に説明する。
【0142】
<可変長復号部201の構成>
図22は、可変長復号部201の構成を示すブロック図である。本実施の形態では実施の形態1と同様に周波数係数222(以下、単に「係数」とも呼ぶ)をsignificant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagの5つのパラメータを用いて表現する。各パラメータの意味は実施の形態1と同様であるため、説明を省略する。
【0143】
図22に示すように、可変長復号部201は、significant_flag復号部231と、level復号部232と、sign_flag復号部233と、係数復号部234とを備える。
【0144】
<動作(可変長復号)>
次に、
図23を参照しつつ、可変長復号処理の流れを説明する。
【0145】
(ステップS321)
significant_flag復号部231は、係数ブロック内の各係数のsignificant_flagを復号し、復号により得られたsignificant_flagをlevel復号部232、sign_flag復号部233及び係数復号部234へ出力する。
【0146】
(ステップS322)
level復号部232は、係数ブロック内の各係数のgreater1_flag、greater2_flag、及びremainingを復号し、復号により得られたgreater1_flag、greater2_flag、及びremainingを係数復号部234へ出力する。なお、level復号部232は、significant_flagが1の時しかgreater1_flag、greater2_flag、及びremainingを復号しない。
【0147】
(ステップS323)
sign_flag復号部233は、係数ブロック内の各係数のsign_flagを復号し、復号により得られたsign_flagを係数復号部234へ出力する。なお、sign_flag復号部233は、significant_flagが1の時しかsign_flagを復号しない。
【0148】
(ステップS324)
係数復号部234は、significant_flag、greater1_flag、greater2_flag、remaining、及びsign_flagを用いて係数を復号する。各パラメータの意味は実施の形態1と同様であり、係数復号部234は、その意味に従って係数を復号する。
【0149】
以降、level復号部232について詳細に説明する。
【0150】
<level復号部232の構成>
図24は、level復号部232の構成を示すブロック図である。
図24に示すように、level復号部232は、コンテキストセット選択部241と、greater1_flagコンテキスト選択部242と、greater1_flagメモリ243と、greater1_flagコンテキストメモリ244と、greater2_flagコンテキスト選択部245と、greater2_flagコンテキストメモリ246と、算術復号部247と、二値化パラメータ更新部248と、remaining多値化部249とを備える。remaining多値化部249は、Prefix復号部250と、Suffix復号部251と、Prefix Suffix結合部252とを備える。
【0151】
<動作(level復号)>
次に、
図25〜
図28を参照しつつ、level復号処理を詳細に説明する。
図25は、level復号部232による復号処理の流れを示す図である。
【0152】
(ステップS341)
コンテキストセット選択部241は、greater1_flag、及びgreater2_flagの算術復号で使用するコンテキストセット番号を設定する。この設定方法は実施の形態1のコンテキストセット選択処理(
図10)と同様である。
【0153】
(ステップS342)
二値化パラメータ更新部248は、二値化パラメータ(cParam)を0に初期化する。本処理によって係数ブロックの先頭でcParamが0に設定される。なお、ステップS341とステップS342は係数ブロックに対して1回行われるが、ステップS343以降は係数毎に行われる。
【0154】
(ステップS343)
level復号部232は、係数ブロックに含まれる各係数のgreater1_flagを復号する。
図26は、この処理の詳細を示すフローチャートである。
【0155】
(ステップS351)
level復号部232は、対象係数のsignificant_flagが1かどうか判定し、significant_flagが1であればステップS352〜S353でgreater1_flagを復号し、significant_flagが0であればgreater1_flagを復号しない。
【0156】
(ステップS352)
greater1_flagコンテキスト選択部242は、ステップS341で選択されたコンテキストセット番号を用いてコンテキスト番号を設定する。この設定方法は実施の形態1のgreater1_flagコンテキスト選択処理(
図11)と同様である。
【0157】
(ステップS353)
算術復号部247は、ステップS352で選択されたコンテキスト番号に従ってgreater1_flagコンテキストメモリ244から使用するコンテキストをロードし、そのコンテキストを用いてgreater1_flagの算術復号を行う。また、算術復号部247は、この算術復号で更新されたコンテキストを、greater1_flagコンテキストメモリ244の、元のコンテキストと同じ場所にストアする。
【0158】
(ステップS354)
係数ブロック内の全係数の処理が完了するまでステップS351〜S353が繰り返される。
【0159】
以上により、係数ブロックに含まれる各係数のgreater1_flagが復号される。
【0160】
(ステップS344)
level復号部232は、係数ブロックに含まれる各係数のgreater2_flagを復号する。
図27は、この処理の詳細を示すフローチャートである。
【0161】
(ステップS361)
level復号部232は、対象係数のgreater1_flagが1かどうか判定し、greater1_flagが1であればステップS362〜S363でgreater2_flagを復号し、greater1_flagが0であればgreater2_flagを復号しない。なお、level復号部232は、対象係数のsignificant_flagが0の場合にはgreater1_flagを復号しないが、その場合はgreater2_flagも復号しない。
【0162】
(ステップS362)
greater2_flagコンテキスト選択部245は、ステップS341で選択されたコンテキストセット番号をコンテキスト番号に設定する。greater2_flagのコンテキストはgreater1_flagと異なり、コンテキストセット番号そのものがコンテキスト番号に設定される。つまり、greater2_flagの1つのコンテキストセットは1つのコンテキストしか含まない。
【0163】
(ステップS363)
算術復号部247は、ステップS362で選択されたコンテキスト番号に従ってgreater2_flagコンテキストメモリ246から使用するコンテキストをロードし、そのコンテキストを用いてgreater2_flagの算術復号を行う。また、算術復号部247は、この算術復号で更新されたコンテキストを、greater2_flagコンテキストメモリ246の、元のコンテキストと同じ場所にストアする。
【0164】
(ステップS364)
係数ブロック内の全係数の処理が完了するまでステップS361〜S363が繰り返される。
【0165】
以上により、係数ブロックに含まれる各係数のgreater2_flagが復号される。
【0166】
(ステップS345)
level復号部232は、係数ブロックに含まれる各係数のremainingを復号する。
図28は、この処理の詳細を示すフローチャートである。
【0167】
(ステップS371)
level復号部232は、対象係数のgreater2_flagが1かどうか判定し、greater2_flagが1であればステップS372〜S373でremainingを復号し、greater2_flagが0であればremainingを復号しない。なお、level復号部232は、対象係数のsignificant_flagが0又はgreater1_flagが0の場合にはgreater2_flagを復号しないが、その場合はremainingも復号しない。
【0168】
(ステップS372)
算術復号部247は、remainingの算術復号を行う。remainingはgreater1_flag及びgreater2_flagと異なり、コンテキストを用いないBypass算術復号により復号される。
【0169】
(ステップS373)
remaining多値化部249は、remainingの二値信号を多値信号に変換する。詳細は後述する。
【0170】
(ステップS374)
二値化パラメータ更新部248は、二値化(cParam)を更新する。この更新方法は実施の形態1の二値化パラメータ更新処理(
図18)と同様である。
【0171】
(ステップS375)
係数ブロック内の全係数の処理が完了するまでステップS371〜S374が繰り返される。
【0172】
<動作(remaining多値化)>
次に、
図29〜
図31を参照しつつ、remaining多値化処理(
図28のS373)を詳細に説明する。
【0173】
(ステップS401)
Prefix復号部250は、Prefixを復号する。
図30は、この処理の詳細を示すフローチャートである。
【0174】
(ステップS411〜S415)
Prefix復号部250は、Prefixを決定する。概要を説明すると、Prefix復号部250は、「0」が出現するまで算術復号部247から1binずつ符号を取得し、「1」が連続した個数をPrefixの値に設定する。
【0175】
(ステップS402)
Suffix復号部251は、Suffixを復号する。
【0176】
(ステップS403)
Prefix Suffix結合部252は、PrefixとSuffixとを結合することで、remainingの多値信号を生成する。
【0177】
図31は、ステップS402及びS403の詳細を示すフローチャートである。
【0178】
(ステップS421〜S433)
Suffix復号部251は、Suffixを決定する。概要を説明すると、Suffix復号部251は、Prefixが8未満の場合は、cParamの値をbin長に設定し、当該bin長の算術復号結果を上位から並べることでSuffixを生成する。一方、Prefixが8以上の場合は、Suffix復号部251は、Prefix及びcParamからbin長を求め、当該bin長の算術復号結果を上位から並べることでSuffixを生成する。
【0179】
(ステップS441〜S442)
Prefix Suffix結合部252は、Prefix、Suffix、及びcParamを用いてremainingを算出する。
【0180】
<効果>
以上により、本実施の形態に係る画像復号装置は、上記実施の形態1と同様の効果を実現できる。
【0181】
図32Aは、上述した画像符号化装置100による画像符号化処理のフローチャートである。
【0182】
以上説明したように、画像符号化装置100は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグ(greater1_flag)を算術符号化する(S701)。次に、画像符号化装置100は、処理対象の係数の絶対値が2より大きいか否かを示す第2フラグ(greater2_flag)を算術符号化する(S702)。
【0183】
図32Bは、これらステップS701及びS702のフローチャートである。
【0184】
画像符号化装置100は、ステップS701及びS702において、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し(S711)、判定結果に応じて、第1フラグ及び第2フラグの算術符号化に使用するコンテキストを切り替える(S712)。言い換えると、画像符号化装置100は、この判定に、直前の係数ブロックに含まれる係数のみを参照し、直前以外の処理済み係数ブロックに含まれる係数は参照しない。つまり、画像符号化装置100は、複数のコンテキストのうち、判定結果に対応するコンテキストを用いて第1フラグ及び第2フラグを算術符号化する。
【0185】
また、直前の係数ブロックとは、処理順で処理対象の係数ブロックの直前の係数ブロックである。
【0186】
具体的には、画像符号化装置100は、係数の絶対値が閾値より大きい場合に二値化パラメータ(cParam)を増加させる(
図18のS253〜S254)。そして、画像符号化装置100は、直前の係数ブロックのcParamが0より大きい場合にコンテキストを切り替える(コンテキストセット番号を増加させる)(
図10のS184〜S185)。
【0187】
つまり、画像符号化装置100は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する。
【0188】
具体的には、画像符号化装置100は、さらに、処理対象の係数の絶対値が2より大きい場合に、処理対象の係数の絶対値から3を減算した値である残り値(remaining)を、複数の変換テーブルのうち、二値化パラメータ(cParam)で指定される変換テーブルに従い二値化する。この二値化パラメータは、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定される。上記変数は、この二値化パラメータである。
【0189】
なお、上記説明では、コンテキストの切り替えの基準である、係数の絶対値の閾値は、二値化パラメータに応じて決定されている(
図18のS252)が、従来技術で説明したように、この閾値は予め定められた値(「1」)であってもよい。つまり、画像符号化装置100は、直前の係数ブロックに絶対値が1を超える(2以上の)係数が存在するかどうかを判定し、判定結果に応じて、使用するコンテキストを切り替えてもよい。なお、上述したように、従来技術では、絶対値が閾値を超える係数の数がカウントされてり、本実施の形態のように、絶対値が閾値を超える係数が存在するか否かを判定する処理とは異なる。
【0190】
さらに、この場合にも上記と同様に、画像符号化装置100は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が1を超える係数が存在するかどうかを判定してもよい。例えば、この変数はgreater1_flagである。つまり、画像符号化装置100は、直前の係数ブロックに値が1のgreater1_flagを有する係数が存在するかどうかに応じて、コンテキストを切り替えてもよい。
【0191】
図33Aは、上述した画像復号装置200による画像復号処理のフローチャートである。
【0192】
図33Aに示すように、画像復号装置200は、処理対象の係数ブロックに含まれる処理対象の係数の絶対値が1より大きいか否かを示す第1フラグ(greater1_flag)を算術復号する(S751)。画像復号装置200は、処理対象の係数の絶対値が2より大きいか否かを示す第2フラグ(greater2_flag)を算術復号する(S752)。
【0193】
図33Bは、これらステップS751及びS752のフローチャートである。
【0194】
画像復号装置200は、これらステップS751及びS752において、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定し(S761)、判定結果に応じて、第1フラグ及び第2フラグの算術復号に使用するコンテキストを切り替える(S762)。つまり、画像復号装置200は、複数のコンテキストのうち、判定結果に対応するコンテキストを用いて第1フラグ及び第2フラグを算術復号する。
【0195】
具体的には、画像復号装置200は、係数の絶対値が閾値より大きい場合に二値化パラメータ(cParam)を増加させる(
図18のS253〜S254)。そして、画像復号装置200は、直前の係数ブロックのcParamが0より大きい場合にコンテキストを切り替える(コンテキストセット番号を増加させる)(
図10のS184〜S185)。
【0196】
つまり、画像復号装置200は、直前の係数ブロックの算術復号の際に生成された変数を用いて、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかを判定する。
【0197】
具体的には、画像復号装置200は、さらに、処理対象の係数の絶対値が2より大きい場合に、処理対象の係数の絶対値から3を減算した値である残り値を、複数の変換テーブルのうち、二値化パラメータで指定される変換テーブルに従い多値化する。この二値化パラメータは、直前の係数ブロックに絶対値が閾値を超える係数が存在するかどうかに応じて決定される。上記変数は、二値化パラメータである。
【0198】
また、上記と同様に、上記閾値は、予め定められた値(「1」)であってもよい。さらに、この場合にも上記と同様に、画像復号装置200は、直前の係数ブロックの算術符号化の際に生成された変数を用いて、直前の係数ブロックに絶対値が1を超える係数が存在するかどうかを判定してもよい。例えば、この変数はgreater1_flagである。つまり、画像復号装置200は、直前の係数ブロックに値が1のgreater1_flagを有する係数が存在するかどうかに応じて、コンテキストを切り替えてもよい。
【0199】
(実施の形態3)
本実施の形態では、上記実施の形態1の変形例について説明する。本実施の形態に係る画像符号化装置は実施の形態1に係る画像符号化装置に対してlevel符号化部133Aの機能がlevel符号化部133と異なる。以降ではlevel符号化部133Aについて説明する。
【0200】
<level符号化部133Aの構成>
図34は、level符号化部133Aの構成を示すブロック図である。このlevel符号化部133Aは、実施の形態1に係るlevel符号化部133の構成に加え、greater_flag切替部160を備える。また、remaining設定部143A、及びコンテキストセット選択部145Aの機能が、remaining設定部143、及びコンテキストセット選択部145と異なる。
【0201】
<動作(level符号化)>
次に、
図35を参照しつつ、level符号化処理を詳細に説明する。実施の形態1のlevel符号化処理に対して、ステップS501〜S503が追加されている。また、ステップS141A及びS171AがステップS141及びS171と異なる。なお、実施の形態1と同様の処理は説明を省略する。
【0202】
(ステップS141A)
コンテキストセット選択部145Aは、greater1_flag、及びgreater2_flagの算術符号化で使用するコンテキストセット番号を設定する。詳細は後述する。
【0203】
(ステップS501)
greater_flag切替部160は、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きいか判定する。二値化パラメータが0の場合は実施の形態1と同様にgreater1_flag、及びgreater2_flagは符号化されるが、二値化パラメータが0より大きい場合はgreater1_flag、及びgreater2_flagは符号化されない。
【0204】
(ステップS502、S503、S171A)
remaining設定部143Aは、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きい場合はremainingベース値を1に設定し、当該二値化パラメータが0の場合はremainingベース値を3に設定する。そして、level符号化部133Aは、係数の絶対値がremainingベース値以上の場合はステップS172〜S175によってremainingを符号化し、remainingベース値未満の場合はremainingを符号化しない。level符号化部133Aは、remainingを符号化する場合、係数の絶対値からremainingベース値を減算した値をremainingに設定して符号化する。これはcParamに応じてgreater1_flag、及びgreater2_flagが符号化されない場合があるため、remainingに設定すべき値が変化するためである。実施の形態1ではcParamによらずgreater1_flag及びgreater2_flagが存在したため、remainingベース値は「3」固定であった。
【0205】
<動作(コンテキストセット選択)>
次に、
図35を参照しつつ、コンテキストセット選択処理(
図34のS141A)を詳細に説明する。
【0206】
(ステップS511〜S513)
コンテキストセット選択部145Aは、処理対象の係数ブロックが符号ブロック内で最も低周波の係数ブロックであるかどうかを判定し、最も低周波の係数ブロックである場合はコンテキストセット番号を0に設定し、そうでない場合はコンテキストセット番号を1に設定する。つまり、コンテキストセット選択部145Aは、符号ブロック内の左上の係数ブロックのコンテキストセット番号を0に設定し、そうでない場合はコンテキストセット番号を1に設定する。
【0207】
また、コンテキストセット選択部145Aは、実施の形態1と異なりcParamが0より大きい場合のコンテキストセットの切り替えは行わない。これは前述のlevel符号化処理の通り、cParamが0より大きい場合は、greater1_flag及びgreater2_flagの符号化が行われず、コンテキストの選択も行われないためである。
【0208】
<効果>
以上、本実施の形態に係る画像符号化装置は、直前の係数ブロックの更新後の二値化パラメータに応じてgreater1_flag、及びgreater2_flagを符号化せず、greater1_flag、及びgreater2_flagの代わりにremainingにより係数を符号化する。よって、画像符号化装置は、直前の係数ブロックの処理で閾値を超える係数が1つでも存在した場合はコンテキストを用いる算術符号化の代わりにコンテキストを用いないBypass算術符号化を用いる。Bypass算術符号化はコンテキストのロード及び更新が不要であり、尚且つ前段の処理のコンテキスト更新完了を待たずして処理を始めることができる。よって、Bypass算術符号化は、コンテキストを用いる算術符号化に比べて処理を高速化することが可能である。
【0209】
また、係数の絶対値が小さい可能性が高い場合にはgreater1_flag及びgreater2_flagが0となる場合もありremainingを符号化しないでよいケースもある。一方、係数の絶対値が大きい可能性が高い場合はそのようなケースはほとんどないので、greater1_flag及びgreater2_flagを符号化しない方がトータルのbin量が減る場合も多い。
【0210】
本実施の形態に係る画像符号化装置は、直前の係数ブロック処理後のcParamが0より大きい場合(閾値を超える係数が1つでも存在した場合)、本係数ブロック内では絶対値が大きい係数の発生確率が高いと想定し、greater1_flag、及びgreater2_flagを符号化しない。これによって、符号化効率の低下を抑制しつつ、コンテキストを用いた算術符号化の数を減らすことができるので、処理高速化を実現できる。
【0211】
また、cParamが0より大きい場合にgreater1_flag、及びgreater2_flagを符号化しないようにすることによって、cParamが0より大きい場合に使うコンテキストセット、つまり値が大きい係数の発生確率が高い場合に使用するコンテキストセットが不要である。つまり、画像符号化装置は、符号ブロック内の左上の係数ブロックの時に1つのコンテキストセットを使用し、それ以外の係数ブロックの時には共通の1つのコンテキストセットを使用する。こうすることによって使用するコンテキストの数を減らすことができるので、コンテキストを格納するためのメモリサイズ及びコンテキスト選択処理のための回路の規模を削減することができる。
【0212】
また、greater1_flag、及びgreater2_flagの符号化処理の有無の切り替えに用いる情報と、remainingの符号化に用いる情報とを統一することにより、回路規模を削減できる。具体的には、係数の絶対値が閾値を超える度に大きくなるcParamをremainingの二値化パラメータと、greater1_flag及びgreater2_flagの符号化処理の有無の切り替えとに使用することにより、1つの機構で複数の機能を実現できる。このように、本実施の形態に係る画像符号化装置は、現在のHEVC規格(非特許文献1)と比較し、新たな機構を追加することなく、greater1_flag及びgreater2_flagの符号化処理の有無の切り替えを実現できる。
【0213】
また、現在のHEVC規格(非特許文献1)のテスト用ソフトウェアに対し、本実施の形態に係る画像符号化方法を実装し、実験した。
図37は実装前と比較した実験結果を示す図である。実験条件はHEVC規格化団体の共通実験条件に従っており、
図37の数値はテスト用画像の先頭49フレームに対する結果である。数値が大きいほど符号化効率が低下していることを示し、負の値であれば符号化効率が向上していることを示す。
図37に示すように、全ての値が0.00〜0.06%であり、コンテキストを用いた算術符号化を削減することで処理を高速化しても、またコンテキストの総数を減らしても、符号化効率はほとんど変わらないことが分かる。
【0214】
なお、上記説明では、画像符号化装置は、直前の係数ブロックで更新された二値化パラメータ(cParam)を用いてgreater1_flag、及びgreater2_flagの符号化処理の有無を切り替えているが、直前以外の係数ブロックで更新された二値化パラメータを用いてもよい。例えば、画像符号化装置は、処理済みの係数ブロックのいずれかでcParamが0より大きくなった場合には以降の係数ブロックではgreater1_flag及びgreater2_flagを符号化しないようにしてもよい。係数ブロックは高周波のブロックから処理される。よって、いずれかの係数ブロックでcParamが0より大きくなった場合、つまり絶対値が閾値以上の係数が出現した場合に、以降全ての係数ブロックでは係数値が大きい可能性が高い。よって、このような場合に、greater1_flag、及びgreater2_flagを符号化しなくても符号化効率が低下しない場合もある。
【0215】
また、上記説明では、画像符号化装置は、cParamが0より大きい場合にgreater1_flag、及びgreater2_flagを符号化しないが、その限りではなく、例えばcParamが1より大きい場合、又は2より大きい場合にgreater1_flag、及びgreater2_flagを符号化しなくてもよい。入力画像によってはcParamが1より大きい場合にgreater1_flag、及びgreater2_flagの符号化処理の有無を切り替えた方が符号化効率が良くなる場合がある。
【0216】
なお、その他に関しては実施の形態1と同様のため、説明を省略する。
【0217】
(実施の形態4)
本実施の形態では、実施の形態3に係る画像符号化装置により生成された符号化ビットストリームを復号する画像復号装置について説明する。本実施の形態に係る画像復号装置は、実施の形態2に係る画像復号装置に対してlevel復号部232Aがlevel復号部232と異なる。以降ではlevel復号部232Aについて説明する。
【0218】
<level復号部232Aの構成>
図38は、level復号部232Aの構成を示すブロック図である。このlevel復号部232Aは、実施の形態2に係るlevel復号部232の構成に加え、greater_flag切替部260を備える。また、コンテキストセット選択部241A及び算術復号部247Aの機能がコンテキストセット選択部241及び算術復号部247と異なる。
【0219】
<動作(level復号)>
次に、
図39を参照しつつ、level復号処理を詳細に説明する。実施の形態2のlevel復号処理に対して、ステップS601〜S603が追加されている。また、ステップS341A及びS371AがステップS341及びS371と異なる。なお、実施の形態2と同様の処理は説明を省略する。
【0220】
(ステップS341A)
コンテキストセット選択部241Aは、greater1_flag、及びgreater2_flagの算術復号で使用するコンテキストセット番号を設定する。選択方法については実施の形態3のコンテキストセット選択処理(
図36)と同様である。つまり、コンテキストセット選択部241Aは、cParamに応じたコンテキストセットの切り替えは行わない。
【0221】
(ステップS601)
greater_flag切替部260は、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きいか判定する。greater_flag切替部260は、二値化パラメータが0の場合は実施の形態2と同様にgreater1_flag、及びgreater2_flagを復号するが、二値化パラメータが0より大きい場合はgreater1_flag、及びgreater2_flagを復号しない。
【0222】
(ステップS602、S603、S371A)
算術復号部247Aは、直前の係数ブロックの更新後の二値化パラメータ(cParam)が0より大きい場合はremainingベース値を1に設定し、二値化パラメータが0の場合はremainingベース値を3に設定する。そして、レベル復号部232Aは、remainingベース値が3であり、かつ対象係数のgreater2_flagが1の場合、又はremainingベース値が1であり、かつ対象係数のsignificant_flagが1の場合、ステップS372〜S373によってremainingを復号し、そうでない場合はremainingを復号しない。remainingが復号される場合、復号されたremainingにremainingベース値を加算した数値が係数の絶対値である。
【0223】
<効果>
以上により、本実施の形態に係る画像復号装置は、上記実施の形態3と同様の効果を実現できる。
【0224】
以上の各実施の形態において、機能ブロックの各々は、通常、MPU(マイクロプロセッサ)及びメモリ等によって実現可能である。また、機能ブロックの各々による処理は、通常、ソフトウェア(プログラム)によって実現することができ、当該ソフトウェアはROM等の記録媒体に記録されている。そして、このようなソフトウェアをダウンロード等により配布してもよいし、CD−ROMなどの記録媒体に記録して配布してもよい。なお、各機能ブロックをハードウェア(専用回路)によって実現することも、当然、可能である。
【0225】
また、各実施の形態において説明した処理は、単一の装置(システム)を用いて集中処理することによって実現してもよく、あるいは、複数の装置を用いて分散処理することによって実現してもよい。また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、当該コンピュータは、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0226】
以上、実施の形態に係る画像符号化装置に及び画像復号装置ついて説明したが、本発明は、この実施の形態に限定されるものではない。
【0227】
また、上記実施の形態に係る画像符号化装置及び画像復号装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0228】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0229】
上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサなどのプログラム実行部が、ハードディスク又は半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0230】
言い換えると、画像符号化装置及び画像復号装置は、制御回路(control circuitry)と、当該制御回路に電気的に接続された(当該制御回路からアクセス可能な)記憶装置(storage)とを備える。制御回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、制御回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
【0231】
さらに、本発明は上記ソフトウェアプログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0232】
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
【0233】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0234】
また、上記の画像符号化方法又は画像復号方法に含まれるステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0235】
以上、本発明の一つ又は複数の態様に係る画像符号化装置及び画像復号装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つ又は複数の態様の範囲内に含まれてもよい。
【0236】
(実施の形態5)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
【0237】
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
【0238】
図40は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
【0239】
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
【0240】
しかし、コンテンツ供給システムex100は
図40のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【0241】
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、C
DMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
【0242】
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0243】
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
【0244】
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
【0245】
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【0246】
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【0247】
なお、コンテンツ供給システムex100の例に限らず、
図41に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0248】
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
【0249】
図42は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
【0250】
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
【0251】
まず、テレビ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の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【0252】
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
【0253】
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
【0254】
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を
図43に示す。情報再生/記録部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は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【0255】
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【0256】
図44に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
【0257】
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
【0258】
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば
図42に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
【0259】
図45Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
【0260】
さらに、携帯電話ex114の構成例について、
図45Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
【0261】
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
【0262】
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
【0263】
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
【0264】
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
【0265】
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
【0266】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
【0267】
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
【0268】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【0269】
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【0270】
(実施の形態6)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
【0271】
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
【0272】
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
【0273】
図46は、多重化データの構成を示す図である。
図46に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
【0274】
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
【0275】
図47は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
【0276】
図48は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。
図48における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。
図48の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
【0277】
図49は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには
図49下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
【0278】
また、多重化データに含まれる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時間の情報を持つ。
【0279】
図50はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
【0280】
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
【0281】
多重化データ情報ファイルは、
図51に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
【0282】
多重化データ情報は
図51に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
【0283】
ストリーム属性情報は
図52に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
【0284】
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
【0285】
また、本実施の形態における動画像復号化方法のステップを
図53に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
【0286】
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
【0287】
(実施の形態7)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、
図54に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【0288】
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
【0289】
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
【0290】
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
【0291】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0292】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフ
ィギュラブル・プロセッサを利用してもよい。このようなプログラマブル・ロジック・デバイスは、典型的には、ソフトウェア又はファームウェアを構成するプログラムを、ロードする又はメモリ等から読み込むことで、上記各実施の形態で示した動画像符号化方法、又は動画像復号化方法を実行することができる。
【0293】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【0294】
(実施の形態8)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
【0295】
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。
図55は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
【0296】
より具体的には、駆動周波数切替え部ex803は、
図54のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、
図54の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態6で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態6で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、
図57のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
【0297】
図56は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
【0298】
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
【0299】
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
【0300】
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、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などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
【0301】
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
【0302】
(実施の形態9)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
【0303】
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を
図58Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、エントロピー復号に特徴を有していることから、例えば、エントロピー復号については専用の復号処理部ex901を用い、それ以外の逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
【0304】
また、処理を一部共有化する他の例を
図58Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
【0305】
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。