JP6237367B2 - データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法 - Google Patents

データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法 Download PDF

Info

Publication number
JP6237367B2
JP6237367B2 JP2014055278A JP2014055278A JP6237367B2 JP 6237367 B2 JP6237367 B2 JP 6237367B2 JP 2014055278 A JP2014055278 A JP 2014055278A JP 2014055278 A JP2014055278 A JP 2014055278A JP 6237367 B2 JP6237367 B2 JP 6237367B2
Authority
JP
Japan
Prior art keywords
packet
data
encoded data
reception
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014055278A
Other languages
English (en)
Other versions
JP2015179883A (ja
Inventor
俊幸 浅野
俊幸 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014055278A priority Critical patent/JP6237367B2/ja
Publication of JP2015179883A publication Critical patent/JP2015179883A/ja
Application granted granted Critical
Publication of JP6237367B2 publication Critical patent/JP6237367B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法に関する。
データ伝送の信頼性を向上させる技術として、自動再送要求(ARQ:Automatic Repeat-Request)がある。例えば、TCP(Transmission Control Protocol)を用いたデータ伝送では、各パケットのTCPヘッダにシーケンス番号が付加される。受信側は、正常に受信したパケットのシーケンス番号に基づいて受信していないパケットを判定し、そのパケットのシーケンス番号を送信側へ通知する。送信側は、通知されたシーケンス番号に基づいて、送信済みのパケットの中から再送すべきパケットを特定することができる。
また、ストリーミング配信で利用されるRTP(Real-time Transport Protocol)でも、各パケットのRTPヘッダにシーケンス番号が付加される。RTPでは、制御用に定められたRTCP(RTP Control Protocol)のパケットを利用して、受信していないパケットのシーケンス番号が受信側から送信側へ通知され、これによりパケットの再送機能が実現されている。
さらに、上記の自動再送要求技術に、FEC(Forward Error Correction)技術を組み合わせたものもある。例えば、FECによる2段階の誤り訂正を行うことで、再送要求の頻度を減少させるようにしたデータ伝送システムが提案されている。
特開2003−23413号公報 特開2006−135584号公報
一方、パケットにシーケンス番号が付加されない伝送方式も存在する。その代表例であるUDP(User Datagram Protocol)は、例えば、ストリーミング配信などに広く利用されている。このようなパケットにシーケンス番号が付加されない伝送方式では、受信側で受信できなかったパケットを送信側に通知することができないため、所望のパケットを再送させることができないという問題がある。
1つの側面では、本発明は、パケットにシーケンス番号が付加されないデータ伝送の信頼性を向上させたデータ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法を提供することを目的とする。
1つの案では、データをパケット化して送信する送信装置と、送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムが提供される。このデータ伝送システムにおいて、受信装置は、送信装置から受信したパケットの受信エラーを検知すると、送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。送信装置は、パケット再送要求を受信すると、受信装置へ送信済みのデータとパケット再送要求に付加されたデータとを照合し、送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを受信装置へ送信する。
また、1つの案では、データをパケット化して送信する送信装置が提供される。この送信装置は、照合部と再送処理部とを有する。照合部は、所定の送信先装置からパケット再送要求を受信すると、送信先装置に対して送信済みのデータとパケット再送要求に付加されたデータとを照合する。再送処理部は、送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、送信先装置へ送信する。
さらに、1つの案では、パケット化されて送信されたデータを受信する受信装置が提供される。この受信装置は、監視部と再送要求部とを有する。監視部は、所定の送信装置から送信されたパケットの受信処理を監視する。再送要求部は、監視部によりパケットの受信エラーが検知されると、送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。
また、1つの案では、上記の送信装置と同様の処理をコンピュータに実行させる送信プログラムが提供される。
また、1つの案では、上記の受信装置と同様の処理をコンピュータに実行させる受信プログラムが提供される。
また、1つの案では、上記のデータ伝送システムと同様の処理が実行されるデータ伝送方法が提供される。
1つの側面として、パケットにシーケンス番号が付加されないデータ伝送の信頼性が向上する。
第1の実施の形態に係るデータ伝送システムの構成例および処理例を示す図である。 第2の実施の形態に係る画像伝送システムのシステム構成例を示す図である。 エンコード装置からデコード装置へ送信されるパケットの構成例を示す図である。 再送要求パケットの構成例を示す図である。 エンコード装置の処理機能の構成例を示すブロック図である。 UDPパケットの送信処理手順の例を示すフローチャートである。 パケット再送処理の例を示す図である。 パケット再送処理手順の例を示すフローチャートである。 デコード装置の処理機能の構成例を示すブロック図である。 受信管理テーブルのデータ構成例を示す図である。 仮デコードのエラーが発生した場合の処理例を示す図である。 再送要求パケットの送信後の処理例を示す図である。 パケット受信処理手順の例を示すフローチャートである。 通常モードにおける仮デコード処理手順の例を示すフローチャートである。 再送要求処理手順の例を示すフローチャートである。 エラーモードにおける仮デコード処理手順の例を示すフローチャートである。 本デコード処理手順の例を示すフローチャートである。 コンピュータのハードウェア構成例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るデータ伝送システムの構成例および処理例を示す図である。図1に示すデータ伝送システム1は、データをパケット化して送信する送信装置2と、送信装置2から送信されたデータを受信する受信装置3とを有する。
送信装置2から受信装置3へ送信されるパケットには、シーケンス番号(パケットごとの通し番号)が付加されない。データ伝送システム1では、次のような処理により、シーケンス番号を使用せずに、受信装置3が受信しなかったパケットを、送信装置2に再送させる。
受信装置3は、送信装置2からのパケットの受信処理を監視する。そして、受信装置3は、パケットの受信エラーを検知すると、送信装置2から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して送信装置へ送信する。
送信装置2は、受信装置3からのパケット再送要求を受信すると、受信装置3へ送信済みのデータと、受信したパケット再送要求に付加されたデータとを照合する。そして、送信装置2は、送信済みのデータの中から、照合により一致したデータの次に送信されたデータを特定し、特定したデータを含むパケットを受信装置3へ送信する。これにより、受信装置3で正常に受信できなかったデータを含むパケットが、送信装置2から再送されるようになり、その結果、データ伝送の信頼性が向上する。
例えば、図1に示すように、送信装置2から受信装置3に対して、パケットP0,P1,P2,P3が順に送信されたとする。パケットP0,P1,P2,P3のデータ領域には、データ#0,#1,#2,#3がそれぞれ格納されているとする。
受信装置3は、パケットP0,P1,P2を正常に受信できたものの、パケットP3については受信エラーが発生したとする。なお、図1の例では、パケットP3の内容が壊れているために受信エラーが発生した場合を示している。パケットP3の受信エラーが発生する他のケースとしては、例えば、送信装置2からパケットP3に続いてデータ#4(図示せず)を含むパケットP4(図示せず)が送信され、受信装置3がパケットP4を受信したもののパケットP3を受信できないケースもある。
受信装置3は、受信エラーが検知されたパケットP3の直前に正常に受信したパケットとして、パケットP2を特定する。受信装置3は、特定したパケットP2のデータ領域に格納されたデータ#2を、再送要求パケットP11に格納し、再送要求パケットP11を送信装置2へ送信して、パケットの再送を要求する。送信装置2は、受信装置3から再送要求パケットP11を受信する。
ここで、送信装置2が備える記憶装置、または、送信装置2の外部に接続された記憶装置には、受信装置3に送信されたデータがその送信後にも保持されている。例えば、送信装置2は、バッファ2aを備え、送信済みのデータをその送信から一定時間バッファ2aに保持する。送信装置2が再送要求パケットP11を受信したとき、バッファ2aには、送信済みデータとしてデータ#0,#1,#2,#3が記憶されていたとする。この場合、送信装置2は、再送要求パケットP11に格納されているデータ#2と、バッファ2a内のデータ#0,#1,#2,#3とを照合する。その結果、再送要求パケットP11内のデータ#2と、バッファ2a内のデータ#2とが一致する。
送信装置2は、バッファ2a内の送信済みデータの中から、照合の結果一致したデータ#2の次にパケット化されて送信されたデータとして、データ#3を特定する。送信装置2は、特定したデータ#3を含むパケットP12を受信装置3に送信する。これにより、受信装置3で受信できなかったデータ#3が再送される。
以上の処理によれば、受信装置3で受信エラーが検知されたとき、受信エラーが検知されたパケットの直前に受信したパケットP2内のデータ#2が、再送要求パケットP11を用いて送信装置2に返信される。送信装置2は、返信されたデータ#2を送信済みのデータと照合することで、受信装置3が受信エラーの発生前に最後に正常に受信したパケットに格納されていたデータ#2を、判別することができる。そして、送信装置2は、データ#2の次に送信されたデータ#3を、パケットP12を用いて再送する。これにより、受信装置3で正常に受信できなかったパケット内のデータ#3が、送信装置2から確実に再送される。
なお、以上の説明では、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータ全体が付加されるようにした。しかし、例えば、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータの一部が付加されてもよい。例えば、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータのうち、先頭から所定サイズのデータのみが付加されてもよい。
また、送信装置2には、送信済みのデータだけでなく、送信済みのパケット自体が、送信後にも保持されてもよい。この場合、パケット再送要求には、受信エラーが検知されたパケットの直前に受信したパケット自体が付加されてもよい。パケット再送要求を受信した送信装置2は、送信済みのパケットと、パケット再送要求に付加されたパケットとを照合することで、再送すべきパケットを判別する。
〔第2の実施の形態〕
次に、図1のデータ伝送システムの例として、画像データを圧縮符号化した符号化データがストリーミング配信されるシステムについて説明する。
図2は、第2の実施の形態に係る画像伝送システムのシステム構成例を示す図である。図2に示す画像伝送システム50は、エンコード装置100とデコード装置200とを含む。エンコード装置100とデコード装置200は、ネットワーク300を介して接続され、相互に通信できるようになっている。ネットワーク300は、IP(Internet Protocol)ネットワークである。
エンコード装置100には、カメラ310が接続されている。エンコード装置100は、カメラ310によって得られた画像データに対してエンコード(圧縮符号化処理)を行い、符号化データを生成する。エンコード装置100は、生成された符号化データをストリーミング配信する。
デコード装置200は、エンコード装置100から送信された符号化データに基づいて、画像をストリーミング再生する。例えば、デコード装置200には、モニタ320が接続されている。デコード装置200は、エンコード装置100から送信された符号化データに対してデコード(伸張復号化処理)を行い、デコードされたデータを基に表示情報を生成してモニタ320に出力する。これにより、デコード装置200は、画像の符号化データを受信しながら、同時に画像の再生処理を行う。
図3は、エンコード装置からデコード装置へ送信されるパケットの構成例を示す図である。
エンコード装置100は、画像の符号化データをUDPストリームパケットを用いて送信する。図3に示すように、UDPストリームパケットは、UDPヘッダとペイロードとを有し、ペイロードに画像の符号化データが格納される。ペイロードに格納される符号化データとは、具体的には、1つ以上のTS(Transport Stream)パケットまたはTTS(Timestamped TS)パケットである。なお、以下の説明では、UDPストリームパケットを“UDPパケット”と略称する場合がある。
ところで、ストリーミング配信で利用される他の通信規格として、RTPがある。RTPはアプリケーション層で定義された通信プロトコルであり、RTPがIPネットワーク上で利用される際には、トランスポート層のプロトコルとしてUDPが利用されることが多い。この場合、RTPのパケット(RTPストリームパケット)は、図3におけるUDPヘッダとペイロード(符号化データ)との間にRTPヘッダが設けられた構成となる。
RTPヘッダには、送信されたパケットごとの通し番号を示すシーケンス番号が格納される。そして、RTPの通信では、制御用に定められたRTCPのパケットを利用して、受信装置で受信できなかったパケットのシーケンス番号を、受信装置から送信装置へ通知することができる。これにより、送信装置は、再送すべきパケットを正確に判別することができる。このように、RTPを用いたストリーミング配信では、受信装置は、パケットに付加されたシーケンス番号に基づいて、送信装置に所望のパケットを再送させることができる。
このようなRTPを用いたストリーミング配信は一般的になりつつあるが、その一方で、RTPヘッダを用いないUDPによるストリーミング配信も、未だ多く行われている。UDPヘッダには、UDPパケットのシーケンス番号が含まれない。このため、シーケンス番号を用いたパケット再送要求を行うことができない。
本実施の形態では、UDPパケットを用いた符号化データの伝送処理において、次の図4に示す手順により、デコード装置200からエンコード装置100へ所望のパケットの再送を要求できるようにする。
具体的には、デコード装置200は、エンコード装置100からのUDPパケットの受信処理を監視する。そして、デコード装置200は、UDPパケットの受信エラーを検知すると、受信エラーが検知されたUDPパケットの直前に正常に受信したUDPパケットに格納されていた符号化データを抽出する。デコード装置200は、抽出した符号化データを再送要求パケットに格納し、その再送要求パケットをエンコード装置100へ送信し、パケットの再送を要求する。
一方、エンコード装置100は、デコード装置200へ送信済みの符号化データを、送信後の一定時間バッファリングする。エンコード装置100は、デコード装置200から再送要求パケットを受信すると、バッファリングされた送信済みの符号化データと、再送要求パケットに格納された符号化データとを照合する。そして、エンコード装置100は、送信済みの符号化データの中から再送要求パケット内の符号化データと一致する符号化データを特定する。エンコード装置100は、特定された符号化データをバッファから読み出してUDPパケットに格納し、そのUDPパケットをデコード装置200へ送信する。これにより、デコード装置200で正常に受信できなかった符号化データが、エンコード装置100から再送される。
また、デコード装置200は、受信したUDPパケットに含まれる符号化データをデコードすることで、UDPパケットの受信エラーを検知する。さらに、パケット受信エラーを検知するためのデコード処理は、符号化データの再生出力を目的としたデコード処理とは別系統の処理として実行される。また、パケット受信エラーを検知するためのデコード処理では、デコードの成否を示す情報が出力されるものの、デコードされたデータの出力は行われない。
以下、パケット受信エラーの検知を目的としたデコードを“仮デコード”と呼び、符号化データの再生出力を目的としたデコードを“本デコード”と呼ぶ。仮デコードおよび本デコードの詳細については後述する。
図4は、再送要求パケットの構成例を示す図である。再送要求パケットは、例えば、RTCPパケットのうちのAPP(Application-Defined RTCP Packets)パケットによって実現される。
APPパケットは、RTPのバージョン(V)、パディング(P)、サブタイプ(SB)、パケットタイプ(PT)、パケットの長さ(LEN)、SSRC(Synchronization Source)、アプリケーション依存データ領域、名前(NAME)、パケットID(PID)、パディング(PAD)の各項目を有する。デコード装置200は、アプリケーション依存データ領域に符号化データを格納したAPPパケットを、再送要求パケットとしてエンコード装置100へ送信する。
次に、エンコード装置100について説明する。図5は、エンコード装置の処理機能の構成例を示すブロック図である。
エンコード装置100は、入力処理部101、エンコード処理部102、送信制御部103および再送処理部104を備える。入力処理部101、エンコード処理部102、送信制御部103および再送処理部104による処理の一部またはすべては、例えば、エンコード装置100が備えるプロセッサが所定のプログラムを実行することで実現される。また、入力処理部101、エンコード処理部102、送信制御部103および再送処理部104による処理の一部またはすべては、例えば、LSI(Large Scale Integration)などの専用回路によって実現されてもよい。
また、エンコード装置100は、符号化データバッファ111および送信バッファ112を備える。符号化データバッファ111および送信バッファ112の各記憶領域は、例えば、エンコード装置100が備えるRAM(Random Access Memory)によって実現される。
入力処理部101は、カメラ310によって得られた画像データの入力を受け、入力された画像データをエンコード処理部102へ出力する。
エンコード処理部102は、入力された画像データをエンコード(圧縮符号化)して符号化データを生成し、符号化データを符号化データバッファ111へ書き込む。エンコード方式としては、例えば、MPEG(Moving Picture Experts Group)−2、H.264などが用いられる。また、エンコード処理部102は、生成した符号化データを一定サイズごとに区分し、TSパケットまたはTTSパケットの状態で符号化データバッファ111へ書き込む。
送信制御部103は、1つのUDPパケットに格納する符号化データを符号化データバッファ111から読み出し、読み出した符号化データをペイロードに格納したUDPパケットを生成する。送信制御部103は、生成したUDPパケットを一旦送信バッファ112に格納した後、そのUDPパケットをデコード装置200へ送信する。
また、送信制御部103は、符号化データバッファ111に格納された符号化データのうち、再送処理部104から指定された符号化データを読み出して、UDPパケットを生成する場合もある。このケースは、送信済みの符号化データが再送されるケースである。
ここで、本実施の形態では、1つのUDPパケットには、一定数のTSパケットまたはTTSパケットが格納されるものとする。また、符号化データバッファ111の記憶領域は、図示しない管理テーブルなどを用いて、一定数のTSパケットまたはTTSパケットの記憶領域ごとに管理されているものとする。したがって、送信制御部103や再送処理部104は、符号化データバッファ111内の符号化データを、1つのUDPパケットに格納されるデータ群ごとに認識できるものとする。
また、送信制御部103は、エンコード処理部102が符号化データを符号化データバッファ111に書き込む際に、書き込みの通知を受ける。送信制御部103は、エンコード処理部102から書き込み通知を受けたタイミングを起点として、符号化データバッファ111内に格納された符号化データをUDPパケットに格納して送信するタイミングや、符号化データバッファ111内に符号化データを保持しておく期間(バッファリング期間)を決定する。この際、送信制御部103は、符号化データバッファ111内の符号化データをUDPパケットに格納して送信した後にも、例えば一定の時間、送信された符号化データを符号化データバッファ111内に保持しておく。これにより、送信済みの符号化データの再送を可能にする。
再送処理部104は、デコード装置200から再送要求パケットを受信すると、再送要求パケットから符号化データを抽出する。再送処理部104は、再送要求パケットから抽出した符号化データと、符号化データバッファ111に格納されている符号化データとを照合して、同一の符号化データを符号化データバッファ111から検索する。
再送処理部104は、再送要求パケットから抽出したものと同一の符号化データを符号化データバッファ111から発見すると、それより送信順が1つだけ遅い符号化データの記憶領域を符号化データバッファ111から特定する。特定された記憶領域には、再送要求パケットから抽出したものと同一の符号化データが格納されたUDPパケットの次に、UDPパケットに格納されて送信された符号化データが記憶されていることになる。再送処理部104は、特定された記憶領域の位置情報を送信制御部103に通知して、その記憶領域に記憶された符号化データの再送を要求する。
図6は、UDPパケットの送信処理手順の例を示すフローチャートである。
[ステップS21]エンコード処理部102は、入力処理部101から出力された画像データをデコードして、符号化データを生成する。
[ステップS22]エンコード処理部102は、生成した符号化データを符号化データバッファ111へ書き込む。
[ステップS23]送信制御部103は、符号化データバッファ111から一定サイズの符号化データ(一定数のTSパケットまたはTTSパケット)を読み出し、読み出した符号化データをペイロードに格納したUDPパケットを生成する。送信制御部103は、生成したUDPパケットを送信バッファ112へ書き込む。
なお、送信制御部103によって符号化データバッファ111から読み出された符号かデータは、符号化データバッファ111に例えば一定時間残され、その後に符号化データバッファ111から消去される。
[ステップS24]送信制御部103は、送信バッファ112に書き込んだUDPパケットを、デコード装置200へ送信する。
[ステップS25]UDPパケットの送信を終了するかが判断される。送信を継続する場合にはステップS21の処理が実行され、送信を終了する場合には処理が終了する。
図7は、パケット再送処理の例を示す図である。
図7において、エンコード処理部102によって符号化データD00〜D06が順に生成されて、符号化データバッファ111に書き込まれたものとする。また、送信制御部103の処理により、符号化データD00〜D04は、この順序で、すでにUDPパケットに格納されてデコード装置200へ送信済みであるものとする。さらに、送信済みの符号化データD00〜D04は、符号化データバッファ111に残っているものとする。
なお、符号化データD00〜D06は、それぞれ同一のサイズを有する。換言すると、符号化データD00〜D06は、それぞれ同数のTSパケットまたはTTSパケットによって構成される。
この状態で、再送処理部104は、デコード装置200から再送要求パケットを受信したとする。再送処理部104は、受信した再送要求パケットから符号化データを抽出する。再送処理部104は、抽出した符号化データと、符号化データバッファ111に保持されている符号化データとを、符号化データバッファ111に保持されている先頭の符号化データD00(すなわち、最も早く符号化データバッファ111に書き込まれた符号化データ)から順に照合していく。その結果、再送要求パケットから抽出した符号化データが、符号化データバッファ111に記憶された符号化データD02と一致したとする。
再送処理部104は、符号化データD02の次に送信された符号化データD03の符号化データバッファ111における記憶領域を特定する。再送処理部104は、特定した記憶領域の位置情報を送信制御部103に通知して、その記憶領域の符号化データD03の再送を要求する。送信制御部103は、再送処理部104からの要求に応じて、符号化データバッファ111から符号化データD03を読み出し、読み出した符号化データD03をペイロードに格納したUDPパケットを生成して、デコード装置200へ送信する。
以上のように、エンコード装置100は、再送要求パケットにより返信された符号化データを、符号化データバッファ111内の送信済みデータと照合することで、デコード装置200に再送すべき符号化データを特定する。これにより、パケットのシーケンス番号を用いなくても、デコード装置200に再送すべき符号化データを正確に特定することができる。
図8は、パケット再送処理手順の例を示すフローチャートである。
[ステップS31]再送処理部104は、デコード装置200から送信された再送要求パケットを受信する。この受信を契機としてステップS32以降の処理が実行される。
[ステップS32]再送処理部104は、受信した再送要求パケットのアプリケーション依存データ領域から、符号化データを抽出する。
[ステップS33]再送処理部104は、再送要求パケットから抽出した符号化データと同一の符号化データを、符号化データバッファ111から検索する。図7で説明したように、再送処理部104は、再送要求パケットから抽出した符号化データと、符号化データバッファ111に保持されている符号化データとを、符号化データバッファ111に保持されている先頭の符号化データから順に照合していく。
[ステップS34]再送処理部104は、ステップS33の処理の結果、再送要求パケットから抽出した符号化データと同一の符号化データが、符号化データバッファ111に存在したかを判定する。同一の符号化データが存在した場合、ステップS35の処理が実行され、同一の符号化データが存在しない場合、処理が終了する。
[ステップS35]再送処理部104は、ステップS33の処理により符号化データバッファ111から検索された符号化データの次に送信された符号化データの記憶領域を特定する。この記憶領域は、検索された符号化データの記憶領域に隣接する領域である。再送処理部104は、特定した記憶領域の位置情報を送信制御部103に通知して、その記憶領域の符号化データの再送を要求する。
送信制御部103は、再送処理部104からの要求に応じて、通知された記憶領域の符号化データを符号化データバッファ111から読み出す。送信制御部103は、読み出した符号かデータをペイロードに格納したUDPパケットを生成して、送信バッファ112へ書き込む。
[ステップS36]送信制御部103は、送信バッファ112に書き込んだUDPパケットをデコード装置200へ送信する。
次に、デコード装置200について説明する。図9は、デコード装置の処理機能の構成例を示すブロック図である。
デコード装置200は、受信制御部201、デコード処理部202、出力処理部203および再送要求処理部204を備える。受信制御部201、デコード処理部202、出力処理部203および再送要求処理部204による処理の一部またはすべては、例えば、エンコード装置100が備えるプロセッサが所定のプログラムを実行することで実現される。また、受信制御部201、デコード処理部202、出力処理部203および再送要求処理部204による処理の一部またはすべては、例えば、LSIなどの専用回路によって実現されてもよい。
また、デコード装置200は、受信バッファ211、符号化データバッファ212および管理情報記憶部213を備える。受信バッファ211、符号化データバッファ212および管理情報記憶部213の各記憶領域は、例えば、デコード装置200が備えるRAMによって実現される。
エンコード装置100から送信されたUDPパケットをデコード装置200が受信すると、受信したUDPパケットは受信バッファ211に格納される。受信制御部201は、受信バッファ211に格納されたUDPパケットから符号化データを抽出し、符号化データバッファ212に書き込む。また、受信制御部201は、符号化データバッファ212に書き込んだ符号化データの仮デコードをデコード処理部202に要求する。前述のように、仮デコードはパケットの受信エラーを検知するための処理である。受信制御部201は、デコード処理部202から出力されるエラーカウンタ値に基づいて、デコードエラーの発生(すなわち、パケットの受信エラーの発生)を検知する。
また、受信制御部201は、デコードエラーが発生した後、受信したUDPパケットが再送要求に応じて送信された再送パケットであるかを判定する。
また、受信制御部201は、符号化データバッファ212に一定時間バッファリングされた符号化データについて、本デコード処理をデコード処理部202に要求する。これにより、符号化データバッファ212に書き込まれた符号化データに基づく画像再生処理が実行される。
また、受信制御部201は、管理情報記憶部213に記憶された受信管理テーブルを用いて、受信したUDPパケットから抽出した各符号化データの状態を管理する。例えば、受信制御部201は、UDPパケットから抽出した符号化データの符号化データバッファ212における書き込み位置、デコードエラーの発生の有無、本デコードの順番などを受信管理テーブルを用いて管理する。
デコード処理部202は、受信制御部201からの要求に応じて、符号化データバッファ212から符号化データを読み出してデコード(伸張復号化)する。デコード処理部202は、仮デコード処理と本デコード処理という2系統のデコード処理を実行する。
仮デコード処理は、パケット受信エラーを検知するための処理である。仮デコード処理では、符号化データをデコードして得られる画像データ(復号化データ)の出力は行われない。デコード処理部202は、符号化データを仮デコードし、正常にデコードできなかった場合には、受信制御部201へ出力するエラーカウンタ値をインクリメントする。これにより、デコードエラーの発生が通知される。
デコードエラーが検知される場合とは、例えば、入力される符号化データの連続性に問題がある場合と、入力された符号化データの一部について問題がある場合とがある。前者の場合、パケットロスの発生が考えられ、後者の場合、伝送路上でパケットの一部が破損したことが考えられる。
本デコード処理は、符号化データに基づく画像を再生出力するための処理である。デコード処理部202は、符号化データを本デコードすると、デコードされた画像データを出力処理部203へ出力する。
ここで、UDPパケット内の符号化データに対する仮デコードは、そのUDPパケットがデコード装置200に受信されてからできるだけ早いタイミングで行われる。一方、UDPパケット内の符号化データに対する本デコードは、そのUDPパケット内がデコード装置200に受信され、UDPパケット内の符号化データが符号化データバッファ212に一定時間バッファリングされた後に行われる。すなわち、同じUDPパケット内の符号化データについては、本デコードより前に仮デコードが行われる。
これにより、あるUDPパケットを正常に受信できなかった場合、そのUDPパケットの本デコードを開始するタイミングより前に、エンコード装置100へそのUDPパケットの再送要求が行われ、必要なUDPパケットが再送されるようになる。したがって、UDPパケットの受信エラーが発生した場合でも、再生される画像の品質を低下させずに再生処理を継続できる可能性が高くなる。
再送要求処理部204は、管理情報記憶部213内の受信管理テーブルに基づいて、デコードエラー(すなわち、パケット受信エラー)の発生を認識する。再送要求処理部204は、受信管理テーブルに基づいて、受信エラーが発生したUDPパケットの直前に正常に受信されたUDPパケットに格納されていた符号化データを特定する。再送要求処理部204は、特定した符号化データを符号化データバッファ212から読み出し、読み出した符号化データを格納した再送要求パケットを生成して、エンコード装置100に送信する。
図10は、受信管理テーブルのデータ構成例を示す図である。受信管理テーブル213aは、管理情報記憶部213に記憶される。
受信管理テーブル213aは、符号化データバッファ212の記憶領域を分割した分割領域ごとのレコードを備える。各レコードに対応する分割領域には、1つのUDPパケットから抽出された符号化データが格納される。すなわち、受信管理テーブル213aの1つのレコードは、受信した1つのUDPパケットに対応している。また、受信管理テーブル213aの各レコードは、例えば、連結リスト構造で管理される。
受信管理テーブル213aの各レコードには、ステータス、受信番号、バッファアドレス、データサイズ、受信時刻、仮デコード状態、本デコード番号、再送要求時刻および再送要求回数の各項目が設けられる。
ステータスの項目には、該当レコードが有効か無効かを示すフラグが登録される。レコードが有効とは、そのレコードに対応する記憶領域に記憶されたデータが有効である(上書き不許可である)ことを示す。なお、初期状態では、ステータスの項目には無効を示す値が登録される。
受信番号の項目には、該当符号化データが受信されて符号化データバッファ212に書き込まれた順序を示す番号が登録される。バッファアドレスの項目には、該当符号化データの符号化データバッファ212における先頭アドレスが登録される。データサイズの項目には、該当符号化データのサイズが登録される。受信時刻の項目には、該当符号化データが符号化データバッファ212に書き込まれた時点の時刻が登録される。
仮デコード状態の項目には、該当符号化データの仮デコードに関する状態を示す情報が登録される。具体的には、仮デコードを実施していない「未実施」、仮デコードに成功した「正常」、仮デコードのエラーが発生した「異常」のいずれかを示す情報が登録される。本デコード番号の項目には、本デコードを行う順序を示す番号が登録される。
再送要求時刻の項目には、該当符号化データについて仮デコードのエラーが発生したことに応じて最後に再送要求が行われた時刻が登録される。再送要求回数の項目には、該当符号化データについて仮デコードのエラーが発生したことに応じて再送要求が行われた回数が登録される。
次に、図11および図12を用いて、仮デコードのエラーに応じた再送要求処理と、再送された符号化データの受信処理について、具体例を挙げて説明する。まず、図11は、仮デコードのエラーが発生した場合の処理例を示す図である。
図11の例では、デコード装置200が3つのUDPパケットを受信し、各UDPパケットから抽出された符号化データが、それぞれ受信番号“0010”,“0011”,“0012”が付与されて符号化データバッファ212に書き込まれたとする。また、受信番号“0010”,“0011”の符号化データについては、仮デコードに成功したとする。これにより、受信番号“0010”,“0011”の各符号化データに対応する、受信管理テーブル213aのレコードにおいては、仮デコード状態の項目に「正常」と登録されている。また、仮デコードに成功した符号化データについては、順番に本デコード番号が付与される。図11の例では、受信番号“0010”,“0011”の符号化データに、本デコード番号“0010”,“0011”がそれぞれ付与されている。
そして、受信番号“0012”の符号化データを仮デコードしたところ、デコードエラーが発生したとする。このとき、受信制御部201は、受信番号“0012”の符号化データに対応する受信管理テーブル213aのレコードにおいて、仮デコード状態の項目に「異常」と登録する。
再送要求処理部204は、受信番号“0012”の符号化データに対応する受信管理テーブル213aのレコードにおいて、仮デコード状態の項目に「異常」が登録されたことを検知すると、このレコードより受信番号が1つ前のレコードを参照する。再送要求処理部204は、参照したレコードに対応する符号化データを符号化データバッファ212から読み出す。図11の例では、受信番号“0011”の符号化データが読み出される。再送要求処理部204は、受信番号“0011”の符号化データを格納した再送要求パケットを生成して、この再送要求パケットをエンコード装置100へ送信する。
図12は、再送要求パケットの送信後の処理例を示す図である。再送要求パケットが送信された後、受信制御部201は、次のようにして、受信した符号化データの中から、再送要求パケットに応じて再送された符号化データを判別する。
再送要求処理部204は、最大の本デコード番号が付与された符号化データ(すなわち、デコードエラー検知前に最後に正常に仮デコードに成功した符号化データ)と、新たに受信したUDPパケットから抽出した符号化データとを、続けて仮デコードさせる。例えば、図12に示すように、再送要求パケットを送信した後、新たに受信したUDPパケットにより受信番号“0015”,“0016”の符号化データが符号化データバッファ212に書き込まれたとする。
受信制御部201は、まず、本デコード番号“0011”が付与された受信番号“0011”の符号化データの仮デコードと、受信番号“0015”の符号化データの仮デコードとを、デコード処理部202に続けて実行させる。その結果、デコードエラーが発生したとする。これは、受信番号“0011”,“0015”の各符号化データが、連続した符号化データではないことを示す。この場合、受信制御部201は、受信番号“0015”の符号化データが再送されたものではないと判定する。
受信制御部201は、次に、受信番号“0011”の符号化データの仮デコードと、受信番号“0016”の符号化データの仮デコードとを、デコード処理部202に続けて実行させる。その結果、デコードに成功したとする。これは、受信番号“0011”,“0016”の各符号化データが、連続した符号化データであることを示す。この場合、受信制御部201は、受信番号“0016”の符号化データが再送されたものであると判定し、この符号化データに本デコード番号“0012”を付与する。このように本デコード番号が付与されることで、受信番号“0010”の符号化データ、受信番号“0011”の符号化データ、受信番号“0016”の符号化データの順で、本デコードが行われるようになる。
その後、図12の右側に示すように、受信番号“0012”の符号化データを始点として仮デコードが行われる。ただし、受信番号“0016”の符号化データについては、該当レコードの仮デコード状態の項目に「正常」と登録されることで、仮デコードがスキップされる。
以上の図12に示したように、デコード装置200は、デコードエラーの検知前に最後に正常に受信した符号化データと、デコードエラーの検知後に受信した符号化データとを順に仮デコードさせることで、各符号化データの連続性に基づいて、再送された符号化データを判別することが可能となる。
なお、再送された符号化データの判別方法としては、他の方法を利用することもできる。例えば、エンコード装置100が、再送要求パケットの受信に応じて送信するUDPパケットに、再送を示す識別情報を付加する方法が考えられる。この場合、デコード装置200の受信制御部201は、受信したUDPパケットに再送を示す識別情報が付加されていることを認識すると、当該UDPパケットから抽出した符号化データに対して、最後に付加された本デコード番号を1だけインクリメントした本デコード番号(図12の例では“0012”)を付与する。
次に、デコード装置200の処理についてフローチャートを用いて説明する。まず、図13は、パケット受信処理手順の例を示すフローチャートである。
[ステップS41]デコード装置200がUDPパケットを受信すると、受信したUDPパケットは受信バッファ211に格納される。
[ステップS42]受信制御部201は、受信バッファ211に格納されたUDPパケットから符号化データを抽出し、符号化データバッファ212に書き込む。
[ステップS43]受信制御部201は、受信管理テーブル213aにおけるステータスが無効のレコードを選択し、選択したレコードの情報を次のように更新する。
受信制御部201は、ステータスの項目に、有効を示す値を登録する。受信番号の項目に、受信管理テーブル213aに登録された受信番号の最大値に1を加算した値を登録する。バッファアドレスの項目に、符号化データを格納した符号化データバッファ212の記憶領域の先頭アドレスを登録する。データサイズの項目に、符号化データのサイズを登録する。受信時刻の項目に、現在の時刻を登録する。仮デコード状態の項目に、「未実施」を登録する。本デコード番号および再送要求時刻の各項目に、NULLを登録する。再送要求回数の項目に、0を登録する。
図14は、通常モードにおける仮デコード処理手順の例を示すフローチャートである。なお、デコード装置200は、仮デコードエラーが検知されていない「通常モード」と、仮デコードエラーが検知された状態の「エラーモード」の2つの動作モードを有する。図14の処理は、デコード装置200が通常モードの場合に、一定時間ごとに繰り返し実行される。換言すると、図14の処理は、デコード装置200がエラーモードの場合には実行されない。
[ステップS51]受信制御部201は、受信管理テーブル213aを参照して、仮デコード状態の項目が「未実施」のレコードがあるか、すなわち、受信した符号化データの中に仮デコードが未実施のデータがあるかを判定する。仮デコードが未実施のデータがある場合、ステップS52の処理が実行され、未実施のデータがない場合、図14の処理は終了する。
[ステップS52]受信制御部201は、仮デコード状態の項目が「未実施」のレコードに対応する符号化データのアドレスをデコード処理部202に通知して、仮デコードを要求する。デコード処理部202は、該当する符号化データを符号化データバッファ212から読み出して、仮デコードを行う。
[ステップS53]受信制御部201は、デコード処理部202から出力されるエラーカウンタ値をチェックする。デコードエラーが発生した場合、ステップS52の前後でエラーカウンタ値がインクリメントされる。受信制御部201は、エラーカウンタ値がインクリメントされた場合に、デコードエラーが発生したことを検知する。
[ステップS54]受信制御部201は、ステップS52で参照した、仮デコード状態の項目が「未実施」のレコードの情報を、次のように更新する。ステップS53でデコードエラーが検知されなかった場合、受信制御部201は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、受信管理テーブル213aに登録された本デコード番号の最大値に1を加算した値を登録する。一方、ステップS53でデコードエラーが検知された場合、受信制御部201は、仮デコード状態の項目を「異常」に更新する。
[ステップS55]ステップS53でデコードエラーが検知された場合、ステップS56の処理が実行される。ステップS53でデコードエラーが検知されなかった場合、図14の処理は終了する。
[ステップS56]受信制御部201は、デコード処理部202に対して、仮デコード処理のリセットを要求する。デコード処理部202は、要求に応じて仮デコードをリセットすることにより、デコードエラーの状態を解消し、その後に符号化データバッファ212から読み出す符号化データから仮デコード処理を実行し直すことが可能になる。
[ステップS57]受信制御部201は、デコード装置200を通常モードからエラーモードに遷移させる。
図15は、再送要求処理手順の例を示すフローチャートである。
[ステップS61]再送要求処理部204は、再送要求の要否を判定する。具体的には、再送要求処理部204は、受信管理テーブル213aのレコードの中に、仮デコード状態の項目に「異常」が登録されたレコードがある場合に、再送要求が必要と判定する。再送要求が必要と判定した場合、ステップS52の処理が実行される。再送要求が不要と判定した場合、図14の処理が終了する。
[ステップS62]再送要求処理部204は、受信管理テーブル213aから、最大の本デコード番号が登録されたレコードを特定する。特定されたレコードに対応する符号化データは、再送要求パケットに格納する符号化データとなる。
[ステップS63]再送要求処理部204は、ステップS62で特定したレコードに対応する符号化データを符号化データバッファ212から読み出す。再送要求処理部204は、読み出した符号化データを格納した再送要求パケットを生成する。
[ステップS64]再送要求処理部204は、生成した再送要求パケットをエンコード装置100へ送信する。
[ステップS65]再送要求処理部204は、受信管理テーブル213aにおける、仮デコード状態の項目に「異常」が登録されたレコードの情報を、次のように更新する。再送要求処理部204は、再送要求時刻の項目に、現在の時刻を登録し、再送要求回数の項目の値を1だけインクリメントする。情報の更新が完了すると、再送要求処理部204は、受信制御部201に対して、再送要求パケットを送信したことを通知する。
図16は、エラーモードにおける仮デコード処理手順の例を示すフローチャートである。この図16の処理は、再送要求パケットに応じてエンコード装置100から再送された符号化データを特定するための処理である。図16の処理は、デコード装置200がエラーモードに遷移し、再送要求処理部204から再送要求パケットを送信したことが通知された場合に実行される。
[ステップS71]受信制御部201は、受信管理テーブル213aから、最大の本デコード番号が登録されたレコードを特定する。通常モードにおいて仮デコードに成功した最終データを示す。受信制御部201は、特定されたレコードに対応する符号化データの仮デコードを、デコード処理部202に要求する。デコード処理部202は、要求された符号化データを符号化データバッファ212から読み出し、仮デコードを行う。
[ステップS72]受信制御部201は、デコードエラー発生後に受信した符号化データに対応する受信管理テーブル213aのレコードを選択する。この選択処理では、ステップS72が実行されるたびに、再送要求処理部204から再送要求パケットの送信が通知された後に受信された符号化データに対応する受信管理テーブル213aのレコードの中から、受信番号が小さい順に選択される。
受信制御部201は、選択したレコードに対応する符号化データの仮デコードを、デコード処理部202に要求する。デコード処理部202は、要求された符号化データを符号化データバッファ212から読み出し、仮デコードを行う。
[ステップS73]受信制御部201は、デコード処理部202から通知されるエラーカウンタ値に基づいて、ステップS72で仮デコードを要求した符号化データについて、仮デコードに成功したかを判定する。仮デコードに成功した場合、ステップS75の処理が実行され、仮デコードのエラーが発生した場合、ステップS74の処理が実行される。
[ステップS74]受信制御部201は、デコード処理部202に対して、仮デコード処理のリセットを要求する。デコード処理部202は、要求に応じて仮デコードをリセットする。
[ステップS75]受信制御部201は、ステップS72で選択したレコードの情報を、次のように更新する。受信制御部201は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、受信管理テーブル213aに登録された本デコード番号の最大値に1を加算した値を登録する。
[ステップS76]受信制御部201は、エラーモードに遷移するトリガとなったデコードエラーが、パケットロスによるものか、パケット内のデータ破損によるものかを判定する。
この処理では、例えば、受信制御部201は、仮デコード状態の項目に「異常」が登録された受信管理テーブル213aのレコード(すなわち、エラーモードに遷移する直前における図14の処理によってデコードエラーが検知された符号化データに対応するレコード)を特定する。受信制御部201は、特定したレコードに対応する符号化データの仮デコードを、デコード処理部202に要求する。
この仮デコード要求に応じたデコード処理部202での仮デコードに成功した場合、当該符号化データは再送された符号化データの次に符号化すべきデータであることを示す。この場合、パケットロスが発生したと判断される。受信制御部201は、特定したレコードの情報を、次のように更新する。受信制御部201は、仮デコード状態の項目を「正常」に更新し、本デコード番号の項目に、ステップS75で登録した本デコード番号に1を加算した値を登録する。
一方、仮デコード要求に応じたデコード処理部202での仮デコードで、デコードエラーが発生した場合、特定したレコードに対応する符号化データが破損していると判断される。この場合、受信制御部201は、特定したレコードにおけるステータスの項目を、無効を示す値に更新して、符号化データバッファ212内の該当符号化データを無効化する。そして、受信制御部201は、デコード処理部202に対して仮デコードのリセットを要求する。
[ステップS77]受信制御部201は、デコード装置200をエラーモードから通常モードに遷移させる。これにより、図14の処理が実行されるようになる。
図17は、本デコード処理手順の例を示すフローチャートである。
[ステップS81]受信制御部201は、受信管理テーブル213aの各レコードにおける受信時刻の項目に基づき、符号化データバッファ212にバッファリングされた時間が所定の閾値(例えば、2秒)を超えた符号化データがあるかを判定する。バッファリング時間が閾値を超えた符号化データがある場合、ステップS82の処理が実行される。バッファリング時間が閾値を超えた符号化データがない場合、図17の処理が終了する。
[ステップS82]受信制御部201は、バッファリング時間が閾値を超えた符号化データの本デコードをデコード処理部202に要求する。デコード処理部202は、本デコードの要求に応じて、該当符号化データを符号化データバッファ212から読み出し、本デコードを行う。デコード処理部202は、デコードにより得られた画像データ(復号化データ)を出力処理部203へ出力する。これにより、画像の再生出力が行われる。
[ステップS83]受信制御部201は、ステップS82で本デコードを要求した符号化データに対応する、受信管理テーブル213aのレコードについて、ステータスの項目を無効を示す情報に更新する。
以上説明した第2の実施の形態によれば、デコード装置200が、受信エラーが発生したUDPパケットの直前に正常に受信したUDPパケット内の符号化データを、再送要求パケットに格納してエンコード装置100へ送信する。エンコード装置100は、再送要求パケットから抽出した符号化データを、送信済みの符号化データと照合することで、再送すべき符号化データを特定する。このような処理により、デコード装置200で受信できなかったUDPパケット内の符号化データを、エンコード装置100から確実に再送させることができる。したがって、パケットにシーケンス番号が付加されていないストリーム伝送方法を用いた場合でも、パケット再送機能を付加することができる。
また、デコード装置200は、受信したUDPパケット内の符号化データをデコードすることにより、UDPパケットの受信エラーを検知する。これにより、UDPパケット内のデータの破損による受信エラーと、UDPパケット自体の欠落(パケットロス)による受信エラーの両方を検知することができる。
さらに、デコード装置200は、再生出力を目的とした本デコード処理とは別の仮デコード処理により、パケット受信エラーを検知する。複数系統のデコード処理を実行可能なデコード回路はすでに存在していることから、既存のデコード回路を利用してパケット受信エラーを検知することができ、デコード装置200の開発コストや製造コストが増大することを抑制できる。また、1系統のデコード処理機能のみ備えるデコード装置であっても、既存技術であるデコード処理の機能を付加するだけでパケット受信エラーの検知を実現できるので、デコード装置の開発コストや製造コストが増大することを抑制できる。
なお、パケット受信エラーの検知方法としては、他の方法を用いることもできる。例えば、UDPヘッダに格納されたチェックサムを用いてパケット受信エラーを検知することができる。この方法によれば、UDPパケット内のデータが破損されたことによる受信エラーを検知できる。
ところで、上記のエンコード装置100およびデコード装置200は、ともに次の図18に示すようなコンピュータとして実現することができる。図18は、コンピュータのハードウェア構成例を示す図である。
図18に示すコンピュータ400は、プロセッサ401によって装置全体が制御されている。プロセッサ401は、マルチプロセッサであってもよい。プロセッサ401は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ401は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ401には、バス408を介して、RAM402と複数の周辺機器が接続されている。
RAM402は、コンピュータ400の主記憶装置として使用される。RAM402には、プロセッサ401に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM402には、プロセッサ401による処理に必要な各種データが格納される。
バス408に接続されている周辺機器としては、HDD(Hard Disk Drive)403、グラフィック処理装置404、入力インタフェース405、読み取り装置406および通信インタフェース407がある。
HDD403は、コンピュータ400の補助記憶装置として使用される。HDD403には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置404には、表示装置404aが接続されている。グラフィック処理装置404は、プロセッサ401からの命令に従って、画像を表示装置404aの画面に表示させる。表示装置としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。なお、グラフィック処理装置404は、画像データのエンコード処理機能やデコード処理機能を備えていてもよい。
入力インタフェース405には、入力装置405aが接続されている。入力インタフェース405は、入力装置405aから出力される信号をプロセッサ401に送信する。入力装置405aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置406には、可搬型記録媒体406aが脱着される。読み取り装置406は、可搬型記録媒体406aに記録されたデータを読み取ってプロセッサ401に送信する。可搬型記録媒体406aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース407は、ネットワークを介して他の装置との間でデータの送受信を行う。
図5に示したエンコード装置100における入力処理部101、エンコード処理部102、送信制御部103および再送処理部104による処理を、プロセッサ401が所定のプログラムを実行することで実現できる。また、これらの処理の一部をプロセッサ401以外の回路によって実現することもできる。例えば、送信制御部103および再送処理部104の処理を、プロセッサ401が所定のプログラムを実行することで実現し、入力処理部101およびエンコード処理部102の処理を、グラフィック処理装置404によって実現してもよい。
同様に、図9に示したデコード装置200における受信制御部201、デコード処理部202、出力処理部203および再送要求処理部204による処理を、プロセッサ401が所定のプログラムを実行することで実現できる。また、これらの処理の一部をプロセッサ401以外の回路によって実現することもできる。例えば、受信制御部201および出力処理部203の処理を、プロセッサ401が所定のプログラムを実行することで実現し、デコード処理部202および出力処理部203の処理を、グラフィック処理装置404によって実現してもよい。
このように、第2の実施の形態のエンコード装置100およびデコード装置200の処理は、各装置が備えるプロセッサにプログラムを実行させることで実現できる。同様に、第1の実施の形態の送信装置2および受信装置3の処理も、各装置が備えるプロセッサにプログラムを実行させることで実現できる。
このようなプログラムは、コンピュータ読み取り可能な記録媒体(例えば、図18の可搬型記録媒体406a)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、図18のHDD403)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することも可能である。
1 データ伝送システム
2 送信装置
2a バッファ
3 受信装置
P0〜P3,P12 パケット
P11 再送要求パケット

