CN101505265B - 信息通信 - Google Patents
信息通信 Download PDFInfo
- Publication number
- CN101505265B CN101505265B CN200910002654.7A CN200910002654A CN101505265B CN 101505265 B CN101505265 B CN 101505265B CN 200910002654 A CN200910002654 A CN 200910002654A CN 101505265 B CN101505265 B CN 101505265B
- Authority
- CN
- China
- Prior art keywords
- prime number
- numerical value
- value surplus
- subflow
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004891 communication Methods 0.000 title description 12
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000011084 recovery Methods 0.000 claims description 17
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 abstract description 14
- 238000009826 distribution Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 241000237858 Gastropoda Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及信息通信。具体地,公开了用于传播信息的方法、系统和装置,包括编码于介质的计算机程序产品。总体上,本说明书所描述主题的一个或多个方面可以实现为一个或多个方法,所述方法包括:接收(例如,在对等网络中)根据多个对应的素数生成的多个数字剩余集合;基于所述素数,确定该数字剩余集合是否足够恢复由该数字剩余集合编码的信息;以及,在数字剩余集合是足够的时,使用至少部分素数从至少部分数字剩余集合恢复信息。
Description
技术领域
本说明书涉及传送信息,例如在对等计算机网络中分发信息。
背景技术
已经使用了各种手段来处理在网络上分发信息时底层网络基础架构的不稳定性。例如,当使用不能始终保证可靠的协议(诸如用户数据报协议(UDP))通过互联网发送信息时,已经使用数字喷泉码(Digital Fountain Code)来将流分解成许多子流,以使得可以通过最少量的子流重建原始流。这样,当发送设备使用有时会丢掉整个数据块的通信信道时,接收设备依然可以重建原始信息,即使是某些子流在接收设备处不可用的时候,也是如此。
另外,已经使用了各种手段来解决针对通过网络的媒体分发的服务器负载问题,其中传统的手段是提供大型中心服务器群,该服务器群为每个客户端计算机提供单独的流。例如,California州、SanFrancisco市的BitTorrent股份有限公司提供了这样的软件,其对将被传输的文件进行分解,并且在对等(P2P)网络中将该文件从一个或者多个不同的源逐块递送,其中将要从服务器下载到客户端的文件事实上可能来自另一个已经下载了该文件的客户端(“对等实体”)。其它P2P软件包括:Kazza软件,其来自Vanuatu、Vila港的Sharman网络有限公司;以及Octoshape软件,其来自Denmark、Copenhagen市的Octoshape应用软件公司。
发明内容
本说明书描述的技术涉及传送信息,例如,在对等计算机网络中分发信息。总体上,本说明书所描述主题的一个或者多个方面可以实现为一个或者多个方法,所述方法包括:接收根据多个对应的素数生成的多个数值剩余量(numeral residual)集合;基于所述素数,确定所述数值剩余量集合是否足够恢复由所述数值剩余量集合编码的信息;以及在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息。本说明书所描述主题的一个或者多个方面还可以实现为一个或者多个方法,所述方法包括:使用多个素数来处理信息,以形成对应的数值剩余量集合,其中所述信息是可以使用所述数值剩余量集合和素数来恢复的;以及将该数值剩余量集合发送到一个或者多个接收者,以便在一个或者多个接收者处,使用至少一部分素数通过至少一部分数值剩余量集合来恢复所述信息。这些方面的其它实施方式包括:对应的系统、装置和计算机程序产品,所述计算机程序产品被编码到计算机可读介质上,并且可以被操作以使得数据处理装置执行该方法操作。
这些和其它实施方式可选择地包括一个或者多个以下功能。信息可以包括至少一部分媒体流,以及方法可以包括:依照对应的素数从媒体流中生成子流;以及传输子流到对等网络中的对等设备。所述生成可以包括:将媒体流拆分为词;将每个词除以每个对应于子流的每个素数,以针对每个词产生每个素数的余数;从余数形成子流。对应于子流的素数可以是对应于数值剩余量集合的素数,并且所述恢复可以包括:通过求解由该素数定义的方程式组来恢复媒体流。此外,对应于子流的素数可以与对应于数值剩余量集合的素数不同。
所述恢复可以包括:基于素数选择数值剩余量集合的真子集;以及使用数值剩余量集合的真子集和素数的对应的真子集来确定所述信息。所述接收、确定和恢复可以由第一计算机执行,以及该方法可以包括:在第一计算机处生成第一大小的词的数值剩余量;在第二计算机处生成第二大小的词的数值剩余量,其中在第一计算机处接收到的数值剩余量集合包括在第二计算机生成的第二大小的词的至少一部分数值剩余量;以及在第三计算机处使用第一大小词的真子集和第二大小词的真子集来恢复信息。所述方法可以包括:接收包括针对素数的一个或者多个指示符的加密信息。所述素数可以包括整数或者其它适合的数字系统中的素数元素。
在另一方面中,系统包括用户接口设备;以及一个或者多个计算机,所述计算机可以操作以与用户接口设备交互并且执行操作,所述操作包括:接收依照多个对应素数生成的多个数值剩余量集合;基于所述素数来确定所述数值剩余量集合是否足够恢复由所述数值剩余量集合编码的信息;当所述数值剩余量集合是足够的时,使用至少一部分素数从至少一部分数值剩余量集合中恢复所述信息。所述一个或者多个计算机可以包括一种个人计算机,并且所述个人计算机可以包括用户接口设备。此外,所述系统可以包括计算机网络,其中所述信息包括至少一部分媒体流,以及所述操作还包括:依照对应的素数从媒体流中生成子流;以及传输子流到对等网络中的对等设备。
本说明书所描述主题的具体实施方式可以通过实现一个或者多个以下优势实现。可以改进信息在计算机网络上的通信。即将被通信的信息分组可以切分为词并每次编码一个词,以及编码后的词可以在接收端被解码,其中解码时间与分组大小呈线性关系。可以增加所通信的信息的安全性。可以使用对等分发,可以改进网络中每个对等节点的能力,并且可以提高P2P网络总体的性能。
对等媒体分发可以通过将实时媒体流切分为独立的、较小的、将来可以重新集合的流来实现,其中所述分离的流通常是可互换的。原始流可以从较小流的被选择出的子集来重新集合,所述选择是基于在给定位置较小流可用性做出的。较小流的使用不需要特定顺序,并且根据子流的可用性,接收设备可以在不同时间使用可用子流的被选择出的不同子集。而且,这可以减少延迟,其可以为实时媒体分发提供显著的改进。因此,互联网可以高效地用于实时媒体分发,诸如体育广播、实况转播或者实时新闻覆盖,其中所述媒体分发的主要吸引力通常是其实时特性。
服务器上的总带宽负载可以减少。因此,对于同样级别的信息分发能力,可以使服务器群的构建和维护更为便宜。也可以使用较低端的计算设备作为服务器,从而使在互联网上对程序的实时流传输更加便宜。例如,仅仅少数计算机可以用于向很多客户端递送实时媒体流。因此,实时媒体流市场的进入门槛可以为小生产者降低。
本说明书所描述主题的一个或者多个实施方式的细节将结合下面的附图和描述给出。本发明的其他功能、方面和优势从描述、图和权利要求看来将变得显而易见。
附图说明
图1示出了传送信息的示例性方法。
图2示出了示例性的媒体流系统。
图3示出了分发媒体流的示例性方法。
图4示出了包括提供信息安全的示例性信息通信系统。
各种图中的相似附图标记和标记表示相似的元素。
具体实施方式
图1示出了传送信息的示例性方法。产生过程(100)包括:使用多个素数从将要传送的信息中生成数值剩余量(110)。例如,该信息可以包括至少一部分的实时媒体流,以及所述生成可以包括:依照对应的素数从实时媒体流生成子流。该信息可以除以不同的素数,并且对相应素数进行的该除法的余数可以被用于在计算机网络上传送信息。
产生过程(100)包括:将数值剩余量发送到一个或者多个接收者,用于在一个或者多个接收者处恢复信息(120)。例如,子流可以被传输到对等网络中的设备。这些设备可以使用中国余数定理来重建该信息。
消费(consumption)过程(150)包括:接收依照对应素数生成的多个数值剩余量集合(160)。例如,被传输的子流可以由对等网络中的对等设备和客户端设备二者接收。这里所使用的“客户端”设备是只能接收信息的设备,而“对等”设备是在对等网络中既能接收信息也能发送信息的设备(即,也可以作为服务器计算机的客户端计算机)。应当理解,在某些实现中,所有的接收设备都可以是对等设备,在这种情况下,没有纯粹的客户端设备。
基于素数,可以检查所接收到的数值剩余量集合是否足以恢复由那些数值剩余量所编码的信息(170)。例如,当多个子流已经被接收时(其中使用不同的素数编码每个子流),可以检查对应素数的乘积是否大于目标数据词大小可以表示的数字,其中该目标数据词大小用于恢复信息。以下进一步详细描述其示例。如果接收到的数值剩余量集合是足够的,则可以使用对应的素数从至少一部分数值剩余量集合恢复该信息(180)。
在对等网络中,产生过程(100)可以由信息的发起者(例如,提供实时媒体流的服务器计算机)来执行,消费过程(150)可以由一个或者多个客户端设备来执行,以及一个或者多个对等设备可以执行消费过程(150)和产生过程(100)二者。图2示出了一个示例性媒体流系统。诸如服务器计算机或服务器群的发起者(210)可以从将要通过计算机网络(220)分发的信息生成L个子流。该L个子流可以从实时媒体流生成,并且该L个子流可以被发送给多个接收设备,诸如通过网络(220)的不同部分连接到发起者(210)的多个对等设备。
第一对等设备(230)可以接收该L个子流,从其恢复信息,并且随后从恢复的信息生成M个子流。然后该M个子流可以通过网络(220)被发送给多个接收设备(包括其他对等设备和客户端设备)。第二对等设备(240)可以接收该L个子流、该M个子流或者它们每个的部分的组合。第二对等设备(240)也可以恢复信息,并且随后从恢复的信息生成N个子流。然后该N个子流可以通过网络(220)被发送给多个接收设备(包括其他对等设备和客户端设备)。
客户端设备(250)可以接收子流的某些组合(260)并且恢复信息。具体的子流组合(260)可以因网络参数而不同,其中网络参数诸如网络的拓扑和延迟特性。通常,客户端设备(250)接收L个子流中的X个子流、M个子流中的Y个子流以及N个子流中的Z个子流,其中X、Y和Z是在[0,∞)范围内的整数。
在每个子流生成设备(210,230,240)处,原始媒体流可以被切分为T个不同且唯一的子流,每个子流的带宽都稍微的大于原始流带宽的1/T。给出影响设备的网络限制,接收和重建原始流的对等设备(230,240)可以生成并且传输适当数目的子流。例如,依赖于对等网络如何连接到网络(例如,通过线缆调制解调器、数字用户线(DSL)等等),具体对等设备可以供源(source)的子流数目随对等实体的不同而不同。此外,具体对等设备或者客户端设备可以从任何适当的子流组合恢复原始媒体流,而不论它们的来源。
图3示出了示例性的分发媒体流的方法。产生过程(300)可以开始于从将媒体流拆分为给定大小的词(310)。该产生过程(300)可以在不同的生成者设备处应用不同的词大小。这可以包括:用于拆分媒体流的不同词大小,以及用于将在子流中发送的余数值的不同词大小。例如,生成者设备的外向链路的容量可以左右所使用的词大小。
每个词可以除以对应于将要生成的子流的每个素数(320)。在当前详细描述的示例中,使用256位的词大小。来自媒体流的每个词可以被切分为T个单独的子流。例如,T可以是4,并且用相应的4个65位素数除以每个256位的词会生成相应的64位宽的余数。应当注意的是,即使使用4个子流重建媒体流时,特定生成者设备也可以从媒体流生成多于或者少于4个的子流。
通常,供源S个子流(其中S未必等于T)的计算机可以选择S个唯一的65位素数:P(1),P(2),...,P(S)。每个流词W可以被S个素数除而产生S个余数:R(1),R(2),...,R(S)。然后,这些余数中的每个都可以在相应的子流中传输。
这样,可以从除法的对应余数形成子流(330)。在实际中,额外的信息开销也可以和每个余数值一起传输。然而,应当注意,这样的开销可以通过增加子流中每个被传输词的余数位数来减少。另外,对应于子流的素数也可以被传输,诸如周期性地(例如,一秒一次),或者可以通过其他方式传送这些素数,如以下进一步讨论的。
消费过程(350)可以包括基于对应的素数选择所接收的子流的真子集(360)。给定的接收者设备可以从不同的生成者设备访问不同的子流。如果从不同的源接收到的子流使用相同的素数,则该接收设备可以对此进行检查,并且确保将要使用的所有子流拥有与之对应的不同素数。在某些实现中,接收设备可以访问很多不同子流,并且可以挑选出特定子流集合来接收,诸如通过主动地从对等设备请求特定的子流。被请求的特定子流可以受到网络因素的影响,其中网络因素诸如将要被接收的子流通过的相应链路的容量和延迟。
在上面的详细示例中,任何4个可用子流都可以被选择来重建原始词W。所选择的子流不需要来自相同的源计算机,并且所选择的子流K(1)、K(2)、K(3)和K(4)可以和它们对应的素数J(1)、J(2)、J(3)和J(4)一起使用,来重建原始词W。
由对应于所选择子流的素数定义的方程式组可以被求解(370)。例如,方程式组可以如下:
W=I(1)×J(1)+K(1)
W=I(2)×J(2)+K(2)
W=I(3)×J(3)+K(3)
W=I(4)×J(4)+K(4)
为了重建原始词W,可以找到使得上述四个方程都成立的整数I(1)、I(2)、I(3)或者I(4)。应当注意,这只是表明余数的含义。
这个方程式组可以使用中国余数定理求解。原始词W可以通过找到整数I(1)、I(2)、I(3)或者I(4)中的任意一个计算出。中国余数定理保证这些方程一定有解。因为中国余数定理是通过构造来运行的,所以它也精确地示出了如何计算解。
可以基于方程式组的解和词大小信息来重建媒体流(380)。上述方程的解不是唯一的,其中可以加多个J(1)×J(2)×J(3)×J(4)到该解上,并且同时仍是联立方程的解。然而,因为原始词W的大小是已知的,所以可以在该大小的词(例如,256位)内表示的解将被选出作为最终解。如果计算得出的解不适合该大小的词,可以将得到的解反复地减去J(1)×J(2)×J(3)×J(4)的值,直到可以适合给定的词大小。
对于生成素数,可以使用应用于公-私密钥加密的传统技术来生成这些素数。应当注意的是,65位素数是没有缺点的;素数定理表明:至少有312个这样的素数。在开始分发流以前,素数可以只需生成一次。而且,与生成者设备相关的一个或者多个唯一数(例如,为数据供源的计算机的处理器标识符)可以在产生将要使用的素数的过程中使用。广泛可用的软件可以用来产生很大的素数。例如,来自California州Santa Clara市的Intel公司的集成性能基元(IPP)子例程包,包括用于测试大数是否为素数的例程。
如上所述,子流的数目未必是4,并且词大小也未必是256位。在选择这些参数时有很大的自由。可以将256位的词切分成两块或者八块,或者可以原始使用512位词或甚至1024位词。通常,运用多精度算法所需的计算能力的增长大致是该词中位数的平方,所以通常词大小越小越好;但是较大的词大小将提供更多的可用素数,这将有助于拥有足够的素数以保证它们都是唯一的。因此,词大小的最终选择可以基于具体应用,以及期待的可用素数数量与进行编码和解码的计算负载之间的权衡。
另外,可以使用不等带宽的子流。如果词宽为B(i)的各种子流是可用的,则接收设备可以选择足够的可用子流以使得它们词宽的和大于或等于原始词的宽度。这对于保证中国余数定理算法可以产生解而言是足够的。
中国余数定理的计算时间通常与原始词的位数成正比,这意味着可以使得该算法相对地有效率。例如,包括转换编码的流,诸如MPEG(运动图像专家组)或者MP3(MPEG第三层)流,通常针对每个词需要Log2次计算,其中词的长度通常远远短于256位。当前描述的技术在计算上是可比较的,并且可以很容易地在家用计算机的调制解调器上运行。
此外,不同于将素数和子流一起传输(如上文所述),可以用模糊方式(obfuscated fashion)通过其他的方法提供素数,或者一起传输和模糊方式二者都用。图4示出了包括提供信息安全的示例性信息通信系统。计算机网络(410)为发送者设备(420)与一个或者多个接收者设备(430)通信提供了通信路径。例如,发送者(420)可以通过虚拟个人网络(VPN)(440)与接收者(430)通信,所述VPN在计算机网络(410)上运行。将被使用的素数(450)可以在将被通信的信息中的频带以外被通信到接收者(430)。例如,素数(450)可以由单独加密的信道通过计算机网络(410)或者完全在计算机网络(410)以外(例如,我的传统邮件(snail mail))发送。
素数(450)可以被保存在数据库(460),其可以由接收者(430)访问。当把信息发送给接收者(430)时,可以将用于素数(450)的多个指示符(470)发送到接收者(430),以标识该正在使用的素数(450)。例如,指示符(470)可以是素数表中的索引值。
本说明书描述的主题的实施方式和功能操作可以由数字电子电路或者计算机软件、固件或者硬件实现,其包括本说明书所公开的结构和它们的结构等同物,或者它们的一个或者多个的组合。本说明书所描述的主题的实施方式可以由一个或者多个计算机程序产品实现,即,一个或者多个编码在有形程序载体上的计算机程序指令模块,所述计算机程序指令模块用于数据处理装置的执行,或者控制数据处理装置的操作。所述有形程序载体可以是计算机可读的介质。计算机可读介质可以是机器可读存储设备、机器可读存储衬底,存储器设备或者它们的一个或者多个的组合。
术语“数据处理装置”包含了用于处理数据的所有装置、设备和机器,包括作为示例的可编程处理器、计算机或者多个处理器或多个计算机。除了包括硬件以外,装置还可以包括:为所讨论的计算机程序创造执行条件的代码,即,组成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境或者它们的一个或者多个的组合的代码。另外,装置可以应用各种不同计算模型基础架构,诸如网络服务、分布式计算基础架构和网格计算基础架构。
计算机程序(也称为程序、软件、软件应用、脚本或者代码)可以用任何形式的程序语言写成,包括编译语言或者解释语言、声明语言或者过程语言,以及该计算机程序可以用任何形式部署,所述形式包括以独立程序的形式,或者以模块、组件、子例程或者适用于计算环境的其它单元的形式。计算机程序不必对应于文件或者文件系统。程序可以存储在拥有其他程序或者数据(例如,存储在一个或者多个标记语言文档中的脚本)的文件的一部分中,存储在专属于正在讨论的程序的单个文件中,或者存储在多个经过协调的文件中(例如,存储了一个或者多个模块、子程序或者代码的部分的文件)。计算机程序可以被部署以在一台计算机或者多台计算机上执行,所述多台计算机被放置在一个地点或者分布在多个地点并且通过通信网络互联起来。
本说明书中所描述的过程和逻辑流程可以由一个或者多个可编程处理器执行,该可编程处理器执行一个或者多个计算机程序以通过在输入数据上操作并且生成输出执行功能。过程和逻辑流程也可以由专用途逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。
作为示例,适用于执行计算机程序的处理器包括通用微处理器和专用微处理器二者,以及任何类型的任何一个或者多个数字计算机的处理器。通常,处理器将从只读存储器或者随机访问存储器或者从这两种存储器接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或者多个存储器设备。通常,计算机也包括或者可操作地耦合到用于存储数据的一个或者多个大型存储设备(例如,磁盘、磁电-光盘或者光盘),以从其接收数据或者向其传输数据,或者进行传输和接收。然而,计算机并非必须拥有这些设备。此外,计算机可以嵌入到其它的设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收机或者便携存储设备(例如,通用串行总线(USB)闪存驱动),所列名称只是一小部分。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,其作为示例包括:半导体存储器设备,例如EPROM、EEPROM和闪存储器设备;磁盘,例如内部硬盘或者可移动硬盘;磁电光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路增补,或者合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述主题的实施方式可以在具有显示设备、键盘和指点设备的计算机上实现;其中显示设备用于向用户显示信息,例如CRT(阴极射线管)监视器或者LCD(液晶显示器)监视器;指点设备例如,鼠标或者轨迹球,用户通过其可以向计算机提供输入。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何感官形式的反馈,例如可见反馈、听觉反馈或者触觉反馈;并且来自用户的输入可以以任何形式接收,包括声音的、语音的或者触觉的输入。
本说明书中描述的主题的实施方式可以在计算系统中实现,所述计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如拥有图形用户界面或者web浏览器的客户端计算机(通过其用户可以与本说明书所描述的主题的实现交互),或者包括一个或者多个这样的后端组件、中间件或前端组件的任何组合。系统的组件可以以任何形式或者媒介的数字数据通信互联,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如互联网)和对等网络(例如,自组织对等网络)。
虽然本说明书包含很多实现细节,但是这些不能被解释为本发明或者权利要求在范围上的限制,而是针对本发明具体实施方式的特定功能的描述。本说明书所描述的、在各实施方式上下文中的特定功能也可以组合起来在单个实施方式中实现。相反地,在单个实施方式中所描述的各个功能也可以也可以在多个实施方式中分别实现,或者在任何适合的子组合中实现。此外,虽然上述功能可能被描述为在特定组合中工作,以及即使最初始要求这样保护,但是一个或者多个的、来自所要求保护的组合的功能可以在某种情况下脱离该组合,以及所要求保护的组合可以涉及子组合或者子组合的变体。
类似地,虽然图中的操作以具体的顺序描述出来,但是这不应理解为要求这种操作以所示具体顺序或者以连续顺序执行,或者所有示出的操作都要求被执行,才能达到想要的结果。在某些环境中,多任务和并行处理可能是有利的。此外,在上述实施方式中分离的各个系统组件不应理解为要求在所有的实施方式中都这样分离,以及应该理解:所描述的程序组件和系统一般可以集成在单个软件产品中或打包到多个软件产品中。
这样,本发明的具体实施方式已经被描述。其它实施方式在所附权利要求的范围内。例如,权利要求中叙述的行为可以以不同的顺序执行而依然达到想要的结果。此外,虽然很多上面的描述涉及实时媒体流,但是应当意识到所述系统和技术也适用与其它形式的信息通信和分发,包括通过互联网的传统文件下载。
例如,在其它实施方式中,所描述的技术可以用于传输作为视频数据水印的数字。例如,如果该数是256位的数,并且视频数据允许将30到40位作为水印嵌入到每个帧中,在不嵌入可视数据的情况下,本技术可以被使用以减少在完全的256位数字可以被恢复以前需要传输的帧的数量。例如,可以选择128个长度为25位的素数并且将其构造在用于视频数据的编码器和解码器中。为了传输数据,每个素数可以轮流用于产生128个25位的余数。每个25位余数可以与标识所用素数的7位索引值一起在相应的视频帧中传输。然后,在解码端,一旦11个余数(对应于不同的素数)被接收到,原始的256位数字就可以被恢复。即使一大部分(例如,40%)的水印数字不能在解码器端恢复,原始的256位数字依然可以在合理长的时间内恢复(例如,约36个视频帧有95%的机会得到11个不同的数字)。
此外,上面提供的描述是在标准整数的上下文中,但是所述系统和技术可以使用其它的数字系统实现,因为中国余数定理也可以在其它数字系统中实现。例如,所述方法可以使用任何的环R,其中R拥有(双边)理想数Ij,所述理想数是互素的。“环”、“理想数”和“互素”是数学中有标准定义的术语。整数是环的一种示例。环也可以由多项式、32位词和其它事物得到,并且可以使用其他环来应用本系统和技术。例如,GF(2)^n上的多项式环可以被用于编码。这些可以用于表示n位的二进制数。因此,如这里所用的,术语“素数”并不限于整数,而是包括任何适合的数字系统中的数字元素。
Claims (21)
1.一种包括消费过程的用于传送信息的计算机实现的方法,包括:
在对等网络中接收根据多个对应的素数而生成的多个数值剩余量集合;
基于所述素数,确定所述数值剩余量集合是否足够恢复由所述数值剩余量集合编码的信息;以及
在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息;
其中所述信息包括至少部分媒体流,所述方法还包括:
根据对应的素数来从所述媒体流生成子流;以及
将所述子流传输到所述对等网络中的对等设备。
2.如权利要求1所述的方法,其中所述生成包括:
将所述媒体流拆分为词;
将每个所述词除以对应于所述子流的每个所述素数,以针对每个所述词来产生每个所述素数的余数;以及
从所述余数形成所述子流。
3.如权利要求1所述的方法,其中对应于所述子流的所述素数是对应于所述数值剩余量集合的所述素数,并且所述恢复包括:通过求解由所述素数定义的方程式组来恢复所述媒体流。
4.如权利要求1所述的方法,其中对应于所述子流的所述素数与对应于所述数值剩余量集合的所述素数不同。
5.如权利要求1所述的方法,其中所述恢复包括:
基于所述素数,选择所述数值剩余量集合的适当子集;以及
使用所述数值剩余量集合的适当子集和所述素数的对应的适当子集来确定所述信息。
6.如权利要求1所述的方法,其中所述接收、确定和恢复由第一计算机执行,以及所述方法包括:
在所述第一计算机处生成第一大小的词的数值剩余量;
在第二计算机处生成第二大小的词的数值剩余量,其中在所述第一计算机处接收到的所述数值剩余量集合包括在所述第二计算机处生成的、所述第二大小的词的数值剩余量的至少部分;以及
在第三计算机处使用所述第一大小的词的适当子集和所述第二大小的词的适当子集来恢复所述信息。
7.如权利要求1所述的方法,还包括:接收包括针对所述素数的一个或多个指示符的加密信息。
8.如权利要求1所述的方法,其中所述素数包括整数。
9.一种包括消费过程的用于传送信息的设备,包括:
用于在对等网络中接收根据多个对应的素数而生成的多个数值剩余量集合的装置;
用于基于所述素数,确定所述数值剩余量集合是否足够恢复由所述数值剩余量集合编码的信息的装置;以及
用于在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息的装置;
其中所述信息包括至少部分媒体流,所述设备还包括:
用于根据对应的素数来从所述媒体流生成子流的装置;以及
用于将所述子流传输到所述对等网络中的对等设备的装置。
10.如权利要求9所述的设备,其中所述用于根据对应的素数来从所述媒体流生成子流的装置包括:
用于将所述媒体流拆分为词的装置;
用于将每个所述词除以对应于所述子流的每个所述素数,以针对每个所述词来产生每个所述素数的余数的装置;以及
用于从所述余数形成所述子流的装置。
11.如权利要求9所述的设备,其中对应于所述子流的所述素数是对应于所述数值剩余量集合的所述素数,并且所述用于在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息的装置包括用于通过求解由所述素数定义的方程式组来恢复所述媒体流的装置。
12.如权利要求9所述的设备,其中对应于所述子流的所述素数与对应于所述数值剩余量集合的所述素数不同。
13.如权利要求9所述的设备,其中所述用于在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息的装置包括:
用于基于所述素数,选择所述数值剩余量集合的适当子集的装置;以及
用于使用所述数值剩余量集合的适当子集和所述素数的对应的适当子集来确定所述信息的装置。
14.如权利要求9所述的设备,其中所述用于在对等网络中接收根据多个对应的素数而生成的多个数值剩余量集合的装置,所述用于基于所述素数,确定所述数值剩余量集合是否足够恢复由所述数值剩余量集合编码的信息的装置,以及所述用于在所述数值剩余量集合是足够的时,使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息的装置位于第一计算机,所述设备还包括:
用于在所述第一计算机处生成第一大小的词的数值剩余量的装置;
用于在第二计算机处生成第二大小的词的数值剩余量的装置,其中在所述第一计算机处接收到的所述数值剩余量集合包括在所述第二计算机处生成的、所述第二大小的词的数值剩余量的至少部分;以及
用于在第三计算机处使用所述第一大小的词的适当子集和所述第二大小的词的适当子集来恢复所述信息的装置。
15.如权利要求9所述的设备,其中所述用于在对等网络中接收根据多个对应的素数而生成的多个数值剩余量集合的装置还包括用于接收包括针对所述素数的一个或多个指示符的加密信息的装置。
16.如权利要求9所述的设备,其中所述素数包括整数。
17.如权利要求14所述的设备,其中所述计算机包括一种个人计算机,并且所述个人计算机包括用户接口设备。
18.一种包括产生过程的用于传送信息的方法,包括:
使用多个素数来处理包括至少部分媒体流的信息,以形成对应的数值剩余量集合以及根据所述素数来从所述媒体流生成子流,其中所述信息是使用所述数值剩余量集合和素数恢复的;以及
将包括所述数值剩余量集合的所述子流传输给对等网络中的对等设备,以便在所述对等设备处使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息。
19.如权利要求18所述的方法,其中所述生成包括:
将所述媒体流拆分为词;
将每个所述词除以对应于所述子流的每个所述素数,以针对每个所述词来产生每个所述素数的余数;以及
从所述余数形成所述子流。
20.一种包括产生过程的用于传送信息的设备,包括:
用于使用多个素数来处理包括至少部分媒体流的信息,以形成对应的数值剩余量集合以及根据所述素数从所述媒体流生成子流的装置,其中所述信息是使用所述数值剩余量集合和素数恢复的;以及
用于将包括所述数值剩余量集合的所述子流传输给对等网络中的对等设备,以便在所述对等设备处使用所述素数的至少部分来从所述数值剩余量集合的至少部分恢复所述信息的装置。
21.如权利要求20所述的设备,其中所述用于使用多个素数来处理包括至少部分媒体流的信息,以形成对应的数值剩余量集合以及根据所述素数从所述媒体流生成子流的装置包括:
用于将所述媒体流拆分为词的装置;
用于将每个所述词除以对应于所述子流的每个所述素数,以针对每个所述词产生每个所述素数的余数的装置;以及
用于从所述余数形成所述子流的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/014,702 | 2008-01-15 | ||
US12/014,702 US8161166B2 (en) | 2008-01-15 | 2008-01-15 | Information communication using numerical residuals |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101505265A CN101505265A (zh) | 2009-08-12 |
CN101505265B true CN101505265B (zh) | 2013-12-25 |
Family
ID=40851654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910002654.7A Active CN101505265B (zh) | 2008-01-15 | 2009-01-14 | 信息通信 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8161166B2 (zh) |
CN (1) | CN101505265B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161166B2 (en) | 2008-01-15 | 2012-04-17 | Adobe Systems Incorporated | Information communication using numerical residuals |
US8082320B1 (en) * | 2008-04-09 | 2011-12-20 | Adobe Systems Incorporated | Communicating supplemental information over a block erasure channel |
CN101969354B (zh) * | 2009-07-28 | 2013-04-10 | 武汉大学 | 基于中国剩余定理的信道编解码方法 |
WO2011039774A1 (en) * | 2009-09-17 | 2011-04-07 | Tata Consultancy Services Ltd. | Method and system for generating random sequences for authentication protocols |
US9990478B2 (en) * | 2012-11-30 | 2018-06-05 | The Nielsen Company (Us), Llc | Methods, apparatus, and articles of manufacture to encode auxiliary data into relational database keys and methods, apparatus, and articles of manufacture to obtain encoded data from relational database keys |
US9569307B2 (en) * | 2014-02-13 | 2017-02-14 | Quantum Corporation | Mitigating the impact of a single point of failure in an object store |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230162A1 (en) * | 2005-03-10 | 2006-10-12 | Peisong Chen | Scalable video coding with two layer encoding and single layer decoding |
US20070092018A1 (en) * | 2005-10-20 | 2007-04-26 | Trellis Phase Communications, Lp | Single sideband and quadrature multiplexed continuous phase modulation |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926649A (en) * | 1996-10-23 | 1999-07-20 | Industrial Technology Research Institute | Media server for storage and retrieval of voluminous multimedia data |
EP0996262A1 (en) * | 1998-10-22 | 2000-04-26 | Texas Instruments France | Communication system with plurality of synchronised data links |
US7406214B2 (en) | 1999-05-19 | 2008-07-29 | Digimarc Corporation | Methods and devices employing optical sensors and/or steganography |
US6483918B2 (en) | 1999-06-09 | 2002-11-19 | Microsoft Corporation | Technique for producing a parameter, such as a checksum, through a primitive that uses elementary register operations |
CA2348700C (en) * | 2000-05-26 | 2008-03-11 | Andrew W. Hunt | High-performance error-correcting codes with skew mapping |
US7277950B1 (en) | 2000-12-29 | 2007-10-02 | Swarmcast, Inc. | Packet transfer mechanism over a peer to peer network |
US7269157B2 (en) | 2001-04-10 | 2007-09-11 | Internap Network Services Corporation | System and method to assure network service levels with intelligent routing |
US7222190B2 (en) | 2001-11-02 | 2007-05-22 | Internap Network Services Corporation | System and method to provide routing control of information over data networks |
WO2005083902A1 (en) * | 2004-02-27 | 2005-09-09 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for transmitting data in a multi-antenna wireless system |
US7581158B2 (en) | 2004-03-22 | 2009-08-25 | Codemate A/S | Distribution method, preferably applied in a streaming system |
US8996646B2 (en) | 2004-07-09 | 2015-03-31 | Codemate A/S | Peer of a peer-to-peer network and such network |
JP4130653B2 (ja) | 2004-12-20 | 2008-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 擬似公開鍵暗号方法及びシステム |
US20070133420A1 (en) | 2005-10-24 | 2007-06-14 | Tuna Guven | Multipath routing optimization for unicast and multicast communication network traffic |
US7844877B2 (en) * | 2005-11-15 | 2010-11-30 | Ramot At Tel Aviv University Ltd. | Method and device for multi phase error-correction |
US8315306B2 (en) | 2006-09-08 | 2012-11-20 | The Texas A&M University System | Distributed joint source-channel coding of video using raptor codes |
US8732854B2 (en) * | 2006-11-01 | 2014-05-20 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US20080232357A1 (en) | 2007-03-19 | 2008-09-25 | Legend Silicon Corp. | Ls digital fountain code |
US9107236B2 (en) | 2007-05-04 | 2015-08-11 | Alcatel Lucent | Method and apparatus for multicast scheduling in wireless networks |
US7899188B2 (en) * | 2007-05-31 | 2011-03-01 | Motorola Mobility, Inc. | Method and system to authenticate a peer in a peer-to-peer network |
US8161166B2 (en) | 2008-01-15 | 2012-04-17 | Adobe Systems Incorporated | Information communication using numerical residuals |
US20110002554A1 (en) | 2009-06-11 | 2011-01-06 | Motorola, Inc. | Digital image compression by residual decimation |
-
2008
- 2008-01-15 US US12/014,702 patent/US8161166B2/en not_active Expired - Fee Related
-
2009
- 2009-01-14 CN CN200910002654.7A patent/CN101505265B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230162A1 (en) * | 2005-03-10 | 2006-10-12 | Peisong Chen | Scalable video coding with two layer encoding and single layer decoding |
US20070092018A1 (en) * | 2005-10-20 | 2007-04-26 | Trellis Phase Communications, Lp | Single sideband and quadrature multiplexed continuous phase modulation |
Also Published As
Publication number | Publication date |
---|---|
US20090182890A1 (en) | 2009-07-16 |
CN101505265A (zh) | 2009-08-12 |
US8161166B2 (en) | 2012-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101505265B (zh) | 信息通信 | |
CN102884746B (zh) | 处理传输分组 | |
US8457304B2 (en) | Efficient encoding processes and apparatus | |
RU2638639C1 (ru) | Кодер, декодер и способ кодирования и шифрования входных данных | |
CN108989287A (zh) | 加密方法、装置、终端设备及存储介质 | |
KR20130095231A (ko) | 데이터 패킷 송수신 장치 및 방법 | |
Wu et al. | On practical design for joint distributed source and network coding | |
KR20140102598A (ko) | 멀티미디어 장면들의 표현들을 생성 및 프로세싱하기 위한 방법들 및 디바이스들 | |
He et al. | View-dependent streaming of dynamic point cloud over hybrid networks | |
Naveenkumar et al. | Partial image encryption for smart camera | |
CN106105076B (zh) | 在广播和/或通信系统中生成并恢复分组的方法和设备 | |
Hirche et al. | An improved rate region for the classical-quantum broadcast channel | |
Dumitrescu et al. | Layered multicast with inter-layer network coding | |
Duan et al. | A secure arithmetic coding based on Markov model | |
KR102127685B1 (ko) | 순방향 오류 정정 패킷 송수신 장치 및 방법 | |
US8082320B1 (en) | Communicating supplemental information over a block erasure channel | |
Chen | Physical layer security for cooperative relaying in broadcast networks | |
CN104052503B (zh) | 纠错码 | |
CN102624741A (zh) | 一种基于tlv的数据传输方法及系统 | |
US9948755B1 (en) | Methods and systems of transmitting header information using rateless codes | |
KR20120101942A (ko) | 파운틴 코드 기반 비디오 스트리밍 시스템 및 그 방법 | |
KR101836947B1 (ko) | 양자 통신에서의 다자간 키 분배 방법, 이를 이용하는 양자 통신 방법 및 이를 수행하는 양자 통신 시스템 | |
Li et al. | Distributed learning based on 1-bit gradient coding in the presence of stragglers | |
Hsieh et al. | Public and private communication with a quantum channel and a secret key | |
JP2011166292A (ja) | 信号処理システム、量子暗号システム、信号処理方法、及び量子暗号方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |