JP2023508744A - Packetized data communication over multiple unreliable channels - Google Patents

Packetized data communication over multiple unreliable channels Download PDF

Info

Publication number
JP2023508744A
JP2023508744A JP2022546436A JP2022546436A JP2023508744A JP 2023508744 A JP2023508744 A JP 2023508744A JP 2022546436 A JP2022546436 A JP 2022546436A JP 2022546436 A JP2022546436 A JP 2022546436A JP 2023508744 A JP2023508744 A JP 2023508744A
Authority
JP
Japan
Prior art keywords
data packet
data packets
serial bitstream
network
packets
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.)
Pending
Application number
JP2022546436A
Other languages
Japanese (ja)
Inventor
アヴィニ,ユーリ
ドロリ,イスラエル
Original Assignee
ジクシー,エルエルシー
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
Priority claimed from US16/699,786 external-priority patent/US11546615B2/en
Application filed by ジクシー,エルエルシー filed Critical ジクシー,エルエルシー
Publication of JP2023508744A publication Critical patent/JP2023508744A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/201Frame classification, e.g. bad, good or erased
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • H04W56/002Mutual synchronization

Abstract

シリアルビットストリームの複数の複製を受信することであって、シリアルビットストリームが、データパケットのシーケンスを含む、ことと、連続する時間窓に基づいて、シリアルビットストリームの複製の各々を連続的に分割することと、時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された、シリアルビットストリームの複製の各々に関連付けられたデータパケットを整列させることと、データパケットのシーケンスにおける次のデータパケットを表すものとして、整列されたデータパケットのうちの少なくとも1つを選択することによって、シリアルビットストリームをリアルタイムで再作成することと、を含む、方法。【選択図】図1Receiving multiple copies of the serial bitstream, the serial bitstream comprising a sequence of data packets, and successively splitting each copy of the serial bitstream based on successive time windows. for each of the time windows, aligning data packets associated with each of the serial bitstream replicas received within the time window based at least in part on the data packet similarity; recreating the serial bitstream in real time by selecting at least one of the aligned data packets as representing the next data packet in the sequence of packets. [Selection drawing] Fig. 1

Description

関連出願の相互参照
本出願は、2019年3月20日に出願された「SYSTEM AND METHOD FOR COMMUNICATING DATA」と題する米国特許出願第16/359,016号の一部継続出願である、2019年12月2日に出願された「PACKETIZED DATA COMMUNICATION OVER MULTIPLE UNRELIABLE CHANNELS」と題する米国特許出願第16/699,786号の優先権の利益を主張し、米国特許出願第16/699,786号それらの内容は参照によりそれらの全体が本願に組み込まれるものとする。
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation-in-part of U.S. patent application Ser. Claiming priority benefit of U.S. patent application Ser. are hereby incorporated by reference in their entireties.

本発明は、概して、データ通信に関するものである。より具体的には、本発明は、データ通信のために複数の信頼性のない通信チャネルを使用することに関するものである。 The present invention generally relates to data communications. More specifically, the present invention relates to using multiple unreliable communication channels for data communication.

パケット化されたネットワークでデータを送信する場合、一部のパケットが脱落するか、または破損して到着することがある。一般に、パケット化されたネットワークまたはチャネルは、送信されるコンテンツをパケットまたはメッセージに分割し、パケットまたはメッセージを送信し、パケットに基づいて受信する側によってコンテンツを再構築することに関連し得る。 When sending data over a packetized network, some packets may arrive dropped or corrupted. In general, a packetized network or channel may involve dividing content to be transmitted into packets or messages, transmitting the packets or messages, and reconstructing the content by a receiver based on the packets.

パケットの喪失または破損を克服するために、いくつかの既知のシステムおよび方法は、一部またはさらには全部のパケットを2回以上送信する。しかし、同じデータを2回以上送信することは、通常、誤りを克服するにしては無駄な方法である。他の方法、例えば、前方誤り訂正(FEC)は、限られた数の誤りを検出することを可能にし、さらに、受信側が誤りの一部を訂正することを可能にし得るが、このような方法は、計算リソースおよび送信側の複雑性の増加という代償を伴う。 To overcome packet loss or corruption, some known systems and methods transmit some or even all packets more than once. However, sending the same data more than once is usually a wasteful way to overcome errors. Other methods, such as Forward Error Correction (FEC), may allow a limited number of errors to be detected and may also allow the receiver to correct some of the errors, but such methods comes at the cost of increased computational resources and sender-side complexity.

ストリーム複製法およびFEC法の両方では、いずれもシーケンス番号または他の識別子がパケットに関連付けられ、それらの識別子を用いてパケットのストリームが正しい(または本来の)順序またはシーケンスに従って再構築される。しかし、このような方法は、パケットに番号が付けられていない場合またはシーケンス化されていない場合には不適当である。 Both the stream duplication method and the FEC method associate a sequence number or other identifier with the packets and use those identifiers to reconstruct the stream of packets according to the correct (or original) order or sequence. However, such a method is inappropriate if the packets are not numbered or sequenced.

関連技術の前述の例およびそれに関連する制限は、例示的であり、排他的ではないことが意図されている。関連技術の他の制限は、本明細書を読み、図を検討すれば、当業者には明らかになるであろう。 The foregoing examples of related art and limitations associated therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of ordinary skill in the art upon reading the specification and studying the figures.

以下の実施形態およびその態様は、範囲を限定するものではなく、例示的かつ例証的であることを意味するシステム、ツール、および方法と併せて説明され、図示される。 The following embodiments and aspects thereof are described and illustrated in conjunction with systems, tools, and methods that are meant to be exemplary and illustrative rather than limiting in scope.

一実施形態では、シリアルビットストリームの複数の複製を受信することであって、シリアルビットストリームが、データパケットのシーケンスを含む、ことと、連続する時間窓に基づいて、シリアルビットストリームの複製の各々を連続的に分割することと、時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された、シリアルビットストリームの複製の各々に関連付けられたデータパケットを整列させることと、データパケットのシーケンスにおける次のデータパケットを表すものとして、整列されたデータパケットのうちの少なくとも1つを選択することによって、シリアルビットストリームをリアルタイムで再作成することと、を含む、方法が提供される。 In one embodiment, receiving a plurality of replicas of a serial bitstream, the serial bitstream comprising a sequence of data packets, and each replica of the serial bitstream based on successive time windows. and for each of the time windows, aligning data packets associated with each of the serial bitstream replicas received within the time window based at least in part on the data packet similarity. and recreating the serial bitstream in real time by selecting at least one of the aligned data packets as representing the next data packet in the sequence of data packets; A method is provided.

また、一実施形態では、システムであって、少なくとも1つのハードウェアプロセッサと、プログラムコードを実装した非一時的なコンピュータ可読記憶媒体であって、プログラムコードが、シリアルビットストリームの複数の複製を受信することであって、シリアルビットストリームが、データパケットのシーケンスを含む、ことと、連続する時間窓に基づいて、シリアルビットストリームの複製の各々を連続的に分割することと、時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された、シリアルビットストリームの複製の各々に関連付けられたデータパケットを整列させることと、データパケットのシーケンスにおける次のデータパケットを表すものとして整列されたデータパケットのうちの少なくとも1つを選択することによって、シリアルビットストリームをリアルタイムで再作成することと、を行うために少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、を含む、システムが提供される。 Also, in one embodiment, a system comprising at least one hardware processor and a non-transitory computer readable storage medium embodying program code for receiving multiple copies of the serial bitstream. wherein the serial bitstream comprises a sequence of data packets; successively dividing each copy of the serial bitstream based on successive time windows; and for each of the time windows , aligning data packets associated with each serial bitstream replica received within the time window based at least in part on the data packet similarity; recreating the serial bitstream in real time by selecting at least one of the aligned data packets to represent; and a computer-readable storage medium.

一実施形態では、プログラム命令を実装した非一時的なコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、プログラム命令が、シリアルビットストリームの複数の複製を受信することであって、シリアルビットストリームが、データパケットのシーケンスを含む、ことと、連続する時間窓に基づいて、シリアルビットストリームの複製の各々を連続的に分割することと、時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された、シリアルビットストリームの複製の各々に関連付けられたデータパケットを整列させることと、データパケットのシーケンスにおける次のデータパケットを表すものとして、整列されたデータパケットのうちの少なくとも1つを選択することによって、シリアルビットストリームをリアルタイムで再作成することと、を行うために、少なくとも1つのハードウェアプロセッサによって実行可能である、コンピュータプログラム製品がさらに提供される。 In one embodiment, a computer program product including a non-transitory computer-readable storage medium embodying program instructions, the program instructions for receiving multiple copies of a serial bitstream, the serial bitstream comprising: , comprising a sequence of data packets; successively dividing each of the serial bitstream replicas based on successive time windows; aligning the data packets associated with each of the serial bitstream replicas received within the time window, and aligning the aligned data packets as representing the next data packet in the sequence of data packets. Recreating the serial bitstream in real time by selecting at least one of the computer program products executable by at least one hardware processor is further provided.

シリアルビットストリームの複数の複製の各々は、プライベートIPネットワークと、パブリックIPネットワークと、インターネットと、移動通信用グローバルシステム(GSM)ネットワークと、ローカルエリアネットワーク(LAN)と、メトロポリタンエリアネットワーク(MAN)と、ワイドエリアネットワーク(WAN)と、無線ネットワークと、衛星通信ネットワークと、セルラー通信ネットワークと、Bluetooth通信チャネルと、Wi-Fiネットワークからなる群より選択される、異なる通信チャネルを介して伝送される、請求項15に記載のコンピュータプログラム製品である。 Each of the multiple copies of the serial bitstream is connected to a private IP network, a public IP network, the Internet, a Global System for Mobile Communications (GSM) network, a local area network (LAN), and a metropolitan area network (MAN). , a wide area network (WAN), a wireless network, a satellite communication network, a cellular communication network, a Bluetooth communication channel, and a Wi-Fi network; A computer program product according to claim 15.

いくつかの実施形態では、シリアルビットストリームの複数の複製の各々は、異なる通信チャネルを介して伝送される。 In some embodiments, each of the multiple copies of the serial bitstream is transmitted over a different communication channel.

いくつかの実施形態では、通信チャネルの各々は、プライベートIPネットワークと、パブリックIPネットワークと、インターネットと、移動通信用グローバルシステム(GSM)ネットワークと、ローカルエリアネットワーク(LAN)と、メトロポリタンエリアネットワーク(MAN)と、ワイドエリアネットワーク(WAN)と、無線ネットワークと、衛星通信ネットワークと、セルラー通信ネットワークと、Bluetooth通信チャネルと、Wi-Fiネットワークからなる群より選択される。 In some embodiments, each of the communication channels is a private IP network, a public IP network, the Internet, a Global System for Mobile Communications (GSM) network, a Local Area Network (LAN), a Metropolitan Area Network (MAN). ), a wide area network (WAN), a wireless network, a satellite communication network, a cellular communication network, a Bluetooth communication channel, and a Wi-Fi network.

いくつかの実施形態では、整列させることが、データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信されたデータパケットを整列スコア行列の列に配置することを含み、行列の各行が、シリアルビットストリームの複製のうちの1つを表す。 In some embodiments, aligning includes placing data packets received within the time window into columns of an alignment score matrix based at least in part on data packet similarity, wherein each row of the matrix is , represents one of the replicas of the serial bitstream.

いくつかの実施形態では、方法は、割り当てることをさらに含み、プログラム命令が、列内のデータパケットギャップおよびデータパケットの不一致のうちの1つに基づいて、列の各々に整列スコアを割り当てるためにさらに実行可能である。 In some embodiments, the method further comprises assigning, the program instructions to assign an alignment score to each of the columns based on one of data packet gaps and data packet mismatches within the column It is even more feasible.

いくつかの実施形態では、行列の各列に関して、選択することが、列のデータパケットの大部分のデータパケット類似性によって決定されるコンセンサスに少なくとも部分的に基づく。 In some embodiments, for each column of the matrix, the selection is based, at least in part, on a consensus determined by data packet similarity of a majority of the data packets of the column.

いくつかの実施形態では、データパケット類似性が、データパケットコンテンツの比較に少なくとも部分的に基づいて決定され、データパケットコンテンツがハッシュ関数によって表される。 In some embodiments, data packet similarity is determined based at least in part on comparing data packet contents, where the data packet contents are represented by a hash function.

上記の例示的な態様および実施形態に加えて、さらなる態様および実施形態は、図を参照することによって、および以下の詳細な説明を検討することによって明らかになるであろう。 In addition to the exemplary aspects and embodiments described above, further aspects and embodiments will become apparent by reference to the figures and by study of the following detailed description.

本開示の実施形態の非限定的な例は、この段落に続いて記載される本明細書に添付された図を参照して以下に記載される。2つ以上の図に表示される同一の機能には、通常、それらが表示されるすべての図で同じラベルでラベル付けされている。図中の本開示の実施形態の所与の特徴を表すアイコンにラベルを示すラベルは、所与の特徴を参照するために使用されてもよい。図に示されている特徴の寸法は、表示の便宜および明確さのために選択されており、必ずしも縮尺どおりに示されていない。例えば、いくつかの要素の寸法は、明確にするために他の要素に対して誇張されてもよく、または、いくつかの物理的構成要素が1つの機能ブロックまたは要素に含まれてもよい。さらに、適切であると考えられる場合、対応するまたは類似の要素を示すために、参照番号を図の間で繰り返す場合がある。 Non-limiting examples of embodiments of the present disclosure are described below with reference to the figures attached hereto that follow this paragraph. Identical features that appear in more than one figure are usually labeled with the same label in all the figures in which they appear. A label indicating a label on an icon representing a given feature of embodiments of the present disclosure in the figures may be used to refer to the given feature. Dimensions of features shown in the figures are chosen for convenience and clarity of presentation and are not necessarily shown to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity, or some physical components may be included in one functional block or element. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.

本発明とみなされる主題は、本明細書の結論部分において特に指摘され、明確に特許請求されている。しかしながら、本発明は、その目的、特徴、および利点とともに、構成および操作方法の両方に関して、以下の添付の図面とともに読まれる場合、以下の詳細な説明を参照することによって最もよく理解され得る。本発明の実施形態は、添付図面の図に例として示され、限定されるものではなく、その中で、同様の参照番号は、対応する、類似する、または同様の要素を示し、その中で、以下のように示される。 The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features and advantages thereof, may best be understood by reference to the following detailed description when read in conjunction with the accompanying drawings. Embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, similar or similar elements, in which: , as shown below.

本発明の例示的な実施形態によるシステムのブロック図を示す。1 shows a block diagram of a system according to an exemplary embodiment of the invention; FIG. 本発明の例示的な実施形態による方法のフローチャートを示す。3 shows a flowchart of a method according to an exemplary embodiment of the invention;

以下の詳細な説明では、本発明の完全な理解を提供するために、多くの特定の詳細が示されている。しかしながら、本発明は、これらの特定の詳細なしで実施され得ることが、当業者によって理解されるであろう。他の例では、既知の方法、手順、ならびに構成要素、モジュール、ユニットおよび/または回路は、本発明を不明瞭にしないように、詳細には記載されていない。ある実施形態に関して記載したいくつかの特徴または要素は、他の実施形態に関して説明した特徴または要素と組み合わされてもよい。明確にするために、同一または類似の特徴または要素の議論は繰り返さない場合がある。 In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components, modules, units and/or circuits have not been described in detail so as not to obscure the invention. Some features or elements described with respect to one embodiment may be combined with features or elements described with respect to other embodiments. For the sake of clarity, discussion of the same or similar features or elements may not be repeated.

本発明の実施例はこの点に限定されないが、例えば、「処理」、「計算」、「算出」、「決定」、「確立」、「分析」、「検査」等のような用語を使用した説明は、コンピュータのレジスタおよび/またはメモリ内の物理量(例えば、電気量)として表されたデータを、動作および/または処理を実行する命令を格納し得るコンピュータのレジスタおよび/またはメモリもしくは他の情報非一時的な記憶媒体内の物理量として同様に表された他のデータに操作および/または変換するコンピュータ、コンピュータプラットフォーム、コンピュータシステムまたは他の電子計算デバイスの動作および/または処理を示し得る。本発明の実施例はこの点に限定されないが、ここで用いられる「複数」および「複数の」という用語は、例えば、「多数」または「2つ以上」を含んでもよい。「複数」または「複数の」という用語は、2つ以上の構成要素、デバイス、要素、ユニット、パラメータ等を記述するために明細書を通じて使用され得る。本明細書で使用される場合に設定される用語は、1つ以上の項目を含み得る。 For example, although embodiments of the present invention are not limited in this respect, terms such as "process", "calculate", "calculate", "determine", "probably", "analyze", "test", etc. Description refers to data represented as physical quantities (e.g., electrical quantities) in computer registers and/or memory or other information that may store instructions to perform actions and/or processes. It may refer to the operation and/or processing of a computer, computer platform, computer system or other electronic computing device that manipulates and/or transforms other data similarly represented as physical quantities in a non-transitory storage medium. As used herein, the terms "plurality" and "plurality" may include, for example, "many" or "two or more," although embodiments of the present invention are not limited in this respect. The terms "plurality" or "plurality" may be used throughout the specification to describe two or more components, devices, elements, units, parameters, and the like. A term established as used herein may include one or more items.

明示的に述べない限り、本明細書に記載される方法の実施形態は、時間的に特定の順序に、または時系列に制約されない。さらに、記載された方法要素のいくつかは、同時に、同じ時点で、または同時に発生するか、または実行され得る。記載された方法要素のいくつかは、方法の一連の操作の間に、スキップされてもよいし、繰り返されてもよい。 Unless explicitly stated, the method embodiments described herein are not constrained to a particular order or chronological order in time. Moreover, some of the method elements described may occur or be performed at the same time, at the same time, or at the same time. Some of the described method elements may be skipped or repeated during the sequence of operations of the method.

データストリーミングにおけるリアルタイムの誤り回復のためのシステム、方法、およびコンピュータプログラム製品が開示されている。 A system, method, and computer program product for real-time error recovery in data streaming are disclosed.

いくつかの実施形態において、本開示は、2つ以上の異なる通信経路またはチャネルを介して、送信側から、例えば、データパケットの形態で、複製された直列化データストリームをストリーミングし、個々のチャネルのいずれかにおける誤りを修正するために、複製された受信ストリームから受信側によりデータパケットをシームレスに再構築することを提供する。 In some embodiments, the present disclosure streams a replicated serialized data stream, e.g., in the form of data packets, from a sender over two or more different communication paths or channels, and separates the individual channels It provides seamless reconstruction of data packets by the receiver from the duplicated received stream to correct errors in any of .

本開示は、パケット化されたビデオストリーミング、例えば、インターネットなどのノイズの多いおよび/または損失の多いネットワーク上のMPEGトランスポートストリームの分野において特に有用であり得る。したがって、いくつかの実施形態において、本開示は、ロバストなヒットレスフェイルオーバー機能を有する、インターネット上のライブ放送品質のビデオを提供し得る。 The present disclosure may be particularly useful in the field of packetized video streaming, eg, MPEG transport streams over noisy and/or lossy networks such as the Internet. Thus, in some embodiments, the present disclosure may provide live broadcast quality video over the Internet with robust hitless failover capabilities.

いくつかの実施形態では、本開示は、完全なチャネル障害を考慮してもデータを回復することができ、それらが伝送するペイロードを修正する必要なく単純な独立した伝送ユニットで使用することができる、単純でスケーラブルな処理を提供する。 In some embodiments, the present disclosure can recover data even considering complete channel impairments and can be used with simple independent transmission units without the need to modify the payload they transmit. , providing simple and scalable processing.

いくつかの実施形態では、複数のルートは、複数の通信チャネルを介して複製された伝送チャネルによって生成することができる。いくつかの実施形態では、例えば、同じソース信号に調整された異なる場所にある複数の無線受信局を使用して、放送媒体を介した単一の伝送を聞く複数の受信ユニットを介して複数のルートを生成することができる。 In some embodiments, multiple routes may be generated by transmission channels that are replicated over multiple communication channels. In some embodiments, multiple receiver units listen to a single transmission over the broadcast medium using, for example, multiple wireless receiver stations at different locations tuned to the same source signal. Can generate routes.

いくつかの実施形態では、誤り回復は、例えば、時間窓、到着時間、コンテンツ、および/またはデータパケットを定義および/または同期および/または整列させるための別のおよび/または類似の方法に基づいて、複数の通信チャネルを介して受信したデータパケットを整列させることによって達成され得る。 In some embodiments, error recovery is based, for example, on another and/or similar method for defining and/or synchronizing and/or aligning time windows, arrival times, content, and/or data packets. , can be achieved by aligning data packets received over multiple communication channels.

いくつかの実施形態では、データパケット整列は、同一または類似のパケットが整列されるように、複数のチャネルを介して受信したパケットを配置することを含む。 In some embodiments, data packet alignment includes arranging packets received over multiple channels such that identical or similar packets are aligned.

いくつかの実施形態では、データパケット整列は、シーケンス整列アルゴリズムを使用して実行され得、これは、時間窓で観察されたパケットシーケンスを最もよく説明するソースパケットの最も可能性の高いシーケンスを選択する。いくつかの実施形態では、シーケンス整列は、同一または類似のパケットが行列の行に整列されるやり方において、パケット間に可能なギャップを有する、行列の列にパケットシーケンスを配置するやり方である。 In some embodiments, data packet alignment may be performed using a sequence alignment algorithm, which selects the most likely sequence of source packets that best describes the packet sequence observed in the time window. do. In some embodiments, sequence alignment is a way of arranging packet sequences into columns of a matrix with possible gaps between packets in the way identical or similar packets are aligned into rows of the matrix.

いくつかの実施形態では、パケット整列を使用して、1つ以上のチャネルにおけるパケット喪失を克服することができる。例えば、第1のストリームにパケットが存在しない(または表されない)が、1つ以上の他のストリームに存在するか、または表される場合、受信側は、パケットが第1のストリームで喪失したと決定してもよく、他のストリームによって表されるようなパケットを含めるように選択してもよい。したがって、例えば、整列されると、第1のチャネルから受信された第3のパケットは、第2のチャネルから受信された第3のパケットと整列されることになる。第3のパケットが別のチャネルで欠落した場合、受信側は、このパケットがそのチャネルで喪失したと決定し、再構築されたストリームに含めるために、対応する第3のパケットのうちの1つを選択することができる。 In some embodiments, packet alignment can be used to overcome packet loss in one or more channels. For example, if a packet does not exist (or is not represented) in the first stream, but is present or represented in one or more other streams, the receiver may consider the packet lost in the first stream. It may decide and may choose to include packets as represented by other streams. Thus, for example, when aligned, a third packet received from a first channel would be aligned with a third packet received from a second channel. If a third packet is missing in another channel, the receiver determines that this packet was lost in that channel and selects one of the corresponding third packets for inclusion in the reconstructed stream. can be selected.

いくつかの実施形態では、一旦整列が達成されると、整列を使用して、パケット破損が存在する状態で、列内のコンセンサスパケットを選択することによって、対応するチャネル内のそれらの対応する既存のパケットで欠落パケットのギャップを埋める統一シーケンスを作成するために使用することができる。 In some embodiments, once the alignment is achieved, the alignment is used to select consensus packets in the queue in the presence of packet corruption, thereby determining their corresponding existing in the corresponding channel. can be used to create a unified sequence that fills the gaps of missing packets with packets of

いくつかの実施形態では、時間窓内の整列アルゴリズムは、整列にギャップがあること、および不完全な一致がある(例えば、パケットの破損による)ことに対してペナルティを与えるスコアリング関数を最大化する。いくつかの実施形態では、長いギャップを有することに対するペナルティは、複数の短いギャップを有することによるペナルティよりも低く、IPネットワークにおける連続するパケット喪失事象における典型的な相関を捕捉し得る。 In some embodiments, the alignment within time window algorithm maximizes a scoring function that penalizes gaps in alignment and imperfect matches (e.g., due to packet corruption). do. In some embodiments, the penalty for having long gaps is lower than the penalty for having multiple short gaps, and may capture typical correlations in consecutive packet loss events in IP networks.

図1は、本発明のいくつかの実施形態による、データストリーミングにおけるリアルタイム誤り回復のための例示的なシステム100を示す。図示されるように、送信側(または送信元)110からのデータは、ネットワーク130を介して、いくつかの通信チャネル140を介して受信側(または宛先)120に送信され得る。送信側110および受信側120は、任意の適用可能なコンピューティングデバイス、例えば、サーバ、カメラ、スマートフォン、または家庭用コンピュータであり得る。本発明の実施形態は、送信側または送信元110の性質または種類によって、および/または受信側または宛先120の性質または種類によって制限されないことが認識されるであろう。明確化および簡略化のために、1つの送信側110および1つの受信側120のみが示されているが、実施形態は、任意の数のそのようなノードを含んでもよく、例えば、いくつかの送信側110が、通信チャネル140と類似の通信チャネルを介して受信側120にデータを送信してもよいことが、理解されよう。通信チャネル140は、物理チャネルまたはルート(例えば、ルートは、ワイヤ、ルータなどであるか、またはそれらを含むことができる)であり得、またはそれらは、論理チャネルまたはルート(例えば、ユーザデータグラムプロトコル(UDP)接続)であり得、物理チャネルと論理チャネルとの組み合わせであり得る。 FIG. 1 shows an exemplary system 100 for real-time error recovery in data streaming, according to some embodiments of the invention. As shown, data from a sender (or source) 110 may be transmitted to a receiver (or destination) 120 over a number of communication channels 140 over network 130 . Sender 110 and receiver 120 may be any applicable computing device, such as a server, camera, smart phone, or home computer. It will be appreciated that embodiments of the present invention are not limited by the nature or type of sender or source 110 and/or by the nature or type of receiver or destination 120 . Although only one sender 110 and one receiver 120 are shown for clarity and simplicity, embodiments may include any number of such nodes, e.g. It will be appreciated that sender 110 may send data to receiver 120 via communication channels similar to communication channel 140 . Communication channels 140 can be physical channels or routes (eg, routes can be or include wires, routers, etc.) or they can be logical channels or routes (eg, user datagram protocol (UDP) connection) and may be a combination of physical and logical channels.

ネットワーク130は、プライベートIPネットワーク、またはパブリックIPネットワーク、またはインターネット、またはそれらの組み合わせであるか、それらを含むか、またはその一部であり得る。付加的または代替的に、ネットワーク130は、移動通信用グローバルシステム(GSM)ネットワークであるか、それを含むか、またはその一部であり得る。例えば、ネットワーク130は、インターネットなどのIPネットワーク、GSM関連ネットワーク、および当技術分野で知られているようなネットワークをブリッジするまたは他の方法で接続するための任意の機器を含むか、備え得る。ネットワーク130は、パブリックデータネットワークまたはプライベートデータネットワーク、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、有線ネットワークまたは無線ネットワーク、衛星通信ネットワーク、セルラー通信ネットワーク、前述の任意の組み合わせ、および/または他の任意の適切な通信手段であってもよく、それらを含むか、またはその一部であってもよい。したがって、ネットワーク130の多数の要素(例えば、アクセスポイント、基地局、通信衛星、GPS衛星、ルータ、および電話スイッチ)が暗示されているが、図示されていない。本発明の実施形態は、ネットワーク130の性質または種類によって制限されないことが認識されるであろう。 Network 130 may be, include, or be part of a private IP network, or a public IP network, or the Internet, or a combination thereof. Additionally or alternatively, network 130 may be, include, or be part of a Global System for Mobile Communications (GSM) network. For example, network 130 may include or comprise IP networks such as the Internet, GSM-related networks, and any equipment for bridging or otherwise connecting networks as is known in the art. Network 130 may include a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wired or wireless network, a satellite communications network, a cellular communications network, any of the foregoing. and/or any other suitable means of communication, including or being part of. Thus, numerous elements of network 130 (eg, access points, base stations, communication satellites, GPS satellites, routers, and telephone switches) are implied but not shown. It will be appreciated that embodiments of the present invention are not limited by the nature or type of network 130 .

