(57)【要約】      （修正有）【課題】通信装置間で、通信を続行しつつFECモードを切り替え、かつ互換性を維持する。【解決手段】RowFEC受信判定部６２は受信されたFECパケットDフィールドと一定期間内にRowFECパケットを受信するか否かでその有無を判断する。L値D値判定部６３はColFECパケットのOffsetフィールドとNAフィールドよりL値とD値を取得する。FEC演算方式判定部６４はL値D値判定部より取得するL値D値の情報と基底シーケンス番号の受信履歴を使用し、L個のColFECパケットの基底シーケンス番号のパターンによりFEC演算方式を判断する。BlockSN検出部６５はRowFECの有無の情報とL値D値の情報とFEC演算方式の判定結果を使用してBlockシーケンス番号を検出する。【選択図】図２
2009200744.tif 000002
【特許請求の範囲】
【請求項１】
FEC方式によるパケット誤り訂正行なう通信装置において、
送信装置のFEC符号化部は、FECパケットのFEC拡張ヘッダのDフィールドにColFECパケットとRowFECパケットの区別、offsetフィールドに２次元FECの列数（L値）、NAフィールドに行数（D値）を設定すると共に、FECヘッダの基底シーケンス番号に当該FECパケットの位置を示すパケットシーケンス番号を設定して送信し、
受信装置のFEC復号化部は、受信したパケットのFECヘッダおよびFEC拡張ヘッダから、前記各設定要素を抽出して、FEC演算方式を判定し、またFEC演算の単位を定めるためのBlockシーケンス番号を検出するFECモード検査部と、
前記RowFECパケットの有無，前記L値D値，前記FEC演算方式および前記Blockシーケンス番号から成るFECモードを格納するFECモード格納部と、
前記格納されたFECモードに基づいて前記パケット誤り訂正を行なうFEC訂正部とを備えたことを特徴とする通信装置。
【請求項２】
前記FECモード検査部は、
入力されたパケットがメディアパケットであるかFECパケットであるかの判定を行なうFECヘッダ解析部と、
前記Dフィールドと一定期間内にRowFECパケットを受信するか否かでその有無を判断するRowFEC受信判定部と、
ColFECパケットの前記Offsetフィールドと前記NAフィールドよりL値とD値を取得するL値D値判定部と、
前記L値D値判定部より取得するL値D値の情報と基底シーケンス番号の受信履歴を使用し、L個のColFECパケットの基底シーケンス番号のパターンによりFEC演算方式を判断するFEC演算方式判定部と、
前記RowFEC受信判定部より取得するRowFECの有無の情報と前記L値D値判定部より取得するL値D値の情報と前記FEC演算判定部より取得するFEC演算方式の判定結果を使用して、Blockシーケンス番号を検出するBlockSN検出部とを備えたことを特徴とする請求項１記載の通信装置。
【請求項３】
前記FECモード検査部は、
プロセッサとパケット受信インタフェースとプログラムやデータが格納されているROMと受信パケットを格納するRAMと設定変更インタフェースをプロセッサ用バスで接続された構成とし、
入力されたパケットは、前記パケット受信インタフェースからDMA転送機能により、前記プロセッサを介さずに前記RAMへ転送され、転送完了後に前記パケット受信インタフェースから前記プロセッサへ割り込み通知を行うこと前記でプロセッサにパケット受信を通知し、
前記プロセッサは、前記パケット受信インタフェースから割り込み通知を受けると、前記RAMからパケットを読み込み、メディアパケットかFECパケットかの判断を行った後、前記L値D値とL個のColFECパケットの基底シーケンス番号のパターンによりFEC演算方式を判断し、また前記RowFECの有無と前記L値D値と前記FEC演算方式とによりBlockシーケンス番号を検出するためのプログラムを実行することを特徴とする請求項１記載の通信装置。
【請求項４】
前記FECモード検査部は、出力する前記FECモードと、前記FECモード格納部に格納されているFECモードとを比較し、FECモードを変更すべき場合には前記FECモード格納部に格納されているFECモードに対する変更要求を出力する機能を有することを特徴とする請求項２または請求項３記載の通信装置。
【請求項５】
前記FECモード検査部は、
前記FEC演算方式の判定の際、前記L値D値の情報と、基底シーケンス番号の受信履歴を管理するための基底シーケンス履歴メモリと、
FEC演算方式がAnnexAでRowFECパケットが無しの場合のBlockシーケンス番号の検出処理時に、ColFECパケットの基底シーケンス番号の履歴の理論値を格納するBlockSN理論値格納メモリと、
FEC演算方式がAnnexAでRowFECパケットが無しの場合のBlockシーケンス番号の検出処理時に、ColFECパケットの基底シーケンス番号の履歴の実値を格納するBlockSN実値格納メモリとを備えることを特徴とする請求項２または請求項３記載の通信装置。
【請求項６】
FEC方式によるパケット誤り訂正行なう通信装置におけるFEC制御情報判定・検出方法において、
送信装置は、FECパケットのFEC拡張ヘッダのDフィールドにColFECパケットとRowFECパケットの区別、offsetフィールドに２次元のFECを想定した列数（L値）、NAフィールドに行数（D値）を設定すると共に、FECヘッダの基底シーケンス番号に当該FECパケットの位置を示すパケットシーケンス番号を設定して送信し、
受信装置は、受信したパケットのFECヘッダおよびFEC拡張ヘッダから、前記各設定要素を抽出して、FEC演算方式を判定し、またFEC演算の単位を定めるためのBlockシーケンス番号を検出することを特徴とするFEC制御情報判定・検出方法。
【請求項７】
前記FEC演算方式の判定において、
前記ColFECパケットを受信すると前記FECヘッダより基底シーケンス番号を取得する段階と、
取得した基底シーケンス番号をアドレスとした基底シーケンス番号履歴メモリに１を設定する段階と、
前記基底シーケンス番号履歴メモリを順次に読み出す段階と、
前記読み出された内容の差分が２連続で１である場合は通常方式、２連続で１でない場合はAnnexA方式と判定する段階とを有することを特徴とする請求項６記載のFEC制御情報判定・検出方法。
【請求項８】
前記Blockシーケンス番号の検出において、
前記RowFECの有無の情報と前記L値D値と前記FEC演算方式の判定結果を取得する段階と、
前記FEC演算方式が通常方式であってRowFECパケット有りの場合は、受信したColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号を比較する段階と、
前記比較の結果により、前者が大きいときは後者にL値を加算し、前者が小さいときは後者からL値を減算する段階と、
前記加減算の結果により、ColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号が同一Columnに属するか否かを判定する段階と、
前記判定の結果により同一Columnに属するときのRowFECパケットの基底シーケンス番号をBlockシーケンス番号として検出する段階とを有することを特徴とする請求項６記載のFEC制御情報判定・検出方法。
【請求項９】
前記Blockシーケンス番号の検出において、
前記RowFECの有無の情報と前記L値D値と前記FEC演算方式の判定結果を取得する段階と、
前記FEC演算方式が通常方式であってRowFECパケット無しの場合は、前記Blockシーケンス番号は、受信したColFECパケットの基底シーケンス番号のいずれかと判定する段階とを有することを特徴とする請求項６記載のFEC制御情報判定・検出方法。
【請求項１０】
前記Blockシーケンス番号の検出において、
前記RowFECの有無の情報と前記L値D値と前記FEC演算方式の判定結果を取得する段階と、
前記FEC演算方式がAnnexA方式であってRowFECパケット有りの場合は、受信したColFECパケットの基底シーケンス番号からRowFECパケットの基底シーケンス番号を減算する段階と、
受信したColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号を比較する段階と、
前記比較の結果により、前者が大きいときは後者にL値を加算し、前者が小さいときは後者からL値を減算する段階と、
前記加減算の結果により、ColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号が同一Columnに属するか否かを判定する段階と、
前記判定の結果により同一Columnに属するときのColFECパケットの基底シーケンス番号から、前記差分および前記差分のL値倍を減算した値をBlockシーケンス番号として検出する段階とを有することを特徴とする請求項６記載のFEC制御情報判定・検出方法。
【請求項１１】
前記Blockシーケンス番号の検出において、
前記RowFECの有無の情報と前記L値D値と前記FEC演算方式の判定結果を取得する段階と、
前記FEC演算方式がAnnexA方式であってRowFECパケット無しの場合は、正常に受信したとした場合のColFECパケットの基底シーケンス番号の履歴をBlockSN理論値格納メモリに格納する段階と、
実際に受信したColFECパケットの基底シーケンス番号の履歴をBlockSN実値格納メモリに格納する段階と、
前記正常に受信のパケット位置と実際に受信したパケット位置とのoffsetを求める段階と、
前記BlockSN実値格納メモリの格納内容から前記offsetを減算する段階と、
前記BlockSN理論値格納メモリの格納内容と、前記offsetが減算された前記BlockSN実値格納メモリの格納内容とを昇順でアドレス毎に比較する段階と、
前記比較の結果により、最初に不一致が生じたアドレスの前記BlockSN実値格納メモリの格納内容をBlockシーケンス番号として検出する段階とを有することを特徴とする請求項６記載のFEC制御情報判定・検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置におけるパケット誤り訂正に関し、特に、パケット誤り訂正におけるFEC(Forward Error Correction)制御に必要な情報の判定・検出に関する。なお、以下の記載はRTPパケットを前提としているが、FEC制御に必要な情報（シーケンス番号、タイムスタンプ）を備えるプロトコルであれば、RTPに限らず本発明を適用可能である。
【背景技術】
【０００２】
パケットをネットワークに送信するときに、中継装置内の優先制御による廃棄や、伝送路上のビット誤りなどの影響により、パケットが正しく受信装置宛に到達できないことがある。TCP(Transmission Control Protocol)による通信の場合は、このようなパケット抜けに対し再送制御を行うことで対応できるが、UDP(User Datagram Protocol)による通信の場合は、再送制御の仕組みが存在しないため、受信装置でパケット抜けを訂正することができない。
【０００３】
一方、音声や映像データなどはリアルタイム性が求められるため、UDPによる通信をベースにRTP(Real Time Protocol)にてパケットを送信している(RFC2250、RFC3550参照)。このRTPによる通信時の誤り訂正の方法の一つとして、FECが知られている(RFC2733参照)。一般的なFEC制御として、パリティFECと呼ばれる方法で各パケット同士のXOR演算を冗長パケットとして送信する技術が挙げられる。
【０００４】
図１８に映像伝送を例としたFECパケット終端ネットワークモデルを示す。ビデオカメラ３３から入力される映像信号を送信装置１内のFEC符号化部３でRTPパケット化してネットワークに送信し、受信装置２で映像信号を再生しモニタ３４にて視聴するイメージ図である。
【０００５】
図１９はFEC演算方法を示している。送信装置１でPacket-A、Packet-B、Packet-Cの各メディアパケットを送信する際に、各メディアパケットをビット単位でXOR演算を行う。その結果をFECパケットとして生成し、図２０に示すFECヘッダを追加してネットワークへ送信する。図１９では、ネットワーク上にてPacket-Bが消失したケースを例示している。この時、受信装置２で受信する各メディアパケットと、冗長パケットであるFECパケットそれぞれでXOR演算を行う。その結果、ネットワーク上で消失したPacket-Bを訂正（再生成）することができる。
【０００６】
ところで、FECヘッダには、Pro-MPEGフォーラムの“Code of Practice”の文献にFECヘッダの拡張が規定されており、図２１に示すような２次元のパケット誤り訂正による高い訂正率が実現されている。具体的には、図２０のOffsetフィールドに横(Column)方向のパケット数を示すL値が設定され、NAフィールドに縦(Row)方向のパケット数を示すD値が設定される。これらの値により、２次元方向へそれぞれXOR演算を行うことで、L個のColumnFECパケットとD個のRowFECパケットを生成する。また、図２０のDフィールドによって、FECパケットの演算方向を示す。D=0であれば、ColumnFECパケット、D=1であれば、RowFECパケットであることを示す。
【０００７】
図２４に、３行５列のメディアパケットとFECパケットの送信順序を示す。RowFECパケットについては、FEC演算単位の先頭であるメディアパケット（以下、BlockSNと定義）０からメディアパケット４を送信後に、RowFECパケット０を送信している。また、ColumnFECパケットについては、１FEC演算ブロック送信後、つまり、メディアパケット０〜メディアパケット１４を送信後に送信が開始される。よって、図２４によるとメディアパケットの後にFECパケットが送信されるため、FECパケットを受信するまではFEC演算を行うための各種要素（L値、D値、BlockSN、FEC演算方式）を判断できないということを示している。
【０００８】
FEC演算方式として、図２１の他にAnnexA規格がPro-MPEGフォーラムにて規定されている。これは図２２に示すようにColFECパケットをD周期でスライドさせながら演算するものである。図２３（Ｂ）は、AnnexA規格によるFEC演算方式であるAnnexA方式における、ColFECパケット受信を期待する位置を例示する。図２３（Ａ）に示す通常方式の場合とは顕著な差がある。なお、AnnexB規格も存在するが、図２１の通常方式と同じ演算方式であるため、本発明では言及しない。
【０００９】
ここで、FEC処理を実現するには、復号処理を行うにあたり、L値とD値、およびBlockSN、およびFEC演算方式(図２１もしくは図２４)、およびRowFECパケットの有無（以下、これらの組合せをFECモードと定義）が送信装置１と受信装置２で一致していることが前提である。
【００１０】
BlockSNの必要性について補則する。通常、FEC復号処理を行う際にはパケットの到着時間の揺らぎや処理遅延を考慮し、FEC演算ブロック単位での引き込み処理を行う。つまり、同じFEC演算ブロックに属するパケットが到着するまでの時間を待ってからFEC処理を開始する。そこで、FEC演算ブロック単位に制御を行うためにBlockSNが必要となる。
【００１１】
前述の２次元のパケット誤り訂正方式を採用して損失パケットの再構成を行う技術を記載した文献として、例えば特許文献１を挙げることができる。この損失パケットの再構成方法は、送信されるパケットをD行及びL列のパケット行列に構成するステップと、行列の各行及び各列に誤り訂正関数を適用し、その結果は、誤り訂正関数が適用されるそれぞれの行及び列での少なくとも１つの損失パケットの再構成を可能にする訂正パケットであるステップと、データパケットに加えて結果の誤りパケットを送信するステップとを有する。
【００１２】
【特許文献１】特表２００７−５０９５５７（第１０頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、通信経路の変更や回線負荷率の増加などによりパケット消失の発生率が高くなった場合には、D値やL値を増やす等してFECモードをより高い訂正率に設定変更し、逆にパケット消失の発生率が低い場合には、FECモードをより低い訂正率に設定変更してユーザーデータの転送率を上げるよう、FECモードを切り替えることが肝要である。
【００１４】
この場合、FECモードをユーザー設定により手動で切り替えるならば、送信側と受信側で設定値反映のタイミングにズレがあると誤動作を引き起こすので、無通信状態で設定変更を行う必要があり、その間は通信が中断することになる。
【００１５】
また、送信装置側の設定変更時に設定変更内容を独自制御パケット等で受信装置側に通知するという方式も考えられるが、受信装置側で設定変更が完了し、送信装置と受信装置が同期するまでは、やはり無通信状態で通知を行う必要があり、更に送信装置と受信装置両方が設定変更を通知可能な独自仕様に対応していなくてはならず、互換性が欠如するという問題がある。
【００１６】
なお、特許文献１は損失パケットの再構成を記載したまでであって、FECモードの切り替えに関する言及は無い。
【００１７】
そこで、本発明の第１の目的は、Pro-MPEGフォーラムにて規定されている規格に準拠した通信装置間で、通信を続行しつつFECモードを動的に切り替えることができる通信装置およびFEC制御情報判定・検出方法を提供することである。
【００１８】
また、本発明の第２の目的は、Pro-MPEGフォーラムにて規定されている規格に準拠した通信装置間の互換性を実現した通信装置およびFEC制御情報判定・検出方法を提供することである。
【課題を解決するための手段】
【００１９】
本発明の通信装置は、FEC方式によるパケット誤り訂正行なう通信装置において、送信装置のFEC符号化部（図１８の３）は、FECパケットのFEC拡張ヘッダのDフィールドにColFECパケットとRowFECパケットの区別、offsetフィールドに２次元FECの列数（L値）、NAフィールドに行数（D値）を設定すると共に、FECヘッダの基底シーケンス番号に当該FECパケットの位置を示すパケットシーケンス番号を設定して送信し、受信装置のFEC復号化部（図１８の３、図１の１１）は、受信したパケットのFECヘッダおよびFEC拡張ヘッダから、各設定要素を抽出して、FEC演算方式を判定し、またFEC演算の単位を定めるためのBlockシーケンス番号を検出するFECモード検査部（図１の１３）と、RowFECパケットの有無，L値D値，FEC演算方式およびBlockシーケンス番号から成るFECモードを格納するFECモード格納部と、格納されたFECモードに基づいてパケット誤り訂正を行なうFEC訂正部（図１の１５）とを備えたことを特徴とする。
【００２０】
このように、受信装置でFECパケットのFECヘッダを参照することでFEC動作モードの変更を動的に認識し、Pro-MPEGフォーラムにて規定されている規格に準拠した通信装置間で、動的にFEC動作モードを切り替える。
【００２１】
FECモード検査部（図１、図２の１３）は、入力されたパケットがメディアパケットであるかFECパケットであるかの判定を行なうFECヘッダ解析部（図２の６０）と、Dフィールドと一定期間内にRowFECパケットを受信するか否かでその有無を判断するRowFEC受信判定部（図２の６２）と、ColFECパケットのOffsetフィールドとNAフィールドよりL値とD値を取得するL値D値判定部（図２の６３）と、L値D値判定部より取得するL値D値の情報と基底シーケンス番号の受信履歴を使用し、L個のColFECパケットの基底シーケンス番号のパターンによりFEC演算方式を判断するFEC演算方式判定部（図２の６４）と、RowFEC受信判定部より取得するRowFECの有無の情報とL値D値判定部より取得するL値D値の情報とFEC演算判定部より取得するFEC演算方式の判定結果を使用して、Blockシーケンス番号を検出するBlockSN検出部（図２の６５）とを備える。
【００２２】
このように、図１８のFEC復号化部１１内にて、図２０に示したFECヘッダおよびFEC拡張ヘッダの各フィールドを参照することで、送信装置１側の設定変更を自動で認識する。L値、D値は、ColumnFECパケットのOffsetフィールドとNAフィールドで認識する。RowFECパケットの有無は、一定期間内にRowFECパケットを受信するか否かで判断する。DフィールドにてRowFECパケットであるかを識別する。FEC演算方式は、1FECパケットのみでは判断できず、L個のColFECパケットの基底シーケンス番号が図２３のパターンのいずれかであるかを判断することで特定できる。
【００２３】
即ち、本発明のFEC演算方式の判定方法（図６）は、ColFECパケットを受信するとFECヘッダより基底シーケンス番号を取得する段階と、取得した基底シーケンス番号をアドレスとした基底シーケンス番号履歴メモリに１を設定する段階と、基底シーケンス番号履歴メモリを順次に読み出す段階と、読み出された内容の差分が２連続で１である場合は通常方式、２連続で１でない場合はAnnexA方式と判定する段階とを有することを特徴とする。
【００２４】
BlockSNの検出は、FEC演算方式やRowFECパケットを受信するか否かによって判断方法が異なる。図２１の通常方式ではColFECパケットで判定し、連続するL個の基底シーケンス番号の最小値がBlockSNとなる。つまり、図２３の例だと、０〜４の範囲で受信することになる。
【００２５】
即ち、本発明のBlockシーケンス番号の検出方法は、RowFECの有無の情報とL値D値とFEC演算方式の判定結果を取得する段階と、FEC演算方式が通常方式であってRowFECパケット有りの場合（図７）は、受信したColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号を比較する段階と、比較の結果により、が大きいときは後者にL値を加算し、前者が小さいときは後者からL値を減算する段階と、加減算の結果により、ColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号が同一Columnに属するか否かを判定する段階と、判定の結果により同一Columnに属するときのRowFECパケットの基底シーケンス番号をBlockシーケンス番号として検出する段階とを有することを特徴とする。
【００２６】
また、FEC演算方式が通常方式であってRowFECパケット無しの場合は、Blockシーケンス番号は、受信したColFECパケットの基底シーケンス番号のいずれかと判定する段階とを有する。
一方、図２４のAnnexA方式では、RowFECパケットを受信している場合は、基底シーケンス番号が合致する箇所がBlockSNとなる。しかし、RowFECパケットを受信していない場合は、図２３に示す基底シーケンス番号の並びからBlockSNを特定する。
【００２７】
即ち、本発明のBlockシーケンス番号検出方法は、RowFECの有無の情報とL値D値と前記FEC演算方式の判定結果を取得する段階と、FEC演算方式がAnnexA方式であってRowFECパケット有りの場合（図９）は、受信したColFECパケットの基底シーケンス番号からRowFECパケットの基底シーケンス番号を減算する段階と、受信したColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号を比較する段階と、比較の結果により、前者が大きいときは後者にL値を加算し、前者が小さいときは後者からL値を減算する段階と、加減算の結果により、ColFECパケットの基底シーケンス番号とRowFECパケットの基底シーケンス番号が同一Columnに属するか否かを判定する段階と、判定の結果により同一Columnに属するときのColFECパケットの基底シーケンス番号から、差分および差分のL値倍を減算した値をBlockシーケンス番号として検出する段階とを有する。
【００２８】
また、FEC演算方式がAnnexA方式であってRowFECパケット無しの場合は、正常に受信したとした場合のColFECパケットの基底シーケンス番号の履歴をBlockSN理論値格納メモリに格納する段階（図１１〜図１２）と、実際に受信したColFECパケットの基底シーケンス番号の履歴をBlockSN実値格納メモリに格納する段階（図１４）と、正常に受信のパケット位置と実際に受信したパケット位置とのoffsetを求める段階と、BlockSN実値格納メモリの格納内容からoffsetを減算する段階と、BlockSN理論値格納メモリの格納内容と、offsetが減算されたBlockSN実値格納メモリの格納内容とを昇順でアドレス毎に比較する段階と、比較の結果により、最初に不一致が生じたアドレスのBlockSN実値格納メモリの格納内容をBlockシーケンス番号として検出する段階（以上図１５）とを有することを特徴とする。
【発明の効果】
【００２９】
本発明によれば、復号化部のFECモード検査部おいて、受信したFECパケットの内容のみで、送信装置側のFEC演算方式の判定とBlockシーケンス番号の検出を動的に行なえるため、FECモードを切り替えるときに通信を中断することがないという第１の効果を得ることができる。
【００３０】
また、受信装置側で受信するFECパケットの内容のみで検出可能であるため、送信装置と受信装置両方がFECモードの設定変更を通知可能な独自仕様に対応させる必要がないので、Pro-MPEGフォーラムにて規定されている規格に準拠した通信装置間の互換性を実現することができるという第２の効果も得ることができる。
【発明を実施するための最良の形態】
【００３１】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００３２】
図１８は映像伝送を例とした一般的なFECパケット終端ネットワークモデルを示す。送信装置１内において、RTPデータ生成部１７はビデオカメラ３３から入力される映像信号をRTPパケット化し、FEC符号化部３はRTPデータを元にFECパケットを生成する。通常パケット送信部１８は、本発明で言及するRTPパケット以外の通常パケットを送信する。送信切替部１９は、FEC符号化部３からのRTPパケットと通常パケット送信部１８からの通常パケットの多重化を行うための調停動作を行う。多重化されたパケットはネットワークを経由して受信装置２へ送信される。
【００３３】
受信装置２において、受信切替部２０はRTPパケットと通常パケットをセレクトする。FEC復号化部１１は、受信したRTPパケット（メディアパケット、FECパケット）から欠落パケットの訂正処理を行い、RTP化された音声・映像データを抜き出す。RTP再生部２１は、RTP仕様に基づいて、リアルタイムデータの再生を行う。再生された映像信号はモニタ３４にて視聴される。通常パケット受信部２２は通常パケットを受信する。
【００３４】
図１は本発明におけるFEC復号化部１１の回路構成を示す。FEC復号化部１１は、RTPパケット受信部１２，FECモード検査部１３，FECモード格納部１４，FEC訂正部１５，RTPデータ送信部１６および演算結果格納メモリ７で構成される。RTPパケット受信部１２は、受信装置２の受信切替部２０（図１８）から入力されるRTPパケットを受信する。
【００３５】
FECモード検査部１３は、RTPパケットのFECヘッダおよびFEC拡張ヘッダ（図２０）を監視しFECモードの更新制御を行う（詳細後述）。FECモードとは、FEC(Forward Error Correction)を行なうときの動作モードをいい、L値とD値，FEC演算方式およびRowFECパケットの有無で定められる。FECモード格納部１４は現在のFECモードを保持し、FECモード検査部１３およびFEC訂正部１５へFECモードを通知している。また、FECモード検査部１３からFECモード変更要求を受けると保持している現在のFECモードを更新する。
【００３６】
FECモード検査部１３は、また、RTPパケットのFECヘッダおよびFEC拡張ヘッダ（図２０）を監視しBlockSNを検出する（詳細後述）。このとき、L値とD値，FEC演算方式およびRowFECパケットの有無が使用される。検出されたBlockSNは、FECモード格納部１４に格納され、FEC訂正部１５へ通知される。
【００３７】
FEC訂正部１５は、FECモードによりRTPデータのペイロード部分に対して、BlockSNで定められる演算単位で演算処理を行った結果を演算結果メモリ７にライトする。演算結果格納メモリ７はD毎のXOR演算結果とL毎のXOR演算結果を格納する。FEC訂正部１５は、一方で、メディアパケットについてはRTPデータ送信部１６へ出力し、FECパケットについては演算処理後に廃棄する。また、パケット欠落時で訂正可能であると判断した場合は、演算結果格納メモリ７からXOR演算結果をリードして欠落パケットの訂正を行い、RTPデータ送信部１６へ出力する。RTPデータ送信部１６はRTPデータ再生部２１に対する、RTP化された音声・映像データの出力制御を行う。
【実施例１】
【００３８】
［構成の説明］
図２にFECモード検査部１３の回路構成を示す。FECモード検査部１３は、FECヘッダ解析部６０，FECモード比較部６１，RowFEC受信判定部６２，L値D値判定部６３，FEC演算方式判定部６４，BlockSN検出部６５，BlockSN実値格納メモリ６６，BlockSN理論値格納メモリ６７およびFECモード変更要求部６８で構成される。
【００３９】
FECヘッダ解析部６０は、RTPパケット受信１２から入力されたパケットがメディアパケットであるか、FECパケットであるかの判定をRTPヘッダのPTフィールドにて行う。これは送信装置１と受信装置２でFECパケット用に予め決められた値を使用する。例えば、９６という値で通信を開始すれば、PT=９６がFECパケットであると判定可能である。それ以外はメディアパケットと判定され、FECモード検査部１３内では特に処理は実施せず、FEC訂正部１５へスルーさせる。
【００４０】
一方、FECパケットについては、FECヘッダとFEC拡張ヘッダより、図２０に塗潰しで示した各フィールドを抜き出し、RowFEC受信判定部６２，L値D値判定部６３，FEC演算方式判定部６４およびBlockSN検出部６５に通知する。
【００４１】
RowFEC受信判定部６２は、FEC拡張ヘッダのDフィールドよりRowFECパケット受信の有無を取得し、FECモード比較部６１とFECモード変更要求部６８に出力する。RowFECパケットの有無は、一定期間内にRowFECパケットを受信するか否かで判断する。
【００４２】
L値D値判定部６３は、ColFECパケットのOffsetフィールドとNAフィールドよりL値とD値を取得し、FECモード比較部６１とFECモード変更要求部６８に出力する。また、L値とD値はFEC演算方式判定部６４およびBlockSN検出部６５にも供給される。
【００４３】
FEC演算方式判定部６４は、FEC演算方式の判定を行い、判定結果をFECモード比較部６１とFECモード変更要求部６８に出力する。FEC演算方式は、１つのFECパケットのみでは判断できず、L個のColFECパケットの基底シーケンス番号が図２３のパターンのいずれかであるかを判断することで特定できる。詳細は後述する。FEC演算方式の判定の際、L値D値判定部６３より取得するL値D値の情報と、基底SNの受信履歴を管理するための基底SN履歴メモリ４（図３）を使用する。
【００４４】
BlockSN検出部６５は、BlockSNの検出を行い、FECモード比較部６１とFECモード変更要求部６８に出力する。BlockSNの検出の際、RowFEC受信判定部６２より取得するRowFECの有無の情報と、L値D値判定部６３より取得するL値D値の情報と、FEC演算判定部６４より取得するFEC演算方式の判定結果を使用する。
【００４５】
BlockSNの検出は、FEC演算方式やRowFECパケットを受信するか否かによって判断方法が異なる。図２１の通常方式ではColFECパケットで判定し、連続するL個の基底シーケンス番号の最小値がBlockSNとなる。つまり、図２３の例だと、０〜４の範囲で受信することになる。一方、図２２のAnnexA方式では、RowFECパケットを受信している場合は、基底シーケンス番号が合致する箇所がBlockSNとなる。しかし、RowFECパケットを受信していない場合は、図２３に示す基底シーケンス番号の並びからBlockSNを特定する。BlockSNの検出については更に詳細を後述する。BlockSN実値格納メモリ６６とBlockSN理論値格納メモリ６７は、FEC演算方式がAnnexAでRowFECパケットが無しの場合のBlockSNの検出処理で使用される。
【００４６】
FECモード比較部６１は、FECモード格納部１４に設定されているFECモードと、RowFEC受信判定部６２，L値D値判定部６３およびFEC演算方式判定部６４における各判定結果とを比較し、FECモードを変更すべき場合には、FECモード変更要求をFECモード変更要求部６８に通知する。
【００４７】
FECモード変更要求部６８は、FECモード変更要求を受けると、RowFEC受信判定部６２から通知されいるRowFECパケット受信の有無、L値D値判定部６３から通知されているL値D値、FEC演算方式判定部６４から通知されているFEC演算方式、およびBlockSN検出部６５から通知されているBlockSNを伴ったFECモード変更要求をFECモード格納部１４へ通知する。これにより、FECモード格納部１４は、格納しているそれぞれの要素を更新する。
［動作の説明］
以上のように構成された本発明の受信装置２のFEC復号化部１１におけるFECモード検査部１３の動作について説明する。特に、FEC演算方式の判定とBlockSNの検出に関しては詳述する。
【００４８】
先ず、更新処理が必要とされる要素の内でL値とD値については、図２０のOffsetフィールド=L値、NAフィールド=D値と判断できる。これは、ColFECパケットを１発受信すれば判断可能である。
【００４９】
RowFECパケットの有無については、一定期間内に同一Block内のRowFECパケットを受信したか否かで判断する。図２０のDフィールド=１のパケットがRowFECパケットである。一定期間内とは具体的には、ColFECパケットをL個受信するまでの間とする。図２４に示すとおり、RowFECパケットから送信される仕様であるため、Row方向の冗長を実施する場合は、ColFECパケットの受信完了時には、最低でも１発はRowFECパケットを受信する。この間にRowFECパケットを受信しなかった場合は、Column方向のみの一次元の冗長処理と判断する。
（１）FEC演算方式の判定
FEC演算方式については、図２０のヘッダ内に具体的に演算方式を示すフィールドが存在しないため、基底シーケンス番号の受信履歴より特定する。FEC演算方式判定部６４は、ColumnFECパケットを受信するとFECヘッダより基底シーケンス番号を取得し、図３に示すように、基底シーケンス番号をアドレスとした基底SN履歴メモリ４に１を設定する。図３はFECパケットが図２３に示したように受信された場合に対応する。
【００５０】
図４はこのような結果を得るためにFEC演算方式判定部６４が行う処理を示すフローチャートである。最初のColFECパケットを受信すると（図４のステップA1、ステップA3でYES）、そのシーケンス番号を最小ポインタとして（ステップA11）、ColFECパケットを受信する度に基底SN履歴メモリ４に１を設定することを繰り返す（ステップA1〜A10）。１を設定する場合には0オリジンのColFECカウンタを１加算する。受信は、通常は昇順に行なわれるが（ステップA6でYES）、順序が入れ替わってもよい（ステップA6でNO、A8〜A9）。この管理のために、当該ブロック内で（ステップA4,A5でNO）、１が登録されているシーケンス番号の内の最大のシーケンス番号を最大ポインタと定める（ステップA7）。
【００５１】
但し、受信したColFECパケットが当該ブロック外の場合は除外される。即ち、受信したColFECパケットのシーケンス番号が当該ブロックのシーケンス番号を超えた場合は（ステップA4でYES）、最小ポインタをそのシーケンス番号とし、ColFECカウンタを0として最初からの処理を改めて開始する。また、受信したColFECパケットのシーケンス番号が当該ブロックのシーケンス番号に満たない場合は（ステップA5でYES）、１が登録されない。以上の処理は、ColFECパケットをL個受信するまで（ステップA10でYES）、繰り返される。
【００５２】
さて、FEC演算方式判定部６４は、図５に示すように、基底SN番号履歴メモリ４に１が設定されているアドレスの内の最小アドレスを示す最小ポインタ５と、１が設定されているアドレスの内の最大アドレスを示す最大ポインタ６を更新する。図３では、図２３のケースと関連づけて、通常方式とAnnexA方式それぞれに対応する２つのパターンを示している。通常方式の時は、0〜4のアドレス位置が１に設定され、最小ポインタ５=0と最大ポインタ６=4が設定される。AnnexA方式の時は、図２３に示す法則で基底SN番号が遷移するため、最小ポインタ５=0と最大ポインタ６=18が設定される。
【００５３】
ColFECカウンタ８は、受信ColFECパケットの数をカウントするカウンタである。図２３の場合、ColFECカウンタ８=5、即ち、L値である５パケット分を格納し、図６に示すフローチャートに従ってFEC演算方式を判定する。図６では、最小ポインタ５が示すシーケンス番号から次のシーケンス番号の差分を比較して判定を行っている（図６のステップB1〜B4）。通常モード時は、図２３に示したように連続で基底シーケンス番号が遷移するので、差分が１であることを確認すればよい。
【００５４】
ただし、パケットの欠落などで、最小シーケンス番号が必ずしも図２３の0の位置とは限らない。図５（Ａ）に示す通常方式のケースだと、0〜3を示すColFECパケットが欠落した場合、最小ポインタ５＝4となるため、NextPtrとの差分は1とはならず（ステップB4でNO）、通常方式であるか、AnnexA方式であるかの判定はできない。同様に、AnnexA方式時でも図５（Ｂ）に示すとおり、L=4、D=4のケースだと、最小ポインタが15の位置だと、NextPtrとの差分が1となり、通常方式であるか、AnnexA方式であるかの判定はできない。なお、図５において塗潰したシーケンス番号はColFECパケットのシーケンス番号を示している。
【００５５】
よって、図６のフローチャートでは、ステップB5〜B9を追加して、更に次の基底シーケンス番号との差分比較を行っている（ステップB3〜B9）。図５（Ａ）の例だと、通常方式の場合、4と20の差分比較を行い（ステップB4）、これは差分=1でないので、Annポイントを1に設定する（ステップB8）。20はステップBで求めることができる。これはAnnexA方式を予測するフラグである。次に、ステップB9を経て20と21の差分比較を行う（ステップB4）。これは差分=1なので、Nrmポイントを１に設定する（ステップB6）。これは通常方式を予測するフラグである。更に、ステップB9を経て21と22の差分比較を行う（ステップB4）。これも差分=1となり、Nrmポイント=1の条件と合わせれば（ステップB5）、２連続で差分が１のColFECパケットを受信したことが判明したので通常方式であるとの判定を下す（ステップB10）。
【００５６】
図５（Ｂ）の例のAnnexA方式の場合も同様に、15と16の差分比較を行う（ステップB4）。これは差分=1なので、Nrmポイントを１に設定する（ステップB6）。これは通常方式を予測するフラグである。次に、ステップB9を経て16と21の差分比較を行う（ステップB4）。21はステップB3で求めることができる。これは差分=1ではないので、Annポイントを１に設定する（ステップB8）。これはAnnexA方式を予測するフラグである。更に、同様にして21と26の差分比較を行う（ステップB4）。これも差分=1ではなく、Annポイント=1の条件と合わせれば（ステップB7）、２連続で差分が１ではないColFECパケットを受信したことが判明したのでAnnexA方式であるとの判定を下す（ステップB11）。
（２）BlockSNの検出
BlockSNについても、図２０のヘッダ内に具体的に演算方式を示すフィールドが存在しないため、基底シーケンス番号の受信履歴より特定する。また、特定のためにはL値D値を必要とし、また、特定の手法はFEC演算方式とRowFECパケットの有無の組み合わせによって異なる。従って、RowFEC受信判定部６２からのRowFECの有無の情報と、L値D値判定部６３からのL値D値と、FEC演算判定部６４からのFEC演算方式の判定結果を使用する。
【００５７】
2.1  通常方式の場合
先ず、通常方式であって、RowFECパケット無しの場合、BlockSNは、ColFECパケットの基底シーケンス番号のいずれでもよい。つまり、図８の例だと0〜4のいずれを選択してよい。
【００５８】
通常方式であって、RowFECパケット有りの場合は図７に示すフローチャートに従う。この場合はColFECパケットで判定し、連続するL個の基底シーケンス番号の最小値がBlockSNとなる。図７において、ColFECパケットとRowFECパケットを１パケットずつ受信し、各基底シーケンス番号をそれぞれ、tmpRowSN、tmpColSNに設定して（図７のステップC1）処理を開始する。図８は図７のフローチャートの説明図である。
【００５９】
tmpRowSN < tmpColSNの場合（ステップC3でYES）、tmpRowにL値を加算する（ステップC4）。これは、図８（Ａ）に示すように、例えば受信ColFECパケットの基底SN値が19であるとしてtmpColSN=19とすると、0、5、10のtmpRowSNに対しては、tmpColSN-tmpRowSN>=Lなので、L=5を加算することを意味する。逆に、tmpRowSN > tmpColSNの場合（ステップC3でNO）、tmpRowSNからL値を減算する（ステップC5）。これは、図８（Ｂ）に示すように、例えば受信ColFECパケットの基底SNが19であるとしてtmpColSN=19とすると、20、25のtmpRowSNに対しては、tmpColSN < tmpRowSNなので、L=5を減算することを意味する。
【００６０】
以上の処理を条件（ステップC2）が満たされるまでループさせる。この条件とは、tmpRowSNがtmpColSNと同一Columnになることである。このときのtmpRowSN がBlockSNとなり、図８の例ではBlockSN= 15が得られる。
【００６１】
2.2  AnnexA方式＆RowFECパケット有りの場合
この場合は、ColFECパケットの基底SN値とRowFECパケットの基底SN値が合致する箇所がBlockSNとなり、その処理は図９に示すフローチャートに従う。図９では図７と同様に、tmpRowSN、tmpColSNを設定して処理を開始している（図９のステップD1）。図１０は図９のフローチャートの説明図である。
【００６２】
図８におけるのと同じ要領で、tmpRowSNがtmpColSNと同一Columnになるまで（ステップD2）、tmpRowSNの加減を繰り返す（ステップD2〜D6）。なお、条件が満たされてBlockSNを算出する場合（ステップD7）に備えて、diff=tmpColSN-tmpRowSNを求めておく（ステップD3）。
【００６３】
図１０（Ａ）に示すように、例えば受信ColFECパケットの基底SNが12であるとしてtmpColSN=12とすると、0、5のtmpRowSNに対しては、tmpColSN-tmpRowSN>=L、かつtmpRowSN < tmpColSNであるので（ステップD4でYES）、tmpRowにL値を加算してtmpRowSN=10を得る（ステップD5）。
【００６４】
図１０（Ｂ）に示すように、例えば受信ColFECパケットの基底SNが6であるとしてtmpColSN =6とすると、10のtmpRowSNに対しては、tmpRowSN > tmpColSNであり（ステップD2）、tmpRowSN < tmpColSNでないので（ステップD4でNO）、tmpRowSNからL値を減算してtmpRowSN=5を得る（ステップD6）。
【００６５】
これで、図１０（Ａ）と図１０（Ｂ）それぞれについて条件をクリアするため、BlockSNを算出し、BlockSN= =0が得られる（ステップD7）。
【００６６】
2.3  AnnexA方式＆RowFECパケット無しの場合
この場合は、RowFECパケットが存在しないため、ColFECパケット１発のみでのBlockSN特定は不可能である。また、通常方式とは異なり、図２４のようなL*Dパターンの場合、BlockSN = 0を特定する必要がある。以上から、L個のColFECパケットの基底シーケンス番号の履歴によりBlockSNを検出する。このため、メモリをBlockSN実値格納メモリ６６とBlockSN理論値格納メモリ６７を使用する。
【００６７】
図１１にAnnexA方式であってRowFECパケット無しの場合における検出手法を示すための参考パターンを示す。このパターンは、L=17、D=4とし、BlockSN = 0としたものであって、ColFECパケットの基底SNの履歴の理論値を最下段に示す。このような基底SNの履歴の理論値が、図１２（Ａ）に示すように、BlockSN理論値格納メモリ６７に格納される。図１３のフローチャートに従って、SN = 0とした時の理論値を算出しメモリに保存する。図１３では、ループカウンタの初期値を0とし（図１３のステップE1）、［L*mod(ループカウンタ/D)+ループカウンタ］を理論値に設定する（ステップE3）ことを、その都度にループカウンタを１だけアップさせながら（ステップE4）、ループカウンタがL未満の間（ステップE2）繰り返している。
【００６８】
いま、パケット0〜7のロス時を想定し、SN = 8を先頭として検索する例を示す。この場合、SN = 8をBlockSNと仮定するため、図１1に代わって図１４に示すようにColFECパケットを受信することになる。この場合、図１４の最下段に示す基底SNが、図１２（Ｂ）の中央の列に示すように、BlockSN実値格納メモリ６６に格納される。また、パケットが受信できていることが前提条件であるため、図１２（Ｂ）の左列に示すようにパケットの受信チェックも実施する。
【００６９】
次に、図１５の二段目に示すように、受信した基底シーケンス番号からOffset値を減算し、理論値と比較するための実値を求めて、図１２（Ｂ）の右列に示すように、BlockSN実値格納メモリ６６に格納する。本例では、図１１に示したとおり、0をBlockSNとして理論値を算出しているため、Offset = 8となる。
【００７０】
そして、実値と図１１に示した理論値の比較を順序どおりに行う。ここで最初に不一致を起こした基底シーケンス番号がBlockSNとなる。つまりSN=68が得られる。
【００７１】
図１６は、以上に説明したFEC演算方式の判定とBlockSNの検出に関する状態遷移図である。IDEL状態にあるとき、RowFECパケットを受信すればRowFECあり設定状態に遷移し、また、ColFECパケットを受信すればColFECパケットL個受信待ちの状態に遷移する。RowFECあり設定状態にあるとき、Row方向の演算があるとColFECパケットL個受信街の状態に遷移する。ColFECパケットL個受信待ちの状態にあるとき、RowFECパケットを受信すればRowFECあり設定状態に遷移し、ColFECパケットをL個受信すればFEC演算方式判定待ちの状態に遷移する。この遷移のタイミングでFEC演算モード判定処理が開始される。
【００７２】
FEC演算方式判定待ちの状態にあるとき、L値D値が確定するとBlockSN検出処理待ちの状態に遷移する。この遷移のタイミングでBlockSN検出処理が開始される。しかし、FEC演算方式判定待ちの状態にある間にColFECパケットのロスを検出すると、ColFECパケットの受信数をクリアして、ColFECパケットL個受信待ちの状態に戻る。
【００７３】
BlockSN検出処理待ちの状態にあるとき、BlockSNが確定し、かつFECモードを更新すると、IDEL状態に復帰する。しかし、その間にColFECパケットのロスを検出すると、ColFECパケットの受信数をクリアして、ColFECパケットL個受信待ちの状態に戻る。
【実施例２】
【００７４】
実施例１（図２）は、FECモード検査部１３を専用回路によって実現しているが、プロセッサと、プログラムを動作させるメモリと、外部との各種インタフェースとでFECモード検査部１３を構成する例について説明する。
【００７５】
図１７に示す、このFECモード検査部２３は、プロセッサ４０とパケット受信インタフェース４１とプログラムやデータが格納されているROM４２と更新処理に必要な各種値と受信パケットを格納するRAM４４と設定変更インタフェース４３をプロセッサ用バス４５で接続された構成となっている。
【００７６】
RTPパケット受信部１２から出力されたパケットがパケット受信インタフェース４１に入力される。パケット受信インタフェース４１からDMA(Direct Memory Access)転送機能により、プロセッサ４０を介さずにRAM４４へパケットを転送する。転送完了後にパケット受信インタフェース４１からプロセッサ４０へ割り込み通知を行うことで、プロセッサ４０にパケット受信を通知する。
【００７７】
プロセッサ４０は、パケット受信インタフェース４１から割り込み通知を受けると、RAM４４からパケットを読み込み、メディアパケットかFECパケットかの判断を行った後、FECモードの検出を行う。検出後は先に示した手順と同様の手順でFECモードの更新を行い、新しいFECモードを設定変更インタフェース４３を介してFECモード格納部１４への更新処理を実施する。更新処理の際には、RAM４４内にFEC演算方式の判定で必要となる基底シーケンス番号履歴メモリ４の領域と、BlockSN検出に必要となるBlockSN実値格納メモリ６６の領域と、BlockSN理論値格納メモリ６７の領域を確保する。
【図面の簡単な説明】
【００７８】
【図１】本発明におけるFEC復号化部の回路構成を示すブロック図
【図２】FEC復号化部におけるFECモード検査部の回路構成を示す図
【図３】基底SNの受信履歴を管理するための基底SN履歴メモリの模式図
【図４】FECモード検査部におけるFEC演算方式判定部が行う処理を示すフローチャート
【図５】FEC演算方式検出処理を説明するための図
【図６】FEC演算方式検出処理を示すフローチャート図
【図７】BlockSN検出処理（通常＆RowFEC有り）を示すフローチャート
【図８】BlockSN検出処理（通常＆RowFEC有り）を説明するための図
【図９】BlockSN検出処理（AnnexA & RowFEC有り）を示すフローチャート
【図１０】BlockSN検出処理（AnnexA & RowFEC有り）説明するためのフローチャート
【図１１】BlockSN検出処理（AnnexA & RowFEC無し）を説明するためのパターン図
【図１２】BlockSN検出処理（AnnexA & RowFEC無し）で使用するメモリフォーマット図
【図１３】BlockSN理論値を算出するフローチャート
【図１４】BlockSN検出処理（AnnexA & RowFEC無し）の開始位置を示す図
【図１５】BlockSN検出処理（AnnexA & RowFEC無し）のイメージ図
【図１６】FEC演算方式の判定とBlockSNの検出に関する状態遷移図
【図１７】FECモード検査部をソフトウェア構成する場合のプロセッサ構成図
【図１８】FECパケットを終端する装置としての一般的なネットワークモデル図
【図１９】FECパケットの生成・訂正する一般的なイメージ図
【図２０】FEC動作モード更新のために必要なFECヘッダ内のフィールドを示す図
【図２１】一般的な２次元FEC演算のイメージ図
【図２２】一般的なAnnexA演算のイメージ図
【図２３】一般的なColumnFECパケットの受信位置を示した図
【図２４】一般的なパケット送信順序を説明するための図
【符号の説明】
【００７９】
１    送信装置
２    受信装置
３    FEC符号化部
４    基底SN履歴メモリ
５    最小ポインタ
６    最大ポインタ
７    演算結果格納メモリ
８    ColFECカウンタ
１１  FEC復号化部
１２  RTPパケット受信部
１３  FECモード検査部
１４  FECモード格納部
１５  FEC訂正部
１６  RTPデータ送信部
１７  RTPデータ生成部
１８  通常パケット送信部
１９  送信切替部
２０  受信切替部
２１  RTPデータ再生部
２２  通常パケット受信部
３３  ビデオカメラ
３４  モニタ
４０  プロセッサ
４１  パケット受信インタフェース
４２  ROM
４３  設定変更インタフェース
４４  RAM
４５  プロセッサ用バス
６０  FECヘッダ解析部
６１  FECモード比較部
６２  RowFEC受信判定部
６３  L値D値判定部
６４  FEC演算方式判定部
６５  BlockSN検出部
６６  BlockSN実値格納メモリ
６７  BlockSN理論値格納メモリ
６８  FECモード変更要求部
【図１】
2009200744.tif 000003
【図２】
2009200744.tif 000004
【図３】
2009200744.tif 000005
【図４】
2009200744.tif 000006
【図５】
2009200744.tif 000007
【図６】
2009200744.tif 000008
【図７】
2009200744.tif 000009
【図８】
2009200744.tif 000010
【図９】
2009200744.tif 000011
【図１０】
2009200744.tif 000012
【図１１】
2009200744.tif 000013
【図１２】
2009200744.tif 000014
【図１３】
2009200744.tif 000015
【図１４】
2009200744.tif 000016
【図１５】
2009200744.tif 000017
【図１６】
2009200744.tif 000018
【図１７】
2009200744.tif 000019
【図１８】
2009200744.tif 000020
【図１９】
2009200744.tif 000021
【図２０】
2009200744.tif 000022
【図２１】
2009200744.tif 000023
【図２２】
2009200744.tif 000024
【図２３】
2009200744.tif 000025
【図２４】
2009200744.tif 000026