Data processing device, data processing method and data processing program

申请号 JP2011145636 申请日 2011-06-30 公开(公告)号 JP2013013003A 公开(公告)日 2013-01-17
申请人 Brother Ind Ltd; ブラザー工業株式会社; 发明人 SUGIURA SHINRI;
摘要 PROBLEM TO BE SOLVED: To provide a data processing device, a data processing method and a data processing program which, when there is an error in receiving order or a packet loss in consecutive packets transmitted by applying FEC, can efficiently processing data without wasting the packets required for decoding the data.SOLUTION: A PC receives packets including data encoded by FEC. The PC measures a non-reception time from receiving one packet to receiving a packet belonging to the same restoring group as the one packet, the restoring group being a unit for restoring a lost packet (S31-S33). The PC determines whether the non-reception time is longer than a standby time or not (S35). If it is longer than the standby time (S35: YES), the PC avoids FEC decoding of a packet belonging to the restoring group in which the non-reception time is equal to or longer than the standby time (S37-S39).
权利要求
  • 各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信手段と、
    前記受信手段によって一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測手段と、
    前記計測手段によって計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断手段と、
    前記経過判断手段によって前記未受信時間が前記待機時間以上であると判断された場合に、前記受信手段によって受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避手段と を備えたことを特徴とするデータ処理装置。
  • 前記受信手段によってパケットが受信され、且つ前記経過判断手段によって前記未受信時間が前記待機時間以上でないと判断された場合に、受信されたパケットが属する復元グループにおいて受信が完了したデータのデータ量が、損失パケットを復元可能な一定量以上であるか否かを判断するデータ量判断手段と、
    前記データ量判断手段によってデータ量が一定量以上であると判断された時点で、前記受信されたパケットが属する復元グループのデータに対してFEC復号を行う復号手段と をさらに備えたことを特徴とする請求項1に記載のデータ処理装置。
  • 前記受信手段によって受信されたパケットに含まれるデータにおけるフレーム種別およびフレームレートの少なくともいずれかの情報を取得する情報取得手段と、
    前記情報取得手段によって取得された情報に従って、前記経過判断手段によって判断される前記待機時間を設定する第一設定手段と をさらに備えたことを特徴とする請求項1または2に記載のデータ処理装置。
  • パケットが送信されてから前記受信手段によって受信されるまでに要する時間のゆらぎを取得するゆらぎ取得手段と、
    前記ゆらぎ取得手段によって取得されたゆらぎに応じて、前記経過判断手段によって判断される前記待機時間を設定する第二設定手段と をさらに備えたことを特徴とする請求項1または2に記載のデータ処理装置。
  • ネットワークを介して受信されたデータを処理するデータ処理装置によって実行されるデータ処理方法であって、
    各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信ステップと、
    前記受信ステップにおいて一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測ステップと、
    前記計測ステップにおいて計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断ステップと、
    前記経過判断ステップにおいて前記未受信時間が前記待機時間以上であると判断された場合に、前記受信ステップにおいて受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避ステップと を含むデータ処理方法。
  • ネットワークを介して受信されたデータを処理するデータ処理装置で用いられるデータ処理プログラムであって、
    各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信ステップと、
    前記受信ステップにおいて一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測ステップと、
    前記計測ステップにおいて計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断ステップと、
    前記経過判断ステップにおいて前記未受信時間が前記待機時間以上であると判断された場合に、前記受信ステップにおいて受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避ステップと を前記データ処理装置のコントローラに実行させるための指示を含むデータ処理プログラム。
  • 说明书全文

    本発明は、ネットワークを介して受信されたデータを処理するデータ処理装置、データ処理方法、およびデータ処理プログラムに関する。

    従来、複数の装置の間で各種データを送受信する技術が知られている。 例えば、映像データを送受信する場合、送信側の装置(以下、「送信装置」という。)は、撮影手段から取得した映像データを順に符号化してパケット化し、受信側の装置(以下、「受信装置」という。)に送信する。 受信装置は、ネットワークを介してパケットを受信し、受信したパケットに含まれる符号化データを復号部に出する。

    ネットワークの輻輳による遅延、経路変更等の影響で、送信時と受信時のパケットの順序が入れ替わる場合がある。 パケットロスが生じる場合もある。 受信装置は、パケットの受信順の入れ替わりまたはパケットロスが生じた場合でも、適切にデータを処理できることが望ましい。 特許文献1が開示している受信装置は、受信したパケットをバッファに格納する。 受信装置は、受信したパケットに付されているシーケンス番号の順序に入れ替わりが生じると、タイマを起動する。 タイムアウトする前に、受信順が遅れたパケットの受信を完了すると、バッファに格納したパケットをシーケンス番号順に出力する。 一方、受信装置は、受信順が遅れたパケットを受信せずにタイムアウトとなると、その時点でバッファに格納されているパケットのみをシーケンス番号順に出力する。

    特開2009−171529号公報

    パケットの再送処理を行わずに、パケットの送受信の不具合を解消する方法として、前方誤り訂正(Forward Error Correction、以下「FEC」という)がある。 FECでは、送信装置はパケット内のデータに冗長性を付与する。 その結果、受信装置は、パケットの送信、破壊等によって受信に失敗したデータを冗長データから復元することができる。 よって、パケットを再送する場合に比べて、送信から受信完了までの時間差を短縮することができる。 そのため、ストリーミング放送等、パケットの再送を行いにくい状況で利用されている。

    FECを適用してデータを送受信する場合、受信装置は、復元単位となる一群のパケット(例えば、1つのフレームのパケット群、1つのスライスのパケット群等。以下、「復元グループ」という。)に属する全てのパケットを受信していなくても、一定量以上のパケットを受信していれば、復元グループに含まれるデータを復元できる。 つまり、受信装置は、仮にパケットの受信順に入れ替わりが生じた場合でも、1つの復元グループに属する複数のパケットを順調に一定量以上受信できれば、復元グループに含まれるデータを円滑に復元できる。 しかし、特許文献1に記載の方法では、1つの復元グループに属する複数のパケットが順調に受信された場合でも、受信順が入れ替わっていれば、受信順が遅れてタイムアウトとなったパケットは出力されない。 その結果、必要以上にパケットが破棄されてしまい、データを正確に復号できない場合が生じる。 従って、従来の受信装置は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することはできなかった。

    本発明は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することができるデータ処理装置、データ処理方法、およびデータ処理プログラムを提供することを目的とする。

    本発明の第一態様に係るデータ処理装置は、各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信手段と、前記受信手段によって一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測手段と、前記計測手段によって計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断手段と、前記経過判断手段によって前記未受信時間が前記待機時間以上であると判断された場合に、前記受信手段によって受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避手段とを備えている。

    第一態様に係るデータ処理装置は、同じ復元グループに属するパケット同士の受信間隔を計測することで、復元グループ毎にタイムアウトを判断する。 従って、同じ復元グループに属するパケットの受信間隔が待機時間内であれば、受信順が入れ替わった場合でも、受信順が遅れたパケットが破棄されることも、復号されずにそのまま放置されることもない。 一方、同じ復元グループに属するパケットの受信間隔が待機時間以上となれば、その復元グループに含まれるデータのFEC復号は回避され、他の処理が迅速に行われる。 従って、データ処理装置は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することができる。

    前記データ処理装置は、前記受信手段によってパケットが受信され、且つ前記経過判断手段によって前記未受信時間が前記待機時間以上でないと判断された場合に、受信されたパケットが属する復元グループにおいて受信が完了したデータのデータ量が、損失パケットを復元可能な一定量以上であるか否かを判断するデータ量判断手段と、前記データ量判断手段によってデータ量が一定量以上であると判断された時点で、前記受信されたパケットが属する復元グループのデータに対してFEC復号を行う復号手段とをさらに備えてもよい。

    この場合、データ処理装置は、損失パケットを復元可能な一定量以上のデータを受信した時点で、復元グループに属する全てのパケットを受信したか否かに関わらず、FEC復号を行うことができる。 従って、データ処理装置は、処理を迅速に行うことができ、データ処理の効率をさらに高めることができる。 パケットロス等が生じた場合には、一定量以上のデータを受信するまで待機することで、損失パケットを復元することができる。

    前記データ処理装置は、前記受信手段によって受信されたパケットに含まれるデータにおけるフレーム種別およびフレームレートの少なくともいずれかの情報を取得する情報取得手段と、前記情報取得手段によって取得された情報に従って、前記経過判断手段によって判断される前記待機時間を設定する第一設定手段とをさらに備えてもよい。 この場合、データ処理装置は、フレーム種別およびフレームレートの少なくともいずれかに応じて、受信を待機する待機時間を適切な長さに設定することができる。 従って、データ処理装置は、さらに効率よく処理を行うことができる。

    前記データ処理装置は、パケットが送信されてから前記受信手段によって受信されるまでに要する時間のゆらぎを取得するゆらぎ取得手段と、前記ゆらぎ取得手段によって取得されたゆらぎに応じて、前記経過判断手段によって判断される前記待機時間を設定する第二設定手段とをさらに備えてもよい。 この場合、データ処理装置は、パケットの送信に要する時間のゆらぎに応じて、受信を待機する待機時間を適切な長さに設定することができる。 従って、データ処理装置は、さらに効率よく処理を行うことができる。

    本発明の第二態様に係るデータ処理方法は、ネットワークを介して受信されたデータを処理するデータ処理装置によって実行されるデータ処理方法であって、各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信ステップと、前記受信ステップにおいて一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測ステップと、前記計測ステップにおいて計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断ステップと、前記経過判断ステップにおいて前記未受信時間が前記待機時間以上であると判断された場合に、前記受信ステップにおいて受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避ステップとを含む。

    第二態様に係るデータ処理方法によると、データ処理装置は、同じ復元グループに属するパケット同士の受信間隔を計測することで、復元グループ毎にタイムアウトを判断する。 従って、同じ復元グループに属するパケットの受信間隔が待機時間内であれば、受信順が入れ替わった場合でも、受信順が遅れたパケットが破棄されることも、復号されずにそのまま放置されることもない。 一方、同じ復元グループに属するパケットの受信間隔が待機時間以上となれば、その復元グループに含まれるデータのFEC復号は回避され、他の処理が迅速に行われる。 従って、データ処理装置は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することができる。

    本発明の第三態様に係るデータ処理プログラムは、ネットワークを介して受信されたデータを処理するデータ処理装置で用いられるデータ処理プログラムであって、各々が一群のパケットからなり損失パケットを復元する単位となる複数の復元グループのうち、いずれの復元グループに属するかを示すグループ識別情報と、FEC(前方誤り訂正)によって符号化されたデータとを含むパケットを、ネットワークを介して受信する受信ステップと、前記受信ステップにおいて一のパケットが受信されてから、前記一のパケットに含まれるグループ識別情報が示す復元グループと同じ復元グループに属する他のパケットを受信せずに経過した未受信時間を計測する計測ステップと、前記計測ステップにおいて計測された前記未受信時間が待機時間以上であるか否かを判断する経過判断ステップと、前記経過判断ステップにおいて前記未受信時間が前記待機時間以上であると判断された場合に、前記受信ステップにおいて受信されたパケットのうち、前記未受信時間が前記待機時間以上となった復元グループに属するパケットのFEC復号を回避する回避ステップとを前記データ処理装置のコントローラに実行させるための指示を含む。

    第三態様に係るデータ処理プログラムによると、データ処理装置は、同じ復元グループに属するパケット同士の受信間隔を計測することで、復元グループ毎にタイムアウトを判断する。 従って、同じ復元グループに属するパケットの受信間隔が待機時間内であれば、受信順が入れ替わった場合でも、受信順が遅れたパケットが破棄されることも、復号されずにそのまま放置されることもない。 一方、同じ復元グループに属するパケットの受信間隔が待機時間以上となれば、その復元グループに含まれるデータのFEC復号は回避され、他の処理が迅速に行われる。 従って、データ処理装置は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することができる。

    通信システム100のシステム構成を示す図である。

    PC1の電気的構成を示すブロック図である。

    PC1が実行する送信処理のフローチャートである。

    送信処理によって送信されるパケットのデータ構成の概略を説明するための説明図である。

    PC1が実行する受信処理のフローチャートである。

    受信処理中に実行されるパケット振り分け処理のフローチャートである。

    受信処理中に実行されるタイムアウト判定処理のフローチャートである。

    タイムアウト判定処理中に実行される待機時間設定処理のフローチャートである。

    シーケンス番号に従ってタイムアウト判定を行う場合の処理結果を説明するための説明図である。

    本実施形態のPC1による処理結果を説明するための説明図である。

    変形例1における待機時間設定処理のフローチャートである。

    変形例2における待機時間設定処理のフローチャートである。

    以下、本発明のデータ処理装置を具現化した一実施形態であるパーソナルコンピュータ(以下、「PC」という。)1について、図面を参照して説明する。 参照する図面は、本発明が採用し得る技術的特徴を説明するために用いられるものである。 図面に記載されている装置の構成、各種処理のフローチャート等は、それのみに限定する趣旨ではなく、単なる説明例である。

    図1を参照して、PC1を備えた通信システム100のシステム構成について説明する。 通信システム100は、複数のPC1を備える。 以下では、説明を簡略化するために、2つのPC1を備えた通信システム100を例示して説明を行う。 しかし、通信システム100が備えるPC1の数は2つに限られず、3つ以上であってもよい。 各PC1は、インターネット等のネットワーク8を介して、他のPC1との間でデータを送受信する。 通信システム100は、サーバ(図示外)等を経てデータが送受信されるサーバ型の通信システムでもよいし、各PC1の間でデータが直接送受信されるP2P(peer to peer)型の通信システムでもよい。

    本発明におけるデータ処理装置として用いることができるのは、PC1に限られない。 例えば、テレビ会議を実行するために各拠点に配置される専用のテレビ会議端末等を、本発明におけるデータ処理装置として用いることも可能である。 データ処理装置は、ネットワーク8を介してデータを受信し、受信したデータを処理できる装置であればよい。

    本実施形態で例示する通信システム100は、音声および映像を用いた遠隔会議を実行するためのテレビ会議システムである。 各PC1は、自拠点のマイク31(図2参照)によって入力した音声のデータ、およびカメラ33によって入力した映像のデータを、通信システム100内の他のPC1に送信する。 各PC1は、他のPC1の各々から受信したデータに基づいて、他の拠点の音声をスピーカ32(図2参照)から出力し、且つ他の拠点の映像を表示装置34に表示させる。 その結果、複数の拠点の音声および映像が、通信システム100内で共有される。 さらに、各PC1は、会議中に閲覧する資料(文書、図面、写真等)のデータ、表示されている画面内の位置を指し示すためのポインタのデータ等を、音声および映像のデータと共に相互に送受信することができる。 よって、通信システム100によると、全てのユーザが同一の拠点にいない場合でも、ユーザは円滑に会議を実行することができる。

    通信システム100におけるデータの送受信方法の概要について説明する。 通信システム100内の各PC1は、音声、映像、資料、ポインタ等の各データをパケット化して送受信する。 以下では、PC1が映像のデータをパケット化して送受信する場合を例示して説明を行う。 データを送信するPC1(以下、「送信装置」という。)は、自拠点のカメラ33から映像のデータをフレーム単位で取得する。 取得した映像のデータを符号化して符号化データを生成する。 生成した1フレーム分の符号化データを、1または複数のパケットに含めて送信する。

    本実施形態に係る送信装置は、複数のフレームのデータに対して周知の画像圧縮符号化を行う。 画像圧縮符号化には、フレーム内符号化とフレーム間符号化とがある。 フレーム内符号化とは、カメラ33によって入力された連続する複数フレーム分の映像データのうちの1フレーム分のデータ内で、画面内予測によって行われる符号化である。 フレーム内符号化によって生成される符号化データであるIピクチャ(Intra−coded Picture)は、他のフレームを参照することなく単独で復号できる。 一方、フレーム間符号化では、連続するフレームのデータのうち、符号化するフレームのデータとは異なるフレームのデータが参照されて予測誤差が計算され、計算された予測誤差が符号化される。 フレーム間符号化によって生成される符号化データには、Pピクチャ(Predictive−coded Picture)およびBピクチャ(Bidirectional−coded Picture)がある。 PピクチャおよびBピクチャを正確に復号するには、符号化時に参照されたフレームが必要となる。 しかし、PピクチャおよびBピクチャのデータ量は、単独で復号できるIピクチャに比べて少ない。 送信装置は、画像圧縮符号化を行うことで、映像のデータを効率よく送信することができる。

    本実施形態に係る送信装置は、周知のFEC(前方誤り訂正)による符号化を行う。 FEC符号化では、送信装置は、データの誤りを検出し復元するために用いられる冗長データを、各パケットに含める。 受信側の装置(以下、「受信装置」という。)は、復元単位に含まれるデータのうち一定量のデータ(映像の符号化データ+冗長データ)の受信が完了すると、受信したデータを用いて、復元単位中の損失パケットを復元することができる。 従って、送信時と受信時のパケットの順序が入れ替わった場合、パケットロスが生じた場合等でも、受信装置は、損失パケットを復元して適切にデータを処理することができる。 受信装置は、パケットの再送を送信装置に要求する必要が無いため、映像等のデータをリアルタイムで再生することも可能である。 特に、本実施形態に係る受信装置は、復号に必要なパケットを無駄にすることなく、FEC符号化によって生成・送信されたデータを処理することができるが、この詳細は後述する。 なお、FECには、リード・ソロモン符号、ターボ符号、低密度パリティ検査(LDPC)符号等の種々の方式が存在するが、本発明ではいずれの方式を用いることもできる。

    図2を参照して、PC1の電気的構成について説明する。 PC1は、PC1の制御を司るCPU10を備えている。 CPU10には、ROM11、RAM12、ハードディスクドライブ(以下、「HDD」という。)13、および入出力インターフェース19が、バス18を介して接続されている。

    ROM11は、PC1を動作させるためのプログラムおよび初期値等を記憶している。 RAM12は、受信したパケット等の各種の情報を一時的に記憶する。 HDD13は、制御プログラム等の各種の情報を記憶する不揮発性の記憶装置である。 具体的には、HDD13は、送信処理(図3参照)および受信処理(図5参照)を実行するためのデータ処理プログラムを記憶する。 HDD13の代わりに、EEPROM等の他の不揮発性メモリを用いてもよい。

    入出力インターフェース19には、音声入力処理部21、音声出力処理部22、映像入力処理部23、映像出力処理部24、操作入力処理部25、および外部通信I/F26が接続されている。 音声入力処理部21は、音声を入力するマイク31からの音声データの入力を処理する。 音声出力処理部22は、音声を出力するスピーカ32の動作を処理する。 映像入力処理部23は、映像を撮影するカメラ33からの映像データの入力を処理する。 映像出力処理部24は、映像を表示する表示装置34の動作を処理する。 操作入力処理部25は、キーボードおよびマウス等の操作部35から入力されるデータを処理する。 外部通信I/F26は、PC1をネットワーク8に接続する。

    図3から図8を参照して、PC1が通信を行うために実行する処理について説明する。 PC1のCPU10は、HDD13に記憶されているデータ処理プログラムに従って、以下の送信処理(図3参照)および受信処理(図5参照)を実行する。 CPU10は、送信処理および受信処理を並行して実行することも、いずれか一方のみを実行することも可能である。

    図3を参照して、送信処理について説明する。 PC1のCPU10は、接続しているカメラ33(図1および図2参照)から映像フレームを1つ入力する毎に送信処理を実行する。 まず、CPU10は、カメラ33から入力した映像フレームを取得する(S1)。 CPU10は、取得したフレームの順番を識別するためのフレーム番号を採番(選択)する(S2)。 CPU10は、取得したフレームに対するFEC符号化を実行する(S3)。 詳細には、S3では、取得されたフレームに対して画像圧縮符号化が行われて、Iピクチャ、Pピクチャ、およびBピクチャのいずれかが生成される。 さらに、生成された符号化データを復元するために用いられる冗長データが生成される。

    CPU10は、FEC符号化によって生成した符号化データおよび冗長データのうちの一定量をパケット化する(S4)。 生成したパケットのヘッダに、S2で採番したフレーム番号を付与する(S5)。

    図4に、生成されたパケットのデータ構成の一例を示す。 パケットのヘッダ部分には、フレーム番号、復元可能なデータ量の情報、およびフレーム情報等が含まれる。 復元可能なデータ量の情報とは、1つのフレームのデータのうち、損失パケットを復元する際に必要となるデータ(符号化データおよび冗長データ)のデータ量を示す情報である。 フレーム情報とは、パケットに含まれる符号化データによって構成されるフレームの情報である。 本実施形態のフレーム情報は、フレーム種別(Iピクチャ/Pピクチャ/Bピクチャ)を示す情報と、フレームレートを示す情報とを含む。 復元可能なデータ量の情報およびフレーム情報は、S4でパケットが生成される際に、各パケットのヘッダに付与される。 パケットのデータ部分には、映像の符号化データと、損失パケットを復元するための冗長データとが含まれる。

    図3の説明に戻る。 CPU10は、パケットを生成すると、生成したパケットを受信装置に送信する(S6)。 CPU10は、FEC符号化(S3)によって生成したデータのうち未送信のデータがあるか否かを判断する(S7)。 未送信のデータがあれば(S7:YES)、処理はS4へ戻り、1つのフレームに関するデータが複数のパケットによって送信される(S4〜S6)。 未送信のデータが無くなると(S7:NO)、送信処理は終了する。 送信処理は、次のフレームのデータがカメラ33から入力されると再び実行される。 以上のように、送信装置は、フレーム単位でFEC符号化を行い、生成した1つのフレームのデータを、1または複数のパケットによって受信装置に送信する。 従って、受信装置は、冗長データを用いて損失パケットを復元する場合、フレーム単位で復元処理(FEC復号)を行う。 つまり、本実施形態では、損失パケットを復元する単位となる一群のパケット(以下、「復元グループ」という。)は、同一のフレームのデータを含む一群のパケットとなる。

    図5から図8を参照して、受信処理について説明する。 PC1のCPU10は、通信システム100内の他のPC1(送信装置)からパケットを1つ受信する毎に受信処理を実行する。 まず、CPU10は、ネットワーク8を介してパケットを受信する(S11)。 受信したパケットのヘッダを参照し、パケット内のデータによって構成されるフレームのフレーム番号を取得する(S12)。

    CPU10は、受信したパケットが復号済みのフレームのパケットであるか否かを、S12で取得したフレーム番号を用いて判断する(S13)。 詳細は後述するが、復号済みのフレームはRAM12に記憶されている(S20)。 復号済みのフレームのパケットであれば(S13:YES)、CPU10は、受信したパケットを破棄し(S15)、処理は終了する。

    復号済みのフレームのパケットでなければ(S13:NO)、CPU10は、受信したパケットがデータ破棄済みのフレームのパケットであるか否かを判断する(S14)。 詳細は後述するが、CPU10は、フレームを構成するパケットを円滑に受信できず、損失パケットを復元可能な一定量のデータを所定時間内に得られなければ、そのフレームに関する受信済みのデータを全て破棄する。 その結果、CPU10は、次のフレームの処理を迅速に行うことができる。 既にデータが破棄されたフレームのパケットを遅れて受信した場合(S14:YES)、CPU10は、受信したパケットを破棄し(S15)、処理は終了する。 データ破棄済みのフレームのパケットでなければ(S14:NO)、パケット振り分け処理(S16)、およびタイムアウト判定処理(S17)が行われる。

    図6を参照して、パケット振り分け処理について説明する。 パケット振り分け処理では、フレーム毎にデータプールが作成され、受信されたパケットがそれぞれのデータプールに記憶される。 まず、CPU10は、受信したパケットが属するフレームのデータプールが既に作成されているか否かを判断する(S21)。 未だ作成されていなければ(S21:NO)、CPU10は、受信したパケットが属するフレームのデータプールを、RAM12の記憶領域内に作成する(S22)。 作成したデータプールに、受信したパケットを記憶させる(S23)。 処理は受信処理へ戻る。 一方、データプールが既に作成されていれば(S21:YES)、受信したパケットが属するフレームのデータテーブルに、パケットが追加される(S23)。 処理は受信処理(図5参照)へ戻る。 パケット振り分け処理(S16)が終了すると、タイムアウト判定処理(S17)が行われる。

    図7を参照して、タイムアウト判定処理について説明する。 タイムアウト判定処理では、パケットの受信間隔が待機時間以上であるか否かが判断される。 待機時間とは、同一フレームを構成する複数のパケットのうち、一のパケットを受信してから次のパケットを受信するまで待機する最大の時間である。 受信装置は、パケットの受信を長時間待機すると、映像をリアルタイムで再生することができない。 映像が途中で途切れる場合もある。 従って、受信装置は、パケットの受信を一定時間待機した時点で、次のフレームの処理を行うのが望ましい。 しかし、パケットの受信の待機時間が短すぎると、十分な量のデータが受信されないまま映像が再生されるため、映像品質の低下等の問題が生じる。 従って、タイムアウト判定処理では、フレーム情報に基づいて適切な待機時間が設定される。 受信間隔が、設定された待機時間以上となった場合にのみ、受信遅延が生じたフレームのパケットが破棄される。

    まず、CPU10は、受信したパケットが属するフレームのデータテーブルの情報を取得する(S31)。 データテーブルに記憶されているパケットのうち、最後に受信されたパケットの受信時間(最終受信時間t1)を取得する(S32)。 CPU10は、S11(図5参照)で受信したパケットの受信時間t2を取得する(S33)。 次いで、CPU10は待機時間設定処理を行う(S34)。

    図8に示すように、CPU10は、待機時間設定処理を開始すると、受信したパケットのヘッダからフレーム情報を取得する(S41)。 前述したように、フレーム情報には、パケットが属するフレームのフレーム種別を示す情報が含まれる。 CPU10は、受信したパケットが属するフレームの種別がIピクチャであるか否かを判断する(S42)。 Iピクチャであれば(S42:YES)、CPU10は、後述するTbよりも長いTaを待機時間に設定し(S43)、処理はタイムアウト判定処理へ戻る。 Iピクチャは、PピクチャおよびBピクチャを復号する際に参照される。 従って、Iピクチャを正確に復号できなければ、PピクチャおよびBピクチャの品質も低下する。 受信装置は、Iピクチャのパケットを受信する際の待機時間を長くすることで、Iピクチャに加えてPピクチャおよびBピクチャの品質に悪影響が生じることを防止することができる。 フレーム種別がIピクチャでなく、PピクチャまたはBピクチャであれば(S42:NO)、CPU10は、Taよりも短いTbを待機時間に設定し(S44)、処理はタイムアウト判定処理へ戻る。

    図7の説明に戻る。 待機時間設定処理(S34)が終了すると、受信間隔(未受信時間)である「t2−t1」が待機時間以上であるか否かが判断される(S35)。 受信間隔が待機時間よりも短く、同一フレームに関するパケットが円滑に受信されていれば(S35:NO)、パケットの破棄等の処理が行われることは無い。 この場合、CPU10は、データプール内のパケットの最終受信時間t1をt2で更新し(S36)、処理は受信処理へ戻る。

    受信間隔「t2−t1」が待機時間以上であれば(S35:YES)、CPU10は、受信したパケットが属するフレームのデータプールに記憶されているパケットを、全て破棄する(S37)。 データプールも破棄する(S38)。 つまり、CPU10は、受信間隔が待機時間以上となったフレームのFEC復号を回避し、次のフレームの処理を行う。 CPU10は、データを破棄したフレームを、データ破棄済みのフレームとしてRAM12に記憶し(S39)、処理は受信処理へ戻る。

    図5の説明に戻る。 タイムアウト判定処理(S17)が終了すると、CPU10は、損失パケットを復元可能なデータ量を既に受信したか否かを判断する(S18)。 復元可能なデータ量の情報は、前述したように、各パケットのヘッダに含まれている(図4参照)。 受信したパケットが属するフレームのデータプール内に、復元可能なデータ量が未だ記憶されていない場合、またはデータプールが破棄されている場合には(S18:NO)、処理はそのまま終了する。 復元可能なデータ量が既にデータプール内に記憶されていれば(S18:YES)、CPU10は、データプール内に記憶されているパケットに対してFEC復号を行う(S19)。 FEC復号を行ったフレームを、復号済みフレームとして記憶し(S20)、受信処理は終了する。 つまり、CPU10は、復元可能な量のデータの受信が完了した時点で、受信したデータに含まれる冗長データを用いて、未だ受信していないパケットを損失パケットとして復元する。 CPU10は、復元可能な量のデータを受信すると、残りのパケットを受信するか否かに関わらずFEC復号を行うので、処理を迅速に行うことができる。 なお、図示しないが、CPU10は、復号するフレームの順が入れ替わらないように、S19およびS20の処理をフレーム番号に従って実行する。 つまり、S19およびS20の処理対象となるフレームの前のフレームに、復号およびデータ破棄のいずれも行われていないフレームがあれば、S19およびS20の処理は待機される。

    図9および図10を参照して、従来の処理の結果と本実施形態の処理の結果との比較を行う。 図9は、シーケンス番号に従ってタイムアウト判定を行う従来の処理の結果を示す。 従来の受信装置は、各パケットの送信順を示すシーケンス番号を参照し、一のパケットを受信してから次のシーケンス番号のパケットを受信するまでの時間を計測する。 シーケンス番号に従ってタイムアウト判定を行う場合、同一フレームに属するパケットが順調に受信されていてもタイムアウトと判定される場合がある。 図9に示す例では、フレーム番号「1」の複数のパケットの受信間隔は、全て一定時間内に収まっている。 よって、受信装置は、フレーム番号「1」のフレームを問題なく復号できる。 しかし、フレーム番号「1」における4番目のパケット「1−4」の受信順と、パケット「1−5」・「1−6」の受信順とが入れ替わっている。 その結果、パケット「1−3」を受信してからパケット「1−4」を受信するまでの時間が待機時間以上となり(図中「×」で示す)、従来の処理ではパケット「1−4」が破棄される。 また、パケット「1−7」の受信タイミングは、パケット「1−4」の受信直後ではあるが、シーケンス番号が1つ若いパケット「1−6」の受信時との間隔は待機時間以上となっている。 その結果、パケット「1−7」も破棄される。 2つのパケットが破棄された結果、フレーム番号「1」のフレームは正確に復号されない。

    図10は、本実施形態のPC1による処理の結果を示す。 本実施形態のPC1は、同じ復元グループ(本実施形態ではフレーム)に属するパケット同士の受信間隔(未受信時間)によってタイムアウト判定を行う。 従って、図10に示すように、パケット「1−4」の受信順が遅れても、直前に受信されたパケット「1−6」との間の受信間隔が待機時間内であれば、パケット「1−4」は破棄されることも、復号されずにそのまま放置されることもない。 つまり、同じ復元グループに属するパケットの受信間隔が待機時間内であれば、受信順が入れ替わっても影響はない。 一方、図示しないが、同じ復元グループに属するパケットの受信間隔が待機時間以上となれば、その復元グループに含まれるデータのFEC復号は回避され、他の処理が迅速に行われる。 従って、PC1は、FECを適用して送信された連続したパケットに、受信順の誤りまたはパケットロスが生じた場合、復号に必要なパケットを無駄にすることなく効率よくデータを処理することができる。

    図10に示す例では、パケット「1−4」を受信した時点で、フレーム番号「1」に関する損失パケットを復元可能な一定量以上のデータが受信されている。 PC1は、復元可能な一定量以上のデータを受信した時点で、復元グループ(フレーム番号「1」のフレーム)に属する全てのパケットを受信したか否かに関わらず、FEC復号を行う。 その結果、パケット「1−7」は、受信される前に損失パケットとして復元され、フレーム番号「1」のフレームが正確に復号される。 従って、受信装置は、処理を迅速に行うことができ、データ処理の効率をさらに高めることができる。 パケットロス等が生じた場合には、一定量以上のデータを受信するまで待機することで、損失パケットを復元することができる。

    さらに、本実施形態の受信装置は、受信したパケットに含まれるフレーム情報に従って待機時間を設定する(図8参照)。 従って、受信装置は、待機時間を適切な長さに設定して効率よく処理を行うことができる。 詳細には、受信装置は、Iピクチャのパケットの待機時間を、PピクチャおよびBピクチャの待機時間よりも長く設定する。 よって、Iピクチャに加えてPピクチャおよびBピクチャの品質に悪影響が生じることを防止することができる。

    上記実施形態において、PC1(受信装置)が本発明の「データ処理装置」に相当する。 パケットのヘッダに含まれるフレーム番号が本発明の「グループ識別情報」に相当する。 図5のS11でパケットを受信するCPU10が、本発明の「受信手段」として機能する。 図7のS32,S33で受信間隔(未受信時間)を計測するCPU10が「計測手段」として機能する。 図7のS35で受信間隔が待機時間以上であるか否かを判断するCPU10が「経過判断手段」として機能する。 図7のS37〜S39でFEC復号を回避するCPU10が「回避手段」として機能する。 図5のS18で復元可能なデータ量を受信済みであるか否かを判断するCPU10が「データ量判断手段」として機能する。 図5のS19でFEC復号を行うCPU10が「復号手段」として機能する。 図8のS41でフレーム情報を取得するCPU10が「情報取得手段」として機能する。 図8のS42〜S44で待機時間を設定するCPU10が「第一設定手段」として機能する。

    図5のS11でパケットを受信する処理が、本発明の「受信ステップ」に相当する。 図7のS32,S33で受信間隔(未受信時間)を計測する処理が「計測ステップ」に相当する。 図7のS35で受信間隔が待機時間以上であるか否かを判断する処理が「経過判断ステップ」に相当する。 図7のS37〜S39でFEC復号を回避する処理が「回避ステップ」に相当する。

    本発明は上記実施形態に限定されることはなく、様々な変形が可能であることは言うまでも無い。 図11を参照して、上記実施形態の変形例1について説明する。 変形例1では、待機時間設定処理(図7のS34)の処理内容が上記実施形態と異なるのみであり、他の構成および処理は上記実施形態と同一である。 図11に示すように、変形例1のCPU10は、待機時間設定処理を開始すると、受信したパケットが送信されてから受信に至るまでに要した時間(以下、「送信所要時間」という。)を計測する(S51)。 本変形例では、パケットの送信時間を示す識別子がパケットのヘッダに付与されている。 CPU10は、識別子が示す時間と受信時間との差を算出することで、送信所要時間を計測する。 しかし、送信所要時間の計測方法はこれに限られず、種々の方法を用いることができる。

    CPU10は、複数の送信所要時間の計測結果から、送信所要時間のゆらぎを算出する(S52)。 詳細には、所定数の送信所要時間の標準偏差が、ゆらぎとして算出される。 算出されたゆらぎが閾値より大きいか否かが判断される(S53)。 ゆらぎが閾値よりも大きければ(S53:YES)、後述する時間Tdよりも長い時間Tcが待機時間に設定されて(S54)、処理はタイムアウト判定処理(図7参照)へ戻る。 送信所要時間のゆらぎが大きい場合に短い待機時間を設定すると、パケットを十分に受信する前にタイムアウトとなり、映像品質が低下する場合がある。 変形例1のCPU10は、送信所要時間のゆらぎが閾値よりも大きい場合に長い待機時間を設定することで、映像品質の低下を抑制しつつ、処理の効率を向上させることができる。 ゆらぎが閾値以下である場合には(S53:NO)、Tcよりも短いTdが待機時間に設定されて(S55)、処理はタイムアウト判定処理へ戻る。 よって、ゆらぎが小さい場合には迅速に処理が行われる。

    なお、変形例1において、図11のS51,S52で送信所要時間のゆらぎを取得するCPU10が本発明の「ゆらぎ取得手段」として機能する。 図11のS53〜S55で待機時間を設定するCPU10が「第二設定手段」として機能する。

    図12を参照して、上記実施形態の変形例2について説明する。 変形例2も変形例1と同様に、待機時間設定処理(図7のS34)の処理内容が上記実施形態と異なるのみである。 図12に示すように、変形例2のCPU10は、待機時間設定処理を開始すると、受信したパケットのヘッダからフレーム情報を取得する(S61)。 前述したように、フレーム情報にはフレームレートの情報が含まれる。 CPU10は、フレームレートが閾値より大きいか否かを判断する(S62)。 フレームレートが小さければ、フレームを表示させる間隔が長くなるため、待機時間を長く設定しても影響は少ない。 フレームレートが大きければ、フレームを表示させる間隔が短くなるため、待機時間を長く設定するとフレームを円滑に表示できない可能性がある。 従って、CPU10は、フレームレートが閾値以下であれば(S62:NO)、長い時間Teを待機時間に設定し(S63)、処理はタイムアウト判定処理へ戻る。 一方、CPU10は、フレームレートが閾値よりも大きければ(S62:YES)、Teよりも短い時間Tfを待機時間に設定し(S64)、処理はタイムアウト判定処理へ戻る。 以上のように、変形例2に係るPC1は、フレームレートに応じた適切な待機時間を設定することができる。

    なお、変形例2において、図12のS61でフレーム情報を取得するCPU10が、本発明の「情報取得手段」として機能する。 図12のS62〜S64で待機時間を設定するCPU10が「第一設定手段」として機能する。

    上記実施形態はその他の変形も可能である。 上記実施形態のPC1は、音声、映像、資料、ポインタ等のデータをパケット化して送受信するが、主に説明した処理は映像データを送受信する場合の処理であった。 しかし、本発明は、音声、資料、ポインタ等の他のデータを受信する場合にも、映像データの場合と同様に適用できる。

    上記実施形態のPC1は、同一のフレームのデータを含む一群のパケットを復元グループとして、FEC符号化、タイムアウト判定、およびFEC復号等の処理を行う。 しかし、フレーム単位で復元グループを設定する必要は無い。 例えば、1つのフレームを複数のスライスに分割し、スライス単位で復元グループを設定してもよい。 複数のフレームを1つの単位として復元グループを設定してもよい。 資料のデータを処理する場合には、ファイル単位、ページ単位等で復元グループを設定すればよい。

    上記実施形態のPC1は、送信処理(図3参照)および受信処理(図5参照)を共に実行できる。 従って、通信システム100(図1参照)内のPC1は、データを相互に送受信することができる。 しかし、本発明は、データの送信を実行せずに受信処理のみを行うデータ処理装置にも適用できる。

    上記実施形態のPC1は、タイムアウトとなったフレームのパケットを全て破棄することでFEC復号を回避し、処理の効率を向上させる(S37〜S39、図7参照)。 しかし、FEC復号を回避する方法は、パケットを記憶手段から破棄する(消去する)方法に限られない。 例えば、パケットを記憶手段に記憶させたまま、FEC復号を実行せずに放置することで、FEC復号を回避してもよい。 この場合、記憶手段に残存したパケットは、処理の終了時に破棄してもよいし、定期的に破棄してもよい。

    上記実施形態では、タイムアウト判定処理(図7参照)は、パケットを受信することを契機として実行される。 従って、パケットがネットワーク8で消失してタイムアウトとなった場合には、図示しない処理において、消失したパケットが属するフレームのデータプールが破棄される。 しかし、PC1は、パケットの受信時でなく、常時または定期的にタイムアウト判定処理を実行してもよい。 この場合、PC1は、同一フレームに属するパケットの受信間隔(未受信時間)が待機時間以上となった時点で、タイムアウト判定処理の処理内でデータプールを破棄してもよい。

    1 PC
    8 ネットワーク10 CPU
    12 RAM
    13 HDD
    100 通信システム

    QQ群二维码
    意见反馈