一実施形態は、送信側から2つ以上の異なるルートまたはチャネルを使用してデータパケットをストリーミングし、受信側によってデータパケットをシームレスに再構築することによって誤り回復を提供することができる。一般に、パケットの元のストリーム(例えば、送信側110である、送信側によって送信された)は、複数の複製された受信ストリームに基づいて受信側(例えば、受信側120)によって再構築される。一実施形態は、パケットシーケンス番号または他の順序情報が利用できない場合でも、元のストリームを正しく再構築できることに留意されたい。 An embodiment may provide error recovery by streaming data packets from the sender using two or more different routes or channels and seamlessly reconstructing the data packets by the receiver. Generally, the original stream of packets (sent by the sender, eg, sender 110) is reconstructed by the receiver (eg, receiver 120) based on multiple duplicated received streams. Note that one embodiment can correctly reconstruct the original stream even if packet sequence numbers or other ordering information is not available.

複数のルートは、複製された伝送、または、例えば、同じソース信号に調整された異なる場所にある複数の無線受信局を使用して、放送媒体を介した単一の伝送を聞く複数の受信ユニットのいずれかとすることができる。記載したように、ルートは物理ルートおよび/または論理ルートにすることができる。 Multiple routes are multiple receiving units listening to a single transmission over a broadcast medium using, for example, multiple radio receiving stations at different locations tuned to the same source signal, or duplicate transmissions. can be either As noted, roots can be physical roots and/or logical roots.

いくつかの実施形態では、受信側120は、時間窓または時間間隔に従ってパケットを整列させる。例えば、例示50ミリ秒の時間間隔で複数のチャネルからパケットのストリームが受信された。したがって、例えば、時間間隔10:00:00:00(HR:MIN:SEC:MILL)から10:00:00:50までに受信されたパケットが整列され、次に10:00:00:51から10:00:00:100までの時間間隔中に複数のチャネルから受信したパケットのストリームが整列されて、その繰り返しとなる。時間および/または時間スロット、間隔または窓を定義および/または同期させるための任意の技術または機構が使用され得る。時間制限のある窓でパケットを整列させると、(オフラインと比較して)リアルタイムで連続的にストリームを再構築することができ、計算の複雑さを軽減することができる。整列に基づき、受信側は、送信側によって送信された元のシーケンスである可能性が最も高いパケットのシーケンスを選択する。 In some embodiments, receiver 120 aligns packets according to time windows or time intervals. For example, streams of packets were received from multiple channels at exemplary 50 ms time intervals. So, for example, packets received during the time interval 10:00:00:00 (HR:MIN:SEC:MILL) to 10:00:00:50 are aligned, then from 10:00:00:51 The streams of packets received from multiple channels during the time interval up to 10:00:00:100 are aligned and repeated. Any technique or mechanism for defining and/or synchronizing times and/or time slots, intervals or windows may be used. Aligning the packets in a time-limited window allows the stream to be reconstructed continuously in real-time (compared to offline) and reduces computational complexity. Based on the alignment, the receiver selects the sequence of packets that is most likely the original sequence sent by the sender.

一般に、本明細書で指す整列、またはシーケンス整列は、複数のチャネルにわたって受信されたパケットを行列に並べることを含み、各チャネルストリーミングは、同一または類似のパケットが別々の行列の列に並べられるように行列の行で表現されている。例えば、整列されると、第1のチャネル140から受信された(現在の時間窓内の)第3のパケットは、第2のチャネル140から受信された第3のパケットと同じ列にある。同じパケットが、例えば、2つの別々の列(それぞれが各々のチャネルを表す)に表示されているが、第3の列(第3のチャネルを表す)において欠落している場合、受信側は、パケットが第3のチャネルで喪失したかまたは脱落したと決定し、他の2つの列に現れるパケットのうちの1つが再構築されたストリームに含めるために選択されてもよい。 In general, alignment, or sequence alignment, as referred to herein involves queuing packets received across multiple channels, each channel streaming such that the same or similar packets are queued in a separate matrix column. are represented by the rows of the matrix. For example, when aligned, the third packet (within the current time window) received from the first channel 140 is in the same column as the third packet received from the second channel 140 . If the same packet appears, for example, in two separate columns (each representing its respective channel), but is missing in the third column (representing the third channel), the receiver will: Having determined that a packet was lost or dropped in the third channel, one of the packets appearing in the other two columns may be selected for inclusion in the reconstructed stream.

いくつかの実施形態では、パケットの実際のコンテンツが整列処理で使用され得る。例えば、ハッシュ関数または他の関数がパケットのコンテンツを表すために使用されてもよく、整列は、例えばハッシュ値を比較することによって、同じ列のパケットが同じコンテンツを有するかどうかをチェックすることを含んでもよい。例えば、再構築されたストリームに含めるためのパケットは、パケットの同じコンテンツを含む行の大部分に基づいて選択され得る。例えば、(それぞれの複数のストリームを表す)複数の行における第6列のパケットのコンテンツとは同じであり、追加のストリームを表す単一の行における第6列のパケットのコンテンツとは異なると(受信側120によって)決定された場合、受信側は、追加のストリームにおけるパケットが転送中に破損したと推測し、無視され得る。したがって、受信側は、いくつかのストリームのいずれかからの再構築されたストリームに含めるために、6つの同一ストリームのパケットのうちの1つを選択し得る。 In some embodiments, the actual contents of packets may be used in the alignment process. For example, a hash function or other function may be used to represent the content of the packets, and alignment refers to checking whether packets in the same column have the same content, e.g., by comparing hash values. may contain. For example, packets for inclusion in the reconstructed stream may be selected based on the majority of lines containing the same content in the packets. For example, if the content of packets in column 6 in multiple rows (representing multiple streams for each) is the same and is different than the content of packets in column 6 in a single row representing additional streams ( If determined by the receiver 120), the receiver may assume that packets in the additional stream were corrupted in transit and be ignored. Thus, the receiver may select one of the six same-stream packets for inclusion in the reconstructed stream from any of the several streams.

一実施形態は、パケット喪失を克服するために記載されたような整列を使用することができる。例えば、第1のストリームを表す第1の行/列のペアにパケットが存在しない(または表されない)が、1つ以上の他のストリームの同じ列にパケットが存在するまたは表される場合、受信側は、パケットが第1のストリーム内で喪失したまたは脱落したと決定し、他のストリームによって表されるパケットを含めるために選択し得る。 An embodiment may use alignment as described to overcome packet loss. For example, if no packet is present (or not represented) in the first row/column pair representing the first stream, but a packet is present or represented in the same column of one or more other streams, then the receive A side may determine that a packet was lost or dropped in the first stream and choose to include the packet represented by the other stream.

いくつかの実施形態では、受信側は、整列処理においてスコアリング関数および/または閾値を使用してもよい。例えば、記載したようにパケットを行列に配置した後、スコアリング関数は、ギャップに基づいて、および/またはコンテンツの不一致に基づいて、時間窓の値を計算してもよい。例えば、ギャップは、記載されているように列にパケットがないことであり、不一致は、記載されているように同じ列内の異なるコンテンツであり得る。いくつかの実施形態では、それぞれのストリームのパケットのセットの整列が達成されたか否かを決定するために、スコアリング関数および/または閾値が使用される。 In some embodiments, the receiver may use scoring functions and/or thresholds in the alignment process. For example, after arranging the packets in a matrix as described, the scoring function may calculate time window values based on gaps and/or based on content discrepancies. For example, a gap could be the absence of a packet in a column as written, and a mismatch could be different content within the same column as written. In some embodiments, a scoring function and/or a threshold is used to determine whether alignment of the set of packets for each stream is achieved.

本発明の範囲から逸脱することなく、それぞれのストリームまたはチャネルのセットから受信したパケットシーケンスのセットを整列させるために、任意のスコアリング関数、アルゴリズムまたは論理を使用することができる。本明細書で議論される特定のアルゴリズムは、使用され得る整列アルゴリズムの一例に過ぎないことが理解されよう。 Any scoring function, algorithm or logic may be used to align the sets of packet sequences received from each set of streams or channels without departing from the scope of the present invention. It will be appreciated that the specific algorithms discussed herein are but one example of alignment algorithms that may be used.

いくつかの実施形態では、整列アルゴリズムは、2つのパケットのペイロードを比較するための/比較するときのパケット類似度スコアと、パケット間のギャップを挿入する(または表す)ためにスコア(またはペナルティ)とを使用する。いくつかの実施形態では、類似性関数は、通信チャネルの確率的特性を考慮して、観測されたパケットの値が与えられた場合にソースパケットが同一であることの尤度または確率に依拠する。例えば、チャネルが(パケットの脱落は可能、パケットの破損は不可能である)消去チャネルの場合、スコアリング関数は、比較したパケットのペイロードが同一であれば1、パケットとギャップとを比較した場合は0(パケット喪失の尤度を表す)、パケットが非類似であればマイナス無限大(パケットの破損不可能な尤度を表す)を返すスコアリング関数とすることができる。パケットのビット反転(例えば、0が1になる)が関連するチャネルで可能である場合、パケットの類似性は、パケットペイロード間のハミング距離、すなわち、第1のパケットのペイロードが第2のパケットのペイロードとどれだけ異なるかに依拠し得る。 In some embodiments, the alignment algorithm uses a packet similarity score for/when comparing the payloads of two packets and a score (or penalty) for inserting (or representing) gaps between packets. and to use. In some embodiments, the similarity function relies on the likelihood or probability that the source packets are identical given the values of the observed packets given the probabilistic properties of the communication channel. . For example, if the channel is an erasure channel (packets can be dropped, packets cannot be corrupted), the scoring function is 1 if the payloads of the compared packets are identical, can be a scoring function that returns 0 (representing the likelihood of packet loss), minus infinity if the packets are dissimilar (representing the uncorruptible likelihood of the packet). If packet bit reversal (e.g., 0 becomes 1) is allowed in the associated channel, the similarity of the packets is the Hamming distance between the packet payloads, i.e., the payload of the first packet is the payload of the second packet. It may depend on how different it is from the payload.