Claims (9)

  1. データをパケット化して送信する送信装置と、前記送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムにおいて、
    前記受信装置は、前記送信装置から受信したパケットの受信エラーを検知すると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信し、
    前記送信装置は、前記パケット再送要求を受信すると、前記受信装置へ送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを前記受信装置へ送信する、
    ことを特徴とするデータ伝送システム。
  2. 前記送信装置は、符号化データをパケット化して送信し、
    前記受信装置は、前記送信装置から受信したパケットに格納された符号化データをデコードし、デコードエラーが発生した場合にパケットの受信エラーが発生したと判定し、前記送信装置から受信したパケットのうち、デコードエラーが発生した符号化データが含まれていたパケットの直前に受信したパケット内の符号化データを、前記パケット再送要求に付加して前記送信装置へ送信する、
    ことを特徴とする請求項1記載のデータ伝送システム。
  3. 前記受信装置は、デコードされたデータを出力する第1のデコード処理とは別に、デコードされたデータの出力を回避した第2のデコード処理を、同じパケット内の符号化データについて前記第1のデコード処理より前に行うことで、パケットの受信エラーを検知することを特徴とする請求項2記載のデータ伝送システム。
  4. 前記受信装置は、パケットの受信エラーを検知して前記パケット再送要求を送信した後、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内の符号化データと、新たに受信したパケット内の符号化データとを順にデコードし、正常にデコードされた場合に、前記新たに受信したパケット内の符号化データが前記パケット再送要求に応じて再送された符号化データであると判定することを特徴とする請求項2記載のデータ伝送システム。
  5. データをパケット化して送信する送信装置において、
    所定の送信先装置からパケット再送要求を受信すると、前記送信先装置に対して送信済みのデータと前記パケット再送要求に付加されたデータとを照合する照合部と、
    前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、前記送信先装置へ送信する再送処理部と、
    を有することを特徴とする送信装置。
  6. パケット化されて送信されたデータを受信する受信装置において、
    所定の送信装置から送信されたパケットの受信処理を監視する監視部と、
    前記監視部によりパケットの受信エラーが検知されると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信する再送要求部と、
    を有することを特徴とする受信装置。
  7. データをパケット化して送信する処理をコンピュータに実行させる送信プログラムにおいて、
    前記コンピュータに、
    所定の送信先装置からパケット再送要求を受信すると、前記送信先装置に対して送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、
    前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを、前記送信先装置へ送信する、
    処理を実行させることを特徴とする送信プログラム。
  8. パケット化されて送信されたデータを受信する処理をコンピュータに実行させる受信プログラムにおいて、
    前記コンピュータに、
    所定の送信装置から送信されたパケットの受信処理を監視し、
    監視の結果、パケットの受信エラーが検知されると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信する、
    処理を実行させることを特徴とする受信プログラム。
  9. データをパケット化して送信する送信装置と、前記送信装置から送信されたデータを受信する受信装置とを有するデータ伝送システムにおけるデータ伝送方法であって、
    前記受信装置が、前記送信装置から受信したパケットの受信エラーを検知すると、前記送信装置から受信したパケットのうち、受信エラーが検知されたパケットの直前に受信したパケット内のデータ領域のデータを、パケット再送要求に付加して前記送信装置へ送信し、
    前記送信装置が、前記パケット再送要求を受信すると、前記受信装置へ送信済みのデータと前記パケット再送要求に付加されたデータとを照合し、前記送信済みのデータのうち照合により一致したデータの次に送信されたデータを含むパケットを前記受信装置へ送信する、
    ことを特徴とするデータ伝送方法。
