(57)【要約】【課題】不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させることができるようにする。【解決手段】冗長符号化制御部１２１は、圧縮符号化の階層数および階層間の依存情報を取得する。FECブロックサイズ決定部２０１は、取得された情報に基づいて、各階層のFECブロックサイズを求める。冗長度決定部２０２は、取得された情報に基づいて、各階層の冗長度を求める。冗長符号化制御部１２１は決定されたFECブロックサイズおよび冗長度を、冗長符号化部１２３の要求に応じて、冗長符号化部１２３に提供する。本発明は、例えば、送信装置に適用することができる。【選択図】図１６
2010141659.tif 000002
【特許請求の範囲】
【請求項１】
画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化する符号化手段と、
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う冗長符号化手段と
を備える情報処理装置。
【請求項２】
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記ブロックのサイズを前記階層毎に決定するブロックサイズ決定手段をさらに備え、
前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う
請求項１に記載の情報処理装置。
【請求項３】
前記ブロックサイズ決定手段は、前記階層間の依存関係において、依存する範囲が広い階層ほど、前記ブロックのサイズを大きく設定する
請求項２に記載の情報処理装置。
【請求項４】
前記ブロックサイズ決定手段は、Ｔを許容遅延延長ブロック数とし、ｄ（ｋ）を階層ｋの依存する範囲とし、以下の式を用いて階層iの前記ブロックのサイズＢ（i）を決定する
【数１】
2010141659.tif 000007
請求項２に記載の情報処理装置。
【請求項５】
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記冗長符号化の冗長度を前記階層毎に決定する冗長度決定手段をさらに備え、
前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記冗長度決定手段により決定された冗長度で前記階層化データの冗長データを生成する冗長符号化を行う
請求項２に記載の情報処理装置。
【請求項６】
前記冗長度決定手段は、想定されるパケット損失率をｐとし、前記ブロック内のパケット数をｎとし、前記係数のパケット数をｋとし、前記ブロック損失率の目標値をPtとし、以下の式を用いて、前記ブロック損失率の目標値Ptを満たすように、前記階層化データのパケット数ｋおよび前記冗長データのパケット数ｎ−ｋを決定する
【数２】
2010141659.tif 000008
請求項５に記載の情報処理装置。
【請求項７】
前記冗長度決定手段は、前記ブロック損失率の目標値Ptを階層毎に独立して設定する
請求項６に記載の情報処理装置。
【請求項８】
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
前記他の情報処理装置における前記パケットの損失率の所定時間の平均値を算出するパケット損失率算出手段と
をさらに備え、
前記冗長度決定手段は、前記パケット損失率算出手段により算出された前記パケットの損失率の所定時間の前記平均値をｐとし、前記階層化データのパケット数ｋおよび前記冗長データのパケット数ｎ−ｋを決定する
請求項６に記載の情報処理装置。
【請求項９】
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
前記ネットワークの伝播遅延の所定時間の平均値を算出する伝播遅延算出手段と
をさらに備え、
前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記平均値に基づいて、前記ブロックのサイズを前記階層毎に決定する
請求項２に記載の情報処理装置。
【請求項１０】
前記ブロックサイズ決定手段は、Ｔを許容遅延延長ブロック数とし、ｄ（ｋ）を階層ｋの依存する範囲とし、前記伝播遅延の所定時間の前記平均値をRTTとし、βを正数係数とし、以下の式を用いて階層iの前記ブロックのサイズＢ（i）を決定する
【数３】
2010141659.tif 000009
請求項９に記載の情報処理装置。
【請求項１１】
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、
前記ネットワークの伝播遅延の所定時間の最大値を算出する最大伝播遅延算出手段と
をさらに備え、
前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記最大伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記最大値に基づいて、前記ブロックのサイズを前記階層毎に決定する
請求項２に記載の情報処理装置。
【請求項１２】
前記ブロックサイズ決定手段は、Ｔを許容遅延延長ブロック数とし、ｄ（ｋ）を階層ｋの依存する範囲とし、前記伝播遅延の所定時間の前記平均値をRTTとし、前記伝播遅延のジッタをＮとし、βおよびγを正数係数とし、以下の式を用いて階層iの前記ブロックのサイズＢ（i）を決定する
【数４】
2010141659.tif 000010
請求項１１に記載の情報処理装置。
【請求項１３】
前記符号化手段は、SNR（Signal to Noise Ratio）、空間解像度、または時間方向の解像度に関して重要度の高いデータから順に階層化された前記階層化データを生成し、階層毎に符号化する
請求項１に記載の情報処理装置。
【請求項１４】
前記符号化手段は、前記画像データまたは前記階層化データを複数のサブバンドに分割する処理を再帰的に繰り返すことにより、階層化された複数の前記サブバンド毎の前記階層化データを生成し、階層毎に符号化する
請求項１に記載の情報処理装置。
【請求項１５】
画像データを処理する情報処理装置の情報処理方法であって、
符号化手段は、前記画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化し、
冗長符号化手段は、生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、データ伝送において、不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させることができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
近年、インターネット若しくはその他の伝送路を経由して、マルチメディアデータを低遅延に伝送するという需要が高まっている。例えば、遠隔地２地点の医療拠点をインターネット等で接続し、一方の遠隔手術室から手術風景を動画像伝送し、他方からその映像を見ながら遠隔手術室の手術器具を操作するといった、所謂遠隔手術用アプリケーションがある。このようなアプリケーションでは、数フレーム間隔以下の遅延での動画像伝送が要求される。
【０００３】
このような要求に対して、動画像の各ピクチャの数ライン毎を１つの圧縮符号化ブロックとしてウェーブレット変換による圧縮符号化を行う方式が提案された（例えば、特許文献参照）。この方式の場合、符号化装置は、ピクチャ内のデータ全てが入力される前に圧縮符号化を開始することができる。また、圧縮データをネットワーク経由で伝送し、受信側でその圧縮データを復号する場合、復号装置は、ピクチャ内の全てのデータを受信する前に復号処理を開始することができる。したがって、ネットワーク伝播遅延が十分小さければ、フレーム間隔以下の遅延でのリアルタイム動画像伝送が可能となる。
【０００４】
このようなリアルタイム伝送に適したインターネット技術に，IETF（Internet Engineering Task Force）のRFC（Request for Comments）3550で規定されているRTP（Realtime Transport Protocol）がある。RTPによるデータ転送では、時間情報としてパケットにタイムスタンプを付加しておき、これによって送信側と受信側の時間的関係を把握する。このようにすることにより、パケット転送の遅延ゆらぎ（ジッタ）などの影響を受けずに同期をとった再生が可能になる。
【０００５】
なお、RTPは、実時間のデータ転送を保証しているものではない。パケット配送の優先度や設定、管理などはRTPが提供するトランスポートサービスの範疇ではない。したがって、RTPパケットも、他のプロトコルのパケットと同様に、配送遅延やパケット損失がおきる可能性がある。
【０００６】
ただし、多少のデータ損失があったとしても、品質が低下するだけで、受信側は、期待する時間内に到着したパケットだけを利用してデータを再生することができる。なお、遅延配送されたパケットやエラーの発生したパケットは、受信側でそのまま破棄される。
【０００７】
このように、ネットワーク伝送を行う場合、高品質なデータを配信しても、パケット損失やエラーにより、受信側で十分に再生されない恐れがある。一般的に、エラーの発生確率は、有線区間で１０-5、無線区間で１０-3以上とされる。したがって、RTPをそのまま利用するのでは、配信するメディアの品質を十分に保つことができない。
【０００８】
その他のプロトコルを使用する方法として、例えば、データ転送に信頼性が高いTCP（Transmission Control Protocol）を利用する方法が考えられる。しかしながら、TCPは、エラーには強いが、スループットが低く、遅延が大きいので低遅延のデータ伝送には不向きである。例えば、エラー発生時に受信側がパケットの再送要求を行っても、その再送パケットの到着が再生時間には間に合わない恐れがあった。
【０００９】
そこで、RTPを用いてデータ転送の信頼性を向上させる手法として、データの冗長符号化を行うことで信頼性の向上を図る、前方誤り訂正符号化方式、所謂FEC（Forward Error Correction）方式という手法がある（例えば、非特許文献参照）。FEC方式では、複数個のパケットを１つのFECブロックとして、リードソロモン（RS（Reed-Solomon））符号等の誤り訂正符号を用いて冗長符号化を行う。例えば（ｎ，ｋ）RS符号を用いる場合、元パケットをｋ個とするとｎ−ｋ個の冗長パケットを生成することができる（ｎ＞ｋ）。この場合、送信装置が合計ｎ個のパケットを送信することにより、受信装置は、ｎ個のパケット中ｋ個のパケットを受信すれば、RS復号処理によりｋ個の元パケットを復元することができる。例えば、非特許文献には、優先度に応じた冗長符号化方式が記載されている。
【００１０】
FEC方式を用いて冗長符号化した場合、パケット損失に対する回復性能は、FECブロックサイズと冗長パケット数（ｎ−ｋ）に依存する。特に、ネットワークを介したデータ伝送中に起こるデータ系列上連続するパケットの損失、所謂バーストパケット損失に対する回復性能は、FECブロックサイズと関係が深い。一般的に、FECブロックサイズを大きくとればとるほど、バーストパケット損失に対する回復性能は向上する。
【００１１】
【特許文献１】特開２００７−３１１９２４号公報
【非特許文献１】Alexander E. Mohr, Student Member, IEEE, Eve A. Riskin, Senior Member, IEEE, and Richard E. Ladner, Member, IEEE, "Unequal Loss Protection: Graceful Degradation of Image Quality over Packet Erasure Channels Through Forward Error Correction" IEEE JOUNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL.18, NO.6, pp819-828, JUNE2000.
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、FEC方式の場合、FEC符号化処理や復号処理を行うためにブロックサイズ分のデータを蓄積する時間が必要になる。したがって、FECブロックサイズを大きく取ると、遅延時間が大幅に増大してしまう恐れがあった。換言すれば、低遅延が要求されるデータ伝送においては、FEC方式ではバーストパケット損失に対する回復性能を十分に向上させることができない恐れがあった。
【００１３】
本発明はこのような問題を解決するためのものであり、動画像の圧縮データの入力データに対する関連範囲に応じて、FECブロックサイズを調整することにより、バーストパケット損失に対する回復性能を維持しながら、FEC処理のよる遅延を最低限とするものである。
【課題を解決するための手段】
【００１４】
本発明の一側面は、画像データを解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化する符号化手段と、前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行う冗長符号化手段とを備える情報処理装置である。
【００１５】
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記ブロックのサイズを前記階層毎に決定するブロックサイズ決定手段をさらに備え、前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行うことができる。
【００１６】
前記ブロックサイズ決定手段は、前記階層間の依存関係において、依存する範囲が広い階層ほど、前記ブロックのサイズを大きく設定するようにすることができる。
【００１７】
前記符号化手段により生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて、前記冗長符号化の冗長度を前記階層毎に決定する冗長度決定手段をさらに備え、前記冗長符号化手段は、前記ブロックサイズ決定手段により決定された前記サイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記冗長度決定手段により決定された冗長度で前記階層化データの冗長データを生成する冗長符号化を行うことができる。
【００１８】
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、前記ネットワークの伝播遅延の所定時間の平均値を算出する伝播遅延算出手段とをさらに備え、前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記平均値に基づいて、前記ブロックのサイズを前記階層毎に決定することができる。
【００１９】
前記冗長符号化手段により冗長符号化された前記階層化データのパケット、および前記冗長データのパケットを、ネットワークを介して他の情報処理装置に送信する送信手段と、前記ネットワークの伝播遅延の所定時間の最大値を算出する最大伝播遅延算出手段とをさらに備え、前記ブロックサイズ決定手段は、前記階層間の依存関係の他に、さらに、前記最大伝播遅延算出手段により算出された前記伝播遅延の所定時間の前記最大値に基づいて、前記ブロックのサイズを前記階層毎に決定することができる。
【００２０】
前記符号化手段は、SNR（Signal to Noise Ratio）、空間解像度、または時間方向の解像度に関して重要度の高いデータから順に階層化された前記階層化データを生成し、階層毎に符号化することができる。
【００２１】
前記符号化手段は、前記画像データまたは前記階層化データを複数のサブバンドに分割する処理を再帰的に繰り返すことにより、階層化された複数の前記サブバンド毎の前記階層化データを生成し、階層毎に符号化することができる。
【００２２】
本発明の一側面は、また、解像度に関して重要度の高いデータから順に階層化された階層化データを生成し、階層毎に符号化し、冗長符号化手段は、生成された前記階層化データ同士、または、前記階層化データと前記画像データの、前記階層間の依存関係に基づいて前記階層毎に決められたサイズで、前記階層化データを前記階層毎にブロック化し、前記ブロック毎に、前記階層化データの冗長データを生成する冗長符号化を行うステップを含む。
【００２３】
本発明の一側面においては、解像度に関して重要度の高いデータから順に階層化された階層化データが生成され、階層毎に符号化され、生成された階層化データ同士、または、階層化データと画像データの、階層間の依存関係に基づいて階層毎に決められたサイズで、階層化データが階層毎にブロック化され、ブロック毎に、階層化データの冗長データが生成される。
【発明の効果】
【００２４】
本発明によれば、データ伝送を行うことができる。特に、不要な遅延の増大を抑制しながら、バーストパケット損失耐性を向上させるように、データを伝送させることができる。
【発明を実施するための最良の形態】
【００２５】
以下、発明を実施するための最良の形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（ネットワークシステム：FECブロックサイズおよび冗長度を、階層に応じて制御する例）
２．第２の実施の形態（送信装置：階層別のFECブロックサイズおよび冗長度を予め記憶する例）
３．第３の実施の形態（送信装置：目標FECブロック損失率を階層毎に設定する例）
４．第４の実施の形態（ネットワークシステム：RTCPを用いてネットワーク状況情報を、FECブロックサイズおよび冗長度の設定に反映させる例）
５．第５の実施の形態（送信装置：最大往復伝播遅延を算出する例）
６．第６の実施の形態（送信装置：FEC符号化制御方法を選択する例）
【００２６】
＜１．第１の実施の形態＞
［ネットワークシステムの構成例］
図１は、本発明を適用したネットワークシステムの構成例を示すブロック図である。図１において、ネットワークシステム１００は、ネットワーク１１０を介して送信装置１０１および受信装置１０２が接続されるシステムである。ネットワークシステム１００は、画像データ（動画像または静止画像のデータ）を、ネットワーク１１０を介して、送信装置１０１から受信装置１０２に伝送するシステムである。以下においては説明の便宜上動画像データを伝送する場合について説明するが、以下の説明は静止画像データの伝送にも適用することができる。動画像はフレーム画像またはフィールド画像の集合、すなわち、静止画像の集合と考えることができる。したがって、ネットワークシステム１００は、いかに説明する動画像データ伝送の場合と基本的に同様に処理を行うことにより、静止画像データの伝送を行うことができる。
【００２７】
送信装置１０１は、入力された動画像データ（ビデオIN）を符号化してパケット化し、そのパケットを、ネットワーク１１０を介して受信装置１０２に送信する。図１に示されるように、送信装置１０１は、冗長符号化制御部１２１、動画像圧縮符号化部１２２、冗長符号化部１２３、およびRTP送信部１２４を有する。
【００２８】
冗長符号化制御部１２１は、冗長符号化部１２３により行われる冗長符号化のブロックサイズや冗長度を決定する。動画像圧縮符号化部１２２は、送信装置１０１に入力される動画像データ（ビデオIN）を圧縮符号化し、生成した符号化データを冗長符号化部１２３に供給する。
【００２９】
冗長符号化部１２３は、動画像圧縮符号化部１２２より供給された符号化データに対して冗長符号化を行う。冗長符号化部１２３は、冗長符号化制御部１２１において決定されたブロックサイズで符号化データをブロック化する。冗長符号化部１２３は、そのブロック毎の符号化データをRTPパケット化する。冗長符号化部１２３は、そのブロック毎のRTPパケット群に対して、冗長符号化制御部１２１において決定された冗長度で冗長データ（冗長パケット）を生成する。冗長符号化部１２３は、生成されたRTPパケットをRTP送信部１２４に供給する。
【００３０】
RTP送信部１２４は、供給されたRTPパケットを、ネットワーク１１０を介して受信装置１０２に送信する。
【００３１】
受信装置１０２は、ネットワーク１１０を介して送信装置１０１より送信されたRTPパケットを受信し、デパケタイズして冗長復号や伸長復号を行うことにより動画像データを生成して出力する。図１に示されるように、受信装置１０２は、RTP受信部１３１、冗長復号部１３２、および動画像伸長復号部１３３を有する。
【００３２】
RTP受信部１３１は、ネットワークを介して受信装置１０２に送信されるRTPパケットを受信し、冗長復号部１３２に供給する。冗長復号部１３２は、供給されたRTPパケットを、冗長符号化部１２３の冗長符号化方法に対応する復号方法で冗長復号し、ロスがある場合は冗長データを使って元のパケットを復元し、符号化データを抽出する。冗長復号部１３２は、得られた符号化データを動画像伸長復号部１３３に供給する。動画像伸長復号部１３３は、符号化データを、動画像圧縮符号化部１２２の圧縮符号化方法に対応する方法で伸長復号し、ベースバンドの動画像データを生成する。動画像伸長復号部１３３は、生成した動画像データを受信装置１０２より出力する。
【００３３】
［動画像圧縮符号化・伸長復号の説明］
次に、動画像圧縮符号化部１２２と動画像伸長復号部１３３による動画像圧縮符号化・伸長復号の例について説明する。
【００３４】
図２は、動画像圧縮符号化部１２２の詳細な構成例を示すブロック図である。動画像圧縮符号化部１２２は、画像データを解像度に関して重要度の高いデータから順に階層化し、その階層毎に符号化する階層符号化を行う。例えば、動画像圧縮符号化部１２２は、空間解像度に関して重要度の高いデータから順に階層化された階層化データを生成する。また、例えば、動画像圧縮符号化部１２２は、時間方向の解像度に関して重要度の高いデータから順に階層化された階層化データを生成する。さらに、例えば、動画像圧縮符号化部１２２は、SNR（Signal to Noise Ratio）に関して重要度の高いデータから順に階層化された階層化データを生成する。動画像圧縮符号化部１２２は、このように生成した階層化データを、その階層毎に符号化する。
【００３５】
このような階層符号化として、例えば、動画像データの各ピクチャをウェーブレット変換し、エントロピ符号化するJPEG(Joint Photographic Experts Group)2000方式がある。階層符号化方法は任意であるが、以下においては、動画像圧縮符号化部１２２が、動画像データを複数ライン毎にウェーブレット変換し、エントロピ符号化する場合について説明する。
【００３６】
図２に示されるように、動画像圧縮符号化部１２２は、ウェーブレット変換部１５１、量子化部１５２、エントロピ符号化部１５３、およびレート制御部１５４を有する。ウェーブレット変換部１５１は、動画像の各ピクチャを、複数ライン毎にウェーブレット変換する。
【００３７】
ウェーブレット変換は、入力データを低域成分と高域成分に分割する分析フィルタ処理を画面水平方向および画面垂直方向の両方に対して行う処理である。つまり、ウェーブレット変換処理により入力データは、水平方向および垂直方向に低域な成分（ＬＬ成分）、水平方向に高域で垂直方向に低域な成分（ＨＬ成分）、水平方向に低域で垂直方向に高域な成分（ＬＨ成分）、および、水平方向および垂直方向に高域な成分（ＨＨ成分）の４つの成分（サブバンド）に分割される。
【００３８】
ウェーブレット変換部１５１は、このようなウェーブレット変換処理を、所定回数、分析フィルタ処理により得られる水平方向および垂直方向に低域な成分（ＬＬ成分）に対して再帰的に繰り返す。つまり、ウェーブレット変換処理により、動画像データの各ピクチャは、階層化された複数のサブバンド（周波数成分）に分割される（階層化データが生成される）。エントロピ符号化部１５３は、このサブバンド毎に符号化を行う。
【００３９】
動画像の各ピクチャの画像データは、画像の上から下に向かう順に１ラインずつウェーブレット変換部１５１に入力される。また各ラインの画像データは、画像左から右に向かう順に１サンプル（１コラム）ずつ入力される。
【００４０】
ウェーブレット変換部１５１は、そのように入力される画像データに対して、分析フィルタリングを実行可能なサンプル数のデータを入手する毎に（入手次第）、画像水平方向の分析フィルタリング（水平分析フィルタリング）を実行する。例えば、ウェーブレット変換部１５１は、図３の左に示されるベースバンドの画像データ１６１に対して、Ｍコラム入力される毎に水平分析フィルタリングを行い、１ラインずつ水平方向に低域な成分（Ｌ）と高域な成分（Ｈ）に分割する。図３の右に示される水平分析フィルタ処理結果１６２は、ウェーブレット変換部１５１により分割されたＮライン分の水平方向に低域な成分（Ｌ）と高域な成分（Ｈ）を示す。
【００４１】
次に、ウェーブレット変換部１５１は、その水平分析フィルタ処理結果１６２の各成分に対して、垂直方向に分析フィルタリング（垂直分析フィルタリング）を行う。ウェーブレット変換部１５１は、水平分析フィルタリングにより、垂直分析フィルタリングに必要な垂直ライン分の係数が生成されると、その垂直分析フィルタリングに必要な垂直ライン分の係数に対して、コラム毎に垂直分析フィルタリングを行う。
【００４２】
その結果、水平分析フィルタ処理結果１６２は、図４の左に示されるように、水平方向および垂直方向の両方に低域な成分（ＬＬ成分）、水平方向に高域で垂直方向に低域な成分（ＨＬ成分）、水平方向に低域で垂直方向に高域な成分（ＬＨ成分）、および、水平方向および垂直方向の両方に高域な成分（ＨＨ成分）の４つの成分のウェーブレット変換係数（以下、係数と称する）に分割される（階層化データ１６３）。
【００４３】
所定の階層（分割レベル）の係数が得られるまで、得られた分析フィルタリングの結果のうち、ＨＬ成分、ＬＨ成分、ＨＨ成分は外部に出力される。残りのＬＬ成分は、ウェーブレット変換部１５１により、再度分析フィルタリングが行われる。つまり、例えば、図４の左に示される階層化データ１６３は、図４の右に示される階層化データ１６４に変換される。階層化データ１６４では、ＬＬ成分から、ＬＬＬＬ成分、ＬＬＨＬ成分、ＬＬＬＨ成分、およびＬＬＨＨ成分の４つの成分が生成されている。
【００４４】
ウェーブレット変換部１５１は、このような分析フィルタリングを所定回数再帰的に行い、動画像データを所望の分割レベルまで階層化された階層化データを生成する。図５は、分割レベル３（３階層）まで階層化された階層化データの例を示す図である。図５において、分割レベル３まで分割された階層化データ１６５は、分割レベル１（階層番号３）の３ＨＬ成分、３ＬＨ成分、および３ＨＨ成分、分割レベル２（階層番号２）の２ＨＬ成分、２ＬＨ成分、および２ＨＨ成分、並びに、分割レベル３（階層番号１）の１ＬＬ成分、１ＨＬ成分、１ＬＨ成分、および１ＨＨ成分の各サブバンドにより構成される。
【００４５】
ウェーブレット変換処理では、フィルタリング処理を繰り返す毎に（階層が１つ下位になる毎に）、生成されるライン数は２のべき乗分の１の大きさで小さくなっていく。最終分割レベル（階層番号１）の係数を１ライン生成するために必要なベースバンドのライン数は、そのフィルタリング処理を何回繰り返すか（最終分割レベルの階層数）によって決められる。通常、この階層数は予め定められる。
【００４６】
この、最終分割レベルの係数を１ライン生成するために必要なベースバンドの画像データ（複数ライン分の画像データ）、または、各階層の係数をまとめてプレシンクト（またはラインブロック）と称する。
【００４７】
図５において斜線で示される部分が１プレシンクトを構成する係数である。図５に示されるように、プレシンクトは、階層番号１の各成分の１ライン分の係数、階層番号２の各成分の２ライン分の係数、並びに、階層番号３の各成分の４ライン分の係数により構成される。なお、これらに相当する分析フィルタリング前の画像データ、すなわち、この例では８ライン分の画像データのこともプレシンクト（またはラインブロック）と称する。
【００４８】
次に、上述した分析フィルタリングにおける演算方法について具体的に説明する。分析フィルタリングにおける演算方法で最も一般的な演算方法は、畳み込み演算と呼ばれる方法である。この畳み込み演算は、デジタルフィルタの最も基本的な実現手段であり、フィルタのタップ係数に、実際の入力データを畳み込み乗算するものである。しかしながら、この畳み込み演算では、タップ長が長いとその分、計算負荷が増えてしまう場合もある。
【００４９】
これに対応する方法として、論文「W.Swelden,“The lifting scheme :A custom-design construction of Biorthogonal wavelets”, Applied and Computational Harmonic Analysis, vol3, no.2, pp.186-200, 1996」で紹介されたウェーブレット変換のリフティング技術が知られている。
【００５０】
図６は、JPEG2000規格でも採用されている９×７分析フィルタのリフティング構成を示している。この９×７分析フィルタに対してリフティング技術を適用したときの分析フィルタリングについて説明する。
【００５１】
図６の例において、１段目（最上段）は、入力画像のサンプル群（画素列）を示し、２，３段目は、それぞれステップＡ１およびステップＡ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＡ３の処理で生成される高域成分出力を示し、５段目は、ステップＡ４の処理で生成される低域成分出力を示している。最上段部は、入力画像のサンプル群に限らず、前の分析フィルタリングで得られた係数であってもよい。ここでは、最上段部が入力画像のサンプル群であるものとし、四角印（■）が偶数番目のサンプルまたはライン、丸印（●）が奇数番目のサンプルまたはラインとする。
【００５２】
９×７分析フィルタに対してリフティング技術を適用した分析フィルタリングにおいては、ステップＡ３の処理で高域成分が得られ、ステップＡ４の処理で低域成分が得られる。なお、ステップＡ１乃至ステップＡ４の処理は、次の式（１）乃至式（４）で表される。
【００５３】
stepＡ１：ｄi1＝ｄi0＋α（ｓi0＋ｓi+10）  ・・・（１）
stepＡ２：ｓi1＝ｓi0＋β（ｄi-11＋ｄi1）  ・・・（２）
stepＡ３：ｄi2＝ｄi1＋γ（ｓi1＋ｓi+11）  ・・・（３）
stepＡ４：ｓi2＝ｓi1＋δ（ｄi-12＋ｄi2）  ・・・（４）
（α＝-1.586134342，β＝-0.0529801185，γ＝0.8829110755，δ＝0.4435068520）
【００５４】
このように、リフティング技術を適用した分析フィルタリングにおいては、ステップＡ１およびＡ２の処理が行われ、ステップＡ３で、高域成分の係数が生成された後に、ステップＡ４で、低域成分の係数が生成される。この際に用いられるフィルタバンクは、式（１）乃至式（４）に示されるように、加算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。そこで、次に説明するように、水平分析フィルタリングおよび垂直分析フィルタリングに、このリフティング技術を適用する。
【００５５】
まず、水平分析フィルタリングの処理について具体的に説明する。図７は、水平分析フィルタリングを、図６のリフティング構成により実行する場合の例を示している。
【００５６】
図７の例においては、入力される水平方向の係数に対して、図６で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域成分の係数（以下、高域係数とも称する）と低域成分の係数（以下、低域係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。また、水平方向の係数の上に示される数字は、列（コラム）番号を示している。
【００５７】
さらに、上から１段目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【００５８】
以下、動作について上から順に説明する。図７の上段には、水平方向にコラム番号４乃至６の３コラムの係数が入力されて、水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。
【００５９】
この水平リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、コラム番号０乃至４の４コラムの係数の入力が必要である。
【００６０】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号５および６の２コラムの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるコラム番号４の係数も必要である。
【００６１】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【００６２】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるコラム番号４乃至６の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、途中演算用の係数として、ラッチしておく必要がある。実際には、高々３つの係数であるので、フリップフロップ等の小容量の記憶領域を用いることで対応することができる。
【００６３】
したがって、１番目の水平リフティング演算においてラッチされていた太線実線で示される３つの係数と、入力されたコラム番号４乃至６の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので、途中演算用の係数として、内蔵されるフリップフロップにラッチされる。
【００６４】
コラム番号６の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号６乃至８の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図７の下段に示されている。
【００６５】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号７および８の２コラムの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるコラム番号６の係数も必要であることがわかる。
【００６６】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でフリップフロップにラッチされている。
【００６７】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号６乃至８の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が生成される。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【００６８】
以上のようにして、３コラム分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の分析フィルタリングが完了される。
【００６９】
なお、以上においては、リフティング構成による１ライン分の水平分析フィルタリングの例を説明したが、上述した動作によって、係数のラインを上から下方向に順次入力しながら、リフティング構成により水平分析フィルタリングを行う動作を、図８を参照して説明する。なお、図８において、図６および図７と対応する係数については同様に図示されており、その詳細な説明は繰り返しになるので省略する。
【００７０】
図８の左側には、各入力ラインに対して、水平リフティング演算が行われる例が示されており、右側には、上から下の垂直方向に順に展開されていく各入力ラインの水平リフティング演算の結果の係数に対して、垂直リフティング演算が行われる例が概念的に示されている。
【００７１】
図中左から順に説明すると、先頭の入力ライン０における係数に対して、４つのステップからなる水平リフティング演算を経て１乃至１１の数字が付されている低域係数および高域係数が生成されている。このうち、奇数番目の数字（１，３，５，７，９，１１）が付されている係数は低域係数で、偶数番目の数字（２，４，６，８，１０）が付されている係数は高域係数である。
【００７２】
入力ライン１しか図示されていないが、入力ライン１乃至入力ラインｎに関しても同様である。すなわち、先頭の入力ライン１における係数に対して、４つのステップからなる水平リフティング演算を経て１乃至１１の数字が付されている低域係数および高域係数が生成されており、このうち、奇数番目の数字（１，３，５，７，９，１１）が付されている係数は低域係数で、偶数番目の数字（２，４，６，８，１０）が付されている係数は高域係数である。
【００７３】
そして、図８の右側に示すように、入力ライン０の水平フィルタリングの結果の１乃至１１が付された係数は、上から１段目に、手前から奥への水平方向に並べて展開される。入力ライン１の水平フィルタリングの結果の１乃至１１が付された係数は、上から２段目に、手前から奥への水平方向に並べて展開される。入力ライン２の水平フィルタリングの結果の係数は、上から３段目に、手前から奥への水平方向に並べて展開される。
【００７４】
以上のように、各入力ライン０乃至入力ラインｎに対しての水平フィルタリングの結果の係数が、図８の右側に示すように、上から下の垂直方向に順番に展開されていく。なお、実際には、各入力ラインの水平フィルタリングの結果の１乃至１１が付された係数は、手前から奥への水平方向に低域と高域が交互に並んでいる。
【００７５】
そして、垂直方向の係数が所定数集まり次第、すなわち、所定ライン数集まり次第、右側のリフティングのステップの方向に示されるように、左から右へと、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる。
【００７６】
次に、垂直分析フィルタリングについて具体的に説明する。図９は、垂直方向の分析フィルタリングを、図６のリフティング構成により実行する場合の例を示している。
【００７７】
なお、この図は、図８の右側に概念的に示した水平方向に展開されて並ぶ係数１つに着目したものであり、実際の２次元のウェーブレット変換では、ウェーブレット変換の過程で生成される周波数成分（サブバンド）の水平方向の係数の個数だけ、垂直方向の分析フィルタリングの計算が必要になることは自明である。
【００７８】
図９の例においては、垂直方向の係数に対して、図６で上述した４つのステップ（ステップＡ１乃至Ａ４）の処理を経て、高域係数と低域係数が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。また、垂直方向の係数の左に示される数字は、ライン番号を示している。
【００７９】
さらに、左から１列目の丸および四角は、それぞれ、入力される高域係数および低域係数を表しており、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、ハッチが付された丸および四角は、それぞれ、リフティング演算の結果である高域係数および低域係数を表している。
【００８０】
以下、動作について左から順に説明する。図９の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が示されている。
【００８１】
この垂直リフティング演算のステップＡ３において１番目の高域係数を求め、ステップＡ４において１番目の低域係数を求めるためには、ライン番号０乃至４の４ラインの係数が必要である。
【００８２】
その後、２番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号５および６の２ラインの係数が必要であり、さらに、ステップＡ２のＰ１が示される係数を算出するためには、丸数字で示されるライン番号４の係数も必要である。
【００８３】
太線実線で示される３つの係数は、１番目の高域係数および低域係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【００８４】
すなわち、２番目の高域係数と低域係数を求めるためには、結局、丸数字で示されるライン番号４乃至６の３ラインの係数の入力が必要である。さらに、１番目の垂直リフティング演算の過程において生成される太線実線で示される３つの係数が必要である。ウェーブレット変換部１５１は、この３つの係数を途中演算用の係数として記憶する。
【００８５】
したがって、１番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出され入力されるライン番号４乃至６の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、３番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
【００８６】
ライン番号６の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号６乃至８の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図９の右側に示されている。
【００８７】
２番目の場合と同様に、３番目の高域係数と低域係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号７および８の２ラインの係数が必要であり、さらに、ステップＡ２のＰ２が示される係数を算出するためには、丸数字で示されるライン番号６の係数も必要であることがわかる。
【００８８】
なお、右側の太線実線で示される３つの係数は、左側の一点鎖線で示されるように、２番目の垂直リフティング演算で記憶されている。したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、対応するレベルのバッファから読み出されて入力されるライン番号６乃至８の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の高域係数と低域係数を含めた４つの係数（太線点線で示される）が得られる。これらのうち、一点鎖線で示される３つの係数は、４番目の高域係数と低域係数を求めるために必要な係数であるので記憶される。
【００８９】
以上のようにして、３ライン分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の分析フィルタリングが完了される。
【００９０】
図２に戻り、量子化部１５２は、ウェーブレット変換部１５１により生成される各成分の係数を、例えば量子化ステップサイズで除算することにより量子化し、量子化係数を生成する。この際、量子化部１５２は、プレシンクト（ラインブロック）毎に量子化ステップサイズを設定することができる。このプレシンクトは、ある画像領域のすべての周波数成分（図５の場合、１ＬＬ乃至３ＨＨまでの１０個の周波数成分）の係数を包含しているため、プレシンクト毎に量子化を行えば、ウェーブレット変換の特徴である多重解像度分析の利点を活かすことができる。また、全画面でプレシンクト数だけを決めればよいため、量子化の負荷も小さくて済む。
【００９１】
さらに、画像信号のエネルギは一般的に低域成分に集中しており、また、人間の視覚上、低域成分の劣化が目立ちやすいという特性があるため、量子化に際しては、低域成分のサブバンドでの量子化ステップサイズが結果的に小さな値になるように、重み付けを行うことが有効である。この重み付けにより、低域成分には相対的に多くの情報量が割り当てられるようになり、全体の主観的な画質が向上する。
【００９２】
エントロピ符号化部１５３は、量子化部１５２で生成された量子化係数を情報源符号化し、圧縮された符号化コードストリームを生成する。情報源符号化としては、例えばJPEG方式やMPEG（Moving Picture Experts Group）方式で用いられているハフマン符号化や、JPEG2000方式で用いられているさらに高精度な算術符号化を用いることができる。
【００９３】
ここで、エントロピ符号化をどの範囲の係数に対して行うかは、圧縮効率に直接関係する非常に重要な要素になる。例えば、JPEG方式やMPEG方式では、８×８のブロックに対してDCT（Discrete Cosine Transform）変換を施し、生成された６４個のDCT変換係数に対してハフマン符号化を行うことで、情報を圧縮している。すなわち、６４個のDCT変換係数がエントロピ符号化の範囲になる。
【００９４】
ウェーブレット変換部１５１では、８×８ブロックに対するDCT変換とは異なり、ライン単位でウェーブレット変換を施しているため、エントロピ符号化部１５３では、周波数帯域（サブバンド）毎に独立に、且つ各周波数帯域内をＰライン毎に情報源符号化する。
【００９５】
Ｐは１ラインが最低であるが、ライン数が少ない場合には参照情報が少なくて済み、メモリ容量を減らすことができる。逆に、ライン数が多い場合には情報量がその分増えるため、符号化効率が向上させることができる。しかしながら、Ｐが各周波数帯域内のラインブロックのライン数を超えた値になると、次のラインブロックのラインまで必要になる。このため、このラインブロックの量子化係数データがウェーブレット変換及び量子化によって生成されるまで待たなければならず、この時間が遅延時間となってしまう。
【００９６】
したがって、低遅延のためには、Ｐはラインブロックのライン数以下である必要がある。例えば、図５の例では、１ＬＬ，１ＨＬ，１ＬＨ，１ＨＨの周波数帯域については、ラインブロックのライン数＝１ラインであるためＰ＝１となる。また、２ＨＬ，２ＬＨ，２ＨＨのサブバンドについては、ラインブロックのライン数＝２ラインであるためＰ＝１または２となる。
【００９７】
レート制御部１５４は、最終的に目標のビットレート又は圧縮率に合わせるための制御を行い、レート制御後の符号化コードストリームを外部に出力する。例えば、このレート制御部１５４は、ビットレートを上げる場合には量子化ステップサイズを小さくし、ビットレートを下げる場合には量子化ステップサイズを大きくするように、量子化部１５２に対して制御信号を送信する。
【００９８】
次に、以上のように圧縮符号化された符号化データを伸長復号する方法について説明する。図１０は、伸長復号を行う動画像伸長復号部１３３の構成例を示すブロック図である。図１０において、動画像伸長復号部１３３は、エントロピ復号部１７１、逆量子化部１７２、およびウェーブレット逆変換部１７３を有する。
【００９９】
エントロピ復号部１７１は、入力した符号化データを情報源復号し、量子化係数データを生成する。情報源復号としては、動画像圧縮符号化部１２２の情報源符号化に対応して、ハフマン復号や、高効率な算術復号などを用いることができる。なお、動画像圧縮符号化部１２２においてＰラインごとに情報源符号化されている場合、エントロピ復号部１７１においても同様に、各サブバンドが独立に、かつ各サブバンド内がＰライン毎に情報源復号される。
【０１００】
逆量子化部１７２は、量子化係数データに量子化ステップサイズを乗算することにより逆量子化し、係数データを生成する。この量子化ステップサイズは、通常、符号化コードストリームのヘッダなどに記述されている。なお、動画像圧縮符号化部１２２において、ラインブロック毎に量子化ステップサイズが設定されている場合には、逆量子化部１７２においても同様に、ラインブロック毎に逆量子化ステップサイズが設定されて、逆量子化される。
【０１０１】
ウェーブレット逆変換部１７３は、ウェーブレット変換部１５１の逆処理を行う。つまり、ウェーブレット逆変換部１７３は、ウェーブレット変換部１５１により複数の周波数帯域に分割された係数データに対して、低域成分と高域成分を合成するフィルタ処理（合成フィルタ処理）を水平方向と垂直方向の両方に対して行う。
【０１０２】
上述したリフティング技術を適用したときの分析フィルタリングに対応して、効率的にフィルタリングを実行することができることから、ウェーブレット逆変換の合成フィルタリングにおいても、同様にリフティング技術を用いることが好ましい。
【０１０３】
図１１は、JPEG2000規格でも採用されている９×７分析フィルタのリフティング構成を示している。この９×７分析フィルタに対してリフティング技術を適用したときの合成フィルタリングについて説明する。
【０１０４】
図１１の例において、１段目（最上段）は、ウェーブレット変換により生成された係数であり、丸印（●）が高域成分の係数を示し、四角印（■）が低域成分の係数を示す。２，３段目は、それぞれステップＢ１およびステップＢ２の処理で生成される成分（係数）を示す。また、４段目は、ステップＢ３の処理で生成される偶数成分出力を示し、５段目は、ステップＢ４の処理で生成される奇数成分出力を示している。
【０１０５】
９×７分析フィルタに対してリフティング技術を適用した合成フィルタリングにおいては、ステップＢ３の処理で偶数成分が得られ、ステップＢ４の処理で奇数成分が得られる。なお、ステップＢ１乃至ステップＢ４の処理は、次の式（５）乃至式（８）で表される。
【０１０６】
stepＢ１：ｓi1＝ｓi2−δ（ｄi-12＋ｄi2）  ・・・（５）
stepＢ２：ｄi1＝ｄi3−γ（ｓi1＋ｓi+11）  ・・・（６）
stepＢ３：ｓi0＝ｓi1−β（ｄi-11＋ｄi1）  ・・・（７）
stepＢ４：ｄi0＝ｄi1−α（ｓi0＋ｓi+10）  ・・・（８）
（α＝-1.586134342，β＝-0.0529801185，γ＝0.8829110755，δ＝0.4435068520）
【０１０７】
このように、リフティング技術を適用した合成フィルタリングにおいては、ステップＢ１およびＢ２の処理が行われ、ステップＢ３で、偶数成分の係数が生成された後に、ステップＢ４で、奇数成分の係数が生成される。この際に用いられるフィルタバンクは、式（５）乃至式（８）に示されるように、除算とシフト演算のみで実現できる。したがって、計算量を大幅に低減することができる。
【０１０８】
そこで、次に説明するように、ウェーブレット逆変換部１７３においても、画像垂直方向に合成フィルタリング（垂直合成フィルタリング）および水平合成フィルタリング（水平合成フィルタリング）に、このリフティング技術を適用する。なお、用いる式が異なるだけであり、垂直合成フィルタリングは、図６を参照して上述した垂直分析フィルタリングと基本的に同様な動作を行い、水平合成フィルタリングは、図７を参照して上述した水平分析フィルタリングと基本的に同様な動作を行う。
【０１０９】
まず、垂直合成フィルタリングの処理について具体的に説明する。図１２は、垂直方向の係数群に対しての垂直合成フィルタリングを、図１１のリフティング構成により実行する場合の例を示している。
【０１１０】
図１２の例においては、垂直方向の係数に対して、図１１で上述した４つのステップ（ステップＢ１乃至Ｂ４）の処理を経て、偶数番目の係数（以下、偶数係数とも称する）と奇数番目の係数（以下、奇数係数とも称する）が生成される例が示されており、リフティングのステップの方向は、図中左から右に進む。
【０１１１】
また、垂直方向の係数の左側に示される数字は、ライン番号を示しており、左から１列目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表している。さらに、２列目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
【０１１２】
以下、動作について左から順に説明する。図１２の左側には、垂直方向にライン番号４乃至６の３ラインの係数が入力されて、垂直方向のリフティング構成による演算（すなわち、垂直リフティング演算）が行われる場合の例が示されている。なお、いまの場合、最上段の偶数係数は、奇数係数と組みになっていないのでその説明を省略する。
【０１１３】
この垂直リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、ライン番号０乃至５の６ラインの係数が必要である。
【０１１４】
その後、２番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号６および７の２ラインの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるライン番号５の係数も必要である。
【０１１５】
太線実線で示される３つの係数は、１番目の偶数係数および奇数係数を求めるための垂直リフティング演算（以下、１番目の垂直リフティング演算と称する）の過程で生成される係数のうちの一部である。
【０１１６】
したがって、２番目の偶数係数と奇数係数を求めるためには、結局、丸数字で示されるライン番号５乃至７の３ラインの係数の入力が必要であり、さらに、１番目の偶数係数と奇数係数を求めるための垂直リフティング演算の過程において生成される太線実線で示される３つの係数を記憶しておく必要がある。なお、このとき、垂直方向の３ラインの係数は、レベル毎に読み出される。
【０１１７】
したがって、１番目の垂直リフティング演算でバッファに記憶されていた太線実線で示される３つの係数と、入力されるライン番号５乃至７の３ラインの係数が用いられて垂直リフティング演算が行われることにより、２番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
【０１１８】
ライン番号７の係数の読み出しの後、２ラインの係数が追加して読み出される場合、すなわち、垂直方向にライン番号７乃至９の３ラインの係数が入力されて、垂直リフティング演算が行われる場合の例が、図１２の右側に示されている。
【０１１９】
２番目の場合と同様に、３番目の偶数係数と奇数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるライン番号８および９の２ラインの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるライン番号７の係数も必要である。
【０１２０】
なお、右側の太線実線で示される３つの係数は、左側の一点鎖線で示されるように、２番目の垂直リフティング演算で係数バッファ６６に記憶されている。
【０１２１】
したがって、２番目の垂直リフティング演算で記憶されていた太線実線で示される３つの係数と、入力されるライン番号７乃至９の３ラインの係数が用いられて垂直リフティング演算が行われることにより、３番目の偶数係数と奇数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の偶数係数と奇数係数を求めるために必要な係数であるので記憶される。
【０１２２】
以上のようにして、３ライン分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、垂直リフティング演算が、画面の最下位のラインまで実行されることで、垂直方向の合成フィルタリングが完了される。
【０１２３】
次に、水平合成フィルタリングについて具体的に説明する。図１３は、垂直方向の合成フィルタリングの結果を水平方向に並べて、水平合成フィルタリングを、図１１のリフティング構成により実行する場合の例を示している。
【０１２４】
図１３の例においては、水平方向の係数に対して、図１１で上述した４つのステップ（ステップＢ１乃至Ｂ４）の処理を経て、奇数係数と偶数係数が生成される例が示されており、リフティングのステップの方向は、図中上から下に進む。
【０１２５】
また、水平方向の係数の上に示される数字は、列（コラム）番号を示しており、上から１段目のハッチが付された丸および四角は、それぞれ、高域入力および低域入力を表しており、２段目以降の丸および四角は、それぞれ、リフティング演算の過程で生成される高域係数および低域係数を表しており、その中でも、黒丸および黒四角は、それぞれ、リフティング演算の結果である奇数係数および偶数係数を表している。
【０１２６】
以下、動作について上から順に説明する。図１３の上段には、水平方向にコラム番号５乃至７の３コラムの係数が入力されて水平方向のリフティング構成による演算（以下、水平リフティング演算と称する）が行われる場合の例が示されている。なお、いまの場合、最左側の偶数係数は奇数係数と組みになっていないのでその説明を省略する。
【０１２７】
この水平リフティング演算のステップＢ３において１番目の偶数係数を求め、ステップＢ４において１番目の奇数係数を求めるためには、コラム番号０乃至５の６コラムの係数が必要である。
【０１２８】
その後、２番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号６および７の２コラムの係数が必要であり、さらに、ステップＢ２のＱ１が示される係数を算出するためには、丸数字で示されるコラム番号５の係数も必要である。
【０１２９】
太線実線で示される３つの係数は、１番目の奇数係数および偶数係数を求めるための水平リフティング演算（以下、１番目の水平リフティング演算とも称する）の過程で生成される係数のうちの一部である。
【０１３０】
すなわち、２番目の奇数係数と偶数係数を求めるためには、結局、丸数字で示されるコラム番号５乃至７の３コラムの係数の入力が必要であり、さらに、１番目の水平リフティング演算の過程において生成される太線実線で示される３つの係数を、ラッチしておく必要がある。実際には、高々３つの係数であるので、フリップフロップのような小容量の記憶領域を用いることで対応することができる。
【０１３１】
したがって、１番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、入力されたコラム番号５乃至７の３コラムの係数が用いられて水平リフティング演算が行われることにより、その演算過程および終了時においては、２番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、３番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０１３２】
コラム番号７の係数の入力の後、水平方向に２コラムの係数が追加入力される場合、すなわち、水平方向にコラム番号７乃至９の３コラムの係数が入力されて、水平リフティング演算が行われる場合の例が、図１３の下段に示されている。
【０１３３】
２番目の場合と同様に、３番目の奇数係数と偶数係数を求めるためには、太線実線で示される３つの係数と、丸数字で示されるコラム番号８および９の２コラムの係数が必要であり、さらに、ステップＢ２のＱ２が示される係数を算出するためには、丸数字で示されるコラム番号７の係数も必要である。
【０１３４】
なお、下段の太線実線で示される３つの係数は、上段の一点鎖線で示されるように、２番目の水平リフティング演算でラッチされている。
【０１３５】
したがって、２番目の水平リフティング演算でラッチされていた太線実線で示される３つの係数と、新たに入力されるコラム番号７乃至９の３コラムの係数が用いられて水平リフティング演算が行われることにより、３番目の奇数係数と偶数係数を含めた４つの係数（太線点線で示される）が得られる。このうち、一点鎖線で示される３つの係数は、４番目の奇数係数と偶数係数を求めるために必要な係数であるので、内蔵されるフリップフロップにラッチされる。
【０１３６】
以上のようにして、３コラム分の係数を順次入力しながら、途中演算用の３つの係数を保持しながら、水平リフティング演算が、画面の最右端のコラムまで実行されることで、水平方向の合成フィルタリングが完了される。
【０１３７】
以上のように、垂直合成フィルタリングおよび水平合成フィルタリングにおいても、９×７ウェーブレット変換フィルタのリフティング構成が用いられることで、図１０を参照して上述したように、対応する分割レベルのバッファには、３ライン分の係数を記憶する各ラインの係数用のバッファが必要となり、さらに、図１２のＱ１およびＱ２の係数を求めるため、垂直リフティング演算の際、すでに使用したラインの係数も、次の垂直リフティング演算に必要になる。
【０１３８】
したがって、対応するレベルのバッファの内部では、１つのラインのバッファに記憶されている係数を、隣接するラインのバッファに、次々と転送していく構成となる。
【０１３９】
以上のように動画像データは、送信装置１０１において圧縮符号化され、符号化データとして送受信され、受信装置１０２において伸長復号される。
【０１４０】
図１４は、その圧縮符号化と伸長復号の各処理を模式的に示すものである。図１４に示される圧縮符号化処理１８１が送信装置１０１において実行され、伸長復号処理１８２が受信装置１０２において実行される。
【０１４１】
図１４に示されるように、圧縮符号化処理１８１においては、１ピクチャ分の非圧縮の画像データは、複数ライン（プレシンクト）毎にウェーブレット変換され、階層化された複数のサブバンドに分割される。図１４の非圧縮データブロック１乃至非圧縮データブロックＮは、それぞれ、プレシンクト単位の画像データである。非圧縮データブロック１乃至非圧縮データブロックＮのそれぞれが入力される毎にウェーブレット変換され、３階層のサブバンドに分割される。各サブバンドは、それぞれエントロピ符号化される。
【０１４２】
図１４のＬ（i，ｎ）は、各階層のサブバンドの圧縮符号化データを示す。ここで、iは、階層番号を示す。また、ｎは、符号化前の非圧縮データブロックの番号（プレシンクト番号）を示す。図１４の例の場合、i＝１，２，３、ｎ＝１，２，・・・，Ｎである。
【０１４３】
階層番号１の圧縮符号化データＬ（１，ｎ）は、最下位層のＬＬ成分、ＨＬ成分、ＬＨ成分、およびＨＨ成分の４つの成分が符号化されたものであり、階層番号２以上の階層の圧縮符号化データＬ（i，ｎ）（i≧２）は、その階層のＨＬ成分、ＬＨ成分、ＨＨ成分の３つの成分が符号化されたものである。
【０１４４】
上述したように、分析フィルタリングは、リフティング演算を用いて行われる。したがって、垂直分析フィルタリングにより、圧縮符号化データＬ（i，ｎ）は、非圧縮データブロックｎだけでなく、その他のブロックのデータも使用して生成される。つまり、他のブロックにも依存する。図１４の非圧縮データブロックｎや圧縮符号化データＬ（i，ｎ）の間の矢印は、この依存関係を示す。
【０１４５】
例えば、階層番号１の圧縮符号化データＬ（１，５）は、階層番号２の圧縮符号化データＬ（２，３）、Ｌ（２，４）、およびＬ（２，５）、階層番号３の圧縮符号化データＬ（３，２）、Ｌ（３，３）、Ｌ（３，４）、およびＬ（３，５）、並びに、非圧縮データの非圧縮データブロック１、非圧縮データブロック２、非圧縮データブロック３、非圧縮データブロック４、および非圧縮データブロック５に依存性がある。また、例えば、階層番号２の圧縮符号化データＬ（２，３）は、階層番号３の圧縮符号化データＬ（３，２）およびＬ（３，３）、並びに、非圧縮データの非圧縮データブロック１乃至非圧縮データブロック３に依存性がある。
【０１４６】
このように、圧縮符号化データの階層毎に、依存性のある非圧縮データブロック数（依存性の範囲）が異なる。入力動画像データは、例えば、HD-SDI（High Definition Serial Digital Interface）規格のインタフェース等を経由し、ピクチャデータの水平ラインを上から順に入力される。そのため、それぞれの圧縮符号化データは、依存性のある非圧縮データブロックが入力されるまで、生成出来ない（サブバンドが生成されない）。
【０１４７】
図１４に示されるように、各圧縮符号化データＬ（i，ｎ）はｎの小さい順に生成されるので、同順に受信装置１０２へ伝送される。
【０１４８】
伸長復号処理１８２は、図１４に示されるように、圧縮符号化処理１８１と対称な処理により実現される。依存性の関係も同様である。このため、非圧縮データブロック１は、階層番号３の圧縮符号化データＬ（３，１）およびＬ（３，２）、階層番号２の圧縮符号化データＬ（２，１）、Ｌ（２，２）、およびＬ（２，３）、階層番号１の圧縮符号化データＬ（１，１）、Ｌ（１，２）、Ｌ（１，３）、Ｌ（１，４）、およびＬ（１，５）と依存性があり、これら全ての圧縮符号化データが受信されるまで、復号されない（生成されない）。
【０１４９】
このため、図１４の例のように階層数が３の場合、伸長復号処理１８２において、非圧縮データブロックｎを復号するためには、少なくとも、圧縮符号化処理１８１において非圧縮データブロック（ｎ＋４）までが符号化されている必要がある。したがって、伝送遅延など除く、アルゴリズムにより発生する遅延である原理遅延は、非圧縮データブロックｎの入力時間をあわせると、非圧縮データブロック５ブロックの入力時間分となる。
【０１５０】
［システム全体の処理の説明］
次に、圧縮符号化・伸長復号処理以外の処理について説明する。図１５は、図１のネットワークシステムにより実行される処理の大まかな流れの例を示す図である。
【０１５１】
例えば、ビデオカメラ等を経由しビデオ入力インタフェースより送信装置１０１に入力されたビデオデータ（ビデオIN）は、動画像圧縮符号化部１２２により、上述したように階層圧縮符号化される。ビデオデータの各ピクチャは、矢印１９１に示されるようにブロック毎にウェーブレット変換され、複数階層のサブバンド毎に符号化された符号化データに変換される。
【０１５２】
各圧縮符号化データは、冗長符号化部１２３により、FEC（Forward Error Correction）符号化処理が施される。冗長符号化部１２３は、矢印１９２に示されるように、圧縮符号化データをFECブロック化し、矢印１９３に示されるように、そのFECブロック毎に、RTPパケット化（元データRTPパケット）して冗長データ（冗長データRTPパケット）を生成する。
【０１５３】
RTP送信部１２４は、各RTPパケットを、矢印１９４に示されるように、ネットワーク１１０を介して受信装置１０２に送信する。受信装置１０２のRTP受信部１３１は、そのRTPパケットを受信する。
【０１５４】
冗長復号部１３２は、受信したRTPパケットに対して、矢印１９５に示されるように、FEC復号処理を行い、さらにデパケタイズし、各ブロックの各階層の符号化データを抽出する。
【０１５５】
動画像伸長復号部１３３は、矢印１９６に示されるように、復号処理に必要な各ブロックの各階層の符号化データを用意し、矢印１９７に示されるように伸長復号し、逆ウェーブレット変換する。このようにして各非圧縮データブロックがブロック番号１から順に生成され、出力される。
【０１５６】
なお、圧縮符号化（ウェーブレット変換）の処理単位は、任意であり、例えばピクチャ単位で行うようにしてもよい。ただし、遅延時間低減のためには、上述したようにプレシンクト単位で行うのが望ましい。また、以上においては、圧縮符号化方法として、ウェーブレット変換を用いる方法を説明したが、符号化データを複数の解像度で復号可能な符号化方法（スケーラブルコーデック）であり、符号化（階層化）処理単位の符号化データを生成するために元画像の他の部分のデータが必要な（符号化（階層化）処理単位間で依存性のある）方法であれば、どのような方法を適用するようにしてもよい。例えば、ITU-T（International Telecommunication Union Telecommunication Standardization Sector）H.264/SVC（Scalable Video Codec）等であってもよい。
【０１５７】
以上のようなデータ伝送処理において、遅延時間を増大させずに、データの冗長度を向上させて復元性能を向上させる（より正確なデータ伝送を実現させる）ために、送信装置１０１の冗長符号化制御部１２１は、FECブロックサイズや冗長度の制御を行う。以下に、その送信装置１０１について説明する。
【０１５８】
［送信装置の構成例］
図１６は、送信装置１０１の主な構成例を示すブロック図である。冗長符号化制御部１２１は、動画像圧縮符号化部１２２における圧縮符号化処理（ウェーブレット変換処理）の階層数や、各ブロックの各階層の符号化データについて、その符号化データが依存する範囲（階層やブロック）を示す依存情報を取得する。
【０１５９】
ここでいう「依存」とは、上述したように、その符号化データを生成するのに必要なデータのことを示す。つまり、依存情報は、各ブロックの非圧縮データが階層化されて符号化された、ブロックおよび階層毎の各符号化データの、その符号化データを生成するのに、どのブロックのどの階層のデータが必要であるかを示す情報である。
【０１６０】
もちろん、これらの内容を直接的または間接的に示す情報であればどのような情報であってもよい。例えば、データの依存関係は、分析フィルタリングに用いられるフィルタの種類によって決定される。したがって、冗長符号化制御部１２１が、例えば、このフィルタの種類を示す情報を依存情報として取得するようにしてもよい。また、各情報の形式も任意である。
【０１６１】
冗長符号化制御部１２１は、それらの情報から冗長符号化処理を行うデータ単位であるFECブロックサイズや、各FECブロックにおいて生成する冗長データの量を示す冗長度を決定する。
【０１６２】
冗長符号化制御部１２１は、FECブロックサイズ決定部２０１および冗長度決定部２０２を有する。FECブロックサイズ決定部２０１は、動画像圧縮符号化部１２２より供給される階層や依存情報に基づいて、冗長符号化の処理単位である冗長符号化ブロック（以下、FECブロックと称する）のサイズ（FECブロックサイズ）を決定する。FECブロックサイズ決定部２０１は、FECブロックサイズ算出式２１１を予め有しており、その算出式を用いてFECブロックサイズを決定する。
【０１６３】
冗長度決定部２０２は、動画像圧縮符号化部１２２より供給される階層や依存情報に基づいて、各FECブロックの冗長度を決定する。冗長度決定部２０２は、冗長度算出式２１２を予め有しており、その算出式を用いて冗長度を決定する。
【０１６４】
冗長符号化制御部１２１は、冗長度を、（元データパケット数，冗長パケット数）という形式で指定する。以下においては、この（元データパケット数，冗長パケット数）の組を１つの冗長符号単位、所謂FECブロックとする。例えば、冗長符号化制御部１２１により、（元データパケット数，冗長パケット数）＝（１０，５）と指定される場合、冗長符号化部１２３は、元データパケット数１０個より冗長パケット数５個を生成する。つまり、RTP送信部１２４は、このFECブロックにおいて合計１５個のパケットを送信する。受信装置１０２（冗長復号部１３２）は、このFECブロックの１５個のパケットのうち、１０個以上のパケットを受信すれば、FEC復号処理により元データを復号することができる。
【０１６５】
冗長符号化制御部１２１は、決定したそれらの情報を、冗長符号化部１２３に供給する。
【０１６６】
冗長符号化部１２３は、冗長符号化制御部１２１より供給されるFECブロックサイズおよび冗長度を用いて、動画像圧縮符号化部１２２より供給される符号化データの冗長符号化を行う。
【０１６７】
冗長符号化部１２３は、FECブロック化部２２１、パケット化部２２２、およびFEC符号化部２２３を有する。
【０１６８】
FECブロック化部２２１は、動画像圧縮符号化部１２２より供給される、ブロックおよび階層毎の符号化データを、FECブロックとして分類する。図１５に示されるように、FECブロックは、１つの符号化データ、または、互いに同一の階層の複数の符号化データにより構成される。FECブロック化部２２１は、冗長符号化制御部１２１により指定されたFECブロックサイズとなるように各符号化データをまとめることにより、FECブロック化する。
【０１６９】
パケット化部２２２は、FECブロック毎の符号化データを、パケット化し、複数のRTPパケットを生成する。FEC符号化部２２３は、パケタイズ化したRTPパケットを単位として、FEC符号化を行う。FEC符号化部２２３は、例えば、リードソロモン（Reed-Solomon）符号等の消失誤り訂正符号を用い冗長符号化を行う。
【０１７０】
冗長符号化部１２３は、生成したRTPパケット（冗長データも含む）を、RTP送信部１２４に供給し、送信させる。
【０１７１】
［FECブロックサイズ］
次に、FECブロックサイズについて説明する。上述したように、動画像圧縮符号化部１２２による圧縮符号化方式では、階層毎に、依存する非圧縮データブロックや圧縮符号化データの範囲（データ数）が異なり、圧縮符号化時と伸長復号時とで、圧縮符号化データの処理順が異なる場合がある。必要なデータが揃うまで伸長復号されないので、圧縮符号化データが送信装置１０１から受信装置１０２に伝送された後、復号されるまでに時間的余裕がある場合がある。
【０１７２】
この時間的余裕の長さは、依存関係によって決まるが、階層毎に異なる。FECブロックサイズ決定部２０１は、この階層毎の時間的余裕の差に応じて、遅延目標指標を満たす範囲で出来るだけサイズが大きくなるように、FECブロックサイズを、階層毎に調整する。
【０１７３】
このようにすることにより、冗長符号化部１２３は、遅延目標指標を満たしながら、バーストパケット損失回復性能をより向上させるように冗長符号化を行うことができる。つまり、送信装置１０１は、遅延時間を不要に増大させずに、より正確にデータを伝送することができる。
【０１７４】
図１５の例を用いて説明する。すなわち、圧縮符号化処理の階層数は３であり、階層間のデータ依存関係は、図１５に示されるとおりである。
【０１７５】
非圧縮データブロックの１ブロック分の入力時間をＤとし、FEC処理時間と伝送遅延の合計時間をαとする。この例における圧縮符号化処理および伸長復号処理における原理遅延（以下、コーデック原理遅延と称する）は５Ｄとなる。
【０１７６】
任意の非圧縮データブロックｎの伸長復号には、図１５に示される依存関係から、階層番号１の圧縮符号化データＬ（１，ｎ）、Ｌ（１，ｎ＋１）、Ｌ（１，ｎ＋２）、Ｌ（１，ｎ＋３）、およびＬ（１，ｎ＋４）、階層番号２の圧縮符号化データＬ（２，ｎ）、Ｌ（２，ｎ＋１）、およびＬ（２，ｎ＋２）、並びに、階層番号３の圧縮符号化データＬ（３，ｎ）およびＬ（３，ｎ＋１）が必要になる。つまり、これらの圧縮符号化データが、受信されたか、若しくは、FEC復号処理による損失パケット回復されている必要がある。
【０１７７】
遅延目標指標が、例えば、５Ｄ＋αとすると、動画像伸長復号部１３３は、送信装置１０１に動画像データが入力されてから遅延目標指標５Ｄ＋α時間待機したのち、伸長復号処理を開始する。そのため、非圧縮データブロックｎを生成するための伸長復号処理の開始時刻には、圧縮符号化データＬ（i，ｋ）（i＝１，２，３）（ｋ＝１，２，・・・，ｎ＋４）が用意されている（受信または回復されている）必要がある。
【０１７８】
つまり、非圧縮データブロックｎを生成する伸長復号処理のために、階層番号１の圧縮符号化データは、伸長復号処理開始時刻の直前に受信したＬ（１，ｎ＋４）までのデータが必要だが、階層番号２の圧縮符号化データは、Ｌ（２，ｎ＋２）まで用意されていればよい。同様に、階層番号３の圧縮符号化データは、Ｌ（３，ｎ＋１）までしか必要でない。
【０１７９】
換言するに、階層番号１の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間Ｄの時間的余裕がある。同様に、階層番号２の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間３Ｄの時間的余裕がある。さらに同様に、階層番号３の圧縮符号化データは、受信が開始されてから伸長復号処理が開始されるまでに時間４Ｄの時間的余裕がある。
【０１８０】
FECによる損失パケット回復は、FECブロック内の全ての損失パケット以外のパケットが揃わないと実行できない。そのため、ｋ個の圧縮符号化データ毎にFECブロックを生成する場合、損失したパケットを受信してから最大（ｋ−１）Ｄ時間待たなければ、損失パケットを回復することが出来ない。
【０１８１】
そこで、FECブロックサイズ決定部２０１は、例えば、下記のように階層毎の圧縮符号化データの受信開始から伸長復号処理開始までの時間余裕に応じて、FECブロックサイズを調整する。
【０１８２】
階層番号１：圧縮符号化データ１個（圧縮符号化データ１個にFECブロックを生成する。
階層番号２：圧縮符号化データ３個（圧縮符号化データ３個にFECブロックを生成する。
階層番号３：圧縮符号化データ４個（圧縮符号化データ４個にFECブロックを生成する。
（各圧縮符号化データは、複数のRTPパケットに分割され、パケタイズ化される）
【０１８３】
この例のようにFECブロックを構成した場合、パケット損失が生じた場合でも、時間余裕以内に届いたパケットと冗長パケットが届いた時点でFEC復号が可能である。したがって、冗長パケットが十分な量生成されていれば、損失パケットの回復が可能となる。
【０１８４】
このようなFECブロックサイズの決定アルゴリズムを一般化すると、各階層のFECブロックサイズ（１個の非圧縮データブロックを圧縮符号化したときに生成される各階層の圧縮符号化データを単位とする）Ｂ（i）（階層番号i＝１，２，・・・）は、以下の式（９）で表わすことができる。
【０１８５】
【数１】
2010141659.tif 000003
・・・（９）
【０１８６】
ここで，ｄ（i）は階層iの圧縮符号化データの階層（i＋１）の圧縮符号化データに対する依存する圧縮符号化データ数（iが最下位層（例では階層３）を示す場合は依存する非圧縮符号化データ数）を示す。例えば、図１５の例では、ｄ（３）＝２，ｄ（２）＝２，ｄ（１）＝３である。また、Ｔは、上述した原理遅延以外に許容できる遅延時間をブロック数で示す許容遅延延長ブロック数を示し、Ｔ＝０の場合、上記の例とFECブロックサイズが一致する。
【０１８７】
例えば、目標遅延指標を、コーデック原理遅延、伝送遅延、およびFEC遅延等の合計とする場合、FECブロックサイズ決定部２０１は、許容遅延延長ブロック数Ｔ＝０とすればよい。これに対して、遅延が伸びてもバーストパケット損失回復性能を向上させたい場合、FECブロックサイズ決定部２０１は、許容遅延延長ブロック数Ｔを大きくすればよい。許容遅延延長ブロック数Ｔを大きくとることにより、FECブロックサイズを大きくすることができる。FECブロックサイズが大きい程、バーストパケット損失回復性能は向上する。ただし、遅延は増大する。
【０１８８】
つまり、この式（９）は、FECブロックサイズ算出式２１１の一例を示す。
【０１８９】
［冗長度］
冗長度決定部２０２は、FECブロックサイズ決定部２０１により決定されたFECブロックサイズ毎（階層毎）に、パケット損失回復性能指標を満たすように、冗長度を決定する。
【０１９０】
例えば、想定されるパケット損失率をｐとし、FECブロック内のパケット数をｎとし、元データパケット数をｋとし、冗長パケット数を（ｎ−ｋ）とする。このとき、目標FECブロック損失率をPtとすると、目標FECブロック損失率を満たすには下記の式（１０）を満たせば良い。
【０１９１】
【数２】
2010141659.tif 000004
・・・（１０）
【０１９２】
冗長度決定部２０２は、この式（１０）を満たすように、元データパケット数ｋおよび冗長パケット数（ｎ−ｋ）を決定する。つまり、この式（１０）は、冗長度算出式２１２の一例を示す。
【０１９３】
なお、冗長度の決定方式は任意であり、上述した以外の方法が用いられるようにしてもよい。例えば、階層毎のFECブロックサイズが異なるが、全ての階層において同一の指定された冗長度になるようにしてもよい。つまり、冗長度決定部２０２は省略することもできる。ただし、冗長度決定部２０２がFECブロックサイズに応じて冗長度を決定するようにする方が、冗長符号化制御部１２１は、バーストパケット損失に対する回復性能をより向上させることができる。
【０１９４】
［処理の流れの説明］
次に、以上に説明した各処理の流れについて説明する。最初に、送信装置１０１による、動画像データを圧縮符号化して送信する送信処理の流れの例を、図１７のフローチャートを参照して説明する。
【０１９５】
送信処理が開始されると、ステップＳ１０１において、冗長符号化制御部１２１は、FECブロックサイズおよび冗長度を決定する。ステップＳ１０２において、動画像圧縮符号化部１２２は、入力された動画像データに対してプレシンクト毎に圧縮符号化を行う。ステップＳ１０３において、冗長符号化部１２３は、生成された符号化データに対して冗長符号化を行う。ステップＳ１０４において、RTP送信部１２４は、生成されたRTPパケットを、ネットワーク１１０を介して受信装置１０２に送信する。
【０１９６】
ステップＳ１０５において、動画像圧縮符号化部１２２は、送信処理を終了するか否かを判定する。未送信の動画像データが存在し、送信処理を終了しないと判定された場合、処理は、ステップＳ１０２に戻り、それ以降の処理が繰り返される。ステップＳ１０５において、全ての動画像データが送信され、送信処理を終了すると判定された場合、送信処理が終了される。
【０１９７】
次に、図１７のステップＳ１０１において実行されるブロックサイズ・冗長度決定処理の流れの例を、図１８のフローチャートを参照して説明する。
【０１９８】
ブロックサイズ・冗長度決定処理が開始されると、冗長符号化制御部１２１は、ステップＳ１２１において、圧縮符号化の階層数および階層間の依存情報を取得する。
【０１９９】
ステップＳ１２２において、FECブロックサイズ決定部２０１は、ステップＳ１２１の処理により取得された情報に基づいて、各階層のFECブロックサイズを求める。ステップＳ１２３において、冗長度決定部２０２は、ステップＳ１２１の処理により取得された情報に基づいて、各階層の冗長度を求める。
【０２００】
ステップＳ１２４において、冗長符号化制御部１２１は、ステップＳ１２２の処理により決定されたFECブロックサイズ、ステップＳ１２３の処理により決定された冗長度を、要求に応じて冗長符号化部１２３に提供する。なお、ステップＳ１２４の処理は、それ以降、継続的に行われる。
【０２０１】
ステップＳ１２４においてFECブロックサイズおよび冗長度の提供の準備が整うと、ブロックサイズ・冗長度決定処理が終了され、処理は図１７のステップＳ１０１に戻り、ステップＳ１０２以降の処理が実行される。
【０２０２】
次に、図１７のステップＳ１０３において実行される冗長符号化処理の流れの例について、図１９のフローチャートを参照して説明する。ステップＳ１４１において、冗長符号化部１２３は、初期化処理を行う。ステップＳ１４２において、冗長符号化部１２３は、冗長符号化処理を終了するか否かを判定する。未処理の符号化データが存在し、冗長符号化処理を終了しないと判定された場合、処理はステップＳ１４３に進む。
【０２０３】
ステップＳ１４３において、冗長符号化部１２３は、動画像圧縮符号化部１２２より、処理対象階層の圧縮符号化データを取得する。ステップＳ１４４において、冗長符号化部１２３は、冗長符号化制御部１２１より、処理対象階層のFECブロックサイズおよび冗長度を取得する。ステップＳ１４５において、冗長符号化部１２３は、圧縮符号化データを必要分取得したか否かを判定する。
【０２０４】
冗長符号化に必要な分の圧縮符号化データを全て取得していないと判定された場合、処理はステップＳ１４２に戻り、それ以降の処理が繰り返される。
【０２０５】
また、ステップＳ１４５において、処理対象FECブロックの圧縮符号化データを全て取得し、冗長符号化に必要な分の圧縮符号化データを全て取得したと判定された場合、処理はステップＳ１４６に進む。ステップＳ１４６において、冗長符号化部１２３は、FEC符号化を行い、RTPパケット化し、冗長データを生成する。ステップＳ１４６の処理が終了されると処理はステップＳ１４２に戻り、それ以降の処理が繰り返される。
【０２０６】
ステップＳ１４２において、全ての圧縮符号化データが冗長符号化され、冗長符号化処理を終了すると判定された場合、冗長符号化処理は終了され、処理は、図１７のステップＳ１０３に戻り、ステップＳ１０４以降の処理が実行される。
【０２０７】
以上のように、冗長符号化制御部１２１が、圧縮符号化処理の階層数や依存関係により決定される受信側の時間的余裕の長さに応じて、FECブロックサイズを階層毎に独立して決定することにより、遅延時間を不要に増大させないように、FECブロックサイズをできるだけ大きくするようにすることができる。つまり、遅延時間を不要に増大させずに、バーストパケット損失に対する回復性能を向上させることができる。
【０２０８】
また、冗長符号化制御部１２１は、このFECブロックサイズ（パケット数）に応じて、冗長度を決定することができる。従って、冗長符号化制御部１２１は、遅延時間を不要に増大させないように、冗長データをより多く生成させるようにすることができ、さらに、バーストパケット損失に対する回復性能を向上させることができる。
【０２０９】
このように冗長符号化されたデータを、冗長復号する冗長復号部１３２により実行される冗長復号処理の流れの例を図２０のフローチャートを参照して説明する。
【０２１０】
冗長復号処理が開始されると、冗長復号部１３２は、ステップＳ１６１において、初期化処理を行い、ステップＳ１６２において、冗長復号処理を終了するか否かを判定する。受信された未処理の圧縮符号化データが存在し、冗長復号処理を終了しないと判定された場合、処理はステップＳ１６３に進む。
【０２１１】
ステップＳ１６３において、冗長復号部１３２は、RTP受信部１３１において受信されたRTPパケットを取得する。ステップＳ１６４において、冗長復号部１３２は、ステップＳ１６３において取得したRTPパケットが属するFECブロックを復号可能であるか否かを判定する。処理対象FECブロックのRTPパケットを十分な数取得しておらず、復号不可能であると判定された場合、処理は、ステップＳ１６２に戻り、それ以降の処理が繰り返される。また、ステップＳ１６４において、処理対象FECブロックのRTPパケットを十分な数取得しており、復号可能であると判定された場合、処理は、ステップＳ１６５に進む。
【０２１２】
ステップＳ１６５において、冗長復号部１３２は、FEC復号を行い、パケットの損失が発生した場合、符号化データを復元する。以上のように処理された符号化データは、動画像伸長復号部１３３に供給され、伸長復号される。ステップＳ１６５の処理が終了すると、処理は、ステップＳ１６２に戻り、それ以降の処理が繰り返される。
【０２１３】
ステップＳ１６２において、冗長復号処理を終了すると判定された場合、冗長復号処理は終了される。
【０２１４】
＜２．第２の実施の形態＞
［送信装置の構成例］
なお、以上においては、冗長符号化制御部１２１が、動画像圧縮符号化部１２２より取得した、圧縮符号化の階層数や階層間の依存情報等の情報に基づいて、冗長符号化のFECブロックサイズや冗長度を決定するように説明した。上述したように階層間の依存関係は、圧縮符号化に使用されるフィルタの種類によって決定される。圧縮符号化に使用されるフィルタの種類および圧縮符号化の階層数は、動画像圧縮符号化部１２２の仕様でもあり、予め定められている場合が多い。
【０２１５】
例えば、動画像圧縮符号化部１２２が複数種類のフィルタを予め用意しており、いずれかを選択して使用するような場合、使用されるフィルタによって依存関係が変化する場合があるので、冗長符号化制御部１２１は、フィルタに応じて冗長符号化のFECブロックサイズや冗長度を決定するのが望ましい。また、圧縮符号化の階層数が可変の場合、冗長符号化制御部１２１は、その階層数に応じて冗長符号化のFECブロックサイズや冗長度を決定するのが望ましい。
【０２１６】
しかしながら、動画像圧縮符号化部１２２が１種類の方法でしか圧縮符号化を行うことができない場合、圧縮符号化に使用されるフィルタの種類および圧縮符号化の階層数は、予め定められている。したがって、冗長符号化制御部１２１が、その予め既知の、圧縮符号化の階層数や階層間に適した、FECブロックサイズおよび冗長度を予め算出し、その算出結果を保持し、提供するようにしてもよい。
【０２１７】
図２１は、その場合の送信装置１０１の主な構成例を示すブロック図である。図２１に示されるように、この場合の冗長符号化制御部１２１は、予め算出されたFECブロックサイズ２４１および冗長度２４２を保持する記憶部２３１を有する。記憶部２３１は、任意の記憶媒体で構成される記憶領域である。
【０２１８】
FECブロックサイズ２４１は、動画像圧縮符号化部１２２において実行される圧縮符号化処理の階層数、および、階層間の依存関係に応じて、遅延時間を不要に増大させないように決定された各階層のFECブロックサイズである。なお、このFECブロックサイズの決定方法は、図１６のFECブロックサイズ決定部２０１による決定方法と同様である。
【０２１９】
冗長度２４２は、動画像圧縮符号化部１２２において実行される圧縮符号化処理の階層数、および、階層間の依存関係に応じて、遅延時間を不要に増大させないように決定された各FECブロックの冗長度である。なお、この冗長度の決定方法は、図１６の冗長度決定部２０２による決定方法と同様である。
【０２２０】
したがって、この場合、冗長符号化部１２３に提供されるFECブロックサイズおよび冗長度は予め用意されているので、図１８に示されるブロックサイズ・冗長度決定処理のうち、ステップＳ１２１乃至ステップＳ１２３の処理を省略することができ、冗長符号化の制御をより容易に行うことができる。
【０２２１】
＜３．第３の実施の形態＞
［送信装置の構成例］
また、冗長度の算出において、圧縮符号化データの階層毎の優先度を考慮するようにしてもよい。
【０２２２】
動画像の圧縮符号化方式に階層符号化を用い、例えば、上述したウェーブレット変換処理のように、画像の周波数成分毎に階層が分かれている場合、低周波成分を含む階層ほど損失した場合の復号後の画像への影響度が大きい。つまり、データは階層毎にその重要度が異なる。したがって、その重要度に応じて、階層毎に優先度を設定するようにしてもよい。例えば、階層番号が小さいほど、優先度が高いデータとし、その優先度の高いデータほど、データ伝送の信頼性をより向上させるようにしてもよい。
【０２２３】
データ伝送の信頼性を向上させるために、冗長符号化制御部１２１は、冗長度を優先度に応じて調整する。つまり、冗長符号化制御部１２１は、目標FECブロック損失率Ptを、優先度に応じて階層毎に調整する。
【０２２４】
図２２は、この場合の送信装置１０１の主な構成例を示すブロック図である。図２２に示されるように、冗長符号化制御部１２１は、FECブロックサイズ決定部２０１および冗長度決定部２０２の他に、目標FECブロック損失率設定部２５１を有する。
【０２２５】
目標FECブロック損失率設定部２５１は、データ伝送の信頼性を向上させるために、目標FECブロック損失率Ptを、優先度に応じて階層毎に、例えば以下のように調整する。
【０２２６】
階層番号＝１：Pt＝１０-8
階層番号＝２：Pt＝１０-5
階層番号＝３：Pt＝１０-3
【０２２７】
目標FECブロック損失率設定部２５１により、目標FECブロック損失率Ptが設定されると、冗長度決定部２０２は、その目標FECブロック損失率Ptを用いて冗長度を算出する。
【０２２８】
［処理の流れの説明］
この場合の、ブロックサイズ・冗長度決定処理の流れの例を図２３のフローチャートを参照して説明する。なお、このフローチャートは、図１８のフローチャートに対応する。
【０２２９】
ブロックサイズ・冗長度決定処理が開始されると、ステップＳ１８１およびステップＳ１８２の各処理が、図１８のステップＳ１２１およびステップＳ１２３の各処理の場合と同様に実行される。
【０２３０】
ステップＳ１８３において、目標FECブロック損失率設定部２５１は、階層の優先度に応じて、目標FECブロック損失率Ptを設定する。ステップＳ１８４において、冗長度決定部２０２は、ステップＳ１８３において設定された目標FECブロック損失率Ptを用いて冗長度を求める。
【０２３１】
ステップＳ１８５の処理は、図１８のステップＳ１２４の処理の場合と同様に実行される。
【０２３２】
FECブロックサイズおよび冗長度の提供の準備が整うと、ブロックサイズ・冗長度決定処理が終了され、処理は、図１７のステップＳ１０１に戻り、ステップＳ１０２以降の処理が繰り返される。
【０２３３】
以上のように、冗長符号化制御部１２１は、階層毎のデータの優先度に応じて冗長度を決定することにより、不要な遅延時間を増大させずに、送信装置１０１によるデータ伝送の信頼性をより向上させることができる。
【０２３４】
＜４．第４の実施の形態＞
［ネットワークシステムの構成例］
なお、冗長符号化制御部１２１が、FECブロックサイズや冗長度の制御を、初期状態だけでなく、適宜行うようにしてもよい。例えば、冗長符号化制御部１２１が、データを伝送させるネットワーク１１０の状況等に基づいて、FECブロックサイズや冗長度の制御を適宜行うようにしてもよい。
【０２３５】
図２４は、その場合のネットワークシステム１００の主な構成例を示すブロック図である。図２４に示される例の場合、送信装置１０１は、図１の構成の他に、さらに、RTCP通信部３０１を有する。また、受信装置１０２は、図１の構成の他に、さらに、RTCP通信部３０２を有する。
【０２３６】
RTCP通信部３０１およびRTCP通信部３０２は、ネットワーク１１０の状況を示す情報（ネットワーク状況情報）を、例えば、IETF RFC 3550記載のRTCP（RTP Control Protocol） Sender Report（SR）パケットおよびRTCP Receiver Report（RR）パケットを送受信することにより授受する。ネットワーク状況情報としては、例えば、往復伝送遅延を示す所謂RTT（Round Trip Time）や、パケット損失率が考えられる。
【０２３７】
往復伝送遅延（RTT）は、RTCP通信部３０１およびRTCP通信部３０２間でパケットを送受信（往復）させることにより求めることができる。パケット損失率は、受信装置１０２のRTP受信部１３１が求め、RTCP通信部３０２を介してRTCP通信部３０１に提供される。もちろん、これらの情報を間接的に示す情報であっても良い、情報の形式も任意である。また、これら以外にも、任意のパラメータが適用可能である。
【０２３８】
冗長符号化制御部１２１は、RTCP通信部３０１において取得されたネットワーク状況情報を、FECブロックサイズや冗長度の決定に反映させる。このようにすることにより、例えばインターネットのように、ネットワーク１１０が、帯域の変動し易い通信経路であっても、冗長符号化制御部１２１は、その通信状況に応じて適切にFECブロックサイズや冗長度を決定することができ、不要な遅延時間を増大させずに、送信装置１０１によるデータ伝送の信頼性をより向上させることができる。
【０２３９】
［送信装置の構成例］
図２５は、図２４の例の場合の送信装置１０１の主な構成例を示すブロック図である。図２５に示されるように、この場合の送信装置１０１は、図１６に示される構成の他に、RTCP通信部３０１を有する。また、この場合の冗長符号化制御部１２１は、図１６に示される構成の他に、往復伝播遅延算出部３１１およびパケット損失率算出部３１２を有する。
【０２４０】
往復伝播遅延算出部３１１は、RTCP通信部３０１において取得されるネットワーク接続情報に基づいて、ネットワーク１１０を介して送信装置１０１と受信装置１０２の間でパケットを往復させたときの遅延時間を示す往復伝播遅延（RTT）の、所定時間の平均値を算出する。
【０２４１】
FECブロックサイズ決定部２０１は、動画像圧縮符号化部１２２より取得する階層数や依存情報の他に、この往復伝播遅延（RTT）（往復伝播遅延の所定時間の平均値）を用いて、例えば、以下の式（１１）により、FECブロックサイズを決定する。
【０２４２】
【数３】
2010141659.tif 000005
・・・（１１）
【０２４３】
式（１１）において、βは正数係数であり、RTTは往復伝播遅延（所定時間の平均値）を示す。式（１１）に示されるように、冗長符号化制御部１２１は、伝播遅延が増加する程、FECブロックサイズが小さくなるようにFECブロックサイズの決定を行う。このようにすることにより、伝播遅延の増大分を、FECブロックサイズの縮小によりカバーさせることができ、冗長符号化制御部１２１は、原理遅延の他にネットワーク１１０の伝播遅延も含む全体遅延の変動を抑制することができる。
【０２４４】
なお、往復伝播遅延の平均値を求める時間の長さは任意である。例えば、FECブロックサイズの更新間隔としてもよい。また、例えば、往復伝播遅延の平均値を用いる代わりに、最新の往復伝播遅延の値をそのままFECブロックサイズの決定に用いるようにしてもよい。
【０２４５】
パケット損失率算出部３１２は、RTCP通信部３０１において取得されるネットワーク接続情報に基づいて、受信装置１０２側で発生するパケット損失率の所定時間の平均値を算出する。冗長度決定部２０２は、動画像圧縮符号化部１２２より取得する階層数や依存情報の他に、このパケット損失率の所定時間の平均値を用いて、冗長度を決定する。このとき、冗長度決定部２０２は、上述した場合と同様に、式（１０）の冗長度算出式２１２を用いて冗長度を算出する。ただし、以上においては式（１０）のｐをパケット損失率の想定値としたが、ここでは、式（１０）のｐを、パケット損失率算出部３１２により算出されたパケット損失率の所定時間の平均値とする。
【０２４６】
つまり、冗長符号化制御部１２１は、受信側のパケット損失率の変化（平均値）を、冗長度に反映させる。このようにすることにより、冗長符号化制御部１２１は、伝送中にネットワーク状況に応じて必要最小限の冗長度でパケットを伝送させるようにすることができる。
【０２４７】
なお、パケット損失率の平均値を求める時間の長さは任意である。例えば、冗長度の更新間隔としてもよい。また、例えば、パケット損失率の平均値を用いる代わりに、最新のパケット損失率の値をそのまま冗長度の決定に用いるようにしてもよい。
【０２４８】
［処理の流れの説明］
次に、この場合の各種処理の流れの例について説明する。この場合の、送信装置１０１による送信処理の流れの例を、図２６のフローチャートを参照して説明する。
【０２４９】
図２６のフローチャートは、図１７のフローチャートに対応するものである。送信処理が開始されると、RTCP通信部３０１は、ステップＳ２０１において、往復伝播遅延やパケット損失率等の情報を含むネットワーク状況情報を取得する。ネットワーク状況情報が取得されると、ステップＳ２０２乃至ステップＳ２０６の各処理が、図１７のフローチャートのステップＳ１０１乃至ステップＳ１０５の各処理と同様に実行される。ただし、ステップＳ２０６において終了しないと判定された場合、処理は、ステップＳ２０１に戻りそれ以降の処理を繰り返す。
【０２５０】
つまり、図２６の場合、FECブロックサイズおよび冗長度の決定（更新）を繰り返し実行する。このようにすることにより、冗長符号化制御部１２１は、FECブロックサイズおよび冗長度を動的に制御することができる。
【０２５１】
次に、図２７のフローチャートを参照して、図２６のステップＳ２０２において実行されるブロックサイズ・冗長度決定処理の流れの例を説明する。このフローチャートは、図１８のフローチャートに対応する。
【０２５２】
ステップＳ２２１の処理は、図１８のステップＳ１２１と同様に実行される。ステップＳ２２２において、往復伝播遅延算出部３１１は、往復伝播遅延の所定時間の平均値を算出する。ステップＳ２２３において、FECブロックサイズ決定部２０１は、ステップＳ２２１およびステップＳ２２２において得られた情報を用いて、各階層のFECブロックサイズを求める。
【０２５３】
ステップＳ２２４において、パケット損失率算出部３１２は、パケット損失率の平均値を算出する。ステップＳ２２５において、冗長度決定部２０２は、ステップＳ２２１およびステップＳ２２４において得られた情報を用いて、各階層の冗長度を求める。ステップＳ２２６の処理は、図１８のステップＳ１２４と同様に実行される。
【０２５４】
このように制御することにより、冗長符号化制御部１２１は、FECブロックサイズや冗長度を、往復伝播遅延やパケット損失率等のネットワーク接続状況に応じて、動的に制御することができる。
【０２５５】
なお、FECブロックサイズのみ動的に制御されるようにし、冗長度は予め定められた固定値とするようにしてもよい。また、FECブロックサイズのみ動的に制御されるようにし、冗長度は、例えば図１６や図２２を参照して説明したように静的に制御される（送信処理の初期状態においてのみ制御される）ようにしてもよい。
【０２５６】
＜５．第５の実施の形態＞
［送信装置の構成例］
なお、以上においては、冗長符号化制御部１２１が、往復伝播遅延の所定時間の平均値を用いてFECブロックサイズを決定するように説明したが、その他にも、例えば往復伝播遅延の所定時間内の最大値を用いてFECブロックサイズを決定するようにしてもよい。図２８は、その場合の送信装置１０１の構成例を示すブロック図である。
【０２５７】
図２８において、送信装置１０１の構成は、図２５に示される構成例と基本的に同様であるが、冗長符号化制御部１２１は、図２５の往復伝播遅延算出部３１１の代わりに、最大往復伝播遅延算出部３２１を有する。
【０２５８】
最大往復伝播遅延算出部３２１は、RTCP通信部３０１において取得されるネットワーク接続情報に基づいて、ネットワーク１１０を介して送信装置１０１と受信装置１０２の間でパケットを往復させたときの遅延時間を示す往復伝播遅延（RTT）の、所定時間内の最大値（最大往復伝播遅延）を算出する。
【０２５９】
FECブロックサイズ決定部２０１は、動画像圧縮符号化部１２２より取得する階層数や依存情報の他に、この最大往復伝播遅延を用いて、例えば、以下の式（１２）により、FECブロックサイズを決定する。
【０２６０】
【数４】
2010141659.tif 000006
・・・（１２）
【０２６１】
式（１２）において、βおよびγはそれぞれ正数係数であり、RTTは往復伝播遅延の所定時間の平均値を示し、Ｎは往復伝播遅延のジッタを示す。つまり、式（１２）において、所定時間の平均値にジッタを加算した（βRTT＋γＮ）が最大往復伝播遅延である。式（１２）に示されるように、冗長符号化制御部１２１は、最大伝播遅延が増加する程、FECブロックサイズが小さくなるようにFECブロックサイズの決定を行う。このようにすることにより、冗長符号化制御部１２１は、伝播遅延の最大値を基準としてFECブロックサイズを決定することができ、瞬間的に伝播遅延が増大する場合も不要な遅延時間が増大しないようにすることができる。つまり、冗長符号化制御部１２１は、原理遅延の他にネットワーク１１０の伝播遅延も含む全体遅延の変動を抑制することができる。
【０２６２】
なお、最大往復伝播遅延を求める時間の長さは任意である。例えば、FECブロックサイズの更新間隔としてもよい。
【０２６３】
［処理の流れの説明］
次に、この場合の各種処理の流れの例について説明する。この場合の、送信装置１０１による送信処理の流れは、図２６を参照して説明した場合と同様であるので、その説明は省略する。
【０２６４】
図２９のフローチャートを参照して、図２６のステップＳ２０２において実行されるブロックサイズ・冗長度決定処理の流れの例を説明する。このフローチャートは、図２７のフローチャートに対応し、基本的に同様に実行される。
【０２６５】
つまり、ステップＳ２４１の処理は、図２７のステップＳ２２１と同様に実行される。ステップＳ２４２において、最大往復伝播遅延算出部３２１は、往復伝播遅延の所定時間内の最大値（最大往復伝播遅延）を算出する。ステップＳ２４３において、FECブロックサイズ決定部２０１は、ステップＳ２４１およびステップＳ２４２において得られた情報を用いて、各階層のFECブロックサイズを求める。
【０２６６】
ステップＳ２４４乃至ステップＳ２４６の各処理は、図２７のステップＳ２２４乃至ステップＳ２２６と同様に実行される。
【０２６７】
このように制御することにより、冗長符号化制御部１２１は、FECブロックサイズや冗長度を、往復伝播遅延やパケット損失率等のネットワーク接続状況に応じて、動的に制御することができる。
【０２６８】
この場合も、FECブロックサイズのみ動的に制御されるようにし、冗長度は予め定められた固定値とするようにしてもよい。また、FECブロックサイズのみ動的に制御されるようにし、冗長度は、例えば図１６や図２２を参照して説明したように静的に制御される（送信処理の初期状態においてのみ制御される）ようにしてもよい。
【０２６９】
＜６．第６の実施の形態＞
［送信装置の構成例］
以上においては、FECブロックサイズや冗長度が、動的または静的に制御されるように説明したが、冗長符号化制御部１２１が、例えばネットワーク接続情報に基づいて、FECブロックサイズや冗長度を動的に制御するか、静的に制御するかを選択するようにしてもよい。
【０２７０】
図３０は、その場合の送信装置１０１の主な構成例を示すブロック図である。図３０の例において、RTCP通信部３０１は、RTP送信部１２４に接続されるネットワーク１１０がどのような通信経路であるかを示すネットワーク情報を含むネットワーク接続情報を取得する。ネットワーク情報は、ネットワーク１１０が、例えば、イントラネットワーク、LAN（Local Area Network）、インターネット等、どのような通信経路であるかを示す情報である。このネットワーク情報は、ネットワーク１１０を構成する通信経路の種類を直接的または間接的に示す情報であれば、どのような情報であっても良い。また、ネットワーク情報の形式は任意である。
【０２７１】
冗長符号化制御部１２１は、制御方法選択部４０１、静的制御部４０２、および動的制御部４０３を備える。制御方法選択部４０１は、RTCP通信部３０１により取得されるネットワーク情報に基づいて、FECブロックサイズや冗長度の制御のために、静的制御部４０２または動的制御部４０３のいずれか一方を選択し駆動させる。
【０２７２】
静的制御部４０２は、記憶部２３１を有する。すなわち、静的制御部４０２は、図２１を参照して説明した場合の冗長符号化制御部１２１と同様の構成を有し、同様の処理を行う。つまり、静的制御部４０２は、送信処理の初期状態において、FECブロックサイズや冗長度の決定を静的に行う。
【０２７３】
動的制御部４０３は、往復伝播遅延算出部３１１、FECブロックサイズ決定部２０１、パケット損失率算出部３１２、および冗長度決定部２０２を有する。すなわち、動的制御部４０３は、図２５を参照して説明した場合の冗長符号化制御部１２１と同様の構成を有し、同様の処理を行う。つまり、動的制御部４０３は、FECブロックサイズや冗長度の決定を、ネットワーク接続情報に基づいて動的に行う。
【０２７４】
例えば、制御方法選択部４０１は、送信装置１０１が接続されるネットワーク１１０がイントラネットやLANのように比較的安定した通信経路である場合、静的制御部４０２を選択し、静的制御部４０２を駆動させ、FECブロックサイズや冗長度を決定させる。
【０２７５】
また、例えば、制御方法選択部４０１は、送信装置１０１が接続されるネットワーク１１０がインターネットのように比較的不安定な通信経路である場合、動的制御部４０３を選択し、動的制御部４０３を駆動させ、FECブロックサイズや冗長度を決定させる。
【０２７６】
［処理の流れの説明］
この場合の送信装置１０１による送信処理の流れの例を図３１のフローチャートを参照して説明する。送信処理が開始されると、RTCP通信部３０１は、ステップＳ２６１において、ネットワーク情報を取得する。ステップＳ２６２において、冗長符号化制御部１２１の制御方法選択部４０１は、ネットワーク情報に基づいて、ネットワーク１１０の特性の変動性に応じて、制御方法を選択する。つまり、制御方法選択部４０１は、ネットワーク１１０の特性の変動性が比較的小さい場合、静的制御部４０２を制御し駆動させる。また、ネットワーク１１０の特性の変動性が比較的大きい場合、制御方法選択部４０１は、動的制御部４０３を制御し駆動させる。
【０２７７】
ステップＳ２６３において、制御方法選択部４０１は、静的方法を選択したか否かを判定する。静的方法が選択されたと判定された場合、処理はステップＳ２６４に進む。ステップＳ２６４において、静的制御部４０２は、冗長符号化を静的に制御し、データ送信を行わせる。ステップＳ２６４の処理が終了すると、送信処理が終了される。
【０２７８】
また、ステップＳ２６３において、動的方法が選択されたと判定された場合、処理はステップＳ２６５に進む。ステップＳ２６５において、動的制御部４０３は、冗長符号化を動的に制御し、データ送信を行わせる。ステップＳ２６５の処理が終了すると、送信処理が終了される。
【０２７９】
このようにすることにより、冗長符号化制御部１２１は、送信装置１０１が接続されるネットワーク１１０の特性に応じて、適切な制御方法を選択し、その選択した制御方法により冗長符号化を制御する（FECブロックサイズや冗長度を決定する）ことができる。つまり、冗長符号化制御部１２１は、不要な遅延の増大を抑制しながら、バーストパケット損失耐性をより向上させるように、データを伝送させることができる。
【０２８０】
なお、制御方法選択部４０１は、この切替制御を静的に行うようにしてもよいが、動的に行うようにしてもよい。また、静的制御部４０２は、例えば、図１６に示される冗長符号化制御部１２１と同様の構成を有し、同様の処理を行うようにしてもよい。また、静的制御部４０２が、例えば、図２２に示される冗長符号化制御部１２１と同様の構成を有し、同様の処理を行うようにしてもよい。さらに、FECブロックサイズや冗長度を静的に制御するものであれば、どのような構成であってもよい。
【０２８１】
また、動的制御部４０３は、例えば、図２５に示される冗長符号化制御部１２１と同様の構成を有し、同様の処理を行うようにしてもよい。また、静的制御部４０２が、例えば、図２８に示される冗長符号化制御部１２１と同様の構成を有し、同様の処理を行うようにしてもよい。さらに、FECブロックサイズや冗長度を静的に制御するものであれば、どのような構成であってもよい。
【０２８２】
以上のように、本発明によれば、動画像圧縮符号化方式に階層符号化を用いた場合のマルチメディアストリーミング、リアルタイムコミュニケーションにおいて、遅延の増加を最小限に抑制しながら、出来る限りバーストパケット損失耐性を高めるようにした冗長符号化伝送が可能となる。
【０２８３】
特に、動画像符号化方式の処理遅延が小さい場合、冗長符号化による遅延を最小限と出来るため、動画像符号化方式の利点で低遅延性を最大限生かした高品質伝送が可能となる。
【０２８４】
また、遅延要求とデータ損失耐性要求の強さに応じて、パラメータ調整を行うことにより、低遅延（処理速度）を優先させたり、バーストパケット損失耐性を優先させたり、調整することができる。
【０２８５】
以上のように、本発明によれば、階層符号化による圧縮符号化された動画像データをパケット損失回復用に冗長符号化を行うことができる。また、本発明によれば、低遅延なリアルタイム伝送を行う場合に、冗長符号化のために遅延を著しく増加させることなく、バースト損失耐性を高めた伝送を行うことができる。さらに階層毎に独立した冗長符号化ブロックを生成し、冗長符号化ブロックサイズを階層毎の依存する入力動画像データ範囲の大きさに応じて調整することにより、遅延の著しい増加を抑制することができる。また、本発明によれば、冗長符号化ブロックサイズに応じて階層毎に冗長度を調整し、全ての階層で同一の回復性能が得られるようにすることもできる。さらに本発明によれば、階層毎のデータ優先度に応じて目標とする回復性能を調整し、その値に応じて冗長度を更に調整することもできる。
【０２８６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図３２に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０２８７】
図３２において、パーソナルコンピュータ７００のCPU（Central Processing Unit）７０１は、ROM（Read Only Memory）７０２に記憶されているプログラム、または記憶部７１３からRAM（Random Access Memory）７０３にロードされたプログラムに従って各種の処理を実行する。RAM７０３にはまた、CPU７０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２８８】
CPU７０１、ROM７０２、およびRAM７０３は、バス７０４を介して相互に接続されている。このバス７０４にはまた、入出力インタフェース７１０も接続されている。
【０２８９】
入出力インタフェース７１０には、キーボードやマウスなどよりなる入力部７１１、CRT（Cathode Ray Tube）、LCD（Liquid Crystal Display）、有機ELディスプレイ（Organic ElectroLuminescence Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部７１２、ハードディスクやSSD（Solid State Drive）などより構成される記憶部７１３、モデム、LAN（Local Area Network）インタフェース、USB（Universal Serial Bus）インタフェース、IEEE（Institute of Electrical and Electronic Engineers）１３９４インタフェース、ブルートゥースインタフェース、または無線LANインタフェースなどより構成される通信部７１４が接続されている。通信部７１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０２９０】
入出力インタフェース７１０にはまた、必要に応じてドライブ７１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア７２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部７１３にインストールされる。
【０２９１】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２９２】
この記録媒体は、例えば、図３２に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア７２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM７０２や、記憶部７１３に含まれるハードディスクなどで構成される。
【０２９３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２９４】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【０２９５】
なお、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２９６】
【図１】本発明を適用したネットワークシステムの主な構成例を示すブロック図である。
【図２】動画像圧縮符号化部の構成例を示すブロック図である。
【図３】分析フィルタリングの概要を説明する図である。
【図４】分析フィルタリングの概要を説明する図３に続く図である。
【図５】ラインブロックを説明する図である。
【図６】９×７フィルタの例を示す図である。
【図７】リフティング演算例を説明する図である。
【図８】リフティング演算例を説明する図である。
【図９】リフティング演算例を説明する図である。
【図１０】動画像伸長復号部の構成例を示すブロック図である。
【図１１】９×７フィルタの例を示す図である。
【図１２】リフティング演算例を説明する図である。
【図１３】リフティング演算例を説明する図である。
【図１４】圧縮符号化処理・伸長復号処理の様子を説明する図である。
【図１５】ネットワークシステムの各部において実行される処理の概要を説明する図である。
【図１６】送信装置の主な構成例を示すブロック図である。
【図１７】送信処理の流れの例を説明するフローチャートである。
【図１８】ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。
【図１９】冗長符号化処理の流れの例を説明するフローチャートである。
【図２０】冗長復号処理の流れの例を説明するフローチャートである。
【図２１】送信装置の主な構成例を示すブロック図である。
【図２２】送信装置の主な構成例を示すブロック図である。
【図２３】ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。
【図２４】本発明を適用したネットワークシステムの主な構成例を示すブロック図である。
【図２５】送信装置の主な構成例を示すブロック図である。
【図２６】送信処理の流れの例を説明するフローチャートである。
【図２７】ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。
【図２８】送信装置の主な構成例を示すブロック図である。
【図２９】ブロックサイズ・冗長度決定処理の流れの例を説明するフローチャートである。
【図３０】送信装置の主な構成例を示すブロック図である。
【図３１】送信処理の流れの例を説明するフローチャートである。
【図３２】本発明を適用したパーソナルコンピュータの主な構成例を示すブロック図である。
【符号の説明】
【０２９７】
１００  ネットワークシステム，  １０１  送信装置，  １２１  冗長符号化制御部，  １２２  動画像圧縮符号化部，  １２３  冗長符号化部，  １２４  RTP送信部，  ２０１  FECブロックサイズ決定部，  ２０２  冗長度決定部，  ２３１  記憶部，  ２５１  目標FECブロック損失率設定部，  ３０１  RTCP通信部，  ３１１  往復伝播遅延算出部，  ３１２  パケット損失率算出部，  ３２１  最大往復伝播遅延算出部，  ４０１  制御方法選択部，  ４０２  静的制御部，  ４０３  動的制御部
【図１】
2010141659.tif 000011
【図２】
2010141659.tif 000012
【図３】
2010141659.tif 000013
【図４】
2010141659.tif 000014
【図５】
2010141659.tif 000015
【図６】
2010141659.tif 000016
【図７】
2010141659.tif 000017
【図８】
2010141659.tif 000018
【図９】
2010141659.tif 000019
【図１０】
2010141659.tif 000020
【図１１】
2010141659.tif 000021
【図１２】
2010141659.tif 000022
【図１３】
2010141659.tif 000023
【図１４】
2010141659.tif 000024
【図１５】
2010141659.tif 000025
【図１６】
2010141659.tif 000026
【図１７】
2010141659.tif 000027
【図１８】
2010141659.tif 000028
【図１９】
2010141659.tif 000029
【図２０】
2010141659.tif 000030
【図２１】
2010141659.tif 000031
【図２２】
2010141659.tif 000032
【図２３】
2010141659.tif 000033
【図２４】
2010141659.tif 000034
【図２５】
2010141659.tif 000035
【図２６】
2010141659.tif 000036
【図２７】
2010141659.tif 000037
【図２８】
2010141659.tif 000038
【図２９】
2010141659.tif 000039
【図３０】
2010141659.tif 000040
【図３１】
2010141659.tif 000041
【図３２】
2010141659.tif 000042
【手続補正書】
【提出日】平成21年12月28日(2009.12.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
stepＡ１：ｄi1＝ｄi0＋α（ｓi0＋ｓi+10）  ・・・（１）
stepＡ２：ｓi1＝ｓi0＋β（ｄi-11＋ｄi1）  ・・・（２）
stepＡ３：ｄi2＝ｄi1＋γ（ｓi1＋ｓi+11）  ・・・（３）
stepＡ４：ｓi2＝ｓi1＋δ（ｄi-12＋ｄi2）  ・・・（４）
（α＝-1.586134342，β＝-0.05298011857，γ＝0.8829110755，δ＝0.4435068520）
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
stepＢ１：ｓi1＝ｓi2−δ（ｄi-12＋ｄi2）  ・・・（５）
stepＢ２：ｄi1＝ｄi2−γ（ｓi1＋ｓi+11）  ・・・（６）
stepＢ３：ｓi0＝ｓi1−β（ｄi-11＋ｄi1）  ・・・（７）
stepＢ４：ｄi0＝ｄi1−α（ｓi0＋ｓi+10）  ・・・（８）
（α＝-1.586134342，β＝-0.05298011857，γ＝0.8829110755，δ＝0.4435068520）
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2010141659.tif 000043