明確化および簡略化のために、本明細書では、2つのストリームから受信したパケットの2つのシーケンスを整列させる簡略化されたケースを記載する。一般に、パケットシーケンスを整列し、元の(ソース)パケットシーケンスを決定または識別する方法は、動的プログラミングアプローチを使用してシーケンスの整列に対するスコア関数を最大化するやり方で2つのシーケンスの一方を他方の上に配置するものである。 For clarity and simplicity, we describe here a simplified case of aligning two sequences of packets received from two streams. In general, a method of aligning packet sequences and determining or identifying the original (source) packet sequence is to align one of the two sequences with the other in a manner that maximizes a score function for aligning the sequences using a dynamic programming approach. is placed on top of the

例えば、サイズ(パケット数)

Figure 2023508744000002

との、2つのシーケンスS、Sに対して、この方法は、
Figure 2023508744000003

の二次元行列Mを構築する。 For example, size (number of packets)
Figure 2023508744000002

and for two sequences S 1 , S 2 , the method
Figure 2023508744000003

Construct a two-dimensional matrix M of

類似性関数をσ、長さxのギャップを挿入する際のペナルティをGであると仮定すると、本方法は以下の式に従って行列Mを初期化する。

Figure 2023508744000004
Assuming a similarity function σ and a penalty for inserting a gap of length x Gx , the method initializes the matrix M according to the following equation.
Figure 2023508744000004

上記のような行列Mの初期化には、ギャップがある状態で整列を開始するというペナルティが含まれていることに注意されたい。残りの行列セルは、以下に示すように、以前に計算された3つの値の間の最大値を選択することによって満たされる。

Figure 2023508744000005
Note that the initialization of matrix M as above includes the penalty of starting the alignment with gaps. The remaining matrix cells are filled by choosing the maximum value between the three previously calculated values, as shown below.
Figure 2023508744000005

上記において、第1の項はパケットS(i)とパケットS(j)とをマッチングさせるときのスコアを計算し、第2の項および第3の項は以前に計算した値に依拠し、それぞれS(i)またはS(j)の前に長さxのギャップ(パケットのドロップ列)を挿入するときのスコアを表している。 In the above, the first term computes the score when matching packets S 1 (i) and S 2 (j), and the second and third terms rely on previously computed values. , represents the score when inserting a gap (dropped sequence of packets) of length x before S 1 (i) or S 2 (j), respectively.

このように記載した最大値を設定すると、行列Mの各Mi、jセルには、整列させるサブセットS(1..i)とS(1..j)との最適スコアが含まれ、

Figure 2023508744000006

が最適整列スコアを保持することになる。 With the maxima described in this way, each M i,j cell of the matrix M contains the best scores of the subsets S 1 (1..i) and S 2 (1..j) to align. ,
Figure 2023508744000006

will hold the best alignment score.

いくつかの実施形態では、パケットシーケンスの整列の構築、識別、または選択は、

Figure 2023508744000007

におけるスコアを最大化する決定をバックトラッキングすることによって、逆の順序で行われる。当技術分野で知られているように、バックトラッキング処理では、同じ最大スコアに至る複数のパスが存在し得る。本明細書に記載する方法は、Mの最大スコアをもたらすパスを識別するために使用することができる。 In some embodiments, constructing, identifying, or selecting an alignment of packet sequences comprises:
Figure 2023508744000007

The reverse order is done by backtracking the decision that maximizes the score in . As is known in the art, there can be multiple paths to the same maximum score in the backtracking process. The methods described herein can be used to identify the path that yields the maximum score of M.

例えば、各バックトラッキングステップで、セル(i,j)のスコアを最大にした前または最後の選択セルを記録または検索する方法がある。効率化のために、最大スコアを導いた前または最後のセルへのポインタを、構築段階の行列セルに格納することができる。 For example, at each backtracking step, one method is to record or retrieve the previous or last selected cell that maximized the score of cell (i,j). For efficiency, a pointer to the previous or last cell that led to the maximum score can be stored in the construction stage matrix cell.

次に、後続の論理に従って、2つの整列されたシーケンスが末尾から先頭に向かって構築される。
・行列セル(i,j)が行列セル(i-1,j-1)に移動した場合、パケットS(i)が第1の整列されたシーケンスに追加され、パケットS(j)が第2の整列されたシーケンスに追加される。
・行列セル(i,j)がセル(i-x,j)に移動した場合、パケットS(i)を第1のシーケンスに追加し、第2のシーケンスに長さxのギャップを追加する。
・行列のセル(i,j)がセル(i,j-x)に移動した場合、長さxのギャップが第1のシーケンスに追加され、パケットS(j)が第2のシーケンスに追加される。行列の端に到達すると、この処理は終了する。
The two aligned sequences are then built from tail to head according to the logic that follows.
If matrix cell (i,j) moves to matrix cell (i-1,j-1), then packet S 1 (i) is added to the first ordered sequence and packet S 2 (j) is Appended to the second aligned sequence.
If matrix cell (i,j) moves to cell (ix,j), add packet S 1 (i) to the first sequence and add a gap of length x to the second sequence .
If cell (i,j) of the matrix moves to cell (i,j−x), then a gap of length x is added to the first sequence and packet S 2 (j) is added to the second sequence. be done. The process ends when the end of the matrix is reached.

バックトラッキング処理の出力は、パケットの2つのシーケンスであり、一方が他方の上にあり、場所によってはギャップが生じる可能性がある。 The output of the backtracking process is two sequences of packets, one on top of the other, with possible gaps in places.

3つ以上のシーケンスを整列させることは、より高次元の行列を使用して類似のやり方で行うことができる。いくつかの改善策が考えられ得るが、例えば、シーケンスのペアを繰り返し整列させることで、より高速な近似整列を実現することも可能である。 Aligning more than two sequences can be done in a similar fashion using higher dimensional matrices. Some improvement measures can be considered, but it is also possible to achieve faster approximate alignment, for example, by repeatedly aligning pairs of sequences.

上記の整列処理の出力は、検索窓内のすべてのシーケンス間のコンセンサスシーケンスである。コンセンサスシーケンスを構築するために、整列の各列で、多数決(またはビット単位の多数決)により最も可能性の高いパケットを選択する方法がある。例として、パケットが1バイト長で、σ、S1、S2およびGは、以下に示すようなものであるとする。

Figure 2023508744000008
The output of the above alignment process is the consensus sequence between all sequences within the search window. To build a consensus sequence, there is a method of selecting the most likely packet by majority vote (or bitwise majority vote) in each column of the alignment. As an example, suppose a packet is 1 byte long and σ, S1 , S2 and Gx are as shown below.
Figure 2023508744000008

この例示的なケースでは、G=xであるため、大きなギャップを挿入するスコアは、複数の小さなギャップを挿入するスコアと等価である。したがって、記載したようにバックトラッキング処理でスコアを計算するには、スコア行列を埋める際に、直ぐ左隣、上隣、斜め左上のセル、およびバックトラッキング処理を考慮すれば良いことになる。 In this exemplary case, G x =x, so the score for inserting a large gap is equivalent to the score for inserting multiple small gaps. Therefore, to calculate the score in the backtracking process as described, the immediately left neighbor, the upper neighbor, the diagonally upper left cell, and the backtracking process should be considered when filling the score matrix.

上記の例に関して、記載した動的プログラミング論理に従って初期化され、充填されたスコア行列は、以下のようになる。

Figure 2023508744000009
For the above example, the score matrix initialized and filled according to the described dynamic programming logic would be:
Figure 2023508744000009

最後のセル(値-1)からバックトラッキングを行うには、現在のセルスコアが最大となるパスに従って、上、左、または斜め上および斜め下のセルに移動する必要がある。バックトラッキング処理に続いて、後ろから前に向かって以下のようなシーケンスが生成される。

Figure 2023508744000010
Backtracking from the last cell (value -1) requires moving up, left, or diagonally up and down cells, following the path with the highest current cell score. Following the backtracking process, the following sequence is generated from back to front.
Figure 2023508744000010

整列されたシーケンスに基づいて、再構築されたコンセンサスシーケンスは次のようになる。

Figure 2023508744000011
Based on the aligned sequences, the reconstructed consensus sequence looks like this:
Figure 2023508744000011

様々な論理とヒューリスティックとが使用されてもよい。例えば、長いギャップを有することに対するペナルティ(例えば、記載されるように計算された値を減少させる)は、複数の短いギャップを有することによるペナルティよりも低くてもよく、したがって、例えば、IPネットワークにおける連続するパケット喪失事象における典型的な相関を補償することが可能である。 Various logics and heuristics may be used. For example, the penalty for having long gaps (e.g., reducing the value calculated as described) may be lower than the penalty for having multiple short gaps, thus e.g. It is possible to compensate for typical correlations in consecutive packet loss events.

