【文献】
Mei Guo et al.,Improved Intra Mode Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, Korea,2011年 1月,JCTVC-D166,pp.1-7
【文献】
Sandeep Kanumuri et al.,Enhancements to Intra Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, KR,2011年 1月,JCTVC-D235,pp.1-7
【文献】
Wenpeng Ding et al.,Improved Intra Mode Coding by Multiple Mode Candidates,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,4th Meeting: Daegu, KR,2011年 1月,JCTVC-D253,pp.1-5
【文献】
Tzu-Der Chuang et al.,Luma Intra Prediction Mode Coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F062,pp.1-5
【文献】
Toru Kumakura et al.,Fixing the number of mpm candidates,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F340,pp.1-8
【文献】
Vadim Seregin et al.,Intra mode parsing without access neighbouring information,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F378_r3,pp.1-5
【文献】
Wei-Jung Chien et al.,Parsing friendly intra mode coding,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,6th Meeting: Torino, IT,2011年 7月,JCTVC-F459r2,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
上述した問題を解決するために、本発明の一態様に係る画像復号方法は、符号化ストリームに含まれる画像データをブロック毎に復号する画像復号方法であって、復号対象ブロックの画面内予測で用いるイントラ予測モードの候補であって、常に2以上の数のイントラ予測モードの候補を導出する導出ステップと、導出された前記イントラ予測モードの候補の中から1つの候補を特定するためのインデクスを前記符号化ストリームから取得する取得ステップと、取得された前記インデクスに基づいて、導出された前記イントラ予測モードの候補のうちの1つの候補を、前記復号対象ブロックの画面内予測で用いる前記イントラ予測モードとして決定する決定ステップと、を含む。
【0019】
ここで、従来のモード情報の構成としては、以下の3つが考えられる。
(M1)イントラ予測モードの候補の何れか1つを使用し、かつ、イントラ予測モードの候補数(NumMPMCandの値)が複数である場合、モード情報に含まれる情報は、(I1)「予測モード使用フラグ」および(I2)「予測モード候補番号」となる。
(M2)イントラ予測モードの候補を使用し、かつ、イントラ予測モードの候補が1つの場合、モード情報に含まれる情報は、(I1)「予測モード使用フラグ」のみとなる。これは、イントラ予測モードの候補が1つの場合、対象モード番号は一意に特定されるため、(I2)「予測モード候補番号」を含める必要がないためである。従来、モード情報の情報量の削減のため、イントラ予測モードの候補が1つの場合は、「予測モード候補番号」を含めない構成としている。
(M3)イントラ予測モードの候補を使用しない場合は、モード情報に含まれる情報は、(I1)「予測モード使用フラグ」および(I3)対象モード番号を符号化した「符号化モード番号」となる。なお、「符号化モード番号」の情報量は、(I2)「予測モード候補番号」等に比べて非常に多い。
【0020】
上記構成の画像復号方法では、常に2以上の数の候補を導出するため、イントラ予測モードの候補を利用するPUの割合が高くなる。すなわち、情報量の比較的少ないモード情報(M2)の割合が増加し、情報量の多いモード情報(M3)の割合が減少するため、情報量を低減可能である。なお、従来のモード情報(M1)に相当する場合も、モード情報(M2)と同じ情報量が必要となるため、従来のモード情報(M1)に相当する場合については情報量が増大する。しかし、(I2)「予測モード候補番号」の情報量は、(I3)「符号化モード番号」の情報量と比較して非常に少ないため、フレーム全体あるいは符号化対象ブロック全体では、情報の増大量より削減量が上回ることとなり、モード情報の情報量の削減を図ることができる。
【0021】
また、例えば、前記2以上の数は、固定された数としてもよい。
【0022】
上記構成の画像復号方法によれば、導出するイントラ予測モードの候補の数を2以上の数に固定するため、イントラ予測モードの候補を使用する場合、イントラ予測モードの候補の数を判定する処理を行う必要がなくなる。
【0023】
イントラ予測モードの候補の数を判定する処理は、例えば、
図6Aの条件式901「if(NumMPMCand>1)」で示すイントラ予測モードの候補の数が1つであるか否かを判定する処理である。当該処理では、例えば、参照する複数のPUのイントラ予測モード番号を求め、複数のPUにおけるイントラ予測モード番号が一致するか否かを求める処理が必要となる。
【0024】
ここで、参照する複数のPUのイントラ予測モード番号を導出する処理と、復号対象ブロックで用いるイントラ予測モードを求める処理は、高速化のために、並列演算される場合がある。従来は、(I1)「予測モード使用フラグ」がイントラ予測モードの候補を使用することを示す場合、符号化ストリームにインデクスが含まれるか否かを判定するために、参照する複数のPUのイントラ予測モード番号を導出する処理の結果を得る必要があることから、当該処理の結果がでるまで、復号対象ブロックで用いるイントラ予測モードを求める処理を進めることができず、高速化が十分ではない。
【0025】
一方、上記構成の画像復号方法では、常に2以上の固定数の予測モードの候補を生成するため、イントラ予測モードの候補の数を判定する処理が必要なくなり、予測モード数(候補数)に依存せず、復号側でパラメタを復号することを可能とする。これにより、参照する複数のPUのイントラ予測モード番号を導出する処理の結果を待つことなく、復号対象ブロックで用いるイントラ予測モードを求める処理を進めることができる。これにより、上記画像復号方法を実行する装置の高速化を図ることができる。
【0026】
また、例えば、前記導出ステップは、前記復号対象ブロックに隣接する各隣接ブロックの画面内予測で用いられたイントラ予測モードから、前記イントラ予測モードの第1候補を導出する第1導出ステップと、導出された前記第1候補の数が、前記2以上の数より小さいか否かを判定する判定ステップと、前記第1候補の数が前記2以上の数より小さいと判定された場合に、さらに、前記イントラ予測モードの第2候補を導出する第2導出ステップとを含むように構成してもよい。
【0027】
また、例えば、前記第1導出ステップでは、画面内予測で用いられたイントラ予測モードを取得する前記隣接ブロックの数は、前記2以上の数と同じ数としてもよい。
【0028】
また、例えば、前記第2導出ステップでは、前記第1候補の数と前記第2候補の数の合計が、常に前記2以上の数になるように、前記第2候補を導出するように構成してもよい。
【0029】
また、例えば、前記第2導出ステップでは、前記復号対象ブロックに隣接する各隣接ブロックの画面内予測で用いられたイントラ予測モードとは異なるイントラ予測モードを、前記第2候補として導出するように構成してもよい。
【0030】
また、例えば、前記第2導出ステップでは、前記復号対象ブロックの画素値の平均値を用いて予測することを示すイントラ予測モードと、平面予測を示すイントラ予測モードと、縦方向予測を示すイントラ予測モードとのうちの少なくとも何れか1つを前記第2候補として導出するように構成してもよい。
【0031】
また、例えば、前記符号化ストリームは、イントラ予測モードの候補を使用するか否かを示すフラグを含み、前記フラグがイントラ予測モードの候補を使用することを示す場合に、前記取得ステップでは、前記インデクスを取得し、前記決定ステップでは、前記1つの候補を前記復号対象ブロックの画面内予測で用いるイントラ予測モードとして決定し、前記フラグがイントラ予測モードの候補を使用しないことを示す場合に、前記取得ステップでは、前記符号化ストリームから、前記復号対象ブロックの画面内予測で用いるイントラ予測モードを示すモード番号を取得し、前記決定ステップでは、取得された前記モード番号に基づいて、前記復号対象ブロックの画面内予測で用いる前記イントラ予測モードを決定するように構成してもよい。
【0032】
また、例えば、前記導出ステップは、前記復号対象ブロックに隣接する隣接ブロックがある場合は、前記隣接ブロックの画面内予測で用いられたイントラ予測モード以外のイントラ予測モードを、前記イントラ予測モードの候補として導出し、前記復号対象ブロックに隣接する隣接ブロックがない場合は、予め定められた条件に基づいて、前記イントラ予測モードの候補を導出するように構成してもよい。
【0033】
また、例えば、前記導出ステップでは、さらに、前記イントラ予測モードの候補を用いて候補リストを作成し、前記インデクスは、前記候補リストに含まれる前記イントラ予測モードの候補を識別するための番号としてもよい。
【0034】
上述した問題を解決するために、本発明の一態様に係る画像符号化方法は、画像データをブロック毎に符号化することで符号化ストリームを生成する画像符号化方法であって、符号化対象ブロックに対応する復号対象ブロックの画面内予測で用いるイントラ予測モードの候補であって、常に2以上の数のイントラ予測モードの候補を導出する導出ステップと、導出された前記イントラ予測モードの候補のうちの1つの候補を、前記復号対象ブロックの画面内予測で用いるイントラ予測モードとして決定する決定ステップと、導出された前記イントラ予測モードの候補の中から、決定された前記1つの候補を特定するためのインデクスを前記符号化ストリームに付加する付加ステップとを含む。
【0035】
また、例えば、前記2以上の数は、固定された数としてもよい。
【0036】
また、例えば、前記決定ステップでは、導出された前記イントラ予測モードの候補のうち、前記符号化対象ブロックの画面内予測で用いられたイントラ予測モードと一致する候補を、前記1つの候補として決定するように構成してもよい。
【0037】
上述した問題を解決するために、本発明の一態様に係る画像復号装置は、符号化ストリームに含まれる画像データをブロック毎に復号する画像復号装置であって、復号対象ブロックの画面内予測で用いるイントラ予測モードの候補であって、常に2以上の数のイントラ予測モードの候補を導出する導出部と、導出された前記イントラ予測モードの候補の中から1つの候補を特定するためのインデクスを前記符号化ストリームから取得する取得部と、取得された前記インデクスに基づいて、導出された前記イントラ予測モードの候補のうちの1つの候補を、前記復号対象ブロックの画面内予測で用いる前記イントラ予測モードとして決定する決定部と、を備える。
【0038】
上述した問題を解決するために、本発明の一態様に係る画像符号化装置は、画像データをブロック毎に符号化することで符号化ストリームを生成する画像符号化装置であって、符号化対象ブロックに対応する復号対象ブロックの画面内予測で用いるイントラ予測モードの候補であって、常に2以上の数のイントラ予測モードの候補を導出する導出部と、導出された前記イントラ予測モードの候補のうちの1つの候補を、前記復号対象ブロックの画面内予測で用いるイントラ予測モードとして決定する決定部と、導出された前記イントラ予測モードの候補の中から、決定された前記1つの候補を特定するためのインデクスを前記符号化ストリームに付加する付加部とを備える。
【0039】
上述した問題を解決するために、本発明の一態様に係る画像符号化復号装置は、上記画像復号装置と、上記画像符号化装置とを備える。
【0040】
また、上記の画像符号化装置および画像復号装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されていてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROMおよびRAM(Random Access Memory)などを含んで構成されるコンピュータシステムである。
【0041】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも本発明の望ましい一具体例を示すものである。以下の実施の形態で示される構成要素、構成要素の配置位置および接続形態、処理、処理の順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、より望ましい形態を構成する任意の構成要素として説明される。
【0042】
(実施の形態1)
本発明の実施の形態1に係る画像符号化方法、および、当該画像符号化方法を実行する画像符号化装置について、
図1〜
図6Bを基に説明する。
【0043】
画像符号化装置は、各PUについて、イントラ予測で用いたイントラ予測モードを示すモード情報の生成を行う機能を備えている。なお、本実施の形態では、説明のため、イントラ予測モードの候補の数が、予め2に固定されている(常に2以上の固定数のイントラ予測モードの候補を導出する)場合を例に説明する。なお、3以上に固定されている場合や、2以上の数で可変に構成されている場合でも、同様の方法で実現可能である。
【0044】
[1−1.画像符号化装置の構成]
本実施の形態に係る画像符号化装置の構成について、
図1を基に説明する。
図1は、画像符号化装置100の構成を示すブロック図である。
【0045】
画像符号化装置100は、画像信号が入力されると、画像信号に対する符号化を行い、後述する可変長符号化部120から出力されるビットストリーム(bitStr)を、画像復号装置(
図1では不図示)に出力する装置である。
【0046】
画像符号化装置100は、
図1に示すように、画像信号が示す画像と予測画像との差分画像を出力する差分部101、差分画像に対してDCT変換(Discrete Cosine Transform、離散コサイン変換)等を行う変換部102、DCT変換された差分画像に対する量子化を行う量子化部103、逆量子化を行う逆量子化部104、逆DCT変換等を行う逆変換部105、前回の予測画像と逆変換部105からの復元された差分画像を合成して前回の画像を出力する加算部106、フレーム間予測により予測画像を生成する画面間予測部107、イントラ予測により予測画像を生成する画面内予測部108、画面間予測部107からの予測画像と画面内予測部108からの予測画像とを選択的に出力する切替部109、画像符号化装置100の各機能を制御する符号化制御部110、および、量子化部103からのデータを可変長符号化する可変長符号化部120等を含む。
【0047】
符号化制御部110は、所定の評価基準により決定された、符号化対象ブロック(PU、あるいは、PUに含まれるブロック等、以下同じ)に適用するべき「対象モード番号」と「可変長符号化方式」とを保持する。評価基準は、例えば、所定の予測精度を満たす条件で出力される符号列のビット数が削減させるように決定されている。
【0048】
画面内予測部108は、符号化制御部110の指定する「対象モード番号」に従い、現在の符号化対象ブロックに対して、対象モード番号が示すイントラ予測モードの指定する方向に存在する予測画素を利用し、現在の符号化対象ブロックの画素値を予測する。また、「対象モード番号」を符号化して「符号化モード番号」を生成する。
【0049】
可変長符号化部120は、画面内予測部108において生成された「符号化モード番号」を、符号化制御部110の指定する「可変長符号化方式」に従い、算術符号化等のエントロピー符号化を行いビットストリーム(bitStr)を出力する。
【0050】
[1−2.画像符号化方法の処理手順]
本実施の形態に係る画像符号化方法の処理手順について、
図2を基に説明する。
図2は、
図1の画像符号化装置で実行されるモード情報の生成方法を示すフローチャートである。
【0051】
まず、符号化制御部110は、モード情報を生成する符号化対象ブロックについての「対象モード番号」を取得する(ステップS201)。
【0052】
次に、符号化制御部110は、符号化対象ブロックについてのイントラ予測モードの候補を求めることにより、「予測モード配列」(candModeList)を取得する(ステップS203)。本実施の形態では、イントラ予測モードの候補の数が2に固定されているため、予測モード配列の要素数は2となる。イントラ予測モードの候補の数が3以上に固定されている場合は、予測モード配列の要素数は、イントラ予測モードの候補の数とする。なお、イントラ予測モードの候補の数が可変に設定されている場合は、予測モード配列の要素数は、イントラ予測モードの候補の数の最大値とする。
【0053】
この予測モード配列は、後述する「予測モード候補番号」を予測モード配列の要素のインデクス値(0始まり)とする配列である。このステップにおけるイントラ予測モードの候補の導出方法の詳細については、
図4を用いて後述する。
【0054】
次に、対象モード番号が、予測モード配列の何れかの要素の値と一致するか否かを判定する(ステップS205)。
【0055】
<対象モード番号が予測モード配列の何れかの要素の値と一致する場合>
符号化制御部110は、ステップS205の判定の結果が、「対象モード番号が何れかの予測モード配列の要素の値と一致する」ことを示す場合(ステップS205の結果がYES)、予測モード使用フラグの値を「1」と決定する(ステップS207)。
【0056】
符号化制御部110は、ステップS203で取得したイントラ予測モードの候補のうち、いずれの予測モードを使用したかを特定するために、予測モード候補番号(予測モード配列のインデクス値)を指定された方式で可変長符号化する(ステップS209)。
【0057】
<対象モード番号が予測モード配列のいずれの要素の値とも一致しない場合>
符号化制御部110は、ステップS205の判定の結果が「対象モード番号がいずれの予測モード配列の値と一致しない」ことを示す場合(ステップS205の結果がNO)、「予測モード使用フラグ」を0と決定する(ステップS213)。
【0058】
次に、符号化制御部110は、対象モード番号とイントラ予測モードの候補の数とに基づいて「符号化モード番号」(rem_intra_luma_pred_modeの値)を生成する(ステップS215)。このステップは、対象モード番号を基にして、同じ対象モード番号であっても、イントラ予測モードの候補の数に応じて、異なる符号化モード番号を生成するステップである。このステップについては、
図3を用いて後述する。
【0059】
最後に、符号化制御部110は、符号化モード番号を指定された可変長符号化方法で符号化する(ステップS217)。このステップについては、
図5(CABAC方式)、
図8(CAVLC方式)を用いて後述する。
【0060】
[1−2−1.符号化モード番号の生成の一例]
ステップS215の符号化モード番号を生成するステップの一例について説明する。
図3は、ステップS215の符号化モード番号を生成するステップの処理手順の一例を示すフローチャートである。なお、符号化モード番号は、他の方法で生成しても良い。
【0061】
まず、符号化制御部110は、イントラ予測モードの総数(イントラ予測モードの種類数、本実施の形態では34)と、イントラ予測モードの候補の数とを取得する(ステップS301)。本実施の形態では、上述したように、イントラ予測モードの候補の数は、2の固定数である。
【0062】
符号化制御部110は、ステップS302からステップS307で示されるループの処理を、イントラ予測モードの候補の数で指定される回数繰り返すものである。本実施の形態では、イントラ予測モードの候補の数が2であることから、インデクス(i)の値が1と0となる2回、ステップS303(および、ステップS303の判定に応じて、ステップS305)を実行する。なお、予測モードの候補の数がNである場合は、ステップS303(および、ステップS303の判定に応じてステップS305)をN回実行する。
【0063】
ステップ302では、iを0に設定する。
【0064】
ステップS303では、現時点の対象モード番号の値が、インデクス(i)で指定される予測モード配列の要素の値より大きいか否かを判定する。判定の結果が、現時点の対象モード番号の値が予測モード配列の要素の値より大きいことを示す場合、現時点の対象モード番号の値を1デクリメントする(ステップS305)。
【0065】
これを前述のイントラ予測モードの候補の数の値の回数繰り返し、最後にステップS305のデクリメント等の結果を反映した後の現在の対象モード番号を「符号化モード番号」と決定する(ステップS309)。
【0066】
このステップS215の処理は、例えば、イントラ予測モードの総数0..33の34個の値を何れかを取りうる「対象モード番号」の値から「符号化モード番号」に対応付けて決定することと等価である。
【0067】
表1は、「予測モードの候補の数」が2である(インデクス0と1とが存在する)場合における(a)対象モード番号と(b)「符号化モード番号」との対応を示す表である。(c)は、i=0のときのステップS305の処理(現在の対象モード番号からの変更値)を、(d)は、i=1のときのステップS305の処理(現在の対象モード番号からの変更値)をそれぞれ示している。表1において、candModeList[0]は予測モード配列の第1番目の要素を、candModeList[1]は予測モード配列の第2番目の要素を、それぞれ示している。
【0069】
表1より、符号化モード番号は、対象モード番号の値に応じて以下のように導出することができる。
(1)0≦対象モード番号<予測モード配列の第1番目の要素の値(0≦対象モード番号<candModeList[0])の場合、対象モード番号と符号化モード番号とは一致する。
(2)予測モード配列の第1番目の要素の値<対象モード番号<予測モード配列の第2番目の要素の値(candModeList[0]<対象モード番号<candModeList[1])の場合、符号化モード番号は対象モード番号より1少ない数となる。
(3)予測モード配列の第2番目の要素の値<対象モード番号(candModeList[1]<対象モード番号)の場合、符号化モード番号は対象モード番号から要素数の2少ない数となる。
【0070】
つまり、予測モード配列にk個の要素が存在する場合(イントラ予測モードの候補の数がk個である場合)には、予測モード配列の値によりソートし、対象モード番号が、予測モード配列の第何番目までの値より大きいかを比較することで、以下のように一般化することができる。
【0071】
(k)予測モード配列の第k−1番目の要素の値<対象モード番号<第k番目の要素の値(candModeList[k−1]<対象モード番号<candModeList[k])の場合、符号化モード番号は、対象モード番号よりk−1少ない数となる。
【0072】
[1−2−2.予測モード配列の生成方法]
「予測モード配列」(candModeList)を決定する方法について
図4を用いて説明する。
図4は、
図2に示す予測モード配列取得ステップ(ステップS203)の詳細な処理手順を示すフローチャートである。ここでは、イントラ予測モードの候補の数が2に固定されている場合の、符号化対象ブロックの「予測モード配列」(candModeList)を決定する場合について説明する。
【0073】
なお、本実施の形態では、「予測モード配列」(candModeList)の要素として、既に符号化済みの隣接ブロックの対象モード番号を使用する。隣接ブロックの対象モード番号が一致する場合(一致する対象モード番号は1つのイントラ予測モードの候補とする)など、既に符号化済みの隣接ブロックの対象モード番号の数が、予測モード配列の要素数に満たない場合は、DC予測モードや、平面予測(イントラプラーナー)、縦方向予測(イントラアンギュラー)など、隣接ブロックの対象モード番号ではない他のイントラ予測モードから、イントラ予測モードの候補を決定する。
【0074】
符号化制御部110は、符号化対象ブロックの左側に隣接する既に符号化済みの左側隣接ブロックの対象モード番号をintraPredModeLeftにセットする(ステップS401)。
【0075】
より詳細には、intraPredModeLeftには、例えば、左側隣接ブロックがイントラ予測で符号化されている場合には、その符号化(復号化)に用いられる対象モード番号をセットし、イントラ予測では無い符号化方法で符号化されている場合(例えば、フレーム間符号化を用いて符号化されている場合)には、DC予測モード(
図4ではDC予測と表記)を示すイントラ予測モード番号(例えば「2」)をセットする。また、左側隣接ブロックが存在しないと判定される場合(例えば、スライス境界、画面端の場合等)、intraPredModeLeftにNot Availableをセットする。
【0076】
同様に、符号化制御部110は、符号化対象ブロックの上側に隣接する既に符号化済みの上側隣接ブロックの対象モード番号をintraPredModeAboveにセットする(ステップS402)。intraPredModeAboveのセット方法としては、ブロック位置以外は、左側隣接ブロックに対する処理(ステップS401)と同じである。
【0077】
符号化制御部110は、intraPredModeLeftおよびintraPredModeAboveをセットすると、左側隣接ブロックおよび上側隣接ブロックの対象モード番号が存在しない(intraPredModeLeftおよびintraPredModeAboveの両方がNot Available)か否かを判断する(ステップS403)。
【0078】
ここで、ステップS403でYESの場合(左側隣接ブロックと上側隣接ブロックが共に存在しない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)の第1番目の要素であるリスト0(candModeList[0])に、イントラ予測モード番号“0”、第2番目の要素であるリスト1(candModeList[1])に、DC予測モードを示すイントラ予測モード番号(例えば“2”)をセットする(ステップS404)。
【0079】
一方、ステップS403でNOの場合、符号化制御部110は、intraPredModeLeftおよびintraPredModeAboveの一方がない、または、intraPredModeLeftおよびintraPredModeAboveが一致するか否かを判定する(ステップS405)。
【0080】
ステップS405でNOの場合(左側隣接ブロックおよび上側隣接ブロックの両方の対象モード番号が存在し、かつ、両方の対象モード番号が一致しない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号のうち、小さい方の対象モード番号をセットする。更に、リスト1(candModeList[1])に、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号のうち、大きい方の対象モード番号をセットする(ステップS406)。
【0081】
一方、ステップS405でYESの場合(左側隣接ブロックおよび上側隣接ブロックのどちらか一方の対象モード番号だけが存在する場合、もしくは、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号が一致する場合)、符号化制御部110は、一致するもしくは存在する対象モード番号(以下、「隣接モード番号」と称する)が、DC予測モードを示すイントラ予測モード番号(例えば“2”)であるか否かを判定する(ステップS407)。
【0082】
ステップS407でYESの場合(隣接モード番号がDC予測モードを示すイントラ予測モード番号である場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、隣接モード番号(一致するもしくは存在する対象モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、小さい方のイントラ予測モード番号をセットする。さらに、符号化制御部110は、リスト1(candModeList[1])に、隣接モード番号(一致するもしくは存在する対象モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、大きい方のイントラ予測モード番号をセットする(ステップS408)。
【0083】
一方、ステップS407でNOの場合(隣接モード番号がDC予測モードを示すイントラ予測モード番号(例えば“2”)ではない場合)、符号化制御部110は、隣接モード番号が“0”であるか否かを判定する(ステップS409)。
【0084】
ステップS409でNOの場合(隣接モード番号が“0”でない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、イントラ予測モード番号“0”をセットし、リスト1(candModeList[1])に、隣接モード番号をセットする(ステップS410)。
【0085】
一方、ステップS409でYESの場合(隣接モード番号が“0”である場合)、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、隣接モード番号“0”をセットし、リスト1(candModeList[1])に、イントラ予測モード番号“1”をセットする(ステップS411)。
【0086】
ステップS408〜ステップS411では、予測モード配列の各要素に、DC予測モードの番号およびイントラ予測モード番号“0”、“1”を優先的に配置することにより、前述の表1で示したように、符号化モード番号の大きさを小さくすることができるため、符号化効率を向上させることができる。
【0087】
なお、ここでの優先例(DC予測モードの番号、イントラ予測モード番号“0”、“1”)は一例であり、小さい番号のイントラ予測モードを優先すれば、DC予測モードの優先度を下げても符号化効率を上げることができる。
【0088】
[1−2−3.符号化モード番号の符号化]
ステップS217の符号化モード番号を符号化するステップの一例について、
図5を基に説明する。ここでの符号化は、指定された可変長符号化であり、以下では、CABAC方式の場合を例に説明する。
図5は、CABAC方式での符号化方法を示すフローチャートである。
【0089】
符号化制御部110は、例えば、
図3に示す方法により、符号化モード番号を取得し(ステップS701、ステップS215)、取得した符号化モード番号に対し、イントラ予測モードの総数(最大モード数)に対応する二値化方法で二値化処理を行う(ステップS702)。これは、例えばイントラ予測モードの符号化単位に応じて、最大モード数が変わる場合(例えば、符号化単位が4x4サイズの場合は17モード、8x8以上のサイズの場合には34モード等)、その長さに対応する二値化処理を行うことを意味している。
【0090】
符号化制御部110は、符号化モード番号を二値化した信号に対して、二値算術符号化処理を行う(ステップS703)。これにより、符号化モード番号をストリームに記録することができる。
【0091】
具体的なデータ構造を示すシンタックスの例を
図6Aおよび
図6Bを用いて説明する。
図6Aは、非特許文献1より抜粋した対象モード番号を記録したデータ構造を示すシンタックス構成の一例を示す概念図である。また、
図6Bは、本実施の形態のシンタックス構成の一例を示す概念図である。
【0092】
ここで、特に説明しない部分については、非特許文献1に記載の通りに動作するものとする。従来のシンタックス構成では、まず予測モード使用フラグ(prev_intra_luma_pred_flag)を符号化する。
【0093】
予測モード使用フラグが1である場合、イントラ予測モードの候補の数(NumMPMCand)が1より大きいかを判定し(901)、イントラ予測モードの候補の数(NumMPMCand)が1より大きい(2以上である)場合は、予測モード候補番号(mpm_idx)の符号化を行う。
【0094】
一方、予測モード使用フラグが0である場合、符号化モード番号(rem_intra_luma_pred_mode)を符号化する。
【0095】
本発明の構成では、イントラ予測モードの候補の数を少なくとも2以上に固定するため、
図6Aの条件式901「if(NumMPMCand>1)」が不要となり、
図6Bに示すシンタックス構造のビットストリームを生成する。すなわち、予測モード使用フラグが1である場合には、必ず、予測モード候補番号(mpm_idx)の符号化を行う。これにより、条件分岐が少なくなり、復号時の処理量を削減可能なビットストリームの生成を可能とする。なお、従来は、図示しないが、
図2のステップS207の後に、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号が一致するか否かを判定する処理が行われ、一致する場合に、ステップS209が実行される。
【0096】
(実施の形態1の変形例)
(変形例1:予測モード決定方法の変形例)
なお、
図4で説明した、予測モード配列の決定方法は、次のように変形してもよい。
【0097】
この変形例では、隣接ブロックで使用された対象モード番号とは別に、符号化対象ブロックに対して最も発生する確率の高いイントラ予測モード番号を選出して最頻度モード番号とし、この再頻度モード番号を、
図4で挙げた“DC予測モード2”、“モード番号0”、“モード番号1”の何れかと入れ替える。
【0098】
最頻度モード番号の選出方法としては、例えば、
図5のステップS703の算術符号に用いられるコンテキストの状態から、最も符号長の短くなるイントラ予測モード番号を選出してもよい。また、例えば、後述する
図8のステップS502、ステップS503で用いる可変長テーブルにより最短ビット長に割り当てられるイントラ予測モード番号を最頻度モード番号としてもよいし、全く別の最頻度モード選出ステップ(例えば、統計的に隣接モード番号と累積的な対象モード番号の経過より導出する方法)により選出してもよい。このようにすることにより、前者2つのステップでは、既にあるステップの共用化により、処理量の増加を抑制しつつ、符号化効率を向上することができ、最後のステップでは、処理量は若干増加するものの、大幅な符号化効率の向上が期待できる。
【0099】
この最頻度モード番号を用いて予測モード配列を決定する方法について、
図7を用いて説明する。
図7は、予測モード配列の決定ステップ(ステップS203)の処理手順の一例を示すフローチャートである。なお、
図7のフローチャートに示す処理手順は、
図4のフローチャートに示す処理手順の変形例であり、ステップS404(ステップS804)、ステップS409(ステップS809)、ステップS410(ステップS810)、ステップS411(ステップS811)以外のステップ(ステップS401〜ステップS403、ステップS405〜ステップS408)は同じである。そのため、重複するステップについては、適宜説明を省略する。
【0100】
ここでは、イントラ予測モードの候補の数が2に固定されている場合の、符号化対象ブロックの「予測モード配列」(candModeList)を決定する場合について説明する。
【0101】
符号化制御部110は、符号化対象ブロックの左側に隣接する既に符号化済みの左側隣接ブロックの対象モード番号をintraPredModeLeftにセットし(ステップS401)、上側に隣接する上側隣接ブロックの対象モード番号をintraPredModeAboveにセットする(ステップS402)。
【0102】
符号化制御部110は、intraPredModeLeftおよびintraPredModeAboveをセットすると、左側隣接ブロックおよび上側隣接ブロックの対象モード番号が存在しない(intraPredModeLeftおよびintraPredModeAboveの両方がNot Available)か否かを判定する(ステップS403)。
【0103】
ステップS403でYESの場合(左側隣接ブロックと上側隣接ブロックが共に存在しない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、最頻度モード番号およびDC予測モードを示すイントラ予測モード番号(例えば“2”)のうち、小さい方のイントラ予測モード番号をセットする。さらに、リスト1(candModeList[1])に、最頻度モード番号およびDC予測モードを示すイントラ予測モード番号(例えば“2”)のうち、大きい方のイントラ予測モード番号をセットする(ステップS804)。
【0104】
一方、ステップS403でNOの場合、符号化制御部110は、intraPredModeLeftおよびintraPredModeAboveの一方がない、または、intraPredModeLeftおよびintraPredModeAboveが一致するか否かを判定する(ステップS405)。
【0105】
ステップS405でNOの場合(左側隣接ブロックおよび上側隣接ブロックの両方の対象モード番号が存在し、かつ、両方の対象モード番号が一致しない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号のうち、小さい方の対象モード番号をセットし、リスト1(candModeList[1])に、左側隣接ブロックの対象モード番号および上側隣接ブロックの対象モード番号のうち、大きい方の対象モード番号をセットする(ステップS406)。
【0106】
一方、ステップS405でYESの場合(左側隣接ブロックおよび上側隣接ブロックのどちらか一方の対象モード番号だけが存在する場合、もしくは、左側隣接ブロックおよび上側隣接ブロックの対象モード番号が一致する場合)、符号化制御部110は、一致するもしくは存在する対象モード番号(隣接モード番号)がDC予測モードを示すイントラ予測モード番号(例えば“2”)であるか否かを判定する(ステップS407)。
【0107】
ステップS407でYESの場合(隣接モード番号がDC予測モードを示すイントラ予測モード番号である場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、隣接モード番号(一致するもしくは存在する対象モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、小さい方のイントラ予測モード番号をセットする。さらに、符号化制御部110は、リスト1(candModeList[1])に、隣接モード番号(一致するもしくは存在する対象モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、大きい方のイントラ予測モード番号をセットする(ステップS408)。
【0108】
一方、ステップS407でNOの場合(隣接モード番号がDC予測モードを示すイントラ予測モード番号(例えば“2”)ではない場合)、符号化制御部110は、隣接モード番号が最頻度モード番号であるか否かを判定する(ステップS809)。
【0109】
ステップS809でNOの場合(隣接モード番号が最頻度モード番号ではない場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、最頻度モード番号および隣接モード番号のうち、小さい方のイントラ予測モード番号をセットし、リスト1(candModeList[1])に、最頻度モード番号および隣接モード番号のうち、大きい方のイントラ予測モード番号をセットする(ステップS810)。
【0110】
一方、ステップS809でYESの場合(隣接モード番号が最頻度モード番号である場合)、符号化制御部110は、符号化対象ブロックの「予測モード配列」(candModeList)のリスト0(candModeList[0])に、隣接モード番号(=最頻度モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、小さい方のイントラ予測モード番号をセットし、リスト1(candModeList[1])に、隣接モード番号(=最頻度モード番号)およびDC予測モードを示すイントラ予測モード番号のうち、大きい方の番号をセットする(ステップS811)。
【0111】
ステップS809〜ステップS811では、上述したように、予測モード配列の各要素に、最頻度モード番号とDC予測モードとを優先的に配置することにより、イントラ予測モードへの適合率を上げることができる。また、前述の表1で示したように、符号化モード番号の大きさを小さくすることができるため、符号化効率を向上させることができる。
【0112】
なお、ここでの優先順の例(DC予測モード番号、最頻度モード番号、および、イントラ予測モード番号“0”の優先順)は一例であり、統計的な情報に基づき、優先順番を切り替えてもよい。また、イントラ予測モード番号“0”は、例えば、平面予測(イントラプラーナー)や縦方向予測(イントラアンギュラー)などである。
【0113】
(変形例2:符号化モード番号の符号化の変形例)
なお、符号化モード番号の符号化は、上述したCABAC方式に限られず、CAVLC方式を用いても良い。以下、CAVLC方式での符号化方法について、
図8、
図9Aおよび
図9Bを用いて説明する。
図8は、CAVLC方式での符号化方法を示すフローチャートである。
図9Aは、最大モード数(イントラ予測モードの総数)が17の場合の符号化テーブルを示す表であり、
図9Bは、最大モード数が34の場合の符号化テーブルの一例を示す表である。
【0114】
符号化制御部110は、例えば、
図3に示す方法により、符号化モード番号を取得し(ステップS501)、最大モード数に対応する可変長テーブル(不図示)を選択する(ステップS502)。これは、例えば、符号化単位のサイズ別に、最大モード数が変わる場合(例えば、符号化単位が4x4サイズの場合は17モード、8x8以上のサイズの場合には34モード等)、符号化単位のサイズに対応する可変長テーブルを選択することを意味している。
【0115】
なお、本実施の形態によれば、符号化単位に対して1種類の可変長テーブルを利用すればよいため、符号化装置に必要なメモリ数を削減することができる。
【0116】
符号化制御部110は、選択した可変長テーブルを用いて、符号化モード番号から、符号化インデクス番号を導出する(ステップS503)。なお、この可変長テーブルは、符号化モード番号の頻度が高いほど、符号化インデクスが小さくなるようにブロック単位または、大ブロック単位、スライス単位で更新される。このため、符号化インデクス番号が小さいほど、短い符号長となるように、後述する可変長符号化処理が行われる。
【0117】
最後に、導出した符号化インデクス番号に対して、予め決められた符号化テーブルを用いて符号化する(ステップS504)。
【0118】
ここで、CAVLC方式では、
図2の説明のように、予測モード使用フラグ(ステップS207)の設定と、符号化モード番号の符号化(ステップS209)とを別にするのではなく、予測モード使用フラグを含めて符号化モード番号を符号化する場合を例に説明する。
【0119】
図9Aおよび
図9Bにおいて、MPM1は、予測モード使用フラグ=1で、予測モード候補番号0の場合を示し、その場合の符号は“10”である。MPM2は、予測モード使用フラグ=1で、予測モード候補番号0の場合を示し、その場合の符号は“11”である。以降の左側の番号0〜14(イントラ予測モードの候補の数=2の場合の例のため、17モードから2モードを除いた15モードに対応)、もしくは、0〜31(イントラ予測モードの候補の数=2の場合の例のため、34モードから2モードを除いた32モードに対応)が、(ステップS503)で導出された符号化モード番号を示し、右側の符号がビットストリームに書き出される符号列を示す。
【0120】
この方法では、モード情報を全て同じ仕組みで符号化することができ、必要とするメモリ数を削減することができる。
【0121】
なお、
図2で示したフローと同様に、予測モード使用フラグと符号化モード番号とを別々に符号化してもよい。その場合には、MPM1にあたる符号を1とし、予測モード使用フラグ=1として扱い、予測モ−ド番号は1ビットのインデクスを符号化すればよい。
【0122】
なお、CAVCL方式の符号化の場合には、予測モード使用フラグ(prev_intra_luma_pred_flag)と、予測モード候補番号(mpm_idx)と、符号化モード番号(rem_intra_luma_pred_mode)で共有化したvlcテーブルを参照してもよい。
【0123】
(実施の形態2)
本発明の実施の形態2に係る画像復号方法、および、当該画像復号方法を実行する画像復号装置について、
図10〜
図15を基に説明する。
【0124】
本実施の形態の画像復号方法は、算術復号時に、復号対象ブロックのビットストリームに対して算術復号処理した結果のみを用いて復号化を実施する。なお、算術復号処理では、1ビットから数ビットの情報量を復元することがあるため、バッファ量の確保やリアルタイム処理が困難とされるが、本実施の形態の画像復号方法では、他の復号対象ブロックの情報を利用しないため、演算処理に必要な内部メモリ量を削減し、処理時間を短縮することができる。
【0125】
[2−1.画像複合装置の構成]
本実施の形態に係る画像復号装置の構成について、
図10を基に説明する。
図10は、画像復号装置200の構成を示すブロック図である。
【0126】
画像復号装置200は、ビットストリーム(bitStr)が入力されると、画像信号を出力する装置である。本発明においては、特に、入力されるビットストリームとして、実施の形態1の画像符号化方法により生成されたビットストリーム(bitStr)を例に説明する。
図9Aまたは
図9Bに示す符号列が書き込まれたビットストリームを、データ構造の意味では
図9Aまたは
図9Bの左から右に沿ったPrediction Unit Syntaxの定義に従いつつ、右の可変長復号処理(ステップS1117)、「符号化モード番号」(rem_intra_luma_pred_mode) の取得(ステップS1115)を実行し「対象モード番号」を再生する。
【0127】
画像復号装置200は、可変長復号化部220、逆量子化部201、逆変換部202、前回の予測画像と差分画像とを合成する加算部203、フレーム間予測により予測画像を生成する画面間予測部204、イントラ予測により予測画像を生成する画面内予測部205、画面間予測部204からの予測画像と画面内予測部205からの予測画像とを選択的に出力する切替部206、制御部210等を含む。
【0128】
可変長復号化部220は、可変長符号化部120と逆の動作を行う。すなわち、ビットストリームが入力されると、イントラ予測モードの候補の数(NumMPMCand)に応じて、ビットストリームから「符号化モード番号」等を取得する。さらに、「符号化モード番号」から「対象モード番号」を得る処理を行う。
【0129】
画面内予測部205は、
図1の画面内予測部108と動作はほぼ同じである。得られた「対象モード番号」に従い、現在の復号対象ブロックに対して、対象モード番号に対応するイントラ予測モードの指定する方向に存在する予測画素を利用し、現在の復号対象ブロックの画素値を予測する。
【0130】
制御部210は、可変長復号化部220に、対象モード番号を取得する上で必要な情報を与える。本発明の復号化方法における、必要な情報とは「実施例1の符号化により出力されたビットストリームから「対象モード番号」を再生するための情報」であればよい。たとえば、可変長復号化部220が保持していない場合には、復号対象ブロックについての予測モード配列(candModeList)(あるいは、このリストの初期値)を与える。また、この現在の復号対象ブロックに対応付けられた所定の単位毎に、エントロピー復号化モード(CAVLC方式で出力されたビット列か、CABACを用いて出力されたビット列等)を与える。
【0131】
[2−2.画像復号方法の処理手順]
本実施の形態に係る画像復号方法の処理手順について、
図11を基に説明する。
図11は、
図10の画像復号装置で実行される「対象モード番号」(
図15に示す34個のイントラ予測モード)の復号方法を示すフローチャートである。なお、本実施の形態では、各ステップは、可変長復号化部220で実行される場合を例に説明するが、制御部210で実行するなどしてもよい。
【0132】
まず、実施の形態1の符号化方法で符号化して得られたビットストリーム(bitStr)から、復号対象ブロックのモード情報に対応部分を抽出する。対応部分とは、
図6Aおよび
図6Bを用いて説明したシンタクス(Prediction unit syntax)に従って構造化された、(1)「予測モード使用フラグ」(prev_intra_luma_pred_flag)、(2)「予測モード候補番号」(mpm_idx)または(3)「符号化モード番号」(rem_intra_luma_pred_mode)をエントロピー符号化して得られたビット列である。
【0133】
可変長復号化部220は、ビット列を取得すると、
図6Aおよび
図6Bに説明したシンタクスに従い復号して、「対象モード番号」を取得する(ステップS1103〜ステップS1115)。
【0134】
可変長復号化部220は、まず、「予測モード使用フラグ」(prev_intra_luma_pred_flag)の値を所定のエントロピー復号化方法により復元する(ステップS1103)。以下、特に説明がない場合、以下の説明および図中の語、並びに値の意味は、実施の形態1の符号化方法、並びに、
図6Aおよび
図6Bのシンタクスについての説明で説明した意味と同じである。
【0135】
可変長復号化部220は、復号した予測モード使用フラグが1であるか否かを判定する(ステップS1105)。
【0136】
ステップS1105でYESの場合(「予測モード使用フラグ」の値が1の場合)は、可変長復号化部220は、「予測モード候補番号」(mpm_idx)を復号する(ステップS1109)。
【0137】
詳細には、可変長復号化部220は、予測モード配列(candModeList)を生成し、予測モード配列(candModeList)の要素番号(mpm_idx)の要素の値(candModeList [mpm_idx])を、「対象モード番号」として決定する(ステップS1111)。なお、ここでの予測モード配列の生成方法は、実施の形態1の
図4もしくは
図7で説明した方法を用いることができる。予測モード配列の生成方法は、符号化装置と復号装置で同じものを用いることとする。
【0138】
ステップS1105でNOの場合(「予測モード使用フラグ」の値が1ではない場合)、可変長復号化部220は、符号化モード番号をエントロピー復号する。詳細には、まず、イントラ予測モードの総数(最大モード数)に応じて、符号化モード番号をビット列から取得する(ステップS1117)。この取得処理は、
図2のステップS217と逆の処理である。対応するビット列が、エントロピー符号化方式として(1)CABACにより出力されたものであるか(
図5)、(2)CAVLCにより出力されたものであるか(
図8)に応じて異なる処理を行う。エントロピー符号化方式の判定は、例えば、復号対象ブロックに対応付けられる予測単位(PU)に対応する所定単位のエントロピー符号化モードフラグの示す値)によって区別する。なお、このフラグはさらに上位のシーケンス単位で指定されてもよい。
【0139】
まず、ビット列が(1)CABACにより出力されたものである場合について、
図12Aを基に説明する。
図12Aは、
図11のステップS1117に対応する算術復号時の処理の流れを示すフローチャートである。
【0140】
可変長復号化部220は、まず、取得したビットストリームを算術復号処理する(ステップS1401、ステップS703の逆)。可変長復号化部220は、算術復号処理により取得した二値情報に対して多値化処理を行い、符号化モード番号を復元する(ステップS1402)。
【0141】
次に、ビット列が(2)CAVLCにより出力されたものであることを示す場合について
図13を用いて説明する。
図13は、ビット列が(2)CAVLCにより出力されたものであることを示す場合におけるステップS1117の「符号化モード番号」の取得方法を示すフローチャートである。
【0142】
可変長復号化部220は、まず、ビット列から、復号対象ブロック(PU)の「符号化モード番号」の復号に必要な情報(コンテキスト)を用いて、符号化インデクス番号を取得する(ステップS1201)。この復号処理は、
図8のステップS504の符号化処理と逆の処理を行うことに対応する。より具体的には、最大モード数(例えば実施例1で説明した予測情報の伝送単位により、17モードや34モード数に対応)に応じて、
図9Aまたは
図9Bで示した可変長符号化(可変長復号化)テーブルを選択する。選択した可変長符号化テーブルのビット列から、入力されたビットストリーム(
図9Aまたは
図9Bの右側に示すビット列)に対応するビット列を検索し、当該ビット列に対応づけられた符号化インデクス番号(
図9Aまたは
図9Bの左側に示す番号に対応)を取得する。
【0143】
可変長復号化部220は、次に、前述と同様に最大モード数毎に別々の可変長テーブルを選択し(ステップS1202、ステップS502と同じ、不図示)、選択した可変長テーブルを用い、取得した符号化インデクス番号に対応づけられた符号化モード番号を導出する(ステップS1203、ステップS503の逆の処理)。なお、この可変長テーブルは、符号化モード番号の頻度が高いほど、符号化インデクス番号が小さくなるようにブロック単位または、大ブロック単位、スライス単位で更新される。この更新は、符号化装置側と復号化装置側で予め決められた方法で更新されるため、対象とする符号化対象ブロックに対応する符号化、および、復号対象ブロックに対する復号で用いる可変長テーブルは同じものとなるように設計されている。この処理により、符号化モード番号を復元する。
【0144】
次に、符号化モード番号から対象モード番号を復元する(ステップS1115、
図2のステップ215とは逆の処理)。
図14は、符号化モード番号からの対象モード番号の復元の処理手順を示すフローチャートである。
【0145】
図14に示すように、可変長復号化部220は、ステップS1117で取得された「符号化モード番号」から「対象モード番号」を取得する。
図14の各ステップは、
図3の「対象モード番号」から「符号化モード番号」を得るステップを逆に実行することに等しい。
【0146】
可変長復号化部220は、まず、イントラ予測モードの候補の数(NumMPMCand)を取得する(ステップS1301)。本実施の形態では、実施の形態1と同様に、イントラ予測モードの候補の数は、2の固定数である。
【0147】
可変長復号化部220は、次に、ステップS1302からステップS1307で示されるループの処理を、イントラ予測モードの候補の数(NumMPMCand)で指定される回数繰り返す。本実施の形態では、イントラ予測モードの候補の数(NumMPMCand)が2であることから、インデクスの値が0と1との2回、ステップS1303(および、ステップS1305)を実行する。なお、予測モードの候補の数がNである場合は、ステップS1303(および、ステップS1303の判定に応じてステップS1305)をN回実行する。
【0148】
ステップS1302では、候補インデクスcandIdx(
図14ではIndexに対応)を0に設定する。
【0149】
ステップS1303では、現時点の符号化モード番号と、予測モード配列(CandModeList)の候補インデクスcandIdxの値で指定される要素の値(candModeList[candIdx]の値)との大小を比較する。なお、Index=0のときは、符号化モード番号は、ステップS1117で取得された時点の符号化モード番号となる。
【0150】
ステップS1303でYESの場合(符号化モード番号≧candModeList[candIdx]の値の場合)、符号化モード番号を1インクリメントする(ステップS1305)。なお、現時点の符号化モード番号と予測モード配列candModeList[candIdx]の値が、同じ値である場合にも1インクリメントする。候補インデクス番号candIdxを1インクリメントしつつ、全ての候補インデクスについての比較が終了するまでステップS1302からステップS1307のループを繰り返す。
【0151】
この処理により、イントラ予測モードの候補の数に応じて、符号化モード番号が対象モード番号に復元される。なお、このイントラ予測モードの候補の数に応じた「符号化モード番号」からの「対象モード番号」の復元は、表1の処理を下の行から上の行に向かって読むことと等価である。
【0152】
例えば、イントラ予測モードの候補の数(NumMPMCandの値)が2の場合、符号化モード番号と対象モード番号の対応は、表2の通りとなる。この表の例では、1番目の(インデクスが0の)予測モード配列の要素の値を「i」とし、2番目の(インデクスが1の)予測モード配列の要素の値を「j」である場合で説明している。
【0154】
このように、本実施の形態の復号装置および復号方法によれば、イントラ予測モードの候補の数に応じて(あるいはイントラ予測モードの候補の数に基づいて)CAVLD方式ではCodeNumと「符号化モード番号」の対応を、CABAC方式では2値配列から「符号化モード番号」の対応方法を切り替える(ステップS1117)。さらに、イントラ予測モードの候補の数に応じて符号化モード番号と対象モード番号との対応を切り替える(ステップS1115)。
【0155】
上記構成により、対象モード番号の符号化を、イントラ予測モードの候補の数に応じて切り替えることにより符号化効率を高めて生成された実施の形態1のビットストリームから、元の「対象モード番号」を再現することが可能となる。
【0156】
上述したように、本発明の画像復号装置および画像復号方法では、イントラ予測モードの候補の数を2以上に固定するため、算術復号処理において、イントラ予測モードの候補の数が1であるか否かを判定する条件分岐無しで処理することが可能である。
【0157】
なお、
図12Bは、画像復号装置内での算術復号処理の処理手順の一例を示す概念図である。前述したとおり、算術復号には、取得するビット長に対する復号された信号(復号パラメタ)の情報量が算術的に決定されるため、不定であり、実時間処理を実現するためには、高速な演算が必要である。そこで、
図12Bに示すように、復号処理としては、取得するビットストリームを予め決められた方法(CABACまたはCAVLC)により算術復号し(ステップS1411)、復号パラメタを取得する(ステップS1412)、エントロピー復号ステップS1410と、復号パラメタに基づいて予測画像を生成し、復号画像信号を取得する復号処理ステップ(ステップS1413)とは別のステップとして分けて並列演算を可能とする場合が多い。ここで、算術復号ステップS1411に必要な復号情報は、ステップS1413からのフィードバックにより取得する。
【0158】
この際、エントロピー復号ステップS1410は、復号処理ステップS1413の処理結果を待つ必要があり、高速演算することができないため、このフィードバックを減らすことが高速化に対しては特に重要になる。
【0159】
このため、本実施の形態の画像復号装置では、
図11に示すように、予測モード使用フラグが1(エントロピー復号ステップで復号した信号)(ステップS1105でYES)となれば、必ず予測モード候補番号の復号ステップ(ステップS1109)を呼ぶため、この間に復号処理ステップ(ステップS1413)の処理を待つ必要がない。
【0160】
一方、
図6Aで示した従来のシンタックス構成では、予測モード数(NumMPMCand)を判定する必要があり、この判定には、前述したとおり、上側隣接ブロック、左側隣接ブロックの対象モード番号を利用する必要があるため、復号処理ステップS1413の処理を待つ必要がある。よって、本発明の構成によれば、復号装置の高速化を実現することができる。
【0161】
(実施の形態1および実施の形態2の変形例)
(1)なお、
図1の符号化制御部110、
図10の制御部210については、説明のために必要な処理部との入出力のみを図示したが、図示しない信号線により各処理部に必要な情報の入出力を行うことができるとしてよい。符号化制御部、あるいは、制御部は、各処理部の処理の制御を行うコントローラであると考えてよい。
【0162】
(2)また、
図15に示された33の方向と1つの無方向の34個のモードを例に34個の対象モード番号の符号化について説明したが、モードの数は、
図15に示すレベル(L0〜L3)の深さに応じて可変であったとしても、本発明の効果は損なわれない。
【0163】
例えば、イントラ予測モードの候補の数が、2のn乗+k個である場合には、符号化モード番号(rem_intra_luma_pred_mode)はnビット、または、n+1ビットで表現可能である。
【0164】
上記の復号化装置の構成をとることにより、
図6Aおよび
図6Bで示したシンタックス構造を正しく復号することができる。また、
図12Bで示したように、算術復号時には、単純に復号処理を実行するだけで、従来のようにイントラ予測モードの候補の数が1である場合を判定するために、隣接の対象モード番号を取得、比較する必要がなく、メモリ量が小さく、高速に正しく復号処理を実行できる。
【0165】
(実施の形態3)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
【0166】
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
【0167】
図16は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
【0168】
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
【0169】
しかし、コンテンツ供給システムex100は
図16のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【0170】
カメラ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)等であり、いずれでも構わない。
【0171】
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0172】
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
【0173】
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
【0174】
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【0175】
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【0176】
なお、コンテンツ供給システムex100の例に限らず、
図17に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
【0177】
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
【0178】
図18は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
【0179】
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
【0180】
まず、テレビ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の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【0181】
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
【0182】
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
【0183】
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を
図19に示す。情報再生/記録部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は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【0184】
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【0185】
図20に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
【0186】
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
【0187】
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば
図18に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
【0188】
図21Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
【0189】
さらに、携帯電話ex114の構成例について、
図21Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
【0190】
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
【0191】
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
【0192】
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
【0193】
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
【0194】
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
【0195】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
【0196】
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
【0197】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【0198】
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【0199】
(実施の形態4)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
【0200】
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
【0201】
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
【0202】
図22は、多重化データの構成を示す図である。
図22に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
【0203】
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
【0204】
図23は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
【0205】
図24は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。
図24における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。
図24の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
【0206】
図25は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには
図25下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
【0207】
また、多重化データに含まれる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時間の情報を持つ。
【0208】
図26はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
【0209】
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
【0210】
多重化データ情報ファイルは、
図27に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
【0211】
多重化データ情報は
図27に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
【0212】
ストリーム属性情報は
図28に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
【0213】
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
【0214】
また、本実施の形態における動画像復号化方法のステップを
図29に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
【0215】
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
【0216】
(実施の形態5)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、
図30に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【0217】
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
【0218】
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
【0219】
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
【0220】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0221】
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0222】
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【0223】
(実施の形態6)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
【0224】
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。
図31は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
【0225】
より具体的には、駆動周波数切替え部ex803は、
図30のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、
図30の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態4で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態4で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、
図33のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
【0226】
図32は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
【0227】
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
【0228】
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
【0229】
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、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などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
【0230】
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
【0231】
(実施の形態7)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
【0232】
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を
図34Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
【0233】
また、処理を一部共有化する他の例を
図34Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
【0234】
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。