JP2014055278A 2014-03-18 2014-03-18 データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法 Active JP6237367B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014055278A JP6237367B2 (ja) 2014-03-18 2014-03-18 データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014055278A JP6237367B2 (ja) 2014-03-18 2014-03-18 データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法

Publications (2)

Publication Number Publication Date
JP2015179883A JP2015179883A (ja) 2015-10-08
JP6237367B2 true JP6237367B2 (ja) 2017-11-29

Family

ID=54263680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014055278A Active JP6237367B2 (ja) 2014-03-18 2014-03-18 データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法

Country Status (1)

Country Link
JP (1) JP6237367B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56169448A (en) * 1980-05-30 1981-12-26 Agency Of Ind Science & Technol Loop type network system
JPS61144142A (ja) * 1984-12-18 1986-07-01 Nec Corp デ−タ伝送方式
JPS63131632A (ja) * 1986-11-20 1988-06-03 Matsushita Electric Ind Co Ltd 誤り制御機能付通信装置
JPH05292149A (ja) * 1992-04-07 1993-11-05 Kyushu Nippon Denki Software Kk 異常データの再送制御方式
US7596277B2 (en) * 2002-04-09 2009-09-29 Senthil Govindaswamy Apparatus and method for detecting error in a digital image
KR100537499B1 (ko) * 2002-07-26 2005-12-19 삼성전자주식회사 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법
JP4435138B2 (ja) * 2006-11-16 2010-03-17 株式会社日立国際電気 通信システム

