(57)【要約】【課題】パケットにシーケンス番号が付加されないデータ伝送の信頼性を向上させる。【解決手段】受信装置３は、送信装置２から受信したパケットの受信エラーを検知すると、送信装置２から受信したパケットのうち、受信エラーが検知されたパケットＰ３の直前に受信したパケットＰ３内のデータ領域のデータ＃２を、再送要求パケットＰ１１に付加して送信装置２へ送信する。送信装置２は、再送要求パケットＰ１１を受信すると、受信装置３へ送信済みのデータと再送要求パケットＰ１１に付加されたデータとを照合し、送信済みのデータのうち照合により一致したデータ＃２の次に送信されたデータ＃３を含むパケットＰ１２を受信装置３へ送信する。【選択図】図１
2015179883.tif 000002
【特許請求の範囲】
【請求項１】
データをパケット化して送信する送信装置と、前記送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムにおいて、
前記受信装置は、前記送信装置から受信したパケットの受信エラーを検知すると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信し、
前記送信装置は、前記パケット再送要求を受信すると、前記受信装置へ送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを前記受信装置へ送信する、
ことを特徴とするデータ伝送システム。
【請求項２】
前記送信装置は、符号化データをパケット化して送信し、
前記受信装置は、前記送信装置から受信したパケットに格納された符号化データをデコードし、デコードエラーが発生した場合にパケットの受信エラーが発生したと判定し、前記送信装置から受信したパケットのうち、デコードエラーが発生した符号化データが含まれていたパケットの直前に受信したパケット内の符号化データを、前記パケット再送要求に付加して前記送信装置へ送信する、
ことを特徴とする請求項１記載のデータ伝送システム。
【請求項３】
前記受信装置は、デコードされたデータを出力する第１のデコード処理とは別に、デコードされたデータの出力を回避した第２のデコード処理を、同じパケット内の符号化データについて前記第１のデコード処理より前に行うことで、パケットの受信エラーを検知することを特徴とする請求項２記載のデータ伝送システム。
【請求項４】
前記受信装置は、パケットの受信エラーを検知して前記パケット再送要求を送信した後、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内の符号化データと、新たに受信したパケット内の符号化データとを順にデコードし、正常にデコードされた場合に、前記新たに受信したパケット内の符号化データが前記パケット再送要求に応じて再送された符号化データであると判定することを特徴とする請求項２記載のデータ伝送システム。
【請求項５】
データをパケット化して送信する送信装置において、
所定の送信先装置からパケット再送要求を受信すると、前記送信先装置に対して送信済みのデータと前記パケット再送要求に付加されたデータとを照合する照合部と、
前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、前記送信先装置へ送信する再送処理部と、
を有することを特徴とする送信装置。
【請求項６】
パケット化されて送信されたデータを受信する受信装置において、
所定の送信装置から送信されたパケットの受信処理を監視する監視部と、
前記監視部によりパケットの受信エラーが検知されると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信する再送要求部と、
を有することを特徴とする受信装置。
【請求項７】
データをパケット化して送信する処理をコンピュータに実行させる送信プログラムにおいて、
前記コンピュータに、
所定の送信先装置からパケット再送要求を受信すると、前記送信先装置に対して送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、
前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、前記送信先装置へ送信する、
処理を実行させることを特徴とする送信プログラム。
【請求項８】
パケット化されて送信されたデータを受信する処理をコンピュータに実行させる受信プログラムにおいて、
前記コンピュータに、
所定の送信装置から送信されたパケットの受信処理を監視し、
監視の結果、パケットの受信エラーが検知されると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信する、
処理を実行させることを特徴とする受信プログラム。
【請求項９】
データをパケット化して送信する送信装置と、前記送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムにおけるデータ伝送方法であって、
前記受信装置が、前記送信装置から受信したパケットの受信エラーを検知すると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信し、
前記送信装置が、前記パケット再送要求を受信すると、前記受信装置へ送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを前記受信装置へ送信する、
ことを特徴とするデータ伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法に関する。
【背景技術】
【０００２】
データ伝送の信頼性を向上させる技術として、自動再送要求（ＡＲＱ：Automatic Repeat-Request）がある。例えば、ＴＣＰ（Transmission Control Protocol）を用いたデータ伝送では、各パケットのＴＣＰヘッダにシーケンス番号が付加される。受信側は、正常に受信したパケットのシーケンス番号に基づいて受信していないパケットを判定し、そのパケットのシーケンス番号を送信側へ通知する。送信側は、通知されたシーケンス番号に基づいて、送信済みのパケットの中から再送すべきパケットを特定することができる。
【０００３】
また、ストリーミング配信で利用されるＲＴＰ（Real-time Transport Protocol）でも、各パケットのＲＴＰヘッダにシーケンス番号が付加される。ＲＴＰでは、制御用に定められたＲＴＣＰ（RTP Control Protocol）のパケットを利用して、受信していないパケットのシーケンス番号が受信側から送信側へ通知され、これによりパケットの再送機能が実現されている。
【０００４】
さらに、上記の自動再送要求技術に、ＦＥＣ（Forward Error Correction）技術を組み合わせたものもある。例えば、ＦＥＣによる２段階の誤り訂正を行うことで、再送要求の頻度を減少させるようにしたデータ伝送システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２３４１３号公報
【特許文献２】特開２００６−１３５５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一方、パケットにシーケンス番号が付加されない伝送方式も存在する。その代表例であるＵＤＰ（User Datagram Protocol）は、例えば、ストリーミング配信などに広く利用されている。このようなパケットにシーケンス番号が付加されない伝送方式では、受信側で受信できなかったパケットを送信側に通知することができないため、所望のパケットを再送させることができないという問題がある。
【０００７】
１つの側面では、本発明は、パケットにシーケンス番号が付加されないデータ伝送の信頼性を向上させたデータ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、データをパケット化して送信する送信装置と、送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムが提供される。このデータ伝送システムにおいて、受信装置は、送信装置から受信したパケットの受信エラーを検知すると、送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。送信装置は、パケット再送要求を受信すると、受信装置へ送信済みのデータとパケット再送要求に付加されたデータとを照合し、送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを受信装置へ送信する。
【０００９】
また、１つの案では、データをパケット化して送信する送信装置が提供される。この送信装置は、照合部と再送処理部とを有する。照合部は、所定の送信先装置からパケット再送要求を受信すると、送信先装置に対して送信済みのデータとパケット再送要求に付加されたデータとを照合する。再送処理部は、送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、送信先装置へ送信する。
【００１０】
さらに、１つの案では、パケット化されて送信されたデータを受信する受信装置が提供される。この受信装置は、監視部と再送要求部とを有する。監視部は、所定の送信装置から送信されたパケットの受信処理を監視する。再送要求部は、監視部によりパケットの受信エラーが検知されると、送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。
【００１１】
また、１つの案では、上記の送信装置と同様の処理をコンピュータに実行させる送信プログラムが提供される。
また、１つの案では、上記の受信装置と同様の処理をコンピュータに実行させる受信プログラムが提供される。
【００１２】
また、１つの案では、上記のデータ伝送システムと同様の処理が実行されるデータ伝送方法が提供される。
【発明の効果】
【００１３】
１つの側面として、パケットにシーケンス番号が付加されないデータ伝送の信頼性が向上する。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るデータ伝送システムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係る画像伝送システムのシステム構成例を示す図である。
【図３】エンコード装置からデコード装置へ送信されるパケットの構成例を示す図である。
【図４】再送要求パケットの構成例を示す図である。
【図５】エンコード装置の処理機能の構成例を示すブロック図である。
【図６】ＵＤＰパケットの送信処理手順の例を示すフローチャートである。
【図７】パケット再送処理の例を示す図である。
【図８】パケット再送処理手順の例を示すフローチャートである。
【図９】デコード装置の処理機能の構成例を示すブロック図である。
【図１０】受信管理テーブルのデータ構成例を示す図である。
【図１１】仮デコードのエラーが発生した場合の処理例を示す図である。
【図１２】再送要求パケットの送信後の処理例を示す図である。
【図１３】パケット受信処理手順の例を示すフローチャートである。
【図１４】通常モードにおける仮デコード処理手順の例を示すフローチャートである。
【図１５】再送要求処理手順の例を示すフローチャートである。
【図１６】エラーモードにおける仮デコード処理手順の例を示すフローチャートである。
【図１７】本デコード処理手順の例を示すフローチャートである。
【図１８】コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るデータ伝送システムの構成例および処理例を示す図である。図１に示すデータ伝送システム１は、データをパケット化して送信する送信装置２と、送信装置２から送信されたデータを受信する受信装置３とを有する。
【００１６】
送信装置２から受信装置３へ送信されるパケットには、シーケンス番号（パケットごとの通し番号）が付加されない。データ伝送システム１では、次のような処理により、シーケンス番号を使用せずに、受信装置３が受信しなかったパケットを、送信装置２に再送させる。
【００１７】
受信装置３は、送信装置２からのパケットの受信処理を監視する。そして、受信装置３は、パケットの受信エラーを検知すると、送信装置２から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。
【００１８】
送信装置２は、受信装置３からのパケット再送要求を受信すると、受信装置３へ送信済みのデータと、受信したパケット再送要求に付加されたデータとを照合する。そして、送信装置２は、送信済みのデータの中から、照合により一致したデータの次に送信されたデータを特定し、特定したデータを含むパケットを受信装置３へ送信する。これにより、受信装置３で正常に受信できなかったデータを含むパケットが、送信装置２から再送されるようになり、その結果、データ伝送の信頼性が向上する。
【００１９】
例えば、図１に示すように、送信装置２から受信装置３に対して、パケットＰ０，Ｐ１，Ｐ２，Ｐ３が順に送信されたとする。パケットＰ０，Ｐ１，Ｐ２，Ｐ３のデータ領域には、データ＃０，＃１，＃２，＃３がそれぞれ格納されているとする。
【００２０】
受信装置３は、パケットＰ０，Ｐ１，Ｐ２を正常に受信できたものの、パケットＰ３については受信エラーが発生したとする。なお、図１の例では、パケットＰ３の内容が壊れているために受信エラーが発生した場合を示している。パケットＰ３の受信エラーが発生する他のケースとしては、例えば、送信装置２からパケットＰ３に続いてデータ＃４（図示せず）を含むパケットＰ４（図示せず）が送信され、受信装置３がパケットＰ４を受信したもののパケットＰ３を受信できないケースもある。
【００２１】
受信装置３は、受信エラーが検知されたパケットＰ３の直前に正常に受信したパケットとして、パケットＰ２を特定する。受信装置３は、特定したパケットＰ２のデータ領域に格納されたデータ＃２を、再送要求パケットＰ１１に格納し、再送要求パケットＰ１１を送信装置２へ送信して、パケットの再送を要求する。送信装置２は、受信装置３から再送要求パケットＰ１１を受信する。
【００２２】
ここで、送信装置２が備える記憶装置、または、送信装置２の外部に接続された記憶装置には、受信装置３に送信されたデータがその送信後にも保持されている。例えば、送信装置２は、バッファ２ａを備え、送信済みのデータをその送信から一定時間バッファ２ａに保持する。送信装置２が再送要求パケットＰ１１を受信したとき、バッファ２ａには、送信済みデータとしてデータ＃０，＃１，＃２，＃３が記憶されていたとする。この場合、送信装置２は、再送要求パケットＰ１１に格納されているデータ＃２と、バッファ２ａ内のデータ＃０，＃１，＃２，＃３とを照合する。その結果、再送要求パケットＰ１１内のデータ＃２と、バッファ２ａ内のデータ＃２とが一致する。
【００２３】
送信装置２は、バッファ２ａ内の送信済みデータの中から、照合の結果一致したデータ＃２の次にパケット化されて送信されたデータとして、データ＃３を特定する。送信装置２は、特定したデータ＃３を含むパケットＰ１２を受信装置３に送信する。これにより、受信装置３で受信できなかったデータ＃３が再送される。
【００２４】
以上の処理によれば、受信装置３で受信エラーが検知されたとき、受信エラーが検知されたパケットの直前に受信したパケットＰ２内のデータ＃２が、再送要求パケットＰ１１を用いて送信装置２に返信される。送信装置２は、返信されたデータ＃２を送信済みのデータと照合することで、受信装置３が受信エラーの発生前に最後に正常に受信したパケットに格納されていたデータ＃２を、判別することができる。そして、送信装置２は、データ＃２の次に送信されたデータ＃３を、パケットＰ１２を用いて再送する。これにより、受信装置３で正常に受信できなかったパケット内のデータ＃３が、送信装置２から確実に再送される。
【００２５】
なお、以上の説明では、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータ全体が付加されるようにした。しかし、例えば、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータの一部が付加されてもよい。例えば、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータのうち、先頭から所定サイズのデータのみが付加されてもよい。
【００２６】
また、送信装置２には、送信済みのデータだけでなく、送信済みのパケット自体が、送信後にも保持されてもよい。この場合、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット自体が付加されてもよい。パケット再送要求を受信した送信装置２は、送信済みのパケットと、パケット再送要求に付加されたパケットとを照合することで、再送すべきパケットを判別する。
【００２７】
〔第２の実施の形態〕
次に、図１のデータ伝送システムの例として、画像データを圧縮符号化した符号化データがストリーミング配信されるシステムについて説明する。
【００２８】
図２は、第２の実施の形態に係る画像伝送システムのシステム構成例を示す図である。図２に示す画像伝送システム５０は、エンコード装置１００とデコード装置２００とを含む。エンコード装置１００とデコード装置２００は、ネットワーク３００を介して接続され、相互に通信できるようになっている。ネットワーク３００は、ＩＰ（Internet Protocol）ネットワークである。
【００２９】
エンコード装置１００には、カメラ３１０が接続されている。エンコード装置１００は、カメラ３１０によって得られた画像データに対してエンコード（圧縮符号化処理）を行い、符号化データを生成する。エンコード装置１００は、生成された符号化データをストリーミング配信する。
【００３０】
デコード装置２００は、エンコード装置１００から送信された符号化データに基づいて、画像をストリーミング再生する。例えば、デコード装置２００には、モニタ３２０が接続されている。デコード装置２００は、エンコード装置１００から送信された符号化データに対してデコード（伸張復号化処理）を行い、デコードされたデータを基に表示情報を生成してモニタ３２０に出力する。これにより、デコード装置２００は、画像の符号化データを受信しながら、同時に画像の再生処理を行う。
【００３１】
図３は、エンコード装置からデコード装置へ送信されるパケットの構成例を示す図である。
エンコード装置１００は、画像の符号化データをＵＤＰストリームパケットを用いて送信する。図３に示すように、ＵＤＰストリームパケットは、ＵＤＰヘッダとペイロードとを有し、ペイロードに画像の符号化データが格納される。ペイロードに格納される符号化データとは、具体的には、１つ以上のＴＳ（Transport Stream）パケットまたはＴＴＳ（Timestamped TS）パケットである。なお、以下の説明では、ＵＤＰストリームパケットを“ＵＤＰパケット”と略称する場合がある。
【００３２】
ところで、ストリーミング配信で利用される他の通信規格として、ＲＴＰがある。ＲＴＰはアプリケーション層で定義された通信プロトコルであり、ＲＴＰがＩＰネットワーク上で利用される際には、トランスポート層のプロトコルとしてＵＤＰが利用されることが多い。この場合、ＲＴＰのパケット（ＲＴＰストリームパケット）は、図３におけるＵＤＰヘッダとペイロード（符号化データ）との間にＲＴＰヘッダが設けられた構成となる。
【００３３】
ＲＴＰヘッダには、送信されたパケットごとの通し番号を示すシーケンス番号が格納される。そして、ＲＴＰの通信では、制御用に定められたＲＴＣＰのパケットを利用して、受信装置で受信できなかったパケットのシーケンス番号を、受信装置から送信装置へ通知することができる。これにより、送信装置は、再送すべきパケットを正確に判別することができる。このように、ＲＴＰを用いたストリーミング配信では、受信装置は、パケットに付加されたシーケンス番号に基づいて、送信装置に所望のパケットを再送させることができる。
【００３４】
このようなＲＴＰを用いたストリーミング配信は一般的になりつつあるが、その一方で、ＲＴＰヘッダを用いないＵＤＰによるストリーミング配信も、未だ多く行われている。ＵＤＰヘッダには、ＵＤＰパケットのシーケンス番号が含まれない。このため、シーケンス番号を用いたパケット再送要求を行うことができない。
【００３５】
本実施の形態では、ＵＤＰパケットを用いた符号化データの伝送処理において、次の図４に示す手順により、デコード装置２００からエンコード装置１００へ所望のパケットの再送を要求できるようにする。
【００３６】
具体的には、デコード装置２００は、エンコード装置１００からのＵＤＰパケットの受信処理を監視する。そして、デコード装置２００は、ＵＤＰパケットの受信エラーを検知すると、受信エラーが検知されたＵＤＰパケットの直前に正常に受信したＵＤＰパケットに格納されていた符号化データを抽出する。デコード装置２００は、抽出した符号化データを再送要求パケットに格納し、その再送要求パケットをエンコード装置１００へ送信し、パケットの再送を要求する。
【００３７】
一方、エンコード装置１００は、デコード装置２００へ送信済みの符号化データを、送信後の一定時間バッファリングする。エンコード装置１００は、デコード装置２００から再送要求パケットを受信すると、バッファリングされた送信済みの符号化データと、再送要求パケットに格納された符号化データとを照合する。そして、エンコード装置１００は、送信済みの符号化データの中から再送要求パケット内の符号化データと一致する符号化データを特定する。エンコード装置１００は、特定された符号化データをバッファから読み出してＵＤＰパケットに格納し、そのＵＤＰパケットをデコード装置２００へ送信する。これにより、デコード装置２００で正常に受信できなかった符号化データが、エンコード装置１００から再送される。
【００３８】
また、デコード装置２００は、受信したＵＤＰパケットに含まれる符号化データをデコードすることで、ＵＤＰパケットの受信エラーを検知する。さらに、パケット受信エラーを検知するためのデコード処理は、符号化データの再生出力を目的としたデコード処理とは別系統の処理として実行される。また、パケット受信エラーを検知するためのデコード処理では、デコードの成否を示す情報が出力されるものの、デコードされたデータの出力は行われない。
【００３９】
以下、パケット受信エラーの検知を目的としたデコードを“仮デコード”と呼び、符号化データの再生出力を目的としたデコードを“本デコード”と呼ぶ。仮デコードおよび本デコードの詳細については後述する。
【００４０】
図４は、再送要求パケットの構成例を示す図である。再送要求パケットは、例えば、ＲＴＣＰパケットのうちのＡＰＰ（Application-Defined RTCP Packets）パケットによって実現される。
【００４１】
ＡＰＰパケットは、ＲＴＰのバージョン（Ｖ）、パディング（Ｐ）、サブタイプ（ＳＢ）、パケットタイプ（ＰＴ）、パケットの長さ（ＬＥＮ）、ＳＳＲＣ（Synchronization Source）、アプリケーション依存データ領域、名前（ＮＡＭＥ）、パケットＩＤ（ＰＩＤ）、パディング（ＰＡＤ）の各項目を有する。デコード装置２００は、アプリケーション依存データ領域に符号化データを格納したＡＰＰパケットを、再送要求パケットとしてエンコード装置１００へ送信する。
【００４２】
次に、エンコード装置１００について説明する。図５は、エンコード装置の処理機能の構成例を示すブロック図である。
エンコード装置１００は、入力処理部１０１、エンコード処理部１０２、送信制御部１０３および再送処理部１０４を備える。入力処理部１０１、エンコード処理部１０２、送信制御部１０３および再送処理部１０４による処理の一部またはすべては、例えば、エンコード装置１００が備えるプロセッサが所定のプログラムを実行することで実現される。また、入力処理部１０１、エンコード処理部１０２、送信制御部１０３および再送処理部１０４による処理の一部またはすべては、例えば、ＬＳＩ（Large Scale Integration）などの専用回路によって実現されてもよい。
【００４３】
また、エンコード装置１００は、符号化データバッファ１１１および送信バッファ１１２を備える。符号化データバッファ１１１および送信バッファ１１２の各記憶領域は、例えば、エンコード装置１００が備えるＲＡＭ（Random Access Memory）によって実現される。
【００４４】
入力処理部１０１は、カメラ３１０によって得られた画像データの入力を受け、入力された画像データをエンコード処理部１０２へ出力する。
エンコード処理部１０２は、入力された画像データをエンコード（圧縮符号化）して符号化データを生成し、符号化データを符号化データバッファ１１１へ書き込む。エンコード方式としては、例えば、ＭＰＥＧ（Moving Picture Experts Group）−２、Ｈ．２６４などが用いられる。また、エンコード処理部１０２は、生成した符号化データを一定サイズごとに区分し、ＴＳパケットまたはＴＴＳパケットの状態で符号化データバッファ１１１へ書き込む。
【００４５】
送信制御部１０３は、１つのＵＤＰパケットに格納する符号化データを符号化データバッファ１１１から読み出し、読み出した符号化データをペイロードに格納したＵＤＰパケットを生成する。送信制御部１０３は、生成したＵＤＰパケットを一旦送信バッファ１１２に格納した後、そのＵＤＰパケットをデコード装置２００へ送信する。
【００４６】
また、送信制御部１０３は、符号化データバッファ１１１に格納された符号化データのうち、再送処理部１０４から指定された符号化データを読み出して、ＵＤＰパケットを生成する場合もある。このケースは、送信済みの符号化データが再送されるケースである。
【００４７】
ここで、本実施の形態では、１つのＵＤＰパケットには、一定数のＴＳパケットまたはＴＴＳパケットが格納されるものとする。また、符号化データバッファ１１１の記憶領域は、図示しない管理テーブルなどを用いて、一定数のＴＳパケットまたはＴＴＳパケットの記憶領域ごとに管理されているものとする。したがって、送信制御部１０３や再送処理部１０４は、符号化データバッファ１１１内の符号化データを、１つのＵＤＰパケットに格納されるデータ群ごとに認識できるものとする。
【００４８】
また、送信制御部１０３は、エンコード処理部１０２が符号化データを符号化データバッファ１１１に書き込む際に、書き込みの通知を受ける。送信制御部１０３は、エンコード処理部１０２から書き込み通知を受けたタイミングを起点として、符号化データバッファ１１１内に格納された符号化データをＵＤＰパケットに格納して送信するタイミングや、符号化データバッファ１１１内に符号化データを保持しておく期間（バッファリング期間）を決定する。この際、送信制御部１０３は、符号化データバッファ１１１内の符号化データをＵＤＰパケットに格納して送信した後にも、例えば一定の時間、送信された符号化データを符号化データバッファ１１１内に保持しておく。これにより、送信済みの符号化データの再送を可能にする。
【００４９】
再送処理部１０４は、デコード装置２００から再送要求パケットを受信すると、再送要求パケットから符号化データを抽出する。再送処理部１０４は、再送要求パケットから抽出した符号化データと、符号化データバッファ１１１に格納されている符号化データとを照合して、同一の符号化データを符号化データバッファ１１１から検索する。
【００５０】
再送処理部１０４は、再送要求パケットから抽出したものと同一の符号化データを符号化データバッファ１１１から発見すると、それより送信順が１つだけ遅い符号化データの記憶領域を符号化データバッファ１１１から特定する。特定された記憶領域には、再送要求パケットから抽出したものと同一の符号化データが格納されたＵＤＰパケットの次に、ＵＤＰパケットに格納されて送信された符号化データが記憶されていることになる。再送処理部１０４は、特定された記憶領域の位置情報を送信制御部１０３に通知して、その記憶領域に記憶された符号化データの再送を要求する。
【００５１】
図６は、ＵＤＰパケットの送信処理手順の例を示すフローチャートである。
［ステップＳ２１］エンコード処理部１０２は、入力処理部１０１から出力された画像データをデコードして、符号化データを生成する。
【００５２】
［ステップＳ２２］エンコード処理部１０２は、生成した符号化データを符号化データバッファ１１１へ書き込む。
［ステップＳ２３］送信制御部１０３は、符号化データバッファ１１１から一定サイズの符号化データ（一定数のＴＳパケットまたはＴＴＳパケット）を読み出し、読み出した符号化データをペイロードに格納したＵＤＰパケットを生成する。送信制御部１０３は、生成したＵＤＰパケットを送信バッファ１１２へ書き込む。
【００５３】
なお、送信制御部１０３によって符号化データバッファ１１１から読み出された符号かデータは、符号化データバッファ１１１に例えば一定時間残され、その後に符号化データバッファ１１１から消去される。
【００５４】
［ステップＳ２４］送信制御部１０３は、送信バッファ１１２に書き込んだＵＤＰパケットを、デコード装置２００へ送信する。
［ステップＳ２５］ＵＤＰパケットの送信を終了するかが判断される。送信を継続する場合にはステップＳ２１の処理が実行され、送信を終了する場合には処理が終了する。
【００５５】
図７は、パケット再送処理の例を示す図である。
図７において、エンコード処理部１０２によって符号化データＤ００〜Ｄ０６が順に生成されて、符号化データバッファ１１１に書き込まれたものとする。また、送信制御部１０３の処理により、符号化データＤ００〜Ｄ０４は、この順序で、すでにＵＤＰパケットに格納されてデコード装置２００へ送信済みであるものとする。さらに、送信済みの符号化データＤ００〜Ｄ０４は、符号化データバッファ１１１に残っているものとする。
【００５６】
なお、符号化データＤ００〜Ｄ０６は、それぞれ同一のサイズを有する。換言すると、符号化データＤ００〜Ｄ０６は、それぞれ同数のＴＳパケットまたはＴＴＳパケットによって構成される。
【００５７】
この状態で、再送処理部１０４は、デコード装置２００から再送要求パケットを受信したとする。再送処理部１０４は、受信した再送要求パケットから符号化データを抽出する。再送処理部１０４は、抽出した符号化データと、符号化データバッファ１１１に保持されている符号化データとを、符号化データバッファ１１１に保持されている先頭の符号化データＤ００（すなわち、最も早く符号化データバッファ１１１に書き込まれた符号化データ）から順に照合していく。その結果、再送要求パケットから抽出した符号化データが、符号化データバッファ１１１に記憶された符号化データＤ０２と一致したとする。
【００５８】
再送処理部１０４は、符号化データＤ０２の次に送信された符号化データＤ０３の符号化データバッファ１１１における記憶領域を特定する。再送処理部１０４は、特定した記憶領域の位置情報を送信制御部１０３に通知して、その記憶領域の符号化データＤ０３の再送を要求する。送信制御部１０３は、再送処理部１０４からの要求に応じて、符号化データバッファ１１１から符号化データＤ０３を読み出し、読み出した符号化データＤ０３をペイロードに格納したＵＤＰパケットを生成して、デコード装置２００へ送信する。
【００５９】
以上のように、エンコード装置１００は、再送要求パケットにより返信された符号化データを、符号化データバッファ１１１内の送信済みデータと照合することで、デコード装置２００に再送すべき符号化データを特定する。これにより、パケットのシーケンス番号を用いなくても、デコード装置２００に再送すべき符号化データを正確に特定することができる。
【００６０】
図８は、パケット再送処理手順の例を示すフローチャートである。
［ステップＳ３１］再送処理部１０４は、デコード装置２００から送信された再送要求パケットを受信する。この受信を契機としてステップＳ３２以降の処理が実行される。
【００６１】
［ステップＳ３２］再送処理部１０４は、受信した再送要求パケットのアプリケーション依存データ領域から、符号化データを抽出する。
［ステップＳ３３］再送処理部１０４は、再送要求パケットから抽出した符号化データと同一の符号化データを、符号化データバッファ１１１から検索する。図７で説明したように、再送処理部１０４は、再送要求パケットから抽出した符号化データと、符号化データバッファ１１１に保持されている符号化データとを、符号化データバッファ１１１に保持されている先頭の符号化データから順に照合していく。
【００６２】
［ステップＳ３４］再送処理部１０４は、ステップＳ３３の処理の結果、再送要求パケットから抽出した符号化データと同一の符号化データが、符号化データバッファ１１１に存在したかを判定する。同一の符号化データが存在した場合、ステップＳ３５の処理が実行され、同一の符号化データが存在しない場合、処理が終了する。
【００６３】
［ステップＳ３５］再送処理部１０４は、ステップＳ３３の処理により符号化データバッファ１１１から検索された符号化データの次に送信された符号化データの記憶領域を特定する。この記憶領域は、検索された符号化データの記憶領域に隣接する領域である。再送処理部１０４は、特定した記憶領域の位置情報を送信制御部１０３に通知して、その記憶領域の符号化データの再送を要求する。
【００６４】
送信制御部１０３は、再送処理部１０４からの要求に応じて、通知された記憶領域の符号化データを符号化データバッファ１１１から読み出す。送信制御部１０３は、読み出した符号かデータをペイロードに格納したＵＤＰパケットを生成して、送信バッファ１１２へ書き込む。
【００６５】
［ステップＳ３６］送信制御部１０３は、送信バッファ１１２に書き込んだＵＤＰパケットをデコード装置２００へ送信する。
次に、デコード装置２００について説明する。図９は、デコード装置の処理機能の構成例を示すブロック図である。
【００６６】
デコード装置２００は、受信制御部２０１、デコード処理部２０２、出力処理部２０３および再送要求処理部２０４を備える。受信制御部２０１、デコード処理部２０２、出力処理部２０３および再送要求処理部２０４による処理の一部またはすべては、例えば、エンコード装置１００が備えるプロセッサが所定のプログラムを実行することで実現される。また、受信制御部２０１、デコード処理部２０２、出力処理部２０３および再送要求処理部２０４による処理の一部またはすべては、例えば、ＬＳＩなどの専用回路によって実現されてもよい。
【００６７】
また、デコード装置２００は、受信バッファ２１１、符号化データバッファ２１２および管理情報記憶部２１３を備える。受信バッファ２１１、符号化データバッファ２１２および管理情報記憶部２１３の各記憶領域は、例えば、デコード装置２００が備えるＲＡＭによって実現される。
【００６８】
エンコード装置１００から送信されたＵＤＰパケットをデコード装置２００が受信すると、受信したＵＤＰパケットは受信バッファ２１１に格納される。受信制御部２０１は、受信バッファ２１１に格納されたＵＤＰパケットから符号化データを抽出し、符号化データバッファ２１２に書き込む。また、受信制御部２０１は、符号化データバッファ２１２に書き込んだ符号化データの仮デコードをデコード処理部２０２に要求する。前述のように、仮デコードはパケットの受信エラーを検知するための処理である。受信制御部２０１は、デコード処理部２０２から出力されるエラーカウンタ値に基づいて、デコードエラーの発生（すなわち、パケットの受信エラーの発生）を検知する。
【００６９】
また、受信制御部２０１は、デコードエラーが発生した後、受信したＵＤＰパケットが再送要求に応じて送信された再送パケットであるかを判定する。
また、受信制御部２０１は、符号化データバッファ２１２に一定時間バッファリングされた符号化データについて、本デコード処理をデコード処理部２０２に要求する。これにより、符号化データバッファ２１２に書き込まれた符号化データに基づく画像再生処理が実行される。
【００７０】
また、受信制御部２０１は、管理情報記憶部２１３に記憶された受信管理テーブルを用いて、受信したＵＤＰパケットから抽出した各符号化データの状態を管理する。例えば、受信制御部２０１は、ＵＤＰパケットから抽出した符号化データの符号化データバッファ２１２における書き込み位置、デコードエラーの発生の有無、本デコードの順番などを受信管理テーブルを用いて管理する。
【００７１】
デコード処理部２０２は、受信制御部２０１からの要求に応じて、符号化データバッファ２１２から符号化データを読み出してデコード（伸張復号化）する。デコード処理部２０２は、仮デコード処理と本デコード処理という２系統のデコード処理を実行する。
【００７２】
仮デコード処理は、パケット受信エラーを検知するための処理である。仮デコード処理では、符号化データをデコードして得られる画像データ（復号化データ）の出力は行われない。デコード処理部２０２は、符号化データを仮デコードし、正常にデコードできなかった場合には、受信制御部２０１へ出力するエラーカウンタ値をインクリメントする。これにより、デコードエラーの発生が通知される。
【００７３】
デコードエラーが検知される場合とは、例えば、入力される符号化データの連続性に問題がある場合と、入力された符号化データの一部について問題がある場合とがある。前者の場合、パケットロスの発生が考えられ、後者の場合、伝送路上でパケットの一部が破損したことが考えられる。
【００７４】
本デコード処理は、符号化データに基づく画像を再生出力するための処理である。デコード処理部２０２は、符号化データを本デコードすると、デコードされた画像データを出力処理部２０３へ出力する。
【００７５】
ここで、ＵＤＰパケット内の符号化データに対する仮デコードは、そのＵＤＰパケットがデコード装置２００に受信されてからできるだけ早いタイミングで行われる。一方、ＵＤＰパケット内の符号化データに対する本デコードは、そのＵＤＰパケット内がデコード装置２００に受信され、ＵＤＰパケット内の符号化データが符号化データバッファ２１２に一定時間バッファリングされた後に行われる。すなわち、同じＵＤＰパケット内の符号化データについては、本デコードより前に仮デコードが行われる。
【００７６】
これにより、あるＵＤＰパケットを正常に受信できなかった場合、そのＵＤＰパケットの本デコードを開始するタイミングより前に、エンコード装置１００へそのＵＤＰパケットの再送要求が行われ、必要なＵＤＰパケットが再送されるようになる。したがって、ＵＤＰパケットの受信エラーが発生した場合でも、再生される画像の品質を低下させずに再生処理を継続できる可能性が高くなる。
【００７７】
再送要求処理部２０４は、管理情報記憶部２１３内の受信管理テーブルに基づいて、デコードエラー（すなわち、パケット受信エラー）の発生を認識する。再送要求処理部２０４は、受信管理テーブルに基づいて、受信エラーが発生したＵＤＰパケットの直前に正常に受信されたＵＤＰパケットに格納されていた符号化データを特定する。再送要求処理部２０４は、特定した符号化データを符号化データバッファ２１２から読み出し、読み出した符号化データを格納した再送要求パケットを生成して、エンコード装置１００に送信する。
【００７８】
図１０は、受信管理テーブルのデータ構成例を示す図である。受信管理テーブル２１３ａは、管理情報記憶部２１３に記憶される。
受信管理テーブル２１３ａは、符号化データバッファ２１２の記憶領域を分割した分割領域ごとのレコードを備える。各レコードに対応する分割領域には、１つのＵＤＰパケットから抽出された符号化データが格納される。すなわち、受信管理テーブル２１３ａの１つのレコードは、受信した１つのＵＤＰパケットに対応している。また、受信管理テーブル２１３ａの各レコードは、例えば、連結リスト構造で管理される。
【００７９】
受信管理テーブル２１３ａの各レコードには、ステータス、受信番号、バッファアドレス、データサイズ、受信時刻、仮デコード状態、本デコード番号、再送要求時刻および再送要求回数の各項目が設けられる。
【００８０】
ステータスの項目には、該当レコードが有効か無効かを示すフラグが登録される。レコードが有効とは、そのレコードに対応する記憶領域に記憶されたデータが有効である（上書き不許可である）ことを示す。なお、初期状態では、ステータスの項目には無効を示す値が登録される。
【００８１】
受信番号の項目には、該当符号化データが受信されて符号化データバッファ２１２に書き込まれた順序を示す番号が登録される。バッファアドレスの項目には、該当符号化データの符号化データバッファ２１２における先頭アドレスが登録される。データサイズの項目には、該当符号化データのサイズが登録される。受信時刻の項目には、該当符号化データが符号化データバッファ２１２に書き込まれた時点の時刻が登録される。
【００８２】
仮デコード状態の項目には、該当符号化データの仮デコードに関する状態を示す情報が登録される。具体的には、仮デコードを実施していない「未実施」、仮デコードに成功した「正常」、仮デコードのエラーが発生した「異常」のいずれかを示す情報が登録される。本デコード番号の項目には、本デコードを行う順序を示す番号が登録される。
【００８３】
再送要求時刻の項目には、該当符号化データについて仮デコードのエラーが発生したことに応じて最後に再送要求が行われた時刻が登録される。再送要求回数の項目には、該当符号化データについて仮デコードのエラーが発生したことに応じて再送要求が行われた回数が登録される。
【００８４】
次に、図１１および図１２を用いて、仮デコードのエラーに応じた再送要求処理と、再送された符号化データの受信処理について、具体例を挙げて説明する。まず、図１１は、仮デコードのエラーが発生した場合の処理例を示す図である。
【００８５】
図１１の例では、デコード装置２００が３つのＵＤＰパケットを受信し、各ＵＤＰパケットから抽出された符号化データが、それぞれ受信番号“００１０”，“００１１”，“００１２”が付与されて符号化データバッファ２１２に書き込まれたとする。また、受信番号“００１０”，“００１１”の符号化データについては、仮デコードに成功したとする。これにより、受信番号“００１０”，“００１１”の各符号化データに対応する、受信管理テーブル２１３ａのレコードにおいては、仮デコード状態の項目に「正常」と登録されている。また、仮デコードに成功した符号化データについては、順番に本デコード番号が付与される。図１１の例では、受信番号“００１０”，“００１１”の符号化データに、本デコード番号“００１０”，“００１１”がそれぞれ付与されている。
【００８６】
そして、受信番号“００１２”の符号化データを仮デコードしたところ、デコードエラーが発生したとする。このとき、受信制御部２０１は、受信番号“００１２”の符号化データに対応する受信管理テーブル２１３ａのレコードにおいて、仮デコード状態の項目に「異常」と登録する。
【００８７】
再送要求処理部２０４は、受信番号“００１２”の符号化データに対応する受信管理テーブル２１３ａのレコードにおいて、仮デコード状態の項目に「異常」が登録されたことを検知すると、このレコードより受信番号が１つ前のレコードを参照する。再送要求処理部２０４は、参照したレコードに対応する符号化データを符号化データバッファ２１２から読み出す。図１１の例では、受信番号“００１１”の符号化データが読み出される。再送要求処理部２０４は、受信番号“００１１”の符号化データを格納した再送要求パケットを生成して、この再送要求パケットをエンコード装置１００へ送信する。
【００８８】
図１２は、再送要求パケットの送信後の処理例を示す図である。再送要求パケットが送信された後、受信制御部２０１は、次のようにして、受信した符号化データの中から、再送要求パケットに応じて再送された符号化データを判別する。
【００８９】
再送要求処理部２０４は、最大の本デコード番号が付与された符号化データ（すなわち、デコードエラー検知前に最後に正常に仮デコードに成功した符号化データ）と、新たに受信したＵＤＰパケットから抽出した符号化データとを、続けて仮デコードさせる。例えば、図１２に示すように、再送要求パケットを送信した後、新たに受信したＵＤＰパケットにより受信番号“００１５”，“００１６”の符号化データが符号化データバッファ２１２に書き込まれたとする。
【００９０】
受信制御部２０１は、まず、本デコード番号“００１１”が付与された受信番号“００１１”の符号化データの仮デコードと、受信番号“００１５”の符号化データの仮デコードとを、デコード処理部２０２に続けて実行させる。その結果、デコードエラーが発生したとする。これは、受信番号“００１１”，“００１５”の各符号化データが、連続した符号化データではないことを示す。この場合、受信制御部２０１は、受信番号“００１５”の符号化データが再送されたものではないと判定する。
【００９１】
受信制御部２０１は、次に、受信番号“００１１”の符号化データの仮デコードと、受信番号“００１６”の符号化データの仮デコードとを、デコード処理部２０２に続けて実行させる。その結果、デコードに成功したとする。これは、受信番号“００１１”，“００１６”の各符号化データが、連続した符号化データであることを示す。この場合、受信制御部２０１は、受信番号“００１６”の符号化データが再送されたものであると判定し、この符号化データに本デコード番号“００１２”を付与する。このように本デコード番号が付与されることで、受信番号“００１０”の符号化データ、受信番号“００１１”の符号化データ、受信番号“００１６”の符号化データの順で、本デコードが行われるようになる。
【００９２】
その後、図１２の右側に示すように、受信番号“００１２”の符号化データを始点として仮デコードが行われる。ただし、受信番号“００１６”の符号化データについては、該当レコードの仮デコード状態の項目に「正常」と登録されることで、仮デコードがスキップされる。
【００９３】
以上の図１２に示したように、デコード装置２００は、デコードエラーの検知前に最後に正常に受信した符号化データと、デコードエラーの検知後に受信した符号化データとを順に仮デコードさせることで、各符号化データの連続性に基づいて、再送された符号化データを判別することが可能となる。
【００９４】
なお、再送された符号化データの判別方法としては、他の方法を利用することもできる。例えば、エンコード装置１００が、再送要求パケットの受信に応じて送信するＵＤＰパケットに、再送を示す識別情報を付加する方法が考えられる。この場合、デコード装置２００の受信制御部２０１は、受信したＵＤＰパケットに再送を示す識別情報が付加されていることを認識すると、当該ＵＤＰパケットから抽出した符号化データに対して、最後に付加された本デコード番号を１だけインクリメントした本デコード番号（図１２の例では“００１２”）を付与する。
【００９５】
次に、デコード装置２００の処理についてフローチャートを用いて説明する。まず、図１３は、パケット受信処理手順の例を示すフローチャートである。
［ステップＳ４１］デコード装置２００がＵＤＰパケットを受信すると、受信したＵＤＰパケットは受信バッファ２１１に格納される。
【００９６】
［ステップＳ４２］受信制御部２０１は、受信バッファ２１１に格納されたＵＤＰパケットから符号化データを抽出し、符号化データバッファ２１２に書き込む。
［ステップＳ４３］受信制御部２０１は、受信管理テーブル２１３ａにおけるステータスが無効のレコードを選択し、選択したレコードの情報を次のように更新する。
【００９７】
受信制御部２０１は、ステータスの項目に、有効を示す値を登録する。受信番号の項目に、受信管理テーブル２１３ａに登録された受信番号の最大値に１を加算した値を登録する。バッファアドレスの項目に、符号化データを格納した符号化データバッファ２１２の記憶領域の先頭アドレスを登録する。データサイズの項目に、符号化データのサイズを登録する。受信時刻の項目に、現在の時刻を登録する。仮デコード状態の項目に、「未実施」を登録する。本デコード番号および再送要求時刻の各項目に、ＮＵＬＬを登録する。再送要求回数の項目に、０を登録する。
【００９８】
図１４は、通常モードにおける仮デコード処理手順の例を示すフローチャートである。なお、デコード装置２００は、仮デコードエラーが検知されていない「通常モード」と、仮デコードエラーが検知された状態の「エラーモード」の２つの動作モードを有する。図１４の処理は、デコード装置２００が通常モードの場合に、一定時間ごとに繰り返し実行される。換言すると、図１４の処理は、デコード装置２００がエラーモードの場合には実行されない。
【００９９】
［ステップＳ５１］受信制御部２０１は、受信管理テーブル２１３ａを参照して、仮デコード状態の項目が「未実施」のレコードがあるか、すなわち、受信した符号化データの中に仮デコードが未実施のデータがあるかを判定する。仮デコードが未実施のデータがある場合、ステップＳ５２の処理が実行され、未実施のデータがない場合、図１４の処理は終了する。
【０１００】
［ステップＳ５２］受信制御部２０１は、仮デコード状態の項目が「未実施」のレコードに対応する符号化データのアドレスをデコード処理部２０２に通知して、仮デコードを要求する。デコード処理部２０２は、該当する符号化データを符号化データバッファ２１２から読み出して、仮デコードを行う。
【０１０１】
［ステップＳ５３］受信制御部２０１は、デコード処理部２０２から出力されるエラーカウンタ値をチェックする。デコードエラーが発生した場合、ステップＳ５２の前後でエラーカウンタ値がインクリメントされる。受信制御部２０１は、エラーカウンタ値がインクリメントされた場合に、デコードエラーが発生したことを検知する。
【０１０２】
［ステップＳ５４］受信制御部２０１は、ステップＳ５２で参照した、仮デコード状態の項目が「未実施」のレコードの情報を、次のように更新する。ステップＳ５３でデコードエラーが検知されなかった場合、受信制御部２０１は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、受信管理テーブル２１３ａに登録された本デコード番号の最大値に１を加算した値を登録する。一方、ステップＳ５３でデコードエラーが検知された場合、受信制御部２０１は、仮デコード状態の項目を「異常」に更新する。
【０１０３】
［ステップＳ５５］ステップＳ５３でデコードエラーが検知された場合、ステップＳ５６の処理が実行される。ステップＳ５３でデコードエラーが検知されなかった場合、図１４の処理は終了する。
【０１０４】
［ステップＳ５６］受信制御部２０１は、デコード処理部２０２に対して、仮デコード処理のリセットを要求する。デコード処理部２０２は、要求に応じて仮デコードをリセットすることにより、デコードエラーの状態を解消し、その後に符号化データバッファ２１２から読み出す符号化データから仮デコード処理を実行し直すことが可能になる。
【０１０５】
［ステップＳ５７］受信制御部２０１は、デコード装置２００を通常モードからエラーモードに遷移させる。
図１５は、再送要求処理手順の例を示すフローチャートである。
【０１０６】
［ステップＳ６１］再送要求処理部２０４は、再送要求の要否を判定する。具体的には、再送要求処理部２０４は、受信管理テーブル２１３ａのレコードの中に、仮デコード状態の項目に「異常」が登録されたレコードがある場合に、再送要求が必要と判定する。再送要求が必要と判定した場合、ステップＳ５２の処理が実行される。再送要求が不要と判定した場合、図１４の処理が終了する。
【０１０７】
［ステップＳ６２］再送要求処理部２０４は、受信管理テーブル２１３ａから、最大の本デコード番号が登録されたレコードを特定する。特定されたレコードに対応する符号化データは、再送要求パケットに格納する符号化データとなる。
【０１０８】
［ステップＳ６３］再送要求処理部２０４は、ステップＳ６２で特定したレコードに対応する符号化データを符号化データバッファ２１２から読み出す。再送要求処理部２０４は、読み出した符号化データを格納した再送要求パケットを生成する。
【０１０９】
［ステップＳ６４］再送要求処理部２０４は、生成した再送要求パケットをエンコード装置１００へ送信する。
［ステップＳ６５］再送要求処理部２０４は、受信管理テーブル２１３ａにおける、仮デコード状態の項目に「異常」が登録されたレコードの情報を、次のように更新する。再送要求処理部２０４は、再送要求時刻の項目に、現在の時刻を登録し、再送要求回数の項目の値を１だけインクリメントする。情報の更新が完了すると、再送要求処理部２０４は、受信制御部２０１に対して、再送要求パケットを送信したことを通知する。
【０１１０】
図１６は、エラーモードにおける仮デコード処理手順の例を示すフローチャートである。この図１６の処理は、再送要求パケットに応じてエンコード装置１００から再送された符号化データを特定するための処理である。図１６の処理は、デコード装置２００がエラーモードに遷移し、再送要求処理部２０４から再送要求パケットを送信したことが通知された場合に実行される。
【０１１１】
［ステップＳ７１］受信制御部２０１は、受信管理テーブル２１３ａから、最大の本デコード番号が登録されたレコードを特定する。通常モードにおいて仮デコードに成功した最終データを示す。受信制御部２０１は、特定されたレコードに対応する符号化データの仮デコードを、デコード処理部２０２に要求する。デコード処理部２０２は、要求された符号化データを符号化データバッファ２１２から読み出し、仮デコードを行う。
【０１１２】
［ステップＳ７２］受信制御部２０１は、デコードエラー発生後に受信した符号化データに対応する受信管理テーブル２１３ａのレコードを選択する。この選択処理では、ステップＳ７２が実行されるたびに、再送要求処理部２０４から再送要求パケットの送信が通知された後に受信された符号化データに対応する受信管理テーブル２１３ａのレコードの中から、受信番号が小さい順に選択される。
【０１１３】
受信制御部２０１は、選択したレコードに対応する符号化データの仮デコードを、デコード処理部２０２に要求する。デコード処理部２０２は、要求された符号化データを符号化データバッファ２１２から読み出し、仮デコードを行う。
【０１１４】
［ステップＳ７３］受信制御部２０１は、デコード処理部２０２から通知されるエラーカウンタ値に基づいて、ステップＳ７２で仮デコードを要求した符号化データについて、仮デコードに成功したかを判定する。仮デコードに成功した場合、ステップＳ７５の処理が実行され、仮デコードのエラーが発生した場合、ステップＳ７４の処理が実行される。
【０１１５】
［ステップＳ７４］受信制御部２０１は、デコード処理部２０２に対して、仮デコード処理のリセットを要求する。デコード処理部２０２は、要求に応じて仮デコードをリセットする。
【０１１６】
［ステップＳ７５］受信制御部２０１は、ステップＳ７２で選択したレコードの情報を、次のように更新する。受信制御部２０１は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、受信管理テーブル２１３ａに登録された本デコード番号の最大値に１を加算した値を登録する。
【０１１７】
［ステップＳ７６］受信制御部２０１は、エラーモードに遷移するトリガとなったデコードエラーが、パケットロスによるものか、パケット内のデータ破損によるものかを判定する。
【０１１８】
この処理では、例えば、受信制御部２０１は、仮デコード状態の項目に「異常」が登録された受信管理テーブル２１３ａのレコード（すなわち、エラーモードに遷移する直前における図１４の処理によってデコードエラーが検知された符号化データに対応するレコード）を特定する。受信制御部２０１は、特定したレコードに対応する符号化データの仮デコードを、デコード処理部２０２に要求する。
【０１１９】
この仮デコード要求に応じたデコード処理部２０２での仮デコードに成功した場合、当該符号化データは再送された符号化データの次に符号化すべきデータであることを示す。この場合、パケットロスが発生したと判断される。受信制御部２０１は、特定したレコードの情報を、次のように更新する。受信制御部２０１は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、ステップＳ７５で登録した本デコード番号に１を加算した値を登録する。
【０１２０】
一方、仮デコード要求に応じたデコード処理部２０２での仮デコードで、デコードエラーが発生した場合、特定したレコードに対応する符号化データが破損していると判断される。この場合、受信制御部２０１は、特定したレコードにおけるステータスの項目を、無効を示す値に更新して、符号化データバッファ２１２内の該当符号化データを無効化する。そして、受信制御部２０１は、デコード処理部２０２に対して仮デコードのリセットを要求する。
【０１２１】
［ステップＳ７７］受信制御部２０１は、デコード装置２００をエラーモードから通常モードに遷移させる。これにより、図１４の処理が実行されるようになる。
図１７は、本デコード処理手順の例を示すフローチャートである。
【０１２２】
［ステップＳ８１］受信制御部２０１は、受信管理テーブル２１３ａの各レコードにおける受信時刻の項目に基づき、符号化データバッファ２１２にバッファリングされた時間が所定の閾値（例えば、２秒）を超えた符号化データがあるかを判定する。バッファリング時間が閾値を超えた符号化データがある場合、ステップＳ８２の処理が実行される。バッファリング時間が閾値を超えた符号化データがない場合、図１７の処理が終了する。
【０１２３】
［ステップＳ８２］受信制御部２０１は、バッファリング時間が閾値を超えた符号化データの本デコードをデコード処理部２０２に要求する。デコード処理部２０２は、本デコードの要求に応じて、該当符号化データを符号化データバッファ２１２から読み出し、本デコードを行う。デコード処理部２０２は、デコードにより得られた画像データ（復号化データ）を出力処理部２０３へ出力する。これにより、画像の再生出力が行われる。
【０１２４】
［ステップＳ８３］受信制御部２０１は、ステップＳ８２で本デコードを要求した符号化データに対応する、受信管理テーブル２１３ａのレコードについて、ステータスの項目を無効を示す情報に更新する。
【０１２５】
以上説明した第２の実施の形態によれば、デコード装置２００が、受信エラーが発生したＵＤＰパケットの直前に正常に受信したＵＤＰパケット内の符号化データを、再送要求パケットに格納してエンコード装置１００へ送信する。エンコード装置１００は、再送要求パケットから抽出した符号化データを、送信済みの符号化データと照合することで、再送すべき符号化データを特定する。このような処理により、デコード装置２００で受信できなかったＵＤＰパケット内の符号化データを、エンコード装置１００から確実に再送させることができる。したがって、パケットにシーケンス番号が付加されていないストリーム伝送方法を用いた場合でも、パケット再送機能を付加することができる。
【０１２６】
また、デコード装置２００は、受信したＵＤＰパケット内の符号化データをデコードすることにより、ＵＤＰパケットの受信エラーを検知する。これにより、ＵＤＰパケット内のデータの破損による受信エラーと、ＵＤＰパケット自体の欠落（パケットロス）による受信エラーの両方を検知することができる。
【０１２７】
さらに、デコード装置２００は、再生出力を目的とした本デコード処理とは別の仮デコード処理により、パケット受信エラーを検知する。複数系統のデコード処理を実行可能なデコード回路はすでに存在していることから、既存のデコード回路を利用してパケット受信エラーを検知することができ、デコード装置２００の開発コストや製造コストが増大することを抑制できる。また、１系統のデコード処理機能のみ備えるデコード装置であっても、既存技術であるデコード処理の機能を付加するだけでパケット受信エラーの検知を実現できるので、デコード装置の開発コストや製造コストが増大することを抑制できる。
【０１２８】
なお、パケット受信エラーの検知方法としては、他の方法を用いることもできる。例えば、ＵＤＰヘッダに格納されたチェックサムを用いてパケット受信エラーを検知することができる。この方法によれば、ＵＤＰパケット内のデータが破損されたことによる受信エラーを検知できる。
【０１２９】
ところで、上記のエンコード装置１００およびデコード装置２００は、ともに次の図１８に示すようなコンピュータとして実現することができる。図１８は、コンピュータのハードウェア構成例を示す図である。
【０１３０】
図１８に示すコンピュータ４００は、プロセッサ４０１によって装置全体が制御されている。プロセッサ４０１は、マルチプロセッサであってもよい。プロセッサ４０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ４０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【０１３１】
プロセッサ４０１には、バス４０８を介して、ＲＡＭ４０２と複数の周辺機器が接続されている。
ＲＡＭ４０２は、コンピュータ４００の主記憶装置として使用される。ＲＡＭ４０２には、プロセッサ４０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ４０２には、プロセッサ４０１による処理に必要な各種データが格納される。
【０１３２】
バス４０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）４０３、グラフィック処理装置４０４、入力インタフェース４０５、読み取り装置４０６および通信インタフェース４０７がある。
【０１３３】
ＨＤＤ４０３は、コンピュータ４００の補助記憶装置として使用される。ＨＤＤ４０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【０１３４】
グラフィック処理装置４０４には、表示装置４０４ａが接続されている。グラフィック処理装置４０４は、プロセッサ４０１からの命令に従って、画像を表示装置４０４ａの画面に表示させる。表示装置としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。なお、グラフィック処理装置４０４は、画像データのエンコード処理機能やデコード処理機能を備えていてもよい。
【０１３５】
入力インタフェース４０５には、入力装置４０５ａが接続されている。入力インタフェース４０５は、入力装置４０５ａから出力される信号をプロセッサ４０１に送信する。入力装置４０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１３６】
読み取り装置４０６には、可搬型記録媒体４０６ａが脱着される。読み取り装置４０６は、可搬型記録媒体４０６ａに記録されたデータを読み取ってプロセッサ４０１に送信する。可搬型記録媒体４０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【０１３７】
通信インタフェース４０７は、ネットワークを介して他の装置との間でデータの送受信を行う。
図５に示したエンコード装置１００における入力処理部１０１、エンコード処理部１０２、送信制御部１０３および再送処理部１０４による処理を、プロセッサ４０１が所定のプログラムを実行することで実現できる。また、これらの処理の一部をプロセッサ４０１以外の回路によって実現することもできる。例えば、送信制御部１０３および再送処理部１０４の処理を、プロセッサ４０１が所定のプログラムを実行することで実現し、入力処理部１０１およびエンコード処理部１０２の処理を、グラフィック処理装置４０４によって実現してもよい。
【０１３８】
同様に、図９に示したデコード装置２００における受信制御部２０１、デコード処理部２０２、出力処理部２０３および再送要求処理部２０４による処理を、プロセッサ４０１が所定のプログラムを実行することで実現できる。また、これらの処理の一部をプロセッサ４０１以外の回路によって実現することもできる。例えば、受信制御部２０１および出力処理部２０３の処理を、プロセッサ４０１が所定のプログラムを実行することで実現し、デコード処理部２０２および出力処理部２０３の処理を、グラフィック処理装置４０４によって実現してもよい。
【０１３９】
このように、第２の実施の形態のエンコード装置１００およびデコード装置２００の処理は、各装置が備えるプロセッサにプログラムを実行させることで実現できる。同様に、第１の実施の形態の送信装置２および受信装置３の処理も、各装置が備えるプロセッサにプログラムを実行させることで実現できる。
【０１４０】
このようなプログラムは、コンピュータ読み取り可能な記録媒体（例えば、図１８の可搬型記録媒体４０６ａ）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【０１４１】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置（例えば、図１８のＨＤＤ４０３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することも可能である。
【符号の説明】
【０１４２】
１  データ伝送システム
２  送信装置
２ａ  バッファ
３  受信装置
Ｐ０〜Ｐ３，Ｐ１２  パケット
Ｐ１１  再送要求パケット
【図１】
2015179883.tif 000003
【図２】
2015179883.tif 000004
【図３】
2015179883.tif 000005
【図４】
2015179883.tif 000006
【図５】
2015179883.tif 000007
【図６】
2015179883.tif 000008
【図７】
2015179883.tif 000009
【図８】
2015179883.tif 000010
【図９】
2015179883.tif 000011
【図１０】
2015179883.tif 000012
【図１１】
2015179883.tif 000013
【図１２】
2015179883.tif 000014
【図１３】
2015179883.tif 000015
【図１４】
2015179883.tif 000016
【図１５】
2015179883.tif 000017
【図１６】
2015179883.tif 000018
【図１７】
2015179883.tif 000019
【図１８】
2015179883.tif 000020