以下、本発明の実施の形態について説明する。
図1は、本発明を適用した伝送システムの構成例を示すブロック図である。
図1において、伝送システム100は、撮像装置101が生成した画像データを送信装置102が圧縮符号化し、パケット化して送信し、回線110を介して伝送されるそのパケットを、受信装置103が受信してデパケタイズして復号し、表示装置104が得られた画像データの画像を表示するデータ伝送システムである。
撮像装置101は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等を利用した撮像素子を有し、被写体を撮像し、その撮像画像をデジタルデータの画像データに変換し、得られた画像データを送信装置102に供給する。
送信装置102は、符号化部121、パケタイズ処理部122、および送信部123を有する。送信装置102は、符号化部121において、撮像装置101より供給される画像データを所定の方法で符号化し、その符号化により得られた符号化データをパケタイズ処理部122においてパケット化し、生成されたパケットを送信部123より所定の通信方法で回線110に送出する。
回線110は、送信装置102と受信装置103を接続し、送信装置102より送出されるパケットを受信装置103に伝送する任意の伝送媒体である。
受信装置103は、受信部131、デパケタイズ処理部132、および復号部133を有する。受信装置103は、受信部131において、回線110を介して伝送されてきたパケットを受信し、デパケタイズ処理部132において、その受信したパケットから符号化データを抽出し、復号部133において、その抽出した符号化データを送信装置102の符号化部121に対応する復号方法で復号し、得られたベースバンドの画像データを表示装置104に出力する。
表示装置104は、ディスプレイを有し、受信装置103より供給された画像データの画像をそのディスプレイに表示する。
この図1の伝送システム100は、パケタイズ処理部122によるパケタイズ処理による遅延時間、および、デパケタイズ処理部132によるデパケタイズ処理による遅延時間を低減し、撮像装置101において撮像されてから、その画像が表示装置104に表示されるまでの遅延時間を低減させることができるシステムである。
図1の伝送システム100において、送信装置102が送信する画像データを提供する装置として撮像装置101が示されているが、画像データを提供することができる装置であればどのような装置であってもよい。また、受信装置103が受信した画像データを利用する装置として表示装置104が示されているが、画像データを利用することができる装置であればどのような装置であってもよい。
また、ここでは伝送されるデータとして画像データについてのみ説明するが、例えば、音声データ等、その他のデータが画像データとともに伝送されてもよい。
送信装置102が行うパケットの送信方法は、受信装置103に対してのみ送信するユニキャストであってもよいし、受信装置103を含む複数の装置に対して送信するマルチキャストであってもよいし、不特定多数の装置に対して送信するブロードキャストであってもよい。
回線110は、パケットを伝送可能なものであればどのような形態のものであってもよく、有線であってもよいし、無線であってもよいし、その両方を含むものであってもよい。また、図1において回線110は、1本の矢印により示されているが、専用または汎用の伝送ケーブルであってもよいし、例えばLAN(Local Area Network)やインターネット等のような、1つまたは複数の通信網を含むようにしてもよいし、何らかの通信中継装置を含むようにしてもよい。さらに、回線110の回線数(チャネル数)は何本であってもよい。
次に、図1に示される送信装置102および受信装置103の各部の詳細について説明する。
図2は、図1の送信装置102の符号化部121の内部の構成例を示すブロック図である。図2において、符号化部121は、ウェーブレット変換部150、途中計算用バッファ部151、係数並び替え用バッファ部152、係数並び替え部153、レート制御部154、およびエントロピ符号化部155を有する。
符号化部121に入力された画像データは、途中計算用バッファ部151に一時的に溜め込まれる。ウェーブレット変換部150は、途中計算用バッファ部151に溜め込まれた画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部150は、途中計算用バッファ部151から画像データを読み出して分析フィルタによりフィルタ処理を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを途中計算用バッファ部151に格納する。ウェーブレット変換部150は、水平分析フィルタと垂直分析フィルタとを有し、画像データ群に対して、画面水平方向と画面垂直方向の両方について分析フィルタ処理を行う。ウェーブレット変換部150は、途中計算用バッファ部151に格納された低域成分の係数データを再度読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、途中計算用バッファ部151に格納される。
ウェーブレット変換部150は、この処理を繰り返して分解レベルが所定レベルに達したら、途中計算用バッファ部151から係数データを読み出し、読み出された係数データを係数並び替え用バッファ部152に書き込む。
係数並び替え部153は、係数並び替え用バッファ部152に書き込まれた係数データを所定の順序で読み出し、エントロピ符号化部155に供給する。エントロピ符号化部155は、供給された係数データを、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。
エントロピ符号化部155は、レート制御部154と連動的に動作し、出力される圧縮符号化データのビットレートが略一定値となるように制御される。すなわち、レート制御部154は、エントロピ符号化部155からの符号化データ情報に基づき、エントロピ符号化部155により圧縮符号化されたデータのビットレートが目標値に達した時点あるいは目標値に達する直前でエントロピ符号化部155による符号化処理を終了するように制御する制御信号を、エントロピ符号化部155に対して供給する。エントロピ符号化部155は、レート制御部154から供給される制御信号に応じて符号化処理が終了した時点で、符号化データを出力する。
なお、エントロピ符号化部155が、係数並び替え部153から読み出された係数データに対して、最初に量子化を行い、得られた量子化係数に対してハフマン符号化や算術符号化等の情報源符号化処理を施すようにすれば、さらに圧縮効果の向上を期待することができる。この量子化の方法としてはどのようなものを用いても良く、例えば、一般的な手段、つまり、以下の式(1)に示されるような、係数データWを量子化ステップサイズΔで除算する手法を用いれば良い。
量子化係数=W/Δ ・・・(1)
この時の量子化ステップサイズΔは、例えばレート制御部154において算出される。
エントロピ符号化部155は、符号化により得られた符号化データをパケタイズ処理部122に供給する。
次に、図2のウェーブレット変換部150で行われる処理について、より詳細に説明する。先ず、ウェーブレット変換について、概略的に説明する。画像データに対するウェーブレット変換では、図3に概略的に示されるように、画像データを空間周波数の高い帯域と低い帯域とに分割する処理を、分割の結果得られる空間周波数の低い帯域のデータに対して再帰的に繰り返す。こうして、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、効率的な圧縮符号化を可能とする。
なお、図3は、画像データの最低域成分領域に対する低域成分の領域Lおよび高域成分の領域Hへの分割処理を3回、繰り返し、分割の階層の総数を示す分割レベル=3とした場合の例である。図3において、"L"および"H"は、それぞれ低域成分および高域成分を表し、"L"および"H"の順序は、前側が横方向に分割した結果の帯域を示し、後側が縦方向に分割した結果の帯域を示す。また、"L"および"H"の前の数字は、その領域の階層を示しており、低域成分の階層ほど小さい値で表されている。
また、図3の例から分かるように、画面の右下の領域から左上の領域にかけて段階的に処理がなされ、低域成分が追い込まれていく。すなわち、図3の例では、画面の右下の領域が最も低域成分の少ない(高域成分が最も多く含まれる)領域3HHとされる、画面が4分割された左上の領域は、さらに4分割され、この4分割された領域のうち左上の領域がさらに4分割される。最も左上隅の領域は、最も低域成分を多く含む領域0LLとされる。
低域成分に対して繰り返し変換および分割を行うのは、画像のエネルギが低域成分に集中しているためである。このことは、図4のAに一例が示される分割レベル=1の状態から、図4のBに一例が示される分割レベル=3の状態のように分割レベルを進めていくに従って、図4のBに示されるようにしてサブバンドが形成されていくことからも、理解される。例えば、図3におけるウェーブレット変換の分割レベルは3であり、この結果、10個のサブバンドが形成されている。
ウェーブレット変換部150は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、上述のような処理を行う。なお、デジタルフィルタは、通常、複数タップ長のインパルス応答すなわちフィルタ係数を持っているため、フィルタ処理を行えるだけの入力画像データまたは係数データを予めバッファリングしておく必要がある。また、ウェーブレット変換を多段にわたって行う場合も同様に、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。
このウェーブレット変換の具体的な例として、5×3フィルタを用いた方法について説明する。この5×3フィルタを用いた方法は、JPEG2000規格でも採用されており、少ないフィルタタップ数でウェーブレット変換を行うことができる点で、優れた方法である。
5×3フィルタのインパルス応答(Z変換表現)は、次の式(2)および式(3)に示すように、低域フィルタH0(z)と、高域フィルタH1(z)とから構成される。式(2)および式(3)から、低域フィルタH0(z)は、5タップで、高域フィルタH1(z)は、3タップであることが分かる。
H0(z)=(−1+2z-1+6z-2+2z-3−z-4)/8 ・・・(2)
H1(z)=(−1+2z-1−z-2)/2 ・・・(3)
これら式(2)および式(3)によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、リフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。
次に、このウェーブレット変換方法について、さらに具体的に説明する。図5は、5×3フィルタのリフティングによるフィルタ処理を、分解レベル=2まで実行した例を示している。なお、図5において、図の左側に分析フィルタとして示される部分は、ウェーブレット変換部150のフィルタである。また、図の右側に合成フィルタとして示される部分は、後述する復号装置におけるウェーブレット逆変換部のフィルタである。
なお、以下の説明では、例えば表示デバイスなどにおいて画面の左上隅の画素を先頭として、画素が画面の左端から右端に向けて走査されて1ラインが構成され、ライン毎の走査が画面の上端から下端に向けて行われて1画面が構成されるものとする。
図5において、左端列は、原画像データのライン上の対応する位置にある画素データが縦方向に並べられて示されている。すなわち、ウェーブレット変換部150におけるフィルタ処理は、垂直フィルタを用いて画面上を画素が縦に走査されて行われる。左端から1列目乃至3列目が分割レベル=1のフィルタ処理を示し、4列目乃至6列目が分割レベル=2のフィルタ処理を示す。左端から2列目は、左端の原画像データの画素に基づく高域成分出力、左端から3列目は、原画像データおよび高域成分出力に基づく低域成分出力を示す。分割レベル=2のフィルタ処理は、左端から4列目乃至6列目に示されるように、分割レベル=1のフィルタ処理の出力に対して処理がなされる。
分解レベル=1のフィルタ処理において、第1段階のフィルタ処理として、原画像データの画素に基づき高域成分の係数データが算出され、第2段階のフィルタ処理として、第1段階のフィルタ処理で算出された高域成分の係数データと、原画像データの画素とに基づき低域成分の係数データが算出される。分解レベル=1の一例のフィルタ処理を、図5における左側(分析フィルタ側)の第1列目乃至第3列目に示す。算出された高域成分の係数データは、図2の係数並び替え用バッファ部152に格納される。また、算出された低域成分の係数データは、図2の途中計算用バッファ部151に格納される。
図5においては、係数並び替え用バッファ部152は、一点鎖線で囲まれた部分として示し、途中計算用バッファ部151は、点線で囲まれた部分として示す。
途中計算用バッファ部151に保持された分解レベル=1のフィルタ処理の結果に基づき、分解レベル=2のフィルタ処理が行われる。分解レベル=2のフィルタ処理では、分解レベル=1のフィルタ処理において低域成分の係数として算出された係数データを、低域成分および高域成分を含んだ係数データと見做して、分解レベル=1と同様のフィルタ処理を行う。分解レベル=2のフィルタ処理により算出された、高域成分の係数データおよび低域成分の係数データは、係数並び替え用バッファ部152に格納される。
ウェーブレット変換部150では、上述したようなフィルタ処理を、画面の水平方向および垂直方向にそれぞれ行う。例えば、先ず、分解レベル=1のフィルタ処理を水平方向に行い、生成された高域成分および低域成分の係数データを途中計算用バッファ部151に格納する。次に、途中計算用バッファ部151に格納された係数データに対して、垂直方向に分解レベル=1のフィルタ処理を行う。この分解レベル=1の水平および垂直方向の処理により、高域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域HHおよび領域HLと、低域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域LHおよび領域LLとの4領域が形成される。
そして、分解レベル=2では、水平方向および垂直方向のそれぞれについて、分解レベル=1で生成された低域成分の係数データに対してフィルタ処理が行われる。すなわち、分解レベル=2では、分解レベル=1で分割されて形成された領域LLがさらに4分割され、領域LL内にさらに領域HH、領域HL、領域LHおよび領域LLが形成される。
ウェーブレット変換部150は、ウェーブレット変換によるフィルタ処理を、画面の縦方向について、数ライン毎の処理に分割して、複数回に分けて段階的に行うようにしている。図5の例では、画面上の第1ラインからの処理になる1回目の処理は、7ラインについてフィルタ処理を行い、8ライン目からの処理になる2回目以降の処理は、4ライン毎にフィルタ処理を行っている。このライン数は、高域成分と低域成分とに2分解した後に、1ライン分の最低域成分が生成されるために必要なライン数に基づく。
なお、以下において、この最低域成分の1ライン分(最低域成分のサブバンドの1ライン分の係数データ)を生成するために必要な、他のサブバンドも含めたラインの集まりを、プレシンクト(またはラインブロック)と称する。ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ若しくはフィールド内、または各サブバンド内において形成される1行分の画素データ若しくは係数データのことを示す。すなわち、プレシンクト(ラインブロック)とは、ウェーブレット変換前の元の画像データにおける、ウェーブレット変換後の最低域成分のサブバンド1ライン分の係数データを生成するために必要なライン数分の画素データ群、または、その画素データ群をウェーブレット変換して得られる各サブバンドの係数データ群のことを示す。
図5によれば、分解レベル=2のフィルタ処理結果で得られる係数C5は、係数C4および途中計算用バッファ部151に格納された係数Caに基づき算出され、係数C4は、途中計算用バッファ部151に格納された係数Ca、係数Cbおよび係数Ccに基づき算出される。さらに、係数Ccは、係数並び替え用バッファ部152に格納される係数C2および係数C3、並びに、第5ラインの画素データに基づき算出される。また、係数C3は、第5ライン乃至第7ラインの画素データに基づき算出される。このように、分割レベル=2における低域成分の係数C5を得るためには、第1ライン乃至第7ラインの画素データが必要とされる。
これに対して、2回目以降のフィルタ処理においては、前回までのフィルタ処理で既に算出され係数並び替え用バッファ部152に格納されている係数データを用いることができるので、必要なライン数が少なくて済む。
すなわち、図5によれば、分解レベル=2のフィルタ処理結果で得られる低域成分の係数のうち、係数C5の次の係数である係数C9は、係数C4および係数C8、並びに、途中計算用バッファ部151に格納された係数Ccに基づき算出される。係数C4は、上述した1回目のフィルタ処理により既に算出され、係数並び替え用バッファ部152に格納されている。同様に、係数Ccは、上述の1回目のフィルタ処理により既に算出され、途中計算用バッファ部151に格納されている。したがって、この2回目のフィルタ処理においては、係数C8を算出するためのフィルタ処理のみが、新たになされることになる。
この新たなフィルタ処理は、第8ライン乃至第11ラインがさらに用いられてなされる。
このように、2回目以降のフィルタ処理は、前回までのフィルタ処理により算出され途中計算用バッファ部151および係数並び替え用バッファ部152に格納されたデータを用いることができるので、それぞれ4ライン毎の処理で済むことになる。
なお、画面上のライン数が符号化のライン数と合致しない場合は、原画像データのラインを所定の方法で複製してライン数を符号化のライン数と合わせて、フィルタ処理を行う。
このように、最低域成分1ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて(プレシンクト単位で)行うことで、符号化データを伝送した際に低遅延で復号画像を得ることを可能としている。
ウェーブレット変換を行うためには、ウェーブレット変換そのものを実行するために用いられる第1のバッファと、所定の分割レベルまで処理を実行する間に生成される係数を格納するための第2のバッファとが必要とされる。第1のバッファは、途中計算用バッファ部151に対応し、図5においては点線で囲まれて示されている。また、第2のバッファは、係数並び替え用バッファ部152に対応し、図5においては一点鎖線に囲まれて示されている。第2のバッファに格納された係数は、復号の際に用いられるため、後段のエントロピ符号化処理の対象とされる。
次に、図2の係数並び替え部153の処理について説明する。上述したように、ウェーブレット変換部150で算出された係数データは、係数並び替え用バッファ部152に格納され、係数並び替え部153により順序を並び替えられて読み出され、コーディングユニット単位でエントロピ符号化部155に送出される。
既に説明したように、ウェーブレット変換においては、高域成分側から低域成分側へと係数が生成されていく。図5の例では、1回目において、原画像の画素データにより、分解レベル=1のフィルタ処理で、高域成分の係数C1、係数C2および係数C3が順次生成される。そして、分解レベル=1のフィルタ処理で得られた低域成分の係数データに対して分解レベル=2のフィルタ処理を行い、低域成分の係数C4および係数C5が順次生成される。すなわち、第1回目では、係数C1、係数C2、係数C3、係数C4、係数C5の順に、係数データが生成される。この係数データの生成順は、ウェーブレット変換の原理上、必ずこの順序(高域から低域の順)になる。
これに対して、復号側では、低遅延で即座に復号を行うためには低域成分から画像の生成および出力を行う必要がある。そのため、符号化側で生成された係数データを最低域成分側から高域成分側に向けて並び替えて復号側に供給することが望ましい。
図5の例を用いて、より具体的に説明する。図5の右側は、逆ウェーブレット変換を行う合成フィルタ側を示す。復号側の、出力画像データの第1ライン目を含む1回目の合成処理(逆ウェーブレット変換処理)は、符号化側の1回目のフィルタ処理で生成された最低域成分の係数C4および係数C5と、係数C1とを用いて行われる。
すなわち、1回目の合成処理においては、係数C5、係数C4、係数C1の順に符号化側から復号側に係数データを供給し、復号側では、分解レベル=2に対応する合成処理である合成レベル=2の処理で、係数C5および係数C4に対して合成処理を行って係数Cfを生成し、バッファに格納する。そして、分解レベル=1に対応する合成処理である合成レベル=1の処理で、この係数Cfと係数C1に対して合成処理を行って、第1ラインを出力する。
このように、第1回目の合成処理においては、符号化側で係数C1、係数C2、係数C3、係数C4、係数C5の順に生成され係数並び替え用バッファ部152に格納された係数データが、係数C5、係数C4、係数C1、・・・の順に並び替えられて復号側に供給される。
なお、図5の右側に示す合成フィルタ側では、符号化側から供給される係数について、括弧内に符号化側での係数の番号を記し、括弧外に合成フィルタのライン順を記す。例えば係数C1(5)は、図5の左側の分析フィルタ側では係数C5であって、合成フィルタ側では第1ライン目であることを示す。
符号化側の2回目以降のフィルタ処理で生成された係数データによる復号側の合成処理は、前回の合成処理の際に合成あるいは符号化側から供給された係数データを用いて行うことができる。図5の例では、符号化側の2回目のフィルタ処理で生成された低域成分の係数C8および係数C9を用いて行う、復号側の2回目の合成処理は、符号化側の1回目のフィルタ処理で生成された係数C2および係数C3がさらに必要とされ、第2ライン乃至第5ラインが復号される。
すなわち、2回目の合成処理においては、係数C9、係数C8、係数C2、係数C3の順に符号化側から復号側に係数データを供給する。復号側では、合成レベル=2の処理において、係数C8および係数C9と、1回目の合成処理の際に符号化側から供給された係数C4とを用いて係数Cgを生成し、バッファに格納する。この係数Cgと、上述の係数C4と、1回目の合成処理により生成されバッファに格納された係数Cfとを用いて係数Chを生成し、バッファに格納する。
そして、合成レベル=1の処理において、合成レベル=2の処理で生成されバッファに格納された係数Cgおよび係数Chと、符号化側から供給された係数C2(合成フィルタでは係数C6(2)と示されている)および係数C3(合成フィルタでは係数C7(3)と示されている)とを用いて合成処理が行われ、第2ライン乃至第5ラインが復号される。
このように、第2回目の合成処理においては、符号化側で係数C2、係数C3、(係数C4、係数C5)、係数C6、係数C7、係数C8、係数C9の順に生成された係数データが、係数C9、係数C8、係数C2、係数C3、・・・の順に並び替えられて復号側に供給される。
3回目以降の合成処理においても、同様にして、係数並び替え用バッファ部152に格納された係数データが所定の順序に並び替えられて復号部に供給され、4ラインずつ、ラインが復号される。
なお、符号化側において画面の下端のラインを含むフィルタ処理(以下、最後の回と呼ぶ)に対応する復号側の合成処理では、それまでの処理で生成されバッファに格納された係数データを全て出力することになるため、出力ライン数が多くなる。図5の例では、最後の回に8ラインが出力される。
なお、係数並び替え部153による係数データの並び替え処理は、例えば、係数並び替え用バッファ部152に格納された係数データを読み出す際の読み出しアドレスを、所定の順序に設定することでなされる。
図6を用いて、上述までの処理をより具体的に説明する。図6は、5×3フィルタを用いて、分解レベル=2までウェーブレット変換によるフィルタ処理を施した例である。ウェーブレット変換部150において、図6のAに一例が示されるように、入力画像データの第1ラインから第7ラインに対して1回目のフィルタ処理が水平および垂直方向にそれぞれ行われる(図6のAのIn−1)。
1回目のフィルタ処理の分解レベル=1の処理において、係数C1、係数C2、および係数C3の3ライン分の係数データが生成され、図6のBに一例が示されるように、分解レベル=1で形成される領域HH、領域HLおよび領域LHのそれぞれに配置される(図6のBのWT−1)。
また、分解レベル=1で形成される領域LLは、分解レベル=2による水平および垂直方向のフィルタ処理でさらに4分割される。分解レベル=2で生成される係数C5および係数C4は、分解レベル=1による領域LL内において、領域LLに係数C5による1ラインが配置され、領域HH、領域HLおよび領域LHのそれぞれに、係数C4による1ラインが配置される。
ウェーブレット変換部150による2回目以降のフィルタ処理では、4ライン毎にフィルタ処理が行われ(図6のAのIn−2・・・)、分解レベル=1で2ラインずつの係数データが生成され(図6のBのWT−2)、分解レベル=2で1ラインずつの係数データが生成される。
図5の2回目の例では、分解レベル=1のフィルタ処理で係数C6および係数C7の2ライン分の係数データが生成され、図6のBに一例が示されるように、分解レベル1で形成される領域HH、領域HLおよび領域LHの、1回目のフィルタ処理で生成された係数データの次から配置される。同様に、分解レベル=1による領域LL内において、分解レベル=2のフィルタ処理で生成された1ライン分の係数C9が領域LLに配置され、1ライン分の係数C8が領域HH、領域HLおよび領域LHにそれぞれ配置される。
図6のBのようにウェーブレット変換されたデータを復号した際には、図6のCに一例が示されるように、符号化側の第1ライン乃至第7ラインによる1回目のフィルタ処理に対して、復号側の1回目の合成処理による第1ラインが出力される(図6のCのOut−1)。
以降、符号化側の2回目から最後の回の前までのフィルタ処理に対して、復号側で4ラインずつが出力される(図6のCのOut−2・・・)。そして、符号化側の最後の回のフィルタ処理に対して、復号側で8ラインが出力される。
ウェーブレット変換部150で高域成分側から低域成分側へと生成された係数データは、係数並び替え用バッファ部152に順次格納される。係数並び替え部153は、上述した係数データの並び替えが可能となるまで係数並び替え用バッファ部152に係数データが蓄積されると、係数並び替え用バッファ部152から合成処理に必要な順に並び替えて係数データを読み出す。読み出された係数データは、エントロピ符号化部155に順次、供給される。
以上のようにプレシンクト単位で符号化された画像データ(符号化データ)は、パケタイズ処理部122に供給される。その際、エントロピ符号化部155は、プレシンクト単位で、その画像データに関する情報をヘッダ情報(プレシンクトヘッダ)としてパケタイズ処理部122に供給する。図7にそのプレシンクトヘッダの構成例を示す。
図7に示されるように、プレシンクトヘッダ171は、4ワード(32×4ビット)分のデータよりなり、PID、AT、AID、FT、CF、IF、プレシンクトタイムスタンプ、量子化係数、およびプレシンクトコード長等の情報を含む。
PID(Precinct ID)は、ピクチャの先頭から数えたプレシンクトの番号を示す12ビットの情報である。AT(Align Unit Type)は、プレシンクト内に構成されるアラインユニットの属性を示す4ビットの情報である。アラインユニットは、プレシンクト内の符号化データが、例えば符号化単位等、所定のデータ単位で分割されたものである。つまり、プレシンクトは1つまたは複数のアラインユニットにより構成される。AID(Align Unit ID)は、プレシンクトの先頭から数えたアラインユニットの番号を示す5ビットの情報である。FT(Field Type)は、ピクチャがプログレッシブであるか、または、インタレースのどちらのフィールドであるかを示す2ビットのフラグ情報である。CF(Component Flag)は、輝度成分Y、色差成分Cb、および色差成分Crのコンポーネントの内、複数のコンポーネントをひとつのアラインユニットやプレシンクトにまとめたことを示す3ビットの情報である。
IF(Incomplete Flag)は、何らかの理由で符号化に失敗したアラインユニットまたはプレシンクトであることを示す1ビットのフラグ情報である。この失敗の範囲は、PID、AT、およびAIDが示すペイロードに限定される。
プレシンクトタイムスタンプ(Precint Time Stamp)は、そのプレシンクトのタイムスタンプの下位32ビットを示す情報である。量子化係数(QP Y or C)は、そのプレシンクトの、輝度成分Yまたは色差成分Cの量子化の際に使用された量子化係数の値を示す16ビットの情報である。プレシンクトコード長(Precinct Code Length Y or C)は、そのプレシンクトの、輝度成分Yまたは色差成分Cの符号化データのデータ長を示す26ビットの情報である。
また、エントロピ符号化部155は、ピクチャ単位で、その画像データに関する情報をヘッダ情報(ピクチャヘッダ)としてパケタイズ処理部122に供給する。図8にそのピクチャヘッダの構成例を示す。
図8に示されるように、ピクチャヘッダ172は、26ワード(32×26ビット)分のデータよりなり、PI、w、CEF、CBD、DL、WF、PDI、SF、FR、AR、DBSZ、フルタイムスタンプ、V0スタートポジション、SD、Hスタートポジション、VF、V合計サイズ、TSD、H合計サイズ、PXCS、Vサイズ、VSD、Hサイズ、BRT、CTS、およびWTm等の情報を含む。
PI(Profile Indication)は、プロファイルの指定を行う5ビットの情報である。wは、重み付け係数のカスタム値を設定するためのテーブル情報であるウェイティングテーブルをパケットに含めるか否かを示す1ビットのフラグ情報である。CEF(Color Extension Flag)は、カラー情報の拡張ヘッダを使用するか否かを示す1ビットのフラグ情報である。CBD(Component Bit Depth)は、コンポーネントのビット深度を示す5ビットの情報である。予め指定された値から「8」を引いた値が格納される。DL(DWT Level)は、ウェーブレット変換の分割数(分割レベル)を示す3ビットの情報である。WF(Wavelet Filter)は、ウェーブレット変換において使用されたフィルタの種類を示す2ビットの情報である。PDI(Picture Discontinuity Indication)は、タイムスタンプの連続性を示す1ビットの情報である。SF(Sampling Format)は、色差のサンプリング法を示す2ビットの情報である。
FR(Frame Rate)は、フレームレートを示す1ビットの情報である。AR(Aspect Ratio)は、画素アスペクト比を示す6ビットの情報である。DBSZ(Decoder Buffer Size)は、デコーダでのプレシンクトバッファサイズを示す4ビットの情報である。フルタイムスタンプ(FTS(Full Time Stamp))は、フルサイズのタイムスタンプを示す46ビットの情報である。
V0スタートポジション(FFVS(First Field Vertical Start))は、先頭フィールドの垂直方向有効画素開始位置を示す13ビットの情報である。SD(Start Diff)は、FFVSと第2フィールドとの差分を示す2ビットの情報である。Hスタートポジション(HS(Horizontal Start))は、水平方向の有効画素開始位置を示す13ビットの情報である。VF(Video Format)は、圧縮信号の映像フォーマットを示す4ビットの情報である。
V合計サイズ(FFVTS(First Field Vertical Total Size))は、先頭フィールドのブランクを含めた総画素数を示す13ビットの情報である。TSD(Total Size Diff)は、FFVTSと第2フィールドとの差分を示す2ビットの情報である。H合計サイズ(HTS(Horizontal Total Size))は、水平方向のブランクを含めた総画素数を示す13ビットの情報である。PXCS(Pixel Clock Scale)は、クロックの倍率を示す3ビットの情報である。
Vサイズ(FFVVS(First Field Vertical Valid Size))は、先頭フィールドの垂直方向有効画素サイズを示す13ビットの情報である。VSD(Valid Size Diff)は、FFVVSと第2フィールドとの差分を示す2ビットの情報である。Hサイズ(HVS(Horizontal Valid Size))は、水平方向の有効画素サイズを示す13ビットの情報である。BRT(B Value Reset Timing)は、B値のリセットタイミングを示す2ビットの情報である。
CTS(Custom Table Size)は、カスタムテーブルのサイズを示す16ビットの情報である。指定値の数だけ後続のカスタム値が存在し、そのサイズはCTS×2バイトである。WTm(Weighting Table m)は、m番目のウェイティングテーブルを示す16×mビットの情報である。
なお、実際には、図9に示されるように、符号化部121からパケタイズ処理部122へは、データ以外にも、属性情報やVALID情報等が供給される。属性情報は、供給するデータが、ヘッダであるか画像データであるかを示したり、輝度成分のデータであるか色差成分のデータであるかを示したりする情報である。VALID情報は、データの読み取りタイミングを通知する情報である。
パケタイズ処理部122は、所定のデータ単位(プレシンクト)毎に供給される符号化データに対して、そのデータのサイズと、別途指定されるパケットサイズに基づいて、パケタイズ処理を行う。
図10は、図1のパケタイズ処理部122の内部の構成例を示すブロック図である。
図10においてパケタイズ処理部122は、データ取得部201、RTP(Real-time Transport Protocol)ヘッダ作成部202、共通ヘッダ作成部203、拡張ヘッダ作成部204、ピクチャ情報作成部205、フラグ確認部206、サイズ確認部207、フラグメント処理部208、パケット化部209、および出力部210を有する。
データ取得部201は、符号化部121より供給される符号化データやパケット等を、そのデータともに供給される属性情報やVALID情報等に基づいて取得する。例えば、プレシンクトヘッダ171を取得すると、データ取得部201は、それを、RTPヘッダ作成部202、共通ヘッダ作成部203、拡張ヘッダ作成部、フラグ確認部206、およびサイズ確認部207に供給する。また、例えば、ピクチャヘッダ172を取得すると、データ取得部201は、それをピクチャ情報作成部205に供給する。さらに、例えば、符号化データを取得すると、データ取得部201は、それをフラグメント処理部208に供給する。
RTPヘッダ作成部202は、データ取得部201がプレシンクトヘッダを取得すると、その取得されたプレシンクトヘッダに基づいて、RTPパケットのヘッダであるRTPヘッダを作成する。RTPヘッダの詳細については後述する。RTPヘッダ作成部202は、作成したRTPヘッダをパケット化部209に供給し、処理終了を共通ヘッダ作成部203に通知する。
RTPヘッダ作成部202より通知を受けると、共通ヘッダ作成部203は、データ取得部201が取得したプレシンクトヘッダ171に基づいて、そのプレシンクトより作成される各パケットに付加される共通のヘッダである共通ヘッダを作成する。共通ヘッダにはそのプレシンクトに関する基本的な情報が含まれる。共通ヘッダの詳細については後述する。共通ヘッダ作成部203は、作成した共通ヘッダをパケット化部209に供給し、処理終了を拡張ヘッダ作成部204に通知する。
共通ヘッダ作成部203より通知を受けると、拡張ヘッダ作成部204は、データ取得部201が取得したプレシンクトヘッダ171に基づいて、そのプレシンクトに関する、共通ヘッダには含まれない情報を必要に応じて付与する拡張ヘッダの情報を作成する。この拡張ヘッダの作成により、送信者は柔軟かつ効率的なヘッダ作成が可能になる。拡張ヘッダの情報の内容は任意であるが、例えば、量子化係数に関する情報や、サイズに関する情報等がある。拡張ヘッダの詳細については後述する。拡張ヘッダ作成部204は、作成した拡張ヘッダをパケット化部209に供給し、処理終了をピクチャ情報作成部205に通知する。
拡張ヘッダ作成部204より通知を受け、さらに、データ取得部201がピクチャヘッダ172を取得すると、ピクチャ情報作成部205は、そのピクチャヘッダ172に基づいて、そのピクチャに関する情報を含むピクチャ情報を作成する。このピクチャ情報の詳細については後述する。ピクチャ情報作成部205は、作成したピクチャ情報をパケット化部209に供給し、そのピクチャ情報を拡張ヘッダに挿入させ、処理終了をフラグ確認部206に通知する。なお、データ取得部201がピクチャヘッダ172を取得しない場合、ピクチャ情報作成部205は、ピクチャ情報を作成せずに、処理終了をフラグ確認部206に通知する。
ピクチャ情報作成部205より通知を受けると、フラグ確認部206は、データ取得部201が取得したプレシンクトヘッダ171に含まれるIFを参照し、そのフラグの値に応じて、パケットに符号化データを含めるか否かを判定する。例えば、「IF=1」である場合、フラグ確認部206は、そのプレシンクトのデータの符号化は失敗したと判定し、データ取得部201に、その復号不可能な符号化データを破棄させる(取得しない)ようにし、さらに、パケット化部209を制御し、ヘッダ情報のみで(ペイロードを含めないように)パケット化させる。また、例えば、「IF=0」である場合、フラグ確認部206は、そのプレシンクトの符号化は成功したと判定し、パケット化部209にペイロードを含めてパケット化させるようにし、処理終了をサイズ確認部207に通知する。
フラグ確認部206より通知を受けると、サイズ確認部207は、データ取得部201が取得したプレシンクトヘッダに含まれるプレシンクトコード長に基づいて、プレシンクトのデータサイズが、予め別途設定されているパケットサイズ(1つのパケットに含まれるペイロードのデータサイズの最大値)より大きいか否かを確認する。例えば、パケットサイズよりプレシンクトのデータサイズの方が大きい場合、サイズ確認部207は、フラグメント処理部208を制御し、データ取得部201が取得する符号化データをパケットサイズ毎に分割させる。逆に、例えば、パケットサイズよりプレシンクトのデータサイズの方が大きくない場合、サイズ確認部207は、フラグメント処理部208を制御し、データ取得部201が取得する符号化データを分割させないようにする。
フラグメント処理部208は、サイズ確認部207に制御されて、プレシンクトのデータサイズがパケットサイズより大きい場合、データ取得部201が取得する符号化データを、パケットサイズ毎に分割してパケット化部209に供給する。つまり、この場合、フラグメント処理部208は、データ取得部201がヘッダ部分も考慮した1パケットサイズ分の符号化データを取得する度に、その1パケットサイズ分の符号化データを1つのペイロードとしてパケット化部209に供給する。
逆に、プレシンクトのデータサイズがパケットサイズより大きくない場合、フラグメント処理部208は、サイズ確認部207に制御されて、データ取得部201が取得する符号化データを、そのままパケット化部209に供給する。つまり、この場合、フラグメント処理部208は、データ取得部201が取得する1プレシンクト分の符号化データを1つのペイロードとしてパケット化部209に供給する。
パケット化部209は、各部より供給されるヘッダ情報を用いてフラグメント処理部208より供給されるペイロードをパケット化する。例えば、1プレシンクトの符号化データがフラグメント処理部208により複数のペイロードに分割される場合、パケット化部209は、各ペイロードに対して、それぞれ必要なヘッダ情報を付加し、それぞれをパケット化する。また、例えば、フラグメント処理部208が符号化データを分割しない場合、パケット化部209は、フラグメント処理部208より供給された1つのペイロードに対して必要なヘッダ情報を付加しパケット化する。さらに、例えば、フラグ確認部206が、ペイロードをパケットに含めないように指示する場合、パケット化部209は、その指示に基づいてヘッダ情報のみでパケット化を行う。
また、パケット化部209は、生成した各パケットの共通ヘッダに含まれるSFFやM等のフラグ情報の値を適宜設定する。SFF(Start Fragment Flag)は、そのパケットがプレシンクトの先頭部分を含むパケット(先頭パケット)であるか否かを示すフラグ情報であり、M(Marker)は、プレシンクトの終端部分を含むパケット(最終パケット)であるか否かを示すフラグ情報である。これらのフラグ情報は、デパケタイズ処理部132によるデパケタイズ処理時に参照される。
例えば、フラグメント処理部208が符号化データを分割する場合、パケット化部209は、1プレシンクトの符号化データが分割されて生成されたペイロード群の内、先頭のペイロードのパケットのSFFを1に設定し、最後のペイロードのパケットのMを1に設定する。
また、例えば、フラグメント処理部208が符号化データを分割しない場合、パケット化部209は、生成された1つのパケットのSFFおよびMのそれぞれを1に設定する。
このようにSFFやM等のフラグ情報を設定することにより、デパケタイズ処理部132は、このフラグ情報を参照するだけで容易に、そのパケットがプレシンクトの先頭パケットであるか、最終パケットであるか、またはそれ以外のパケットであるかを把握することができる。これにより、デパケタイズ処理部132は、後述するように待機時間を低減させることができ、デパケタイズ処理の遅延時間を低減させることができる。
パケット化部209は、生成したパケットを出力部210に供給する。
出力部210は、パケット化部209より供給されるRTPパケットを、送信部123(図1)に供給し、受信装置103(図1)に送信させる。
上述したように符号化部121は、図11に示されるように、1ピクチャ(フレームまたはフィールド)を、複数のプレシンクトに分割し、そのプレシンクト毎に符号化を行う。
パケタイズ処理部122は、図12に示されるように、1つのプレシンクトの符号化データを所定のパケットサイズ毎に分割してパケット化する。プレシンクトのデータサイズがパケットサイズより大きくなければ、生成されるパケットは1つとなる。図12の例においては1つのプレシンクトの符号化データから5つのパケットが生成されている。
画像データの伝送フォーマットの一例について以下に示す。
図13は、RTPヘッダ作成部202が作成する、RTPパケットのヘッダ情報であるRTPヘッダの構成を示している。RTPヘッダ221には、バージョン番号(V)、パディング(P)、拡張ヘッダ(X)の有無、送信元数(Counter)(CC)、マーカ情報(marker bit)(M)、ペイロードタイプ(Payload type)(PT)、シーケンス番号、タイムスタンプ、および同期ソース(送信元)識別子(SSRC(Synchronization Source Identifier))の各フィールドが設けられている。
バージョン番号(V)は、RTPのバージョン番号を示す2ビットの情報である。パディング(P)は、1ビットのフラグ情報であり、その値が「1」のとき、ペイロードの最後にパディング・オクテット(埋め込みデータ)が1つ以上付加されていることを示す。拡張ヘッダ(X)の有無は、1ビットのフラグ情報であり、その値が「1」のとき、固定長ヘッダの他に拡張ヘッダが付加されている(ヘッダ拡張がある)ことを示す。送信元数(CC)は、CSRCの識別子の数を示す4ビットの情報であり、例えば、多地点電話会議のように、複数のデータ源のデータを1つのRTPパケット化したときの、個々のデータ源の識別子の数を示す。
マーカ情報(M)は、1ビットのフラグ情報であり、例えば、ペイロードにおける任意のイベント等を示す。このマーカ情報(M)の利用方法は、例えば、ペイロードタイプ(PT)等において設定される。ペイロードタイプ(PT)は、そのパケットで運ぶペイロードの形式を指定する7ビットの情報である。
シーケンス番号は、RTPデータパケットの順序を示す16ビットの番号情報であり、初期値はランダムに設定され、その後に続くパケットにおいては値が「1」ずつ増える。このシーケンス番号は、伝送される符号化データ(画像データ)全体を通してのパケットの順序を示す。
タイムスタンプは、RTPパケットの最初のバイトのサンプリング時刻を示す32ビットの情報である。サンプリングクロックは、ペイロードのデータプロファイルによって決まる。例えば、音声信号の標本化周波数を8kHzとすると、タイムスタンプの値は125μsec毎に「1」増えるので、RTPデータパケットが20msecのデータとすると、タイムスタンプの値はパケットごとに160ずつ増える。なお、初期値はランダムに設定される。
同期ソース(送信元)識別子(SSRC)は、このパケットの送信元を示す32ビットの識別子である。この情報はランダムに生成される。トランスポートアドレスが変わると、このSSRC識別子も更新される。
共通ヘッダ作成部203、拡張ヘッダ作成部204、およびピクチャ情報作成部205はRTPヘッダに続くペイロードヘッダに含まれる各種情報を生成する。図14にペイロードヘッダの構成例を示す。図14に示されるように、ペイロードヘッダは、共通ヘッダ231、量子化パラメータ情報232、サイズ情報233、フォーマット情報234、ピクチャ情報235、およびカラー情報236により構成され、ペイロード237の前に付加される。
共通ヘッダ231は、共通ヘッダ作成部203により作成されるプレシンクトに関する基本的な情報を含むヘッダ情報である。この共通ヘッダ231は必須のヘッダであり、全パケットに付加される。
量子化パラメータ情報232は、拡張ヘッダ作成部204により作成される拡張ヘッダであり、量子化係数に関する情報を含む。サイズ情報233は、拡張ヘッダ作成部204により作成される拡張ヘッダであり、データサイズに関する情報を含む。フォーマット情報234は、拡張ヘッダ作成部204により作成される拡張ヘッダであり、データのフォーマットに関する情報を含む。ピクチャ情報235は、ピクチャ情報作成部205により作成される拡張ヘッダであり、元画像(つまり、符号化され、パケット化されて伝送される画像データ)に関する情報を含む。カラー情報236は、拡張ヘッダ作成部204により作成される拡張ヘッダであり、画像データの色に関する情報を含む。
量子化パラメータ情報232、フォーマット情報234、ピクチャ情報235、およびカラー情報236は、プレシンクトの先頭のパケット(フラグメントを行わない場合のパケットも含む)に拡張ヘッダとして付加される。サイズ情報233は、拡張ヘッダとして任意のパケットに付加される。
つまり、全てのパケットにサイズ情報を付加する場合、プレシンクトの先頭のパケットには、共通ヘッダ231乃至ペイロード237の全てが含まれる。これに対して、プレシンクトの先頭のパケット以外のパケットには、共通ヘッダ231とサイズ情報233とペイロード237のみが含まれる。
各情報の詳細について説明する。
図15は、共通ヘッダ231の構成例を示す図である。図15に示されるように、共通ヘッダ231は、PID、AT、AID、SFF、M、TSF、NF、FT、CF、IF、X、およびTS等の情報を含む。つまり、共通ヘッダ231の第1ワード(上から1段目)と第2ワード(上から2段目)は、符号化部121より供給されるプレシンクトヘッダ171の第1ワード(Word0)と第2ワード(Word1)をそのまま利用して作成されており、第1ワードの空きフィールド(Reserved)であった4ビットに、SFF、M、TSF、およびNFを追加したものである。
SFF(Start Fragment Flag)は、PID、AT、およびAIDが示すペイロードの先頭であるか否かを示す1ビットのフラグ情報である。つまり、このパケットがプレシンクトの先頭のパケット(先頭パケット)である場合、このSFFの値が「1」に設定され、それ以外の場合、「0」に設定される。
M(Marker)は、PID、AT、およびAIDが示すペイロードの終端部分を含むか否かを示す1ビットのフラグ情報である。つまり、このパケットがプレシンクト若しくはアラインユニットの終端部分を含むパケット(最終パケット)である場合、このMの値が「1」に設定され、それ以外の場合、「0」に設定される。
TSF(Time Stamp Flag)は、共通ヘッダにタイムスタンプを含むか否かを示す1ビットのフラグ情報である。つまり、このTSFの値が「1」の場合、共通ヘッダ231の第2ワードには、プレシンクトヘッダ171の第2ワード(Word1)が付加されている。
NF(Next Flag)は、後続ペイロードの存在を示す1ビットのフラグ情報である。つまり、このパケットに複数のプレシンクト若しくはアラインユニットのペイロードが付加されていて、かつ、このヘッダがパケット中の最後のプレシンクト若しくはアラインユニットではない場合、このNFの値が「1」に設定される。
TS(Time Stamp)は、このパケットのペイロードが属するプレシンクトのタイムスタンプの下位32ビットを示す情報であり、プレシンクトヘッダ171の第2ワード(Word1)に対応する。
なお、図15に示される第3ワード(上から3段目)は、共通ヘッダ231に連続して付与される拡張ヘッダを示している。
図16は、拡張ヘッダに含まれる量子化パラメータ情報232の構成例を示す図である。図16に示されるように、量子化パラメータ情報232は、ET、QP、およびX等の情報を含む情報である。拡張ヘッダ作成部204は、符号化部121より供給されるプレシンクトヘッダ171の第3ワード(Word2)を利用して、この量子化パラメータ情報232を作成する。
ET(Extension Type)は、拡張ヘッダの内容を示す5ビットの情報である。この量子化パラメータ情報232使用時の場合の指定値は任意であるが、例えば「00011」である。QP(Quantize Parameter)は、量子化係数の値を示す16ビットの情報である。X(Extension)は、拡張ヘッダを使用するか否かを示すフラグである。
図17は、拡張ヘッダに含まれるサイズ情報233の構成例を示す図である。図17に示されるように、サイズ情報233は、ET、SS、およびX等の情報を含む情報である。拡張ヘッダ作成部204は、符号化部121より供給されるプレシンクトヘッダ171の第4ワード(Word3)を利用して、このサイズ情報233を作成する。
ET(Extension Type)は、拡張ヘッダの内容を示す5ビットの情報である。このサイズ情報233使用時の場合の指定値は任意であるが、例えば「00100」である。SS(Segment Size)は、セグメントのペイロードサイズをワード長で示す26ビットの情報である。X(Extension)は、拡張ヘッダを使用するか否かを示すフラグである。
図7、並びに、図15乃至図17に示されるように、符号化部121は、共通ヘッダ231や拡張ヘッダ(量子化パラメータ情報232やサイズ情報233)と同じフォーマットのプレシンクトヘッダ171を、パケタイズ処理部122に供給する。これにより、パケタイズ処理部122の共通ヘッダ作成部203および拡張ヘッダ作成部204は、容易かつ高速に共通ヘッダおよび拡張ヘッダを作成することができる。
図18は、拡張ヘッダに含まれるフォーマット情報234の構成例を示す図である。フォーマット情報234は、基本的に、図18のAに示されるように、ET、FTI、およびX等の情報を含む。拡張ヘッダ作成部204は、例えば符号化部121より供給される情報を利用して、このフォーマット情報234を作成する。
ET(Extension Type)は、拡張ヘッダの内容を示す5ビットの情報である。このフォーマット情報234使用時の場合の指定値は任意であるが、例えば「00101」である。
FTI(Format Type Identifier)は、どのフォーマットタイプに関する情報が記述されているかを示す情報である。この値は任意であるが、例えば、ベイヤ情報が記述されている場合、値「00001」が設定される。X(Extension)は、拡張ヘッダを使用するか否かを示すフラグである。
図18のBに、ベイヤ情報が記述されている場合の、フォーマット情報234の構成例を示す。この場合、フォーマット情報234には、ET、FTI、およびXの他に、MT、SMT、BLF、VLOF、SSF、EVF、DC、BL、RBL、RVLO、DSS、NSS、およびEV等の情報が含まれる。
MT(Mosaic Type)は、ペイロードのモザイクタイプを示す4ビットの情報である。SMT(Start Mosaic Type)は、フレーム左上の最初の画素情報を示す4ビットの情報である。BLF(Black Level Flag)は、黒レベル情報の存在を示す1ビットのフラグ情報である。VLOF(Vertical Line Offset Flag)は、縦筋補正情報の存在を示す1ビットのフラグ情報である。SSF(Shutter Speed Flag)は、シャッタースピード情報の存在を示す1ビットのフラグ情報である。EVF(EV Flag)は、EV情報の存在を示す1ビットのフラグ情報である。DC(Defect Correction)は、欠陥補正を行うか否かを示す1ビットのフラグ情報である。
BL(Black Level)は、黒レベル値を示す32ビットのフラグ情報である。RBL(Revised Black Level)は、黒レベル補正オフセット値を示す32ビットの情報である。BLとRBLは、BLFの値が「1」の場合のみ存在する。
RVLO(Revised Vertical Line Offset)は、縦筋補正オフセット値を示す32ビットの情報である。RVLOは、VLOFの値が「1」の場合のみ存在する。
DSSは、シャッタースピード分子(APEX単位)を示す32ビットの情報である。NSSは、シャッタースピード分母(APEX単位)を示す32ビットの情報である。DSSとNSSは、SSFの値が「1」の場合のみ存在する。
EVは、EV値を示す32ビットの情報である。EVは、EVFの値が「1」の場合のみ存在する。
図19は、拡張ヘッダに含まれるピクチャ情報235の構成例を示す図である。図19に示されるように、ピクチャ情報235は、ET、PI、CEF、CBD、DL、WF、PDI、SF、FR、AR、DBSZ、FTS、FFVS、SD、HS、VF、FFVTS、TSD、HTS、PXCS、FFVVS、VSD、HVS、BRT、WCF、X、CTS、およびWTm等の情報を含む。ピクチャ情報作成部205は、符号化部121より供給されるピクチャヘッダ172を利用して、このピクチャ情報235を作成する。
つまり、ピクチャ情報235は、符号化部121より供給されるピクチャヘッダ172の、第1ワード(Word0)の空きフィールド(Reserved)にETを追加し、第6ワード(Word5)の空きフィールド(Reserved)にWCFとXを追加したものである。
ET(Extension Type)は、拡張ヘッダの内容を示す5ビットの情報である。このピクチャ情報235使用時の場合の指定値は任意であるが、例えば「00010」である。WCF(Waighting Custom Flag)は、重み付け係数のカスタム値を使用するかを示す1ビットのフラグ情報である。このWCFの値が「1」のときのみCTSが存在する。X(Extension)は、拡張ヘッダをこのヘッダに続けて使用するか否かを示すフラグである。
図8、および図19に示されるように、符号化部121は、ピクチャ情報235と同じフォーマットのピクチャヘッダ172を、パケタイズ処理部122に供給する。これにより、パケタイズ処理部122のピクチャ情報作成部205は、容易かつ高速にピクチャ情報235を作成することができる。
図20は、拡張ヘッダに含まれるカラー情報236の構成例を示す図である。図20に示されるように、カラー情報236は、ETやX等の情報を含む。拡張ヘッダ作成部204は、符号化部121より供給される情報等を利用して、このカラー情報236を作成する。
ET(Extension Type)は、拡張ヘッダの内容を示す5ビットの情報である。X(Extension)は、拡張ヘッダを使用するか否かを示すフラグである。
パケタイズ処理部122は、以上のようにプレシンクト毎の符号化データをパケット化し、送信部123に供給する。送信部123は、そのパケットを順次、回線110を介して受信装置103に送信する。
以上のようなフォーマットで送信部123より送出されたパケットは、回線110を介して受信装置103の受信部131に供給される。受信部131は、そのパケットを受信すると、それをデパケタイズ処理部132に供給する。
図21は、デパケタイズ処理部132の内部の構成例を示すブロック図である。図21に示されるように、デパケタイズ処理部132は、例えば、パケット取得部251、ヘッダ情報解析部252、制御モード遷移部253、制御部254、ヘッダ供給部255、データ供給部256、エラー通知部257、および制御信号供給部258を有する。
パケット取得部251は、受信部131より供給されるパケットを取得する。そのとき、パケット取得部251は、RTPペイロードヘッダまで情報を取得すると、その取得を続けながら、既に取得した情報を順次、ヘッダ情報解析部252に供給する。つまり、パケット取得部251は、ペイロードの取得が完了する前に、ヘッダ情報をヘッダ情報解析部252に供給する。また、パケット取得部251は、ヘッダ情報はヘッダ供給部255にも供給し、ペイロードはデータ供給部256にも供給する。
ヘッダ情報解析部252は、パケット取得部251が取得したRTPパケットのヘッダ情報、つまり、RTPヘッダやペイロードヘッダの情報を解析し、その解析結果を制御モード遷移部253や制御部254に供給する。
制御モード遷移部253は、ヘッダ情報解析部252より供給されるヘッダ情報の解析結果に基づいて制御部254の動作モードを制御し、必要に応じて遷移させる。
制御部254は、制御モード遷移部253により制御されて遷移した制御モードで、ヘッダ情報解析部252より供給される解析結果に基づいて、ヘッダ供給部255、データ供給部256、エラー通知部257、および制御信号供給部258の動作を制御する。
ヘッダ供給部255は、制御部254に制御されて、パケット取得部251より供給されるペイロードヘッダに含まれる各種情報を抽出し、プレシンクトヘッダ171やピクチャヘッダ172を復元し、復号部133に供給する。データ供給部256は、制御部254に制御されて、パケット取得部251より供給されるペイロードデータを復号部133に供給する。エラー通知部257は、制御部254に制御されて、パケットロスの発生等のエラーを復号部133に通知する。制御信号供給部258は、制御部254に制御されて、ヘッダやデータ以外の各種制御情報を復号部133に供給する。
制御部254の制御モードには、図22に示されるように、スタートモード301、スタンバイモード302、プロセッシングモード303、およびロスモード304の4つのモードがある。制御モード遷移部253は、ヘッダ情報解析部252によるヘッダ情報の解析結果に基づいて、RTPパケットの受信状況を把握し、その状況に応じて制御部254の制御モードを、最適なモードに遷移させる。
スタートモード301は、符号化データ全体の最初のパケットを処理するためのモードである。デパケタイズ処理開始時、制御部254は、このスタートモード301に設定される。スタンバイモード302は、プレシンクトの先頭のパケットを処理するためのモードである。プレシンクトの最後のパケットが処理された後、制御部254は、このスタンバイモード302に設定される。プロセッシングモード303は、パケットロスが発生していない通常時、プレシンクトの先頭以外の各パケットを処理するためのモードである。
パケットロスが発生していないとき、プレシンクトの先頭以外の各パケットに対して、制御部254は、このプロセッシングモード303に設定される。ロスモード304は、パケットロス等のエラーが発生したときに、そのプレシンクトの残りのパケットを処理するためのモードである。パケットロスが発生した場合、制御部254は、このロスモード304に設定される。
各モードにおけるデパケタイズ処理部132の動作の詳細については後述する。
なお、実際には、図23に示されるように、デパケタイズ処理部132から復号部133へは、データ以外にも、スタート情報、エンド情報、VALID情報、属性情報、およびエラー通知等が供給される。
スタート情報は、プレシンクト若しくはアラインユニットの先頭パケットのペイロードを示す情報であり、デパケタイズ処理部132が、プレシンクト若しくはアラインユニットの先頭パケットのペイロードを復号部133に供給するとき、このスタート情報に値「1」が設定される。エンド情報は、プレシンクト若しくはアラインユニットの最終パケットのペイロードを示す情報であり、デパケタイズ処理部132が、プレシンクト若しくはアラインユニットの最終パケットのペイロードを復号部133に供給するとき、このエンド情報に値「1」が設定される。
属性情報は、供給するデータが、ヘッダであるか画像データであるかを示したり、輝度成分のデータであるか色差成分のデータであるかを示したりする情報である。VALID情報は、データの読み取りタイミングを通知する情報である。エラー通知は、パケットロス等のエラーの発生を復号部133に通知する情報である。
図24は、図1の復号部133の内部の構成例を示すブロック図である。図24に示されるように、復号部133は、制御情報取得部351、復号制御部352、復号処理実行部353、ヘッダ取得部354、データ取得部355、エラー通知取得部356、および破棄処理部357を有する。
制御情報取得部351は、デパケタイズ処理部132より、スタート情報、エンド情報、VALID情報、および属性情報等の制御情報を取得し、その制御情報を復号制御部352に供給する。復号制御部352は、その制御情報に基づいて、所定のタイミングで復号処理実行部353に復号処理を開始させる。
復号処理実行部353は、デパケタイズ処理部132より供給され、ヘッダ取得部354により取得されたヘッダ情報に基づいて、データ取得部355により取得された符号化データの復号処理を行う。復号処理実行部353は、図24に示されるように、バッファ部361、エントロピ復号部362、およびウェーブレット逆変換部363を有する。バッファ部361は、データ取得部355より供給される符号化データを一時的に保持し、必要に応じてその符号化データをエントロピ復号部362に供給する。また、バッファ部361は、エントロピ復号部362より供給される、符号化データの復号結果である係数データを一時的に保持し、必要に応じてその係数データをウェーブレット逆変換部363に供給する。
エントロピ復号部362は、復号制御部352に制御されて、バッファ部361に保持されている符号化データを読み出して、符号化部121のエントロピ符号化部155に対応する方法でエントロピ復号し、係数データを生成する。なお、エントロピ符号化部155において、量子化を行う場合、エントロピ復号部362は、エントロピ復号処理を行った後、得られる係数データに対して逆量子化処理も行う。エントロピ復号部362は、得られた係数データをバッファ部361に供給して蓄積させる。
ウェーブレット逆変換部363は、所定のタイミングでバッファ部361に蓄積された係数データを読み出し、符号化部121のウェーブレット変換部150に対応する方法でウェーブレット逆変換処理を行い、得られたベースバンドの画像データを出力画像データとして、表示装置104に出力する。
ヘッダ取得部354は、デパケタイズ処理部132より供給されるプレシンクトヘッダやピクチャヘッダ等のヘッダ情報を取得し、それをバッファ部361に供給して保持させる。データ取得部355は、デパケタイズ処理部132より供給されるペイロードデータを取得し、それをバッファ部361に供給して保持させる。
エラー通知取得部356は、デパケタイズ処理部132より供給される、受信処理においてパケットのロスが発生したこと等を通知するエラー通知を取得し、それを破棄処理部357に供給する。破棄処理部357は、エラー通知を取得すると、復号処理実行部353のバッファ部361に蓄積されている符号化データを破棄させる。つまり、破棄処理部357は、パケットの受信処理においてパケットのロスが発生した場合(シーケンス番号に基づいてパケットロスの発生が確認された場合)、そのパケットロスが発生した現在のプレシンクトに対する正常なエントロピ復号処理が実行不可能であるので、バッファ部361に蓄積されている、パケットロスが発生した現在のプレシンクトの符号化データを全て破棄する。
次に、各部の実行する処理の流れについて説明する。最初に、送信装置102の符号化部121により実行される符号化処理の流れの例を図25のフローチャートを参照して説明する。
符号化処理が開始されると、ウェーブレット変換部150は、ステップS1において、処理対象プレシンクトの番号Aを初期設定にする。通常の場合、番号Aは「1」に設定される。設定が終了すると、ウェーブレット変換部150は、ステップS2において、最低域サブバンドにおいて上からA番目の1ラインを生成するのに必要なライン数(すなわち、1プレシンクト)の画像データを取得し、その画像データに対して、ステップS3において画面垂直方向に並ぶ画像データに対して分析フィルタリングを行う垂直分析フィルタリング処理を行い、ステップS4において画面水平方向に並ぶ画像データに対して分析フィルタリング処理を行う水平分析フィルタリング処理を行う。
ステップS5においてウェーブレット変換部150は、分析フィルタリング処理を最終レベルまで行ったか否かを判定し、分解レベルが最終レベルに達していないと判定した場合、処理をステップS3に戻し、現在の分解レベルに対して、ステップS3およびステップS4の分析フィルタリング処理を繰り返す。
ステップS5において、分析フィルタリング処理が最終レベルまで行われたと判定した場合、ウェーブレット変換部150は、処理をステップS6に進める。
ステップS6において、係数並び替え部153は、プレシンクトA(ピクチャ(フレームまたはフィールド)の上からA番目のプレシンクト)の係数を低域から高域の順番に並び替える。エントロピ符号化部155は、ステップS7において、その係数に対してライン毎にエントロピ符号化する。
エントロピ符号化が終了すると、エントロピ符号化部155は、まず、ステップS8においてプレシンクトヘッダ171(図7)を送出し、ステップS9において、現在の処理対象のプレシンクトがピクチャの先頭のプレシンクト(つまり、A=1)であるか否かを判定する。ピクチャの先頭であると判定された場合、処理はステップS10に進み、エントロピ符号化部155は、ピクチャヘッダ172(図8)を送出する。ステップS10の処理が終了すると、処理はステップS11に進む。また、ステップS9において、現在の処理対象のプレシンクトがピクチャの先頭のプレシンクトでないと判定された場合、ステップS10の処理は省略され、処理はステップS11に進む。
エントロピ符号化部155は、ステップS11において、ヘッダ情報に続いてプレシンクトAの符号化データを外部に送出する。
ウェーブレット変換部150は、ステップS12において番号Aの値を「1」インクリメントして次のプレシンクトを処理対象とし、ステップS13において、処理対象のピクチャについて、未処理の画像入力ラインが存在するか否かを判定し、存在すると判定した場合、処理をステップS2に戻し、新たな処理対象のプレシンクトに対してそれ以降の処理を繰り返す。
以上のようにステップS2乃至ステップS13の処理が繰り返し実行され、各プレシンクトが符号化される。そして、ステップS13において、未処理の画像入力ラインが存在しないと判定した場合、ウェーブレット変換部150は、そのピクチャに対する符号化処理を終了する。次のピクチャに対しては新たに符号化処理が開始される。
従来のウェーブレット変換の方法の場合、まず、水平分析フィルタリング処理をピクチャ全体に対して行い、次に垂直分析フィルタリング処理をそのピクチャ全体に対して行う。そして得られた低域成分全体に対して同様の水平分析フィルタリング処理と垂直分析フィルタリング処理を順に行う。以上のように、分解レベルが最終レベルに達するまで、分析フィルタリング処理が再帰的に繰り返される。従って、各分析フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、ピクチャ全体、若しくは、その時点の分解レベルの低域成分全体のフィルタリング結果を保持する必要があり、多大なメモリ容量を必要とすることになる(保持するデータ量が多い)。
また、この場合、ピクチャ内において全てのウェーブレット変換が終了するまで、後段の係数並び替えやエントロピ符号化を行うことができず、遅延時間が増大する。
これに対して、符号化部121のウェーブレット変換部150の場合、上述したようにプレシンクト単位で垂直分析フィルタリング処理および水平分析フィルタリング処理を最終レベルまで連続して行うので、従来の方法と比較して、一度に(同時期に)保持する(バッファリングする)必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、最終レベルまで分析フィルタリング処理が行われることにより、後段の係数並び替えやエントロピ符号化等の処理も行うことができる(つまり、係数並び替えやエントロピ符号化をプレシンクト単位で行うことができる)。従って、従来の方法と比較して遅延時間を大幅に低減させることができる。
また、エントロピ符号化部155は、符号化データとともに、プレシンクト毎にプレシンクトヘッダ171を、ピクチャ毎にピクチャヘッダ172をパケタイズ処理部122に供給するので、パケタイズ処理部122は、容易にヘッダ情報を生成することができる。
また、このプレシンクトヘッダ171およびピクチャヘッダ172のフォーマットは、パケタイズ処理部122がパケットに付加するペイロードヘッダのフォーマットと同様であるので、パケタイズ処理部122は、さらに容易にヘッダ情報を生成することができる。
さらに、エントロピ符号化部155は、何らかの理由で符号化に失敗した場合、プレシンクトヘッダ171のIFを立てることにより、そのプレシンクトまたはアラインユニットが、符号化に失敗したプレシンクトまたはアラインユニットであることを示す。このIFを参照することによりパケタイズ処理部122は、復号できない不要なデータをパケット化して受信装置103に送信することを容易に抑制することができる。
次に、パケタイズ処理部122によるパケタイズ処理の流れの例を、図26のフローチャートを参照して説明する。
ステップS31において、パケタイズ処理部122のデータ取得部201は、プレシンクトヘッダ171を取得したか否かを判定し、取得したと判定するまで待機する。符号化部121より供給されたプレシンクトヘッダ171を取得したと判定された場合、処理はステップS32に進む。
ステップS32において、RTPヘッダ作成部202は、RTPヘッダ221を作成する。ステップS33において、共通ヘッダ作成部203は、プレシンクトヘッダ171に基づいて、共通ヘッダ231を作成する。このとき、共通ヘッダ作成部203は、プレシンクトヘッダ171の第1ワード(Word0)に、SFF、M、TSF、およびNFのフィールドを追加する。
ステップS34において、拡張ヘッダ作成部204は、プレシンクトヘッダ171に基づいて、量子化パラメータ情報232、サイズ情報233、フォーマット情報234、およびカラー情報236等の拡張ヘッダを作成する。
ステップS35において、ピクチャ情報作成部205は、ピクチャヘッダ172を取得したか否かを判定する。ピクチャヘッダ172を取得したと判定された場合、処理はステップS36に進む。ステップS36において、ピクチャ情報作成部205は、ピクチャヘッダ172を参照し、wの値が「1」であるか否かを判定し、wの値が「1」であると判定した場合、ステップS37においてウェイティングテーブル(WTm)もパケット化するようにピクチャ情報に含める。ステップS37の処理が終了すると、処理はステップS39に進む。
また、ステップS36において、wの値が「0」であると判定した場合、ピクチャ情報作成部205は、ステップS38において、ウェイティングテーブル(WTm)をピクチャ情報より削除する。ステップS38の処理が終了すると、処理はステップS39に進む。
さらに、ステップS35において、ピクチャヘッダを取得していないと判定された場合、処理は、ステップS39に進む。
ステップS39において、フラグ確認部206は、プレシンクトヘッダ171のIFの値が0であるか否かを判定する。プレシンクトヘッダ171のIFの値が0であると判定された場合、処理はステップS40に進む。
ステップS40において、サイズ確認部207は、プレシンクトのデータサイズがパケットのペイロードの最大サイズ(パケットサイズ)より大きいか否かを判定する。
プレシンクトのサイズがパケットサイズより大きいと判定された場合、処理はステップS41に進む。ステップS41において、フラグメント処理部208は、1プレシンクトの符号化データをパケットサイズ毎に分割し、互いに異なるペイロードとする。ステップS41の処理が終了すると、処理はステップS43に進む。
また、ステップS40において、プレシンクトのデータサイズがパケットサイズより大きくないと判定された場合、フラグメント処理部208は、符号化データの分割を行わない。つまり、この場合、ステップS41の処理は省略され、処理はステップS43に進む。
さらに、ステップS39において、「IF=0」と判定された場合、処理はステップS42に進む。ステップS42において、データ取得部201は、フラグ確認部206に制御されて、供給される符号化データを破棄する。ステップS42の処理が終了すると、処理はステップS43に進む。
パケット化部209は、ステップS43において、各ペイロードやヘッダ情報を用いてRTPパケットを生成し、ステップS44において、各パケットのSFFおよびM等のフラグ情報を設定する。
以上のように各フラグ情報が設定されると、出力部210は、そのRTPパケットを、送信部123に出力する。
ステップS45において、データ取得部201は、全てのプレシンクトを処理したか否かを判定する。未処理のプレシンクトが存在すると判定された場合、処理はステップS31に戻り、それ以降の処理が繰り返される。また、ステップS45において全てのプレシンクトを処理したと判定された場合、パケタイズ処理は終了する。
以上のように、パケタイズ処理部122は、符号化部121より供給されるヘッダ情報に基づいて容易に共通ヘッダや拡張ヘッダを生成することができる。
また、上述したように、ステップS36乃至ステップS38において、ピクチャ情報作成部205は、プレシンクトヘッダ171のwの値に基づいてウェイティングテーブルの付加を容易かつ高速に制御することができる。つまり、ピクチャ情報作成部205は、プレシンクトヘッダ171のwの値を確認するだけで、ウェイティングテーブルを必要なときのみ適切に付加することができる。これにより、送信装置102より受信装置103に転送されるデータ量の不要な増大や、それに伴う各部の不要な負荷の増大を抑制することができる。
さらに、上述したように、ステップS39においてプレシンクトヘッダ171のIFの値が「1」である場合、フラグ確認部206は、ステップS42においてデータ取得部201を制御して、符号化データを取得させないようにし、パケットにペイロードを付加させないようにする。つまり、この場合、パケタイズ処理部122より出力されるRTPパケットにはヘッダ情報のみが含まれ、ペイロードは含まれない。このようにすることにより、パケタイズ処理部122は、符号化部121より供給されるプレシンクトヘッダ171を参照するだけで、容易かつ高速に復号できない不要なデータの送信を低減させることができ、送信部123、回線110、および受信装置103等の不要な負荷の増大を抑制することができる。
また、上述したようにステップS40において、サイズ確認部207は、プレシンクトヘッダ171に基づいてプレシンクトのサイズがパケットサイズより大きいか否かを判定することができるので、パケタイズ処理部122は、1プレシンクトの符号化データを、蓄積することなく、容易かつ高速にフラグメントするか否かを判定することができる。
さらに、パケット化部209は、ステップS44において、プレシンクトの先頭パケットについては、共通ヘッダ231のSFFのフラグを立て、プレシンクトの最終パケットについては、共通ヘッダ231のMのフラグを立てる。このようなフラグを立てることにより、受信装置103のデパケタイズ処理部132は、ヘッダ情報を参照するだけで容易に、プレシンクトの先頭とプレシンクトの終端を識別することができる。これによりデパケタイズ処理部132は、後述するようにデパケタイズ処理を高速かつ容易に行うことができる。
さらに、このとき、共通ヘッダ231のIFのフラグが立てられていることにより、受信装置103のデパケタイズ処理部132は、ヘッダ情報を参照するだけで容易に、パケットにペイロードが含まれていないことを識別することができる。これによりデパケタイズ処理部132は、後述するようにデパケタイズ処理を高速かつ容易に行うことができる。
次に、パケットを受信する受信装置103のデパケタイズ処理部132が実行する処理について説明する。上述したようにデパケタイズ処理部132は、4つの制御モードでデパケタイズ処理を行う。デパケタイズ処理を開始する際、デパケタイズ処理部132は、スタートモード301に設定される。
最初に、そのスタートモード301のデパケタイズ処理部132により実行されるスタートモード処理の流れの例を図27のフローチャートを参照して説明する。
ステップS61において、パケット取得部251は、パケットを取得したか否かを判定し、受信部131を介してパケットを取得したと判定するまで待機する。パケットを取得したと判定された場合、処理はステップS62に進む。ステップS62において、ヘッダ情報解析部252は、パケットのヘッダ情報を取得し、「PID=0」、「CF=4」、かつ「SFF=1」であるか否かを判定する。つまり、ヘッダ情報解析部252は、複数のコンポーネントを1つにまとめた、ピクチャの先頭のプレシンクトの最初のパケットであるか否かを判定する。「PID=0」、「CF=4」、かつ「SFF=1」ではないと判定された場合、処理はステップS61に戻りそれ以降の処理が繰り返される。つまり、「PID=0」、「CF=4」、かつ「SFF=1」であると判定されるまで、ステップS61およびステップS62の処理が繰り返され、「PID=0」、「CF=4」、かつ「SFF=1」であると判定されると、処理はステップS63に進む。
ステップS63において、制御部254は、後述するように各モードで実行される、プレシンクトの先頭のパケットに対するデパケタイズ処理であるモード共通処理を実行する。モード共通処理の詳細については後述する。モード共通処理が終了すると、制御モードは他のモードに遷移するので、スタートモード処理は終了する。
以上のように、スタートモードにおいて、制御部254は、共通ヘッダ231のSFFの値を参照するだけで、ピクチャの先頭のプレシンクトの先頭パケットを容易に検出することができる。また、制御部254は、そのピクチャの先頭のプレシンクトの先頭パケットを検出することにより、その時点でモード共通処理を開始し、そのプレシンクトからペイロードの抽出を開始することができる。つまり、制御部254は、プレシンクトの最終パケットを確認することなく、新規のプレシンクトを把握することができるので、ペイロードの抽出の開始タイミングをより早くすることができ、遅延時間を低減させることができる。
次に、図27のステップS63において実行されるモード共通処理の流れの例を図28のフローチャートを参照して説明する。このモード共通処理は、後述するように、他のモードにおいても実行される処理であり、デパケタイズ処理部132が、1つ前のプレシンクトの最終パケットが確認されていないが、新しいプレシンクトの先頭パケットを確認した場合に、そのプレシンクトに対するデパケタイズ処理を行うものである。
従って、このモード共通処理は、パケット取得部251がパケットを既に取得している状態で開始される。
モード共通処理が開始されると、ステップS82において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「IF=0」であるか否かを判定する。「IF=1」であると判定された場合、処理はステップS83に進む。
「IF=1」であると判定された場合、制御部254は、ステップS83において、ヘッダ供給部255およびデータ供給部256を制御して、パケットのヘッダ部分のみを復号部133に転送させる。IF=1の場合、基本的にそのパケットにペイロードは含まれていない。仮に含まれているとしても復号不可能であるので、制御部254は、データ供給部256を制御してそのペイロードの転送を禁止する。
ステップS83の処理が終了すると、制御モード遷移部253は、ステップS84において、制御モードを、次のプレシンクトの先頭パケットを待ち受けるスタンバイモードへ遷移する。スタンバイモードの処理については後述する。制御モードが遷移されるとモード共通処理は終了する。
ステップS82において、「IF=0」であると判定された場合、処理は、ステップS85に進む。この場合、ペイロードの符号化データは正常に符号化されたデータである。ステップS85において、ヘッダ供給部255は、制御部254に制御されて、プレシンクトヘッダ4ワード分を、復号部133に転送する。
ステップS86において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「PID=0」かつ「CF=4」であるか否かを判定する。「PID=0」かつ「CF=4」であると判定された場合、処理は、ステップS87に進む。ステップS87において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「w=1」であるか否かを判定する。「w=1」であると判定された場合、処理はステップS88に進み、ヘッダ供給部255は、制御部254に制御されて、ピクチャヘッダ172を、ウェイティングテーブルも含めるように26ワード分復号部133に転送する。ステップS88の処理が終了すると、処理はステップS90に進む。
また、ステップS87において、「w=1」でないと判定された場合、処理はステップS89に進み、ヘッダ供給部255は、制御部254に制御されて、ピクチャヘッダ172を、ウェイティングテーブルも含めないように6ワード分のみ復号部133に転送する。ステップS89の処理が終了すると、処理はステップS90に進む。
また、ステップS86において、「PID=0」かつ「CF=4」であると判定された場合、ピクチャの先頭のプレシンクトではないので、ヘッダ供給部255は、制御部254に制御されて、ピクチャヘッダ172を復号部133に転送しない。従って、この場合、処理はステップS90に進む。
ステップS90において、データ供給部256は、制御部254に制御されて、パケットの残りのペイロード、つまり符号化データを復号部133に転送する。ステップS91において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「M=1」であるか否かを判定する。「M=1」であり、処理対象のパケットがプレシンクトの最終パケットであると判定された場合、処理はステップS92に進み、制御部254は、制御モード遷移部253に制御されて、制御モードをスタンバイモードへ遷移する。つまり、今回最終パケットの処理が終了したので、制御モードは、次のプレシンクトの先頭パケットを待ち受けるスタンバイモードへ遷移される。制御モードが遷移されるとモード共通処理は終了する。
また、ステップS91において、「M=1」でなく、処理対象のパケットがプレシンクトの最終パケットでないと判定された場合、処理はステップS93に進み、制御部254は、制御モード遷移部253に制御されて、制御モードをプロセッシングモードへ遷移する。つまり、今回最終パケットでないパケットの転送処理が正常に終了したので、制御モードは、同じプレシンクトの後続のパケットを待ち受けるプロセッシングモードへ遷移される。制御モードが遷移されるとモード共通処理は終了する。このモード共通処理が図27のステップS63において実行されたのであれば、モード共通処理終了により、処理は図27のステップS63に戻り、スタートモード処理が終了される。
以上のように、デパケタイズ処理部132は、SFFやMの値に基づいて、プレシンクトの先頭パケットや最終パケットを容易に識別することができる。また、Mにより最終パケットを識別することができるので、デパケタイズ処理部132は、容易にプレシンクト毎にモードを適宜遷移させることができる。これにより、デパケタイズ処理部132は、各プレシンクトに対して適切にデパケタイズ処理を行うことができる。さらに、SFFにより先頭パケットを識別することができるので、デパケタイズ処理部132は、最終パケットを確認しなくてもプレシンクトの更新を把握することができる。つまり、例えば、パケットロスが発生した場合、つまり、取得したパケットのシーケンス番号が前回取得したパケットのシーケンス番号と連続していない場合であっても、デパケタイズ処理部132は、そのパケットが新たなプレシンクトの先頭パケットであるならば、次のプレシンクトを待たずに、その新たなプレシンクトのパケットからペイロードの抽出を開始することができる。つまり、デパケタイズ処理部132は、不要な待機時間を低減させることができる。
もちろん、スタートモードだけでなく、プロセッシングモードやロスモードにおいてモード共通処理を実行する場合も、デパケタイズ処理部132は、待機時間を短縮することができるので、遅延時間の短縮を実現することができる。
また、ステップS83のように、デパケタイズ処理部132は、共通ヘッダ231を参照するだけで、容易に、復号不可能な不要なペイロードを復号部133に供給することを抑制することができる。これにより復号部133の復号処理の負荷を軽減させることができる。なお、ヘッダ情報は、復号処理に利用可能であるので、制御部254は、ヘッダ情報のみを転送させる。
次に、スタンバイモード処理の流れの例を図29のフローチャートを参照して説明する。このスタンバイモード処理は、次のプレシンクトの先頭パケットを待ち受けるモードの処理であり、制御モード遷移部253により制御モードがスタンバイモードに遷移されると、開始される。
スタンバイモード処理が開始されると、パケット取得部251は、ステップS111において、パケットを受信したか否かを判定し、受信したと判定するまで待機する。受信部131よりパケットが供給され、パケットを受信したと判定された場合、処理はステップS112に進む。
ステップS112において、ヘッダ情報解析部252は、RTPヘッダ221を参照し、シーケンス番号が前回受信したパケットと連続するか否かを判定する。シーケンス番号が前回受信したパケットと連続していない場合、パケットの受信に失敗している(パケットロスが発生している)ことを示す。シーケンス番号が前回受信したパケットと連続しており、パケットロスが発生していないと判定された場合、処理はステップS113に進む。
ステップS113乃至ステップS122の各処理は、図28を参照して説明したモード共通処理のステップS82およびステップS83、ステップS85乃至ステップS91、並びに、ステップS93の各処理と同様に実行される。
つまり、ステップS113の処理はステップS82に対応し、ステップS114の処理はステップS83に対応する。ただし、スタンバイモード処理の場合、既にスタンバイモードであるので、図28のステップS84に対応する処理は省略され、ステップS111に処理が進められる(図28においてスタンバイモードに遷移し、スタンバイモード処理が開始されるのと同等である)。
また、ステップS115乃至ステップS121は、それぞれ、図28のステップS85乃至ステップS91に対応する。ただし、スタンバイモード処理の場合、既にスタンバイモードであるので、ステップS121において「M=1」であると判定された場合、図28のステップS92に対応する処理は省略され、ステップS111に処理が進められる(図28においてスタンバイモードに遷移し、スタンバイモード処理が開始されるのと同等である)。
なお、ステップS121において、「M=1」でないと判定された場合、処理はステップS122に進む。このステップS122の処理は、図28のステップS93の処理に対応し、制御モード遷移部253が制御モードをプロセッシングモードに遷移させると、スタンバイモード処理は終了される。
また、ステップS112において、シーケンス番号が前回受信したパケットと連続しておらず、パケットロスが発生したと判定された場合、処理はステップS123に進む。
ステップS123において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「SFF=1」であるか否かを判定する。「SFF=1」であると判定された場合、処理はステップS113に戻り、それ以降の処理を繰り返す。復号処理はプレシンクト単位で行われるので、プレシンクト内においてパケットロスが発生していなければ、そのプレシンクトは復号可能である。つまり、「SFF=1」である場合、現在処理対象のパケットが属するプレシンクトではなく、過去のプレシンクトにおいてパケットロスが発生したことを示している。その上、スタンバイモードの場合、その過去のプレシンクトの符号化データの、復号部133による蓄積は終了している。従って、パケットロスが発生しても、新たに取得したパケットが新たなプレシンクトの先頭パケットであるならば、そのパケットロスは無視され、処理はステップS113に戻される。
ステップS123において、「SFF=1」でないと判定された場合、処理はステップS124に進む。この場合、パケットロスは、処理対象のパケットと同じプレシンクト内において発生している。従って、そのプレシンクトは復号することができないので、ペイロードの転送は中止される。つまり、ステップS124において、データ供給部256は、制御部254に制御されて、受信したパケットを、復号部133に転送せずに破棄する。
上述したように、スタンバイモードであるので、過去のプレシンクトの符号化データの、復号部133による蓄積は終了しており、新たなプレシンクトの符号化データはまだ蓄積されていない。従って、この場合、復号部133はデータを破棄する必要がないので、デパケタイズ処理部132は、復号部133にエラーを通知する必要は無い。
ステップS125において、制御部254は、制御モード遷移部253に制御されて、制御モードを、エラーが発生したプレシンクトにおいて次のプレシンクトのパケットを取得するまで待機するモードであるロスモードに遷移する。制御モードがロスモードに遷移されると、スタンバイモード処理は終了される。
以上のように、スタンバイモードにおいてデパケタイズ処理部132は、SFFやMの値に基づいて、プレシンクトの先頭パケットや最終パケットを容易に識別することができる。また、Mにより最終パケットを識別することができるので、デパケタイズ処理部132は、容易にプレシンクト毎にモードを適宜遷移させることができる。これにより、デパケタイズ処理部132は、各プレシンクトに対して適切にデパケタイズ処理を行うことができる。さらに、SFFにより先頭パケットを識別することができるので、デパケタイズ処理部132は、最終パケットを確認しなくてもプレシンクトの更新を把握することができる。つまり、例えば、パケットロスが発生した場合、つまり、取得したパケットのシーケンス番号が前回取得したパケットのシーケンス番号と連続していない場合であっても、デパケタイズ処理部132は、そのパケットが新たなプレシンクトの先頭パケットであるならば、次のプレシンクトを待たずに、その新たなプレシンクトのパケットからペイロードの抽出を開始することができる。つまり、デパケタイズ処理部132は、不要な待機時間を低減させることができる。
次に、プロセッシングモード処理の流れの例を図30のフローチャートを参照して説明する。このプロセッシングモード処理は、同じプレシンクトの後続のパケットを待ち受けるモードの処理であり、制御モード遷移部253により制御モードがプロセッシングモードに遷移されると、開始される。
プロセッシングモード処理が開始されると、パケット取得部251は、ステップS141において、パケットを受信したか否かを判定し、受信したと判定するまで待機する。受信部131よりパケットが供給され、パケットを受信したと判定された場合、処理はステップS142に進む。
ステップS142において、ヘッダ情報解析部252は、RTPヘッダ221を参照し、シーケンス番号が前回受信したパケットと連続するか否かを判定する。シーケンス番号が前回受信したパケットと連続しており、パケットロスが発生していないと判定された場合、処理はステップS143に進む。
ステップS143において、ヘッダ供給部255は、制御部254に制御されて、パケットより共通ヘッダ231を削除する。ステップS144において、データ供給部256は、制御部254に制御されて、残りのペイロードデータを復号部133へ転送する。ステップS145において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「M=1」であるか否かを判定し、「M=1」ではなくプレシンクトの最終パケットでないと判定された場合、同じプレシンクトに後続のパケットが存在するので、処理はステップS141に戻り、それ以降の処理が繰り返される。
つまり、ステップS141乃至ステップS145の処理が繰り返されながら、プレシンクトの各パケットよりペイロードが抽出されて復号部133に転送される。
ステップS145において、「M=1」であり、処理対象のパケットがプレシンクトの最終パケットであると判定された場合、処理はステップS146に進み、制御部254は、制御モード遷移部253に制御されて、制御モードをスタンバイモードに遷移する。制御モードがスタンバイモードに遷移されるとプロセッシングモード処理は終了される。
また、ステップS142において、シーケンス番号が前回受信したパケットと連続しておらず、パケットロスが発生したと判定された場合、処理はステップS147に進む。
この場合、そのプレシンクトのデータを復号部133において蓄積中であるので、ステップS147において、エラー通知部257は、制御部254に制御されて、転送エラーを復号部133に通知する。
エラー通知が終了すると、ヘッダ情報解析部252は、ステップS148において、共通ヘッダ231を参照し、「SFF=1」であるか否かを判定する。「SFF=1」であると判定された場合、処理はステップS149に進む。ステップS149において、制御部254は、図28のフローチャートを参照して説明したモード共通処理を実行する。この場合、モード共通処理が終了すると、処理は図30のステップS149に戻り、プロセッシングモード処理が終了される。
また、ステップS148において、「SFF=1」でないと判定された場合、処理はステップS150に進み、データ供給部256は、制御部254に制御されて受信したパケットを破棄する。ステップS151において、制御部254は、制御モード遷移部253に制御されて、制御モードをロスモードに遷移する。制御モードがロスモードに遷移されるとプロセッシングモード処理は終了される。
以上のように、プロセッシングモードにおいてデパケタイズ処理部132は、SFFやMの値に基づいて、プレシンクトの先頭パケットや最終パケットを容易に識別することができる。また、Mにより最終パケットを識別することができるので、デパケタイズ処理部132は、容易にプレシンクト毎にモードを適宜遷移させることができる。これにより、デパケタイズ処理部132は、各プレシンクトに対して適切にデパケタイズ処理を行うことができる。さらに、SFFにより先頭パケットを識別することができるので、デパケタイズ処理部132は、最終パケットを確認しなくてもプレシンクトの更新を把握することができる。
例えば、パケットロスが発生していない場合、デパケタイズ処理部132は、順次供給される各パケットよりペイロードを抽出し、Mの値に基づいて最終パケットを確認し、そのプレシンクトに対する処理が終了したと判定した場合、スタンバイモードに遷移する。
パケットロスが発生した場合、デパケタイズ処理部132は、復号部133にエラーを通知し、先頭パケットで無ければそのパケットを破棄し、次のプレシンクトのパケットを確認するまで待機するようにロスモードに遷移する。ただし、「SFF=1」であるとき、つまり、パケットロスを確認したときに取得したパケットが新たなプレシンクトの先頭パケットであれば、デパケタイズ処理部132は、モード共通処理を実行することにより、スタンバイモードやロスモードに遷移することなく、つまり、新たなプレシンクトのパケットを待たずに、そのプレシンクトからペイロード抽出を開始することができるので、ペイロード抽出の開始タイミングをより早くすることができ、遅延時間を低減させることができる。
次に、図31のフローチャートを参照してロスモード処理の流れの例を説明する。このロスモード処理は、同じプレシンクトにおいてパケットロスが発生したときに次のプレシンクトのパケットを受信するまで待機するモードの処理であり、制御モード遷移部253により制御モードがロスモードに遷移されると、開始される。
ロスモード処理が開始されると、パケット取得部251は、ステップS171において、パケットを受信したか否かを判定し、受信したと判定するまで待機する。受信部131よりパケットが供給され、パケットを受信したと判定された場合、処理はステップS172に進む。
ステップS172において、ヘッダ情報解析部252は、共通ヘッダ231を参照し、「SFF=1」であるか否かを判定する。「SFF=1」でなく、プレシンクトの先頭パケットでないと判定された場合、処理はステップS173に進み、ヘッダ情報解析部252は、今度は、「M=1」であるか否かを判定する。「M=1」でない、つまりプレシンクトの最終パケットで無いと判定された場合、処理は、ステップS171に戻りそれ以降の処理が繰り返される。
ステップS173において、「M=1」であると判定された場合、処理はステップS174に進み、制御部254は、制御モード遷移部253に制御されて制御モードをスタンバイモードに遷移する。制御モードがスタンバイモードに遷移されるとロスモード処理は終了される。
また、ステップS172において、「SFF=1」であると判定された場合、制御部254は、図28のフローチャートを参照して説明したモード共通処理を実行する。この場合、モード共通処理が終了すると、処理は図31のステップS175に戻り、ロスモード処理が終了される。
つまり、ロスモードにおいても、デパケタイズ処理部132は、SFFやMの値に基づいて、プレシンクトの先頭パケットや最終パケットを容易に識別することができる。また、Mにより最終パケットを識別することができるので、デパケタイズ処理部132は、容易にプレシンクト毎にモードを適宜遷移させることができる。これにより、デパケタイズ処理部132は、各プレシンクトに対して適切にデパケタイズ処理を行うことができる。さらに、SFFにより先頭パケットを識別することができるので、デパケタイズ処理部132は、最終パケットを確認しなくてもプレシンクトの更新を把握することができる。
ロスモードの場合、デパケタイズ処理部132は、パケットを取得しながら、基本的に待機し、Mの値に基づいて最終パケットを検出した場合、スタンバイモードに遷移し、次のプレシンクトの先頭パケットの取得に備える。また、SFFの値に基づいて先頭パケットを検出した場合、デパケタイズ処理部132は、モード共通処理を実行することによって、そのプレシンクトからペイロードの抽出を開始する。
このようにすることにより、デパケタイズ処理部132は、ペイロードの抽出の開始タイミングをより早くすることができ、遅延時間を低減させることができる。
以上のように、状況に応じて制御モードを切り替えながらデパケタイズ処理を行うことにより、デパケタイズ処理部132は、デパケタイズ用のバッファを設けて、プレシンクト毎にパケットを蓄積しなくても、供給されるパケットのヘッダ情報に基づいて順次適切に処理を行うことができ、容易かつ高速にデパケタイズ処理を行うことができる。また、パケットロスが発生した場合、デパケタイズ処理部132は、必要に応じてエラー通知を行うので復号部133は、不要な復号処理の実行を抑制し、復号処理の負荷を軽減させることができる。
さらに、IFの値により、デパケタイズ処理部132は、容易に、復号不可能な不要なペイロードを復号部133に供給することを抑制することができる。これにより復号部133の復号処理の負荷を軽減させることができる。
復号部133は、以上のようなデパケタイズ処理部132の処理に対応して、デパケタイズ処理部132より供給される符号化データの復号処理を行う。そのために、復号部133は、復号処理の実行を制御する復号制御処理を実行する。図32のフローチャートを参照して、復号制御処理の流れの例を説明する。この符号化制御処理は、符号化データの供給が開始されてから終了するまでの間実行される。
ステップS191において、データ取得部355は、デパケタイズ処理部132より供給される符号化データを取得する。ステップS192において、バッファ部361は、その符号化データを蓄積する。ステップS193において、制御情報取得部351は、制御情報を取得する。ステップS194において、復号制御部352は、制御情報取得部351が取得した制御情報に基づいて、データ取得部355が取得したデータがプレシンクトの先頭パケットのペイロードであるか否かを判定する。プレシンクトの先頭パケットのペイロードであると判定された場合、処理はステップS195に進む。ステップS195において、復号制御部352は、制御情報取得部351が取得した制御情報に基づいて、データ取得部355に取得されバッファ部361に蓄積されたデータが連続しているか否かを判定する。パケットロスが発生しておらず、データ取得部355に取得されバッファ部361に蓄積されたデータが連続していると判定された場合、処理は、ステップS191に戻り、次の符号化データに対して、ステップS191以降の処理が繰り返される。
また、ステップS195において、パケットロスが発生し、データが連続していないと判定された場合、処理はステップS196に進む。ステップS196において、復号制御部352は、エントロピ復号部362を制御し、補完処理を開始させる。エントロピ復号部362は、プレシンクト単位で復号処理を行うが、プレシンクトのデータが欠落した場合、他のプレシンクトのデータ等を用いて補完処理を行う。
従って、復号制御部352は、前回取得したパケットと連続していない先頭パケットを取得した場合、エントロピ復号部362を制御し、その1つ前のプレシンクトに対して補完処理を実行させる。補完処理が終了すると、処理はステップS197に進む。
ステップS197において、復号制御部352は、復号制御処理を終了するか否かを判定し、終了しないと判定された場合、処理はステップS191に戻り、それ以降の処理が繰り返される。また、ステップS197において、復号制御処理を終了すると判定された場合、復号制御処理が終了される。
また、ステップS194において、データ取得部355が取得したデータがプレシンクトの先頭パケットのペイロードでないと判定された場合、処理はステップS198に進み、復号制御部352は、データ取得部355が取得したデータがプレシンクトの最終パケットのペイロードであるか否かを判定する。プレシンクトの最終パケットのペイロードであると判定された場合、処理はステップS199に進み、復号制御部352は、エントロピ復号部362を制御して、バッファ部361に蓄積されている符号化データに対して、復号処理を開始させる。ステップS199の処理が終了されると、処理はステップS197に戻る。
また、ステップS198において、データ取得部355が取得したデータがプレシンクトの最終パケットのペイロードでないと判定された場合、処理はステップS197に戻る。
次に、図33のステップS199において開始される復号処理の流れの例を図35のフローチャートを参照して説明する。この復号処理は、図34の復号制御処理により制御され、プレシンクト単位で実行される。
復号処理が開始されると、エントロピ復号部362は、ステップS211において、バッファ部361に蓄積されている符号化データを取得し、ステップS212において、ライン毎に符号化データをエントロピ復号する。ステップS213において、バッファ部361は、その復号されて得られた係数データを保持する。ステップS214においてウェーブレット逆変換部363は、バッファ部361に1プレシンクト分の係数データが蓄積されたか否かを判定し、蓄積されていないと判定した場合、処理をステップS211に戻し、それ以降の処理を実行させ、バッファ部361に1プレシンクト分の係数データが蓄積されるまで待機する。
ステップS214においてバッファ部361に1プレシンクト分の係数データが蓄積されたと判定した場合、ウェーブレット逆変換部363は、処理をステップS215に進め、バッファ部361に保持されている係数データを1プレシンクト分読み出す。
そしてその読み出した係数データに対して、ウェーブレット逆変換部363は、ステップS216において、画面垂直方向に並ぶ係数データに対して合成フィルタリング処理を行う垂直合成フィルタリング処理を行い、ステップS217において、画面水平方向に並ぶ係数データに対して合成フィルタリング処理を行う水平合成フィルタリング処理を行い、ステップS218において、合成フィルタリング処理がレベル1(分解レベルの値が「1」のレベル)まで終了したか否か、すなわち、ウェーブレット変換前の状態まで逆変換したか否かを判定し、レベル1まで達していないと判定した場合、処理をステップS216に戻し、ステップS216およびステップS217のフィルタリング処理を繰り返す。
ステップS218において、レベル1まで逆変換処理が終了したと判定した場合、ウェーブレット逆変換部363は、処理をステップS219に進め、逆変換処理により得られた画像データを外部に出力する。
ステップS220において、エントロピ復号部362は、復号処理を終了するか否かを判定し、復号処理を終了しないと判定した場合、処理をステップS211に戻し、それ以降の処理を繰り返す。また、ステップS220において、プレシンクトが終了するなどして復号処理を終了すると判定した場合、エントロピ復号部362は、復号処理を終了する。
従来のウェーブレット逆変換の方法の場合、処理対象の分解レベルの全係数に対して、まず、画面水平方向に水平合成フィルタリング処理を行い、次に画面垂直方向に垂直合成フィルタリング処理を行っていた。つまり、各合成フィルタリング処理の度に、その合成フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、その時点の分解レベルの合成フィルタリング結果と、次の分解レベルの全係数を保持する必要があり、多大なメモリ容量を必要とすることになる(保持するデータ量が多い)。
また、この場合、ピクチャ(インタレース方式の場合フィールド)内において全てのウェーブレット逆変換が終了するまで画像データ出力が行われないので、入力から出力までの遅延時間が増大する。
これに対して、復号部133のウェーブレット逆変換部363の場合、上述したようにプレシンクト単位で垂直合成フィルタリング処理および水平合成フィルタリング処理をレベル1まで連続して行うので、従来の方法と比較して、一度に(同時期に)バッファリングする必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、レベル1まで合成フィルタリング処理(ウェーブレット逆変換処理)が行われることにより、ピクチャ内の全画像データが得られる前に(プレシンクト単位で)画像データを順次出力させることができ、従来の方法と比較して遅延時間を大幅に低減させることができる。
次に、復号部133において、図32の復号制御処理と並行して行われる、デパケタイズ処理部132からのエラー通知に対する処理であるエラー通知対応処理の流れの例を図34のフローチャートを参照して説明する。
図34において、エラー通知処理が開始されると、エラー通知取得部356は、ステップS241において、デパケタイズ処理部132よりエラー通知を取得したか否かを判定する。エラー通知を取得したと判定されるまで処理は待機する。ステップS241においてエラー通知を取得したと判定された場合、処理はステップS242に進む。ステップS242において、破棄処理部357は、バッファ部361に現在受信途中のプレシンクト(パケットロスが発生した最新のプレシンクトに属する符号化データ)が存在するか否かを判定する。
現在受信途中であるプレシンクトがバッファ部361に存在すると判定された場合、処理は、ステップS243に進む。ステップS243において、破棄処理部357は、バッファ部361に蓄積されている受信中のスライスを破棄する。ステップS243の処理が終了すると、処理は、ステップS244に進む。また、ステップS242において、現在受信途中であるスライスがバッファ部361に存在しないと判定された場合、ステップS243の処理は省略され、処理はステップS244に進む。
ステップS244において、破棄処理部357は、エラー通知対応処理を終了するか否かを判定する。デパケタイズ処理は続いており、エラー通知対応処理も終了しないと判定された場合、処理はステップS241に戻り、それ以降の処理を繰り返す。また、ステップS244において、エラー通知対応処理を終了すると判定された場合、エラー通知対応処理は終了される。
以上のように、復号部133は、デパケタイズ処理部132からのエラー通知に応じて、パケットロスが発生したスライスの符号化データを破棄するので、不要な復号処理を行わないようにすることができる。このように適切な復号処理を行うことができるので、復号部133は、復号処理を容易かつ高速に行うことができ、復号処理の負荷を低減し、回路規模やコストを低減させることができる。
デパケタイズ処理部132により行われるエラー通知の様子の例を図35に示す。
図35において、デパケタイズ処理部132と復号部133は、6本の信号線で接続されているものとする。デパケタイズ処理部132は、受信したパケット1からRTPヘッダなどを削除して抽出した符号化データ(Data1)を復号部133に供給する。このとき、この符号化データ(Data1)が新たなスライスの先頭であった場合、デパケタイズ処理部132の制御信号供給部258は、制御部254に制御されてスタート情報(START)を通知する。
次に届いたパケットがパケット5であった場合、パケットロスがあったと判断される。
このとき、復号部133にはプレシンクトの一部であるData1が既に伝送されているため、デパケタイズ処理部132のエラー通知部257は、制御部254に制御されてエラー通知を行う。また、パケット5は「SFF=1」であったため、デパケタイズ処理部132の制御信号供給部258は、制御部254に制御されて、スタート情報(START)を通知する。
なお、以上においては、パケタイズ処理部122は、プレシンクトのデータサイズがパケットサイズより大きい場合、データを分割して複数のパケットを生成し、そうでない場合、1つのパケットを生成するように説明したが、プレシンクトのデータサイズがパケットサイズに比べて小さい場合、複数のプレシンクトのデータを1つのパケットとするようにしてもよい。
その場合、ペイロードヘッダの構成は、例えば、図36に示されるように、ヘッダ情報およびペイロードが順次並べられる。図36の例の場合、1つ目のプレシンクトのデータである共通ヘッダ231乃至ペイロード237の後に、2つ目のプレシンクトのデータであるセグメント情報431、量子化パラメータ情報432、サイズ情報433、フォーマット情報434、ピクチャ情報435、カラー情報436、及びペイロード437が構成され、その後には、3つ目以降のプレシンクトのデータが並ぶ。
セグメント情報431は、2つ目のプレシンクトに対する共通ヘッダであり、図37に示されるように、基本的に共通ヘッダ231と同様の情報が含まれる。つまり、セグメント情報431は、プレシンクトヘッダ171に基づいて作成される。なお、自分自身よりも後に他のプレシンクトのデータが存在する場合、共通ヘッダ231(セグメント情報431も同様)において、NFの値が「1」に設定される。
この場合のパケタイズ処理の流れの例を図38のフローチャートを参照して説明する。
図38に示されるように、この場合のパケタイズ処理も基本的に図26を参照して説明した場合と同様に実行される。ステップS301乃至ステップS312の各処理は、図26のステップS31乃至ステップS42の各処理と同様に実行され、ステップS315乃至ステップS317の各処理は、図26のステップS43乃至ステップS45の各処理と同様に実行される。
ただし、ステップS310において、プレシンクトのサイズがパケットサイズより大きく無いと判定された場合、パケタイズ処理部122のサイズ確認部207は、同じパケットに新たなペイロードを追加可能であるか否かを判定する。パケットサイズに余裕があり、ペイロード追加可能と判定された場合、処理はステップS314に進み、データ取得部201は、プレシンクトヘッダを取得したか否かを判定し、取得したと判定するまで待機する。プレシンクトヘッダを取得したと判定した場合、処理はステップS303に戻り、パケットに追加するプレシンクトに対してそれ以降の処理が繰り返される。つまり、ステップS303乃至ステップS310、並びに、ステップS313およびステップS314のループ処理が繰り返されることにより、符号化データの合計のデータサイズがパケットサイズより大きくなるまで、同じパケットにプレシンクトが順次追加される。
なお、ステップS313において、パケットにペイロード追加不可能であると判定された場合、処理は、ステップS313に戻り、それ以降の処理が実行される。つまりこの場合、1つのプレシンクトの符号化データで1つのパケットが生成される。
以上のようにパケタイズ処理を行うことにより、1つのパケットに複数のプレシンクトのデータを含めることができる。
以上のような図1に示される伝送システム100の各部により実行される各種処理は、例えば、図39に示されるように、適宜、並列的に実行される。
図39は、図1に示される伝送システム100の各部により実行される処理の各要素の並列動作の例を概略的に示す図である。この図39は、上述した図6と対応するものである。画像データの入力In−1(図39のA)に対して、ウェーブレット変換部150(図2)で1回目のウェーブレット変換WT−1が施される(図39のB)。図5を参照し説明したように、この1回目のウェーブレット変換WT−1は、最初の3ラインが入力された時点で開始され、係数C1が生成される。すなわち、画像データIn−1の入力からウェーブレット変換WT−1が開始されるまで、3ライン分の遅延が生じる。
生成された係数データは、係数並び替え用バッファ部152(図2)に格納される。以降、入力された画像データに対してウェーブレット変換が施され、1回目の処理が終了すると、そのまま2回目のウェーブレット変換WT−2に処理が移行する。
2回目のウェーブレット変換WT−2のための画像データIn−2の入力と、当該2回目のウェーブレット変換WT−2の処理と並列的に、係数並び替え部153(図2)により3個の、係数C1、係数C4、および係数C5の並び替えOrd−1が実行される(図39のC)。
なお、ウェーブレット変換WT−1の終了から並び替えOrd−1が開始されるまでの遅延は、例えば、並び替え処理を係数並び替え部153に指示する制御信号の伝達に伴う遅延や、制御信号に対する係数並び替え部153の処理開始に要する遅延、プログラム処理に要する遅延といった、装置やシステム構成に基づく遅延であって、符号化処理における本質的な遅延ではない。
係数データは、並び替えが終了した順に係数並び替え用バッファ部152から読み出され、エントロピ符号化部155(図2)に供給され、エントロピ符号化EC−1が行われる(図39のD)。このエントロピ符号化EC−1は、3個の、係数C1、係数C4、および係数C5の、全ての並び替えの終了を待たずに開始することができる。例えば、最初に出力される係数C5による1ラインの並び替えが終了した時点で、当該係数C5に対するエントロピ符号化を開始することができる。この場合、並び替えOrd−1の処理開始からエントロピ符号化EC−1の処理開始までの遅延は、1ライン分となる。
エントロピ符号化部155によるエントロピ符号化EC−1が終了した符号化データは、所定の信号処理が施された後、回線110を介して受信装置103に伝送される(図39のE)。このとき、符号化データは、パケット化されて伝送される。
送信装置102の符号化部121に対して、1回目の処理による7ライン分の画像データ入力に続けて、画面上の下端のラインまで画像データが順次、入力される。符号化部121では、画像データの入力In−n(nは2以上)に伴い、上述したようにして、4ライン毎にウェーブレット変換WT−n、並び替えOrd−nおよびエントロピ符号化EC−nを行う。符号化部121における最後の回の処理に対する並び替えOrdおよびエントロピ符号化ECは、6ラインに対して行われる。これらの処理は、符号化部121において、図39のA乃至図39のDに例示されるように、並列的に行われる。
符号化部121によるエントロピ符号化EC−1により符号化された符号化データのパケットは、受信装置103に伝送され、デパケタイズ処理等が施された後、復号部133に供給される。復号部133のエントロピ復号部362は、供給された、エントロピ符号化EC−1により符号化された符号化データに対して、順次、エントロピ符号の復号iEC−1を行い、係数データを復元する(図39のF)。復元された係数データは、順次、バッファ部361に格納される。ウェーブレット逆変換部363は、バッファ部361にウェーブレット逆変換が行えるだけ係数データが格納されたら、バッファ部361から係数データを読み出して、読み出された係数データを用いてウェーブレット逆変換iWT−1を行う(図39のG)。
図5を参照して説明したように、ウェーブレット逆変換部363によるウェーブレット逆変換iWT−1は、係数C4および係数C5がバッファ部361に格納された時点で開始することができる。したがって、エントロピ復号部362による復号iEC−1が開始されてからウェーブレット逆変換部363によるウェーブレット逆変換iWT−1が開始されるまでの遅延は、2ライン分となる。
ウェーブレット逆変換部363において、1回目のウェーブレット変換による3ライン分のウェーブレット逆変換iWT−1が終了すると、ウェーブレット逆変換iWT−1で生成された画像データの出力Out−1が行われる(図39のH)。出力Out−1では、図5および図6を用いて説明したように、第1ライン目の画像データが出力される。
復号部133に対して、符号化部121における1回目の処理による3ライン分の符号化された係数データの入力に続けて、エントロピ符号化EC−n(nは2以上)により符号化された係数データが順次、入力される。復号部133では、入力された係数データに対して、上述したようにして、4ライン毎にエントロピ復号iEC−nおよびウェーブレット逆変換iWT−nを行い、ウェーブレット逆変換iWT−nにより復元された画像データの出力Out−nを順次、行う。符号化部121の最後の回に対応するエントロピ復号iECおよびウェーブレット逆変換iWTは、6ラインに対して行われ、出力Outは、8ラインが出力される。これらの処理は、復号部133において、図39のF乃至図39のHに例示されるように、並列的に行われる。
上述のようにして、画面上部から下部の方向に順番に、符号化部121および復号部133における各処理を並列的に行うことで、画像圧縮処理および画像復号処理をより低遅延で行うことが可能となる。
図39を参照して、5×3フィルタを用いて分解レベル=2までウェーブレット変換を行った場合の、画像入力から画像出力までの遅延時間を計算してみる。第1ライン目の画像データが符号化部121に入力されてから、この第1ライン目の画像データが復号部133から出力されるまでの遅延時間は、下記の各要素の総和となる。なお、ここでは、伝送路における遅延や、装置各部の実際の処理タイミングに伴う遅延などの、システムの構成により異なる遅延は、除外している。
(1)最初のライン入力から7ライン分のウェーブレット変換WT−1が終了するまでの遅延D_WT
(2)3ライン分の計数並び替えOrd−1に伴う時間D_Ord
(3)3ライン分のエントロピ符号化EC−1に伴う時間D_EC
(4)3ライン分のエントロピ復号iEC−1に伴う時間D_iEC
(5)3ライン分のウェーブレット逆変換iWT−1に伴う時間D_iWT
図39を参照して、上述の各要素による遅延の計算を試みる。(1)の遅延D_WTは、10ライン分の時間である。(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTは、それぞれ3ライン分の時間である。また、符号化部121において、並び替えOrd−1が開始されてから1ライン後には、エントロピ符号化EC−1を開始することができる。同様に、復号部133において、エントロピ復号iEC−1が開始されてから2ライン後には、ウェーブレット逆変換iWT−1を開始することができる。また、エントロピ復号iEC−1は、エントロピ符号化EC−1で1ライン分の符号化が終了した時点で処理を開始することができる。
したがって、この図39の例では、符号化部121に第1ライン目の画像データが入力されてから、復号部133から当該第1ライン目の画像データが出力されるまでの遅延時間は、10+1+1+2+3=17ライン分となる。
遅延時間について、より具体的な例を挙げて考察する。入力される画像データがHDTV(High Definition Television)のインタレースビデオ信号の場合、例えば1920画素×1080ラインの解像度で1フレームが構成され、1フィールドは、1920画素×540ラインとなる。したがって、フレーム周波数を30Hzとした場合、1フィールドの540ラインが16.67msec(=1sec/60フィールド)の時間に、符号化部121に入力されることになる。
したがって、7ライン分の画像データの入力に伴う遅延時間は、0.216msec(=16.67msec×7/540ライン)であり、例えば1フィールドの更新時間に対して非常に短い時間となる。また、上述した(1)の遅延D_WT、(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTの総和についても、処理対象のライン数が少ないため、遅延時間が非常に短縮される。各処理を行う要素をハードウェア化すれば、処理時間をさらに短縮することも可能である。
ここで、SFFおよびMのフラグ情報について説明する。
上述したように伝送システム100においては、遅延時間の増大に対する許容度が低く、少しでも効率よくデータを伝送し、効率よく必要な処理を行うことが求められる。
従来においても、所定のデータ単位で符号化や復号を行うシステムは存在する。図1の伝送システム100のように、符号化データをパケット化して伝送する場合、そのデータ単位の符号化データを複数に分割してそれぞれをパケット化して伝送するものもある。ただし、従来のシステムの場合、遅延時間に対する許容度は大きいので、デパケタイズ処理では、そのデータ単位分のパケットを蓄積し、データ単位毎にデパケタイズ処理が行われる。このようにすることにより、データ単位分揃った符号化データのみを復号部に供給し復号させることができる。
しかしながら、この方法では、デパケタイズ処理部においても符号化部においてもバッファリングする必要が生じるので、遅延時間の低減が求められる伝送システム100においては望ましくない。
そこで、デパケタイズ処理部132は、上述したように、伝送される符号化データが各部においてその供給順に処理が可能であることを利用して、受信したパケットよりペイロードデータを順次抽出し、蓄積せずに復号部133に供給する。復号部133は、順次供給される符号化データをプレシンクト分蓄積する毎に復号処理を開始する。これにより、符号化データのバッファリングの回数を低減させることができるので、伝送システム100は、遅延時間をより短縮させることができる。
SFFおよびMは、プレシンクトの先頭または終端を示すフラグ情報であり、デパケタイズ処理部132は、このフラグ情報に基づいてプレシンクトの先頭や終端を検出することができ、その旨を復号部133に通知することができる。復号部133は、そのデパケタイズ処理部132からの通知に基づいて、プレシンクトの切れ目を把握し、復号処理をプレシンクト単位で開始することができる。
これだけであればプレシンクトの終端を示すMだけでも十分である。仮に、プレシンクトを複数に分割したパケットと分割していないパケットが混在するのであれば、分割したことを示すフラグ情報があれば、それらのパケットの識別は可能である。
しかしながら、実際には受信部131がパケットの受信に失敗する(ロスする)ことも考えられる。このようにパケットロスが発生した場合、デパケタイズ処理部132は、パケットのバッファリングを行わないため、通常時と処理を変える必要がある。例えば、パケットロスが発生すると、伝送システム100の場合、そのパケットを送信装置102に再送させる時間が確保できないので、そのプレシンクトの符号化データは揃わないことになる。つまり、パケットロスの発生により復号部133は、そのプレシンクトに対する復号処理を実行することができなくなる。
従って、例えばプレシンクトの途中のパケットでロスが発生した場合、復号部133には、そのプレシンクトのそれまでの符号化データが蓄積されていることも考えられる。このような場合、デパケタイズ処理部132は、復号部133にパケットロスの発生を通知し、その蓄積している、ロスされたパケットの符号化データと同じプレシンクトの符号化データを破棄させる。これにより、復号部133は、そのプレシンクトに対して不要な復号処理(失敗する復号処理)の実行を回避することができ、負荷を軽減させることができる。
また、一度パケットロスが発生すると、そのプレシンクトのそれ以降の符号化データは不要になる。従って、デパケタイズ処理部132は、次以降のプレシンクトになるまで、パケットを取得しても、符号化データを復号部133に供給しない。そして新たなプレシンクトのパケットを取得すると、デパケタイズ処理部132は、符号化データの供給を再開する。
このようにデパケタイズ処理部132は、その状況に応じて、制御モードを変更し、適宜適切な処理を行う。そのために、デパケタイズ処理部132は、SFFやMを参照し、プレシンクトの先頭や終端を検出する。このとき、終端を示すMしかないと、プレシンクトの終端を検出するまで、デパケタイズ処理部132は、プレシンクトが変わったと判定することができなくなる。例えば、プレシンクトの最終パケットをロスした場合、デパケタイズ処理部132は、さらに次の新たなプレシンクトを待たなければならなくなり、遅延時間が増大してしまうだけでなく、復号部133において復号処理を行うことができず、復元された画像の画質が劣化する恐れがある。
これに対して、SFFの値を参照し、先頭パケットを検出することにより、デパケタイズ処理部132は、復号部133へのデータを再開させる等、不要な待機時間を低減させるだけでなく、例えば、復号部133に符号化データだけでなくヘッダ情報も供給したり、パケットロスの発生を復号部133に通知するエラー通知を省略したり、パケットロスが発生しても復号部133への符号化データの供給を継続させたりするなど、先頭パケットに対してのみ例外的な処理を行うこともできる。
このようにSFFおよびMのフラグ情報によりデパケタイズ処理部132は適切に処理を行うことができ、遅延時間をより短縮させることができる。
また、デパケタイズ処理部132は、このSFFやMに基づいて、供給する符号化データがプレシンクトの先頭であることや終端であることを復号部133に通知したりする。これにより、復号部133は、プレシンクトの先頭と終端を容易に把握することができるので、例えば、プレシンクトの終端が供給されたのであれば、復号処理を開始することができるし、連続していない新たなプレシンクトの先頭が供給されたのであれば、その前のロスしたプレシンクトに対して補完処理を行うことができる。つまり、復号部133は、デパケタイズ処理部132からの通知に基づいて、このような制御を容易かつ高速に行うことができる。
以上のように、SFFやMは、単にデパケタイズ処理や復号処理の開始タイミングを通知するためのフラグ情報ではなく、デパケタイズ処理部132および復号部133に、符号化データを復号して出力するまでの遅延時間をより短縮させるように、適切なタイミングで適切な処理を選択させ実行させるようにするためのフラグ情報である。
ところで、図2においては、係数の並び替えをウェーブレット変換の直後(エントロピ符号化の前)に行うように説明したが、符号化データが低域から高域の順に復号部133のウェーブレット逆変換部363に供給されればよく(つまり、低域のサブバンドに属する係数データを符号化して得られる符号化データから、高域のサブバンドに属する係数データを符号化して得られる符号化データの順に供給されればよく)、並び替えのタイミングは、ウェーブレット変換の直後以外であってもよい。
例えば、エントロピ符号化によって得られる符号化データの順序を並び替えるようにしてもよい。図40は、その場合の符号化部の構成例を示すブロック図である。
図40の場合、符号化部500は、図2の符号化部121の場合と同様に、ウェーブレット変換部150、途中計算用バッファ部151、エントロピ符号化部155、およびレート制御部154を有するが、図2の係数並び替え用バッファ部152および係数並び替え部153の代わりに、符号並び替え用バッファ部501および符号並び替え部502を有する。
符号並び替え用バッファ部501は、エントロピ符号化部155において符号化された符号化データの出力順を並び替えるためのバッファであり、符号並び替え部502は、その符号並び替え用バッファ部501に蓄積される符号化データを所定の順に読み出すことにより、符号化データの出力順の並び替えを行う。
つまり、図40の場合、ウェーブレット変換部150より出力されるウェーブレット係数は、エントロピ符号化部155に供給されて符号化される。その符号化により得られた各符号化データが、順次、符号並び替え用バッファ部501に供給され、並び替えのために一時的に蓄積される。
符号並び替え部502は、符号並び替え用バッファ部501に書き込まれた符号化データを、所望の順序で読み出し、符号化部500の外部に出力する。
図40の例の場合、エントロピ符号化部155は、ウェーブレット変換部150による出力順に、各係数データの符号化を行い、得られた符号化データを符号並び替え用バッファ部501に書き込む。つまり、符号並び替え用バッファ部501には、符号化データが、ウェーブレット変換部150によるウェーブレット係数の出力順に対応する順序で格納される。通常の場合、1つのプレシンクトに属する係数データ同士を比較すると、ウェーブレット変換部150は、より高域のサブバンドに属する係数データほど先に出力し、より低域のサブバンドに属する係数データほど後に出力する。つまり、符号並び替え用バッファ部501には、各符号化データが、高域のサブバンドに属する係数データをエントロピ符号化して得られた符号化データから、低域のサブバンドに属する係数データをエントロピ符号化して得られた符号化データに向かう順に記憶される。
これに対して、符号並び替え部502は、この順序とは独立して、任意の順序でその符号並び替え用バッファ部501に蓄積された各符号化データを読み出すことにより、符号データの並び替えを行う。
例えば、符号並び替え部502は、低域のサブバンドに属する係数データを符号化して得られた符号化データほど優先的に読み出し、最後に、最も高域のサブバンドに属する係数データを符号化して得られた符号化データを読み出す。このように、符号化データを低域から高域に向かって読み出すことにより、符号並び替え部502は、復号部133が、取得した順で各符号化データを復号することができるようにし、復号部133による復号処理おいて生じる遅延時間を低減させるようにすることができる。
符号並び替え部502は、符号並び替え用バッファ部501に蓄積されている符号化データを読み出し、それを符号化部500の外部に出力する。
なお、図40に示される符号化部500で符号化され出力されたデータは、図24を用いて既に説明した復号部133により、図2の符号化部121より出力される符号化データの場合と同様に復号することができる。
また、並び替えの処理を行うタイミングは、上述した以外であってもよい。例えば、図41において一例が示されるように、符号化部において行うようにしてもよいし、図42において一例が示されるように、復号部において行うようにしてもよい。
ウェーブレット変換で生成された係数データを並び替える処理では、係数並び替え用バッファの記憶容量として比較的大容量が必要となると共に、係数並び替えの処理自体にも、高い処理能力が要求される。この場合でも、符号化装置の処理能力がある程度以上高い場合には何ら問題は生じない。
ここで、携帯電話端末やPDA(Personal Digital Assistant)といった所謂モバイル端末などの、比較的処理能力の低い機器に符号化装置が搭載される場合について考える。例えば、近年では、携帯電話端末に対して撮像機能を付加した製品が広く普及している(カメラ機能付き携帯電話端末と呼ぶ)。このようなカメラ機能付き携帯電話端末で撮像された画像データをウェーブレット変換およびエントロピ符号化により圧縮符号化し、無線あるいは有線通信を介して伝送することが考えられる。
このような例えばモバイル端末は、CPU(Central Processing Unit)の処理能力も限られ、また、メモリ容量にもある程度の上限がある。そのため、上述したような係数並び替えに伴う処理の負荷などは、無視できない問題となる。
そこで、図42に一例が示されるように、並び替え処理を復号部に組み入れることで、符号化部の負荷が軽くなり、符号化部をモバイル端末などの比較的処理能力が低い機器に搭載することが可能となる。
図43は、その場合の符号化部の一例の構成を示すブロック図である。なお、この図43において、上述の図2と共通する部分には同一の符号を付して、詳細な説明を省略する。
この図43に示される符号化部510の構成は、上述の図2で示した符号化部121の構成に対して係数並び替え部153および係数並び替え用バッファ部152を除去した構成となっている。すなわち、符号化部510は、符号化部121と同様の、ウェーブレット変換部150、途中計算用バッファ部151、レート制御部154、およびエントロピ符号化部155を有している。
入力された画像データは、途中計算用バッファ部151に一時的に溜め込まれる。ウェーブレット変換部150は、途中計算用バッファ部151に溜め込まれた画像データに対してウェーブレット変換を施し、生成された係数データを、係数データの生成順に順次、エントロピ符号化部155に供給する。すなわち、エントロピ符号化部155に対して、ウェーブレット変換の順序に従い高域成分から低域成分の順に、生成された係数データが供給される。エントロピ符号化部155は、供給された係数に対して、レート制御部154により出力データのビットレートを制御されながらエントロピ符号化を施す。エントロピ符号化部155から、ウェーブレット変換により生成された係数データがエントロピ符号化された符号化データが出力される。
図44は、この符号化部510に対応する復号装置の一例の構成を示すブロック図である。なお、この図44において、上述の図24と共通する部分には同一の符号を付し、詳細な説明を省略する。
図44に示されるように、この場合の復号部520は、図24の復号部133と同様に、制御情報取得部351、復号制御部352、復号処理実行部353、ヘッダ取得部354、データ取得部355、エラー通知取得部356、および破棄処理部357を有するが、復号処理実行部353は、さらに、係数並び替え用バッファ部521を有する。
図43で説明した符号化部510のエントロピ符号化部155から出力された符号化データは、図44の復号部520においてバッファ部361を介してエントロピ復号部362に供給され、エントロピ符号を復号され係数データとされる。この係数データは、バッファ部361を介して係数並び替え用バッファ部521に格納される。ウェーブレット逆変換部363は、係数並び替え用バッファ部521に係数データの並び替えが可能となるまで係数データが蓄積されると、係数並び替え用バッファ部521に格納された係数データを、低域成分から高域成分の順に並び替えて読み出し、読み出された順に係数データを用いてウェーブレット逆変換処理を行う。5×3フィルタを用いる場合は、上述の図42で示したようになる。
すなわち、ウェーブレット逆変換部363は、例えば1フレームの先頭からの処理であれば、係数並び替え用バッファ部521にエントロピ符号の復号がなされた係数C1、係数C4、および係数C5が格納された時点で、係数並び替え用バッファ部521から係数データを読み出し、ウェーブレット逆変換処理を行う。ウェーブレット逆変換部363でウェーブレット逆変換を施されたデータは、順次、出力画像データとして出力される。
なお、この場合でも、図39を用いて既に説明したように、符号化部510における各要素の処理と、伝送路に対する符号化データの伝送と、復号部520における各要素の処理とが並列的に実行される。
以上のように、本発明は、多様な形態に適用することができ、容易に多様な用途に応用することができる(すなわち汎用性が高い)ことも大きな効果である。
ところで、上述したように、映像や音声のデータを伝送するデジタルビデオ通信において、通信過程で伝送誤りが発生し、再生品質に影響を与えることがしばしば起こる。
これら伝送誤りによる影響は、何らかの方法で軽減させることが望ましいが、その方法として、例えば、誤ったデータそのものの復元を試みる方法(データを修復する方法)がある。しかしながら、この方法の場合、修復が成功すれば完全な画像を再現することができるものの、データを復元するための時間が必要になったり、エラー修復のために実効レートが落ちたりするなど、遅延時間が増大する恐れがある。
これに対して、誤ったデータはそのままで、直前のエラーが無い画像をそのまま表示したり、前後の画からエラー部分を推定するなどしてデコード後のエラーをなるべく目立たなくする方法(エラーを隠蔽する方法)がある。
このエラーを隠蔽する方法の場合、完全な画像を再生することはできないが、エラーが発生したデータを、前後のフレーム等の他のデータで置き換えるだけであるので、データ修復の時間を待つ必要が無い。そのため、より低遅延に処理することができる。しかしながら、このようなデータの置き換えは、ピクチャ(フレームまたはフィールド)単位か、それよりも荒い粒度で行う必要がある。
例えば、ピクチャ(フレームまたはフィールド)の一部分において発生したエラーに対して、その部分だけを前後のピクチャに置き換えると、その部分の絵柄が他の部分の絵柄と一致しなくなり、ピクチャ全体で画像が成立しなくなってしまう恐れがあるので、ピクチャ全体を(または複数のピクチャに渡って)置き換える必要がある。そのため、このようなデータの置き換えのために、1ピクチャ分以上の遅延が必要になり、データ伝送のさらなる低遅延化を実現することが困難になる。
そこで、遅延時間の増大を抑制しながら、伝送誤りによる影響を軽減させる方法を以下に説明する。
図45は、本発明を適用した伝送システムの他の構成例を示す図である。
図45に示される伝送システム600は、図1に示される伝送システム100と基本的に同様のシステムであり、撮像装置101が生成した画像データを送信装置602が圧縮符号化し、パケット化して送信し、回線110を介して伝送されるそのパケットを、受信装置603が受信してデパケタイズして復号し、表示装置104が得られた画像データの画像を表示するデータ伝送システムである。
送信装置602および受信装置603のより詳細な構成例を図46に示す。
図46に示されるように、送信装置602は、符号化部121、パケタイズ処理部122、および送信部123の他に、解析部621、記憶部622、および隠蔽用ヘッダ生成部623を有する。
解析部621は、入力される画像データに対して、エラー隠蔽のための解析を行う。なお、エラー隠蔽とは、データ伝送時に発生する伝送誤りを隠蔽することである。記憶部622は、例えばハードディスクや半導体メモリ等の記憶媒体を有し、入力される画像データを1ピクチャ分以上必要な程度保持する。解析部621は、入力された画像データと、記憶部622より読み出した1つ前のピクチャの画像データとを比較する。なお、解析部621は、どの様なデータ単位で解析を行うことも可能であるが、ここでは遅延低減のために、プレシンクト(ラインブロック)単位で処理を行うものとする。つまり、解析部621は、連続する2つのピクチャ(フレームまたはフィールド)間で、互いに同じ位置のプレシンクトの画像を比較する。解析部621は、その比較結果を解析結果として隠蔽用ヘッダ生成部623に供給する。
隠蔽用ヘッダ生成部623は、その解析結果に基づいて、プレシンクトのエラーの隠蔽方法を示す隠蔽情報である隠蔽用ヘッダを生成する。より具体的に説明すると、隠蔽用ヘッダ生成部623は、受信装置603によるエラー隠蔽処理の際に、エラーが発生したプレシンクトに置き換え可能なプレシンクトを示す情報(どのピクチャのどのプレシンクトのデータなら置き換え可能かを示す情報)を含むヘッダ情報(隠蔽用ヘッダ)を生成し、それをパケタイズ処理部122に供給する。
パケタイズ処理部122は、符号化部121より供給される符号化データと隠蔽用ヘッダ生成部623より供給される隠蔽用ヘッダから伝送用のパケットを作成する(パケット化する)つまり、パケタイズ処理部122は、符号化データに隠蔽用ヘッダを付加(多重化)してパケット化する。このように生成されたパケットは、送信部123により受信装置603に送信される。
また、図46に示されるように、受信装置603は、受信部131、デパケタイズ処理部132、および復号部133の他に、ロス解析部631および記憶部632を有する。
送信装置602より送信されたパケットは、受信部131により受信され、デパケタイズ処理部132によりデパケタイズされて符号化データが抽出される。抽出された符号化データは、ロス解析部631に供給される。また、このとき、デパケタイズ処理部132は、符号化データとともに、隠蔽用ヘッダも抽出し、ロス解析部631に供給する。
ロス解析部631は、隠蔽用ヘッダに基づいて、記憶部632に記憶されている符号化データを適宜利用しながら、伝送誤りの発生に対してエラー隠蔽を行う。なお、ロス解析部631は、どの様なデータ単位で解析を行うことも可能であるが、ここでは遅延低減のために、プレシンクト単位で処理を行うものとする。
記憶部632は、例えば、ハードディスクや半導体メモリ等の記憶媒体を有し、過去に伝送された符号化データ(過去の符号化データ)を必要なだけ保持している。ロス解析部631は、隠蔽用ヘッダを参照して、データの置き換えに使用可能な過去の符号化データ(つまり、どのピクチャのどのプレシンクトのデータを用いて置き換えるか)を特定する。そして、ロス解析部631は、その特定した符号化データを記憶部632より読みだし、伝送誤りが発生したプレシンクトを、そのデータで置き換える。
復号部133は、ロス解析部631より供給されるエラー隠蔽処理後の符号化データを復号し、ベースバンドの画像データを出力する。
次に、隠蔽用ヘッダについて説明する。図47は、隠蔽用ヘッダの構成例を説明する図である。図47に示されるように、隠蔽用ヘッダ640は、32ビットの情報であり、ピクチャID641、プレシンクトID642、置き換え先頭ピクチャID643、RF(Replacement Flag)644、SF(Slide Flag)645、および置き換え先頭プレシンクトID646を含む。
ピクチャID641は、動画像データ全体において現在の(処理対象の)ピクチャを識別する8ビットの識別情報である。プレシンクトID642は、ピクチャ内において現在の(処理対象の)プレシンクトを識別する8ビットの識別情報である。置き換え先頭ピクチャID643は、それぞれが現在の(処理対象の)プレシンクトに置き換え可能なプレシンクトを有し、現在の(処理対象の)ピクチャまで時間方向に連続するピクチャ群の先頭のピクチャを示す8ビットの識別情報である。つまり、置き換え先頭ピクチャID643は、現在の(処理対象の)プレシンクトを、どのピクチャまで遡って置き換え可能であるかを示す情報である。この置き換え先頭ピクチャID643には、動画像データ全体においてピクチャを識別する識別情報(ピクチャID641と同種のID)がセットされる。
RF644は、1ビットのフラグ情報であり、現在の(処理対象の)プレシンクトを、置き換え先頭ピクチャID643より後のピクチャのデータで置き換え可能か否かを示す。当然、置き換え先頭ピクチャID643を参照することにより、過去のピクチャを用いて置き換え可能であるか否かを判定することも可能であるが、RF644を用いる方が、判定が容易になる。
SF645は、1ビットのフラグ情報であり、現在の(処理対象の)プレシンクトを、同一ピクチャの過去のプレシンクトのデータで置き換えが可能かを示すビットである。置き換え先頭プレシンクトID646は、現在の(処理対象の)ピクチャ内において、現在の(処理対象の)プレシンクトまで空間方向に連続する、現在の(処理対象の)プレシンクトに置き換え可能なプレシンクト群の先頭のプレシンクトを示す6ビットの識別情報である。つまり、置き換え先頭プレシンクトID646は、現在の(処理対象の)プレシンクトを、どのプレシンクトまで遡って置き換え可能であるかを示す情報である。
この置き換え先頭プレシンクトID646には、ピクチャ内において現在の(処理対象の)プレシンクトを識別する識別情報(プレシンクトID642と同種のID)が6ビットに圧縮されてセットされる。
なお、この隠蔽用ヘッダ640のビット長は任意である。従って、置き換え先頭プレシンクトID646のビット長をプレシンクトID642と同じビット長としてもよい。また、上述した各情報のビット長も任意である。
以上のように、隠蔽用ヘッダ640には、現在の(処理対象の)プレシンクトを置き換え可能なデータの範囲を示す情報が含まれる。ロス解析部631は、この情報に基づいて、その範囲を把握し、記憶部632に保持されている、その範囲に含まれる符号化データを用いてデータの置き換えを行う。
図48を参照して、隠蔽用ヘッダ640の各情報についてより具体的に説明する。図48は、送信装置602より受信装置603に伝送される画像データの様子の例を示す図である。
図48に示されるピクチャ651乃至ピクチャ653は、送信装置602より受信装置603に伝送される画像データの一部のピクチャを模式的に表わしたものである。ピクチャ651乃至ピクチャ653は、この順で時間方向に連続する3ピクチャである。つまり、この3ピクチャの中で、ピクチャ651が最も時間的に前の(古い)ピクチャであり、ピクチャ653が時間的に最も後の(新しい)ピクチャである。
ここでは、説明の簡略化のため、ピクチャ651乃至ピクチャ653のそれぞれが、3つのプレシンクトで構成されるものとする。すなわち、ピクチャ651は、プレシンクト651−1乃至プレシンクト651−3により構成され、ピクチャ652は、プレシンクト652−1乃至プレシンクト652−3により構成され、ピクチャ653は、プレシンクト653−1乃至プレシンクト653−3により構成されるものとする。
また、これらのプレシンクトのデータは、図48の上側から下側に向かう順に伝送されるものとする。つまり、図48に示されるプレシンクトの中で、ピクチャ651のプレシンクト651−1が最初に伝送され、ピクチャ653のプレシンクト653−3が最後に伝送される。
さらに、ここで、プレシンクト653−3が現在の(処理対象の)プレシンクトであるとし、このプレシンクト653−3において伝送誤りが発生したとする。
このときプレシンクト653−3の(全てまたは一部の)パケットに付加された隠蔽用ヘッダ640の、RF644およびSF645の値がオフ(例えば「0」)であれば、プレシンクト653−3に置き換え可能なプレシンクトが存在しない。
また、RF644の値がオフでSF645の値がオン(例えば「1」)であるとき、ピクチャ653内において置き換え可能なプレシンクトが存在する。例えば、置き換え先頭プレシンクトID646がプレシンクト653−2を示す値であれば、プレシンクト653−3は、プレシンクト653−2により置き換えることができる。また、例えば、置き換え先頭プレシンクトID646がプレシンクト653−1を示す値であれば、プレシンクト653−3は、プレシンクト653−1およびプレシンクト653−2のいずれでも置き換え可能である。
実際には、プレシンクトは数ライン程度の画素で構成される場合が多く、一般的な画像の場合、隣接するプレシンクトの類似性が高く、その差分が小さくなることが多い。つまり、同一ピクチャ内の近いプレシンクトほど、置き換えることができる可能性が高い。そこで隠蔽用ヘッダ640においては、置き換え先頭プレシンクトID646により、置き換え可能なプレシンクトのうち、現在の(処理対象の)プレシンクトから最も遠い(時間的に最も早い)プレシンクトが示される。換言すれば、置き換え先頭プレシンクトID646により示されるプレシンクトよりも後の(現在のプレシンクトまでの間の)プレシンクトは、置き換え可能であることが保証されている。
また、RF644の値がオンであれば、他のピクチャに置き換え可能なプレシンクトが存在する。例えば、置き換え先頭ピクチャID643がピクチャ652を示す値であれば、プレシンクト653−3は、ピクチャ652の同じ位置のプレシンクト652−3により置き換えることができる。また、例えば、置き換え先頭ピクチャID643がピクチャ651を示す値であれば、プレシンクト653−3は、ピクチャ651の同じ位置のプレシンクト651−3、および、ピクチャ652の同じ位置のプレシンクト652−3のいずれでも置き換え可能である。
通常の動画像の場合、シーンチェンジ等の特異点を除き、基本的に連続するピクチャの絵柄は近似し、その差分は小さい。つまり、一般的な画像の場合、時間的に近いピクチャほど、置き換え可能なプレシンクトを有する可能性が高い。そこで隠蔽用ヘッダ640においては、置き換え先頭ピクチャID643により、置き換え可能なプレシンクトを有するピクチャのうち、現在の(処理対象の)ピクチャから最も遠い(時間的に最も早い)ピクチャが示される。換言すれば、置き換え先頭ピクチャID643により示されるピクチャよりも後の(現在のピクチャまでの間の)ピクチャは、置き換え可能なプレシンクトを有することが保証されている。
ただし、実際には、記憶部632がそのデータを保持していなければ、ロス解析部631はプレシンクトを置き換えることができない。例えば、置き換え先頭ピクチャID643がピクチャ651を示す値であり、かつ、記憶部632がピクチャ652のデータを保持していれば、ロス解析部631は、プレシンクト653−3を、プレシンクト652−3で置き換えることができる。
以上のように、隠蔽用ヘッダ640により、置き換え可能なデータが存在する位置(範囲)が示される。つまり、この隠蔽用ヘッダ640を生成する送信装置602が、この範囲を指定する。より具体的には、解析部621は、今回入力されたプレシンクトのデータと、記憶部622に保持されている1つ前のプレシンクトのデータとの差分値を算出する。また、解析部621は、今回入力されたプレシンクトのデータと、記憶部622に保持されている1つ前のピクチャの同じ位置のプレシンクトのデータとの差分値を算出する。解析部621は、これらの演算結果に基づいて、今回入力されたプレシンクトのデータと、同一ピクチャの1つ前のプレシンクト、または、1つ前の同一位置のプレシンクトとの類似性を判定し、置き換え可能か否かを判定する。
隠蔽用ヘッダ生成部623は、この判定結果に従い、置き換え不可能である場合、置き換え先頭ピクチャID643や置き換え先頭プレシンクトID646の情報を適宜更新する。
次にこれらの処理の流れについて説明する。最初に、図49のフローチャートを参照して、送信装置602の解析部621により実行される解析処理の流れの例を説明する。
解析処理が開始されると、解析部621は、ステップS601において、現在の(処理対象の)プレシンクトと、記憶部622より読み出した前ピクチャの同じプレシンクト(1つ前のピクチャの同じ位置のプレシンクト)との差分計算を行い、ステップS602において、その差分が予め定められた所定の閾値以下であるか否かを判定する。差分が閾値以下であると判定した場合、解析部621は、ステップS603に処理を進め、解析結果として「前ピクチャ置き換え可」を設定し、ステップS605に処理を進める。また、ステップS602において、差分が閾値より大きいと判定した場合、解析部621は、ステップS604に処理を進め、解析結果として「前ピクチャ置き換え不可」を設定し、ステップS605に処理を進める。
解析部621は、ステップS605において、現在の(処理対象の)プレシンクトと、記憶部622より読み出した前プレシンクト(1つ前のプレシンクト)との差分計算を行い、ステップS606において、その差分が予め定められた所定の閾値以下であるか否かを判定する。差分が閾値以下であると判定した場合、解析部621は、ステップS607に処理を進め、解析結果として「前プレシンクト置き換え可」を設定し、解析処理を終了する。また、ステップS606において、差分が閾値より大きいと判定した場合、解析部621は、ステップS608に処理を進め、解析結果として「前プレシンクト置き換え不可」を設定し、解析処理を終了する。
以上のように、各処理を実行することにより、解析部621は、フレーム間の画像の類似性を判定することができ、隠蔽用ヘッダ生成部623に、隠蔽用ヘッダ640の生成のために必要な情報を提供することができる。
次に、隠蔽用ヘッダ生成部623による隠蔽用ヘッダ生成処理の流れの例を図50のフローチャートを参照して説明する。
隠蔽用ヘッダ生成処理が開始されると、隠蔽用ヘッダ生成部623は、ステップS621において、解析結果として「前ピクチャ置き換え可」がセットされているか否かを判定する。
「前ピクチャ置き換え可」がセットされていると判定した場合、隠蔽用ヘッダ生成部623は、ステップS622に処理を進め、置き換え先頭ピクチャID643の値を前回と同じ値にセットする。ステップS623において、隠蔽用ヘッダ生成部623は、前ピクチャ置き換えフラグであるRF644の値をオン(例えば、「1」)にし、処理をステップS626に進める。
また、ステップS621において、「前ピクチャ置き換え不可」がセットされていると判定した場合、隠蔽用ヘッダ生成部623は、ステップS624に処理を進め、置き換え先頭ピクチャID643の値を現在のピクチャの識別情報に更新する。ステップS625において、隠蔽用ヘッダ生成部623は、前ピクチャ置き換えフラグであるRF644の値をオフ(例えば、「0」)にし、処理をステップS626に進める。
ステップS626において、隠蔽用ヘッダ生成部623は、解析結果として「前プレシンクト置き換え可」がセットされているか否かを判定する。
「前プレシンクト置き換え可」がセットされていると判定した場合、隠蔽用ヘッダ生成部623は、処理をステップS627に進め、置き換え先頭プレシンクトID646の値を前回と同じ値にセットする。ステップS628において、隠蔽用ヘッダ生成部623は、前プレシンクト置き換えフラグであるSF645の値をオン(例えば、「1」)にし、隠蔽用ヘッダ生成処理を終了する。
また、ステップS626において、「前プレシンクト置き換え不可」がセットされていると判定した場合、隠蔽用ヘッダ生成部623は、処理をステップS629に進め、置き換え先頭プレシンクトID646の値を現在のプレシンクトの識別情報に更新する。ステップS630において、隠蔽用ヘッダ生成部623は、前プレシンクト置き換えフラグであるSF645の値をオフ(例えば、「1」)にし、隠蔽用ヘッダ生成処理を終了する。
以上のように各処理を行うことにより、隠蔽用ヘッダ生成部623は、遅延時間の増大を抑制しながら、伝送誤りによる影響を軽減させるために参照される隠蔽用ヘッダ640を生成することができる。この隠蔽用ヘッダ640が受信装置603に提供されることにより、受信装置603は、ピクチャ単位よりも小さいプレシンクト単位で適切にエラー隠蔽処理を行うことができるようになる。
次に、この隠蔽用ヘッダ640を用いて行われるロス解析処理の流れの例を図51のフローチャートを参照して説明する。
ロス解析処理が開始されると、ロス解析部631は、ステップS651において、現在の(処理対象の)プレシンクトにおいてロス(エラー)が発生したか否かを判定し、ロスが発生していないと判定した場合、ロス解析処理を終了する。
また、ステップS651において、ロスが発生したと判定した場合、ロス解析部631は、処理をステップS652に進め、隠蔽用ヘッダ640を取得できたか否かを判定する。取得できなかったと判定した場合、正確なエラー隠蔽を行うことが困難であるので、ロス解析部631は、ロス解析処理を終了する。
また、ステップS652において、隠蔽用ヘッダ640を取得したと判定した場合、ロス解析部631は、処理をステップS653に進め、その隠蔽用ヘッダ640の情報に基づいて、前ピクチャの同じプレシンクト(1つ前のピクチャの同じ位置のプレシンクト)で置き換え可能か否かを判定する。RF644の値がオン(例えば「1」)であり、置き換え可能と判定した場合、ロス解析部631は、処理をステップS654に進める。
ステップS654において、ロス解析部631は、記憶部632より読み出した前ピクチャのピクチャIDの値が、置き換え先頭ピクチャID643以上であるか否か、すなわち、置き換え先頭ピクチャIDで示されるピクチャの方が、記憶部632より読み出した前ピクチャよりも古いか否かを判定する。記憶部632より読み出した前ピクチャが、置き換え先頭ピクチャIDで示されるピクチャよりも後であると判定された場合、ロス解析部631は、処理をステップS655に進め、現在の(処理対象)のプレシンクトを、記憶部632より読み出した前ピクチャの同じ位置のプレシンクトに置き換え、ロス解析処理を終了する。また、ステップS654において、記億部632より読み出した前ピクチャのピクチャIDの値が、置き換え先頭ピクチャIDより小さいと判定した場合、ロス解析部631は、置き換え可能なピクチャのデータが記憶部632に保持されていないので、ロス解析処理を終了する。
また、ステップS653において、記憶部632より読み出した前ピクチャの同一の位置のプレシンクトで置き換えることができないと判定した場合、ロス解析部631は、処理をステップS656に進め、記憶部632より読み出した同ピクチャの前プレシンクト(同じピクチャの1つ前のプレシンクト)で置き換え可能か否かを判定する。SF645の値がオフ(例えば「0」)であり、置き換え可能でないと判定した場合、ロス解析部631は、ロス解析処理を終了する。
また、ステップS656において、SF645の値がオン(例えば「1」)であり、記憶部632より読み出した同ピクチャの前プレシンクトで置き換え可能であると判定した場合、ロス解析部631は、処理をステップS657に進め、記憶部632より読み出された前プレシンクトのプレシンクトIDの値が、置き換え先頭プレシンクトID646以上か否かを判定する。
記憶部632より読み出された前プレシンクトのプレシンクトIDの値が、置き換え先頭プレシンクトID646より小さいと判定された場合、つまり、記憶部632より読み出された前プレシンクトが、置き換え先頭プレシンクトID646により示されるプレシンクトより前のプレシンクトであると判定された場合、記憶部632に置き換え可能なプレシンクトが保持されていないので、ロス解析部631は、ロス解析処理を終了する。
また、記憶部632より読み出された前プレシンクトのプレシンクトIDの値が、置き換え先頭プレシンクトID646以上であると判定された場合、つまり、記憶部632より読み出された前プレシンクトが、置き換え先頭プレシンクトID646により示されるプレシンクトより後のプレシンクトであると判定された場合、ロス解析部631は、処理をステップS658に進め、現在の(処理対象)のプレシンクトを、記憶部632より読み出した同ピクチャの前プレシンクトに置き換え、ロス解析処理を終了する。
以上のように、ロス解析部631は、ロス解析処理を行う。これにより、ロス解析部631は、上述したように処理を行うことにより、隠蔽用ヘッダ640に基づいて、ピクチャ単位よりも小さいプレシンクト単位で適切にエラー隠蔽処理を行うことができる。つまり、ロス解析部631は、遅延時間の増大を抑制しながら、伝送誤りによる影響を軽減させることができる。
なお、置き換え可能か否かを受信装置603において判断するようにし、上述したような隠蔽用ヘッダ640を用いずに、ピクチャ単位よりも小さい単位で置き換えを行うことができるようにしてもよいが、その場合、受信装置603においてバッファ量が増え、遅延時間が増大してしまう恐れがある。また、受信装置603側においては、データの欠損の可能性があるため、正確な判定に長時間を必要とする恐れがある。
そこで、上述したように、データが揃っている送信装置602において、置き換え可能か否かの判断を行い、隠蔽用ヘッダ640を用いてその情報を受信装置603に通知するようにすることにより、送信装置602は、受信装置603に、遅延時間の増大を抑制しながら、伝送誤りによる影響を軽減させるようにすることができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ、または、複数の装置よりなる情報処理システムの情報処理装置などに、プログラム記録媒体からインストールされる。
図52は、上述した一連の処理をプログラムにより実行する情報処理システムの構成の例を示すブロック図である。
図52に示されるように、情報処理システム800は、情報処理装置801、その情報処理装置801とPCIバス802によって接続された、記憶装置803、複数台のビデオテープレコーダ(VTR)であるVTR804-1乃至VTR804-S、ユーザがこれらに対する操作入力を行うためのマウス805、キーボード806、並びに操作コントローラ807により構成されるシステムであり、インストールされたプログラムによって、上述したような画像符号化処理や画像復号処理等を行うシステムである。
例えば情報処理システム800の情報処理装置801は、RAID(Redundant Arrays of Independent Disks)でなる大容量の記憶装置803に記憶されている動画コンテンツを符号化して得られた符号化データを記憶装置803に記憶させたり、記憶装置803に記憶されている符号化データを復号して得られた復号画像データ(動画コンテンツ)を記憶装置803に記憶させたり、符号化データや復号画像データをVTR804-1乃至VTR804-Sを介してビデオテープに記録したりすることができる。また、情報処理装置801は、VTR804-1乃至VTR804-Sに装着されたビデオテープに記録された動画コンテンツを記憶装置803に取り込み得るようにもなされている。その際、情報処理装置801が、動画コンテンツを符号化するようにしてもよい。
情報処理装置801は、マイクロプロセッサ901、GPU(Graphics Processing Unit)902、XDR(Extreme Data Rate)-RAM903、サウスブリッジ904、HDD(Hard Disk Drive)905、USBインタフェース(USB I/F)906、およびサウンド入出力コーデック907を有している。
GPU902は専用のバス911を介してマイクロプロセッサ901に接続される。XDR-RAM903は専用のバス912を介してマイクロプロセッサ901に接続される。サウスブリッジ904は、専用のバスを介してマイクロプロセッサ901のI/Oコントローラ944に接続される。このサウスブリッジ904には、HDD905、USBインタフェース906、および、サウンド入出力コーデック907も接続されている。このサウンド入出力コーデック907にはスピーカ921が接続されている。また、GPU902にはディスプレイ922が接続されている。
またサウスブリッジ904には、さらに、PCIバス802を介して、マウス805、キーボード806、VTR804-1乃至VTR804-S、記憶装置803、並びに、操作コントローラ807が接続されている。
マウス805およびキーボード806は、ユーザの操作入力を受け、PCIバス802およびサウスブリッジ904を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ901に供給する。記憶装置803およびVTR804-1乃至VTR804-Sは、所定のデータを記録または再生できるようになされている。
PCIバス802にはさらに、必要に応じてドライブ808が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア811が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD905にインストールされる。
マイクロプロセッサ901は、OS(Operating System)等の基本プログラムを実行する汎用のメインCPUコア941と、メインCPUコア941に内部バス945を介して接続された複数(この場合8個)のRISC(Reduced Instruction Set Computer)タイプの信号処理プロセッサである、サブCPUコア942-1乃至サブCPUコア942-8と、例えば256[MByte]の容量を持つXDR-RAM903に対するメモリコントロールを行うメモリコントローラ943と、サウスブリッジ904との間でデータの入出力を管理するI/O(In/Out)コントローラ944とが1チップに集積されたマルチコア構成でなり、例えば動作周波数4[GHz]を実現している。
このマイクロプロセッサ901は、起動時、HDD905に格納された制御プログラムに基づき、HDD905に格納されている必要なアプリケーションプログラムを読み出してXDR-RAM903に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。
また、マイクロプロセッサ901は、ソフトウェアを実行することにより、例えば、上述した符号化処理や復号処理を実現し、エンコードの結果得られた符号化ストリームを、サウスブリッジ904を介して、HDD905に供給して記憶させたり、デコードした結果得られる動画像コンテンツの再生映像を、GPU902へデータ転送して、ディスプレイ922に表示させたりすることができる。
マイクロプロセッサ901内の各CPUコアの使用方法は任意であるが、例えば、メインCPUコア941が、画像符号化処理や画像復号処理の制御に関する処理を行い、8個のサブCPUコア942-1乃至サブCPUコア942-8に、ウェーブレット変換、係数並び替え、エントロピ符号化、エントロピ復号、ウェーブレット逆変換、量子化、および逆量子化等の各処理を、例えば図39を参照して説明したように同時並列的に実行させるようにしてもよい。その際、メインCPUコア941が、8個のサブCPUコア942-1乃至サブCPUコア942-8のそれぞれに対してプレシンクト単位で処理を割り振るようにすれば、符号化処理や復号処理が、図39を参照して説明した場合と同様にプレシンクト単位で同時並列的に実行される。つまり、符号化処理や復号処理の効率を向上させ、処理全体の遅延時間を短縮させ、さらに、負荷、処理時間、および、処理に必要なメモリ容量を低減させることができる。もちろん、これ以外の方法で各処理を行うようにしてもよい。
例えば、マイクロプロセッサ901の8個のサブCPUコア942-1乃至サブCPUコア942-8のうちの一部がエンコード処理を、他の部分がデコード処理を、同時並列的に実行するようにすることも可能である。
また、例えば、PCIバス802に、独立したエンコーダまたはデコーダ、もしくは、コーデック処理装置が接続されている場合、マイクロプロセッサ901の8個のサブCPUコア942-1乃至サブCPUコア942-8が、サウスブリッジ904およびPCIバス802を介して、これらの装置が実行する処理を制御するようにしてもよい。さらに、これらの装置が複数接続されている場合、または、これらの装置が複数のデコーダまたはエンコーダを含んでいる場合、マイクロプロセッサ901の8個のサブCPUコア942-1乃至サブCPUコア942-8は、複数のデコーダまたはエンコーダが実行する処理を、分担して制御するようにしてもよい。
このときメインCPUコア941は、8個のサブCPUコア942-1乃至サブCPUコア942-8の動作を管理し、各サブCPUコアに対して処理を割り当てたり、処理結果を引き取ったりする。さらに、メインCPUコア941は、これらのサブCPUコアが行う以外の処理も行う。例えば、メインCPUコア941は、サウスブリッジ904を介してマウス805、キーボード806、または、操作コントローラ807から供給された命令を受け付け、命令に応じた種々の処理を実行する。
GPU902は、ディスプレイ922に表示する動画コンテンツの再生映像を動かすときのテクスチャの張り込みなどに関する最終的なレンダリング処理に加えて、動画コンテンツの再生映像及び静止画コンテンツの静止画像をディスプレイ922に一度に複数表示するときの座標変換計算処理や、動画コンテンツの再生映像及び静止画コンテンツの静止画像に対する拡大・縮小処理等を行う機能を司り、マイクロプロセッサ901の処理負担を軽減させるようになされている。
GPU902は、マイクロプロセッサ901の制御のもとに、供給された動画コンテンツの映像データや静止画コンテンツの画像データに対して所定の信号処理を施し、その結果得られた映像データや画像データをディスプレイ922へ送出して、画像信号をディスプレイ922へ表示させる。
ところで、マイクロプロセッサ901における8個のサブCPUコア942-1乃至サブCPUコア942-8で同時並列的にデコードされた複数の動画コンテンツにおける再生映像は、バス911を介してGPU902へデータ転送されるが、このときの転送速度は、例えば、最大30[Gbyte/sec]であり、特殊効果の施された複雑な再生映像であっても高速かつ滑らかに表示し得るようになされている。
また、マイクロプロセッサ901は、動画コンテンツの映像データ及び音声データのうち音声データに対して音声ミキシング処理を施し、その結果得られた編集音声データを、サウスブリッジ904およびサウンド入出力コーデック907を介して、スピーカ921へ送出することにより、音声信号に基づく音声をスピーカ921から出力させることもできる。
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図52に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM,DVDを含む)、光磁気ディスク(MDを含む)、もしくは半導体メモリなどよりなるリムーバブルメディア811により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているHDD905や記憶装置803等で構成される。もちろん、記録媒体は、ROMやフラッシュメモリ等の半導体メモリであってもよい。
以上においては、マイクロプロセッサ901内に8個のサブCPUコアが構成されるように説明したが、これに限らず、サブCPUコアの数は任意である。また、マイクロプロセッサ901が、メインCPUコアとサブCPUコアのような複数のコアにより構成されていなくてもよく、シングルコア(1つのコア)により構成されるCPUを用いるようにしてもよい。
また、マイクロプロセッサ901の代わりに複数のCPUを用いるようにしてもよいし、複数の情報処理装置を用いる(すなわち、本発明の処理を実行するプログラムを、互いに連携して動作する複数の装置において実行する)ようにしてもよい。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
なお、以上において、1つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて1つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。