Also Published As

Publication number Publication date
JP2015179883A (ja) 2015-10-08

Similar Documents

Publication Publication Date Title
US9781028B2 (en) Transcoding and dynamic error correction for content centric networks using a proxy server
JP4742669B2 (ja) 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
KR100772528B1 (ko) 유/무선 네트워크에서 효율적인 패킷 재전송 방법 및 장치
US8194758B2 (en) Image receiving apparatus and control method of image receiving apparatus
JP2007143113A (ja) 送受信システム、送信装置、および送信方法
CN110087140B (zh) 一种传输流媒体数据的方法、装置、介质及设备
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
CN101783955A (zh) 一种数据异常时的恢复方法和设备
JP2008312126A (ja) データ送信装置、データ受信装置、及びデータ送受信システム
US11876723B2 (en) Method and apparatus for transmitting and receiving packet in communication system
US9401775B2 (en) Communication method, information processing apparatus, and recording medium
US10116415B2 (en) Transmission device, receiving device, transmission method, and receiving method
JP2007502585A (ja) データ技術領域を送信する装置、システムおよび方法
JP6237367B2 (ja) データ伝送システム、送信装置、受信装置、送信プログラム、受信プログラムおよびデータ伝送方法
US20120233516A1 (en) Reception processing device
US9906331B2 (en) Communication method, information processing apparatus and recording medium
JP6358430B2 (ja) 通信制御装置および通信制御方法
JP2012151622A (ja) 受信端末、パケットデータ受信方法、送信端末、送受信システム、中継端末およびパケットデータの中継方法
JP2006245781A (ja) データ送受信システムおよびデータ送信方法
JP2011211616A (ja) 動画像伝送装置、動画像伝送システム、動画像伝送方法およびプログラム
JP2004187010A (ja) データ処理装置、通信装置、データ処理方法、データ処理プログラム、データ処理プログラムを記録したコンピュータ読取可能な記録媒体
US10354695B2 (en) Data recording control device and data recording control method
JP3923959B2 (ja) 通信装置、通信方法およびプログラムを記録した記録媒体
JP2007053745A (ja) 受信機及びプログラム
WO2015064288A1 (ja) 無線通信装置、無線通信システム、および、これらにおける無線通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6237367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150