論じたように、任意のスコアリング関数は、本発明の範囲から逸脱することなく使用することができ、例えば、他の実施形態では、上述のようにスコアを最大化するのではなく、スコアリング関数は、識別された各ギャップまたは不一致について初期値を減少させ、得られた値が閾値超であれば、受信側は適切な整列が達成された(したがってストリームは関連の時間窓について再構築することができる)と決定し得る。スコアリング関数によって生成された値が閾値を下回る(例えば、多くの破損パケットまたは喪失したパケットが原因)場合、受信側はストリームを正しく再構築できないと決定することができ、受信側はさらなる処置、例えば、再送信の要求、整列されていないシーケンスのうちの1つを選択、ユーザへの警告などを行うことができる。 As discussed, any scoring function may be used without departing from the scope of the invention, e.g., other embodiments may use scoring The function decrements the initial value for each gap or discrepancy identified, and if the resulting value is above a threshold, the receiver indicates that proper alignment has been achieved (and thus the stream is reconstructed for the relevant time window). can be determined). If the value produced by the scoring function is below a threshold (e.g. due to many corrupted or lost packets), the receiver may decide that the stream cannot be reconstructed correctly and the receiver may take further action, For example, it can request retransmission, select one of the unaligned sequences, warn the user, and the like.

いくつかの実施形態では、スコアリング関数は、チャネル140の種類または属性に基づいて自動的に選択され得る。例えば、(例えば、パケット喪失および破損が起こりにくい)物理的なワイヤを介して実装されるチャネルには、第1の要因および/または閾値のセットが使用されてもよく、無線インフラストラクチャを介して実装されるチャネルには、第2の要因および/または閾値のセットが使用されてもよい。 In some embodiments, the scoring function may be automatically selected based on channel 140 type or attributes. For example, a first set of factors and/or thresholds may be used for channels implemented over physical wires (e.g., less prone to packet loss and corruption), over wireless infrastructure A second set of factors and/or thresholds may be used for the implemented channel.

いくつかの実施形態では、方法は、チャネル140の種類または属性に基づいて自動的に選択され得る。例えば、チャネル140が比較的信頼できることが既知である場合、受信側120が正しいパケットを見つけたと決定するには、2列または3列の一致で十分であるが、チャネル140が信頼できないことが既知である場合、受信側120は4つまたは5つの一致するパケットを必要とし得る。したがって、一実施形態は、使用される通信チャネルの属性に基づいてストリームを再構築するための論理を自動的に調整または選択することができる。 In some embodiments, the method may be automatically selected based on channel 140 type or attributes. For example, if channel 140 is known to be relatively reliable, a match of two or three columns may be sufficient to determine that receiver 120 found the correct packet, but channel 140 is known to be unreliable. , the receiver 120 may need 4 or 5 matching packets. Accordingly, an embodiment can automatically adjust or select the logic for reconstructing the stream based on the attributes of the communication channel used.

別のケースでは、パケットが喪失したり脱落したりする可能性があるが、破損することはないことが既知である(例えば、使用されているインフラストラクチャに基づいて)場合、送信側と受信側とは自動的に2つのチャネルのみを使用するように戻すことができる。パケットの破損が発生する可能性がある場合、送信側と受信側とは3つのチャネルを使用するように自動的に選択することができる。したがって、チャネル数140を自動的に選択することができる。 In another case, if it is known (e.g., based on the infrastructure used) that packets may be lost or dropped, but will not be corrupted, then the sender and receiver can automatically revert to using only two channels. The sender and receiver can automatically choose to use three channels if packet corruption is likely to occur. Therefore, the number of channels 140 can be automatically selected.

本発明の例示的な実施形態による方法のフローチャートである図2を参照する。ブロック210によって示されるように、同じコンテンツが複数の通信チャネルを介して送信され得る。例えば、ビデオカメラから取得したコンテンツをパケットに分割し、各パケットを複数のネットワーク接続を介して送信することができる。ブロック215によって示されるように、受信されたパケットは整列され得る。例えば、受信側120は、いくつかのチャネル140を介してパケットを受信し、受信したパケットを行列に並べ、最適な整列が達成されるまでシフトまたは他の操作を実行する。いくつかの実施形態では、整列させることは、記載されたように、単にパケットを行列に配置すること、およびパケットによって示される整列のレベルを決定することを含み得る。ブロック220によって示されるように、記載されるようにチャネルを介して送信されるコンテンツは、整列に基づいて再構築され得る。例えば、再構築されたストリームに含まれるべきパケットは、記載されているように、行列内のパケットの整列に基づいて選択され得る。 Please refer to FIG. 2, which is a flowchart of a method according to an exemplary embodiment of the present invention. The same content may be transmitted over multiple communication channels, as indicated by block 210 . For example, content captured from a video camera can be divided into packets and each packet can be sent over multiple network connections. The received packets may be aligned, as indicated by block 215 . For example, the receiver 120 receives packets over a number of channels 140, queues the received packets, and performs shifts or other operations until optimal alignment is achieved. In some embodiments, aligning may involve simply arranging the packets in a queue and determining the level of alignment exhibited by the packets, as described. As indicated by block 220, the content transmitted over the channel as described may be reconstructed based on the alignment. For example, packets to be included in the reconstructed stream can be selected based on the alignment of the packets in the matrix, as described.

本出願における本発明の実施形態の記載は、例示として提供されるものであり、本発明の範囲を限定することを意図するものではない。本発明の特定の特徴を本明細書で例示し、説明してきたが、多くの修正、置換、変更、および均等物が、当業者には着想され得るであろう。様々な実施形態が提示されてきた。これらの実施形態の各々は、もちろん、提示された他の実施形態からの特徴を含み得、具体的に記載されていない実施形態は、本明細書に記載された様々な特徴を含み得る。 Descriptions of embodiments of the invention in this application are provided by way of illustration and are not intended to limit the scope of the invention. While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those skilled in the art. Various embodiments have been presented. Each of these embodiments can, of course, include features from other presented embodiments, and embodiments not specifically described can include various features described herein.

当業者によって認められるように、本発明の態様は、システム、方法、またはコンピュータプログラムとして具現化することができる。したがって、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。さらに、本発明の態様は、具現化されたコンピュータ読み取り可能プログラムコードを有する(1つ以上のコンピュータ読み取り可能媒体において具現化された)コンピュータプログラムの形態を取ることも可能である。 As will be appreciated by those skilled in the art, aspects of the invention can be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may be described as an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.) or an embodiment combining software and hardware aspects. , all of which may be generically referred to herein as a "circuit," "module," or "system." Furthermore, aspects of the present invention may take the form of a computer program (embodied on one or more computer-readable media) having computer-readable program code embodied therein.

1つ以上のコンピュータ読み取り可能媒体のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体とすることができる。コンピュータ読み取り可能記憶媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能記憶媒体のさらに具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することができるいずれかのタンジブルな媒体とすることができる。 Any combination of one or more computer readable media may be utilized. A computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer-readable storage medium can be, for example, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of any of the foregoing. More specific examples (non-exhaustive list) of computer-readable storage media include the following. portable computer diskettes; hard disks; random access memory (RAM); read only memory (ROM); erasable programmable read only memory (EPROM or flash); memory), optical fiber, portable compact disc read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. .

コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラムコードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することができるいずれかのコンピュータ読み取り可能媒体とすることができる。 A computer readable signal medium may include a propagated data signal having computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such propagated signals may take any of a variety of forms, including but not limited to electromagnetic, optical, or any suitable combination thereof. A computer-readable signal medium is not a computer-readable storage medium, but any computer-readable medium capable of carrying, propagating, or transferring a program for use by or in connection with an instruction execution system, apparatus, or device. It can be used as a medium.

コンピュータ読み取り可能媒体上で具現化されるプログラムコードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。 Program code embodied on computer readable medium may be any suitable medium including, but not limited to, wireless, wired, fiber optic cable, RF, etc., or any suitable combination of any of the foregoing. can be transmitted using

本発明の態様の動作を実行するためのコンピュータ・プログラムコードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラムコードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または、接続は、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネット経由で)なされ得る。 Computer program code for carrying out operations of aspects of the present invention includes object oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages. It can be written in any combination of one or more programming languages. Program code may reside entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the user's computer. It can run on a remote computer or server. In the latter scenario, the remote computer can connect to the user's computer via any type of network, including a local area network (LAN) or wide area network (WAN), or the connection can be to an external computer. (eg, over the Internet using an Internet service provider).

本発明の実施形態に従った方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して、本開示について本明細書に記載する。フローチャート図および/またはブロック図の各ブロック、およびフローチャート図および/またはブロック図の組み合わせは、コンピュータプログラム命令によって実施可能であることは理解されよう。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のハードウェアプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。 The present disclosure is described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a hardware processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, thereby rendering the computer or other programmable data processing apparatus The instructions executed by the processor of the are to produce the means for performing the functions/acts specified in the block or blocks of the flowchart and/or block diagrams.

また、これらのコンピュータプログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。 Also, these computer program instructions can be stored on a computer-readable medium, thereby instructing a computer, other programmable data processing apparatus, or other device to function in a particular manner. , thereby causing the instructions stored on the computer-readable medium to produce an article of manufacture including instructions for performing the functions/acts specified in the block or blocks of the flowchart and/or block diagrams. there is

