以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
(実施の形態1)
図1は、本発明の実施の形態1に係る画像符号化方法を用いた画像符号化装置100のブロック図である。図1に示す画像符号化装置100は、入力画像信号120を処理単位(ブロック)に分割し、分割した画像を符号化することで符号列140を生成する。
この画像符号化装置100は、差分部101と、変換部102と、量子化部103と、逆量子化部104と、逆変換部105と、加算部106と、予測部107と、符号化制御部108と、可変長符号化部109と、分割部110と、分割制御部111と、分割情報記述部112とを備える。なお、分割部110及び予測部107は内部にメモリを備えていても良い。
入力画像信号120は、分割部110に対して入力される。分割部110は、分割制御信号129に基づいて、入力画像信号120を分割することで分割画像信号121を生成し、生成した分割画像信号121を差分部101及び予測部107に対して出力する。
分割制御部111は、分割部110においてどのように画像を分割するかを示す分割パターンを決定する。ここで、処理単位(ブロック)は階層化されており、分割制御部111は、処理単位の最大の単位から、入力画像信号120を階層的に分割する分割パターンを決定する。
分割制御部111が決定する分割パターンの例を図2A〜図2C及び図3A〜図3Cを用いて説明する。
図2A〜図2Cに示すように、分割制御部111で決定する分割パターンは、階層の深さ(Depth)によって表される。図2Aのように、分割しないブロックをDepth=0と表現し、4つに分割したブロックをDepth=1と表現し、以降のブロックに対しても同様に表現することが可能となる。図2Bは、最大のブロックサイズが水平64画素×垂直64画素である場合のブロックサイズと階層の深さとの例を示し、図2Cは、最大のブロックサイズが水平128画素×垂直128画素である場合のブロックサイズと階層の深さとの例を示す。
この分割パターンについて図3A〜図3Cを用いてさらに詳しく説明する。
図3Aは、図2Bに示した場合と同様に、最大のブロックサイズが水平64画素×垂直64画素であり、最小のブロックサイズが水平8画素×垂直8画素である場合の例を示す。ブロックは、最大のブロックサイズを分割するかどうか、分割した場合には、分割後のサブブロックに対してさらに分割するかどうかを順番に指定する方法で分割される。ブロックの分割パターンは、各階層の深さに対する階層(Dn_type)で表すことができる。なおここで、nは階層の深さ(Depth)の値とする。
図3Bは、図3Aで示した分割パターンを階層分割モード情報で表した例を示す。ここで、簡単のため階層分割モード情報は2種類であり、分割しない(Dn_type=0)、又は、4等分に分割する(Dn_type=1)を示す。なお、以下では、Depth=0〜3の階層をそれぞれ階層0〜3と記す。
まず、最大のブロックは分割されているため、D0_type=1である。次のブロックサイズの階層1(Depth=1)では、左上からZを書く順番に、分割なし(D1_type=0)、分割あり(D1_type=1)、分割なし(D1_type=0)、分割あり(D1_type=1)と表現される。ここで、分割なしのブロックは、次の階層2(Depth=2)の、階層分割モード情報を必要としない。次に、さらに分割されるブロックサイズの階層2(Depth=2)に対しても同様の表現が用いられる。具体的には、D1_tyepe=1の一つ目のブロックを分割した、この階層2(Depth=2)の4つのブロックは、全て分割なし(D2_type=0)である。また、D1_tyepe=1の最後のブロックを分割した4つのブロックに対しては、1つ目のブロックは分割あり(D2_type=1)で表現し、残りの3つのブロックに対しては分割なし(D2_type=0)で表現することができる。
図3Cは、図3Bの表現を単純にまとめて表現した例を示す。つまり、図3Cは、各ブロックサイズに対しての階層分割モード情報をまとめて、分割モード情報(type)として表現した例を示す。なお、この例では分割モード情報は、階層分割モード情報と同様に分割あり(1)と、分割なし(0)とを示す2値情報である。よって、図3Aで示される分割パターンの情報量は13ビットである。そして分割制御部111は、図3Cに示すような分割パターンを示す分割情報130を分割情報記述部112へ出力する。
次に、分割制御部111が前述の分割パターンを決定する動作を、図4を用いて説明する。
また、分割パターンの決定に必要なコスト情報(符号化コスト)は、例えば次のように算出される。
分割部110は、入力画像信号120をコスト計算の対象とするサイズに分割することで分割画像信号121を生成し、生成した分割画像信号121を予測部107に対して出力する。
予測部107は、既に符号化及び復号済みの復号画像信号127と、符号化制御部108より取得する予測モードとに基づいて予測画像信号128を生成する。ここで、符号化制御部108は、予め決められた少なくとも1つの候補予測モードのうち一つの予測モードを予測部107に対して指定する。候補予測モードとは、例えば、画面内の隣接画素を予め決められた方向で外挿することで予測画素を生成するモード、及び、既に符号化及び復号済みの別のフレームとの相関が高い画素を用いて予測画素を生成するモードである。
さらに、予測部107は、予測情報と相関度情報との重み付け和である符号化コストを算出する。ここで予測情報とは、予測画像信号128を生成するために必要な情報であり、例えば、画面内の隣接画素を外挿するための方向情報、及び別フレームとの相対位置情報(動きベクトル情報)である。また、相関度情報とは、分割画像信号121と予測画像信号128との相関度を示し、例えば、分割画像信号121と予測画像信号128との差分絶対値和である。また、予測部107は、例えば、コスト関数と呼ばれる下記(式1)で示される値を符号化コストとして計算する。
さらに、予測部107は、全ての候補予測モードの各々に対して符号化コストを算出し、最も小さい符号化コストの予測モードで予測される予測画像信号128を差分部101に対して出力する。また、予測部107は、そのときの予測モード、予測情報及び符号化コストを符号化制御部108に対して出力する。符号化制御部108は、前述の符号化コストを分割制御部111に対して出力し、予測モード及び予測情報を含む符号化制御信号132を可変長符号化部109に対して出力する。
上記のRDコスト関数として、例えば、(式1)で示されるラグランジュコスト関数Jが用いられる。
(式1)において、Rは、差分画像(量子化変換係数情報124)と予測モードと予測情報とを符号化するのに用いられる符号量であり、Dは、符号化歪み量であり、λは、符号化に用いられる量子化パラメータQPに応じて算出されるラグランジュ乗数である。符号化制御部108は、コスト関数Jが最も低くなる予測モードを、符号化に用いる予測モードとして選択する。
なお、R及びDの値は、それぞれ代用する値を用いてもよい。例えば符号量Rとして予測モード情報のみを用い、符号化歪み量として分割画像信号121と予測画像信号128との絶対差分和を用いてもよい。
図4は、分割制御部111の動作を示すフローチャートである。
ここでは、簡単のため、図2B及び図3Bで示すように最大のブロックサイズが水平64画素×垂直64画素であり、最小のブロックサイズが水平8画素×垂直8画素であり、分割モード情報が、分割する(1)、分割しない(0)の2種類を示す場合の例を示す。
分割制御部111は、分割部110により入力画像信号120が水平64画素×垂直64画素に分割された分割画像信号121に対する符号化コストを取得する。そして、分割制御部111は、取得した符号化コスト値を水平64画素×垂直64画素(階層0)に対するコスト値(D0_cost)としてセットする(ステップS401)。
次に、分割制御部111は、次の階層1(Depth=1)に対する符号化コストの総数を示す“D1_total_cost”をリセット(0にセット)する(ステップS402)。
次に、分割制御部111は、階層1(Depth=1)に分割した場合の全てのブロック(この例では4個のブロック)に対する繰り返し処理(ステップS403とS424とで囲まれた部分の処理)を行う。つまり、分割制御部111は、カウンタD1_loopに0、1、2、3を順次セットし、ステップS403〜S424の処理を繰り返し行う。
次に、分割制御部111は、階層0をさらに分割した水平32画素×垂直32画素の信号に対する符号化コストを取得する。そして、分割制御部111は、取得した符号化コストを、カウンタD1_loopで示される位置の水平32画素×垂直32画素のブロックに対するコスト値(D1_cost[D1_loop])としてセットする(ステップS404)。なお、カウンタDn_loop=0〜3の処理順は、符号化側と復号側とで同じ物であればよい。この処理順は、例えばZの字の書き順である。
次に、分割制御部111は、次の階層2(Depth=2)に対する符号化コストの総数を示す“D2_total_cost”をリセット(0にセット)する(ステップS405)。
次に、分割制御部111は、上位の階層1(Depth=1)のD1_loopのブロックを階層2(Depth=2)に分割した場合の全てのブロック(この例では4個のブロック)に対する繰り返し処理(ステップS406とS418とで囲まれた部分の処理)を行う。つまり、分割制御部111は、カウンタD2_loopに0、1、2、3を順次セットし、ステップS406〜S418の処理を繰り返し行う。
次に、分割制御部111は、階層1をさらに分割した水平16画素×垂直16画素の信号に対する符号化コストを取得する。そして、分割制御部111は、取得した分割コストを、カウンタD2_loopで示される位置の水平16画素×垂直16画素のブロックに対するコスト値(D2_cost[D2_loop])としてセットする(ステップS407)。
同様に、分割制御部111は、次の階層3(Depth=3)に対する符号化コストの総数を示す“D3_total_cost”をリセット(0にセット)する(ステップS408)。
次に、分割制御部111は、上位の階層2(Depth=2)のD2_loopのブロックを階層3(Depth=3)に分割した場合の全てのブロック(この例では4個のブロック)に対する繰り返し処理(ステップS409とS412で囲まれた部分の処理)を行う。つまり、分割制御部111は、カウンタD3_loopに0、1、2、3を順次セットし、ステップS409〜S412の処理を繰り返し行う。
次に、分割制御部111は、階層2をさらに分割した水平8画素×垂直8画素の信号に対する符号化コストを取得する。そして、分割制御部111は、取得した符号化コストを、カウンタD3_loopで示される位置の水平8画素×垂直8画素のブロックに対するコスト値(D3_cost[D3_loop])としてセットする(ステップS410)。そして、分割制御部111は、“D3_total_cost”にD3_cost[D3_loop]を加える(ステップS411)。
次に、分割制御部111は、D3_loopが全て終了していない場合には、カウンタD3_loopの値を1つ増加し、繰り返し処理を行う。また、分割制御部111は、全て終了している場合には、次のステップへと進む(ステップS412)。
次に、分割制御部111は、前述の計算済みの“D3_total_cost”と“D2_cost[D2_loop]”とを比較する(ステップS413)。“D3_total_cost”よりも“D2_cost[D2_loop]”が大きい場合には(ステップS413でYES)、分割なしよりも分割ありの方が、符号化コストが小さい。よって、分割制御部111は、分割ありを示す“D2type=1”をセットし(ステップS414)、“D2_total_cost”に“D3_total_cost”の値を加える(ステップS415)。
一方、“D3_total_cost”よりも“D2_cost[D2_loop]”が小さい場合には(ステップS413でNO)、分割ありよりも分割なしの方が、符号化コストが小さい。よって、分割制御部111は、分割なしを示す“D2type=0”をセットし(ステップS416)、“D2_total_cost”に“D2_cost[D2_loop]”の値を加える(ステップS417)。
次に、分割制御部111は、D2_loopが全て終了していない場合には、カウンタD3_loopの値を1つ増加し、繰り返し処理を行う。また、分割制御部111は、全て終了している場合には、次のステップへと進む(ステップS418)。
次に、分割制御部111は、前述の計算済みの“D2_total_cost”と“D1_cost[D1_loop]”とを比較する(ステップS419)。“D2_total_cost”よりも“D1_cost[D1_loop]”が大きい場合には(ステップS419でYES)、分割なしよりも分割ありの方が、符号化コストが小さい。よって、分割制御部111は、分割ありを示す“D1type=1”をセットし(ステップS420)、“D1_total_cost”に“D2_total_cost”の値を加える(ステップS421)。
一方、“D2_total_cost”よりも“D1_cost[D1_loop]”が大きい場合には(ステップS419でNO)、分割ありよりも分割なしの方が、符号化コストが小さい。よって、分割制御部111は、分割なしを示す“D1type=0”をセットし(ステップS422)、“D1_total_cost”に“D1_cost[D1_loop]”の値を加える(ステップS423)。
次に、分割制御部111は、D1_loopが全て終了していない場合には、カウンタD1_loopの相対を1つ増加し、繰り返し処理を行う。また、分割制御部111は、全て終了している場合には、次のステップへと進む(ステップS424)。
最後に、分割制御部111は、前述の計算済みの“D1_total_cost”と“D0_cost”とを比較する(ステップS425)。“D1_total_cost”よりも“D0_cost”が大きい場合には(ステップS425でYES)、分割なしよりも分割ありの方が、符号化コストが小さい。よって、分割制御部111は、分割ありを示す“D0type=1”をセットする(ステップS426)。
一方、“D1_total_cost”よりも“D0_cost”が小さい場合には(ステップS425でNO)、分割有りよりも分割なしの方が、符号化コストが小さい。よって、分割制御部111は、分割なしを示す“D0type=0”をセットする(ステップS427)。
上記の手順により、分割制御部111は、符号化コストが最小となる分割パターンを決定することができる。
なお、この分割パターンの決定方法は一例であり、これに限るものではない。例えば、分割制御部111は、分割部110より得られる分割画像信号121を分析し、画素値分布の分散が高い領域は小さいブロックに分割し、画素分布が一様である部分に対しては大きなブロックに分割してもよい。このようにすることにより、画像符号化装置100の回路規模を削減することが可能となる。
また、別の分割パターンの決定方法として、分割制御部111は、既に符号化及び復号済みの周囲のブロックの分割結果を元に決められた方法で分割パターンを決めても良い。また、別の分割パターンの決定方法として、分割制御部111は、既に符号化及び復号済みの別のフレーム中のブロックの分割結果を利用して分割パターンを決定しても良い。これら手法については、実施の形態3で詳しく説明する。
次に、分割情報記述部112による分割情報131の記述方法について図5を用いて説明する。
分割制御部111は、上記の方法により決められた分割パターンを示す分割情報130を分割情報記述部112に対して出力する。ここで、分割情報130は、上述した階層分割モード情報又は分割モード情報で記述された情報である。分割情報記述部112は、この分割情報130から、可変長符号化部109で符号化される分割情報131を生成する。
まず、分割情報記述部112は、分割情報130に含まれる階層毎の階層分割モード情報(D0type〜D2type)を取得する(ステップS501)。
D0typeが0である場合(ステップS502でYES)、最大のブロックの階層(Depth=0)で分割なしである。よって、分割情報記述部112は、変数“used_max_depth”に対して、Depth=0を示す“0”をセットする(ステップS503)。ここで、変数“used_max_depth”は、最大使用階層を示す最大使用階層情報である。また、最大使用階層とは、最大ブロックサイズ内で使用されている一番深い深度を示す。言い換えると、最大使用階層とは、分割パターンに含まれるブロックのうち、最も深いブロックの階層である。
D0typeが0ではない場合(ステップS502でNO)、次に、分割情報記述部112は、全てのD1typeが0であるか否かを判定する(ステップS504)。全てのD1typeが0である場合(ステップS504でYES)、この階層1(Depth=1)で分割なしである。よって、分割情報記述部112は、変数“used_max_depth”に対して、Depth=1を示す“1”をセットする(ステップS505)。
一方、D1typeの少なくとも1つが0でない場合(ステップS504でNO)、次に、分割情報記述部112は、全てのD2typeが0であるか否かを判定する(ステップS506)。全てのD2typeが0である場合(ステップS506でYES)、この階層2(Depth=2)で分割なしである。よって、分割情報記述部112は、変数“used_max_depth”に対して、Depth=2を示す“2”をセットする(ステップS507)。
一方、D2typeの少なくとも1つが0でない場合(ステップS506でNO)、最小のブロックサイズまで分割が行われる。よって、分割情報記述部112は、変数“used_max_depth”に対して、Depth=3を示す“3”をセットする(ステップS508)。
次に、分割情報記述部112は、D1typeの少なくとも1つが0にセットされているか否かを判定する(ステップS509)。D1typeの少なくとも1つが0とセットされている場合(ステップS509でYES)、Depth=1のサイズのブロックのうち、分割しないブロックがあることを示す。よって、分割情報記述部112は、変数“used_min_depth”に対して、Depth=1を示す“1”をセットする(ステップS510)。ここで、変数“used_min_depth”は、最小使用階層を示す最小使用階層情報である。また、最小使用階層とは、最大ブロックサイズ内で使用されている一番浅い深度を示す。言い換えると、最小使用階層とは、分割パターンに含まれるブロックのうち、最も浅いブロックの階層である。
一方、D1typeのうち0にセットされているものが無い場合(ステップS509でNO)、次に、分割情報記述部112は、D2typeの少なくとも1つが0にセットされているかどうかを判定する(ステップS511)。D2typeの少なくとも1つが0にセットされている場合(ステップS511でYES)、Depth=2のサイズのブロックのうち、分割しないブロックがあることを示す。よって、分割情報記述部112は、変数“used_min_depth”に対して、Depth=2を示す“2”をセットする(ステップS512)。
また、D2typeのうち0とセットされているものが無い場合(ステップS511でNO)、Depth=2のサイズのブロックの全てが分割されている。よって、分割情報記述部112は、変数“used_min_depth”に対して、Depth=3を示す“3”をセットする(ステップS513)。
分割情報記述部112は、上記に示すように、“used_max_depth”を決定する。また、分割情報記述部112は、“used_max_depth=3”となる場合のみ、“used_min_depth”を決定する。さらに、分割情報記述部112は、“used_max_depth”と“used_min_depth”に基づき、分割情報130に含まれる分割モード情報のうち、可変長符号化部109で可変長符号化する分割モード情報130Aを決定する。そして、分割情報記述部112は、“used_max_depth”と“used_min_depth”と、決定した分割モード情報130Aとを含む分割情報131を生成し、生成した分割情報131を可変長符号化部109に対して出力する。
ここで、図6A〜図6Cを用いて可変長符号化部109で符号化される信号について詳しく説明する。
図6A〜図6Cはそれぞれ異なるブロック分割の結果に対する分割情報130及び131を示す模式図である。
まず、図6Aのブロック分割結果の場合について説明する。この場合、分割情報130は、64×64ブロックに対して“1”、32×32ブロックに対して“0101”、32×32ブロックで“1”(分割する)である2つの16×16ブロックに対してそれぞれ、“0000”、“0000”を分割モード情報として含む。また、分割情報記述部112によって、この場合の“used_max_depth”は“2”であることが決められる。この場合、分割された結果の最大の階層が2であることから、16×16ブロックに対する分割なしという情報“0000”、“0000”は不要である。そのため、分割情報記述部112は、32×32ブロックに対する分割モード情報“0101”のみを符号化する分割モード情報130Aに決定する。そして、可変長符号化部109は、“used_max_depth”と32×32ブロックに対する分割モード情報“0101”とを含む分割情報131に対して可変長符号化処理を行う。
ここでの例では、分割モード情報は分割する(1)、及びしない(0)を示す情報として扱っているため、分割情報130のビット長は13ビットで表される。一方、分割情報記述部112により最大使用階層を決定することにより、可変長符号化部109で符号化される分割情報131は、分割モード情報4ビットと、“used_max_depth”とである。ここで“used_max_depth”は、0から3まで(ここでの例は、階層3が最大)と決まっているため、2ビットで表現することが可能である。つまり、この場合、13ビットの情報を6ビットで表現できる。
次に、図6Bに示す別のブロック分割結果の場合について説明する。前述と同様に、分割情報130は、64×64ブロックに対して“1”、32×32ブロックに対して“1111”、32×32ブロックで“1”(分割する)である4つの16×16ブロックに対してそれぞれ、“0000”、“0001”、“0000”、“1100”を分割モード情報として含む。また、分割情報記述部112によって、この場合の“used_max_depth”は“3”であることが決められ、“used_min_depth”は“2”であることが決められる。この場合、分割された結果の最小の階層が2であることから、32×32ブロックに対する分割ありという分割モード情報“1111”は不要である。そのため、分割情報記述部112は、16×16ブロックに対する4つの分割モード情報のみを符号化する分割モード情報130Aに決定する。そして、可変長符号化部109は、“used_max_depth”と“used_min_depth”と16×16ブロックに対する分割モード情報“0000”、“0001”、“0000”、“1100”とを含む分割情報131に対して可変長符号化処理を行う。
図6Aの場合と同様にビット長について考察すると、分割情報130のビット長は21ビットである。一方、可変長符号化部109で符号化される分割情報131は、分割モード情報16ビットと、“used_max_depth”と“used_min_depth”とになる。ここで“used_max_depth”は前述のように2ビットである。また、“used_mim_depth”は1から3までと決まっているため、1〜2ビットで表現することが可能である。よって、この場合、21ビットの情報を20ビットで表現できる。
次に、図6Cに示す別のブロック分割結果の場合について説明する。前述と同様に、分割情報130は、64×64ブロックに対して“1”、32×32ブロックに対して“1111”、32×32ブロックで“1”(分割する)である4つの16×16ブロックに対してそれぞれ、“1111”、“1111”、“1111”、“1111”を分割モード情報として含む。また、分割情報記述部112によって、この場合の“used_max_depth”は“3”であることが決められ、“used_min_depth”は“3”であることが決められる。この場合、分割された結果の最小の階層が3であることから、32×32ブロック、及び16×16ブロックに対する分割ありという分割モード情報“1111”は不要である。そのため、可変長符号化部109では、“used_max_depth”と“used_min_depth”とを含む分割情報131に対して可変長符号化処理を行う。
図6A及び図6Bの場合と同様にビット長について考察する。分割情報130のビット長は21ビットで表される。それを、分割情報記述部112により最大使用階層及び最小使用階層を決定することにより、可変長符号化で符号化される分割情報131は、“used_max_depth”と“used_min_depth”とになる。ここで“used_max_depth”は前述のように2ビットであり、“used_max_depth”は1〜2ビットである。よって、この場合、21ビットの情報を4ビットで表現できる。
なお、可変長符号化時に統計情報を用い、頻繁に発生する信号に対して短いビット長を割り当て、あまり発生しない信号に対して長いビット長を割当ててもよい。また、算術符号化のような動的な確率モデルを用いて可変長符号化してもよい。つまり、上述したビット長の差分は参考値であるが、本実施の形態に係る分割情報記述方法を用いることにより、大きく符号量が削減できる可能性が高いことがわかる。
前述のように、予測部107は、既に符号化済みの画像信号である復号画像信号127から予測画像信号128を生成する。そして、予測部107は、生成した予測画像信号128を差分部101及び加算部106に対して出力する。
差分部101は、入力画像信号120を分割した信号である分割画像信号121と予測画像信号128の差分を算出することで差分信号122を生成し、生成した差分信号122を変換部102に対して出力する。
変換部102は、差分信号122に対して変換処理を施すことで変換係数123を生成し、生成した変換係数123を量子化部103に対して出力する。
量子化部103は、変換係数123に対して量子化処理を施すことで量子化変換係数情報124を生成し、生成した量子化変換係数情報124を可変長符号化部109及び逆量子化部104に対して出力する。
逆量子化部104は、量子化変換係数情報124に逆量子化処理を施すことで変換係数125を生成し、生成した変換係数125を逆変換部105に対して出力する。逆変換部105は、変換係数125に対して逆変換処理を施すことで復号残差画像信号126を生成し、生成した復号残差画像信号126を加算部106に対して出力する。
加算部106は、復号残差画像信号126と予測画像信号128とを加算することで復号画像信号127を生成し、生成した復号画像信号127を予測部107に対して出力する。
可変長符号化部109は、符号化対象となる信号である量子化変換係数情報124、符号化制御信号132及び分割情報131を、信号の種別に応じて可変長符号化することで符号列140を生成する。
なお、上記の分割情報記述方法の符号列140の構造については、実施の形態4で詳しく説明する。
また、上記の分割パターンの決定方法については一例であり、これに限らない。例えば既に符号化済みの周辺のブロックの分割結果を用いてもよい。また、既に符号化済みの別のフレームの分割結果を用いてもよい。これら場合の詳細については、実施の形態3で詳しく説明する。
なお、本実施の形態では、符号化単位であるマクロブロックの分割について説明したが、本発明はこれに限らない。例えば、変換部102によって変換処理を行う単位を同様に表記してもよい。この場合の詳細については、実施の形態4で詳しく説明する。
なお、上記の説明ではブロックを4分割するか、分割しないかの2つのタイプのみを用いる場合を説明したが、本発明はこれに限らない。例えば、非特許文献1の場合と同様に、正方形ではない形状(16×8、8×16)に分割する場合であっても、本発明を適用することができる。この場合の詳細については、実施の形態5で詳しく説明する。
なお、前述の可変長符号化部109で算術符号を用いる場合、既に符号化済みのブロックの形状情報、及び/又は、最大使用階層、及び/又は、最小使用階層の情報に基づき算術符号に用いる確率モデルを切り替えてもよい。これにより、さらに符号化効率を向上することが期待できる。
なお、前述の可変長符号化部109で可変長符号テーブルを用いる場合、前述のビット長演算で、分割情報の削減幅が大きい場合の最大使用階層、及び/又は、最小使用階層の情報に対して、長いビット長を割り当て、前記削減幅の小さい場合の最大使用階層、及び/又は、最小使用階層の情報に対して、短いビット長を割り当ててもよい。これにより、本実施の形態による符号化効率の向上率をさらに上げることができる。
なお、本実施の形態の詳細の説明では、最大ブロックサイズを水平64画素×垂直64画素とし、最小ブロックサイズを水平8画素×垂直8画素としたが、本発明は、このサイズに限らず適応することができる。
(実施の形態2)
本発明の実施の形態2では、上述した画像符号化装置100により生成された符号列140を復号する画像復号装置200について説明する。
図7は、本実施の形態に係る分割情報復元部207を用いた画像復号装置200のブロック図である。図7に示す画像復号装置200は、可変長復号部201と、復号制御部202と、逆量子化部203と、逆変換部204と、予測部205と、加算部206と、分割情報復元部207とを備える。なお、予測部205は内部にメモリを備えていても良い。
符号列140は、本発明の実施の形態1に係る画像符号化装置100により生成された符号列である。この符号列140は、可変長復号部201に入力される。
可変長復号部201は、符号列140に含まれる分割情報を復号する。具体的には、可変長復号部201は、符号列140に対して可変長復号を施すことで復号信号221を生成し、生成した復号信号221を分割情報復元部207と復号制御部202と逆量子化部203とに対して出力する。なお、可変長復号部201は、分割情報復元部207により得られる分割情報226に基づく分割単位で処理を行う。
復号信号221が量子化された変換係数である場合、逆量子化部203は、復号信号221に逆量子化を施すことで変換係数222を生成する。逆変換部204は、変換係数222に逆変換を施すことで復号残差画像信号223を生成し、生成した復号残差画像信号223を加算部206に対して出力する。
また、復号信号221が予測方法を示す予測画像生成関連情報225である場合、復号制御部202は分割情報復元部207より取得される分割情報226と、予測画像生成関連情報225とを予測部205に対して出力する。ここで、予測画像生成関連情報225とは、画像符号化装置100における符号化制御信号132に対応し、例えば、予測モード及び予測情報を含む。
予測部205は、既に復号済みの復号画像信号(出力画像信号240)と、復号制御部202より得られる予測画像生成関連情報225とを用いて、分割情報226に基づく分割単位で、予測画像信号224を生成し、生成した予測画像信号224を加算部206に対して出力する。加算部206は、復号残差画像信号223と予測画像信号224とを加算することで復号画像信号(出力画像信号240)を生成する。
なお、復号信号221が分割復号情報である場合、分割情報復元部207は、分割復号情報から分割情報226に復元することで分割パターンを判定する。ここで、分割復号情報とは、画像符号化装置100における分割情報131に相当する。また、分割情報226は、分割パターンを示し、実施の形態1における分割情報130に相当する。この処理の流れについて図8を用いて詳しく説明する。
分割情報復元部207は、分割復号情報のうちの“used_max_depth”の値を取得する(ステップS801)。“used_max_depth”が0の場合(ステップS802でNO、かつステップS803でNO)、分割情報復元部207は、最大のブロックサイズを分割しないと決定する(ステップS804)。一方、“used_max_depth”が1の場合(ステップS802でNO、かつステップS803でYES)、分割情報復元部207は、全てのブロックをDepth=1のサイズ(最大ブロックを4分割したサイズ)に分割すると決定する(ステップS805)。
“used_max_depth”が2の場合(ステップS802でYES、かつステップS806でNO)、分割情報復元部207は、Depth1のブロックに対してカウンタを0、1、2、3の順に変化させ、各ブロックの“D1type”を取得する(ステップS807〜ステップS809)。
分割情報復元部207は、ここで得られるD1typeに基づき、最大ブロックを分割する(ステップS810)。なお、D1typeは、最大ブロックを4分割したそれぞれのブロックに対して、例えばZ字の順番で分割パターンを指定する情報である。分割情報復元部207は、D1typeに基づき、4分割した各ブロックを分割するか分割しないかを判断することで、最大ブロックの分割パターンを決める。
“used_max_depth”が3の場合(ステップS802でYES、かつステップS806でYES)、分割情報復元部207は、“used_min_depth”を取得する(ステップS811)。
“used_min_depth”が3の場合(ステップS812でNO、かつステップS813でNO)、分割情報復元部207は、全てのブロックをDepth=3のサイズ(最大ブロックを64分割したサイズ)に分割すると決定する(ステップS814)。
“used_min_depth”が2の場合(ステップS812でNO、かつステップS813でYES)、分割情報復元部207は、Depth1のブロックに対してカウンタを0、1、2、3の順に変化させ、かつ、それぞれDepth1より1段深い階層であるそれぞれのDepth2のブロックに対してカウンタを0、1、2、3の順に変化させることで、Depth2の各ブロックの“D2type”を順番に取得する(ステップS815〜ステップS819)。そして、分割情報復元部207は、D1typeが全て1であるとみなして、D2typeに基づき、最大ブロックを分割する(ステップS820)。具体的には、分割情報復元部207は、最大ブロックをDepth=2のサイズで全て分割する。そして、分割情報復元部207は、それぞれのブロックに対して、D2typeに基づいて、当該ブロックを分割するか、分割しないかを判断することで、最大ブロックの分割パターンを決める。
“used_min_depth”が1の場合(ステップS812でYES)、分割情報復元部207は、Depth1のブロックに対してカウンタを0、1、2、3の順に変化させて繰り返し処理(ステップS821とステップS827で囲まれる領域の処理)を行うことで、Depth1の各ブロックの“D1type”を取得する(ステップS822)。
なお、“D1type”が0ではない場合(ステップS823でNO)、分割情報復元部207は、Depth2のブロックに対してカウンタを0、1、2、3の順に変化させて繰り返し処理(ステップS824とステップS826で囲まれる領域の処理)を行うことで、Depth2の各ブロックの“D2type”を取得する(ステップS825)。その後、分割情報復元部207は、Depth1のカウンタを1つ進める。
一方、“D1type”が0である場合(ステップS823でYES)、分割情報復元部207は、Depth1のカウンタを1つ進める(ステップS827)。全てのループが終了した段階で、階層毎のDepth1及びDepth2に対応する各ブロックを分割するかしないかを示す情報であるD1type及びD2typeに基づき、分割情報復元部207は、最大ブロックの分割パターンを決める(ステップS828)。
上記のような処理を行うことで、実施の形態1に係る符号化方法で符号化した符号列140を正しく復号処理することができる。このように、本発明は、符号化効率の高い符号化方法、及び復号方法を実現することができる。
(実施の形態3)
本実施の形態では、分割情報記述部112が分割パターンを予測する場合について説明する。
分割情報記述部112は、既に符号化済みのブロックの分割パターンを用いて、処理対象のブロックの分割パターンの予測値である予測分割パターンを推定する。また、分割制御部111は、推定された予測分割パターンを用いて、処理対象のブロックの分割パターンを決定する。
なお、分割情報記述部112は、処理対象のブロックと同一フレーム内の、当該処理対象のブロックに隣接するブロックの分割パターンを用いて、当該処理対象のブロックの分割パターンを推定してもよい、時間的に別のフレームに含まれるブロックの分割パターンを用いて、処理対象のブロックの分割パターンを推定してもよい。
まず隣接するブロックの既に符号化及び復号済みのブロック(以下、隣接ブロックとも記す)の分割パターンから処理対象のブロック(以下、対象ブロックとも記す)の分割パターンを予測する方法について図9A〜図9L及び図10を用いて説明する。図9A〜図9Lは、隣接ブロックの分割情報から対象ブロックの分割情報を予測する場合を説明するための模式図である。
図9A〜図9Lは、対象ブロック900に対して、隣接ブロック901及び902を用いて予測する場合の例である。ここで図9A、図9E及び図9Iはそれぞれ対象ブロック900内の隣接ブロックを予測に用いない場合のうち、左隣接のブロックを優先した場合の例を示す。図9B、図9F及び図9Jはそれぞれ対象ブロック900内の隣接ブロックを予測に用いない場合のうち、上隣接のブロックを優先した場合の例を示す。図9C、図9G及び図9Kはそれぞれ対象ブロック900内の隣接ブロックを予測に用いる場合のうち、左隣接のブロックを優先した場合の例を示す。図9D、図9H及び図9Lはそれぞれ対象ブロック900内の隣接ブロックを予測に用いる場合のうち、上隣接のブロックを優先した場合の例を示す。
また図9A〜図9Hは特に予測に制限を設けない場合の例を示す。図9I〜図9Lは最大予測階層ブロック(この場合はDepth=2の例)を指定した場合の例を示す。
図10は、本実施の形態に係る分割パターンの予測手順を示すフローチャートである。
ここで、分割情報記述部112は、予測処理を、分割パターンの決定処理の順番と同じ(例えばZ字の順番)に行っていき、階層(Depth)に関しては上位(Depth=0)から下位(Depth=最小ブロックサイズのある階層)への順番で行う。
まず、分割情報記述部112は、対象ブロックに対して隣接する処理済みの隣接ブロックの分割情報を取得する(ステップS1001)。このとき取得する分割情報は、対象ブロックと同一階層の隣接ブロックの分割情報である。また、分割情報記述部112は、同一階層の隣接ブロックの分割情報が無い場合には、対象ブロックの分割情報を“分割なし”に決定する。
上側及び左側の隣接ブロックの分割情報のうち両方、又は、上側及び左側のうち優先されている側が“分割なし”を示す場合(ステップS1002でYES)、分割情報記述部112は、対象ブロックを分割しないと予測する(ステップS1003)。一方、上側及び左側のうち優先されている側が“分割あり”を示す場合(ステップS1002でNO)、分割情報記述部112は、対象ブロックを分割すると予測する(ステップS1004)。また、分割情報記述部112は、対象ブロックを分割すると予測した場合には、さらに次の階層に対して同じ処理を施す。
上側隣接及び左側隣接のうちどちら側を優先するかどうかを示す情報は、後述のヘッダ情報で送っても良いし、あらかじめ符号化側及び復号側で決めておいても良い。
また、図9A、図9B、図9E、図9F、図9I及び図9Jの場合のように、隣接ブロックの分割情報を取得する場合、予測対象となる最大のブロックサイズ(Depth=0で示されるサイズ)中では処理済みとしないとしてもよい。つまり、最大のブロックサイズである対象ブロック900に含まれる、分割されたブロックが対象ブロックの場合には、分割情報記述部112は、対象ブロック900に含まれる隣接ブロックの分割情報を用いず、隣接ブロック901及び902に含まれる隣接ブロックの分割情報のみを用いて予測を行う。この場合、上側及び左側の隣接ブロックの分割情報によってのみ分割予測をする場合があるため、処理速度を上げることができる。
一方、予測は処理順と同じ(例えばZ字の順番)に行うため、図9C、図9D、図9G、図9H、図9K及び図9Lの場合のように、最大のブロックサイズ内の隣接ブロックの分割予測情報を利用することもできる。この場合、予測の精度を上げることができるため、さらなる符号量削減が期待できる。
さらに、予測は処理順と同じであるため、既に決定された分割情報を利用することもできる。この場合、予測の精度をさらに上げることができるため、さらなる符号量削減が期待できる。
なお、最大ブロックサイズ内の処理済みの分割予測情報を使うか、使わないか、既に処理済みの分割情報を使うか、使わないかを示す情報は、その少なくとも一方を後述のヘッダ情報で送っても良いし、あらかじめ符号化側及び復号側で決めておいても良い。
次に、既に符号化及び復号済みの別のフレームのブロックの分割パターンから対象ブロックの分割パターンを予測する方法について図11A及び図11Bを用いて説明する。図11A及び図11Bは、既に符号化及び復号済みのフレームのブロックの分割パターンから対象ブロックの分割パターンを予測する場合を説明するための模式図である。図11Aは既に符号化及び復号済みの処理済フレーム1101内のブロック分割結果と、符号化及び復号対象である対象フレーム1102の対象ブロックの分割予測結果とを示す模式図である。
ここで、図11Aに示す分割形状相対位置情報とは、どの予測フレームのどのブロックを予測に用いるかを示す情報である。なお、図11Bに示すように、対象フレーム1103に対して時間的に前方の処理済フレーム1104又は後方の処理済フレーム1105の何れかの分割結果を用いることで、効率よく予測を行うことができる。
なお、分割情報記述部112は、分割対象ブロック(最大ブロックサイズ)に対して、予め決められた方法で算出される画面内予測で使用される動きベクトル情報のうちの代表動きベクトル情報に基づいて分割形状相対位置情報を決めても良い。例えば、分割情報記述部112は、隣接するブロックの動きベクトルの中央値を計算するとともに、参照フレームに対しても同様に動きベクトルの中央値を計算する。そして、分割情報記述部112は、算出した中央値に基づく動きベクトルを分割形状相対位置情報としてもよい。
または、分割情報記述部112は、分割対象ブロックが動きベクトルを含む場合には、その先頭の動きベクトルと参照フレーム情報とをそのまま、分割形状相対位置情報としてもよい。これらの場合には、予測のための追加情報を伝送する必要がないため、符号量を削減することができる。なお、この場合にも、画像符号化装置100は、分割形状相対位置情報を別途伝送してもよい。例えば、画像符号化装置100は、分割対象ブロックの分割情報を先に導出する。そして、画像符号化装置100は、既に符号化済みのフレームの中から分割対象ブロックと同じ、又は最も近い分割情報を有するブロックと、当該分割対象ブロックとの相対位置情報を分割形状相対位置情報として算出する。そして、画像符号化装置100は、この分割形状相対位置情報を例えば画面内予測の際に予測部107で用いられる動きベクトル情報と同様に符号化及び復号してもよい。
次に、図12A及び図12Bを用いて、予測した分割情報を用いてどのように符号化した分割情報を伝送し(図12A)、どのように分割情報を復元する(図12B)かを説明する。
分割情報記述部112は、分割パターンと予測分割パターンとの差分を算出し、当該差分を含む分割情報131を生成する。以下、その詳細を説明する。
図12Aは、実施の形態3に係る分割情報記述部112における動作を説明するフローチャートである。なお、分割情報記述部112は、記述処理を、分割パターンの決定処理の順番と同じ(例えばZ字の順番)に行っていき、階層(Depth)に関しては上位(Depth=0)から下位(Depth=最小ブロックサイズのある階層)への順番で行う。
まず、分割情報記述部112は、対象ブロックに対して分割情報と、予測した分割情報(以下、予測分割情報)とを取得する(ステップS1201)。次に、分割情報記述部112は、実施の形態1における最大使用階層(used_max_depth)を導出した処理と同様に、最大差分階層を導出する(ステップS1202)。ここで、最大差分階層は、どの階層から分割情報と予測分割情報とが異なるかを示す情報である。言い換えると、最大差分階層は、分割情報と予測分割情報とが異なる最上位の階層を示す情報である。例えば、この導出方法としては、予測分割情報と分割情報とが等しい場合を0、等しくない場合を1と置き換え、図5のフローチャートをたどることで導出できる。また、分割情報記述部112は、最大差分階層よりも下の階層(小さいブロック)が有る場合、その階層に対する分割情報をセットする(ステップS1203)。
なお、この記述方法は一例であり、本発明に係る予測方法を用いていれば、記述方法についてはこれに限らないものとする。
図12Bは、図12Aの手順で符号化された分割情報の復元動作を説明するフローチャートである。
まず、分割情報復元部207は、分割対象のブロックに対する最大差分階層情報及び予測分割情報を取得する(ステップS1204)。ここで、最大差分階層情報は、最大差分階層を示す情報であり、画像符号化装置100により生成された符号列140に含まれている。また、予測分割情報は、上述した画像符号化装置100での処理と同様の処理を行うことにより、画像復号装置200で生成される。
次に、分割情報復元部207は、最大差分階層より上の階層(予測と等しいとされている情報)に対する分割情報に取得した予測分割情報をセットする(ステップS1205)。
最後に、分割情報復元部207は、最大差分階層より下の階層の分割情報を復元する(ステップS1206)ことにより、対象ブロックの分割情報を復元することができる。ここで、最大差分階層より下の階層の分割情報は、画像符号化装置100により生成された符号列140に含まれている。
(実施の形態4)
本実施の形態では、分割情報記述部112が分割関連情報をストリームのヘッダ情報として記録し、符号化及び復号する方法を説明する。
図13は、本実施の形態に係る画像符号化方法における符号列140の構成を示す図である。図13(a)は少なくとも1画面で構成される動画シーケンスに対応する符号化信号を示す。図13(a)に示すように、符号列140は、全画面のデータであるシーケンスデータSeqDataと、全画面の全データに共通のデータであるシーケンスヘッダSeqHdrとを含む。シーケンスヘッダSeqHdrは、分割関連情報SepInfoを含む。
分割関連情報SepInfoは、例えば、実施の形態1で説明した手法を用いるか、分割情報(Dn_typeの情報)のみを符号化するかを切替えるためのフラグである。なお、分割関連情報SepInfoは、実施の形態3で説明した、分割パターンの予測に関する情報であってもよい。
図13(b)はシーケンスデータSeqDataの構造を示す。シーケンスデータSeqDataは、複数のピクチャ信号PicStrを含む。各ピクチャ信号PicStrは、1画面に対応する符号化信号である。言い換えると、各ピクチャ信号PicStrは、ピクチャの符号化信号である。
図13(c)はピクチャ信号PicStrの構造を示す。ピクチャ信号PicStrは、1画面のデータであるピクチャデータPicDataと、1画面全体に共通のデータであるピクチャヘッダPicHdrとを含む。例えば、ピクチャヘッダPicHdrは分割関連情報SepInfoを含んでもよい。
図13(d)はピクチャデータPicDataの構造を示す。ピクチャデータPicDataは、複数のスライス信号SliceStrを含む。各スライス信号SliceStrは、複数のブロック単位の集合であるスライスの符号化信号である。
図13(e)はスライス信号SliceStrの構造を示す。スライス信号SliceStrは、1スライスのデータであるスライスデータSliceDataと、1スライスの全データに共通のデータであるスライスヘッダSliceHdrとを含む。スライスヘッダSliceHdrは、分割関連情報SepInfoを含んでもよい。これにより、画像符号化装置100においてスライスデータSliceData単位で適切に処理方法を切替えた場合でも、画像復号装置200は、受信した符号化信号を正しく復号できる。
なお、シーケンスデータSeqDataに複数のピクチャ信号PicStrが含まれている場合には、全てのピクチャヘッダPicHdrが分割関連情報SepInfoを含む代わりに、一部のピクチャヘッダPicHdrのみが分割関連情報SepInfoを含んでもよい。
同様に、ピクチャデータPicDataに複数のスライス信号SliceStrが含まれている場合は、全てのスライスヘッダSliceHdrが分割関連情報SepInfoを含む代わりに、一部のスライスヘッダSliceHdrのみが分割関連情報SepInfoを含んでもよい。分割関連情報SepInfoの内容が各スライスで共通であれば、図13(e)に示すようにスライスヘッダSliceHdrに分割関連情報SepInfoが無い場合は、画像復号装置200は、対象スライスの分割関連情報として他のスライスのスライスヘッダSliceHdrに含まれる分割関連情報SepInfoを代用する。これにより、分割関連情報SepInfoが繰り返し含まれることによるビット数の増加を抑えることが可能である。
また、図13(e)に示すように、スライスデータSliceDataは、複数の最大ブロックサイズデータLCTBを含む。各最大ブロックサイズデータLCTBは、最大ブロックサイズのブロック単位の情報である。また、各最大ブロックサイズデータLCTBは、最大ブロックサイズヘッダLCTBHdrと、ブロック信号CTBsとを含む。また、ブロック信号CTBsは、階層化された複数のブロックデータCTBを含む。
ここで、最大ブロックサイズヘッダLCTBHdrは、最大使用階層、最小使用階層、又は最大差分階層を含む。なお、最大ブロックサイズヘッダLCTBHdrに、全ての分割情報を含まれても良いし、各ブロックデータCTBの中に該当するブロックに対する分割情報がそれぞれ含まれてもよい。
図13(f)はブロックデータCTBの構造を示す。ブロックデータCTBの一部は、変換構造のヘッダ情報である変換ブロックヘッダTUHdrと、変換ブロックTUsとを含む。この変換ブロックTUsにおいても、前述のブロック(CUs)と同様に、分割することが可能である。つまり、本発明を変換ブロックに対して適応してもよい。この場合、様々な大きさの変換を実施でき、かつその形状の伝送のための符号量を削減することができる。
また、符号列140が連続したビットストリームでなく、細切れのデータの単位であるパケット等を用いて伝送される場合は、ヘッダ部とヘッダ以外のデータ部とを分離して別に伝送してもよい。その場合は、図13のようにヘッダ部とデータ部とが1つのビットストリームとなることはない。しかしながら、パケットを用いる場合は、ヘッダ部とデータ部とを伝送する順序が連続しなくても、対応するデータ部とヘッダ部とが別のパケットで伝送されるだけである。つまり、符号列140が1つのビットストリームとなっていなくても、その概念は図13で説明したビットストリームの場合と同じである。
また、本発明に係る復号方法において、上記の手法で符号化された符号列140は、次の手順で復号される。まず、画像復号装置200は、シーケンスヘッダSeqHdrに含まれる分割関連情報SepInfoを取得し、取得した分割関連情報を保持する。次に、画像復号装置200は、ピクチャヘッダPicHdrに含まれる分割関連情報SepInfoを取得し、保持している分割関連情報を取得した分割関連情報で更新する。ここで、分割関連情報SepInfoが無い場合、又は、その一部が無い場合には、画像復号装置200は、シーケンスヘッダSeqHdrに含まれていた分割関連情報をそのまま保持する。同様に、画像復号装置200は、スライスヘッダSliceHdr含まれる分割関連情報SepInfoを取得し、保持している分割関連情報を取得した分割関連情報で更新する。次に、画像復号装置200は、最大ブロックサイズデータLCTBを取得し、最大ブロックサイズヘッダLCTBHdrに含まれる、分割に必要な情報(最大使用階層、最小使用階層又は最大差分階層と、分割情報)を取得する。そして、画像復号装置200は、取得した情報を用いて以降のブロック分割形状を決定する。
このようにすることにより、画像復号装置200は、上記符号列140を正しく復号することができる。
(実施の形態5)
本実施の形態では、実施の形態1から4に示す本発明に係る符号化方法及び復号方法の、さらに別の変形例について説明する。
図14A〜図14Cは、複数のブロック形状を用いた分割方法を説明するための模式図である。
前述では、簡単のために、ブロックを正方形の4つのブロックに分割する場合について説明したが、ブロックを2つの長方形に分割する場合を加えても良い。なお、この場合、分割された正方形以外のブロックは、さらに分割されない。
例えば、図14A〜図14Cに示すように、Dn_typeで示される分割モード情報は、0(分割しない)、1(分割する)の2値の情報から、0(分割しない)、1(4分割する)、2(水平方向に2分割する)、3(垂直方向に2分割)の4値の情報に変わる。このように表記することによっても、本発明の手法を用いることにより、分割情報を少ない符号量で符号化することができる。
具体的に図14Aに示すブロック分割形状を分割情報記述部112が分割情報として記述する例を説明する。図14Aに示すブロック分割形状を上記に示すパラメータで表記すると、図14Bのようになる。このように、Dn_typeにそれぞれの分割モード情報が設定される。この場合、実施の形態1の方法により、最大使用階層が2である。また、分割情報記述部112は、当該最大使用階層と、Depth=1(水平32画素×垂直32画素のブロック)に対する分割モード情報130Aとを、符号化する分割情報131として記述する。これにより、分割情報を少ない符号量で符号化することが可能となる。また、画像復号装置200は、Dn_typeの分割情報を復号し、符号化と同じ形状ルールを用いることにより、分割形状を復元できる。
図15A〜図15Cは、さらに分割情報を削減することが出来ることを説明するための模式図である。例えば、図15Aに示すブロック形状の例では、前述のように、最大使用階層が2であり、Depth=1(水平32画素×垂直32画素のブロック)に対する分割モード情報が(0、0、0、1)である。ここで、最大使用階層が2であるため、Depth=1(水平32画素×垂直32画素のブロック)には少なくとも1つの分割するブロックが含まれるはずである。
このため、分割モード情報(0、0、0)を記述した段階で、次の1を記述しなくても、先にDepth=1が符号化及び復号されるため、最後の分割モード情報が1であることがわかる。つまり、分割情報記述部112は、処理対象の階層が最大使用階層より浅く、かつ、符号化順(分割処理順)で最後のブロックのみを分割する場合には、当該最後のブロックの分割モード情報を含まない分割情報131を生成する。
このように、分割情報記述部112は、最大使用階層を用いて、各ブロックをさらに分割するか、分割しないかを確定できる場合、当該ブロックの分割パターンを示す情報を、分割情報130から取り除く。そして、可変長符号化部109は、上記の情報が取り除かれた後の分割情報131を符号化する。この処理によりさらに符号量を減らすことができる。
同じように、図15Bに示すブロック形状の例では、最大使用階層3、かつ最小使用階層1であり、Depth=1(水平32画素×垂直32画素のブロック)、及びDepth=2(水平16画素×垂直16画素のブロック)に対する分割モード情報がそれぞれ(0、0、0、1)である。前述のように共に(0、0、0)としても復号可能であるため、符号化しなくてよい。これにより、2つの分割モード情報を符号化しなくてよくなり、さらに符号化効率を向上することができる。
また、図15Cに示すブロック形状の例では、同様に、最大使用階層3、かつ最小使用階層1である。最小使用階層が1とわかっているため、Depth=1(水平32画素×垂直32画素のブロック)には少なくとも1つの分割しないブロックを含むはずである。そのため、Depth=1(水平32画素×垂直32画素のブロック)に対する分割モード情報(1、1、1、0)のうち、最後の1つについては、0であることがわかっている。よって、図15A及び図15Bの場合と同じように、この情報を符号化しなくてよい。つまり、分割情報記述部112は、処理対象の階層が最小使用階層であり、かつ、符号化順(分割処理順)で最後のブロックのみが分割されない場合には、当該最後のブロックの分割モード情報を含まない分割情報131を生成する。
このように、分割情報記述部112は、最小使用階層を用いて、各ブロックをさらに分割するか、分割しないかを確定できる場合、当該ブロックの分割パターンを示す情報を、分割情報130から取り除く。そして、可変長符号化部109は、上記の情報が取り除かれた後の分割情報131を符号化する。これにより、符号化効率を向上させることができる。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図16は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図16のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図17に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図18は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図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は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図20に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図18に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図21Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図21Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図22は、多重化データの構成を示す図である。図22に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図23は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図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)が格納される。
図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(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれる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時間の情報を持つ。
図26はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図27に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図27に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図28に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図29に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態8)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図30に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態9)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図31は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図30のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図30の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態7で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態7で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図33のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図32は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態10)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図34Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明は、分割処理に特徴を有していることから、例えば、分割処理については専用の復号処理部ex901を用い、それ以外のエントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図34Bのex1000に示す。この例では、本発明に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。