特許第6893237号(P6893237)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー・インタラクティブエンタテインメント エルエルシーの特許一覧

<>
  • 特許6893237-データストリーミングの前方誤り訂正 図000002
  • 特許6893237-データストリーミングの前方誤り訂正 図000003
  • 特許6893237-データストリーミングの前方誤り訂正 図000004
  • 特許6893237-データストリーミングの前方誤り訂正 図000005
  • 特許6893237-データストリーミングの前方誤り訂正 図000006
  • 特許6893237-データストリーミングの前方誤り訂正 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6893237
(24)【登録日】2021年6月2日
(45)【発行日】2021年6月23日
(54)【発明の名称】データストリーミングの前方誤り訂正
(51)【国際特許分類】
   H04L 1/00 20060101AFI20210614BHJP
【FI】
   H04L1/00 B
【請求項の数】52
【全頁数】31
(21)【出願番号】特願2019-504922(P2019-504922)
(86)(22)【出願日】2017年7月27日
(65)【公表番号】特表2020-502832(P2020-502832A)
(43)【公表日】2020年1月23日
(86)【国際出願番号】US2017044229
(87)【国際公開番号】WO2018026632
(87)【国際公開日】20180208
【審査請求日】2019年1月29日
(31)【優先権主張番号】15/225,508
(32)【優先日】2016年8月1日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】518187455
【氏名又は名称】ソニー・インタラクティブエンタテインメント エルエルシー
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ロー、キム フウェイ
(72)【発明者】
【氏名】ヨン、ケルヴィン
【審査官】 原田 聖子
(56)【参考文献】
【文献】 特開2004−120479(JP,A)
【文献】 特表2012−529243(JP,A)
【文献】 特開2002−162998(JP,A)
【文献】 特開2001−144732(JP,A)
【文献】 特開2006−054039(JP,A)
【文献】 国際公開第2016/060101(WO,A1)
【文献】 特表2012−518939(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 1/00
(57)【特許請求の範囲】
【請求項1】
前方誤り訂正(FEC)によりフレームを符号化し送信する方法であって、
シーケンス内の現フレーム及び前記シーケンス内の1つ以上の前フレームを含む複数の未符号化フレームを受信または生成することと、
前記現フレームを第1のビットレートで符号化して、1つ以上の符号化ソースフレームを生成することと、
前記1つ以上の前フレームを、前記第1のビットレート以下の第2のビットレートで符号化して、1つ以上の符号化FECフレームを生成することと、
前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームを、1つ以上のデータパケットにパケット化することと
を含み、
前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、方法。
【請求項2】
前記第2のビットレートに対する前記第1のビットレートの比は、約1〜約10の間である、請求項1に記載の方法。
【請求項3】
前記複数の未符号化フレームは、1つ以上の音声フレームを含む、請求項1に記載の方法。
【請求項4】
データネットワークを介して前記1つ以上のデータパケットを送信することは、無線リンクを介して前記1つ以上のデータパケットを送信することを含む、請求項1に記載の方法。
【請求項5】
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記1つ以上のデータパケットの各データパケットにシーケンス情報を配置することを含み、
前記シーケンス情報は、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームの前記シーケンス内の対応位置を特定する、請求項1に記載の方法。
【請求項6】
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記1つ以上のデータパケットの各データパケットのヘッダにシーケンス情報を配置することを含み、
前記シーケンス情報は、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームの前記シーケンス内の対応位置を特定する、請求項1に記載の方法。
【請求項7】
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記1つ以上のデータパケットの各データパケットにシーケンス情報を配置することを含み、
前記シーケンス情報は、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームの前記シーケンス内の対応位置を特定し、
前記シーケンス情報は、前記所与のデータパケットのペイロード内の符号化FECフレームの番号、前記第1のビットレート、前記第2のビットレート、前記ペイロード内のどの符号化フレームが前記ソースフレームに対応し、前記ペイロード内のどの符号化フレームがFECフレームに対応するか、または前記ペイロード内の前記符号化ソースフレームもしくは前記符号化FECフレームのシーケンス識別子、以上のうちのいずれか1つ以上を含む、請求項1に記載の方法。
【請求項8】
前記1つ以上のデータパケットは、1つ以上のユニフォームデータグラムプロトコル(UDP)パケットを含む、請求項1に記載の方法。
【請求項9】
前記1つ以上のデータパケットをメモリに格納すること、またはデータネットワークを介して前記1つ以上のデータパケットを送信することは、前記1つ以上のデータパケットを前記メモリに格納して、前記データネットワークを介して前記1つ以上のデータパケットを送信することを含む、請求項1に記載の方法。
【請求項10】
前記1つ以上のデータパケットをメモリに格納すること、またはデータネットワークを介して前記1つ以上のデータパケットを送信することは、前記データネットワークを介して前記1つ以上のデータパケットを送信することを含み、
前記方法はさらに、前記データネットワークを介した送信のバースト性損失の継続時間を特定することを含む、請求項1に記載の方法。
【請求項11】
前記1つ以上のデータパケットをメモリに格納すること、またはデータネットワークを介して前記1つ以上のデータパケットを送信することは、前記データネットワークを介して前記1つ以上のデータパケットを送信することを含み、
前記方法はさらに、前記データネットワークを介した送信のバースト性損失の継続時間を特定することを含み、
前記1つ以上の前フレームを前記第1のビットレート以下の前記第2のビットレートで符号化して前記1つ以上の符号化FECフレームを生成することは、前記データネットワークを介した送信のバースト性損失の前記特定した継続時間に対応する十分な数の前フレームを符号化することを含む、請求項1に記載の方法。
【請求項12】
前記現フレームを第1のビットレートで符号化して、前記1つ以上の符号化ソースフレームを生成することは、前記現フレームをコーデックの第1のインスタンスにより符号化することを含み、
前記1つ以上の前フレームを、前記第1のビットレート以下の第2のビットレートで符号化して、1つ以上の符号化FECフレームを生成することは、前記1つ以上の前フレームを前記コーデックの第2のインスタンスで符号化することを含む、
請求項1に記載の方法。
【請求項13】
前記複数の未符号化フレームは、1つ以上の映像フレームを含む、請求項1に記載の方法。
【請求項14】
前記複数の未符号化フレームは、ゲームインターフェースからの入力ストリームの1つ以上のフレームを含む、請求項1に記載の方法。
【請求項15】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、2つ以上の音声チャネルに対応する情報を含む、請求項1に記載の方法。
【請求項16】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、左チャネル及び右チャネルに対応する情報を含む、請求項1に記載の方法。
【請求項17】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含む、請求項1に記載の方法。
【請求項18】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記現フレームを符号化することは、前記左及び右チャネル、並びに前記1つ以上の追加チャネルを前記第1のビットレートで符号化することを含み、
前記1つ以上の符号化ソースフレームをパケット化することは、前記符号化した左及び右チャネルを1つ以上の第1のデータパケットに配置することと、前記符号化した追加チャネルを1つ以上の第2のデータパケットに配置することを含む、請求項1に記載の方法。
【請求項19】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記現フレームを符号化することは、前記現フレームの前記左及び右チャネル、並びに前記1つ以上の追加チャネルに対応する情報を前記第1のビットレートで符号化することを含み、
前記1つ以上の前フレームをFECフレームとして符号化することは、前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの組み合わせに対応する情報を前記第2のビットレートで符号化することを含み、
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記現フレームの前記左及び右チャネルに対応する前記符号化した情報、並びに前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの前記組み合わせに対応する前記符号化した情報を、1つ以上の第1のデータパケットに配置することと、前記現フレームの前記符号化した追加チャネルを、1つ以上の第2のデータパケットに配置することを含む、請求項1に記載の方法。
【請求項20】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する情報を含み、
前記現フレームを符号化することは、前記現フレームの前記第1及び第2の左チャネル並びに第1及び第2の右チャネルに対応する情報を前記第1のビットレートで符号化することを含み、
前記1つ以上の前フレームをFECフレームとして符号化することは、前記1つ以上の前フレームの前記第1及び第2の左チャネル並びに第1及び第2の右チャネルの組み合わせに対応する情報を前記第2のビットレートで符号化することを含み、
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記現フレームの前記第1の左チャネル及び第1の右チャネルに対応する前記符号化した情報、並びに前記1つ以上の前フレームの前記第1及び第2の左チャネル並びに第1及び第2の右チャネルの前記組み合わせに対応する前記符号化した情報を、1つ以上の第1のデータパケットに配置することと、前記現フレームの前記第2の左チャネル及び第2の右チャネルに対応する前記符号化した情報を、1つ以上の第2のデータパケットに配置することを含む、請求項1に記載の方法。
【請求項21】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する情報を含み、
前記現フレームを符号化することは、前記現フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、及び前記センターチャネルに対応する情報を前記第1のビットレートで符号化することを含み、
前記1つ以上の前フレームをFECフレームとして符号化することは、前記1つ以上の前フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、及び前記センターチャネルの組み合わせに対応する情報を前記第2のビットレートで符号化することを含み、
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記現フレームの前記第1の左チャネル及び第1の右チャネルに対応する前記符号化した情報、並びに前記1つ以上の前フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、及び前記センターチャネルの前記組み合わせに対応する前記符号化した情報を、1つ以上の第1のデータパケットに配置することと、前記現フレームの前記第2の左チャネル、前記第2の右チャネル、及び前記センターチャネルに対応する前記符号化した情報を、1つ以上の第2のデータパケットに配置することを含む、請求項1に記載の方法。
【請求項22】
前記複数の未符号化フレームは、1つ以上の音声フレームを含み、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果(LFE)チャネルに対応する情報を含み、
前記現フレームを符号化することは、前記現フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、及び前記センターチャネルに対応する情報を前記第1のビットレートで符号化することを含み、
前記1つ以上の前フレームをFECフレームとして符号化することは、前記1つ以上の前フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、前記センターチャネル、及び前記LFEチャネルの組み合わせに対応する情報を前記第2のビットレートで符号化することを含み、
前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームをパケット化することは、前記現フレームの前記第1の左チャネル及び第1の右チャネルに対応する前記符号化した情報、並びに前記1つ以上の前フレームの前記第1及び第2の左チャネル、前記第1及び第2の右チャネル、前記センターチャネル、及び前記LFEチャネルの前記組み合わせに対応する前記符号化した情報を、1つ以上の第1のデータパケットに配置することと、前記現フレームの前記第2の左チャネル、前記第2の右チャネル、及び前記センターチャネルに対応する前記符号化した情報を、1つ以上の第2のデータパケットに配置することを含む、請求項1に記載の方法。
【請求項23】
プロセッサモジュールと、
前記プロセッサに接続されたメモリであって、方法を実施するように構成された実行可能命令を含む前記メモリと、
を含むシステムであって、前記方法は、
現フレーム及び1つ以上の前フレームを含む複数の未符号化フレームを受信または生成することと、
前記現フレームを第1のビットレートで符号化して、1つ以上の符号化ソースフレームを生成することと、
前記1つ以上の前フレームを、前記第1のビットレート以下の第2のビットレートで符号化して、1つ以上の符号化FECフレームを生成することと、
前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームを、1つ以上のデータパケットにパケット化することと
を含み、
前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、システム。
【請求項24】
コンピュータ可読命令を包含する非一時的コンピュータ可読記録媒体であって、前記命令は方法を実施するように構成され、前記方法は、
現フレーム及び1つ以上の前フレームを含む複数の未符号化フレームを受信または生成することと、
前記現フレームを第1のビットレートで符号化して、1つ以上の符号化ソースフレームを生成することと、
前記1つ以上の前フレームを、前記第1のビットレート以下の第2のビットレートで符号化して、1つ以上の符号化FECフレームを生成することと、
前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームを、1つ以上のデータパケットにパケット化することと
を含み、
前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、非一時的コンピュータ可読記録媒体。
【請求項25】
1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームを含むデータパケットを復号化し再構築する方法であって、
複数のデータパケットを受信することであって、前記複数のデータパケットのいくつかのデータパケットは、第1のビットレートで符号化されたシーケンス内のソースフレームと、前記第1のビットレート以下の第2のビットレートでFECフレームとして符号化された前記シーケンス内の1つ以上の前フレームとに対応する符号化情報を含み、前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームは、1つ以上のデータパケットにパケット化され、前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、前記複数のデータパケットを受信することと、
前記複数のデータパケットの前記データパケットから、前記1つ以上の符号化ソースフレーム及び前記1つ以上の前フレームに対応する前記符号化情報を、パッケージ解除することと、
前記1つ以上の符号化ソースフレームを復号化して、1つ以上の復号化ソースフレームを生成することと、
前記シーケンスの所定のソースフレームに対応する符号化情報が前記複数のデータパケットから欠けているか否かを判定することと、
前記所定のソースフレームに対応する、前記複数のデータパケット内の1つ以上の対応符号化FECフレームを識別することと、
前記1つ以上の対応符号化FECフレームを復号化して、1つ以上の復号化FECフレームを生成することと、
前記1つ以上の復号化FECフレームを使用して、前記所定のソースフレームに対応する再構築フレームを生成することと
を含む、方法。
【請求項26】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、符号化音声フレームである、請求項25に記載の方法。
【請求項27】
前記複数のデータパケットを受信することは、ネットワークを介して前記複数のデータパケットを受信することを含む、請求項25に記載の方法。
【請求項28】
前記複数のデータパケットを受信することは、無線リンクを介して前記1つ以上のデータパケットを受信することを含む、請求項25に記載の方法。
【請求項29】
前記複数のデータパケット内の各データパケットは、前記ソースフレーム、及びFECフレームとして符号化された前記シーケンス内の前記1つ以上の前フレームに関する前記シーケンス内の対応位置を特定するシーケンス情報を含む、請求項25に記載の方法。
【請求項30】
前記複数のデータパケット内の各データパケットのヘッダは、前記ソースフレーム、及びFECフレームとして符号化された前記シーケンス内の前記1つ以上の前フレームに関する前記シーケンス内の対応位置を特定するシーケンス情報を含む、請求項25に記載の方法。
【請求項31】
前記複数のデータパケット内の各データパケットは、前記ソースフレーム、及びFECフレームとして符号化された前記シーケンス内の前記1つ以上の前フレームに関する前記シーケンス内の対応位置を特定するシーケンス情報を含み、
前記シーケンス情報は、前記所定のデータパケットのペイロード内の符号化FECフレームの番号、前記第1のビットレート、前記第2のビットレート、前記ペイロード内のどの符号化フレームが前記ソースフレームに対応し、前記ペイロード内のどの符号化フレームがFECフレームに対応するか、または前記ペイロード内の前記符号化ソースフレームもしくは前記符号化FECフレームのシーケンス識別子、以上のうちのいずれか1つ以上を含む、請求項25に記載の方法。
【請求項32】
前記1つ以上のデータパケットは、1つ以上のユニフォームデータグラムプロトコル(UDP)パケットを含む、請求項25に記載の方法。
【請求項33】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の符号化映像フレームである、請求項25に記載の方法。
【請求項34】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、ゲームインターフェースからの入力ストリームの1つ以上の符号化フレームである、請求項25に記載の方法。
【請求項35】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームは、2つ以上の音声チャネルに対応する情報を含む、請求項25に記載の方法。
【請求項36】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームは、左チャネル及び右チャネルに対応する情報を含む、請求項25に記載の方法。
【請求項37】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記左及び右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記1つ以上の追加チャネルに対応する符号化情報を含む、請求項25に記載の方法。
【請求項38】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記左及び右チャネルに対応する符号化情報を含み、
1つ以上の第2のデータパケット内に前記1つ以上の追加チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含む、請求項25に記載の方法。
【請求項39】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記左及び右チャネルに対応する符号化情報を含み、
1つ以上の第2のデータパケット内に前記1つ以上の追加チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記1つ以上の追加チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第1のデータパケットのうちの別の1つ以上のデータパケットから得た前記所定のソースフレームの前記左及び右チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項40】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記左及び右チャネルに対応する符号化情報を含み、
1つ以上の第2のデータパケット内に前記1つ以上の追加チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記左及び右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第2のデータパケットのうちの1つのデータパケットから得た前記所定のソースフレームの前記1つ以上の追加チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項41】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、左チャネル、右チャネル、及び1つ以上の追加チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記左及び右チャネルに対応する符号化情報を含み、
1つ以上の第2のデータパケット内に前記1つ以上の追加チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記左及び右チャネル並びに前記1つ以上の追加チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記左チャネル、右チャネル、及び1つ以上の追加チャネルの前記組み合わせに対応する前記情報から引き出すことを含む、請求項25に記載の方法。
【請求項42】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル及び第2の右チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第2の左チャネル及び第2の右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの前記組み合わせに対応する前記情報から引き出すこと、及び、前記欠落情報を、前記第1のデータパケットのうちの別の1つ以上のデータパケットから得た前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項43】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル及び第2の右チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記第2のビットレートで前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの組み合わせに対応する符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル及び第1の右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの前記組み合わせに対応する前記情報から引き出すこと、及び、前記欠落情報を、前記第2のデータパケットのうちの1つのデータパケットから得た前記所定のソースフレームの前記第2の左チャネル及び第2の右チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項44】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル及び第2の右チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記第2のビットレートで前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの組み合わせに対応する符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルの前記組み合わせに対応する前記情報から引き出すことを含む、請求項25に記載の方法。
【請求項45】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第1のデータパケットのうちの別の1つ以上のデータパケットから得た前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項46】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル及び第1の右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第2のデータパケットのうちの1つのデータパケットから得た前記所定のソースフレームの前記第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項47】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記第2のビットレートで前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの組み合わせに対応する符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、及びセンターチャネルの前記組み合わせに対応する前記情報から引き出すことを含む、請求項25に記載の方法。
【請求項48】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第1のデータパケットのうちの別の1つ以上のデータパケットから得た前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、及び第2の右チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項49】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル及び第1の右チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの前記組み合わせに対応する前記情報から引き出すことと、前記欠落情報を、前記第2のデータパケットのうちの1つのデータパケットから得た前記所定のソースフレームの前記第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する復号化情報と組み合わせることを含む、請求項25に記載の方法。
【請求項50】
前記1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームは、1つ以上の音声フレームに対応し、
前記1つ以上の音声フレームのそれぞれは、第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する情報を含み、
前記ソースフレームに対応する前記符号化情報は、1つ以上の第1のデータパケット内に前記第1の左チャネル及び第1の右チャネルに対応する符号化情報、及び、1つ以上の第2のデータパケット内に前記第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する符号化情報を含み、
前記1つ以上の第1のデータパケットはさらに、前記1つ以上の前フレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの組み合わせに対応する前記第2のビットレートでの符号化情報を含む1つ以上の符号化FECフレームを含み、
前記所定のソースフレームに対応する前記再構築フレームを生成することは、前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルに対応する欠落情報を、前記第1のデータパケットのうちの1つ以上のデータパケットにおける前記所定のソースフレームの前記第1の左チャネル、第1の右チャネル、第2の左チャネル、第2の右チャネル、センターチャネル、及び重低音効果チャネルの前記組み合わせに対応する前記情報から引き出すことを含む、請求項25に記載の方法。
【請求項51】
プロセッサモジュールと、
前記プロセッサに接続されたメモリと、
を備えるシステムであって、前記メモリは、1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームを含むデータパケットを復号化し再構築する方法を実施するように構成された実行可能命令を含み、前記方法は、
複数のデータパケットを受信することであって、前記複数のデータパケットのいくつかのデータパケットは、第1のビットレートで符号化されたシーケンス内のソースフレームと、前記第1のビットレート以下の第2のビットレートでFECフレームとして符号化された前記シーケンス内の1つ以上の前フレームとに対応する符号化情報を含み、前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームは、1つ以上のデータパケットにパケット化され、前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、前記複数のデータパケットを受信することと、
前記複数のデータパケットの前記データパケットから、前記1つ以上の符号化ソースフレーム及び前記1つ以上の前フレームに対応する前記符号化情報を、パッケージ解除することと、
前記1つ以上の符号化ソースフレームを復号化して、1つ以上の復号化ソースフレームを生成することと、
前記シーケンスの所定のソースフレームに対応する符号化情報が前記複数のデータパケットから欠けているか否かを判定することと、
前記所定のソースフレームに対応する、前記複数のデータパケット内の1つ以上の対応符号化FECフレームを識別することと、
前記1つ以上の対応符号化FECフレームを復号化して、1つ以上の復号化FECフレームを生成することと、
前記1つ以上の復号化FECフレームを使用して、前記所定のソースフレームに対応する再構築フレームを生成することと
を含む、システム。
【請求項52】
1つ以上の符号化ソースフレーム及び1つ以上の符号化前方誤り訂正(FEC)フレームを含むデータパケットを復号化し再構築する方法を実施するように構成されたコンピュータ可読命令を包含する非一時的コンピュータ可読記録媒体であって、前記方法は、
複数のデータパケットを受信することであって、前記複数のデータパケットのいくつかのデータパケットは、第1のビットレートで符号化されたシーケンス内のソースフレームと、前記第1のビットレート以下の第2のビットレートでFECフレームとして符号化された前記シーケンス内の1つ以上の前フレームとに対応する符号化情報を含み、前記1つ以上の符号化ソースフレームの内の一つの符号化ソースフレームに対する情報の一部を前記1つ以上の符号化FECフレームとともに第1のパケットに入れ、前記一つの符号化ソースフレームに対する情報の残りを第2のパケットに入れることにより、前記1つ以上の符号化ソースフレーム及び前記1つ以上の符号化FECフレームは、1つ以上のデータパケットにパケット化され、前記第2のパケットには前記符号化FECフレームが全く含まれないが、前記第1のパケットに含まれる前記符号化FECフレームにおける情報が、前記第1のパケットおよび前記第2のパケットにおける前記一つの符号化ソースフレームに対する情報を再構築するのに十分である、前記複数のデータパケットを受信することと、
前記複数のデータパケットの前記データパケットから、前記1つ以上の符号化ソースフレーム及び前記1つ以上の前フレームに対応する前記符号化情報を、パッケージ解除することと、
前記1つ以上の符号化ソースフレームを復号化して、1つ以上の復号化ソースフレームを生成することと、
前記シーケンスの所定のソースフレームに対応する符号化情報が前記複数のデータパケットから欠けているか否かを判定することと、
前記所定のソースフレームに対応する、前記複数のデータパケット内の1つ以上の対応符号化FECフレームを識別することと、
前記1つ以上の対応符号化FECフレームを復号化して、1つ以上の復号化FECフレームを生成することと、
前記1つ以上の復号化FECフレームを使用して、前記所定のソースフレームに対応する再構築フレームを生成することと
を含む、非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[優先権の主張]
本特許請求は、2016年8月1日に出願された米国特許出願第15/235,508の優先権の利益を主張し、当開示全体は、参照により本明細書に組み込まれるものとする。
【0002】
本開示は、ネットワークを介したデータ転送に関する。特に、本開示の態様は、パケット交換ネットワークにおいて低信頼トランスポートプロトコルを使用して輻輳制御を行うシステム及び方法に関する。
【背景技術】
【0003】
デジタルストリーミングサービス及び様々なクラウドベースコンピューティングソリューションの普及が進むにつれて、リモートデバイス間で大量のデータを迅速かつ正確に転送する機能は、重要な役割となっている。インターネット、広域ネットワーク(WAN)、またはローカルエリアネットワーク(LAN)などのネットワークの共有リソースを通して宛先システムへデジタルデータを送信するには通常、固定長または可変長であり得るパケットと呼ばれるフォーマットされたブロックにデータを配置することを伴う。各データパケットは通常、宛先に配信される基本ユーザデータを有するペイロードすなわち本体、並びに一般にデータパケットのヘッダ内に少なくとも部分的に含まれる、ルーティング及び制御目的で使用される特定の補足情報を含む。概して、ネットワーク、送信システム、及び受信システムは、この補足情報を使用して、目的の宛先へペイロードの適切なルーティング及び配信を確保する。
【0004】
このようなパケット交換ネットワークを介したデータ転送でしばしば避けられない結果に、パケット損失があり、これは、1つ以上のデータパケットがそれらの宛先に正しく届かなかった時に発生する。パケット損失は、チャネル輻輳、信号劣化、及び他の理由を含む様々な要因により発生し得る。ネットワークチャネル内の利用可能な帯域幅を効率的に使用しながら、パケット損失を引き起こす特定のネットワーク状況を防止するために、様々な誤り訂正技術が開発されてきた。さらに、パケット損失に対処するツールを包含し得る様々なトランスポートプロトコルがあり、パケット損失が発生した時にパケット損失に対処するのに使用される特定の方法は、データ転送中に使用される特定のトランスポートプロトコルに依存する。一般に、これらのトランスポートプロトコルは、高信頼プロトコルと低信頼プロトコルの2種類に分類することができ、それぞれが特定のトレードオフを示し、任意のインスタンスにおいて使用されるプロトコルの具体的な選択は、データ転送の特質に依存し得る。
【0005】
高信頼プロトコルは、パケット損失のイベントで欠落したパケットを再送して、各データパケットがその宛先に順序通りに配信される保証を包含する。高信頼プロトコルは、必ずではないが多くの場合、コネクション型プロトコルであり、配信保証は通常、特定の通信セッションの受信者から送信者へ戻るバックチャネルを確立することにより達成され、受信者はバックチャネルを使用して、パケットが正しく配信されたことを確認するある種の肯定応答レシートを送信し得る。データパケットがそれらの宛先に正しく届かなかったことが示された場合、送信者は、これらの肯定応答を使用して、再送プロセスに誘導し得る。高信頼プロトコルの普及している有名な例としては、伝送制御プロトコル(TCP)があり、これもコネクション型である。テキストベースの電子メールの送信、デジタルコンテンツのダウンロード、及び宛先のシステムで音声/映像をバッファリング可能なメディアストリーミングサービスなど、データの正確な転送が一番の懸念事項であり、データパケットが正しく配信されたことを確認するためにある程度の遅延は許容され得るタスクには、TCPなどの高信頼プロトコルがよく適している。残念ながら、データ検証特性及びデータの再送は、比較的大きなオーバーヘッドをもたらし、数多くの高信頼プロトコルは、生の音声及び/または映像ストリーミング、オンラインビデオゲーム、並びにインターネット電話などのリアルタイムのデータ転送を含むタイムクリティカルなアプリケーションにとって望ましくないものとなる。
【0006】
対照的に、低信頼プロトコルは、一般に、前述のような特定のパケットに対するデータ配信確認の類はなしで済ませ、一般に、各パケットがその宛先に届くことを保証しない、並びにパケットが正しい順序で配信されることを確保しないことを特徴とする。低信頼プロトコルは、必ずではないが多くの場合、コネクションレス型であり、通常はいずれの特定の通信セッション中も固定チャネルを確立しない。各データパケットは代わりに、各データパケットに含まれる補足情報に基づいて、独立にルーティングされ得る。低信頼プロトコルの普及している有名な例としては、ユーザデータグラムプロトコル(UDP)があり、これもコネクションレス型である。UDPのような低信頼プロトコルは、上記の信頼性特性を免除することによりオーバーヘッドを比較的低減させたことから、これらのプロトコルは、上記のリアルタイムアプリケーションのような待ち時間の最小化が一番の懸念事項である時間制約付きアプリケーションにより適している。
【0007】
低信頼プロトコルは一般に、データパケットの再送を差し控えることから、低信頼サービスを使用してデータを転送する場合には、パケット損失に対処するために前方誤り訂正(FEC)として知られる技術が一般的に使用される。FECは、適切に配信されなかったソースパケットを送信者が再送する必要なしに、失われたデータを独立的に再構築する能力を、受信者デバイスに提供する。前方誤り訂正が使用される場合、元のソースデータは通常、FECパケットの形態で送信者側において冗長的に符号化され、ソースパケットと同時に受信者へ送信される。ソースパケット損失のイベント発生時、受信者デバイスは、再送を待つ必要なしに、FECパケットに含まれる冗長符号化データを利用して、損失データを再構築し得る。
【0008】
損失の種類の中でも、WiFi(登録商標)などの低信頼のプロトコル及び接続は、約50ミリ秒の期間接続が失われる、いわゆるバースト性損失に、特に脆弱である。前方誤り訂正の既存の方法は、リードソロモンFECを含み、この方法では、所定のソースフレームの2つのリードソロモン符号化版が、送信されるソースフレームの10ミリ秒以内のFECフレームとして送信される。リードソロモン符号化により、同じ解像度で元のソースフレームの再構築が可能となる。しかしながら、接続損失が10ミリ秒以上続いた場合、ソースフレーム及びFECフレームの両方が失われ得る。ソースフレームまたはFECフレームのいずれかが失われても中断は発生しないが、両方とも失われると再構築は不可能となる。従って、先の方法は、非常に短時間の接続損失を訂正するのに役立ち得るが、より長いバースト性中断に対処できる誤り訂正が求められている。
【0009】
重要なことには、ネットワーク状態は多くの場合経時的に変化し、ネットワークチャネルを介して送信者が利用可能な最大ビットレートが、チャネル上の現在の負荷に基づいて変わる原因となる。送信者システムがチャネルの現在利用可能な帯域幅を超えるビットレートでデータパケットを送信しようとする場合、それに応じて、深刻なパケット損失を引き起こす輻輳状態が起こり得る。TCPなどの高信頼データ転送を伴う時間制約の低いアプリケーションでは、損失データの再送が保証されているため、これは許容され得る。しかしながら、数多くのリアルタイムアプリケーション及び低信頼転送を伴う他のアプリケーションでは、パケット損失が受信者により損失データを再構築できない程度である場合もあり、これにより信号のドロップアウトなどの望ましくない結果が生じるため、これは受容され得ない。一方、代わりに最大利用可能ビットレートが送信者により提供されるビットレートをはるかに超える場合、ネットワークチャネルの全伝送能力が非効率的に利用され、結果的に受信者側の信号品質が不必要に劣り得るため、この状況も望ましくはない。従って、誤り訂正は、帯域幅容量を超えるほど多くの誤り訂正パケットにより新たなパケット損失を生み出すことなく、パケット損失の有効な補償率を確保するために、ネットワーク状態に動的に適応できなければならない。
【0010】
残念ながら、容認できないパケット損失をもたらす輻輳状態を引き起こすことなく、ネットワークチャネルの利用可能な帯域幅を効率的に利用するように、低信頼プロトコルを使用してデータを転送することは、相当な課題である。従来の輻輳制御技術は、多くの場合、トランスポート層に組み込まれた送信者へのフィードバックを有するTCPなどの高信頼プロトコルにのみ適しているが、ユーザによりトランスポート層を介して独立的に追加されない限り必要なフィードバックに通常欠けるUDPなどの多数の低信頼プロトコルには、効果がない。さらに、輻輳点に至るビットレートの増加から生じるパケット損失は、TCPまたは他の高信頼プロトコルを使用してデータを再送する時間制約の低いアプリケーションでは許容され得るが、数多くのリアルタイムアプリケーションでは、受信者がデータを再構築できなくなるため、受容され得ない。
【0011】
従って、当技術分野では、UDP、並びに周期的及びバースト性損失を経験する他の低信頼トランスポートプロトコルと共に使用するのに適した、動的な前方誤り訂正、並びに効率的な輻輳制御及び輻輳回避技術が求められている。本開示の態様は、このような観点から生じる。
【発明の概要】
【0012】
本開示の特定の実施態様によれば、フレームを符号化し送信する方法は、シーケンス内の現フレーム及びシーケンス内の1つ以上の前フレームを含む複数の未符号化フレームを受信することまたは生成することを含み得る。現フレームは第1のビットレートで符号化され、1つ以上の符号化ソースフレームが生成される。1つ以上の前フレームは、第1のビットレート以下の第2のビットレートで符号化され、1つ以上の符号化FECフレームが生成される。1つ以上の符号化ソースフレーム及び1つ以上の符号化FECフレームは、1つ以上のデータパケットにパケット化され、これらはメモリに格納され得る、またはデータネットワークを介して送信され得る。1つ以上のデータパケットは、符号化FECデータを含まないいくつかのパケットを含み得るデータパケットのストリームの一部であり得る。
【0013】
本開示の特定の実施態様によれば、送信者コンピューティングシステムは、少なくとも1つのプロセッサユニットと、少なくとも1つのプロセッサユニットに接続された少なくとも1つのメモリユニットとを含み得る。少なくとも1つのプロセッサユニット及び少なくとも1つのメモリユニットは、前述の符号化及び送信方法を実行するように構成され得る。
【0014】
本開示の特定の実施態様によれば、非一時的コンピュータ可読媒体は、コンピュータ可読命令を包含し得る。コンピュータ可読命令は、実行された場合、前述の符号化及び送信方法を実施するように構成され得る。
【0015】
本開示の特定の実施態様によれば、データパケットの復号化及び再構築方法は、複数のデータパケットを受信することを含むことができ、複数のデータパケットはそれぞれ、第1のビットレートで符号化されたシーケンス内のソースフレームと、第1のビットレート以下の第2のビットレートで前方誤り訂正(FEC)フレームとして符号化されたシーケンス内の1つ以上の前フレームとに対応する符号化情報を含む。ソースフレーム(複数可)及び1つ以上の前フレーム(複数可)に対応する符号化情報は、複数のデータパケットそれぞれからパッケージ解除される。1つ以上の符号化ソースフレームは復号化され、1つ以上の復号化ソースフレームが生成される。シーケンスの所定のソースフレームに対応する符号化情報が複数のデータパケットから欠けているか否かに関して、判定が行われる。所定のソースフレームに対応する、複数のデータパケット内の1つ以上の対応符号化FECフレームが識別され、復号化されて、1つ以上の復号化FECフレームが生成される。次に1つ以上の復号化FECフレームを使用して、所定のソースフレームに対応する再構築フレームが生成される。復号化ソースフレーム(複数可)及び再構築された欠落フレームは次に、メモリに格納され得る、及び/またはディスプレイで順序通りに提示され得る。
【0016】
本開示の特定の実施態様によれば、受信者コンピューティングシステムは、少なくとも1つのプロセッサユニットと、少なくとも1つのプロセッサユニットに接続された少なくとも1つのメモリユニットとを含み得る。少なくとも1つのプロセッサユニット及び少なくとも1つのメモリユニットは、前述の復号化及び再構築方法を実行するように構成され得る。
【0017】
本開示の特定の実施態様によれば、非一時的コンピュータ可読媒体は、コンピュータ可読命令を包含し得る。コンピュータ可読命令は、実行された場合、前述の復号化及び再構築方法を実施するように構成され得る。
【図面の簡単な説明】
【0018】
本開示の教示は、添付図面と合わせて以下の詳細説明を考察することにより、容易に理解され得る。
【0019】
図1】本開示の特定の態様による、例示的なデータ転送及び前方誤り訂正技術の概略図である。
図2】本開示の特定の態様による、例示的な誤り訂正技術のフロー図である。
図3A】現存する前方誤り訂正方法によるデータパケット構造を例示するブロック図である。
図3B】本開示の態様による前方誤り訂正の実施態様に従ったデータパケット構造を例示するブロック図である。
図4】本開示の特定の態様による、ストリーミングデータ送信における前方誤り訂正の詳しい実施例のフロー図である。
図5】本開示の特定の態様による、サラウンドサウンド送信の状況で誤り訂正を実施するのに有用なデータパケット構造のブロック図である。
【発明を実施するための形態】
【0020】
以下の詳細説明は例示目的で多数の具体的な詳細を含むが、いずれの当業者も、以下の詳細に対する多数の変形及び変更が本発明の範囲内であることを理解するであろう。従って、後述される本開示の例示的な実施態様は、特許請求の範囲に記載される本発明に対し、普遍性を損なうことなく、また限定を課すことなく、明記される。
【0021】
[序説]
本開示の態様は、特別にパッケージ化されたソースフレーム及びFEC履歴フレームを使用して、バースト性パケット損失を補償することに関し、これはUDPなどの低信頼トランスポートプロトコルと共に使用され得る。特に、WIFI接続はパケット損失のバーストに対して脆弱である。所定の現フレームに対して、前フレームは、より低いビットレートで第2の別個のコーデックにより符号化され、現フレームと共に送信される。これらの前フレームは、FECフレームと称される。FECフレームに対し低いビットレートを使用することで、パケットを送信するための追加帯域幅要件が軽減される。ソースフレームが失われた場合、FECフレームを使用して、ソースフレームが再構築される。再構築または復号化されたFECフレームはソースフレームよりも低い解像度を有し得るが、再構築の必要性が断続的である場合(例えば音声の事例で、50ミリ秒未満の間隔での中断)、ソースフレームのビットレートと再構築フレームのビットレートの差異は、人間の知覚の閾値未満である。従って、FECフレームが、全体的な知覚品質を低下させることはない。知覚される音声品質または帯域幅要件を変えるために、各UDPパケット共に送信されるFECフレームの数及びビットレートを調整することができる。UDPパケットヘッダは、ソースフレームのビットレート及びシーケンスID、並びにFECフレームのビットレート及びIDについての関連情報を含み得る。
【0022】
特定の態様によれば、1つ以上の送信者デバイスは、UDPなどの低信頼トランスポートプロトコルを使用して1つ以上の受信者デバイスへデータパケットを送信し得る。データパケットは、所望のソースデータを含む符号化ソースフレーム、並びにストリーム内の前のソースパケットのうちの1つ以上が1つ以上の受信者デバイスに届かなかったイベントにおける前方誤り訂正のために、前フレームからのソースデータの冗長性を含む符号化FECフレームの両方を含み得る。定期的なフィードバックレポートが、1つ以上の受信者デバイスから1つ以上の送信者デバイスへ送信され得る。フィードバックレポートは、対応期間中のパケット損失を識別することができ、送信者は、フィードバックレポートを使用して、期間中にパケット損失が発生したか否かを特定し得る、及び/または対応期間中のパケット損失の範囲を特定し得る。このようなフィードバックは、バースト性パケット損失のおおよその間隔を特定するのに役立ち得る。
【0023】
特定の態様によれば、1つ以上の送信者デバイスは、定期的なフィードバックレポートを使用して、1つ以上の受信者デバイスに送信されるストリーム内のデータパケットのビットレートの態様を調整し得る。ビットレートの態様は、受信者デバイスがソースデータを取得する能力を最適化するように、調整され得る。特定の態様では、パケット損失が許容レベル内であることを示すフィードバックレポートに応じて、FECパケットのビットレートは増加され得、同時に、初期フィードバックレポートに応じて、ストリーム内のソースパケットの並行ビットレートは維持される。特定の態様によれば、誤り訂正に使用されるFECパケットの数のみを増加させることによりビットレートは調整され得るため、たとえビットレートの増加が輻輳及びパケット損失の増加をもたらしたとしても、1つ以上の受信者デバイスは、ソースデータを再構築することが可能であり得る。例えば、ソースパケットに対するFECパケットの比が増加し得るため、配信中のソースパケットの損失により失われたデータを再構築するのに十分な数のFECパケットが、無事に配信される可能性は高い。
【0024】
[さらなる詳細説明]
ここで図1を参照すると、本開示の特定の態様による、データ転送及び前方誤り訂正(FEC)技術の説明的実施例が示される。図1の実施例では、1つ以上の送信者デバイス102は、ネットワーク106を介して1つ以上の受信者デバイス104へデータを送信することができ、データは、複数のデータパケット108の形態で送信され得る。データパケット108は、UDPなどの低信頼プロトコルを使用して送信されるデータグラムであり得、各パケット108の配信もパケット108の順番通りの配信も、プロトコルにより保証されていない。従って、パケット損失のイベント時、送信者デバイス102は失われたパケットを再送せず、むしろ受信者デバイス104が、使用される特定のFEC技術によりデータストリーム内に符号化された冗長性を使用して、失われたソースデータを再構築するように試み得る。
【0025】
図1に示されるように、データパケット108は、受信者デバイス104に配信される元のソースデータ110を含むソースパケット(図1の斜線ボックス)と、利用可能な他のソースパケットまたはパリティパケットが十分にあるならば任意の失われたソースパケットの代わりとなり得る情報を含むパリティパケットであるFECパケット(図1の白/空白ボックス)との両方を含み得る。FECパケットは、元のソースデータ110の冗長性を含むことができ、ソースパケットのうちの1つ以上が、例えばネットワーク106で欠落したという理由で、受信者104へ正しく届かなかったというイベント発生時には、受信者デバイス104はFECパケットを使用して、ソースデータ110を再構築し得る。送信データが音声及び映像ストリームを含む特定の実施態様では、データパケット108はさらに、前述の両種類の音声パケット及び映像パケットの両方を含むことができ、例えばデータパケット108は、音声ソースパケット、音声FECパケット、映像ソースパケット、及び映像FECパケットを含むことができ、音声パケットは一般に映像パケットよりも小さくあり得る(すなわちより少ない量のデータを含み得る)。具体的には、音声パケットには、ステレオソースパケット、ステレオFECパケット、5.1サラウンドサウンドソースパケット、5.1サラウンドサウンドFECパケット、または他の音声システムの音声パケットも含まれ得る。
【0026】
特定の実施態様では、ソースデータ110は、受信者デバイス104へリアルタイムで送信されるデータストリームであり得、ソースデータ110は、送信者デバイス102上で実行されるアプリケーションにより生成され得る。このような実施態様では、リアルタイムソースデータ110は、順次出力されるデータの複数のフレームから構成され得、フレームはソースデータを生成するアプリケーションにより定義され得る。例えば、ソースデータ110は、ビデオゲーム、ビデオ電話プログラム、または他の音声/映像(A/V)ソースプログラムなど、送信者デバイス102上で実行されるアプリケーションから出力されるリアルタイムのA/Vストリームであり得、アプリケーションが各フレームを定義し得る。
【0027】
図1の実施例では、例示されるソースデータ110のブロックは、例えば単一A/Vフレームといった単一フレームに対応し得、これに対し、複数のソースパケット及びFECパケットが生成され、ネットワーク106を介して受信者デバイス104へ送信される。データのストリームは、送信者デバイス102においてシーケンスで生成され得る複数のフレーム110から構成され得、受信者デバイス104へ送信するために、フレームごとに複数のデータパケット108が形成され得る。
【0028】
UDPまたは別の低信頼プロトコルを使用してデータが送信される場合、データパケット108、例えばデータグラムは、ネットワーク106により異なるそれぞれの経路を介してルーティングされ得、順序関係なく受信者デバイスに到着し得ることに留意されたい。受信者デバイス104におけるデータの再構築を容易にするために、データパケット108のそれぞれは、送信者デバイスにより特定の識別情報でスタンプされてもよい。例えば、各データパケット108は、シーケンスにおいてどのフレームにデータパケットが属するかを示す、例えばフレーム番号といったフレーム識別子、並びに各フレーム内で(及び/または複数のフレームにわたって)シーケンスにおけるどの場所にデータパケットが属するかを示す、例えばシーケンス番号といったシーケンス識別子で、スタンプされてもよい。従って、送信者デバイス102は、形成された新たなデータパケットごとにシーケンス番号を増分し得、形成された新たなフレームごとに、データパケットのフレーム番号を増分し得る。任意で、データストリームが音声成分及び映像成分の両方を有するリアルタイムデータストリームである実施態様において、データパケット108は、例えばパケットが音声パケットであるかまたは映像パケットであるかを識別する種類識別子などのさらなる識別情報でも、スタンプされてもよい。データパケット108はまた、例えばソースフレームのビットレート、FECフレームのビットレート、ペイロード内のどの符号化フレームがソースフレームに対応し、ペイロード内のどの符号化フレームがFECフレームに対応するかなど、フレームの特性に関する情報といったメタデータを含み得る。このようなメタデータは、データパケット108のヘッダに含まれ得る。受信者デバイス104は、各パケットにスタンプされたこの補足情報に従って、データを組み立てることができ、従って、例えば受信者側のエンドユーザに提示するようにデータを復号化することができる。
【0029】
図1に示されるように、ソースパケットのうちの1つ以上がネットワーク106で欠落した、あるいはそれらの宛先に届かなかったというパケット損失のイベント発生時、受信者デバイス104は、送信者デバイス102による再送なしに、冗長符号化FECパリティパケットを利用して、ソースデータ110を再構築し得る。異なるアルゴリズムを使用して、1つ以上のソースパケットから任意の数のFECパリティパケットを生成することができることに留意されたい。特定の実施態様では、FECデータは、消去コードを使用して生成され得る。特定の実施態様では、誤り訂正スキームは、受信者に届かなかったソースパケットごとに、特定のデータセットを再構築するのに1つのFECパケットを必要とし得るものであり得る。例えば、受信デバイスに配信されたデータの特定のフレームに関して、FEC技術は、パケット損失のイベント発生時にフレームを完全に再構築するために、受信デバイスに正しく届いたFECパケットの数が、失われたソースパケットの数と少なくとも等しくある必要があるものであり得る。等しくない場合、フレームは破損したものになり得る。言い換えると、N個のソースパケットが存在し、M個のパリティパケットが生成された場合では、全部で少なくともN個のパケット(ソース及びパリティ)が受信されると、ソースデータを回復することができる。図1の例示では、送信者により送信されたソースパケットの数は、送信されたFECパケットの数に等しい、すなわち、例示を簡潔にすると、送信者102により送信されたFECパケットに対するソースパケットの比は、単純に1:1である。しかしながら、後述されるように、数多くの他の比が使用されてもよいこと、及び本開示の特定の態様に従って、FECパケットに対するソースパケットの比は動的であり、ストリーム中に経時的に変化してもよいことに、留意されたい。
【0030】
データ転送中に利用可能な帯域幅を効率的に利用する方法を最適化するため、並びに許容できないパケット損失を引き起こすようなやり方でネットワークチャネルに負荷をかけ過ぎることを避けるために、送信者デバイス102及び/または受信者デバイス104は、本開示の態様による輻輳制御アルゴリズムを実施するように構成され得る。
【0031】
図2は、送信者201での発生から始まり、ネットワーク202を介して受信者203に至る、本開示の態様による前方誤り訂正の全体的なプロセスフローの一実施例を示す。まず送信者側201で、ソースフレーム生成器212及びFECフレーム生成器214がそれぞれ、ソースフレーム222及びFECフレーム224の1つまたは集合を作成する。様々な実施態様では、ソースフレーム222及びFECフレーム224に符号化される予定のデータには、音声データ、映像データ、ゲームシステムの制御入力ストリーム、または送信もしくは格納される必要のあり得る他のデータシーケンスが含まれ得る。より具体的には、フレームは、音声ソースデータ、音声FECデータ、映像ソースデータ、及び映像FECデータを含むことができ、音声データは一般に映像データよりも小さくあり得る(すなわちより少ない量のデータを含み得る)。さらに、音声データには、ステレオソースデータ、ステレオFECデータ、5.1サラウンドサウンドソースデータ、5.1サラウンドサウンドFECデータ、または他の音声システムの音声データが含まれ得る。
【0032】
次に、226に示されるように、ソースフレーム222及びFECフレーム224が符号化される。限定ではなく例示として、送信者側201のコンピュータシステムは、同じコーデックの2つのインスタンスを実施して、ソースフレーム222及びFECフレーム224を符号化し得る。ソースフレーム及びFECフレームをそれぞれ生成するため、または復号化されたものをそれぞれ生成するために、2つの別個のハードウェアコーデック、2つの別個のソフトウェアコーデック、ハードウェアコーデック及びソフトウェアコーデックの組み合わせを使用して、本開示を実施することもできる。さらに、これらの教示と一致する、当業者が生み出し得るコーデックのさらなる組み合わせが存在し得る。
【0033】
226における符号化プロセスは、ソースフレーム222を、FECフレーム224よりも高いビットレートで符号化する。FECフレームに対しより小さいビットレートを使用することにより、符号化ソースフレーム及び符号化FECフレームを送信するために使用するデータ量が低減される。FECフレーム符号化ビットレートに対するソースフレーム符号化ビットレートの比は、受信側における復号化フレームの最低許容品質に依存する。例えば、ソースビットレートが64kbpsであり、コンテンツが低品質の発話である場合、FECビットレートは16kbpsに低下し得る。同じ事例でソースビットレートが128kbpsである場合、FECビットレートは依然として16kbpsであり得、比は8:1となる。限定ではなく例示として、FECフレームビットレートに対するソースフレームビットレートの比は、約1から約10の間、または約1.5から約8の間であり得る。他の比も可能であり、本開示の教示の範囲内である。
【0034】
次に、送信者システム201は、符号化ソースフレーム及び符号化FECフレームを、ネットワーク202を介して送信するために、符号化フレームを1つ以上のデータパケット240にパケット化するパケット化プロセス230にかける。1つ以上のデータパケット240は、1つ以上のソースフレーム222及び1つ以上のFECフレーム224に対応した符号化データを含む。特定の実施態様では、データパケットは、ユニフォームデータグラムプロトコル(UDP)パケットであり得る。開示される要素を実施するのに当業者が利用できる他のパケット化プロトコルにも、開示される本発明は適用される。さらに、データパケット240の特定の実施態様は、受信したパケット240を受信者が正しく順序付けることを可能にする識別情報をさらに含み得る。識別情報は、ペイロード内の符号化ソースフレームまたは符号化FECフレームのシーケンス識別子または番号、所定のデータパケットのペイロード内の符号化FECフレームの番号、ソースフレームのビットレート、FECフレームのビットレート、ソースフレームに対応するペイロード内の符号化フレーム(複数可)の識別情報、またはFECフレームに対応するペイロード内の符号化フレーム(複数可)の識別情報を含み得るが、これらに限定されない。さらに、この識別情報は、パケット240のヘッダに配置され得る。さらに、当業者は、本開示の教示に一致する、フレームの順序を特定する別の識別スキームを使用することができる。
【0035】
ソースフレームコーデックのビットレートは、FECフレーム生成器コーデックのビットレートよりも高くあり得る。音声の特定の事例では、ソースフレームコーデックを毎秒64キロビットのビットレートで作動させ、一方、FECフレームコーデックを毎秒16キロビットのビットレートで作動させることができる。これにより、およそ4つのFECフレームが、1つのソースフレームと同じデータ量をパケット内で占めることが可能になる。さらに、特定の実施態様では、様々な期間のバースト性損失を補償するために、データパケット240内のソースフレームごとにパケット化されたFECフレームのビットレート及び数が、動的に調整され得る。FECフレームの数の動的な調整を実施する1つの特定の方法は、所定のパケットに追加されるFECフレームの数を、バースト性損失期間により失われたフレームを補償するために必要なフレームの数と一致させることである。フィードバックは、受信者203から送信者201へ返される返却パケットの形態で届き得る。
【0036】
限定ではなく例示として、受信者システム203は、受信したパケット内のパケットシーケンスメタデータを分析して、損失したパケットを特定し、パケット損失を時間の関数として追跡し得る。バースト性パケット損失は、比較的短期間であるが大体一定の時間間隔で発生するパケット損失の急激な増加に基づいて、特定され得る。受信者システムは、ある時間窓にわたりパケット損失データを集約し、パケット損失の急上昇の事象間の平均間隔及び/またはそのような急上昇の継続時間を特定し、そのような情報を送信者システム201に返信し得る。次いで送信者システムは、平均パケット損失情報を使用して、ソースフレーム212及びFECフレーム214を符号化するためのビットレートを調整し得る。送信者はまたこの情報を使用して、データパケット240において、ソースフレームごとにパケット化されるFECフレームの数を調整し得る。
【0037】
バースト性損失の長さは、受信者側でソースフレームのシーケンス番号を調べることにより、検出され得る。番号の実施例として、ソースフレームN及びソースフレームN+4が受信されたが、その間は受信されなかった場合、バースト性損失の長さは、3フレームであり、各フレームが10ミリ秒である場合、30ミリ秒である。上記のように、受信者システム203は、ある時間窓にわたりバースト性損失継続時間を平均化し、当時間窓に関して特定された平均バースト性損失継続時間を、送信者システム201へ返信し得る。これに応じて、送信者システムは次に、ソースフレーム及びFECフレームの符号化ビットレートを調整し得る。ビットレートはまた、FECフレームの利用可能な総帯域幅及び所望数に基づいて調整されてもよい。例えば、送信者201と受信者203との間でFECフレームに利用可能な帯域幅が200kbps存在し、FECフレームの所望数が4から5に変化した場合、送信者は、FECフレームを符号化するビットレートを、50kbpsから40kbpsに変更し得る。
【0038】
パケット240は、ネットワーク202を介して送信される前に、一時的にメモリバッファ245に格納され得る。図2はネットワーク202を介した符号化データの送信を具体的に示しているが、パケット240が、送信されるのではなく、ハードドライブ、CD、フラッシュドライブ、またはメモリの他の形態など、一時的バッファ245以外のメモリのある形態に格納される実施態様も、本開示に包含される。データパケット240がメモリに格納され、かつネットワーク202を介して送信される実施態様も、本開示に包含される。
【0039】
ネットワーク202を介した送信は、WiFiを含む無線通信の任意の形態を含み得る。図1に示されるように、ネットワーク202を介した送信は、周期的に信頼性が低くなり得るため、送信された全てのパケット240がその後受信者203に届き得るとは限らない。特に、無線通信は、シーケンス内の複数のパケットが失われるバースト性損失を起こしやすくあり得る。この損失は、約50ミリ秒の送信中断を表す。本開示の別の箇所で論じられたように、既存の前方誤り訂正方法は、リードソロモン訂正を含み、これはバースト性損失の発生中はさほど頑強ではない。
【0040】
パケットは、受信者203に届くと、250に示されるように、符号化ソースフレームデータ262及び符号化FECフレームデータ264にパッケージ解除され得る。本開示の態様では、符号化フレームデータ262及び264は、パッケージ解除プロセス270を受け得る。このパッケージ解除プロセス270では、フレームデータは分析され、前に受信されたフレームのキュー290と比較され、シーケンス内のいずれかのフレームが欠けていないかが特定される。フレームが欠けているか否かは、既知の、もしくは特定可能なシーケンス番号、または各フレームに対応付けられたその他の識別情報を調べることにより、判定され得る。識別情報は次いで、キュー290内のフレームの位置を特定するために使用され得る。これは、識別特徴またはシーケンス番号を、キュー290内に既に存在するフレームと比較することにより、実施することができる。さらに、当業者は、本開示の教示に一致する、フレームの順序を特定する別の識別スキームを使用することができる。
【0041】
受信されたソースフレームデータ262及び/またはFECフレームデータ264は、復号化/再構築プロセス274中に復号化され得る。キュー290の欠けている任意のソースフレームは、復号化/再構築プロセス274により、復号化されたFECフレームデータ264から再構築され得る。一般に、ソースフレームデータ262は、再パッケージ後すぐに復号化され、出力フレーム280としてキュー290に追加される。しかしながら、各受信パケット240内のFECフレームデータをすぐに復号化する必要はない。代わりに、必要に応じて欠けているソースフレームを再構築するのに適した1つ以上のFECフレームを提供するように、符号化FECフレームデータは、バッファ内に格納され、必要に応じて復号化されてもよい。あるいは、FECフレームデータ264は、パッケージ解除された後に復号化され、結果得られるFECフレームは、必要となるまでバッファ内に格納されてもよい。対応ソースフレームが受信され復号化されると、受信者システムは、バッファからFECフレームを削除し得る。欠けている対応ソースフレームと置き換えるために、FECフレームは、出力フレーム280としてキュー290に追加されてもよい。次いで出力フレーム280は、キュー290から出力295として送信され、例えば、メモリ内に格納される、及び/または音声もしくは映像表示などの出力デバイスにより提示される、あるいは、例えばビデオゲームなどのアプリケーションの制御入力として使用される。FECフレームデータは、必要な時にのみ復号化され、すなわち受信された全てのFECフレームが復号化される必要はないことに留意されたい。
【0042】
本開示の別の場所で述べられたように、図2に示される実施態様は、符号化されていない映像データのストリームに適用することができる。一般に、映像フレームは、Iフレーム、Pフレーム、及びBフレームの3種類のうちの1つに圧縮され得る。Iフレーム、すなわちイントラ符号化ピクチャは、圧縮性の最も低い完全指定フレームである。Pフレーム、すなわち予測ピクチャは、前のフレームからの変化に関する情報を含む。最後に、Bフレーム、すなわち双予測ピクチャは、フレーム間の変化に関する情報を含む。後者の2種類のフレームは、他の種類のフレームが復号化されることを必要とする。開示される本発明は、映像誤り訂正の実施態様では、映像ストリームが最小の帯域幅制約、最小のIフレーム損失、比較的低いフレーム間移動を有し、バースト性損失を被った時に、特に効果的である。
【0043】
さらに、図2に示される方法は、ゲームの入力ストリームにも適用することができる。具体的には、開示される本発明の実施態様は、符号化されたゲームインターフェース入力ストリームに、バースト性損失からの頑強な保護を提供する。当業者は、バースト性損失を経験し得る低信頼ネットワークを介した他のデータストリームの適用において、開示される本発明の方法を具現化することができる。
【0044】
図3A〜3Bは、既存の前方誤り訂正を、本明細書において開示されるものと比較する。リードソロモンとして知られている既存の前方誤り訂正スキーム301では、図3Aに示されるように構成されたいくつかのパケットが、受信者へ送信される。まず、IPヘッダ312、UDPヘッダ314、及びコンテンツのフレームに対応するバイトデータペイロード316を含むパケット310が、ネットワークを介して受信者へ送信される。示される実施例では、IPヘッダ及びUDPヘッダは共同でパケットの28バイトを占め、ペイロードは80バイトを占める。ソースパケット310が送信された直後、例えばソースパケット310が送信されてから10ミリ秒以内に、同一の2つのFECパケット320及び330が、受信者へ送信される。FECパケット320、330は、IPヘッダ322、332、UDPヘッダ324、334、及びペイロード326、336をそれぞれ含む。示される実施例では、IPヘッダ322、332及びUDPヘッダ324、334は、FECパケット320、330の28バイトを占め、ペイロード326、336は、FECパケット320、330の80バイトを占める。受信者がソースパケット310を取得しなかった場合、フレームは、FECパケット320または330により置き換えられ得る。このスキームでは、フレームの処理及び再構築のために、3つの別個のパケットが受信者へ送信される。
【0045】
図3Bは、本開示の態様による前方誤り訂正スキーム351を例示する。前方誤り訂正スキーム351は、ステレオ音声伝送において特に有用である。このスキームによれば、データパケット350は、IPヘッダ352と、UDPヘッダ354と、第1のビットレートで符号化された、シーケンスの現フレームNに対応する符号化情報356とを含む。UDPヘッダ354とペイロード(現フレームNの符号化情報)との間に示される追加のヘッダ355は、フレーム番号、並びにソース符号化ビットレート及びFEC符号化ビットレートに関する情報を含み得る。データパケット350はまた、シーケンスの前フレームN‐1、N‐2、N‐3、N‐4、N‐5に対応する符号化情報358を含む。前フレームは、第1のビットレートよりも低い第2のビットレートで符号化される。
【0046】
前方誤り訂正スキーム351は、ソースフレームN及びFECフレームN‐1、N‐2、N‐3、N‐4、N‐5内の時間間隔が増加するようなバースト性損失(約50ミリ秒)の事例において、より優れた頑強性を有し、これは、シーケンス内の所定のフレームが再生可能であることを保証しながらも、接続における大きな欠落を許容できることを意味する。さらに、送信者201、ネットワークもしくはメモリストレージ202、または受信者203が処理できるパケットの数に限界がある場合、スキーム351は、より少ないデータパケットを使用して、誤り訂正を提供し得る。図3Bに示される実施例では、全体363バイトに対し、ヘッダ352、354は合計28バイトを占め、符号化ソースフレーム情報356は80バイトを占め、符号化FECフレーム情報358は255バイト(各FECフレームが51バイト)を占める。これは、リードソロモン前方誤り訂正スキーム301が必要とする324バイトのデータと同様である。この特定の実施例では、パケット350内のフレームあたりのFECフレームデータに対するソースフレームデータの比は、約1.57である。
【0047】
図4は、本開示の態様による全体的なプロセスフローの実施態様の特定の実施例を示す。高ビットレートコーデック412及び低ビットレートコーデック414を使用して、ソースフレーム426及びFECフレーム428の集合が生成される。ソースフレーム生成器412及びFECフレーム生成器414を特に参照すると、本開示は、同じコーデックの2つのインスタンスを実施して、ソースフレーム及びFECフレームを対応するソースフレームデータ426及びFECフレームデータ428に符号化し得る。ソースフレーム及びFECフレームをそれぞれ生成するため、または復号化されたものをそれぞれ生成するために、2つの別個のハードウェアコーデック、2つの別個のソフトウェアコーデック、ハードウェアコーデック及びソフトウェアコーデックの組み合わせを使用して、本開示を実施することもできる。さらに、これらの教示と一致する、当業者が作り得るコーデックのさらなる組み合わせが存在し得る。
【0048】
符号化フレームデータ426、428は、符号化フレームデータに加えてIP識別ヘッダ422及びUDPヘッダ424を含むデータパケット420にパッケージ化される。パケット420は、ネットワーク402を介して送信される。UDPヘッダ424とペイロード(現フレームNの符号化情報)との間に示される追加のヘッダ425は、フレーム番号、並びにソース符号化ビットレート及びFEC符号化ビットレートに関する情報を含み得る。図4はネットワーク202を介した符号化データの送信を具体的に示しているが、パケット420が、送信されるのではなく、ハードドライブ、CD、フラッシュドライブ、またはメモリの他の形態など、メモリのある形態に格納される実施態様も、本開示に包含される。データパケット420が、例えば一時的メモリバッファ、またはハードドライブ、CD、もしくはフラッシュドライブなどの永続的記憶媒体といったメモリに格納され、かつネットワーク202を介して送信される実施態様も、本開示に包含される。
【0049】
ネットワーク402を介した送信は、WiFiを含む無線通信の任意の形態を含み得る。図1に関連して論述されたように、ネットワーク402を介した送信は、周期的に信頼性が低くなり得るため、送信された全てのパケット420がその後受信者403に届き得るとは限らない。特に、無線通信は、シーケンス内の複数のパケットが失われるバースト性損失を起こしやすくあり得る。この損失は、例えば約50ミリ秒の送信中断を伴い得る。本開示の別の箇所で論じられたように、既存の前方誤り訂正方法は、バースト性損失の発生中はさほど頑強ではない。
【0050】
受信者は、受信に成功すると、430に示されるように、データパケット420を調べて、欠けているフレーム474に関するデータを含むか否かを判定する。この特定の実施態様では、どのフレーム(複数可)が欠けているかに関する情報は、出力フレームキュー470を調べることで特定され得る。例えば、各フレームは、そのヘッダ内に、シーケンス内のフレーム位置を特定するシーケンス情報を有し得る。受信者は、キュー470内の各フレームのシーケンス情報を調べることで、欠落が存在するのであれば、どのフレーム(複数可)が欠けているのかを特定し得る。受信者側のコーデック440は、データパケット420を復号化する。この特定の実施例では、復号化されたソースフレーム456は、無事に受信され、よって出力フレームキュー470に追加される。復号化FECフレーム458、及び特にフレームキュー内の欠落フレーム474に対応付けられたFECフレーム459は、フレーム再構築プロセス460にかけられ、新たな出力フレームが生成され、その後キュー470に追加される。最終的に、キュー470内の出力フレームは、例えば、音声フレームの場合はスピーカ、または映像フレームの場合は表示装置といった出力デバイスでの提示による出力480へ送信される。
【0051】
図5は、具体的には、ドルビー5.1サラウンドサウンドなどのサラウンドサウンド音声に本開示の態様を適用するためのパケット構造の一実施態様を例示する。ドルビーサラウンドサウンドのフレーム情報には、フロント左(FL)、フロント右(FR)、サラウンド左(SL)、サラウンド右(SR)、センター(C)、及び重低音効果(LFE)の6つの別個のチャネルの情報が含まれる。図5に示される実施態様によれば、FL及びFRチャネルは最も重要なチャネルとみなされ、ソースフレームデータ及びFECフレームデータのパッケージ化は、これを考慮するように構成される。しかしながら、図5の実施態様の教示は、複数のチャンネルを有する他のサウンドシステムにも適用できることに留意されたい。
【0052】
ドルビー5.1サラウンドサウンドシステムの音声に対応付けられたフレーム510の場合、フレームのデータは、2つの別個のパケット520及び530に分割され、これらはほぼ同時または正確に同時に、送信者201からネットワーク202を介して受信者203へ送信される(または、他の場所で論じられたように、メモリに入力される)。1つのパケット520は、IP識別ヘッダ522と、UDPヘッダ524と、フレームのシーケンスの現フレームNの2つのフロントチャネル(FL及びFR)に関するソースフレーム情報526、並びにシーケンスの前フレームN‐1、N‐2、N‐3、及びN‐4に対応するFECフレーム情報528に対応する符号化情報を含むペイロードとを包含する。UDPヘッダ524とペイロード(現フレームNの符号化情報)との間に示される追加のヘッダ525は、フレーム番号、並びにソース符号化ビットレート及びFEC符号化ビットレートに関する情報を含み得る。FECフレーム情報528は、6つの音声チャネル全てを再構築できるデータを含む。FECフレーム528を符号化することは、ドルビープロロジック符号化を使用することを含み得、これにより、音声情報の6つのチャネルを、本明細書で左チャネル及び右チャネルと称される2つのチャネルに符号化することが可能となる。この特定の実施態様は、送信されるパケットの帯域幅及びメモリ要件を低減するという利点を有する。一般に、音声サンプルのプロロジック符号化の式は、以下のとおりである。
左チャネル=FL+s*(SL+SR)+c*C+c*LFE 及び
右チャネル=FR−s*(SL+SR)+c*C+c*LFE であり、
s=0.5〜1.0
c=0.707
FL/FR=フロント左/右チャネル
SL/SR=サラウンド左/右チャネル
C=センターチャネル
L=重低音効果チャネル である。
【0053】
前述の方法で符号化された情報は、例えば後述されるように、受信者側で復号化され、情報の6チャネル全てが抽出され得る。当業者は、5.1音声に関する他の既存の符号化及び復号化技術を、本明細書で開示される教示に適合させることができる。
【0054】
第2のパケット530は、別個のIP識別532と、UDPヘッダ534と、残りの4つのチャネル(SL、SR、C、及びLFE)の符号化ソースフレーム情報536を含むペイロードとを包含する。第2のパケット530に、FECフレームは含まれない。さらに、残りの4つのチャネルに対し、FECフレームが生成される必要はない。ソースフレームを別個のパケットに分割することにより、各パケットをより小さくすることが可能となり、パケット損失ではより頑強なフレーム誤り訂正が可能となる。フロントチャネルと3.1チャネルに分割することで、受信者システムは、フロントチャネルパケットが失われた場合、3.1チャネルからフロントチャネルを再構築することができ、または3.1チャネルパケットが失われた場合、フロントチャネルパケットのFEC部分から3.1チャネルを再構築することができる。
【0055】
図5のパケット配置は、図4に示されたフローにおいて単一のデータパケット420の代わりに使用することができる。図2及び図4で示される方法は一般に、5.1音声に関して開示された本発明の特定の実施態様に準拠する。論述された特定の実施態様は、どのフレームが受信者に届いたかに応じて、異なる方法で誤り訂正を処理することができる。
【0056】
FL及びFRチャネルのソースフレームを含むデータパケット520が受信者に届かなかった場合、受信側のコンピューティングシステムは、その後に受信したパケットのFECフレームから、これらのチャネルを再構築することができる。
【0057】
受信者システムがステレオを受信したが、5.1音声機能を有する場合、受信者システムは、左及び右チャネルの信号のアップミキシング処理を行って、他の3.1チャネルを生成し得る。アップミキシング処理を行うための前述の式は、次のとおりである。
C=c*(Lt+Rt)
L=c*(Lt+Rt)及びローパスフィルターを適用
SL=s*(LT−Rt)、時間遅延及び+90度の位相変位
SR=s*(LT−Rt)、時間遅延及び−90度の位相変位
s=0.5〜1.0
c=0.707
【0058】
当業者は、モノラルサウンドと7.1サラウンドサウンドを含むがこれらに限定されない他の音声システム間で変換を行うために、前述の発明された式と同様の集合を適用することができる。
【0059】
再構築はまた、FECフレーム及び3.1チャネルソースフレームの両方を使用して、FL及びFRチャネルを回復させることを含み得る。FECフレーム及び3.1チャネルソースフレームの両方を使用してフレームを再構築する場合、どちらか一方のみを使用した場合よりも高い解像度の出力フレームを得られる可能性があり得る。
【0060】
限定ではなく例示として、5.1音声データは、以下のようにFECフレーム(Lt/Rt)及び3.1データ(SL/SR、C、L)の両方を用いて再構築され得る。
FL=Lt−s*(SL+SR)−c*C−c*L
FR=Rt+s*(SL+SR)−c*C−c*L
s=0.5〜1.0
c=0.707
【0061】
SL、SR、C、及びLFEチャネルのソースフレームを含むデータパケット530が受信者に届かなかった場合、符号化3.1チャネルフレームデータを含む後続パケットのFECフレーム情報から、これらのチャネルを再構築することができる。この場合、以下の式を使用して、プロロジック符号化FECファイルを復号化しなければならない。
C=c*(Lt+Rt)
L=c*(Lt+Rt)及びローパスフィルターを適用
SL=s*(LT−Rt)、時間遅延及び+90度の位相変位
SR=s*(LT−Rt)、時間遅延及び−90度の位相変位
s=0.5〜1.0
c=0.707
【0062】
当業者は、モノラルサウンドと7.1サラウンドサウンドを含むがこれらに限定されない他の音声システム間で変換を行うために、前述の発明された式と同様の集合を適用することができる。
【0063】
データパケット520及び530の両方が受信者に届かなかった場合、その後に送信され受信されたFECフレームから、全てのチャネル情報は再構築され得る。関連する再構築の式(前と同じ略語を使用)は以下のとおりである。
FL=Lt
FR=Rt
C=c*(Lt+Rt)
L=c*(Lt+Rt)及びローパスフィルターを適用
SL=s*(LT−Rt)、時間遅延及び+90度の位相変位
SR=s*(LT−Rt)、時間遅延及び−90度の位相変位
s=0.5〜1.0
c=0.707
【0064】
当業者は、モノラルサウンドと7.1サラウンドサウンドを含むがこれらに限定されない他の音声システム間で変換を行うために、前述の発明された式と同様の集合を適用することができる。
【0065】
データパケット520及び530の両方が到着した場合、必ずしも再構築の必要はなく、パケットからのデータを組み合わせて、出力フレームが形成され得る。
【0066】
ステレオまたはその他の多チャネル音声システムを処理する実施態様は、送信者側の1つのシステムで音声を処理して、受信者側の別のシステムで音声を格納または出力することができるように適応させることも可能である。このような実施態様により、サラウンドサウンド符号化とステレオ符号化とを動的に切り替えることも可能となり得る。
【0067】
1つの特定の実施態様は、以下のとおりである。送信者側のシステムにより生成されるソース音声が元々ステレオであるのに対し、受信者側で生成される出力が5.1サラウンドサウンドである場合、送信者側システムは、音声を2チャンネルのみのステレオとして扱い、図4で概説したような手順を使用し得る。受信者システムはそこで、ステレオを出力するという選択肢、または受信データを正しい音声システムに合わせるために、同じ式を用いてフレーム情報を5.1にアップミキシングするという選択肢を有する。送信者側のソース音声は5.1サラウンドサウンドであるのに対し、受信者システムはステレオしか処理できない場合、または帯域幅の制約もしくは出力システムの制限による動的な調整が原因で、送信者システムはステレオ送信に限定されている場合、通常のソースフレームをプロロジック符号化フレーム(全5.1チャネルの情報を保持)で上書きすることで、ステレオ音声ストリームは、プロロジック符号化ソースフレーム及びプロロジック符号化FECフレームを保持することが可能となる。これにより、出力制限に応じて、受信者側においてステレオまたは5.1で再構築することが可能になる。パケット構造は、図5で示したものである。
【0068】
説明された手順と併せて、送信者と受信者との間で、送信された音声がサラウンドサウンドであるか、ステレオであるかに関する通知を実施することができる。この通知は、制御チャネルを介して別個のデータパケットにより送信されてもよく、送信されるデータパケットのヘッダに含まれてもよく、または当業者が考案し得るその他の手段を通して送信されてもよい。
【0069】
当業者は、送信者からの音声が、受信者側の出力とは異なるチャネルを有する他の事例に、開示された出願の教示を適用することができる。当業者は、ステレオ及びドルビー7.1サラウンドサウンドを非限定的に含み、かつ本明細書で開示された教示に準拠し対応する他の音声システムのデータパケット配置を構築することができる。
【0070】
上記の構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはこれらのある組み合せで実装され得る。
【0071】
上記は、本開示の様々な例示的実施態様の完全な説明であるが、様々な代替物、変更物、及び均等物を使用することが可能である。従って、本発明の範囲は、上記の説明に限定されるものと解釈されるべきではなく、代わりに、添付の請求項とそれらの均等物の全範囲とを併せて参照して特定されるべきである。望ましいか否かに関わらず本明細書において説明される任意の特徴は、望ましいか否かに関わらず本明細書において説明される任意の他の特徴と組み合わせられ得る。下記の特許請求の範囲において、不定冠詞「a」または「an」は、特に明記される場合を除いて、冠詞の後に続く1つ以上の名詞の数量を指す。所定の請求項において「〜する手段(means for)」または「〜するステップ(step for)」という句を用いて、手段またはステップ及び機能(ミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクション)限定が明示的に列挙されない限り、添付の請求項の範囲は、手段またはステップ及び機能限定を含むと解釈されるべきではない。
図1
図2
図3A
図3B
図4
図5