また、コンピュータプログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施処理を生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための処理を提供するようになっている。 Also computer-implemented by loading computer program instructions into a computer, other programmable data processing apparatus, or other device to perform a sequence of operational steps on that computer, other programmable apparatus, or other device. Processes can be generated whereby instructions executing on a computer or other programmable device perform the functions/acts specified in a block or blocks in the flowchart illustrations and/or block diagrams. is designed to provide

図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、規定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行される場合があり、またはそのブロックは、関与する機能に応じて逆の順序で実行される場合があってもよい。また、ブロック図および/またはフローチャート図の各ブロック、およびブロック図および/またはフローチャート図の組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。 The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block of a flowchart or block diagram can represent a module, segment, or portion of code that includes one or more executable instructions for performing the specified logical function. It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently or the blocks may be executed in the reverse order depending on the functionality involved. may Also, each block of the block diagrams and/or flowchart illustrations, and combinations of block diagrams and/or flowchart illustrations, depict special purpose hardware-based systems, or special purpose hardware and computers, that perform the specified functions or acts. It should be noted that it can be implemented by a combination of instructions.

本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることは意図されない。説明された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者以外の人が本明細書で開示される実施形態を理解できるように選択されたものである。 The description of various embodiments of the invention has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used herein are used to best describe the principles of embodiments, practical applications, or technical improvements over the technology found on the market, or by those other than those skilled in the art as disclosed herein. It has been chosen so as to provide an understanding of the various embodiments.

本出願の記載よび特許請求の範囲において、「含む(comprise)」、「含む(include)」、および「有する(have)」という語、ならびにそれらの形態の各々は、必ずしも、その語が関連付けられ得るリスト内のメンバーに限定されない。さらに、本出願と参照により組み込まれる任意の文書との間に不一致がある場合、本出願が支配することが本明細書によって意図されている。 In the description and claims of this application, the words "comprise," "include," and "have," and each of the forms thereof, necessarily refer to You are not limited to members in the list you get. Further, in the event of a conflict between the present application and any document incorporated by reference, the present application is hereby intended to control.

Claims (21)

方法であって、
シリアルビットストリームの複数の複製を受信することであって、前記シリアルビットストリームが、データパケットのシーケンスを含む、ことと、
連続する時間窓に基づいて、前記シリアルビットストリームの前記複製の各々を連続的に分割することと、
前記時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、前記時間窓内に受信された、前記シリアルビットストリームの前記複製の各々に関連付けられた前記データパケットを整列させることと、
データパケットの前記シーケンスにおける次のデータパケットを表すものとして、前記整列されたデータパケットのうちの少なくとも1つを選択することによって、前記シリアルビットストリームをリアルタイムで再作成することと、を含む、方法。
a method,
receiving multiple copies of a serial bitstream, the serial bitstream comprising a sequence of data packets;
successively dividing each of said replicas of said serial bitstream based on successive time windows;
For each of the time windows, aligning the data packets associated with each of the replicas of the serial bitstream received within the time window based at least in part on data packet similarity;
recreating the serial bitstream in real time by selecting at least one of the aligned data packets as representing a next data packet in the sequence of data packets. .
前記シリアルビットストリームの前記複数の複製の各々が、異なる通信チャネルを介して伝送される、請求項1に記載の方法。 2. The method of claim 1, wherein each of said multiple copies of said serial bitstream is transmitted over a different communication channel. 前記通信チャネルの各々が、プライベートIPネットワークと、パブリックIPネットワークと、インターネットと、移動通信用グローバルシステム(GSM)ネットワークと、ローカルエリアネットワーク(LAN)と、メトロポリタンエリアネットワーク(MAN)と、ワイドエリアネットワーク(WAN)と、無線ネットワークと、衛星通信ネットワークと、セルラー通信ネットワークと、Bluetooth通信チャネルと、Wi-Fiネットワークからなる群より選択される、請求項2に記載の方法。 Each of said communication channels comprises a private IP network, a public IP network, the Internet, a Global System for Mobile Communications (GSM) network, a local area network (LAN), a metropolitan area network (MAN), and a wide area network. (WAN), wireless networks, satellite communication networks, cellular communication networks, Bluetooth communication channels, and Wi-Fi networks. 前記整列させることが、前記データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された前記データパケットを整列スコア行列の列に配置することを含み、前記行列の各行が、前記シリアルビットストリームの前記複製のうちの1つを表す、請求項1~3のいずれか一項に記載の方法。 The aligning includes placing the data packets received within a time window into columns of an alignment score matrix based at least in part on the data packet similarity, each row of the matrix representing the serial A method according to any preceding claim, representing one of said replicas of a bitstream. 前記列内のデータパケットギャップおよびデータパケットの不一致のうちの1つに基づいて、前記列の各々に整列スコアを割り当てることをさらに含む、請求項4に記載の方法。 5. The method of claim 4, further comprising assigning an alignment score to each of the columns based on one of data packet gaps and data packet mismatches within the column. 前記行列の各列に関して、前記選択することが、前記列のデータパケットの大部分のデータパケット類似性によって決定されるコンセンサスに少なくとも部分的に基づく、請求項4に記載の方法。 5. The method of claim 4, wherein for each column of said matrix, said selecting is based at least in part on a consensus determined by data packet similarity of a majority of data packets of said column. 前記データパケット類似性が、データパケットコンテンツの比較に少なくとも部分的に基づいて決定され、前記データパケットコンテンツがハッシュ関数によって表される、請求項1~6のいずれか一項に記載の方法。 A method according to any preceding claim, wherein said data packet similarity is determined based at least in part on a comparison of data packet contents, said data packet contents being represented by a hash function. システムであって、
少なくとも1つのハードウェアプロセッサと、
プログラムコードを実装した非一時的なコンピュータ可読記憶媒体であって、前記プログラムコードが、
シリアルビットストリームの複数の複製を受信することであって、前記シリアルビットストリームが、データパケットのシーケンスを含む、ことと、
連続する時間窓に基づいて、前記シリアルビットストリームの前記複製の各々を連続的に分割することと、
前記時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、前記時間窓内に受信された、前記シリアルビットストリームの前記複製の各々に関連付けられた前記データパケットを整列させることと、
データパケットの前記シーケンスにおける次のデータパケットを表すものとして前記整列されたデータパケットのうちの少なくとも1つを選択することによって、前記シリアルビットストリームをリアルタイムで再作成することと、を行うために前記少なくとも1つのハードウェアプロセッサによって実行可能である、非一時的なコンピュータ可読記憶媒体と、を含む、システム。
a system,
at least one hardware processor;
A non-transitory computer-readable storage medium embodying program code, the program code comprising:
receiving multiple copies of a serial bitstream, the serial bitstream comprising a sequence of data packets;
successively dividing each of said replicas of said serial bitstream based on successive time windows;
For each of the time windows, aligning the data packets associated with each of the replicas of the serial bitstream received within the time window based at least in part on data packet similarity;
recreating the serial bitstream in real-time by selecting at least one of the aligned data packets as representing the next data packet in the sequence of data packets. a non-transitory computer-readable storage medium executable by at least one hardware processor.
前記シリアルビットストリームの前記複数の複製の各々が、異なる通信チャネルを介して伝送される、請求項8に記載のシステム。 9. The system of claim 8, wherein each of said multiple copies of said serial bitstream is transmitted over a different communication channel. 前記通信チャネルの各々が、プライベートIPネットワークと、パブリックIPネットワークと、インターネットと、移動通信用グローバルシステム(GSM)ネットワークと、ローカルエリアネットワーク(LAN)と、メトロポリタンエリアネットワーク(MAN)と、ワイドエリアネットワーク(WAN)と、無線ネットワークと、衛星通信ネットワークと、セルラー通信ネットワークと、Bluetooth通信チャネルと、Wi-Fiネットワークからなる群より選択される、請求項9に記載のシステム。 Each of said communication channels comprises a private IP network, a public IP network, the Internet, a Global System for Mobile Communications (GSM) network, a local area network (LAN), a metropolitan area network (MAN), and a wide area network. (WAN), wireless networks, satellite communication networks, cellular communication networks, Bluetooth communication channels, and Wi-Fi networks. 前記整列させることが、前記データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された前記データパケットを整列スコア行列の列に配置することを含み、前記行列の各行が、前記シリアルビットストリームの前記複製のうちの1つを表す、請求項8~10のいずれか一項に記載のシステム。 The aligning includes placing the data packets received within a time window into columns of an alignment score matrix based at least in part on the data packet similarity, each row of the matrix representing the serial A system according to any one of claims 8 to 10, representing one of said replicas of a bitstream. 前記命令が、前記列内のデータパケットギャップおよびデータパケットの不一致のうちの1つに基づいて、前記列の各々に整列スコアを割り当てるためにさらに実行可能である、請求項11に記載のシステム。 12. The system of claim 11, wherein the instructions are further executable to assign an alignment score to each of the columns based on one of data packet gaps and data packet mismatches within the columns. 前記行列の各列に関して、前記選択することが、前記列のデータパケットの大部分のデータパケット類似性によって決定されるコンセンサスに少なくとも部分的に基づく、請求項12に記載のシステム。 13. The system of claim 12, wherein for each column of said matrix, said selecting is based at least in part on a consensus determined by data packet similarity of a majority of data packets of said column. 前記データパケット類似性が、データパケットコンテンツの比較に少なくとも部分的に基づいて決定され、前記データパケットコンテンツがハッシュ関数によって表される、請求項8~13のいずれか一項に記載のシステム。 The system of any one of claims 8-13, wherein the data packet similarity is determined based at least in part on a comparison of data packet contents, the data packet contents being represented by a hash function. プログラム命令を実装した非一時的なコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記プログラム命令が、
シリアルビットストリームの複数の複製を受信することであって、前記シリアルビットストリームが、データパケットのシーケンスを含む、ことと、
連続する時間窓に基づいて、前記シリアルビットストリームの前記複製の各々を連続的に分割することと、
前記時間窓の各々に関して、データパケット類似性に少なくとも部分的に基づいて、前記時間窓内に受信された、前記シリアルビットストリームの前記複製の各々に関連付けられた前記データパケットを整列させることと、
データパケットの前記シーケンスにおける次のデータパケットを表すものとして、前記整列されたデータパケットのうちの少なくとも1つを選択することによって、前記シリアルビットストリームをリアルタイムで再作成することと、を行うために、前記少なくとも1つのハードウェアプロセッサによって実行可能である、コンピュータプログラム製品。
A computer program product comprising a non-transitory computer-readable storage medium embodying program instructions, the program instructions for:
receiving multiple copies of a serial bitstream, the serial bitstream comprising a sequence of data packets;
successively dividing each of said replicas of said serial bitstream based on successive time windows;
For each of the time windows, aligning the data packets associated with each of the replicas of the serial bitstream received within the time window based at least in part on data packet similarity;
and recreating the serial bitstream in real time by selecting at least one of the aligned data packets as representing the next data packet in the sequence of data packets. , a computer program product executable by said at least one hardware processor.
前記シリアルビットストリームの前記複数の複製の各々が、異なる通信チャネルを介して伝送される、請求項15に記載のコンピュータプログラム製品。 16. The computer program product of claim 15, wherein each of said multiple copies of said serial bitstream is transmitted over a different communication channel. 前記通信チャネルの各々が、プライベートIPネットワークと、パブリックIPネットワークと、インターネットと、移動通信用グローバルシステム(GSM)ネットワークと、ローカルエリアネットワーク(LAN)と、メトロポリタンエリアネットワーク(MAN)と、ワイドエリアネットワーク(WAN)と、無線ネットワークと、衛星通信ネットワークと、セルラー通信ネットワークと、Bluetooth通信チャネルと、Wi-Fiネットワークからなる群より選択される、請求項16に記載のコンピュータプログラム製品。 Each of said communication channels comprises a private IP network, a public IP network, the Internet, a Global System for Mobile Communications (GSM) network, a local area network (LAN), a metropolitan area network (MAN), and a wide area network. (WAN), wireless networks, satellite communications networks, cellular communications networks, Bluetooth communications channels, and Wi-Fi networks. 前記整列させることが、前記データパケット類似性に少なくとも部分的に基づいて、時間窓内に受信された前記データパケットを整列スコア行列の列に配置することを含み、前記行列の各行が、前記シリアルビットストリームの前記複製のうちの1つを表す、請求項15~17のいずれか一項に記載のコンピュータプログラム製品。 The aligning includes placing the data packets received within a time window into columns of an alignment score matrix based at least in part on the data packet similarity, each row of the matrix representing the serial A computer program product as claimed in any one of claims 15 to 17, representing one of said copies of a bitstream. 前記命令が、前記列内のデータパケットギャップおよびデータパケットの不一致のうちの1つに基づいて、前記列の各々に整列スコアを割り当てるためにさらに実行可能である、請求項18に記載のコンピュータプログラム製品。 19. The computer program product of claim 18, wherein the instructions are further executable to assign an alignment score to each of the columns based on one of data packet gaps and data packet mismatches within the columns. product. 前記行列の各列に関して、前記選択することが、前記列のデータパケットの大部分のデータパケット類似性によって決定されるコンセンサスに少なくとも部分的に基づく、請求項18に記載のコンピュータプログラム製品。 19. The computer program product of claim 18, wherein for each column of said matrix, said selecting is based at least in part on a consensus determined by data packet similarity of a majority of data packets of said column. 前記データパケット類似性が、データパケットコンテンツの比較に少なくとも部分的に基づいて決定され、前記データパケットコンテンツがハッシュ関数によって表される、請求項15~20のいずれか一項に記載のコンピュータプログラム製品。

The computer program product of any one of claims 15-20, wherein the data packet similarity is determined based at least in part on a comparison of data packet contents, the data packet contents being represented by a hash function. .

JP2022546436A 2019-12-02 2020-12-02 Packetized data communication over multiple unreliable channels Pending JP2023508744A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/699,786 US11546615B2 (en) 2018-03-22 2019-12-02 Packetized data communication over multiple unreliable channels
US16/699,786 2019-12-02
PCT/IB2020/061382 WO2021111329A1 (en) 2019-12-02 2020-12-02 Packetized data communication over multiple unreliable channels

Publications (1)

Publication Number Publication Date
JP2023508744A true JP2023508744A (en) 2023-03-03

Family

ID=76221036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022546436A Pending JP2023508744A (en) 2019-12-02 2020-12-02 Packetized data communication over multiple unreliable channels

Country Status (9)

Country Link
EP (1) EP4070488A4 (en)
JP (1) JP2023508744A (en)
KR (1) KR20220136343A (en)
CN (1) CN115023928B (en)
AU (1) AU2020396439A1 (en)
BR (1) BR112022010854A2 (en)
CA (1) CA3160355A1 (en)
IL (1) IL293533A (en)
WO (1) WO2021111329A1 (en)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801132B2 (en) * 1999-11-09 2010-09-21 Synchrodyne Networks, Inc. Interface system and methodology having scheduled connection responsive to common time reference
JP4068545B2 (en) * 2003-10-24 2008-03-26 日本電信電話株式会社 Packet receiving method and apparatus
US7729256B2 (en) * 2004-07-14 2010-06-01 Opnet Technologies, Inc. Correlating packets
US20070091928A1 (en) * 2005-10-21 2007-04-26 Wee Susie J Serial and parallel processing of data using information about the data and information about a streaming network
US7707349B1 (en) * 2006-06-26 2010-04-27 Marvell International Ltd. USB isochronous data transfer for a host based laser printer
US7852792B2 (en) * 2006-09-19 2010-12-14 Alcatel-Lucent Usa Inc. Packet based echo cancellation and suppression
US8036248B2 (en) * 2008-10-29 2011-10-11 Silicon Image, Inc. Method, apparatus, and system for automatic data aligner for multiple serial receivers
US8873557B2 (en) * 2011-04-08 2014-10-28 Gigamon Inc. Systems and methods for packet de-duplication
US20140269359A1 (en) * 2013-03-14 2014-09-18 Google Inc. Reduction of retransmission latency by combining pacing and forward error correction
US9860614B2 (en) * 2015-05-13 2018-01-02 Huawei Technologies Co., Ltd. System and method for hybrid photonic electronic switching
US11792748B2 (en) * 2018-05-10 2023-10-17 Apple Inc. Synchronization control for packet data convergence protocol (PDCP) duplicate transmissions

Also Published As

Publication number Publication date
AU2020396439A1 (en) 2022-06-30
EP4070488A4 (en) 2024-01-03
CA3160355A1 (en) 2021-06-10
EP4070488A1 (en) 2022-10-12
WO2021111329A1 (en) 2021-06-10
BR112022010854A2 (en) 2022-08-23
CN115023928B (en) 2024-02-23
IL293533A (en) 2022-08-01
KR20220136343A (en) 2022-10-07
CN115023928A (en) 2022-09-06

Similar Documents

Publication Publication Date Title
CN107819828B (en) Data transmission method and device, computer equipment and storage medium
US8837488B2 (en) Two tier multiple sliding window mechanism for multidestination media applications
JP4532505B2 (en) Data transmitting apparatus, data receiving apparatus, and data distribution system
US9832745B2 (en) Transport stream packets with time stamp generation by medium access control
JP2023549908A (en) Data transmission methods, devices, electronic devices, and computer programs
US20230071243A1 (en) Conserving network resources during transmission of packets of interactive services
CN111263239B (en) Video frame packet loss processing method and related device
US20120151291A1 (en) Receiving apparatus and processing method for receiving apparatus
CN111147606A (en) Data transmission method, device, terminal and storage medium
US9826282B2 (en) Reception apparatus, reception method, and recording medium
RU2689187C2 (en) Decoding and synthesizing frames for partial video data
US8321754B2 (en) Method for transmitting multimedia data in ad hoc communication networks
JP6451629B2 (en) Information processing apparatus, information processing method, and program
JP2023508744A (en) Packetized data communication over multiple unreliable channels
CN114866827B (en) Audio and video synchronization detection method and device, storage medium and electronic equipment
JP2007324876A (en) Data transmitter, data receiver, data transmitting method, data receiving method, and program
US11546615B2 (en) Packetized data communication over multiple unreliable channels
EP2449708A1 (en) A method, apparatuses and service for media transmission
US11363125B2 (en) Systems and methods for increasing reliability for media data distribution
CN114979793A (en) Live broadcast data transmission method, device, system, equipment and medium
JP2007053745A (en) Receiver and program
KR20170004418A (en) Device and method for multicast screen mirroring
JP2005223682A (en) Transmission/reception system, transmitter and transmitting method, receiver and receiving method, transmitter/receiver and transmitting/receiving method, and program
US8499223B2 (en) Receiving apparatus, receiving method and non-transitory computer readable recording medium for recording receiving program
KR101801565B1 (en) Apparatus and method for transmitting/receiving data in communication system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231107